@dignite-ng/expand.cms 0.0.29 → 0.0.32

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dignite-ng-expand.cms.mjs","sources":["../../../projects/cms/src/lib/proxy/entries/entry-status.enum.ts","../../../projects/cms/src/lib/enums/ecms-component.ts","../../../projects/cms/src/lib/services/update-list.service.ts","../../../projects/cms/src/lib/proxy/admin/settings/site-settings-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/entries/entry-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/entry-type-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/section-admin.service.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create-or-update-entry-input-base.ts","../../../projects/cms/src/lib/proxy/admin/fields/field-group-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts","../../../projects/cms/src/lib/services/field-abstracts.service.ts","../../../projects/cms/src/lib/services/cms.service.ts","../../../projects/cms/src/lib/services/cms-api.service.ts","../../../projects/cms/src/lib/services/simple-reuse-strategy.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create.component.ts","../../../projects/cms/src/lib/components/admin/entries/create.component.html","../../../projects/cms/src/lib/components/admin/entries/edit.component.ts","../../../projects/cms/src/lib/components/admin/entries/edit.component.html","../../../projects/cms/src/lib/proxy/admin/fields/field-admin.service.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.html","../../../projects/cms/src/lib/components/admin/fields/fields.component.ts","../../../projects/cms/src/lib/components/admin/fields/fields.component.html","../../../projects/cms/src/lib/components/admin/fields/create-or-update-field-input-base.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.html","../../../projects/cms/src/lib/components/admin/fields/create-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-field.component.html","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.html","../../../projects/cms/src/lib/components/admin/sites/sites.component.ts","../../../projects/cms/src/lib/components/admin/sites/sites.component.html","../../../projects/cms/src/lib/components/admin/sites/create-or-update-sites-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/create-or-update-sections-input-base.ts","../../../projects/cms/src/lib/proxy/sections/section-type.enum.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.html","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.html","../../../projects/cms/src/lib/proxy/admin/domains/domain-admin.service.ts","../../../projects/cms/src/lib/components/admin/domains/domains.component.ts","../../../projects/cms/src/lib/components/admin/domains/domains.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/form-control-group.ts","../../../projects/cms/src/lib/toolbar/toolbar-btn-default-action.ts","../../../projects/cms/src/lib/toolbar/toolbar-config.ts","../../../projects/cms/src/lib/constants/styles.ts","../../../projects/cms/src/lib/services/appent-content.ts","../../../projects/cms/src/lib/cms-routing.module.ts","../../../projects/cms/src/lib/cms.module.ts","../../../projects/cms/src/public-api.ts","../../../projects/cms/src/dignite-ng-expand.cms.ts"],"sourcesContent":["import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum EntryStatus {\r\n Draft = 0,\r\n Published = 1,\r\n}\r\n\r\nexport const entryStatusOptions = mapEnumToOptions(EntryStatus);\r\n","export enum ECmsComponent {\n Entries=\"Cms.Entries\",\n Entries_Create=\"Cms.Entries.Create\",\n Entries_Edit=\"Cms.Entries.Edit\",\n Fields=\"Cms.Fields\",\n FieldsCreate=\"Cms.Fields.Create\",\n FieldsEdit=\"Cms.Fields.Edit\",\n Sites=\"Cms.Sites\",\n Sections=\"Cms.Sections\",\n SectionsCreateOrEdit=\"Cms.Sections.Create.Or.Edit\",\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UpdateListService {\n\n public updateListEvent: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n updateList() {\n this.updateListEvent.emit();\n }\n}\n","import { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { BrandDto } from '../../settings/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteSettingsAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getAllLanguages = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string[]>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/all-languages',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getBrand = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, BrandDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/brand',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getDefaultLanguage = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string>({\r\n method: 'GET',\r\n responseType: 'text',\r\n url: '/api/cms-admin/site-settings/default-language',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateEntryInput, CultureExistWithSingleSectionInput, EntryDto, GetEntriesInput, MoveEntryInput, SlugExistsInput, UpdateEntryInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto, PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n activate = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/activate/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n create = (input: CreateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entries',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n cultureExistWithSingleSection = (input: CultureExistWithSingleSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/culture-exists-with-single-section',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getAllVersions = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}/all-versions`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetEntriesInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId, startPublishDate: input.startPublishDate, expiryPublishDate: input.expiryPublishDate, filter: input.filter, status: input.status, creatorId: input.creatorId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getListByIds = (sectionId: string, ids: string[], config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/search-by-ids',\r\n params: { sectionId, ids },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n move = (id: string, input: MoveEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/move/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n slugExists = (input: SlugExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/slug-exists',\r\n params: { culture: input.culture, sectionId: input.sectionId, slug: input.slug },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'PUT',\r\n url: '/api/cms-admin/entries',\r\n params: { id },\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateEntryTypeInput, EntryTypeDto, EntryTypeNameExistsInput, UpdateEntryTypeInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryTypeAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entry-types',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: EntryTypeNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entry-types/name-exists',\r\n params: { sectionId: input.sectionId, name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateSectionInput, GetSectionsInput, SectionDto, SectionNameExistsInput, SectionRouteExistsInput, UpdateSectionInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SectionAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/sections',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetSectionsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<SectionDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections',\r\n params: { filter: input.filter, isActive: input.isActive, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: SectionNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/name-exists',\r\n params: { name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n routeExists = (input: SectionRouteExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/route-exists',\r\n params: { route: input.route },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/sections/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { ABP, ConfigStateService, LIST_QUERY_DEBOUNCE_TIME, ListService, LocalizationService, PagedResultDto } from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { EntryAdminService, EntryDto, GetEntriesInput } from '../../../proxy/admin/entries';\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { finalize } from 'rxjs/operators';\n// import { SiteAdminService } from '../../../proxy/admin/sites';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\nimport { entryStatusOptions } from '../../../proxy/entries';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums/ecms-component';\nimport { Router } from '@angular/router';\nimport { UpdateListService } from '../../../services/update-list.service';\nimport { SiteSettingsAdminService } from '../../../proxy/admin/settings';\n\n\n@Component({\n selector: 'cms-entries',\n templateUrl: './entries.component.html',\n styleUrls: ['./entries.component.scss'],\n providers: [\n ListService,\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries,\n },\n ]\n})\nexport class EntriesComponent implements OnInit {\n\n constructor(\n private _EntryAdminService: EntryAdminService,\n // private _SiteAdminService: SiteAdminService,\n private _SectionAdminService: SectionAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private configState: ConfigStateService,\n private router: Router,\n private _LocalizationService: LocalizationService,\n ) {\n }\n\n private fb = inject(FormBuilder)\n private _UpdateListService = inject(UpdateListService)\n public readonly list = inject(ListService)\n\n\n ngOnInit(): void {\n this.getPageDate()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n\n /**站点列表 */\n // siteList: any[any] = []\n /**选择的站点id */\n // siteId: string = ''\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n\n /**版块下的语言列表 */\n sectionLanguagesList: any[any] = []\n /**版块下的条目类型列表 */\n entryTypeList: any[any] = []\n /**状态编码 */\n _entryStatusOptions = entryStatusOptions\n\n /**获取页面数据 */\n async getPageDate() {\n // await this.getsiteList()\n await this.getSiteOfSectionList()\n await this.getSectionLanguagesList()\n this.filters = this.filtersForm.value\n this.hookToQuery()\n }\n\n // /**切换站点 */\n // async siteIdChange() {\n // await this.getSiteOfSectionList()\n // await this.getSectionLanguagesList()\n // this.resetData()\n // }\n /**切换板块 */\n async sectionIdChange() {\n this.getSectionOfEntryType()\n await this.getSectionLanguagesList()\n this.resetData()\n }\n /**切换语言 */\n async cultureChange() {\n this.resetData()\n }\n /**获取站点列表 */\n // getsiteList() {\n // return new Promise((resolve, rejects) => {\n // this._SiteAdminService.getList({}).subscribe(res => {\n // this.siteList = res.items\n // this.filtersForm.get('siteId').patchValue(res.items[0]?.id || '')\n // resolve(res.items)\n // })\n // })\n // }\n\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n // let siteId = this.filtersForm.get('siteId').value\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n // siteId: siteId\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.filtersForm.get('sectionId').patchValue(res.items[0]?.id || '')\n this.getSectionOfEntryType()\n resolve(res.items)\n })\n })\n }\n\n /**获取版块下的条目类型 */\n getSectionOfEntryType() {\n let sectionId = this.filtersForm.get('sectionId').value\n this.entryTypeList = this.SiteOfSectionList.find(el => el.id == sectionId)?.entryTypes || []\n }\n\n private config = inject(ConfigStateService)\n private _SiteSettingsAdminService = inject(SiteSettingsAdminService)\n /**获取版块下的语言列表 */\n getSectionLanguagesList() {\n return new Promise(async (resolve, rejects) => {\n //获取所有语言 */\n let languagesSystem = this.configState.getDeep('localization.languages')\n //获取系统默认语言 */\n let DefaultLanguage = this.config.getSetting(\"Abp.Localization.DefaultLanguage\");\n const configCmsSiteLanguages = this.config.getSetting(\"Cms.Site.Languages\")\n await this.getSiteSettingsLanguages()\n const LanguagesSite = (configCmsSiteLanguages ? configCmsSiteLanguages.split(',') : '') || this.SiteSettingsAdminLanguages\n let LanguagesArray = languagesSystem.filter(el => LanguagesSite.includes(el.cultureName))\n //获取当前选择的语言\n let nowculture = this.filtersForm.get('culture').value\n //当前选择的语言,是否在版块的的语言列表中\n let isexist = LanguagesArray.find(el => el.cultureName == nowculture)\n this.filtersForm.get('culture').patchValue(nowculture ? isexist ? nowculture : DefaultLanguage : DefaultLanguage)\n this.sectionLanguagesList = LanguagesArray\n resolve(LanguagesArray)\n })\n }\n\n /**站点设置语言 */\n SiteSettingsAdminLanguages: any[] = []\n /**\n * 获取站点设置语言\n */\n getSiteSettingsLanguages() {\n return new Promise((resolve, rejects) => {\n this._SiteSettingsAdminService.getAllLanguages().subscribe(res => {\n this.SiteSettingsAdminLanguages = res\n resolve(res)\n })\n })\n }\n\n\n\n resetData() {\n this.filters = this.filtersForm.value\n this.list.page = 0\n this.data.items = []\n this.list.get()\n }\n\n /**新增-单个 */\n createEntriesBtn() {\n this.router.navigate(['/cms/admin/entries/create'], {\n queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }\n })\n }\n\n /**列表相关 */\n ColumnMode = ColumnMode;\n data: PagedResultDto<EntryDto> = {\n items: [],\n totalCount: 0,\n };\n\n filters = {} as GetEntriesInput;\n filtersForm: FormGroup = this.fb.group({\n siteId: [''],\n sectionId: [''],\n culture: [''],\n filter: [''],\n })\n\n hookToQuery() {\n\n const getData = (query: ABP.PageQueryParams) => this._EntryAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<EntryDto>) => {\n this.data = list\n };\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n\n /**删除条目 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n\n });\n }\n\n\n}\n","<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateEntryInputBase {\r\n /**语言 */\r\n culture: any = ['', [Validators.required]]\r\n /**条目id */\r\n entryTypeId: any = ['']\r\n /**标题 */\r\n title: any = ['', [Validators.required]]\r\n /**别名 */\r\n slug: any = ['', [Validators.required]]\r\n /**是否是草稿 */\r\n draft: any = ['', []]\r\n /**发布时间 */\r\n publishTime: any = ['', [Validators.required]]\r\n /**上级目录 */\r\n parentId:any=[null]\r\n /**修订说明 */\r\n versionNotes:any=[null]\r\n /**版本 */\r\n initialVersionId: any = [null]\r\n extraProperties: FormGroup | undefined = new FormGroup({})\r\n constructor(data?: CreateOrUpdateEntryInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import type { CreateOrUpdateFieldGroupInput, FieldGroupDto, GetFieldGroupsInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldGroupAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/field-groups',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldGroupsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldGroupDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/field-groups',\r\n params: { input },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { FormControlDto } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getFormControls = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<FormControlDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/dynamic-forms/forms',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FieldGroupAdminService } from '../proxy/admin/fields/field-group-admin.service';\nimport { FieldGroupDto } from '../proxy/admin/fields/models';\nimport { FormAdminService } from '../proxy/admin/dynamic-forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldAbstractsService {\n\n constructor(\n private _FieldGroupAdminService: FieldGroupAdminService,\n private _FormAdminService: FormAdminService,\n ) { }\n /**字段分组列表 */\n fieldGroupList: FieldGroupDto[] = []\n /**获取字段分组列表 */\n getfieldGroupList() {\n this._FieldGroupAdminService.getList({}).subscribe(res => {\n this.fieldGroupList = res.items\n })\n }\n\n /**表单控件类型 */\n fromControlList: any[] = []\n /**获取表单控件类型 */\n getFromControlList() {\n return new Promise((resolve, reject) => {\n this._FormAdminService.getFormControls({}).subscribe(res => {\n this.fromControlList = res.items\n resolve(res.items)\n })\n })\n }\n getExcludeAssignControl(typeName?) {\n // return this.fromControlList.filter(el => el.name !== typeName)\n return this.fromControlList\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { RestService } from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CmsService {\r\n apiName = 'Cms';\r\n\r\n constructor(private restService: RestService) {}\r\n\r\n sample() {\r\n return this.restService.request<void, any>(\r\n { method: 'GET', url: '/api/Cms/sample' },\r\n { apiName: this.apiName }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { pinyin } from 'pinyin-pro';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CmsApiService {\n\n constructor(\n private titleService: Title,\n ) { }\n /**动态设置浏览器标题 */\n setBrowserTitle(title:string){\n this.titleService.setTitle(title)\n }\n \n\n /**\n * 识别中文转化为拼音,固定返回类型\n * 汉字转拼音\n * 大写转小写\n * \n * */\n chineseToPinyin(value: any) {\n //去除字符串中所有的空格\n // let val = value\n let val = value.replaceAll(' ', \"-\")\n let array = val.split('')\n let newArray = []\n array.forEach((el: any, index: any) => {\n //转化为小写\n let elChange = el.toLowerCase()\n let isChinese = (str) => {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n if (isChinese(elChange)) {\n const resultWithoutTone = pinyin(elChange, { toneType: 'none', type: 'array' });\n elChange = resultWithoutTone.toString() \n if (index < array.length - 1) elChange+='-'\n };\n newArray.push(elChange)\n });\n let pinyinstr = newArray.join('')\n return pinyinstr || val\n }\n\n\n /**\n * 深拷贝--方法 */\n deepClone(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n}\n","\r\nimport { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport class SimpleReuseStrategy implements RouteReuseStrategy {\r\n\r\n public handlers: { [key: string]: DetachedRouteHandle } = {};\r\n //表示对路由允许复用\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n //默认对所有路由复用 可通过给路由配置项增加data: { keep: true }来进行选择性使用,代码如下\r\n //如果是懒加载路由需要在生命组件的位置进行配置\r\n if (!route.data.keep) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const key = route.component.name\r\n if (key) {\r\n this.handlers[key] = handle;\r\n }\r\n }\r\n\r\n //若path在缓存中有的都认为允许还原路由\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n if (route.component?.name) {\r\n return !!this.handlers[route.component?.name]\r\n }\r\n return false\r\n }\r\n\r\n // 从缓存中获取快照,若无则返回null\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n if (!route.routeConfig) return null;\r\n //在loadChildren路径上通过修改自定义RouteReuseStrategy中的检索函数时从不检索分离的路由。\r\n if (route.routeConfig.loadChildren) return null;\r\n if (route.component?.name) {\r\n return this.handlers[route.component?.name];\r\n }\r\n return null\r\n }\r\n\r\n //进入路由触发,判断是否同一路由\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, current: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === current.routeConfig;\r\n }\r\n\r\n}\r\n","import { ConfigStateService, LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { AfterContentInit, Component, inject, Input, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\nimport { Observable } from 'rxjs';\nimport { DatePipe, Location } from '@angular/common';\nimport { CmsApiService } from '../../../services';\n\n@Component({\n selector: 'cms-create-or-edit-entries',\n templateUrl: './create-or-edit-entries.component.html',\n styleUrls: ['./create-or-edit-entries.component.scss']\n})\nexport class CreateOrEditEntriesComponent implements AfterContentInit {\n\n\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private configState: ConfigStateService,\n private _SectionAdminService: SectionAdminService,\n private _EntryAdminService: EntryAdminService,\n private datePipe: DatePipe,\n private _LocalizationService: LocalizationService,\n private router: Router,\n private _CmsApiService: CmsApiService,\n ) { }\n\n\n /**语言 */\n cultureName: string = ''\n /**条目id */\n entryTypeId: string = ''\n\n /**新建版本的版本id,同条目id */\n RevisionEntryId: any = ''\n /**选择的条目项 */\n entryTypesItem: any = ''\n /**版块id */\n sectionId: string = ''\n /**版块详情 */\n SectionSelect: any = ''\n /**语言列表 */\n languagesList: any[] = []\n /**条目类型列表-用于选择上级条目 */\n entryTypesList: any[] = []\n /**版本列表 */\n AllVersionsList: any[] = []\n\n /**是否是编辑 */\n @Input() isEdit = false\n\n /**来自父组件的传值 */\n FromParentQueryParams: any = ''\n @Input()\n public set ParentQueryParams(v: any) {\n if (v) {\n this.FromParentQueryParams = v;\n }\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n if (v) {\n this._entity = v;\n }\n }\n /**指定id的条目信息 */\n entrySelect: any = ''\n @Input()\n public set parentEntrySelect(v: any) {\n if (v) {\n let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties))\n v.extraProperties = V_extraProperties\n this.entrySelect = v;\n }\n }\n /**将对象中的ExtraProperties赋值到extraProperties */\n convertExtraProperties(obj) {\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key].forEach(item => {\n if (item.hasOwnProperty('ExtraProperties')) {\n item['extraProperties'] = item['ExtraProperties'];\n }\n });\n }\n }\n return obj;\n }\n\n /**别名表单实体 */\n get sluginput() {\n return this._entity.get('slug')\n }\n /**语言表单实体 */\n get cultureinput() {\n return this._entity.get('culture')\n }\n /**语言表单实体影子 */\n get culture_shadowInput() {\n return this._entity.get('culture_shadow')\n }\n\n /**extraProperties配置表单实体 */\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n async ngAfterContentInit(): Promise<void> {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n let queryParams = this.FromParentQueryParams\n if (this._entity && this.FromParentQueryParams) {\n this._entity.setControl('slug', new FormControl('', {\n validators: Validators.required,\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n }))\n this._entity.setControl('culture_shadow', new FormControl('', {\n validators: [Validators.required],\n asyncValidators: this.cultureAsyncValidator_test(),\n }))\n this._entity.get('culture').disable();\n if (queryParams.RevisionEntryId && this.entrySelect) {\n this.RevisionEntryId = queryParams.RevisionEntryId\n this.setEntryconfig(this.entrySelect);\n } else {\n this.setEntryconfig(queryParams);\n }\n if (this.sectionId) await this.getSectionSelect();\n if (this.RevisionEntryId) await this.getAllVersionsList()\n\n }\n\n\n }\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChildren('FormDynamicontrolRef', { read: ViewContainerRef }) FormDynamicontrolRef: QueryList<ViewContainerRef>;\n\n\n\n\n\n /**定义自定义异步验证 */\n cultureAsyncValidator_test() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subculture = this._entity?.get('culture').value\n if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {\n resolve(null);\n return\n }\n this._EntryAdminService.cultureExistWithSingleSection({\n culture: subculture,\n sectionId: this.sectionId,\n entryTypeId: this.entryTypeId\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntriesAlreadyExistEntryType`, this.entryTypesItem.displayName, this.languagesList.find(el => el.cultureName == subculture).displayName) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n /** \n * 设置条目详情 \n * @param {object} source - 数据源对象 \n */\n setEntryconfig(source: any) {\n this.entryTypeId = source.entryTypeId;\n this.cultureName = source.culture || source.cultureName;\n this.sectionId = source.sectionId;\n }\n time: number = 0\n\n /**定义自定义异步验证 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this._entity?.get('slug').value\n if (subslug == this.entrySelect?.slug) {\n resolve(null);\n return\n }\n this._EntryAdminService.slugExists({\n culture: this.cultureName,\n sectionId: this.sectionId,\n slug: subslug\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntrySlug{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n private config = inject(ConfigStateService)\n\n /**获取版块详情 */\n getSectionSelect() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.get(this.sectionId).subscribe(async (res) => {\n let languages = this.configState.getDeep('localization.languages')\n this.languagesList = languages\n let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId)\n this.SectionSelect = res\n this.entryTypesItem = entryTypesItem\n this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId)\n this._entity.patchValue({\n ...this.entrySelect,\n initialVersionId: this.entrySelect?.initialVersionId || this.RevisionEntryId || '',\n culture: this.cultureName,\n culture_shadow: this.cultureName,\n entryTypeId: this.entryTypeId,\n publishTime: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'),\n })\n resolve(true)\n })\n })\n }\n\n /**获取条目版本列表 */\n getAllVersionsList() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getAllVersions(this.RevisionEntryId).subscribe(res => {\n this.AllVersionsList = res.items\n resolve(res)\n })\n })\n }\n\n /**标题转化别名 */\n setTitleToSlugBlur(event) {\n let val = event.target.value\n let slug = this._entity.get('slug')\n let pinyinstr = ''\n if (slug.value) return\n pinyinstr = this._CmsApiService.chineseToPinyin(val)\n this._entity.patchValue({\n slug: pinyinstr || val\n })\n }\n /**使用Unicode编码范围判断是否是中文字符 */\n isChinese(str) {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n\n /**激活 */\n ActivatedVersion(VersionId) {\n this._EntryAdminService.activate(VersionId).subscribe((res) => {\n this.AllVersionsList.forEach(el => {\n el.isActivatedVersion = el.id === VersionId\n })\n return\n })\n }\n /**编辑版本 */\n toEditUrl(id) {\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries/${id}/edit`]);\n });\n }\n /**删除版本 */\n delectVersion(vid) {\n this._EntryAdminService.delete(vid).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.getAllVersionsList()\n })\n }\n\n}\n","<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <template #FormDynamicRef></template>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs;let i =index\">\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\">\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\"\n style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' |\n abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\n abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","import { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup} from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums/ecms-component';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n\n\n@Component({\n selector: 'cms-create',\n templateUrl: './create.component.html',\n styleUrls: ['./create.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Create,\n },\n ]\n})\nexport class CreateComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private _LocalizationService: LocalizationService,\n private router: Router,\n ) { }\n private fb=inject(FormBuilder)\n private _updateListService=inject(UpdateListService)\n\n /**表单实体 */\n newEntity: FormGroup | undefined\n\n /**是否是草稿 */\n draftType: boolean = false\n /**页面传值用于传递到子组件 */\n queryParams: any = ''\n\n /**指定id的条目信息 */\n entrySelect: any = ''\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit(): Promise<void> {\n this.queryParams = this.route.snapshot.queryParams\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase())\n if(this.queryParams.RevisionEntryId) await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res\n \n resolve(res)\n })\n })\n }\n\n\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft\n })\n let input = this.newEntity.value\n input.publishTime = new Date(new Date(input.publishTime).getTime() + (8 * 60 * 60 * 1000)).toISOString()\n input.culture=this.newEntity.get('culture').value\n console.log(input,'保存',this.newEntity);\n \n if (!this.newEntity.valid) return\n this._EntryAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries`]);\n this._updateListService.updateList();\n });\n })\n }\n\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.draftType = type\n this.submitclick.nativeElement.click()\n }\n /**返回上一页 */\n backTo() {\n this._location.back()\n }\n\n\n\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect; else elseTemplate\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" ></cms-create-or-edit-entries>\n </ng-container>\n <ng-template #elseTemplate>\n <cms-create-or-edit-entries [entity]=\"newEntity\"\n [ParentQueryParams]=\"queryParams\" ></cms-create-or-edit-entries>\n </ng-template>\n </abp-page>\n</form>","/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums/ecms-component';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-edit',\n templateUrl: './edit.component.html',\n styleUrls: ['./edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Edit,\n },\n ],\n})\nexport class EditComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private router: Router,\n private _LocalizationService: LocalizationService\n ) {}\n private fb = inject(FormBuilder);\n private _updateListService = inject(UpdateListService);\n \n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**是否是草稿 */\n draftType: boolean = false;\n\n /**页面传值用于传递到子组件 */\n queryParams: any = '' || {};\n\n /**指定id的条目信息 */\n entrySelect: any = '';\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit() {\n this.queryParams.RevisionEntryId = this.route.snapshot.params.entrieId;\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase());\n await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res;\n resolve(res);\n });\n });\n }\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft,\n });\n let input = this.newEntity.value;\n input.publishTime = new Date(\n new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000\n ).toISOString();\n input.culture = this.newEntity.get('culture').value;\n input.concurrencyStamp = this.entrySelect.concurrencyStamp;\n if (!this.newEntity.valid) return;\n this._EntryAdminService.update(this.entrySelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries`]);\n this._updateListService.updateList();\n });\n });\n }\n\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.draftType = type;\n this.submitclick.nativeElement.click();\n }\n /**返回上一页 */\n backTo() {\n this._location.back();\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'AbpUi::Edit' | abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" [isEdit]=\"true\"></cms-create-or-edit-entries>\n </ng-container>\n </abp-page>\n</form>","import type { CreateFieldInput, FieldDto, GetFieldsInput, UpdateFieldInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/fields',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/fields',\r\n params: { filter: input.filter, groupId: input.groupId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (name: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/name-exists/${name}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/fields/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { FieldGroupAdminService } from '../../../proxy/admin/fields';\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\nimport { finalize} from 'rxjs/operators';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { LocalizationService } from '@abp/ng.core';\n\n@Component({\n selector: 'cms-field-group',\n templateUrl: './field-group.component.html',\n styleUrls: ['./field-group.component.scss']\n})\nexport class FieldGroupComponent implements OnInit {\n constructor(\n private fb: FormBuilder,\n private _FieldGroupAdminService: FieldGroupAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n public _FieldAbstractsService: FieldAbstractsService,\n public _LocalizationService: LocalizationService,\n ) { }\n\n\n /**创建分组表单 */\n createForm: FormGroup | undefined;\n\n /** 编辑分组表单*/\n editGroupForm: FormGroup | undefined;\n\n /**表单已存在的值 */\n selected = {} as any;\n\n /**选择的字段分组id */\n fieldGroupId: string | undefined = ''\n\n /**创建分组模态框状态 */\n createGroupOpen = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**编辑分组模态框状态 */\n editGroupOpen: boolean = false\n\n /**点击分组回调 */\n @Output() OnGroupClickBack = new EventEmitter();\n\n ngOnInit(): void {\n this._FieldAbstractsService.getfieldGroupList()\n }\n\n /**创建字段分组 */\n createGroupBtn() {\n this.createGroupOpen = true\n this.createForm = this.fb.group({\n name: ['', [Validators.required]],\n })\n }\n\n /**创建分组模态框状态改变 */\n createGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n\n /**编辑字段分组 */\n editGroupBtn(itemName: string) {\n this.editGroupOpen = true\n this.editGroupForm = this.fb.group({\n name: [itemName, [Validators.required]],\n })\n }\n\n /**编辑分组模态框状态改变 */\n editGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n\n /**创建字段分组保存 */\n createSave() {\n let input = this.createForm.value\n this.modalBusy = true\n this._FieldGroupAdminService.create(input).pipe(finalize(() => {\n this.modalBusy = false\n this.createGroupOpen = false\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**编辑字段分组保存 */\n editSave() {\n let input = this.editGroupForm.value\n this.modalBusy = true\n this._FieldGroupAdminService.update(this.fieldGroupId, input).pipe(finalize(() => {\n this.modalBusy = false\n this.editGroupOpen = false\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**删除字段分组1 */\n deleteGroupbtn(fieldGroupitem: any) {\n this.confirmation.warn(\n fieldGroupitem.name,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldGroupAdminService.delete(this.fieldGroupId).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.fieldGroupId = ''\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n });\n }\n\n /**字段分组改变 */\n fieldGroupChange(event) {\n this.fieldGroupId = event\n this.OnGroupClickBack.emit(event)\n }\n\n}\n","<div class=\"card-header px-2 py-sm-2 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'Cms::FieldGroup' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-link btn-sm ms-2\"><i class=\"fas fa-plus-circle\" aria-hidden=\"true\"\n (click)=\"createGroupBtn()\"></i></button>\n</div>\n<div class=\"card-body p-0\">\n <div class=\"container-height overflow-auto\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action active\" [class.active]=\"fieldGroupId===''\"\n (click)=\"fieldGroupChange('')\">{{'Cms::AllFields' | abpLocalization}}</li>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <li class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [class.active]=\"fieldGroupId===item.id\" (click)=\"fieldGroupChange(item.id)\">\n <div>{{item.name}}</div>\n <div *ngIf=\"fieldGroupId===item.id\">\n <i class=\"fas fa-trash px-1\" role=\"button\" (click.stop)=\"deleteGroupbtn(item)\"></i>\n <i class=\"fas fa-edit px-1\" role=\"button\" (click.stop)=\"editGroupBtn(item.name)\"></i>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"createGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'Cms::New' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"createForm; else loaderRef\" [formGroup]=\"createForm\" (ngSubmit)=\"createSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"createForm?.invalid\" (click)=\"createSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-modal [(visible)]=\"editGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"editGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"editGroupForm; else loaderRef\" [formGroup]=\"editGroupForm\" (ngSubmit)=\"editSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"editGroupForm?.invalid\" (click)=\"editSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","\nimport { ABP, LIST_QUERY_DEBOUNCE_TIME, ListService, LocalizationService, PagedResultDto } from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FieldAdminService, FieldDto, GetFieldsInput } from '../../../proxy/admin/fields';\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { finalize } from 'rxjs/operators';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-fields',\n templateUrl: './fields.component.html',\n styleUrls: ['./fields.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Fields,\n },\n ]\n})\nexport class FieldsComponent implements OnInit {\n\n constructor(\n public readonly list: ListService,\n private _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private _LocalizationService: LocalizationService,\n private router: Router,\n private _CmsApiService: CmsApiService,\n ) {\n \n }\n private _UpdateListService=inject(UpdateListService)\n /**表格单元格布局类型 */\n ColumnMode = ColumnMode;\n\n /**表格数据 */\n data: PagedResultDto<FieldDto> = {\n items: [],\n totalCount: 0,\n };\n\n /**过滤器 */\n filters = {} as GetFieldsInput;\n\n ngOnInit(): void {\n this.hookToQuery()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n getData(){\n this.list.get()\n }\n\n\n /**字段分组选择回调 */\n fieldGroupChange(event) {\n this.filters.groupId = event\n this.list.page=0\n this.list.get()\n }\n\n\n\n /**使用abp的list获取表格的字段数据列表 */\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) => this._FieldAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<FieldDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n /**新建字段按钮 */\n toFieldsCreateBtn() {\n this.router.navigate(['/cms/admin/fields/create'],\n {\n queryParams: {}\n }\n )\n }\n\n /**删除字段 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n });\n }\n}\n","<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header 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\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\"\n [count]=\"data.totalCount\" [scrollbarH]=\"true\">\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::FormControlName' | abpLocalization\"\n prop=\"formControlName\">\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::Group' | abpLocalization\" prop=\"groupId\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{row.groupName}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [width]=\"190\">\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\" [name]=\"'AbpUi::Actions' | abpLocalization\"\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\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-primary btn-sm\"\n ngbDropdownToggle> <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}</button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n routerLink=\"/cms/admin/fields/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"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 </div>\n </div>\n\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateFieldInputBase {\r\n /**分组id */\r\n groupId: any = ['', []];\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = [undefined, [Validators.required]];\r\n\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: CreateOrUpdateFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n","import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { LocalizationService } from '@abp/ng.core';\n@Component({\n selector: 'cms-create-or-edit-field',\n templateUrl: './create-or-edit-field.component.html',\n styleUrls: ['./create-or-edit-field.component.scss']\n})\nexport class CreateOrEditFieldComponent {\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChild('FormDynamicRef', { read: ViewContainerRef, static: true }) FormDynamicRef: ViewContainerRef;\n\n constructor(\n public _FieldAbstractsService: FieldAbstractsService,\n private _CmsApiService: CmsApiService,\n private _FieldAdminService: FieldAdminService,\n private _LocalizationService: LocalizationService,\n \n ) {\n if (this._FieldAbstractsService.fieldGroupList.length == 0) {\n this._FieldAbstractsService.getfieldGroupList()\n }\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup | undefined) {\n if (v) {\n this._Entity = v;\n this.dataLoaded();\n }\n }\n get formControlName() {\n return this._Entity.get('formControlName')\n }\n /**选择的表单信息 */\n _selected_copy:any\n _selected: any\n @Input()\n public set selected(v: any) {\n if(v) {\n this._selected = v || '';\n this._selected_copy=v\n this.dataLoaded()\n }\n \n }\n\n\n async dataLoaded() {\n if (this._FieldAbstractsService.fromControlList.length == 0) {\n await this._FieldAbstractsService.getFromControlList()\n }\n \n if (this._Entity) {\n if (!this.formControlName.value) {\n this._Entity.patchValue({\n formControlName: this._FieldAbstractsService.fromControlList[0]?.name,\n })\n }\n this._Entity.setControl('name', new FormControl(this.nameInput.value||'', {\n validators: Validators.required,\n asyncValidators: [this.repetitionAsyncValidator()] ,\n updateOn: 'blur'\n }))\n }\n }\n\n\n /**name表单控件 */\n get nameInput() {\n return this._Entity.get('name')\n }\n\n nameInputBlur(event){\n let value = event.target.value\n this.nameInput.patchValue(value)\n }\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**定义异步验证方法 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n if (ctrl.value == this._selected?.name||!ctrl.value) {\n resolve(null);\n return\n }\n this._FieldAdminService.nameExists(ctrl.value).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n formControlNameChange(){\n }\n\n}\n","<form [formGroup]=\"_Entity\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange()\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n\n</form>","import { Component, ElementRef, ViewChild, inject } from '@angular/core';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { Location } from '@angular/common';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services';\nimport { Router } from '@angular/router';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-create-field',\n templateUrl: './create-field.component.html',\n styleUrls: ['./create-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsCreate,\n },\n ]\n})\nexport class CreateFieldComponent {\n \n constructor(\n private fb: FormBuilder,\n public _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router,\n \n ) { }\n private _UpdateListService=inject(UpdateListService)\n \n /**表单实体 */\n newEntity: FormGroup | undefined \n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n this.newEntity= this.fb.group(new CreateOrUpdateFieldInputBase())\n }\n\n /**触发提交按钮 */\n submitclickBtn(){\n this.submitclick.nativeElement.click()\n }\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n if (!this.newEntity.valid) return\n this._FieldAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/fields`]);\n this._UpdateListService.updateList();\n });\n })\n }\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-edit-field',\n templateUrl: './edit-field.component.html',\n styleUrls: ['./edit-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsEdit,\n },\n ]\n})\nexport class EditFieldComponent implements OnInit {\n\n constructor(\n private fb: FormBuilder,\n public _FieldAbstractsService: FieldAbstractsService,\n public _FieldAdminService: FieldAdminService,\n private route: ActivatedRoute,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router,\n ) { }\n\n /**表单实体 */\n newEntity: FormGroup | undefined\n\n /**字段id */\n fieldId: string = '';\n\n /**字段详情 */\n fieldDetails: any;\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n\n async ngOnInit(): Promise<void> {\n const _fieldId = this.route.snapshot.params.id;\n if (_fieldId) {\n this.fieldId = _fieldId;\n this.newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());\n await Promise.all([\n this._FieldAbstractsService.getFromControlList(),\n this.getFieldEdit(),\n ]);\n this.newEntity.patchValue({\n ...this.fieldDetails,\n });\n }\n }\n\n /**获取字段详情 */\n getFieldEdit() {\n return new Promise((resolve, reject) => {\n this._FieldAdminService.get(this.fieldId).subscribe(res => {\n res.groupId = res.groupId ? res.groupId : ''\n this.fieldDetails = res\n resolve(res)\n })\n })\n }\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.submitclick.nativeElement.click()\n }\n private _UpdateListService=inject(UpdateListService)\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n if (!this.newEntity.valid) return\n this._FieldAdminService.update(this.fieldId, input).subscribe((res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/fields`]);\n this._UpdateListService.updateList();\n });\n }))\n }\n\n \n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::EditField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <!-- <div class=\"p-3 bg-white rounded-1\"> -->\n <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { ABP, ConfigStateService, LIST_QUERY_DEBOUNCE_TIME, ListService, LocalizationService, PagedResultDto } from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, ViewChild, OnInit, ElementRef } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\n// import { GetSitesInput, SiteDto, SiteAdminService } from '../../../proxy/admin/sites';\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { finalize } from 'rxjs/operators';\nimport { CreateOrUpdateSitesInputBase } from './create-or-update-sites-input-base';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'cms-sites',\n templateUrl: './sites.component.html',\n styleUrls: ['./sites.component.scss'],\n providers: [\n ListService,\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Sites,\n },\n ]\n})\nexport class SitesComponent {\n // constructor(\n // public readonly list: ListService,\n // // private _SiteAdminService: SiteAdminService,\n // private toaster: ToasterService,\n // private confirmation: ConfirmationService,\n // private fb: FormBuilder,\n // private configState: ConfigStateService,\n // private _LocalizationService: LocalizationService,\n // private _CmsApiService: CmsApiService,\n // ) {}\n // /**创建站点模态框状态 */\n // createSitesOpen: boolean = false\n // /**用于确定模态的繁忙状态是否为真 */\n // modalBusy: boolean = false\n // /**创建站点表单 */\n // createOrEditForm: FormGroup | undefined;\n // get languagesInput() {\n // return this.createOrEditForm.get('languages').value\n // }\n // /**语言列表 */\n // languages: any[]\n // /**站点给定的表单值 */\n // selected: any\n // /**表单控件模板-动态赋值表单控件 */\n // @ViewChild('createModalSubmit', { static: false }) createModalSubmit: ElementRef;\n // ColumnMode = ColumnMode;\n // data: PagedResultDto<SiteDto> = {\n // items: [],\n // totalCount: 0,\n // };\n // filters = {} as GetSitesInput;\n // ngOnInit(): void {\n // this.hookToQuery()\n // }\n // hookToQuery() {\n // const getData = (query: ABP.PageQueryParams) => this._SiteAdminService.getList({\n // ...query,\n // ...this.filters,\n // });\n // const setData = (list: PagedResultDto<SiteDto>) => (this.data = list);\n // this.list.hookToQuery(getData).subscribe(setData);\n // }\n // /**删除字段 */\n // deletefield(row: any) {\n // this.confirmation.warn(\n // row.displayName,\n // this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n // ).subscribe((status: Confirmation.Status) => {\n // if (status == 'confirm') {\n // this._SiteAdminService.delete(row.id).pipe(finalize(() => {\n // })).subscribe(res => {\n // this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n // this.list.get()\n // })\n // }\n // });\n // }\n // /**创建站点模态框状态改变 */\n // createGroupVisibleChange(event) {\n // if (!event) {\n // this.selected = ''\n // return\n // }\n // }\n // /**选择语言改变 */\n // languagesChange(event) {\n // let checked = event.target.checked\n // let value = event.target.value\n // this.languages.forEach(el => {\n // el.ischecked = el.cultureName === value ? checked : el.ischecked;\n // })\n // this.setFromLangguages()\n // }\n // /**设置默认语言 */\n // setDefault(items) {\n // this.languages.forEach(el => {\n // el.isDefault = el.cultureName === items.cultureName;\n // })\n // this.setFromLangguages()\n // }\n // /**设置表单中的语言 */\n // setFromLangguages() {\n // let languagesSelect = this.languages.filter(el => el.ischecked == true)\n // this.createOrEditForm.patchValue({\n // languages: languagesSelect\n // })\n // if (languagesSelect.length == 0) {\n // this.languages.forEach(el => {\n // el.isDefault = false\n // })\n // }\n // }\n // /**表单保存提交 */\n // createOrEditSave() {\n // if (!this.createOrEditForm.valid) return\n // if (this.selected) {\n // return this.EditSave()\n // }\n // this.createSave()\n // }\n // /**创建站点保存 */\n // createSave() {\n // let input = this.createOrEditForm.value\n // this.modalBusy = true\n // if (!this.createOrEditForm.valid) return\n // this._SiteAdminService.create(input).pipe(finalize(() => {\n // this.modalBusy = false\n // this.createSitesOpen = false\n // })).subscribe(res => {\n // this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n // this.list.get()\n // })\n // }\n // /**编辑站点保存 */\n // EditSave() {\n // let input = this.createOrEditForm.value\n // this.modalBusy = true\n // this._SiteAdminService.update(this.selected.id, input).pipe(finalize(() => {\n // this.modalBusy = false\n // this.createSitesOpen = false\n // })).subscribe(res => {\n // this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n // this.list.get()\n // })\n // }\n // /**创建站点按钮 */\n // createSitesBtn() {\n // this.createSitesOpen = true\n // this.createOrEditForm = this.fb.group(new CreateOrUpdateSitesInputBase())\n // this.setAsyncValidatorsFn()\n // this.languages = this.configState.getDeep('localization.languages')\n // this.languages.forEach((el, index) => {\n // el.isDefault = index === 0\n // el.ischecked = index === 0\n // })\n // this.setFromLangguages()\n // }\n // /**编辑站点按钮 */\n // EditSitesBtn(rows) {\n // this.createSitesOpen = true\n // this.languages = this.configState.getDeep('localization.languages')\n // this._SiteAdminService.get(rows.id).subscribe(res => {\n // this.selected = rows\n // this.createOrEditForm = this.fb.group(new CreateOrUpdateSitesInputBase())\n // this.createOrEditForm.patchValue(rows)\n // this.setAsyncValidatorsFn()\n // // 更新语言和默认状态 \n // this.updateLanguages(res.languages);\n // // 设置表单语言 \n // this.setFromLangguages()\n // })\n // }\n // /**设置字段控件异步验证 */\n // setAsyncValidatorsFn() {\n // this.createOrEditForm.setControl('name', new FormControl(this.nameInput.value || '', {\n // validators: Validators.required,\n // asyncValidators: this.nameRepetitionAsyncValidator(),\n // updateOn: 'blur'\n // }))\n // }\n // /**更新语言和默认状态 */\n // updateLanguages(siteLanguages) {\n // this.languages.forEach(language => {\n // const siteLanguage = siteLanguages.find(sl => sl.cultureName === language.cultureName);\n // if (siteLanguage) {\n // language.ischecked = true;\n // language.isDefault = siteLanguage.isDefault;\n // }\n // });\n // }\n // get nameInput() {\n // return this.createOrEditForm.get('name')\n // }\n // get hostInput() {\n // return this.createOrEditForm.get('host')\n // }\n // /**字段标签input失去标点生成字段名字 */\n // disPlayNameInputBlur(event) {\n // let value = event.target.value\n // let pinyin = this._CmsApiService.chineseToPinyin(value)\n // let nameInput = this.nameInput\n // if (nameInput.value) return\n // nameInput.patchValue(pinyin)\n // }\n // /**name定义自定义异步验证 */\n // nameRepetitionAsyncValidator() {\n // return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n // return new Promise(resolve => {\n // let subslug = this.createOrEditForm?.get('name').value\n // if (subslug == this.selected?.name) {\n // resolve(null);\n // return\n // }\n // this._SiteAdminService.nameExists(subslug).subscribe(res => {\n // if (res) {\n // resolve({ repetition: this._LocalizationService.instant(`Cms::SiteName{0}AlreadyExist`, ctrl.value) });\n // } else {\n // resolve(null);\n // }\n // })\n // });\n // };\n // }\n // /**host定义自定义异步验证 */\n // hostRepetitionAsyncValidator() {\n // return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n // return new Promise(resolve => {\n // let subslug = this.createOrEditForm?.get('host').value\n // if (subslug == this.selected?.host || subslug == 'https://') {\n // resolve(null);\n // return\n // }\n // this._SiteAdminService.hostExists(subslug).subscribe(res => {\n // if (res) {\n // resolve({ repetition: this._LocalizationService.instant(`Cms::SiteHost{0}AlreadyExist`, ctrl.value) });\n // } else {\n // resolve(null);\n // }\n // })\n // });\n // };\n // }\n}\n","<!-- <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> -->","import { Validators } from \"@angular/forms\";\r\nexport class CreateOrUpdateSitesInputBase {\r\n displayName: any = ['', [Validators.required]];\r\n name: any = ['', [Validators.required]];\r\n host: any = ['https://', [Validators.required]];\r\n isActive: any = [true, []];\r\n languages:any = [[], [Validators.required]]\r\n constructor(data?: CreateOrUpdateSitesInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport {Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateSectionsInputBase {\r\n /**版块类型 */\r\n type: any = [0, [Validators.required]];\r\n\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n\r\n /**条目路由 */\r\n route: any = ['', [Validators.required]];\r\n /**页面模板 */\r\n template: any = ['', [Validators.required]];\r\n /**是否默认 */\r\n isDefault: any = [false, []];\r\n /**是否激活 */\r\n isActive: any = [true, []];\r\n \r\n\r\n\r\n constructor(data?: CreateOrUpdateSectionsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum SectionType {\r\n Single = 0,\r\n Structure = 1,\r\n Channel = 2,\r\n}\r\n\r\nexport const sectionTypeOptions = mapEnumToOptions(SectionType);\r\n","import {\n ABP,\n LIST_QUERY_DEBOUNCE_TIME,\n ListService,\n LocalizationService,\n PagedResultDto,\n} from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {\n EntryTypeAdminService,\n GetSectionsInput,\n SectionAdminService,\n SectionDto,\n} from '../../../proxy/admin/sections';\nimport { ColumnMode } from '@swimlane/ngx-datatable';\nimport { finalize } from 'rxjs/operators';\nimport { CreateOrUpdateSectionsInputBase } from './create-or-update-sections-input-base';\nimport { SectionType, sectionTypeOptions } from '../../../proxy/sections';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-sections',\n templateUrl: './sections.component.html',\n styleUrls: ['./sections.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Sections,\n },\n ],\n})\nexport class SectionsComponent implements OnInit {\n constructor(\n public readonly list: ListService,\n private _SectionAdminService: SectionAdminService,\n // private _SiteAdminService: SiteAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private fb: FormBuilder,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router\n ) { }\n private _UpdateListService = inject(UpdateListService);\n\n /**跳转编辑 */\n jumpSectionsEdit(row, item) {\n this.router.navigate([`/cms/admin/sections/${row.id}/entry-types/${item.id}/edit`], {});\n }\n /**跳转新建 */\n jumpSectionsCreate(row) {\n this.router.navigate([`/cms/admin/sections/${row.id}/entry-types/create`], {});\n }\n\n /**版块列表 */\n siteList: any[] = [];\n /*** */\n ColumnMode = ColumnMode;\n data: PagedResultDto<SectionDto> = {\n items: [],\n totalCount: 0,\n };\n /** */\n filters = {} as GetSectionsInput;\n /**获取页面列表 */\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) => this._SectionAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<SectionDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n async ngOnInit(): Promise<void> {\n this.hookToQuery();\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get();\n });\n }\n\n /**站点切换 */\n siteIdChange() {\n this.list.page = 0;\n this.list.get();\n }\n\n\n /**创建版块模态框状态 */\n visibleOpen: boolean = false;\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false;\n /**创建版块表单 */\n createOrEditForm: FormGroup | undefined;\n\n /**版块给定的表单值 */\n selected: any;\n\n _SectionType = SectionType;\n _sectionTypeOptions = sectionTypeOptions;\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('createOrEditModalSubmitBtn', { static: false })\n createOrEditModalSubmitBtn: ElementRef;\n\n /**创建版块模态框状态改变 */\n VisibleChange(event) {\n if (!event) {\n this.selected = '';\n return;\n }\n }\n /**创建版块,打开模态框 */\n createSectionBtn() {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n }\n /**编辑版块,打开模态框 */\n editSectionBtn(row) {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n this._SectionAdminService.get(row.id).subscribe(res => {\n this.createOrEditForm.patchValue(res);\n this.selected = res;\n });\n }\n /**删除某个条目类型 */\n deleteEntryType(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryTypeAdminService\n .delete(row.id)\n .pipe(finalize(() => { }))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n\n /**表单保存提交 */\n createOrEditSave() {\n if (this.selected) {\n return this.EditSave();\n }\n this.createSave();\n }\n\n /** */\n createSave() {\n let input = this.createOrEditForm.value;\n // input.siteId = this.filters.siteId;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .create(input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.list.get();\n });\n }\n /**创建版块保存 */\n EditSave() {\n let input = this.createOrEditForm.value;\n // input.siteId = this.filters.siteId;\n input.concurrencyStamp = this.selected.concurrencyStamp;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .update(this.selected.id, input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.list.get();\n });\n }\n /**删除版块 */\n deletefield(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._SectionAdminService\n .delete(row.id)\n .pipe(finalize(() => { }))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n\n /**name表单控件 */\n get displayNameInput() {\n return this.createOrEditForm.get('displayName');\n }\n /**name表单控件 */\n get nameInput() {\n return this.createOrEditForm.get('name');\n }\n /**route表单控件 */\n get routeInput() {\n return this.createOrEditForm.get('route');\n }\n /**route表单控件 */\n get templateInput() {\n return this.createOrEditForm.get('template');\n }\n /**route表单控件 */\n get typeInput() {\n return this.createOrEditForm.get('type');\n }\n\n radiochange() {\n this.routeInput.patchValue(this.routeInput.value);\n }\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value;\n let pinyin = this._CmsApiService.chineseToPinyin(value);\n let nameInput = this.nameInput;\n let routeInput = this.routeInput;\n let templateInput = this.templateInput;\n if (nameInput.value) return;\n nameInput.patchValue(pinyin);\n if (routeInput.value) return;\n routeInput.patchValue(pinyin + (this.typeInput.value === 0 ? '' : '/{slug}'));\n if (templateInput.value) return;\n templateInput.patchValue(pinyin + '/index');\n }\n\n /**设置字段控件异步验证 */\n setAsyncValidatorsFn() {\n this.createOrEditForm.setControl(\n 'name',\n new FormControl(this.nameInput.value || '', {\n validators: Validators.required,\n asyncValidators: this.nameRepetitionAsyncValidator(),\n })\n );\n this.createOrEditForm.setControl(\n 'route',\n new FormControl(this.routeInput.value || '', {\n validators: [Validators.required, this.forbiddenNameValidator()],\n asyncValidators: [this.routeRepetitionAsyncValidator()],\n })\n );\n }\n forbiddenNameValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let inputValue = control.value.toLocaleLowerCase();\n let forbidden =\n this.typeInput.value == 0 ? false : inputValue.includes('{slug}') ? false : true;\n return forbidden\n ? {\n repetition: this._LocalizationService.instant(\n `Cms::RouteVerificationTips`,\n this._LocalizationService.instant(\n `Cms::Enum:SectionType:` + SectionType[this.typeInput.value]\n ),\n '{slug}'\n ),\n }\n : null;\n };\n }\n\n /**定义异步验证方法 */\n nameRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('name');\n if (subslug.value == this.selected?.name) {\n resolve(null);\n return;\n }\n this._SectionAdminService\n .nameExists({\n name: subslug.value,\n })\n .subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionName{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n /**定义异步验证方法 */\n routeRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('route').value;\n if (subslug == this.selected?.route) {\n resolve(null);\n return;\n }\n this._SectionAdminService\n .routeExists({\n // siteId: this.filters.siteId,\n route: subslug,\n })\n .subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionRoute{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n}\n","<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}:</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">是</option>\n <option [value]=\"false\">否</option>\n </select>\n </div>\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-2 col-4\">\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>\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 \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\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::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\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::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\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::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\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-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\"\n (click.stop)=\"jumpSectionsEdit(row,item)\">{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem (click.stop)=\"jumpSectionsCreate(row)\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\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\" [frozenRight]=\"true\" [name]=\"'AbpUi::Actions' | abpLocalization\" cellClass=\"cellClassRight\" [width]=\"100\">\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-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n 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)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($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\" [formGroup]=\"createOrEditForm\" (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\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)\" placeholder=\"\" />\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\" placeholder=\"\" />\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::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <div class=\"form-text\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\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=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\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=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n\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\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { FormArray, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrEditEntryTypeInputBase {\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**条目路由 */\r\n fieldTabs: any = new FormArray([])\r\n \r\n constructor(data?: CreateOrEditEntryTypeInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldTabsBase {\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n fields?: any = [[], []]\r\n constructor(data?: fieldTabsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldsBase {\r\n /**字段id Unique Name*/\r\n fieldId: any = ['', [Validators.required]];\r\n /**显示名称 Unique Name*/\r\n displayName: any = ['', [Validators.required]];\r\n /**必填 Unique Name*/\r\n required: any = [false, []];\r\n /**是否在列表中显示 Unique Name*/\r\n showOnList: any = [false, []];\r\n\r\n constructor(data?: fieldsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport class fieldsInputBase {\r\n /**字段id */\r\n fieldId = ['', [Validators.required]];\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 Unique Name*/\r\n required: any = [false, []];\r\n /**在列表中展示 Unique Name*/\r\n showOnList: any = [false, []];\r\n constructor(data?: fieldsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n","import { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { Location } from '@angular/common';\nimport { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from './create-or-edit.-entry-type-input-base';\nimport { FieldGroupAdminService, FieldAdminService } from '../../../../proxy/admin/fields';\nimport { EntryTypeAdminService } from '../../../../proxy/admin/sections';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../../enums';\nimport { CmsApiService } from '../../../../services/cms-api.service';\nimport { UpdateListService } from '../../../../services/update-list.service';\n\n@Component({\n selector: 'cms-create-or-edit',\n templateUrl: './create-or-edit.component.html',\n styleUrls: ['./create-or-edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.SectionsCreateOrEdit,\n },\n ]\n})\nexport class CreateOrEditComponent implements OnInit {\n\n constructor(\n // private fb: FormBuilder,\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n public _FieldGroupAdminService: FieldGroupAdminService,\n public _FieldAdminService: FieldAdminService,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router,\n ) { }\n private fb = inject(FormBuilder)\n private _UpdateListService = inject(UpdateListService)\n /**表单实体 */\n newEntity: FormGroup | undefined = this.fb.group(new CreateOrEditEntryTypeInputBase())\n /**版块id */\n sectionId: string = ''\n /**条目类型id */\n entryTypesId: string = ''\n /**条目类型详情 */\n entryTypesSelect: any\n\n get fieldTabs() {\n return this.newEntity.get('fieldTabs') as FormArray;\n }\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.submitclick.nativeElement.click()\n }\n ngOnInit() {\n let sectionId = this.route.snapshot.params.sectionsId\n this.entryTypesId = this.route.snapshot.params.entryTypesId || ''\n if (sectionId) {\n this.sectionId = sectionId\n this.addControlToFieldTabs()\n this.getFieldGroup()\n }\n }\n\n /**给fieldTabs添加新控件 */\n addControlToFieldTabs(nameValue = '') {\n const newFormGroup = this.fb.group(new fieldTabsBase({\n name: this.fieldTabs.length === 0 ? this._LocalizationService.instant(`Cms::FieldTab`) : nameValue,\n }));\n this.fieldTabs.push(newFormGroup)\n this.resultSource.push(newFormGroup.value)\n this.navActive = this.resultSource.length - 1\n }\n\n\n /**获取字段分组 */\n getFieldGroup() {\n this._FieldGroupAdminService.getList({}).subscribe(async (res) => {\n let fieldList: any = await this.getFieldList()\n let fieldGroupList = res.items\n fieldGroupList.unshift({\n id: null,\n name: 'UngroupedFields'\n })\n fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id)\n });\n this.fieldGroupList = fieldGroupList\n this.fieldList = this.deepClone(fieldList)\n let entryTypesId = this.entryTypesId\n if (entryTypesId) {\n this.entryTypesId = entryTypesId\n this.getEntryTypes()\n }\n })\n }\n /**获取条目类型详情 */\n getEntryTypes() {\n let fieldList: any = this.deepClone(this.fieldList)\n this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {\n res.fieldTabs.forEach(el => {\n el.fields.forEach((eld: any) => {\n eld.id = eld.fieldId\n eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId\n this.formRightGroup.push(eld)\n let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId)\n fieldList.splice(fieldindex, 1)\n })\n })\n this.fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id)\n });\n this.newEntity.patchValue(res)\n this.entryTypesSelect = res\n this.resultSource = res.fieldTabs\n })\n }\n /**\n * 深拷贝--方法\n * $api.deepClone() */\n deepClone(obj: any) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n /**\n * \n * @param nameValue 获取所有字段\n */\n getFieldList() {\n return new Promise((resolve, rejects) => {\n this._FieldAdminService.getList({\n maxResultCount: 1000\n }).subscribe((res: any) => {\n res.items.forEach(el => {\n el.required = false\n el.showOnList = false\n })\n resolve(res.items)\n })\n })\n }\n\n\n /**\n * 拖拽 功能*/\n /**数据源 */\n /**数据源-字段分组数据-包含字段数据 fields */\n fieldGroupList: any[] = []\n /**数据源-所有字段列表 */\n fieldList: any[] = []\n /**数据源拖拽的分组下标 */\n DataSourceGroupIndex: number\n /**数据源拖拽的字段下标 */\n DataSourceFieldIndex: number\n /**目标源 结果*/\n resultSource: any[] = []\n\n /**从数据源拖拽的元素 */\n fromDataSourceDragEl: any\n /**从目标源拖拽的元素 */\n fromResultSourceDragEl: any\n\n /**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */\n formRightGroup: any[] = []\n /**从数据源开始拖拽 */\n fromDataSourceDragStart(element, fieldIndex, groupIndex) {\n this.fromDataSourceDragEl = element\n this.DataSourceFieldIndex = fieldIndex\n this.DataSourceGroupIndex = groupIndex\n this.fromResultSourceDragEl = undefined\n\n }\n /**从目标源开始拖拽 */\n fromResultSourceDragStart(element) {\n this.fromResultSourceDragEl = element\n this.fromDataSourceDragEl = undefined\n this.DataSourceFieldIndex = undefined\n this.DataSourceGroupIndex = undefined\n }\n /**拖拽到数据源时触发 */\n dragToDataSourceDropped() {\n //从数据源拖拽到数据源-排序\n if (this.fromDataSourceDragEl) {\n }\n let _fromResultSourceDragEl = this.fromResultSourceDragEl\n let formRightGroup = this.deepClone(this.formRightGroup)\n let fieldList = this.deepClone(this.fieldList)\n\n if (_fromResultSourceDragEl) {//移动\n //从目标源拖拽到数据源\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id)\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1)\n formRightGroup.splice(formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id), 1)\n this.fieldGroupList.forEach(el => {\n if (el.id == _fromResultSourceDragEl.groupId) {\n const elFieldsAll = fieldList.filter(els => els.groupId === el.id)\n el.fields = elFieldsAll.filter(item => !formRightGroup.some(itemB => item.id === itemB.id));\n }\n })\n this.formRightGroup = formRightGroup\n }\n\n this.setfieldTabsFrom()\n }\n /**拖拽到目标源时触发\n * \n */\n dragToResultSourceDropped(fieldTabstem: any, fieldTabsIndex) {\n const _fromDataSourceDragEl = this.fromDataSourceDragEl\n //从数据源拖拽到目标源\n if (_fromDataSourceDragEl) {\n this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1)\n this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl)\n this.formRightGroup.push(_fromDataSourceDragEl)\n }\n\n this.setfieldTabsFrom()\n }\n /** 从目标源拖拽到目标源*/\n dragToResultSourceItemDropped(fieldsIndex) {\n const _fromResultSourceDragEl = this.fromResultSourceDragEl\n if (_fromResultSourceDragEl) {\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id)\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1)\n this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl)\n }\n this.setfieldTabsFrom()\n }\n /**设置formA表单 */\n setfieldTabsFrom() {\n let setArray = []\n this.resultSource.forEach(el => {\n let fieldsArray = []\n el.fields.forEach(item => {\n fieldsArray.push({\n \"fieldId\": item.id || item.fieldId,\n \"displayName\": item.displayName,\n \"required\": item?.required,\n \"showOnList\": item?.showOnList\n })\n })\n setArray.push({\n name: el.name,\n fields: fieldsArray\n })\n })\n this.newEntity.patchValue({\n fieldTabs: setArray\n })\n }\n\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n if (this.entryTypesSelect) {\n this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/sections`]);\n this._UpdateListService.updateList();\n });\n })\n return\n }\n input.sectionId = this.sectionId\n this._EntryTypeAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/sections`]);\n this._UpdateListService.updateList();\n });\n })\n\n\n\n }\n /**编辑Tabs表单 */\n editFieldTabsFrom: FormGroup | undefined;\n /**模态框状态 */\n visibleTabsOpen: boolean = false\n /**是否是忙碌状态 */\n modalBusy: boolean = false\n /**正在编辑的tabs */\n editFieldTabsSelect: any\n /**正在选中的nav */\n navActive: any = 0\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('editFieldTabsModalSubmitBtn', { static: false }) editFieldTabsModalSubmitBtn: ElementRef;\n\n /**模态框状态改变回调 */\n VisibleTabsChange(event) {\n if (!event) {\n this.editFieldTabsSelect = ''\n return\n }\n }\n /**新建增加FieldTabs */\n addFieldTabs() {\n this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());\n this.visibleTabsOpen = true\n\n }\n /**正在编辑的tab下标 */\n newEditFieldTabsIndex: number\n /**编辑FieldTabs */\n editFieldTabs(item, i) {\n this.editFieldTabsFrom = this.fb.group(new fieldTabsBase({\n name: item.name\n }));\n this.editFieldTabsSelect = item\n this.visibleTabsOpen = true\n this.newEditFieldTabsIndex = i\n }\n\n /**保存编辑tabs表单 */\n editFieldTabsSave() {\n //编辑\n if (this.editFieldTabsSelect) {\n this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name\n this.navActive = this.newEditFieldTabsIndex\n } else {\n //新建\n this.addControlToFieldTabs(this.editFieldTabsFrom.value.name)\n }\n this.visibleTabsOpen = false\n this.setfieldTabsFrom()\n }\n /**删除某个tabs表单 */\n deleteFieldTabs(index) {\n this.fieldTabs.removeAt(index)\n this.resultSource.splice(index, 1)\n }\n\n\n /**编辑字段模态框状态 */\n visibleEditFieldOpen: boolean = false\n /**编辑字段模态框表单 */\n editFieldFrom: FormGroup | undefined;\n /**表单控件模板-动态赋值表单控件-编辑字段 */\n @ViewChild('editFieldModalSubmitBtn', { static: false }) editFieldModalSubmitBtn: ElementRef;\n /**正在编辑的字段下标 */\n EditFieldIndex: number;\n /**编辑字段模态框状态状态改变回调 */\n VisibleEditFieldChange(event) {\n if (!event) {\n this.EditFieldIndex = undefined\n return\n }\n }\n /**打开编辑字段模态框 */\n EditFieldModalOpen(items, elIndex) {\n this.visibleEditFieldOpen = true\n this.EditFieldIndex = elIndex\n this.editFieldFrom = this.fb.group(new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex]))\n }\n /**保存编辑字段 */\n editFieldSave() {\n let input = this.editFieldFrom.value\n this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName\n this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required\n this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList\n this.visibleEditFieldOpen = false\n this.setfieldTabsFrom()\n }\n\n /**name表单控件 */\n get nameInput() {\n return this.newEntity.get('name')\n }\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\" [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\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)\" placeholder=\"\" />\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\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <!-- -->\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem\n *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\" style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n \n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('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=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (ngSubmit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\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\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (ngSubmit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn 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\" placeholder=\"\" />\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=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\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=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}} </label>\n </div>\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\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import type { DomainDto, UpdateDomainInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DomainAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getBound = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/bound',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (domainName: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/name-exists',\r\n params: { domainName },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateDomainInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/domains',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, inject } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { DomainAdminService } from '../../../proxy/admin/domains';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'cms-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss']\n})\nexport class DomainsComponent {\n\n private toaster = inject(ToasterService)\n private _DomainAdminService = inject(DomainAdminService);\n private _LocalizationService = inject(LocalizationService);\n\n\n\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**domain详情 */\n domainInfo:any=''\n get domainNameInput() {\n return this.newEntity.get('domainName')\n }\n\n async ngOnInit(): Promise<void> {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n \n this.newEntity = new FormGroup({\n domainName: new FormControl('', {\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n })\n })\n await this.getDomainsBound()\n\n }\n\n /**用于获取已绑定的域名 */\n getDomainsBound(){\n // console.log(111111111,'');\n return new Promise((resolve,rejects)=>{\n this._DomainAdminService.getBound().subscribe(res=>{\n this.domainNameInput.patchValue(res.domainName)\n this.domainInfo=res\n resolve(res)\n })\n })\n }\n\n //检验域名是否已经绑定\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let domainNameInput = this.domainNameInput.value\n if (!domainNameInput) {\n resolve(null);\n return\n }\n if (this.domainInfo?.domainName===domainNameInput) {\n resolve(null);\n return\n }\n this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {\n console.log(res, '检验域名是否已经绑定');\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n /**保存 */\n SaveSubmit() {\n let input = this.newEntity.value\n console.log(input, '保存');\n this._DomainAdminService.update(input).subscribe(async(res)=>{\n this.toaster.success(this._LocalizationService.instant(`AbpUi::保存成功`));\n await this.getDomainsBound()\n })\n }\n\n \n}\n","<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n <button class=\"btn btn-primary \" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n</form>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class EntryConfig {\r\n\r\n\r\n /**多选 */\r\n 'Entry.Multiple': any = [false, []];\r\n /**占位符 */\r\n 'Entry.Placeholder': any = ['', []];\r\n /**版块id */\r\n 'Entry.SectionId': any = ['', []];\r\n\r\n constructor(data?: EntryConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { AfterContentInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport { EntryConfig } from './entry-config';\n// import { SiteAdminService } from '../../../proxy/admin/sites';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\n@Component({\n selector: 'cms-entry-config',\n templateUrl: './entry-config.component.html',\n styleUrls: ['./entry-config.component.scss']\n})\nexport class EntryConfigComponent implements AfterContentInit{\n constructor(\n private fb: FormBuilder,\n // private _SiteAdminService: SiteAdminService,\n private _SectionAdminService: SectionAdminService,\n ) {\n }\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n if (v == this._type) return\n\n this._type = v\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**站点列表 */\n siteList: any[any] = []\n\n /**选择的站点id */\n // siteId: string = ''\n siteId: any = new FormControl('')\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n ngAfterContentInit(): void {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n this.dataLoaded(2)\n }\n\n async dataLoaded(val) {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new EntryConfig()))\n // await this.getsiteList()\n await this.getSiteOfSectionList()\n if (this._selected) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration\n })\n }\n resolve(true)\n })\n }\n\n /**获取站点列表 */\n // getsiteList() {\n // return new Promise((resolve, rejects) => {\n // this._SiteAdminService.getList({}).subscribe(res => {\n // this.siteList = res.items\n // this.siteId = res.items[0]?.id || ''\n // resolve(res.items)\n // })\n // })\n // }\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n // siteId: this.siteId\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.formConfiguration.patchValue({\n 'Entry.SectionId': res.items[0]?.id || ''\n })\n resolve(res.items)\n })\n })\n }\n\n /**切换站点 */\n async siteIdChange() {\n await this.getSiteOfSectionList()\n }\n}\n","<div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sites' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\n <ng-container *ngFor=\"let item of siteList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n</div>\n<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" formControlName=\"Entry.SectionId\">\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Entry.Multiple\" id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'Cms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Entry.Placeholder\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EntryStatus } from '../../../proxy/entries/entry-status.enum';\n\n\n@Component({\n selector: 'cms-entry-control',\n templateUrl: './entry-control.component.html',\n styleUrls: ['./entry-control.component.scss']\n})\nexport class EntryControlComponent {\n\n\n constructor(\n ) {\n }\n private fb=inject(FormBuilder)\n private _EntryAdminService=inject(EntryAdminService)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n \n if (v) this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n if (v) this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n if (v) this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v || [];\n if (v) this.dataLoaded()\n }\n /**语言 */\n_culture: any\n @Input()\n public set culture(v: any) {\n if (v) {\n this._culture = v ;\n this.dataLoaded()\n }\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n extraProperties: FormGroup | undefined\n\n /** */\n listOfOption: any[] = [];\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName&&this._culture) {\n await this.AfterInit()\n await this.getEntryAssignList()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray)\n let extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n\n /**获取对应的条目 */\n getEntryAssignList(filter = '') {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getList({\n culture: this._culture,\n sectionId: this._fields.field.formConfiguration['Entry.SectionId'],\n skipCount: 0,\n maxResultCount: 30,\n status: EntryStatus.Published,\n filter: filter\n }).subscribe(res => {\n this.listOfOption = res.items\n resolve(true)\n })\n })\n }\n\n /** */\n async SelectChange(event) {\n await this.getEntryAssignList(event)\n }\n}\n","<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class MatrixConfig {\r\n // 矩阵类型\r\n 'MatrixBlockTypes': any = new FormArray([])\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class MatrixItemConfig {\r\n \r\n displayName: any = ['', [Validators.required]];\r\n /**字段名字 */\r\n name: any = ['', [Validators.required]];\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\n\r\n\r\nexport class matrixFieldInputBase {\r\n\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = ['TextEdit', [Validators.required]];\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: matrixFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { Component, ElementRef, Input, ViewChild, } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatrixConfig, MatrixItemConfig } from './matrix-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-matrix-config',\n templateUrl: './matrix-config.component.html',\n styleUrls: ['./matrix-config.component.scss']\n})\nexport class MatrixConfigComponent {\n\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n\n /**表单控件组 */\n _FieldControlGroup: any[]\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n\n\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n\n\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._FieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n this._Entity.setControl('formConfiguration', this.fb.group(new MatrixConfig()))\n await this.setSelectValue()\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n resolve(true)\n })\n }\n\n\n setSelectValue() {\n return new Promise((resolve, rejects) => {\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['MatrixBlockTypes'].forEach(((el, index) => {\n this.addMatrixBlockTypeItem(el)\n el.fields.forEach((elf, indexf) => {\n this.addMatrixFieldItem(elf, index)\n })\n }))\n resolve(true)\n }\n \n })\n }\n\n /**获取表单配置 */\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n\n /**获取表单配置下的矩阵块表单数组 */\n get MatrixBlockTypes() {\n return this.formConfiguration.controls['MatrixBlockTypes'] as FormArray\n }\n\n\n /**模态框-状态 */\n matrixModalOpen: boolean = false\n /**模态框-是否正在编辑 */\n isMatrixModalEdit: any = false\n\n /**模态框-用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**模态框-表单 */\n matrixModalForm: FormGroup | undefined;\n\n /**表单控件模板-用于在form外提交submit */\n @ViewChild('matrixModalModalSubmit', { static: false }) matrixModalModalSubmit: ElementRef;\n\n /**矩阵块-选择的下标 */\n selectMatrixBlockIndex: any = 0\n\n /**矩阵块-选择的矩阵下字段的下标 */\n selectMatrixFieldIndex: any = 0\n\n /**模态框-状态改变 */\n matrixModalVisibleChange(event) {\n if (!event) {\n this.isMatrixModalEdit = false\n this.matrixModalForm = undefined\n return\n }\n }\n\n\n /**矩阵块--新增-打开模态框 */\n addMatrixBlockType() {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalOpen = true\n }\n\n\n\n /**模态框--矩阵表单保存提交 */\n createOrEditSave() {\n let input = this.matrixModalForm.value\n if (!this.matrixModalForm.valid) return\n if (this.isMatrixModalEdit) {\n let MatrixBlockTypesItem = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n MatrixBlockTypesItem.patchValue({\n ...input\n })\n } else {\n this.addMatrixBlockTypeItem(input)\n }\n this.matrixModalOpen = false\n }\n /**新增矩阵块-向数组表单中增加项 */\n addMatrixBlockTypeItem(input) {\n this.MatrixBlockTypes.push(new FormGroup({\n displayName: new FormControl(input.displayName, Validators.required),\n name: new FormControl(input.name, Validators.required),\n fields: new FormArray([])\n }))\n }\n /**编辑矩阵块 */\n EditMatrixBlock(input) {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalForm.patchValue({\n ...input\n })\n this.matrixModalOpen = true\n this.isMatrixModalEdit = true\n }\n\n /**删除矩阵块 */\n DeleteMatrixBlock(index) {\n this.MatrixBlockTypes.removeAt(index)\n }\n\n /**矩阵块-选择 */\n selectMatrixBlockChange(index) {\n this.selectMatrixBlockIndex = index\n }\n\n /**矩阵字段-新增 */\n addMatrixField() {\n this.addMatrixFieldItem('', this.selectMatrixBlockIndex)\n \n }\n /**矩阵字段-新增矩阵字段项 */\n addMatrixFieldItem(input: any = '', selectMatrixBlockIndex) {\n /**矩阵下标的矩阵项Form */\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n MatrixFieldItemForm.push(this.fb.group({\n /**字段名称 Display name of this field */\n displayName: [input.displayName, [Validators.required]],\n /**字段唯一名称 Unique Name*/\n name: [input.name, [Validators.required]],\n /**描述 说明 */\n description: [input.description, []],\n /**FieldType字段类型 表单控件名称 */\n formControlName: [input.formControlName || 'TextEdit', [Validators.required]],\n //动态表单配置\n formConfiguration: new FormGroup({}),\n }))\n //\n }\n\n /**删除矩阵字段项 */\n deleteMatrixField(MatrixFieldForm, index) {\n MatrixFieldForm.removeAt(index)\n this.selectMatrixFieldIndex = 0\n }\n\n /**矩阵字段-选择 */\n selectMatrixFieldChange(MatrixBlockIndex, MatrixFieldIndex) {\n this.selectMatrixFieldIndex = MatrixFieldIndex\n }\n\n get nameInput() {\n return this.matrixModalForm?.get('name')\n }\n get FieldnameInput() {\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n return MatrixFieldItemForm.at(this.selectMatrixFieldIndex).get('name')\n }\n\n /**矩阵displayNameInput字段失去焦点 */\n displayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**矩阵displayNameInput字段失去焦点 */\n MatrixFieldDisplayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let FieldnameInput = this.FieldnameInput\n if (FieldnameInput.value) return\n FieldnameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <div class=\"form-text\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&item\">\n <df-dynamic [type]=\"itemf.value.formControlName\" [entity]=\"item\"\n [selected]=\"_selected?_selected['formConfiguration']['MatrixBlockTypes'][i]['fields'][fi]:''\"></df-dynamic>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('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=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'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\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\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)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'df-matrix-control',\n templateUrl: './matrix-control.component.html',\n styleUrls: ['./matrix-control.component.scss']\n})\nexport class MatrixControlComponent {\n\n constructor(\n private fb: FormBuilder,\n ) {\n\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n if (this._selected) this.fieldNameControl.patchValue(this._selected);\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let formConfiguration = this._fields.field.formConfiguration\n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addMatrixControl(formConfiguration.MatrixBlockTypes.find(item => item.name == el.matrixBlockTypeName))\n });\n }\n this.MatrixBlockTypesList = formConfiguration.MatrixBlockTypes\n resolve(true)\n })\n }\n\n /**矩阵列表 */\n MatrixBlockTypesList: any[] = []\n\n /**增加指定矩阵控件项 */\n addMatrixControl(item) {\n this.fieldNameControl.push(this.fb.group({\n extraProperties: new FormGroup({}),\n matrixBlockTypeName: [item.name],\n displayName: [item.displayName]\n }))\n }\n /**删除矩阵控件 */\n deleteMatrixControl(index) {\n this.fieldNameControl.removeAt(index)\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container>\n <df-dynamic [entity]=\"item\"\n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i][_parentFiledName][elf.name]: ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class TableConfig {\r\n\r\n\r\n\r\n // 选项\r\n TableColumns: any = new FormArray([])\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class TableFormControl {\r\n /**列标题 */\r\n displayName: any = ['', [Validators.required]];\r\n /**空间配置 */\r\n formConfiguration: any = new FormGroup({})\r\n /**列名 */\r\n name: any = ['', [Validators.required]];\r\n //控件标识\r\n formControlName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 */\r\n required: any = [false];\r\n /**描述 */\r\n description: any = [''];\r\n\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { TableConfig, TableFormControl } from './table-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-table-config',\n templateUrl: './table-config.component.html',\n styleUrls: ['./table-config.component.scss']\n})\nexport class TableConfigComponent {\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n /**表单控件组 */\n _fieldControlGroup: any[]\n\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n get TableColumns() {\n return this.formConfiguration.controls['TableColumns'] as FormArray\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n\n }\n }\n /**增加选项 */\n addTableColumns() {\n this.TableColumns.push(this.fb.group({\n ...new TableFormControl(),\n formConfiguration: [{}]\n }))\n }\n /**删除某个选项 */\n deleteTableColumns(index) {\n this.TableColumns.removeAt(index)\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new TableConfig()))\n this._fieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['TableColumns'].forEach(el => {\n this.addTableColumns()\n });\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n } else {\n this.addTableColumns()\n }\n resolve(true)\n })\n }\n itemForm: any\n /**选择表格的表单控件 */\n selectTableControl(event, i, item) {\n this.CurrentSelectionTableControlName = event.target.value\n this.tableSelectOpen = true\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.TableColumnsIndex = i\n this.itemForm = item\n }\n\n CurrentSelectionTableControlName: any\n\n /**正在创建或编辑的表格项下标 */\n TableColumnsIndex: any\n /**创建站点模态框状态 */\n tableSelectOpen: boolean = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n /**创建站点表单 */\n tableSelectForm: FormGroup | undefined;\n\n /**表格已选择数据 */\n _tableSelected: any\n\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('tableSelectModalSubmit', { static: false }) tableSelectModalSubmit: ElementRef;\n\n\n /**创建站点模态框状态改变 */\n tableSelectVisibleChange(event) {\n if (!event) {\n this._tableSelected = undefined\n this.tableSelectForm = undefined\n this.CurrentSelectionTableControlName = undefined\n this.TableColumnsIndex = undefined\n return\n }\n }\n /**表单保存提交 */\n createOrEditSave() {\n const formGroup = this.TableColumns.at(this.TableColumnsIndex) as FormGroup;\n let formConfigurationgroup = formGroup.get('formConfiguration') as FormGroup\n\n formConfigurationgroup.setValue({\n ...this.tableSelectForm.value['formConfiguration'],\n });\n this.tableSelectOpen = false\n }\n\n /**编辑站点按钮 */\n EditSitesBtn(rows, i) {\n\n this.CurrentSelectionTableControlName = rows.get('formControlName').value\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.tableSelectForm.patchValue({\n ...rows.value\n })\n this.tableSelectForm.get('formConfiguration').patchValue({\n ...rows.value['formConfiguration']\n })\n this._tableSelected = rows.value\n this.TableColumnsIndex = i\n this.tableSelectOpen = true\n }\n\n\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.TableColumns.at(index)\n this.TableColumns.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.TableColumns.insert(lastindex, controlAt)\n }\n\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event, item) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = item.get('name')\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('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=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" [entity]=\"tableSelectForm\"\n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\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)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n selector: 'df-table-control',\n templateUrl: './table-control.component.html',\n styleUrls: ['./table-control.component.scss']\n})\nexport class TableControlComponent {\n\n constructor(\n // private fb: FormBuilder,\n ) {\n }\n private fb=inject(FormBuilder)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v ;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n \n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let formConfiguration = this._fields.field.formConfiguration\n this.formConfiguration = formConfiguration\n console.log(formConfiguration,'formConfiguration');\n \n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addTableControlItem()\n });\n this.fieldNameControl.patchValue(this._selected)\n } else {\n this.addTableControlItem()\n }\n resolve(true)\n })\n }\n /**增加表格项 */\n addTableControlItem(){\n this.fieldNameControl.push(this.fb.group({\n 'extraProperties':this.fb.group({})\n }))\n }\n /**删除表格项 */\n minusTableControlItem(index){\n this.fieldNameControl.removeAt(index)\n }\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.fieldNameControl.at(index)\n this.fieldNameControl.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.fieldNameControl.insert(lastindex, controlAt)\n this._selected=this.fieldNameControl.value\n }\n\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th scope=\"col\">{{ item.displayName }}</th>\n </ng-container>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [entity]=\"item\" [fields]=\"{ field: el }\"\n [selected]=\"_selected[i]?.extraProperties[''+el.name+'']\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"\">\n <div class=\"flex-end mb-2\">\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"TableArrowUpOrDown('up',i)\"\n *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { EntryConfigComponent, EntryControlComponent } from \"./entry\";\r\nimport { MatrixConfigComponent } from \"./matrix/matrix-config.component\";\r\nimport { MatrixControlComponent } from \"./matrix/matrix-control.component\";\r\nimport { TableConfigComponent, TableControlComponent } from \"./table\";\r\n/**\r\n * 表单控件分组-包含配置,控件,显示的数组\r\n */\r\nexport const FieldControlGroup: any[] = [\r\n {\r\n displayName: '表格',\r\n name: 'Table',\r\n fieldConfigComponent: TableConfigComponent,\r\n fieldComponent: TableControlComponent,\r\n },\r\n {\r\n displayName: '矩阵',\r\n name: 'Matrix',\r\n fieldConfigComponent: MatrixConfigComponent,\r\n fieldComponent: MatrixControlComponent,\r\n },\r\n {\r\n displayName: '条目',\r\n name: 'Entry',\r\n fieldConfigComponent: EntryConfigComponent,\r\n fieldComponent: EntryControlComponent,\r\n },\r\n];\r\n","import { ToolbarAction } from '@abp/ng.theme.shared/extensions';\r\nimport {\r\n SectionsComponent,\r\n CreateOrEditComponent,\r\n SitesComponent,\r\n FieldsComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n CreateComponent,\r\n EditComponent,\r\n} from '../components';\r\n\r\n/**版块 */\r\nexport const Sections_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(SectionsComponent);\r\n component.createSectionBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**版块-创建-编辑 */\r\nexport const Sections_Create_Or_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateOrEditComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**站点 */\r\n// export const Sites_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n// {\r\n// text: 'Cms::New',\r\n// action: data => {\r\n// const component = data.getInjected(SitesComponent);\r\n// // component.createSitesBtn();\r\n// },\r\n// btnClass: '',\r\n// permission: 'CmsAdmin.Entry.Create',\r\n// icon: 'fa fa-plus',\r\n// },\r\n// ]);\r\n/**字段 */\r\nexport const Fields_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(FieldsComponent);\r\n component.toFieldsCreateBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n\r\n/**条目 */\r\nexport const Entries_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(EntriesComponent);\r\n component.createEntriesBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**条目-创建 */\r\nexport const Entries_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n/**条目编辑 */\r\nexport const Entries_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n","import { ConfigStateService } from \"@abp/ng.core\";\r\nimport { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions } from \"@abp/ng.theme.shared/extensions\";\r\nimport { InjectionToken, inject } from \"@angular/core\";\r\nimport { ResolveFn } from \"@angular/router\";\r\nimport { map, tap } from \"rxjs\";\r\nimport { ECmsComponent } from \"../enums\";\r\nimport { Entries_Defaults_Toolbar_Action, Entries_Create_Defaults_Toolbar_Action, Entries_Edit_Defaults_Toolbar_Action, Fields_Defaults_Toolbar_Action, Fields_Create_Defaults_Toolbar_Action, Fields_Edit_Defaults_Toolbar_Action, Sections_Defaults_Toolbar_Action, Sections_Create_Or_Edit_Defaults_Toolbar_Action } from \"./toolbar-btn-default-action\";\r\n\r\nexport const ActionGroup = {\r\n Entries: Entries_Defaults_Toolbar_Action,\r\n Entries_Create: Entries_Create_Defaults_Toolbar_Action,\r\n Entries_Edit: Entries_Edit_Defaults_Toolbar_Action,\r\n Fields: Fields_Defaults_Toolbar_Action,\r\n FieldsCreate: Fields_Create_Defaults_Toolbar_Action,\r\n FieldsEdit: Fields_Edit_Defaults_Toolbar_Action,\r\n Sections: Sections_Defaults_Toolbar_Action,\r\n SectionsCreateOrEdit: Sections_Create_Or_Edit_Defaults_Toolbar_Action,\r\n};\r\n\r\nconst setCmsAction = () => {\r\n let Cms_Default = {};\r\n for (const iterator in ECmsComponent) {\r\n Cms_Default[ECmsComponent[iterator]] = ActionGroup[iterator];\r\n }\r\n return Cms_Default;\r\n};\r\n/**用于路由守卫增加工具栏按钮 */\r\nexport const Cms_Default_Toolbar_Actions = setCmsAction();\r\n\r\n/**\r\n * \r\n * @param 在identityExtensionsResolver方法中使用\r\n * \r\n * @param 在cms.module.ts中使用,\r\n export class CmsModule {\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: CMS_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n // useValue: identityToolbarActionContributors,\r\n },\r\n // IdentityExtensionsGuard,\r\n ]\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n }\r\n * \r\n * \r\n */\r\nexport const CMS_TOOLBAR_ACTION_CONTRIBUTORS = new InjectionToken<any>(\r\n 'CMS_TOOLBAR_ACTION_CONTRIBUTORS'\r\n);\r\n\r\n/**用于放在cms-routing.module.ts路由守卫中\r\n * \r\n *\r\n const routes: Routes = [\r\n {\r\n path: 'demo',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [identityExtensionsResolver],\r\n children: []\r\n },\r\n ]\r\n * \r\n * \r\n */\r\nexport const CmsExtensionsResolver: ResolveFn<any> = () => {\r\n const configState = inject(ConfigStateService);\r\n const extensions = inject(ExtensionsService);\r\n const config = { optional: true };\r\n const toolbarContributors = inject(CMS_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n return getObjectExtensionEntitiesFromStore(configState, 'Cms').pipe(\r\n map(entities => ({\r\n // [ECmseComponents.UsePage]: entities.Role,\r\n // [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(configState, 'Cms'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n Cms_Default_Toolbar_Actions,\r\n toolbarContributors\r\n );\r\n })\r\n );\r\n};","export default `\r\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}\r\na {\r\n text-decoration: unset;\r\n}\r\n:root .cellClassRight{\r\n transform: translateX(17px);\r\n background: var(--lpx-card-bg);\r\n}\r\n.form-label{\r\n font-size: 12px;\r\n}\r\n`;","import { Renderer2, RendererFactory2, inject } from \"@angular/core\";\r\nimport styles from \"../constants/styles\";\r\nlet isAppentStyle = false\r\nexport function appentStyle() {\r\n /**确保该路由守卫只会执行一次 */\r\n if (isAppentStyle) return\r\n isAppentStyle = true\r\n const rendererFactory = inject(RendererFactory2);\r\n let renderer: Renderer2=rendererFactory.createRenderer(null, null)\r\n const style = renderer.createElement('style');\r\n renderer.setProperty(style, 'innerHTML', styles);\r\n renderer.appendChild(document.head, style);\r\n}","import { NgModule} from '@angular/core';\r\nimport { Routes, RouterModule} from '@angular/router';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n SitesComponent,\r\n} from './components';\r\nimport {\r\n AuthGuard,\r\n PermissionGuard,\r\n} from '@abp/ng.core';\r\nimport { CmsExtensionsResolver } from './toolbar';\r\nimport { appentStyle } from './services/appent-content';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'admin',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [CmsExtensionsResolver, appentStyle],\r\n children: [\r\n { \r\n path: 'entries',\r\n\r\n children: [\r\n {\r\n path: '',\r\n component: EntriesComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateComponent,\r\n },\r\n {\r\n path: ':entrieId/edit',\r\n component: EditComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'fields',\r\n children: [\r\n {\r\n path: '',\r\n component: FieldsComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateFieldComponent,\r\n },\r\n {\r\n path: ':id/edit',\r\n component: EditFieldComponent,\r\n },\r\n ],\r\n },\r\n // {\r\n // path: 'sites',\r\n // component: SitesComponent,\r\n // data: { keep: true }\r\n // },\r\n {\r\n path: 'sections',\r\n children: [\r\n {\r\n path: '',\r\n data: { keep: true },\r\n component: SectionsComponent,\r\n },\r\n {\r\n path: ':sectionsId/entry-types',\r\n children: [\r\n {\r\n path: 'create',\r\n component: CreateOrEditComponent,\r\n },\r\n {\r\n path: ':entryTypesId/edit',\r\n component: CreateOrEditComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class CmsRoutingModule {\r\n}\r\n","import { NgModule, NgModuleFactory, ModuleWithProviders } from '@angular/core';\r\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { CmsRoutingModule } from './cms-routing.module';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n CreateOrEditEntriesComponent,\r\n CreateOrEditFieldComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldGroupComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n // SitesComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n FieldControlGroup\r\n} from './components';\r\nimport {\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CMS_TOOLBAR_ACTION_CONTRIBUTORS } from './toolbar';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { DynamicFormModule } from '@dignite-ng/expand.dynamic-form';\r\nimport { fielFieldControlGroup } from '@dignite-ng/expand.file-explorer';\r\nimport { ckEditorFieldControlGroup } from '@dignite-ng/expand.ck-editor';\r\nimport { DomainsComponent } from './components/admin/domains/domains.component';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\n\r\n@NgModule({\r\n declarations: [\r\n EntriesComponent,\r\n FieldsComponent,\r\n // SitesComponent,\r\n SectionsComponent,\r\n FieldGroupComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n CreateOrEditFieldComponent,\r\n CreateOrEditComponent,\r\n CreateComponent,\r\n EditComponent,\r\n CreateOrEditEntriesComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n DomainsComponent,\r\n ],\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n CmsRoutingModule,\r\n FormsModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n NgbDropdownModule,\r\n PageModule,\r\n NzSelectModule,\r\n DynamicFormModule.forRoot({\r\n cmsFieldControlGroup: [...FieldControlGroup, ...fielFieldControlGroup, ...ckEditorFieldControlGroup]\r\n }),\r\n ],\r\n exports: [\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n DomainsComponent\r\n ],\r\n providers: [\r\n ],\r\n\r\n})\r\nexport class CmsModule {\r\n \r\n\r\n\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: CMS_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n ],\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n}\r\n","/*\r\n * Public API Surface of cms\r\n */\r\n\r\nexport * from './lib/cms.module';\r\n// export * from './lib/cms-routing.module';\r\nexport * from './lib/components/dynamic-form';\r\n// export * from './lib/proxy';\r\nexport * from './lib/services/simple-reuse-strategy';\r\nexport * from './lib/components/admin/domains';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntryAdminService","i2.SectionAdminService","i4","i5","i6","i7","i1.FieldGroupAdminService","i2.FormAdminService","i1","i3","i4.SectionAdminService","i5.EntryAdminService","i7.CmsApiService","i8","i11","i4.EntryAdminService","i9.CreateOrEditEntriesComponent","i2.FieldGroupAdminService","i4.FieldAbstractsService","i2.FieldAdminService","i5.CmsApiService","i9","i10.FieldGroupComponent","i1.FieldAbstractsService","i2.CmsApiService","i3.FieldAdminService","i6.CmsApiService","i10.CreateOrEditFieldComponent","i2.FieldAbstractsService","i8.CmsApiService","i10","i11.CreateOrEditFieldComponent","i2.EntryTypeAdminService","i4.FieldGroupAdminService","i4.FieldAdminService","i5.EntryTypeAdminService","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAY,WAGX,CAAA;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,WAAA,CAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACf,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC;;ACP/D,IAAY,aAUX,CAAA;AAVD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,aAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,oBAAmC,CAAA;AACnC,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,kBAA+B,CAAA;AAC/B,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,mBAAgC,CAAA;AAChC,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,iBAA4B,CAAA;AAC5B,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,WAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,cAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,6BAAkD,CAAA;AACtD,CAAC,EAVW,aAAa,KAAb,aAAa,GAUxB,EAAA,CAAA,CAAA;;ACRD,MAGa,iBAAiB,CAAA;AAErB,IAAA,eAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;AAE/D,IAAA,WAAA,GAAA,GAAiB;IAEjB,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;wGARU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACAD,MAGa,wBAAwB,CAAA;AA4Bf,IAAA,WAAA,CAAA;IA3BpB,OAAO,GAAG,UAAU,CAAC;IAGrB,eAAe,GAAG,CAAC,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,4CAA4C;KAClD,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAGvC,QAAQ,GAAG,CAAC,MAA6B,KACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,oCAAoC;KAC1C,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAGvC,kBAAkB,GAAG,CAAC,MAA6B,KACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAc;AACpC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,GAAG,EAAE,+CAA+C;KACrD,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGA5BrC,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDD,MAGa,iBAAiB,CAAA;AAmGR,IAAA,WAAA,CAAA;IAlGpB,OAAO,GAAG,UAAU,CAAC;AAGrB,IAAA,QAAQ,GAAG,CAAC,EAAU,EAAE,MAA6B,KACnD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,CAAmC,gCAAA,EAAA,EAAE,CAAE,CAAA;KAC7C,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,KAAuB,EAAE,MAA6B,KAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,GAAG,EAAE,wBAAwB;AAC7B,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,6BAA6B,GAAG,CAAC,KAAyC,EAAE,MAA6B,KACvG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,2DAA2D;AAChE,QAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;KAC/F,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,MAA6B,KACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA;KACpC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,GAAG,GAAG,CAAC,EAAU,EAAE,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA;KACpC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,cAAc,GAAG,CAAC,EAAU,EAAE,MAA6B,KACzD,IAAI,CAAC,WAAW,CAAC,OAAO,CAA+B;AACrD,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA0B,uBAAA,EAAA,EAAE,CAAe,aAAA,CAAA;KACjD,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,OAAO,GAAG,CAAC,KAAsB,EAAE,MAA6B,KAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgC;AACtD,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,wBAAwB;AAC7B,QAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;KACvV,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,YAAY,GAAG,CAAC,SAAiB,EAAE,GAAa,EAAE,MAA6B,KAC7E,IAAI,CAAC,WAAW,CAAC,OAAO,CAA+B;AACrD,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,sCAAsC;AAC3C,QAAA,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE;KAC3B,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,IAAI,GAAG,CAAC,EAAU,EAAE,KAAqB,EAAE,MAA6B,KACtE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,CAA+B,4BAAA,EAAA,EAAE,CAAE,CAAA;AACxC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,UAAU,GAAG,CAAC,KAAsB,EAAE,MAA6B,KACjE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,oCAAoC;AACzC,QAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;KACjF,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,KAAuB,EAAE,MAA6B,KAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,wBAAwB;QAC7B,MAAM,EAAE,EAAE,EAAE,EAAE;AACd,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGAnGrC,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACHD,MAGa,qBAAqB,CAAA;AA8CZ,IAAA,WAAA,CAAA;IA7CpB,OAAO,GAAG,UAAU,CAAC;AAGrB,IAAA,MAAM,GAAG,CAAC,KAA2B,EAAE,MAA6B,KAClE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAoB;AAC1C,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,GAAG,EAAE,4BAA4B;AACjC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,MAA6B,KACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAA8B,2BAAA,EAAA,EAAE,CAAE,CAAA;KACxC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,GAAG,GAAG,CAAC,EAAU,EAAE,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAoB;AAC1C,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA8B,2BAAA,EAAA,EAAE,CAAE,CAAA;KACxC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,UAAU,GAAG,CAAC,KAA+B,EAAE,MAA6B,KAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,wCAAwC;AAC7C,QAAA,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;KACzD,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,KAA2B,EAAE,MAA6B,KAC9E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAoB;AAC1C,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA8B,2BAAA,EAAA,EAAE,CAAE,CAAA;AACvC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGA9CrC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDD,MAGa,mBAAmB,CAAA;AAgEV,IAAA,WAAA,CAAA;IA/DpB,OAAO,GAAG,UAAU,CAAC;AAGrB,IAAA,MAAM,GAAG,CAAC,KAAyB,EAAE,MAA6B,KAChE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAkB;AACxC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,MAA6B,KACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAA2B,wBAAA,EAAA,EAAE,CAAE,CAAA;KACrC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,GAAG,GAAG,CAAC,EAAU,EAAE,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAkB;AACxC,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA2B,wBAAA,EAAA,EAAE,CAAE,CAAA;KACrC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,OAAO,GAAG,CAAC,KAAuB,EAAE,MAA6B,KAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAkC;AACxD,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;KACrJ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,UAAU,GAAG,CAAC,KAA6B,EAAE,MAA6B,KACxE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,qCAAqC;AAC1C,QAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;KAC7B,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,WAAW,GAAG,CAAC,KAA8B,EAAE,MAA6B,KAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,sCAAsC;AAC3C,QAAA,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;KAC/B,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,KAAyB,EAAE,MAA6B,KAC5E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAkB;AACxC,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA2B,wBAAA,EAAA,EAAE,CAAE,CAAA;AACpC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGAhErC,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACUD,MAea,gBAAgB,CAAA;AAGjB,IAAA,kBAAA,CAAA;AAEA,IAAA,oBAAA,CAAA;AACA,IAAA,OAAA,CAAA;AACA,IAAA,YAAA,CAAA;AACA,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AARV,IAAA,WAAA,CACU,kBAAqC;;IAErC,oBAAyC,EACzC,OAAuB,EACvB,YAAiC,EACjC,WAA+B,EAC/B,MAAc,EACd,oBAAyC,EAAA;QAPzC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QAErC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QACjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;KAElD;AAEO,IAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;AACxB,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AACtC,IAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAG1C,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,MAAK;AACrD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AACjB,SAAC,CAAC,CAAC;KACJ;;;;;;IAOD,iBAAiB,GAAa,EAAE,CAAA;;IAIhC,oBAAoB,GAAa,EAAE,CAAA;;IAEnC,aAAa,GAAa,EAAE,CAAA;;IAE5B,mBAAmB,GAAG,kBAAkB,CAAA;;AAGxC,IAAA,MAAM,WAAW,GAAA;;AAEf,QAAA,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;AACjC,QAAA,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA;QACrC,IAAI,CAAC,WAAW,EAAE,CAAA;KACnB;;;;;;;;AASD,IAAA,MAAM,eAAe,GAAA;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,QAAA,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACpC,IAAI,CAAC,SAAS,EAAE,CAAA;KACjB;;AAED,IAAA,MAAM,aAAa,GAAA;QACjB,IAAI,CAAC,SAAS,EAAE,CAAA;KACjB;;;;;;;;;;;;IAaD,oBAAoB,GAAA;QAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;;AAEtC,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAChC,gBAAA,cAAc,EAAE,IAAI;;AAErB,aAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjB,gBAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAA;gBAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;gBACpE,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACpB,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;IAGD,qBAAqB,GAAA;AACnB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,UAAU,IAAI,EAAE,CAAA;KAC7F;AAEO,IAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACnC,IAAA,yBAAyB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAA;;IAEpE,uBAAuB,GAAA;QACrB,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,OAAO,KAAI;;YAE5C,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;;YAExE,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;YACjF,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AAC3E,YAAA,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;YACrC,MAAM,aAAa,GAAG,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,0BAA0B,CAAA;AAC1H,YAAA,IAAI,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;;AAEzF,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAA;;AAEtD,YAAA,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,CAAA;AACrE,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,eAAe,CAAC,CAAA;AACjH,YAAA,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAA;YAC1C,OAAO,CAAC,cAAc,CAAC,CAAA;AACzB,SAAC,CAAC,CAAA;KACH;;IAGD,0BAA0B,GAAU,EAAE,CAAA;AACtC;;AAEG;IACH,wBAAwB,GAAA;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;YACtC,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,IAAG;AAC/D,gBAAA,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAA;gBACrC,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;IAID,SAAS,GAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;KAChB;;IAGD,gBAAgB,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,EAAE;AAClD,YAAA,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AAC7H,SAAA,CAAC,CAAA;KACH;;IAGD,UAAU,GAAG,UAAU,CAAC;AACxB,IAAA,IAAI,GAA6B;AAC/B,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,OAAO,GAAG,EAAqB,CAAC;AAChC,IAAA,WAAW,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;QACrC,MAAM,EAAE,CAAC,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC,EAAE,CAAC;QACf,OAAO,EAAE,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,EAAE,CAAC;AACb,KAAA,CAAC,CAAA;IAEF,WAAW,GAAA;AAET,QAAA,MAAM,OAAO,GAAG,CAAC,KAA0B,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAC9E,YAAA,GAAG,KAAK;YACR,GAAG,IAAI,CAAC,OAAO;AAChB,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,OAAO,GAAG,CAAC,IAA8B,KAAI;AACjD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;AAClB,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACnD;;AAID,IAAA,WAAW,CAAC,GAAQ,EAAA;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,GAAG,CAAC,WAAW,EACf,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAiC,+BAAA,CAAA,CAAC,CACrE,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAI;YAC1C,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAK;AAC1D,iBAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClB,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC,CAAC;AACtF,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AACjB,iBAAC,CAAC,CAAA;AACH,aAAA;AAEH,SAAC,CAAC,CAAC;KACJ;wGAnMU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAXhB,QAAA,EAAA,aAAA,EAAA,SAAA,EAAA;YACT,WAAW;;;AAGX,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,OAAO;AAChC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BH,+uPA+GW,EAAA,MAAA,EAAA,CAAA,6tCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD/EE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAf5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGZ,SAAA,EAAA;wBACT,WAAW;;;AAGX,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,OAAO;AAChC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,+uPAAA,EAAA,MAAA,EAAA,CAAA,6tCAAA,CAAA,EAAA,CAAA;;;ME5BU,4BAA4B,CAAA;;IAErC,OAAO,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;;AAE1C,IAAA,WAAW,GAAQ,CAAC,EAAE,CAAC,CAAA;;IAEvB,KAAK,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;;IAExC,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;;AAEvC,IAAA,KAAK,GAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;;IAErB,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;;AAE9C,IAAA,QAAQ,GAAK,CAAC,IAAI,CAAC,CAAA;;AAEnB,IAAA,YAAY,GAAK,CAAC,IAAI,CAAC,CAAA;;AAEvB,IAAA,gBAAgB,GAAQ,CAAC,IAAI,CAAC,CAAA;AAC9B,IAAA,eAAe,GAA0B,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AAC1D,IAAA,WAAA,CAAY,IAAmC,EAAA;AAC3C,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ;;AC1BD,MAGa,sBAAsB,CAAA;AA8Cb,IAAA,WAAA,CAAA;IA7CpB,OAAO,GAAG,UAAU,CAAC;AAGrB,IAAA,MAAM,GAAG,CAAC,KAAoC,EAAE,MAA6B,KAC3E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAqB;AAC3C,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,GAAG,EAAE,6BAA6B;AAClC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,MAA6B,KACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAA+B,4BAAA,EAAA,EAAE,CAAE,CAAA;KACzC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,GAAG,GAAG,CAAC,EAAU,EAAE,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAqB;AAC3C,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA+B,4BAAA,EAAA,EAAE,CAAE,CAAA;KACzC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,OAAO,GAAG,CAAC,KAA0B,EAAE,MAA6B,KAClE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAqC;AAC3D,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,6BAA6B;QAClC,MAAM,EAAE,EAAE,KAAK,EAAE;KAClB,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,KAAoC,EAAE,MAA6B,KACvF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAqB;AAC3C,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAA+B,4BAAA,EAAA,EAAE,CAAE,CAAA;AACxC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGA9CrC,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACFD,MAGa,gBAAgB,CAAA;AAWP,IAAA,WAAA,CAAA;IAVpB,OAAO,GAAG,UAAU,CAAC;IAGrB,eAAe,GAAG,CAAC,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAqC;AAC3D,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,oCAAoC;KAC1C,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGAXrC,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACFD,MAGa,qBAAqB,CAAA;AAGtB,IAAA,uBAAA,CAAA;AACA,IAAA,iBAAA,CAAA;IAFV,WACU,CAAA,uBAA+C,EAC/C,iBAAmC,EAAA;QADnC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;KACxC;;IAEL,cAAc,GAAoB,EAAE,CAAA;;IAEpC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACvD,YAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,CAAA;AACjC,SAAC,CAAC,CAAA;KACH;;IAGD,eAAe,GAAU,EAAE,CAAA;;IAE3B,kBAAkB,GAAA;QAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACzD,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,KAAK,CAAA;AAChC,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACpB,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;AACD,IAAA,uBAAuB,CAAC,QAAS,EAAA;;QAE/B,OAAO,IAAI,CAAC,eAAe,CAAA;KAC5B;wGA7BU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD,MAGa,UAAU,CAAA;AAGD,IAAA,WAAA,CAAA;IAFpB,OAAO,GAAG,KAAK,CAAC;AAEhB,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;IAEhD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAC7B,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,EACzC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAC1B,CAAC;KACH;wGAVU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA;;4FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDD,MAGa,aAAa,CAAA;AAGd,IAAA,YAAA,CAAA;AADV,IAAA,WAAA,CACU,YAAmB,EAAA;QAAnB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAO;KACxB;;AAEL,IAAA,eAAe,CAAC,KAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KAClC;AAGD;;;;;AAKM;AACN,IAAA,eAAe,CAAC,KAAU,EAAA;;;QAGxB,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACpC,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACzB,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,KAAK,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,KAAU,KAAI;;AAEpC,YAAA,IAAI,QAAQ,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;AAC/B,YAAA,IAAI,SAAS,GAAG,CAAC,GAAG,KAAI;AACtB,gBAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,aAAC,CAAA;AACD,YAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;AACvB,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChF,gBAAA,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAA;AACvC,gBAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAG,QAAQ,IAAE,GAAG,CAAA;AAC7C,aAAA;YAAA,CAAC;AACF,YAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACzB,SAAC,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjC,OAAO,SAAS,IAAI,GAAG,CAAA;KACxB;AAGC;AACa;AACb,IAAA,SAAS,CAAC,GAAG,EAAA;AACX,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;AAAE,YAAA,OAAO,GAAG,CAAC;AACxD,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5C,QAAA,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACnB,YAAA,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC3B,gBAAA,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACrD,oBAAA,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;AAC5B,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5C,qBAAA;AAAM,yBAAA,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE;AACrC,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,qBAAA;AAAM,yBAAA;AACL,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;wGA9DQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCHY,mBAAmB,CAAA;IAErB,QAAQ,GAA2C,EAAE,CAAC;;AAE7D,IAAA,YAAY,CAAC,KAA6B,EAAA;;;AAGtC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;IAGD,KAAK,CAAC,KAA6B,EAAE,MAA2B,EAAA;AAC5D,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;AAChC,QAAA,IAAI,GAAG,EAAE;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC/B,SAAA;KACJ;;AAGD,IAAA,YAAY,CAAC,KAA6B,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;AACvB,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAChD,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;;AAGD,IAAA,QAAQ,CAAC,KAA6B,EAAA;QAClC,IAAI,CAAC,KAAK,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI,CAAC;;AAEpC,QAAA,IAAI,KAAK,CAAC,WAAW,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;YACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/C,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;;IAGD,gBAAgB,CAAC,MAA8B,EAAE,OAA+B,EAAA;AAC5E,QAAA,OAAO,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;KACrD;AAEJ;;ACrCD,MAKa,4BAA4B,CAAA;AAI7B,IAAA,OAAA,CAAA;AACD,IAAA,SAAA,CAAA;AACC,IAAA,WAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACA,IAAA,QAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,cAAA,CAAA;AATV,IAAA,WAAA,CACU,OAAuB,EACxB,SAAmB,EAClB,WAA+B,EAC/B,oBAAyC,EACzC,kBAAqC,EACrC,QAAkB,EAClB,oBAAyC,EACzC,MAAc,EACd,cAA6B,EAAA;QAR7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAClB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;KAClC;;IAIL,WAAW,GAAW,EAAE,CAAA;;IAExB,WAAW,GAAW,EAAE,CAAA;;IAGxB,eAAe,GAAQ,EAAE,CAAA;;IAEzB,cAAc,GAAQ,EAAE,CAAA;;IAExB,SAAS,GAAW,EAAE,CAAA;;IAEtB,aAAa,GAAQ,EAAE,CAAA;;IAEvB,aAAa,GAAU,EAAE,CAAA;;IAEzB,cAAc,GAAU,EAAE,CAAA;;IAE1B,eAAe,GAAU,EAAE,CAAA;;IAGlB,MAAM,GAAG,KAAK,CAAA;;IAGvB,qBAAqB,GAAQ,EAAE,CAAA;IAC/B,IACW,iBAAiB,CAAC,CAAM,EAAA;AACjC,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;AAChC,SAAA;KACF;;AAGD,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAClB,SAAA;KACF;;IAED,WAAW,GAAQ,EAAE,CAAA;IACrB,IACW,iBAAiB,CAAC,CAAM,EAAA;AACjC,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;AACrG,YAAA,CAAC,CAAC,eAAe,GAAG,iBAAiB,CAAA;AACrC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACtB,SAAA;KACF;;AAED,IAAA,sBAAsB,CAAC,GAAG,EAAA;AACxB,QAAA,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC3B,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AACtB,oBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;wBAC1C,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACnD,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAChC;;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;KACnC;;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;KAC1C;;AAGD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAc,CAAA;KACxD;AACD,IAAA,MAAM,kBAAkB,GAAA;;;AAGtB,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE;gBAClD,UAAU,EAAE,UAAU,CAAC,QAAQ;AAC/B,gBAAA,eAAe,EAAE,IAAI,CAAC,wBAAwB,EAAE;AAChD,gBAAA,QAAQ,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC,CAAA;YACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE;AAC5D,gBAAA,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;AACjC,gBAAA,eAAe,EAAE,IAAI,CAAC,0BAA0B,EAAE;AACnD,aAAA,CAAC,CAAC,CAAA;YACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;AACtC,YAAA,IAAI,WAAW,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE;AACnD,gBAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAA;AAClD,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACvC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAClC,aAAA;YACD,IAAI,IAAI,CAAC,SAAS;AAAE,gBAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClD,IAAI,IAAI,CAAC,eAAe;AAAE,gBAAA,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAE1D,SAAA;KAGF;;AAGiE,IAAA,oBAAoB,CAA8B;;IAOpH,0BAA0B,GAAA;QACxB,OAAO,CAAC,IAAqB,KAA4E;AACvG,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,gBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAA;AACnD,gBAAA,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE;oBAC5E,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAM;AACP,iBAAA;AACD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC;AACpD,oBAAA,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,iBAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjB,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC3M,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,qBAAA;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;KACH;AAGD;;;AAGC;AACD,IAAA,cAAc,CAAC,MAAW,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC;AACxD,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;KACnC;IACD,IAAI,GAAW,CAAC,CAAA;;IAGhB,wBAAwB,GAAA;QACtB,OAAO,CAAC,IAAqB,KAA4E;AACvG,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,gBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAA;AAC7C,gBAAA,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;oBACrC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAM;AACP,iBAAA;AACD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;oBACjC,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjB,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA,6BAAA,CAA+B,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzG,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,qBAAA;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;KACH;AAEO,IAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;;IAG3C,gBAAgB,GAAA;QACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,KAAI;gBACpE,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAClE,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;gBAC9B,IAAI,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAA;AACzE,gBAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAA;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;gBACpC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAA;AAC5E,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;oBACtB,GAAG,IAAI,CAAC,WAAW;oBACnB,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE;oBAClF,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,cAAc,EAAE,IAAI,CAAC,WAAW;oBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,oBAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,qBAAqB,CAAC;AACxE,iBAAA,CAAC,CAAA;gBACF,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;IAGD,kBAAkB,GAAA;QAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAC3E,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,KAAK,CAAA;gBAChC,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;AAGD,IAAA,kBAAkB,CAAC,KAAK,EAAA;AACtB,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAM;QACtB,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,SAAS,IAAI,GAAG;AACvB,SAAA,CAAC,CAAA;KACH;;AAED,IAAA,SAAS,CAAC,GAAG,EAAA;AACX,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvC;;AAGD,IAAA,gBAAgB,CAAC,SAAS,EAAA;AACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAG;gBAChC,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,KAAK,SAAS,CAAA;AAC7C,aAAC,CAAC,CAAA;YACF,OAAM;AACR,SAAC,CAAC,CAAA;KACH;;AAED,IAAA,SAAS,CAAC,EAAE,EAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;YACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,mBAAA,EAAsB,EAAE,CAAA,KAAA,CAAO,CAAC,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACJ;;AAED,IAAA,aAAa,CAAC,GAAG,EAAA;AACf,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAC3B,SAAC,CAAC,CAAA;KACH;wGAzQU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA5B,4BAA4B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EA+HO,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/IhE,iyPAgHM,EAAA,MAAA,EAAA,CAAA,4jBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDhGO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,iyPAAA,EAAA,MAAA,EAAA,CAAA,4jBAAA,CAAA,EAAA,CAAA;kUAyC7B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKK,iBAAiB,EAAA,CAAA;sBAD3B,KAAK;gBAUK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASK,iBAAiB,EAAA,CAAA;sBAD3B,KAAK;gBAqE4D,oBAAoB,EAAA,CAAA;sBAArF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;;;AEjIlE,MAWa,eAAe,CAAA;AAEhB,IAAA,OAAA,CAAA;AACD,IAAA,SAAA,CAAA;AACC,IAAA,KAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,MAAA,CAAA;IANV,WACU,CAAA,OAAuB,EACxB,SAAmB,EAClB,KAAqB,EACrB,kBAAqC,EACrC,oBAAyC,EACzC,MAAc,EAAA;QALd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAClB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KACnB;AACG,IAAA,EAAE,GAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACtB,IAAA,kBAAkB,GAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;;AAGpD,IAAA,SAAS,CAAuB;;IAGhC,SAAS,GAAY,KAAK,CAAA;;IAE1B,WAAW,GAAQ,EAAE,CAAA;;IAGrB,WAAW,GAAQ,EAAE,CAAA;;AAGuB,IAAA,WAAW,CAAa;AAEpE,IAAA,MAAM,QAAQ,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAA;AAClD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAA;AAClE,QAAA,IAAG,IAAI,CAAC,WAAW,CAAC,eAAe;AAAI,YAAA,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;KACpE;;IAGD,cAAc,GAAA;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAC5E,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;gBAEtB,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;AAKD,IAAA,IAAI,CAAC,KAAK,EAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxB,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,CAAC,CAAA;AACF,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;AAChC,QAAA,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AACxG,QAAA,KAAK,CAAC,OAAO,GAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,OAAM;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;gBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,kBAAA,CAAoB,CAAC,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACvC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAA;KACH;;AAGD,IAAA,WAAW,CAAC,IAAI,EAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACvC;;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;KACtB;wGAzEU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAZ,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPf,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,cAAc;AACvC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBH,6vBAYO,EAAA,MAAA,EAAA,CAAA,2cAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,4BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDaM,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGX,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,cAAc;AACvC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,6vBAAA,EAAA,MAAA,EAAA,CAAA,2cAAA,CAAA,EAAA,CAAA;iPA0B2C,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEpC5C,MAWa,aAAa,CAAA;AAEd,IAAA,OAAA,CAAA;AACD,IAAA,SAAA,CAAA;AACC,IAAA,KAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,oBAAA,CAAA;IANV,WACU,CAAA,OAAuB,EACxB,SAAmB,EAClB,KAAqB,EACrB,kBAAqC,EACrC,MAAc,EACd,oBAAyC,EAAA;QALzC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAClB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;KAC/C;AACI,IAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACzB,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAGvD,IAAA,SAAS,CAAwB;;IAGjC,SAAS,GAAY,KAAK,CAAC;;AAG3B,IAAA,WAAW,GAAQ,EAAE,IAAI,EAAE,CAAC;;IAG5B,WAAW,GAAQ,EAAE,CAAC;;AAGsB,IAAA,WAAW,CAAa;AAEpE,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;AACvE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;AACnE,QAAA,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;KAC7B;;IAGD,cAAc,GAAA;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAC5E,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,IAAI,CAAC,KAAK,EAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxB,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACjC,QAAA,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,CAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAC3D,CAAC,WAAW,EAAE,CAAC;AAChB,QAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QACpD,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,OAAO;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACzE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;gBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,kBAAA,CAAoB,CAAC,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACvC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,WAAW,CAAC,IAAI,EAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACxC;;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;wGAxEU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAPb,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,YAAY;AACrC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBH,6iBAQO,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,4BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDgBM,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGT,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,YAAY;AACrC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,6iBAAA,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA,CAAA;iPA2B2C,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AE5C5C,MAGa,iBAAiB,CAAA;AAsDR,IAAA,WAAA,CAAA;IArDpB,OAAO,GAAG,UAAU,CAAC;AAGrB,IAAA,MAAM,GAAG,CAAC,KAAuB,EAAE,MAA6B,KAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,GAAG,EAAE,uBAAuB;AAC5B,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,MAA6B,KACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY;AAClC,QAAA,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA;KACnC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,GAAG,GAAG,CAAC,EAAU,EAAE,MAA6B,KAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA;KACnC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,OAAO,GAAG,CAAC,KAAqB,EAAE,MAA6B,KAC7D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgC;AACtD,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,uBAAuB;AAC5B,QAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;KACnJ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,UAAU,GAAG,CAAC,IAAY,EAAE,MAA6B,KACvD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAAqC,kCAAA,EAAA,IAAI,CAAE,CAAA;KACjD,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,KAAuB,EAAE,MAA6B,KAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAgB;AACtC,QAAA,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA;AAClC,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGAtDrC,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACCD,MAKa,mBAAmB,CAAA;AAEpB,IAAA,EAAA,CAAA;AACA,IAAA,uBAAA,CAAA;AACA,IAAA,OAAA,CAAA;AACA,IAAA,YAAA,CAAA;AACD,IAAA,sBAAA,CAAA;AACA,IAAA,oBAAA,CAAA;IANT,WACU,CAAA,EAAe,EACf,uBAA+C,EAC/C,OAAuB,EACvB,YAAiC,EAClC,sBAA6C,EAC7C,oBAAyC,EAAA;QALxC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAClC,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;QAC7C,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;KAC7C;;AAIL,IAAA,UAAU,CAAwB;;AAGlC,IAAA,aAAa,CAAwB;;IAGrC,QAAQ,GAAG,EAAS,CAAC;;IAGrB,YAAY,GAAuB,EAAE,CAAA;;IAGrC,eAAe,GAAG,KAAK,CAAA;;IAGvB,SAAS,GAAY,KAAK,CAAA;;IAG1B,aAAa,GAAY,KAAK,CAAA;;AAGpB,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;IAEhD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;KAChD;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClC,SAAA,CAAC,CAAA;KACH;;AAGD,IAAA,wBAAwB,CAAC,KAAK,EAAA;QAC5B,IAAI,CAAC,KAAK,EAAE;YACV,OAAM;AACP,SAAA;KACF;;AAGD,IAAA,YAAY,CAAC,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACxC,SAAA,CAAC,CAAA;KACH;;AAGD,IAAA,sBAAsB,CAAC,KAAK,EAAA;QAC1B,IAAI,CAAC,KAAK,EAAE;YACV,OAAM;AACP,SAAA;KACF;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;AACrB,QAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAK;AAC5D,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AACtB,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;AAC9B,SAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;AACjD,SAAC,CAAC,CAAA;KACH;;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;AACrB,QAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAK;AAC/E,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;AAC5B,SAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;AACjD,SAAC,CAAC,CAAA;KACH;;AAGD,IAAA,cAAc,CAAC,cAAmB,EAAA;QAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,cAAc,CAAC,IAAI,EACnB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAiC,+BAAA,CAAA,CAAC,CACrE,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAI;YAC1C,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAK;AAC1E,iBAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClB,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC,CAAC;AACtF,oBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;AACtB,oBAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;AACjD,iBAAC,CAAC,CAAA;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAClC;wGApHU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,0GCbhC,w0HAoEY,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDvDC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,w0HAAA,EAAA,CAAA;wQAqCjB,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;AEjCT,MAiBa,eAAe,CAAA;AAGR,IAAA,IAAA,CAAA;AACR,IAAA,kBAAA,CAAA;AACA,IAAA,OAAA,CAAA;AACA,IAAA,YAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,cAAA,CAAA;AAPV,IAAA,WAAA,CACkB,IAAiB,EACzB,kBAAqC,EACrC,OAAuB,EACvB,YAAiC,EACjC,oBAAyC,EACzC,MAAc,EACd,cAA6B,EAAA;QANrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QACzB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QACjC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;KAGtC;AACO,IAAA,kBAAkB,GAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;;IAEpD,UAAU,GAAG,UAAU,CAAC;;AAGxB,IAAA,IAAI,GAA6B;AAC/B,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,UAAU,EAAE,CAAC;KACd,CAAC;;IAGF,OAAO,GAAG,EAAoB,CAAC;IAE/B,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,MAAK;AACrD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AACjB,SAAC,CAAC,CAAC;KACJ;IACD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;KAChB;;AAID,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;KAChB;;IAKD,WAAW,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,CAAC,KAA0B,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAC9E,YAAA,GAAG,KAAK;YACR,GAAG,IAAI,CAAC,OAAO;AAChB,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,OAAO,GAAG,CAAC,IAA8B,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACnD;;IAGD,iBAAiB,GAAA;QACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC,EAC/C;AACE,YAAA,WAAW,EAAE,EAAE;AAChB,SAAA,CACF,CAAA;KACF;;AAGD,IAAA,WAAW,CAAC,GAAQ,EAAA;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,GAAG,CAAC,WAAW,EACf,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAiC,+BAAA,CAAA,CAAC,CACrE,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAI;YAC1C,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAK;AAC1D,iBAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClB,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC,CAAC;AACtF,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AACjB,iBAAC,CAAC,CAAA;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;wGA/EU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAjB,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAbf,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA;;YAET,WAAW;;;;AAIX,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC/B,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BH,ymKAyEW,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD3CE,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGX,SAAA,EAAA;;wBAET,WAAW;;;;AAIX,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC/B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,ymKAAA,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA,CAAA;;;ME1BU,4BAA4B,CAAA;;AAErC,IAAA,OAAO,GAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;;IAGxB,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAG/C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAGxC,IAAA,WAAW,GAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;;IAG5B,eAAe,GAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAG1D,IAAA,iBAAiB,GAA0B,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AAG5D,IAAA,WAAA,CAAY,IAAmC,EAAA;AAC3C,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAEJ;AACJ;;ACzBD,MAKa,0BAA0B,CAAA;AAM5B,IAAA,sBAAA,CAAA;AACC,IAAA,cAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACA,IAAA,oBAAA,CAAA;;AAN6D,IAAA,cAAc,CAAmB;AAExG,IAAA,WAAA,CACS,sBAA6C,EAC5C,cAA6B,EAC7B,kBAAqC,EACrC,oBAAyC,EAAA;QAH1C,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;QAC5C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC7B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QAGjD,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;AAChD,SAAA;KACF;;AAED,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;AACD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;KAC3C;;AAED,IAAA,cAAc,CAAI;AAClB,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AACxB,QAAA,IAAG,CAAC,EAAE;AACJ,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,GAAC,CAAC,CAAA;YACrB,IAAI,CAAC,UAAU,EAAE,CAAA;AAClB,SAAA;KAEF;AAGD,IAAA,MAAM,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3D,YAAA,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,CAAA;AACvD,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC/B,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;oBACtB,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI;AACtE,iBAAA,CAAC,CAAA;AACH,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAE,EAAE,EAAE;gBACxE,UAAU,EAAE,UAAU,CAAC,QAAQ;AAC/B,gBAAA,eAAe,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAClD,gBAAA,QAAQ,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC,CAAA;AACJ,SAAA;KACF;;AAID,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAChC;AAED,IAAA,aAAa,CAAC,KAAK,EAAA;AACjB,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KACjC;;AAGD,IAAA,oBAAoB,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACvD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC9B,IAAI,SAAS,CAAC,KAAK;YAAE,OAAM;AAC3B,QAAA,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;KAC7B;;IAED,wBAAwB,GAAA;QACtB,OAAO,CAAC,IAAqB,KAA4E;AACvG,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAE,CAAC,IAAI,CAAC,KAAK,EAAE;oBACnD,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAM;AACP,iBAAA;AACD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAC7D,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA,6BAAA,CAA+B,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzG,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,qBAAA;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;KACH;IAGD,qBAAqB,GAAA;KACpB;wGArGU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAS,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA1B,0BAA0B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGA,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfvD,iuEAsCO,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD1BM,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,iuEAAA,EAAA,CAAA;iMAOmC,cAAc,EAAA,CAAA;sBAApF,SAAS;uBAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAgB1D,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAcK,QAAQ,EAAA,CAAA;sBADlB,KAAK;;;AE9BR,MAWa,oBAAoB,CAAA;AAGrB,IAAA,EAAA,CAAA;AACD,IAAA,kBAAA,CAAA;AACC,IAAA,OAAA,CAAA;AACD,IAAA,SAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACC,IAAA,MAAA,CAAA;AAPV,IAAA,WAAA,CACU,EAAe,EAChB,kBAAqC,EACpC,OAAuB,EACxB,SAAmB,EACnB,oBAAyC,EACzC,cAA6B,EAC5B,MAAc,EAAA;QANd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAChB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACpC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAEnB;AACG,IAAA,kBAAkB,GAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;;AAGpD,IAAA,SAAS,CAAuB;;AAGY,IAAA,WAAW,CAAa;IAEpE,QAAQ,GAAA;;;AAGN,QAAA,IAAI,CAAC,SAAS,GAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAA;KAClE;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACvC;;IAED,IAAI,GAAA;AACF,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,OAAM;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;gBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,iBAAA,CAAmB,CAAC,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACvC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAA;KACH;wGAzCU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAjB,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAArB,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAPpB,QAAA,EAAA,kBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,YAAY;AACrC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBH,ojBAWO,EAAA,MAAA,EAAA,CAAA,qMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAxB,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDaM,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,YAAY;AACrC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,ojBAAA,EAAA,MAAA,EAAA,CAAA,qMAAA,CAAA,EAAA,CAAA;uQAoB2C,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AE5B5C,MAWa,kBAAkB,CAAA;AAGnB,IAAA,EAAA,CAAA;AACD,IAAA,sBAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACC,IAAA,KAAA,CAAA;AACA,IAAA,OAAA,CAAA;AACD,IAAA,SAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACC,IAAA,MAAA,CAAA;AATV,IAAA,WAAA,CACU,EAAe,EAChB,sBAA6C,EAC7C,kBAAqC,EACpC,KAAqB,EACrB,OAAuB,EACxB,SAAmB,EACnB,oBAAyC,EACzC,cAA6B,EAC5B,MAAc,EAAA;QARd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAChB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;QAC7C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACpC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KACnB;;AAGL,IAAA,SAAS,CAAuB;;IAGhC,OAAO,GAAW,EAAE,CAAC;;AAGrB,IAAA,YAAY,CAAM;;AAG0B,IAAA,WAAW,CAAa;AAGpE,IAAA,MAAM,QAAQ,GAAA;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/C,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;YACnE,MAAM,OAAO,CAAC,GAAG,CAAC;AAChB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE;gBAChD,IAAI,CAAC,YAAY,EAAE;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gBACxB,GAAG,IAAI,CAAC,YAAY;AACrB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;;IAGD,YAAY,GAAA;QACV,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACxD,gBAAA,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAA;AAC5C,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;gBACvB,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACvC;AACO,IAAA,kBAAkB,GAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;;IAGpD,IAAI,GAAA;AACF,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,OAAM;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,IAAG;AACnE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;gBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,iBAAA,CAAmB,CAAC,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACvC,aAAC,CAAC,CAAC;SACJ,EAAE,CAAA;KACJ;wGAtEU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAoB,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAwB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA3B,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAPlB,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,UAAU;AACnC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBH,2oBAYO,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA1B,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDaM,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGf,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,UAAU;AACnC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,2oBAAA,EAAA,CAAA;uUA0B2C,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEpC5C,MAaa,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EATd,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA;YACP,WAAW;AACX,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACtD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC9B,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBH,2mRAuIgB,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,CAAA,CAAA;;4FD7GH,cAAc,EAAA,UAAA,EAAA,CAAA;kBAb1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;wBACP,WAAW;AACX,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACtD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC9B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,2mRAAA,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,CAAA;;;MEvBU,4BAA4B,CAAA;IACrC,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,IAAI,GAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,IAAA,QAAQ,GAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3B,SAAS,GAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC3C,IAAA,WAAA,CAAY,IAAmC,EAAA;AAC3C,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ;;MCbY,+BAA+B,CAAA;;IAExC,IAAI,GAAQ,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAIvC,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAG/C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAGxC,KAAK,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAEzC,QAAQ,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAE5C,IAAA,SAAS,GAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;AAE7B,IAAA,QAAQ,GAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAI3B,IAAA,WAAA,CAAY,IAAsC,EAAA;AAC9C,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAEJ;AACJ;;ACjCD,IAAY,WAIX,CAAA;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,WAAA,CAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACb,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC;;AC2B/D,MAiBa,iBAAiB,CAAA;AAEV,IAAA,IAAA,CAAA;AACR,IAAA,oBAAA,CAAA;AAEA,IAAA,OAAA,CAAA;AACA,IAAA,YAAA,CAAA;AACA,IAAA,EAAA,CAAA;AACD,IAAA,sBAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACC,IAAA,MAAA,CAAA;IAVV,WACkB,CAAA,IAAiB,EACzB,oBAAyC;;IAEzC,OAAuB,EACvB,YAAiC,EACjC,EAAe,EAChB,sBAA6C,EAC7C,oBAAyC,EACzC,cAA6B,EAC5B,MAAc,EAAA;QATN,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QACzB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QAEzC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAChB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;QAC7C,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KACnB;AACG,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;IAGvD,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,GAAG,CAAC,EAAE,CAAgB,aAAA,EAAA,IAAI,CAAC,EAAE,CAAA,KAAA,CAAO,CAAC,EAAE,EAAE,CAAC,CAAC;KACzF;;AAED,IAAA,kBAAkB,CAAC,GAAG,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,oBAAA,EAAuB,GAAG,CAAC,EAAE,CAAqB,mBAAA,CAAA,CAAC,EAAE,EAAE,CAAC,CAAC;KAChF;;IAGD,QAAQ,GAAU,EAAE,CAAC;;IAErB,UAAU,GAAG,UAAU,CAAC;AACxB,IAAA,IAAI,GAA+B;AACjC,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,UAAU,EAAE,CAAC;KACd,CAAC;;IAEF,OAAO,GAAG,EAAsB,CAAC;;IAEjC,WAAW,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,CAAC,KAA0B,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAChF,YAAA,GAAG,KAAK;YACR,GAAG,IAAI,CAAC,OAAO;AAChB,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,OAAO,GAAG,CAAC,IAAgC,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACnD;AAED,IAAA,MAAM,QAAQ,GAAA;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,MAAK;AACrD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACjB;;IAID,WAAW,GAAY,KAAK,CAAC;;IAG7B,SAAS,GAAY,KAAK,CAAC;;AAE3B,IAAA,gBAAgB,CAAwB;;AAGxC,IAAA,QAAQ,CAAM;IAEd,YAAY,GAAG,WAAW,CAAC;IAC3B,mBAAmB,GAAG,kBAAkB,CAAC;;AAIzC,IAAA,0BAA0B,CAAa;;AAGvC,IAAA,aAAa,CAAC,KAAK,EAAA;QACjB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,OAAO;AACR,SAAA;KACF;;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;;AAED,IAAA,cAAc,CAAC,GAAG,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACpD,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;;AAED,IAAA,eAAe,CAAC,GAAG,EAAA;AACjB,QAAA,IAAI,CAAC,YAAY;AACd,aAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA,+BAAA,CAAiC,CAAC,CAAC;AAC3F,aAAA,SAAS,CAAC,CAAC,MAA2B,KAAI;YACzC,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,sBAAsB;AACxB,qBAAA,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;qBACd,IAAI,CAAC,QAAQ,CAAC,MAAQ,GAAC,CAAC,CAAC;qBACzB,SAAS,CAAC,GAAG,IAAG;AACf,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC,CAAC;AACtF,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClB,iBAAC,CAAC,CAAC;AACN,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;IAGD,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,SAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AAExC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK;YAAE,OAAO;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,oBAAoB;aACtB,MAAM,CAAC,KAAK,CAAC;AACb,aAAA,IAAI,CACH,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B,SAAC,CAAC,CACH;aACA,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACN;;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;;QAExC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACxD,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK;YAAE,OAAO;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,oBAAoB;aACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;AAC/B,aAAA,IAAI,CACH,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B,SAAC,CAAC,CACH;aACA,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACN;;AAED,IAAA,WAAW,CAAC,GAAG,EAAA;AACb,QAAA,IAAI,CAAC,YAAY;AACd,aAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA,+BAAA,CAAiC,CAAC,CAAC;AAC3F,aAAA,SAAS,CAAC,CAAC,MAA2B,KAAI;YACzC,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,oBAAoB;AACtB,qBAAA,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;qBACd,IAAI,CAAC,QAAQ,CAAC,MAAQ,GAAC,CAAC,CAAC;qBACzB,SAAS,CAAC,GAAG,IAAG;AACf,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA4B,0BAAA,CAAA,CAAC,CAAC,CAAC;AACtF,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClB,iBAAC,CAAC,CAAC;AACN,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACjD;;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC1C;;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC3C;;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC9C;;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC1C;IAED,WAAW,GAAA;QACT,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACnD;;AAGD,IAAA,oBAAoB,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACjC,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,IAAI,SAAS,CAAC,KAAK;YAAE,OAAO;AAC5B,QAAA,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,UAAU,CAAC,KAAK;YAAE,OAAO;QAC7B,UAAU,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAC9E,IAAI,aAAa,CAAC,KAAK;YAAE,OAAO;AAChC,QAAA,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;KAC7C;;IAGD,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAC9B,MAAM,EACN,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE;YAC1C,UAAU,EAAE,UAAU,CAAC,QAAQ;AAC/B,YAAA,eAAe,EAAE,IAAI,CAAC,4BAA4B,EAAE;AACrD,SAAA,CAAC,CACH,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAC9B,OAAO,EACP,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE;YAC3C,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAChE,YAAA,eAAe,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACxD,SAAA,CAAC,CACH,CAAC;KACH;IACD,sBAAsB,GAAA;QACpB,OAAO,CAAC,OAAwB,KAA6B;YAC3D,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACnD,YAAA,IAAI,SAAS,GACX,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACnF,YAAA,OAAO,SAAS;AACd,kBAAE;AACA,oBAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC3C,CAAA,0BAAA,CAA4B,EAC5B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC/B,CAAA,sBAAA,CAAwB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAC7D,EACD,QAAQ,CACT;AACF,iBAAA;kBACC,IAAI,CAAC;AACX,SAAC,CAAC;KACH;;IAGD,4BAA4B,GAAA;QAC1B,OAAO,CACL,IAAqB,KACqD;AAC1E,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;gBAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;oBACxC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;AACR,iBAAA;AACD,gBAAA,IAAI,CAAC,oBAAoB;AACtB,qBAAA,UAAU,CAAC;oBACV,IAAI,EAAE,OAAO,CAAC,KAAK;iBACpB,CAAC;qBACD,SAAS,CAAC,GAAG,IAAG;AACf,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,OAAO,CAAC;AACN,4BAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC3C,CAAA,+BAAA,CAAiC,EACjC,IAAI,CAAC,KAAK,CACX;AACF,yBAAA,CAAC,CAAC;AACJ,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,qBAAA;AACH,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;KACH;;IAED,6BAA6B,GAAA;QAC3B,OAAO,CACL,IAAqB,KACqD;AAC1E,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,gBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AACxD,gBAAA,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;oBACnC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;AACR,iBAAA;AACD,gBAAA,IAAI,CAAC,oBAAoB;AACtB,qBAAA,WAAW,CAAC;;AAEX,oBAAA,KAAK,EAAE,OAAO;iBACf,CAAC;qBACD,SAAS,CAAC,GAAG,IAAG;AACf,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,OAAO,CAAC;AACN,4BAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC3C,CAAA,gCAAA,CAAkC,EAClC,IAAI,CAAC,KAAK,CACX;AACF,yBAAA,CAAC,CAAC;AACJ,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,qBAAA;AACH,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;KACH;wGA5TU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAZ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAbjB,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA;;YAET,WAAW;;;;AAIX,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACjC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClDH,skZA6LY,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDzIC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGb,SAAA,EAAA;;wBAET,WAAW;;;;AAIX,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACjC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,skZAAA,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,CAAA;+UA4ED,0BAA0B,EAAA,CAAA;sBADzB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,4BAA4B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;ME3H/C,8BAA8B,CAAA;;IAEvC,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAG/C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAExC,IAAA,SAAS,GAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AAElC,IAAA,WAAA,CAAY,IAAqC,EAAA;AAC7C,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ,CAAA;MACY,aAAa,CAAA;;IAEtB,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,IAAA,MAAM,GAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AACvB,IAAA,WAAA,CAAY,IAAoB,EAAA;AAC5B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ,CAAA;MACY,UAAU,CAAA;;IAEnB,OAAO,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAE3C,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAE/C,IAAA,QAAQ,GAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;AAE5B,IAAA,UAAU,GAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAE9B,IAAA,WAAA,CAAY,IAAiB,EAAA;AACzB,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAEJ;AACJ,CAAA;MAEY,eAAe,CAAA;;IAExB,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAEtC,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAG/C,IAAA,QAAQ,GAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;AAE5B,IAAA,UAAU,GAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9B,IAAA,WAAA,CAAY,IAAsB,EAAA;AAC9B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAEJ;AACJ;;AC/DD,MAWa,qBAAqB,CAAA;AAItB,IAAA,OAAA,CAAA;AACD,IAAA,SAAA,CAAA;AACC,IAAA,KAAA,CAAA;AACD,IAAA,uBAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACA,IAAA,sBAAA,CAAA;AACA,IAAA,oBAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACC,IAAA,MAAA,CAAA;AAVV,IAAA,WAAA;;AAEU,IAAA,OAAuB,EACxB,SAAmB,EAClB,KAAqB,EACtB,uBAA+C,EAC/C,kBAAqC,EACrC,sBAA6C,EAC7C,oBAAyC,EACzC,cAA6B,EAC5B,MAAc,EAAA;QARd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAClB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACtB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;QAC7C,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;QACzC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KACnB;AACG,IAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;AACxB,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;;IAEtD,SAAS,GAA0B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAA;;IAEtF,SAAS,GAAW,EAAE,CAAA;;IAEtB,YAAY,GAAW,EAAE,CAAA;;AAEzB,IAAA,gBAAgB,CAAK;AAErB,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAc,CAAC;KACrD;;AAG2C,IAAA,WAAW,CAAa;;IAGpE,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACvC;IACD,QAAQ,GAAA;QACN,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAA;AACrD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAA;AACjE,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;YAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAA;AACrB,SAAA;KACF;;IAGD,qBAAqB,CAAC,SAAS,GAAG,EAAE,EAAA;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS;AACnG,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;KAC9C;;IAID,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,KAAI;AAC/D,YAAA,IAAI,SAAS,GAAQ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;AAC9C,YAAA,IAAI,cAAc,GAAG,GAAG,CAAC,KAAK,CAAA;YAC9B,cAAc,CAAC,OAAO,CAAC;AACrB,gBAAA,EAAE,EAAE,IAAI;AACR,gBAAA,IAAI,EAAE,iBAAiB;AACxB,aAAA,CAAC,CAAA;YACF,cAAc,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,KAAK,KAAI;AACxC,gBAAA,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;AAC5D,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;YACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;AAC1C,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;AACpC,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAA;AACrB,aAAA;AACH,SAAC,CAAC,CAAA;KACH;;IAED,aAAa,GAAA;QACX,IAAI,SAAS,GAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACnD,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjE,YAAA,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAG;gBACzB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC7B,oBAAA,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAA;oBACpB,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAA;AACpE,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,oBAAA,IAAI,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;AACpE,oBAAA,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;AACjC,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;YACF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,KAAK,KAAI;AAC7C,gBAAA,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;AAC5D,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAA;AAC3B,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,SAAS,CAAA;AACnC,SAAC,CAAC,CAAA;KACH;AACD;;AAEuB;AACvB,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;AAAE,YAAA,OAAO,GAAG,CAAC;AACxD,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5C,QAAA,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACnB,YAAA,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC3B,gBAAA,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACrD,oBAAA,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;AAC5B,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5C,qBAAA;AAAM,yBAAA,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE;AACrC,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,qBAAA;AAAM,yBAAA;AACL,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AACD;;;AAGG;IACH,YAAY,GAAA;QACV,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAC9B,gBAAA,cAAc,EAAE,IAAI;AACrB,aAAA,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAG;AACrB,oBAAA,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAA;AACnB,oBAAA,EAAE,CAAC,UAAU,GAAG,KAAK,CAAA;AACvB,iBAAC,CAAC,CAAA;AACF,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACpB,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;AAGD;AACU;;;IAGV,cAAc,GAAU,EAAE,CAAA;;IAE1B,SAAS,GAAU,EAAE,CAAA;;AAErB,IAAA,oBAAoB,CAAQ;;AAE5B,IAAA,oBAAoB,CAAQ;;IAE5B,YAAY,GAAU,EAAE,CAAA;;AAGxB,IAAA,oBAAoB,CAAK;;AAEzB,IAAA,sBAAsB,CAAK;;IAG3B,cAAc,GAAU,EAAE,CAAA;;AAE1B,IAAA,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAA;AACrD,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAA;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAA;AACtC,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAA;AACtC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAA;KAExC;;AAED,IAAA,yBAAyB,CAAC,OAAO,EAAA;AAC/B,QAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAA;AACrC,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;AACrC,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;AACrC,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;KACtC;;IAED,uBAAuB,GAAA;;QAErB,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC9B,SAAA;AACD,QAAA,IAAI,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAA;QACzD,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACxD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE9C,IAAI,uBAAuB,EAAE;;;YAG3B,IAAI,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAA;;AAEzH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;YACzE,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC7F,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,IAAG;AAC/B,gBAAA,IAAI,EAAE,CAAC,EAAE,IAAI,uBAAuB,CAAC,OAAO,EAAE;AAC5C,oBAAA,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;AAClE,oBAAA,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,iBAAA;AACH,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;AACrC,SAAA;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAA;KACxB;AACD;;AAEG;IACH,yBAAyB,CAAC,YAAiB,EAAE,cAAc,EAAA;AACzD,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAA;;AAEvD,QAAA,IAAI,qBAAqB,EAAE;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;AAC1F,YAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;AACpE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;AAChD,SAAA;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAA;KACxB;;AAED,IAAA,6BAA6B,CAAC,WAAW,EAAA;AACvC,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAA;AAC3D,QAAA,IAAI,uBAAuB,EAAE;;YAE3B,IAAI,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAA;;AAEzH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;AACzE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAA;AACzF,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAA;KACxB;;IAED,gBAAgB,GAAA;QACd,IAAI,QAAQ,GAAG,EAAE,CAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAG;YAC7B,IAAI,WAAW,GAAG,EAAE,CAAA;AACpB,YAAA,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAG;gBACvB,WAAW,CAAC,IAAI,CAAC;AACf,oBAAA,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO;oBAClC,aAAa,EAAE,IAAI,CAAC,WAAW;oBAC/B,UAAU,EAAE,IAAI,EAAE,QAAQ;oBAC1B,YAAY,EAAE,IAAI,EAAE,UAAU;AAC/B,iBAAA,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;YACF,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,EAAE,CAAC,IAAI;AACb,gBAAA,MAAM,EAAE,WAAW;AACpB,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxB,YAAA,SAAS,EAAE,QAAQ;AACpB,SAAA,CAAC,CAAA;KACH;;IAID,IAAI,GAAA;AACF,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAChC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClF,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;oBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,mBAAA,CAAqB,CAAC,CAAC,CAAC;AAC9C,oBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACvC,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAA;YACF,OAAM;AACP,SAAA;AACD,QAAA,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;AAChC,QAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACxD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAA2B,yBAAA,CAAA,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;gBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,mBAAA,CAAqB,CAAC,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACvC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAA;KAIH;;AAED,IAAA,iBAAiB,CAAwB;;IAEzC,eAAe,GAAY,KAAK,CAAA;;IAEhC,SAAS,GAAY,KAAK,CAAA;;AAE1B,IAAA,mBAAmB,CAAK;;IAExB,SAAS,GAAQ,CAAC,CAAA;;AAG2C,IAAA,2BAA2B,CAAa;;AAGrG,IAAA,iBAAiB,CAAC,KAAK,EAAA;QACrB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;YAC7B,OAAM;AACP,SAAA;KACF;;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;KAE5B;;AAED,IAAA,qBAAqB,CAAQ;;IAE7B,aAAa,CAAC,IAAI,EAAE,CAAC,EAAA;QACnB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;AAC3B,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;KAC/B;;IAGD,iBAAiB,GAAA;;QAEf,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAA;AACtF,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAA;AAC5C,SAAA;AAAM,aAAA;;YAEL,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC9D,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAA;KACxB;;AAED,IAAA,eAAe,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;KACnC;;IAID,oBAAoB,GAAY,KAAK,CAAA;;AAErC,IAAA,aAAa,CAAwB;;AAEoB,IAAA,uBAAuB,CAAa;;AAE7F,IAAA,cAAc,CAAS;;AAEvB,IAAA,sBAAsB,CAAC,KAAK,EAAA;QAC1B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;YAC/B,OAAM;AACP,SAAA;KACF;;IAED,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAA;AAC/B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACzG;;IAED,aAAa,GAAA;AACX,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAA;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;QAC7F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QACvF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;AAC3F,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;QACjC,IAAI,CAAC,gBAAgB,EAAE,CAAA;KACxB;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAClC;;AAED,IAAA,oBAAoB,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACvD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC9B,IAAI,SAAS,CAAC,KAAK;YAAE,OAAM;AAC3B,QAAA,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;KAC7B;wGA5XU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAwB,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA/B,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAPrB,QAAA,EAAA,oBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,aAAa,CAAC,oBAAoB;AAC7C,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,6BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBH,yjbA8LY,EAAA,MAAA,EAAA,CAAA,siBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,cAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,cAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDrKC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGnB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;4BAC9B,QAAQ,EAAE,aAAa,CAAC,oBAAoB;AAC7C,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,yjbAAA,EAAA,MAAA,EAAA,CAAA,siBAAA,CAAA,EAAA,CAAA;6UAgC2C,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAqQmB,2BAA2B,EAAA,CAAA;sBAAvF,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,6BAA6B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAoDF,uBAAuB,EAAA,CAAA;sBAA/E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AE5WzD,MAGa,kBAAkB,CAAA;AA6BT,IAAA,WAAA,CAAA;IA5BpB,OAAO,GAAG,UAAU,CAAC;IAGrB,QAAQ,GAAG,CAAC,MAA6B,KACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAiB;AACvC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,8BAA8B;KACpC,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,UAAU,GAAG,CAAC,UAAkB,EAAE,MAA6B,KAC7D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAe;AACrC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,oCAAoC;QACzC,MAAM,EAAE,EAAE,UAAU,EAAE;KACvB,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAGvC,IAAA,MAAM,GAAG,CAAC,KAAwB,EAAE,MAA6B,KAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAiB;AACvC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,GAAG,EAAE,wBAAwB;AAC7B,QAAA,IAAI,EAAE,KAAK;KACZ,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;wGA7BrC,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACCD,MAKa,gBAAgB,CAAA;AAEnB,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AAChC,IAAA,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACjD,IAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;;AAK3D,IAAA,SAAS,CAAwB;;IAGjC,UAAU,GAAK,EAAE,CAAA;AACjB,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;KACxC;AAEF,IAAA,MAAM,QAAQ,GAAA;;;AAIX,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;AAC7B,YAAA,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE;AAC9B,gBAAA,eAAe,EAAE,IAAI,CAAC,wBAAwB,EAAE;AAChD,gBAAA,QAAQ,EAAE,MAAM;aACjB,CAAC;AACH,SAAA,CAAC,CAAA;AACF,QAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;KAE7B;;IAGD,eAAe,GAAA;;QAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAC,OAAO,KAAG;YACpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,IAAE;gBACjD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAC/C,gBAAA,IAAI,CAAC,UAAU,GAAC,GAAG,CAAA;gBACnB,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;IAGD,wBAAwB,GAAA;QACtB,OAAO,CAAC,IAAqB,KAA4E;AACvG,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,gBAAA,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAA;gBAChD,IAAI,CAAC,eAAe,EAAE;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAM;AACP,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,KAAG,eAAe,EAAE;oBACjD,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAM;AACP,iBAAA;AACD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACnE,oBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC/B,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA,8BAAA,CAAgC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1G,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,qBAAA;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;KACH;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAM,GAAG,KAAG;AAC3D,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAa,WAAA,CAAA,CAAC,CAAC,CAAC;AACvE,YAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;AAC9B,SAAC,CAAC,CAAA;KACH;wGA5EU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mDCZ7B,0rBAaO,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDDM,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,0rBAAA,EAAA,CAAA;;;MENZ,WAAW,CAAA;;AAIpB,IAAA,gBAAgB,GAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;AAEpC,IAAA,mBAAmB,GAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;;AAEpC,IAAA,iBAAiB,GAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAElC,IAAA,WAAA,CAAY,IAAkB,EAAA;AAC1B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAGJ;AACJ;;AClBD,MAKa,oBAAoB,CAAA;AAErB,IAAA,EAAA,CAAA;AAEA,IAAA,oBAAA,CAAA;AAHV,IAAA,WAAA,CACU,EAAe;;IAEf,oBAAyC,EAAA;QAFzC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAEf,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;KAElD;;AAED,IAAA,KAAK,CAAK;IACV,IACW,IAAI,CAAC,CAAM,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAM;AAE3B,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;KACf;;AAED,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;KAClB;;AAED,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;KACnB;;AAED,IAAA,QAAQ,CAAK;IACb,IACW,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;KAClB;AACD,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAc,CAAA;KAC1D;AAC2C,IAAA,WAAW,CAAa;;IAGpE,QAAQ,GAAa,EAAE,CAAA;;;AAIvB,IAAA,MAAM,GAAQ,IAAI,WAAW,CAAC,EAAE,CAAC,CAAA;;IAEjC,iBAAiB,GAAa,EAAE,CAAA;IAEhC,kBAAkB,GAAA;;;AAGhB,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;KACnB;IAED,MAAM,UAAU,CAAC,GAAG,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,SAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,OAAO,KAAI;AAC5C,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAA;;AAE9E,YAAA,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;YACjC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;AAChC,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB;AACpC,iBAAA,CAAC,CAAA;AACH,aAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,SAAC,CAAC,CAAA;KACH;;;;;;;;;;;;IAaD,oBAAoB,GAAA;QAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAChC,gBAAA,cAAc,EAAE,IAAI;;AAErB,aAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjB,gBAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAA;AAClC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;oBAChC,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE;AAC1C,iBAAA,CAAC,CAAA;AACF,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACpB,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;AAGD,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;KAClC;wGAvGU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAP,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wQCVjC,upDAmCO,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDzBM,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,upDAAA,EAAA,CAAA;mIAcjB,IAAI,EAAA,CAAA;sBADd,KAAK;gBASK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAOK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAOK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAOsC,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AExC5C,MAKa,qBAAqB,CAAA;AAGhC,IAAA,WAAA,GAAA;KAEC;AACO,IAAA,EAAE,GAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACtB,IAAA,kBAAkB,GAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;;AAGpD,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjB,QAAA,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;KACzB;;IAGD,OAAO,GAAQ,EAAE,CAAA;IACjB,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;KACzB;;AAGD,IAAA,gBAAgB,CAAK;IACrB,IACW,eAAe,CAAC,CAAM,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;KACzB;;AAED,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;KACzB;;AAEH,IAAA,QAAQ,CAAK;IACX,IACW,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAA;AAClB,SAAA;KACF;AAC2C,IAAA,WAAW,CAAa;AAEpE,IAAA,eAAe,CAAuB;;IAGtC,YAAY,GAAU,EAAE,CAAC;AACzB,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,IAAE,IAAI,CAAC,QAAQ,EAAE;AACxE,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,YAAA,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAC/B,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,SAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;YACtC,IAAI,eAAe,GAAG,EAAE,CAAA;AACxB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzB,gBAAA,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC1C,aAAA;AACD,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;AACjE,YAAA,IAAI,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAc,CAAA;AAC1E,YAAA,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,SAAC,CAAC,CAAA;KACH;;IAGD,kBAAkB,CAAC,MAAM,GAAG,EAAE,EAAA;QAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;AAClE,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,WAAW,CAAC,SAAS;AAC7B,gBAAA,MAAM,EAAE,MAAM;AACf,aAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjB,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAA;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;;IAGD,MAAM,YAAY,CAAC,KAAK,EAAA;AACtB,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;KACrC;wGAhGU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,iTCXlC,isDAyBO,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDdM,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,isDAAA,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA,CAAA;0EAgBlB,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAUK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASK,eAAe,EAAA,CAAA;sBADzB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAQK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAOsC,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ME1D/B,YAAY,CAAA;;AAErB,IAAA,kBAAkB,GAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AAE3C,IAAA,WAAA,CAAY,IAAmB,EAAA;AAC3B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ,CAAA;MACY,gBAAgB,CAAA;IAEzB,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAE/C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAExC,IAAA,WAAA,CAAY,IAAmB,EAAA;AAC3B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAGJ;AACJ,CAAA;MAIY,oBAAoB,CAAA;;IAI7B,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAE/C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAExC,IAAA,WAAW,GAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;;IAE5B,eAAe,GAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAE3D,IAAA,iBAAiB,GAA0B,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AAG5D,IAAA,WAAA,CAAY,IAA2B,EAAA;AACnC,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KAEJ;AACJ;;ACzDD,MAKa,qBAAqB,CAAA;AAGtB,IAAA,EAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACA,IAAA,sBAAA,CAAA;AAHV,IAAA,WAAA,CACU,EAAe,EACf,cAA6B,EAC7B,sBAA6C,EAAA;QAF7C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC7B,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;KAClD;;AAGL,IAAA,kBAAkB,CAAO;;AAEzB,IAAA,KAAK,CAAK;IACV,IACW,IAAI,CAAC,CAAM,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACd,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAED,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAID,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AAExB,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,UAAU,EAAE,CAAA;AAClB,SAAA;KACF;AAG2C,IAAA,WAAW,CAAa;AAEpE,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,SAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,OAAO,KAAI;AAC5C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACzF,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAA;AAC/E,YAAA,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;YAC3B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;YACnE,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,SAAC,CAAC,CAAA;KACH;IAGD,cAAc,GAAA;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,EAAE;AAClE,gBAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,KAAI;AAC1E,oBAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;oBAC/B,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,KAAI;AAChC,wBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACrC,qBAAC,CAAC,CAAA;iBACH,EAAE,CAAA;gBACH,OAAO,CAAC,IAAI,CAAC,CAAA;AACd,aAAA;AAEH,SAAC,CAAC,CAAA;KACH;;AAGD,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAc,CAAA;KAC1D;;AAGD,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAc,CAAA;KACxE;;IAID,eAAe,GAAY,KAAK,CAAA;;IAEhC,iBAAiB,GAAQ,KAAK,CAAA;;IAG9B,SAAS,GAAY,KAAK,CAAA;;AAG1B,IAAA,eAAe,CAAwB;;AAGiB,IAAA,sBAAsB,CAAa;;IAG3F,sBAAsB,GAAQ,CAAC,CAAA;;IAG/B,sBAAsB,GAAQ,CAAC,CAAA;;AAG/B,IAAA,wBAAwB,CAAC,KAAK,EAAA;QAC5B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;YAChC,OAAM;AACP,SAAA;KACF;;IAID,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;KAC5B;;IAKD,gBAAgB,GAAA;AACd,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK;YAAE,OAAM;QACvC,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAc,CAAA;YAC7F,oBAAoB,CAAC,UAAU,CAAC;AAC9B,gBAAA,GAAG,KAAK;AACT,aAAA,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;KAC7B;;AAED,IAAA,sBAAsB,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;YACvC,WAAW,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;YACpE,IAAI,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AACtD,YAAA,MAAM,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;AAC1B,SAAA,CAAC,CAAC,CAAA;KACJ;;AAED,IAAA,eAAe,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAC9B,YAAA,GAAG,KAAK;AACT,SAAA,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;KAC9B;;AAGD,IAAA,iBAAiB,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KACtC;;AAGD,IAAA,uBAAuB,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAA;KACpC;;IAGD,cAAc,GAAA;QACZ,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAA;KAEzD;;AAED,IAAA,kBAAkB,CAAC,KAAA,GAAa,EAAE,EAAE,sBAAsB,EAAA;;QAExD,IAAI,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,sBAAsB,CAAc,CAAA;QAC5F,IAAI,mBAAmB,GAAG,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAA;QAC7E,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;;YAErC,WAAW,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;;YAEvD,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;;AAEzC,YAAA,WAAW,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;;AAEpC,YAAA,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;;AAE7E,YAAA,iBAAiB,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;AACrC,SAAA,CAAC,CAAC,CAAA;;KAEJ;;IAGD,iBAAiB,CAAC,eAAe,EAAE,KAAK,EAAA;AACtC,QAAA,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAA;KAChC;;IAGD,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,EAAA;AACxD,QAAA,IAAI,CAAC,sBAAsB,GAAG,gBAAgB,CAAA;KAC/C;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KACzC;AACD,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAc,CAAA;QACjG,IAAI,mBAAmB,GAAG,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAA;AAC7E,QAAA,OAAO,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACvE;;AAGD,IAAA,oBAAoB,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACvD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC9B,IAAI,SAAS,CAAC,KAAK;YAAE,OAAM;AAC3B,QAAA,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;KAC7B;;AAED,IAAA,+BAA+B,CAAC,KAAK,EAAA;AACnC,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACvD,QAAA,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACxC,IAAI,cAAc,CAAC,KAAK;YAAE,OAAM;AAChC,QAAA,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;KAClC;wGAhOU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,uWCVlC,+zTAkJY,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDxIC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,+zTAAA,EAAA,CAAA;8JAiBjB,IAAI,EAAA,CAAA;sBADd,KAAK;gBAQK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAUK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAUsC,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBA0Dc,sBAAsB,EAAA,CAAA;sBAA7E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AEvGxD,MAKa,sBAAsB,CAAA;AAGvB,IAAA,EAAA,CAAA;AADV,IAAA,WAAA,CACU,EAAe,EAAA;QAAf,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;KAGxB;;AAGD,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;IAGD,OAAO,GAAQ,EAAE,CAAA;IACjB,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAGD,IAAA,gBAAgB,CAAK;IACrB,IACW,eAAe,CAAC,CAAM,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAED,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;AAAE,SAAA;KAE7B;;AAED,IAAA,QAAQ,CAAK;IACb,IACW,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnB;AAC2C,IAAA,WAAW,CAAa;;AAGpE,IAAA,eAAe,CAAuB;;AAGtC,IAAA,MAAM,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAc,CAAA;AAC3E,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtE,SAAA;KACF;AAED,IAAA,iBAAiB,CAAK;;AAEtB,IAAA,gBAAgB,CAAuB;IAEvC,SAAS,GAAA;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;YACtC,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAA;YAC5D,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACrC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;AACvE,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAc,CAAA;YACtF,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAG;oBAC1B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;AAC7G,iBAAC,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,gBAAgB,CAAA;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,SAAC,CAAC,CAAA;KACH;;IAGD,oBAAoB,GAAU,EAAE,CAAA;;AAGhC,IAAA,gBAAgB,CAAC,IAAI,EAAA;QACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACvC,YAAA,eAAe,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;AAClC,YAAA,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,YAAA,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,SAAA,CAAC,CAAC,CAAA;KACJ;;AAED,IAAA,mBAAmB,CAAC,KAAK,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KACtC;wGA9FU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,iTCRnC,oqFAyCO,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDjCM,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,oqFAAA,EAAA,CAAA;oGAelB,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASK,eAAe,EAAA,CAAA;sBADzB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBASK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAIsC,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MEnD/B,WAAW,CAAA;;AAKpB,IAAA,YAAY,GAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AAErC,IAAA,WAAA,CAAY,IAAkB,EAAA;AAC1B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ,CAAA;MACY,gBAAgB,CAAA;;IAEzB,WAAW,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAE/C,IAAA,iBAAiB,GAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;;IAE1C,IAAI,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAExC,eAAe,GAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAGnD,IAAA,QAAQ,GAAQ,CAAC,KAAK,CAAC,CAAC;;AAExB,IAAA,WAAW,GAAQ,CAAC,EAAE,CAAC,CAAC;AAGxB,IAAA,WAAA,CAAY,IAAkB,EAAA;AAC1B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AACJ;;ACvCD,MAKa,oBAAoB,CAAA;AAErB,IAAA,EAAA,CAAA;AACA,IAAA,cAAA,CAAA;AACA,IAAA,sBAAA,CAAA;AAHV,IAAA,WAAA,CACU,EAAe,EACf,cAA6B,EAC7B,sBAA6C,EAAA;QAF7C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC7B,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;KAClD;;AAEL,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAED,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,UAAU,EAAE,CAAA;AAClB,SAAA;KACF;;AAED,IAAA,kBAAkB,CAAO;;AAGzB,IAAA,KAAK,CAAK;IACV,IACW,IAAI,CAAC,CAAM,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACd,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;AACD,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAc,CAAA;KAC1D;AACD,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAc,CAAA;KACpE;AAC2C,IAAA,WAAW,CAAa;AAEpE,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAExC,SAAA;KACF;;IAED,eAAe,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,GAAG,IAAI,gBAAgB,EAAE;YACzB,iBAAiB,EAAE,CAAC,EAAE,CAAC;AACxB,SAAA,CAAC,CAAC,CAAA;KACJ;;AAED,IAAA,kBAAkB,CAAC,KAAK,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KAClC;IAED,SAAS,GAAA;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAA;AAC9E,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACzF,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,EAAE;AAClE,gBAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;oBAC5D,IAAI,CAAC,eAAe,EAAE,CAAA;AACxB,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;AACpE,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAA;AACvB,aAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,SAAC,CAAC,CAAA;KACH;AACD,IAAA,QAAQ,CAAK;;AAEb,IAAA,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAA;QAC/B,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;AAC1D,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;KACrB;AAED,IAAA,gCAAgC,CAAK;;AAGrC,IAAA,iBAAiB,CAAK;;IAEtB,eAAe,GAAY,KAAK,CAAA;;IAGhC,SAAS,GAAY,KAAK,CAAA;;AAE1B,IAAA,eAAe,CAAwB;;AAGvC,IAAA,cAAc,CAAK;;AAIqC,IAAA,sBAAsB,CAAa;;AAI3F,IAAA,wBAAwB,CAAC,KAAK,EAAA;QAC5B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;AAC/B,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;AAChC,YAAA,IAAI,CAAC,gCAAgC,GAAG,SAAS,CAAA;AACjD,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;YAClC,OAAM;AACP,SAAA;KACF;;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAc,CAAC;QAC5E,IAAI,sBAAsB,GAAG,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAc,CAAA;QAE5E,sBAAsB,CAAC,QAAQ,CAAC;AAC9B,YAAA,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC;AACnD,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;KAC7B;;IAGD,YAAY,CAAC,IAAI,EAAE,CAAC,EAAA;QAElB,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAA;AACzE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAC9B,GAAG,IAAI,CAAC,KAAK;AACd,SAAA,CAAC,CAAA;QACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC;AACvD,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;AACnC,SAAA,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;KAC5B;;IAID,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAA;QAC5B,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACjC,QAAA,IAAI,SAAS,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;KAC/C;;IAID,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAA;AAC9B,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACvD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,SAAS,CAAC,KAAK;YAAE,OAAM;AAC3B,QAAA,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;KAC7B;wGA9JU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,sWCVjC,ypKAoFY,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD1EC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,ypKAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,CAAA;8JAahB,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAaK,IAAI,EAAA,CAAA;sBADd,KAAK;gBAWsC,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBA+Dc,sBAAsB,EAAA,CAAA;sBAA7E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AE5GxD,MAKa,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA;KAGC;AACO,IAAA,EAAE,GAAC,MAAM,CAAC,WAAW,CAAC,CAAA;;AAG9B,IAAA,OAAO,CAAuB;IAC9B,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;IAGD,OAAO,GAAQ,EAAE,CAAA;IACjB,IACW,MAAM,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAGD,IAAA,gBAAgB,CAAK;IACrB,IACW,eAAe,CAAC,CAAM,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;;AAED,IAAA,SAAS,CAAK;IACd,IACW,QAAQ,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE;AACpB,QAAA,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;AAAE,SAAA;KAE7B;;AAEC,IAAA,QAAQ,CAAK;IACb,IACW,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnB;AACyC,IAAA,WAAW,CAAa;;AAGpE,IAAA,eAAe,CAAuB;;AAGtC,IAAA,MAAM,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAc,CAAA;AAC3E,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,SAAA;KACF;AAED,IAAA,iBAAiB,CAAK;;AAEtB,IAAA,gBAAgB,CAAuB;IAEvC,SAAS,GAAA;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,KAAI;YACtC,IAAI,eAAe,GAAG,EAAE,CAAA;AACxB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzB,gBAAA,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC1C,aAAA;YACD,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAA;AAC5D,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;AAC1C,YAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAC,mBAAmB,CAAC,CAAC;YAEnD,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACrC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;AACvE,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAc,CAAA;YACtF,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAG;oBAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC5B,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACjD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC3B,aAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,SAAC,CAAC,CAAA;KACH;;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACvC,iBAAiB,EAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AACpC,SAAA,CAAC,CAAC,CAAA;KACJ;;AAED,IAAA,qBAAqB,CAAC,KAAK,EAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KACtC;;IAEA,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAA;QAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrC,QAAA,IAAI,SAAS,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAA;KAC3C;wGAxGU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,gTCRlC,moGAqDO,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD7CM,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,moGAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,CAAA;0EAejB,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASK,eAAe,EAAA,CAAA;sBADzB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBASO,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAIoC,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEjD5C;;AAEG;AACU,MAAA,iBAAiB,GAAU;AACpC,IAAA;AACI,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,oBAAoB,EAAE,oBAAoB;AAC1C,QAAA,cAAc,EAAE,qBAAqB;AACxC,KAAA;AACD,IAAA;AACI,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,oBAAoB,EAAE,qBAAqB;AAC3C,QAAA,cAAc,EAAE,sBAAsB;AACzC,KAAA;AACD,IAAA;AACI,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,oBAAoB,EAAE,oBAAoB;AAC1C,QAAA,cAAc,EAAE,qBAAqB;AACxC,KAAA;;;ACZL;AACO,MAAM,gCAAgC,GAAG,aAAa,CAAC,UAAU,CAAQ;AAC5E,IAAA;AACI,QAAA,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACtD,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAChC;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,YAAY;AACrB,KAAA;AACJ,CAAA,CAAC,CAAC;AACH;AACO,MAAM,+CAA+C,GAAG,aAAa,CAAC,UAAU,CAAQ;AAC3F,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YAC1D,SAAS,CAAC,cAAc,EAAE,CAAC;SAC9B;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,aAAa;AACtB,KAAA;AACJ,CAAA,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,8BAA8B,GAAG,aAAa,CAAC,UAAU,CAAQ;AAC1E,IAAA;AACI,QAAA,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpD,SAAS,CAAC,iBAAiB,EAAE,CAAC;SACjC;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,YAAY;AACrB,KAAA;AACJ,CAAA,CAAC,CAAC;AACH;AACO,MAAM,qCAAqC,GAAG,aAAa,CAAC,UAAU,CAAQ;AACjF,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;YACzD,SAAS,CAAC,cAAc,EAAE,CAAC;SAC9B;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,aAAa;AACtB,KAAA;AACJ,CAAA,CAAC,CAAC;AACH;AACO,MAAM,mCAAmC,GAAG,aAAa,CAAC,UAAU,CAAQ;AAC/E,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YACvD,SAAS,CAAC,cAAc,EAAE,CAAC;SAC9B;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,aAAa;AACtB,KAAA;AACJ,CAAA,CAAC,CAAC;AAEH;AACO,MAAM,+BAA+B,GAAG,aAAa,CAAC,UAAU,CAAQ;AAC3E,IAAA;AACI,QAAA,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACrD,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAChC;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,YAAY;AACrB,KAAA;AACJ,CAAA,CAAC,CAAC;AACH;AACO,MAAM,sCAAsC,GAAG,aAAa,CAAC,UAAU,CAAQ;AAClF,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpD,SAAS,CAAC,MAAM,EAAE,CAAC;SACtB;AACD,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,EAAE;AACX,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACpD,YAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC/B;AACD,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,aAAa;AACtB,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACpD,YAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,mBAAmB;AAC5B,KAAA;AACJ,CAAA,CAAC,CAAC;AACH;AACO,MAAM,oCAAoC,GAAG,aAAa,CAAC,UAAU,CAAQ;AAChF,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAClD,SAAS,CAAC,MAAM,EAAE,CAAC;SACtB;AACD,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,EAAE;AACX,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAClD,YAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC/B;AACD,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,aAAa;AACtB,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,IAAI,IAAG;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAClD,YAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC;AACD,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,IAAI,EAAE,mBAAmB;AAC5B,KAAA;AACJ,CAAA,CAAC;;AClKK,MAAM,WAAW,GAAG;AACvB,IAAA,OAAO,EAAE,+BAA+B;AACxC,IAAA,cAAc,EAAE,sCAAsC;AACtD,IAAA,YAAY,EAAE,oCAAoC;AAClD,IAAA,MAAM,EAAE,8BAA8B;AACtC,IAAA,YAAY,EAAE,qCAAqC;AACnD,IAAA,UAAU,EAAE,mCAAmC;AAC/C,IAAA,QAAQ,EAAE,gCAAgC;AAC1C,IAAA,oBAAoB,EAAE,+CAA+C;CACxE,CAAC;AAEF,MAAM,YAAY,GAAG,MAAK;IACtB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAA,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE;QAClC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;AAChE,KAAA;AACD,IAAA,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AACF;AACO,MAAM,2BAA2B,GAAG,YAAY,EAAE,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,+BAA+B,GAAG,IAAI,cAAc,CAC7D,iCAAiC,CACpC,CAAC;AAEF;;;;;;;;;;;;;AAaG;AACI,MAAM,qBAAqB,GAAmB,MAAK;AACtD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC7C,IAAA,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,MAAM,mBAAmB,GAAG,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAClF,IAAA,OAAO,mCAAmC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAC/D,GAAG,CAAC,QAAQ,KAAK;;;AAGhB,KAAA,CAAC,CAAC,EACH,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,EAC7C,GAAG,CAAC,2BAA2B,IAAG;QAC9B,uBAAuB,CACnB,UAAU,CAAC,cAAc,EACzB,2BAA2B,EAC3B,mBAAmB,CACtB,CAAC;KACL,CAAC,CACL,CAAC;AACN,CAAC;;AC5FD,aAAe,CAAA;;;;;;;;;;;;CAYd;;ACVD,IAAI,aAAa,GAAG,KAAK,CAAA;SACT,WAAW,GAAA;;AAEvB,IAAA,IAAI,aAAa;QAAE,OAAM;IACzB,aAAa,GAAG,IAAI,CAAA;AACpB,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,QAAQ,GAAY,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C;;ACSA,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;AACzC,QAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC7C,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AAEf,gBAAA,QAAQ,EAAE;AACR,oBAAA;AACE,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACrB,qBAAA;AACD,oBAAA;AACE,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA;AACD,oBAAA;AACE,wBAAA,IAAI,EAAE,gBAAgB;AACtB,wBAAA,SAAS,EAAE,aAAa;AACzB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA;AACE,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,QAAQ,EAAE;AACR,4BAAA;AACE,gCAAA,IAAI,EAAE,EAAE;AACR,gCAAA,SAAS,EAAE,eAAe;AAC1B,gCAAA,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACrB,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,QAAQ;AACd,gCAAA,SAAS,EAAE,oBAAoB;AAChC,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,UAAU;AAChB,gCAAA,SAAS,EAAE,kBAAkB;AAC9B,6BAAA;AACF,yBAAA;AACF,qBAAA;;;;;;AAMD,oBAAA;AACE,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,QAAQ,EAAE;AACR,4BAAA;AACE,gCAAA,IAAI,EAAE,EAAE;AACR,gCAAA,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACpB,gCAAA,SAAS,EAAE,iBAAiB;AAC7B,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,yBAAyB;AAC/B,gCAAA,QAAQ,EAAE;AACR,oCAAA;AACE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,SAAS,EAAE,qBAAqB;AACjC,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,oBAAoB;AAC1B,wCAAA,SAAS,EAAE,qBAAqB;AACjC,qCAAA;AACF,iCAAA;AACF,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF,CAAC;AAGF,MAIa,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,0CAFjB,YAAY,CAAA,EAAA,CAAA,CAAA;yGAEX,gBAAgB,EAAA,OAAA,EAAA,CAHjB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;ACjED,MAiDa,SAAS,CAAA;AAIpB,IAAA,OAAO,QAAQ,CAAC,OAAA,GAAe,EAAE,EAAA;QAC/B,OAAO;AACL,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,+BAA+B;oBACxC,QAAQ,EAAE,OAAO,CAAC,yBAAyB;AAC5C,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AACD,IAAA,OAAO,OAAO,CAAC,OAAA,GAAe,EAAE,EAAA;QAC9B,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KAC3D;wGAjBU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,iBA/ClB,gBAAgB;YAChB,eAAe;;YAEf,iBAAiB;YACjB,mBAAmB;YACnB,oBAAoB;YACpB,kBAAkB;YAClB,0BAA0B;YAC1B,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,4BAA4B;YAC5B,oBAAoB;YACpB,qBAAqB;YACrB,qBAAqB;YACrB,sBAAsB;YACtB,oBAAoB;YACpB,qBAAqB;AACrB,YAAA,gBAAgB,aAGhB,UAAU;YACV,iBAAiB;YACjB,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjB,UAAU;AACV,YAAA,cAAc,qCAMd,oBAAoB;YACpB,qBAAqB;YACrB,qBAAqB;YACrB,sBAAsB;YACtB,oBAAoB;YACpB,qBAAqB;YACrB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAMP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YA1BlB,UAAU;YACV,iBAAiB;YACjB,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjB,UAAU;YACV,cAAc;YACd,iBAAiB,CAAC,OAAO,CAAC;gBACxB,oBAAoB,EAAE,CAAC,GAAG,iBAAiB,EAAE,GAAG,qBAAqB,EAAE,GAAG,yBAAyB,CAAC;aACrG,CAAC,CAAA,EAAA,CAAA,CAAA;;4FAeO,SAAS,EAAA,UAAA,EAAA,CAAA;kBAjDrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;;wBAEf,iBAAiB;wBACjB,mBAAmB;wBACnB,oBAAoB;wBACpB,kBAAkB;wBAClB,0BAA0B;wBAC1B,qBAAqB;wBACrB,eAAe;wBACf,aAAa;wBACb,4BAA4B;wBAC5B,oBAAoB;wBACpB,qBAAqB;wBACrB,qBAAqB;wBACrB,sBAAsB;wBACtB,oBAAoB;wBACpB,qBAAqB;wBACrB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,iBAAiB;wBACjB,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,kBAAkB;wBAClB,iBAAiB;wBACjB,UAAU;wBACV,cAAc;wBACd,iBAAiB,CAAC,OAAO,CAAC;4BACxB,oBAAoB,EAAE,CAAC,GAAG,iBAAiB,EAAE,GAAG,qBAAqB,EAAE,GAAG,yBAAyB,CAAC;yBACrG,CAAC;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,qBAAqB;wBACrB,qBAAqB;wBACrB,sBAAsB;wBACtB,oBAAoB;wBACpB,qBAAqB;wBACrB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,SAAS,EAAE,EACV;AAEF,iBAAA,CAAA;;;ACxFD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"dignite-ng-expand.cms.mjs","sources":["../../../projects/cms/src/lib/proxy/entries/entry-status.enum.ts","../../../projects/cms/src/lib/enums/ecms-component.ts","../../../projects/cms/src/lib/services/update-list.service.ts","../../../projects/cms/src/lib/proxy/admin/settings/site-settings-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/entries/entry-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/entry-type-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/sections/section-admin.service.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create-or-update-entry-input-base.ts","../../../projects/cms/src/lib/proxy/admin/fields/field-group-admin.service.ts","../../../projects/cms/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts","../../../projects/cms/src/lib/services/field-abstracts.service.ts","../../../projects/cms/src/lib/services/cms.service.ts","../../../projects/cms/src/lib/services/cms-api.service.ts","../../../projects/cms/src/lib/services/simple-reuse-strategy.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.ts","../../../projects/cms/src/lib/components/admin/entries/create-or-edit-entries.component.html","../../../projects/cms/src/lib/components/admin/entries/create.component.ts","../../../projects/cms/src/lib/components/admin/entries/create.component.html","../../../projects/cms/src/lib/components/admin/entries/edit.component.ts","../../../projects/cms/src/lib/components/admin/entries/edit.component.html","../../../projects/cms/src/lib/proxy/admin/fields/field-admin.service.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.ts","../../../projects/cms/src/lib/components/admin/fields/field-group.component.html","../../../projects/cms/src/lib/components/admin/fields/fields.component.ts","../../../projects/cms/src/lib/components/admin/fields/fields.component.html","../../../projects/cms/src/lib/components/admin/fields/create-or-update-field-input-base.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-or-edit-field.component.html","../../../projects/cms/src/lib/components/admin/fields/create-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/create-field.component.html","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.ts","../../../projects/cms/src/lib/components/admin/fields/edit-field.component.html","../../../projects/cms/src/lib/components/admin/sites/sites.component.ts","../../../projects/cms/src/lib/components/admin/sites/sites.component.html","../../../projects/cms/src/lib/components/admin/sites/create-or-update-sites-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/create-or-update-sections-input-base.ts","../../../projects/cms/src/lib/proxy/sections/section-type.enum.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.ts","../../../projects/cms/src/lib/components/admin/sections/sections.component.html","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts","../../../projects/cms/src/lib/components/admin/sections/entry-types/create-or-edit.component.html","../../../projects/cms/src/lib/proxy/admin/domains/domain-admin.service.ts","../../../projects/cms/src/lib/components/admin/domains/domains.component.ts","../../../projects/cms/src/lib/components/admin/domains/domains.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/entry/entry-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/matrix/matrix-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-config.component.html","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.ts","../../../projects/cms/src/lib/components/dynamic-form/table/table-control.component.html","../../../projects/cms/src/lib/components/dynamic-form/form-control-group.ts","../../../projects/cms/src/lib/toolbar/toolbar-btn-default-action.ts","../../../projects/cms/src/lib/toolbar/toolbar-config.ts","../../../projects/cms/src/lib/constants/styles.ts","../../../projects/cms/src/lib/services/appent-content.ts","../../../projects/cms/src/lib/cms-routing.module.ts","../../../projects/cms/src/lib/cms.module.ts","../../../projects/cms/src/public-api.ts","../../../projects/cms/src/dignite-ng-expand.cms.ts"],"sourcesContent":["import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum EntryStatus {\r\n Draft = 0,\r\n Published = 1,\r\n}\r\n\r\nexport const entryStatusOptions = mapEnumToOptions(EntryStatus);\r\n","export enum ECmsComponent {\n Entries=\"Cms.Entries\",\n Entries_Create=\"Cms.Entries.Create\",\n Entries_Edit=\"Cms.Entries.Edit\",\n Fields=\"Cms.Fields\",\n FieldsCreate=\"Cms.Fields.Create\",\n FieldsEdit=\"Cms.Fields.Edit\",\n Sites=\"Cms.Sites\",\n Sections=\"Cms.Sections\",\n SectionsCreateOrEdit=\"Cms.Sections.Create.Or.Edit\",\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UpdateListService {\n\n public updateListEvent: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n updateList() {\n this.updateListEvent.emit();\n }\n}\n","import { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { BrandDto } from '../../settings/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteSettingsAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getAllLanguages = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string[]>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/all-languages',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getBrand = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, BrandDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/site-settings/brand',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getDefaultLanguage = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, string>({\r\n method: 'GET',\r\n responseType: 'text',\r\n url: '/api/cms-admin/site-settings/default-language',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateEntryInput, CultureExistWithSingleSectionInput, EntryDto, GetEntriesInput, MoveEntryInput, SlugExistsInput, UpdateEntryInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto, PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n activate = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/activate/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n create = (input: CreateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entries',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n cultureExistWithSingleSection = (input: CultureExistWithSingleSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/culture-exists-with-single-section',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getAllVersions = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entries/${id}/all-versions`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetEntriesInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries',\r\n params: { culture: input.culture, sectionId: input.sectionId, entryTypeId: input.entryTypeId, startPublishDate: input.startPublishDate, expiryPublishDate: input.expiryPublishDate, filter: input.filter, status: input.status, creatorId: input.creatorId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getListByIds = (sectionId: string, ids: string[], config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<EntryDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/search-by-ids',\r\n params: { sectionId, ids },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n move = (id: string, input: MoveEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'POST',\r\n url: `/api/cms-admin/entries/move/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n slugExists = (input: SlugExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entries/slug-exists',\r\n params: { culture: input.culture, sectionId: input.sectionId, slug: input.slug },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryDto>({\r\n method: 'PUT',\r\n url: '/api/cms-admin/entries',\r\n params: { id },\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateEntryTypeInput, EntryTypeDto, EntryTypeNameExistsInput, UpdateEntryTypeInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntryTypeAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/entry-types',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: EntryTypeNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/entry-types/name-exists',\r\n params: { sectionId: input.sectionId, name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateEntryTypeInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, EntryTypeDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/entry-types/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { CreateSectionInput, GetSectionsInput, SectionDto, SectionNameExistsInput, SectionRouteExistsInput, UpdateSectionInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SectionAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/sections',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/sections/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetSectionsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<SectionDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections',\r\n params: { filter: input.filter, isActive: input.isActive, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (input: SectionNameExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/name-exists',\r\n params: { name: input.name },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n routeExists = (input: SectionRouteExistsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sections/route-exists',\r\n params: { route: input.route },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateSectionInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SectionDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/sections/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { ABP, ConfigStateService, LIST_QUERY_DEBOUNCE_TIME, ListService, LocalizationService, PagedResultDto } from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { EntryAdminService, EntryDto, GetEntriesInput } from '../../../proxy/admin/entries';\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { finalize } from 'rxjs/operators';\n// import { SiteAdminService } from '../../../proxy/admin/sites';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\nimport { entryStatusOptions } from '../../../proxy/entries';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums/ecms-component';\nimport { Router } from '@angular/router';\nimport { UpdateListService } from '../../../services/update-list.service';\nimport { SiteSettingsAdminService } from '../../../proxy/admin/settings';\n\n\n@Component({\n selector: 'cms-entries',\n templateUrl: './entries.component.html',\n styleUrls: ['./entries.component.scss'],\n providers: [\n ListService,\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries,\n },\n ]\n})\nexport class EntriesComponent implements OnInit {\n\n constructor(\n private _EntryAdminService: EntryAdminService,\n // private _SiteAdminService: SiteAdminService,\n private _SectionAdminService: SectionAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private configState: ConfigStateService,\n private router: Router,\n private _LocalizationService: LocalizationService,\n ) {\n }\n\n private fb = inject(FormBuilder)\n private _UpdateListService = inject(UpdateListService)\n public readonly list = inject(ListService)\n\n\n ngOnInit(): void {\n this.getPageDate()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n\n /**站点列表 */\n // siteList: any[any] = []\n /**选择的站点id */\n // siteId: string = ''\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n\n /**版块下的语言列表 */\n sectionLanguagesList: any[any] = []\n /**版块下的条目类型列表 */\n entryTypeList: any[any] = []\n /**状态编码 */\n _entryStatusOptions = entryStatusOptions\n\n /**获取页面数据 */\n async getPageDate() {\n // await this.getsiteList()\n await this.getSiteOfSectionList()\n await this.getSectionLanguagesList()\n this.filters = this.filtersForm.value\n this.hookToQuery()\n }\n\n\n /**切换板块 */\n async sectionIdChange() {\n this.getSectionOfEntryType()\n await this.getSectionLanguagesList()\n this.resetData()\n }\n /**切换语言 */\n async cultureChange() {\n this.resetData()\n }\n\n\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n // let siteId = this.filtersForm.get('siteId').value\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n // siteId: siteId\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.filtersForm.get('sectionId').patchValue(res.items[0]?.id || '')\n this.getSectionOfEntryType()\n resolve(res.items)\n })\n })\n }\n\n /**获取版块下的条目类型 */\n getSectionOfEntryType() {\n let sectionId = this.filtersForm.get('sectionId').value\n this.entryTypeList = this.SiteOfSectionList.find(el => el.id == sectionId)?.entryTypes || []\n }\n\n private config = inject(ConfigStateService)\n private _SiteSettingsAdminService = inject(SiteSettingsAdminService)\n /**获取版块下的语言列表 */\n getSectionLanguagesList() {\n return new Promise(async (resolve, rejects) => {\n //获取所有语言 */\n let languagesSystem = this.configState.getDeep('localization.languages')\n //获取系统默认语言 */\n let DefaultLanguage = this.config.getSetting(\"Abp.Localization.DefaultLanguage\");\n const configCmsSiteLanguages = this.config.getSetting(\"Cms.Site.Languages\")\n if(!configCmsSiteLanguages){\n await this.getSiteSettingsLanguages()\n }\n const LanguagesSite = (configCmsSiteLanguages ? configCmsSiteLanguages.split(',') : '') || this.SiteSettingsAdminLanguages\n let LanguagesArray = languagesSystem.filter(el => LanguagesSite.includes(el.cultureName))\n //获取当前选择的语言\n let nowculture = this.filtersForm.get('culture').value\n //当前选择的语言,是否在版块的的语言列表中\n let isexist = LanguagesArray.find(el => el.cultureName == nowculture)\n this.filtersForm.get('culture').patchValue(nowculture ? isexist ? nowculture : DefaultLanguage : DefaultLanguage)\n this.sectionLanguagesList = LanguagesArray\n resolve(LanguagesArray)\n })\n }\n\n /**站点设置语言 */\n SiteSettingsAdminLanguages: any[] = []\n /**\n * 获取站点设置语言\n */\n getSiteSettingsLanguages() {\n return new Promise((resolve, rejects) => {\n this._SiteSettingsAdminService.getAllLanguages().subscribe(res => {\n this.SiteSettingsAdminLanguages = res\n resolve(res)\n })\n })\n }\n\n\n\n resetData() {\n this.filters = this.filtersForm.value\n this.list.page = 0\n this.data.items = []\n this.list.get()\n }\n\n /**新增-单个 */\n createEntriesBtn() {\n this.router.navigate(['/cms/admin/entries/create'], {\n queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }\n })\n }\n\n /**列表相关 */\n ColumnMode = ColumnMode;\n data: PagedResultDto<EntryDto> = {\n items: [],\n totalCount: 0,\n };\n\n filters = {} as GetEntriesInput;\n filtersForm: FormGroup = this.fb.group({\n siteId: [''],\n sectionId: [''],\n culture: [''],\n filter: [''],\n })\n\n hookToQuery() {\n\n const getData = (query: ABP.PageQueryParams) => this._EntryAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<EntryDto>) => {\n this.data = list\n };\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n\n /**删除条目 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n\n });\n }\n\n\n}\n","<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}:</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateEntryInputBase {\r\n /**语言 */\r\n culture: any = ['', [Validators.required]]\r\n /**条目id */\r\n entryTypeId: any = ['']\r\n /**标题 */\r\n title: any = ['', [Validators.required]]\r\n /**别名 */\r\n slug: any = ['', [Validators.required]]\r\n /**是否是草稿 */\r\n draft: any = ['', []]\r\n /**发布时间 */\r\n publishTime: any = ['', [Validators.required]]\r\n /**上级目录 */\r\n parentId:any=[null]\r\n /**修订说明 */\r\n versionNotes:any=[null]\r\n /**版本 */\r\n initialVersionId: any = [null]\r\n extraProperties: FormGroup | undefined = new FormGroup({})\r\n constructor(data?: CreateOrUpdateEntryInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import type { CreateOrUpdateFieldGroupInput, FieldGroupDto, GetFieldGroupsInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldGroupAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/field-groups',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldGroupsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldGroupDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/field-groups',\r\n params: { input },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: CreateOrUpdateFieldGroupInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldGroupDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/field-groups/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import type { FormControlDto } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { ListResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getFormControls = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, ListResultDto<FormControlDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/dynamic-forms/forms',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FieldGroupAdminService } from '../proxy/admin/fields/field-group-admin.service';\nimport { FieldGroupDto } from '../proxy/admin/fields/models';\nimport { FormAdminService } from '../proxy/admin/dynamic-forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldAbstractsService {\n\n constructor(\n private _FieldGroupAdminService: FieldGroupAdminService,\n private _FormAdminService: FormAdminService,\n ) { }\n /**字段分组列表 */\n fieldGroupList: FieldGroupDto[] = []\n /**获取字段分组列表 */\n getfieldGroupList() {\n this._FieldGroupAdminService.getList({}).subscribe(res => {\n this.fieldGroupList = res.items\n })\n }\n\n /**表单控件类型 */\n fromControlList: any[] = []\n /**获取表单控件类型 */\n getFromControlList() {\n return new Promise((resolve, reject) => {\n this._FormAdminService.getFormControls({}).subscribe(res => {\n this.fromControlList = res.items\n resolve(res.items)\n })\n })\n }\n getExcludeAssignControl(typeName?) {\n // return this.fromControlList.filter(el => el.name !== typeName)\n return this.fromControlList\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { RestService } from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CmsService {\r\n apiName = 'Cms';\r\n\r\n constructor(private restService: RestService) {}\r\n\r\n sample() {\r\n return this.restService.request<void, any>(\r\n { method: 'GET', url: '/api/Cms/sample' },\r\n { apiName: this.apiName }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { pinyin } from 'pinyin-pro';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CmsApiService {\n\n constructor(\n private titleService: Title,\n ) { }\n /**动态设置浏览器标题 */\n setBrowserTitle(title:string){\n this.titleService.setTitle(title)\n }\n \n\n /**\n * 识别中文转化为拼音,固定返回类型\n * 汉字转拼音\n * 大写转小写\n * \n * */\n chineseToPinyin(value: any) {\n //去除字符串中所有的空格\n // let val = value\n let val = value.replaceAll(' ', \"-\")\n let array = val.split('')\n let newArray = []\n array.forEach((el: any, index: any) => {\n //转化为小写\n let elChange = el.toLowerCase()\n let isChinese = (str) => {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n if (isChinese(elChange)) {\n const resultWithoutTone = pinyin(elChange, { toneType: 'none', type: 'array' });\n elChange = resultWithoutTone.toString() \n if (index < array.length - 1) elChange+='-'\n };\n newArray.push(elChange)\n });\n let pinyinstr = newArray.join('')\n return pinyinstr || val\n }\n\n\n /**\n * 深拷贝--方法 */\n deepClone(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n}\n","\r\nimport { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport class SimpleReuseStrategy implements RouteReuseStrategy {\r\n\r\n public handlers: { [key: string]: DetachedRouteHandle } = {};\r\n //表示对路由允许复用\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n //默认对所有路由复用 可通过给路由配置项增加data: { keep: true }来进行选择性使用,代码如下\r\n //如果是懒加载路由需要在生命组件的位置进行配置\r\n if (!route.data.keep) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const key = route.component.name\r\n if (key) {\r\n this.handlers[key] = handle;\r\n }\r\n }\r\n\r\n //若path在缓存中有的都认为允许还原路由\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n if (route.component?.name) {\r\n return !!this.handlers[route.component?.name]\r\n }\r\n return false\r\n }\r\n\r\n // 从缓存中获取快照,若无则返回null\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n if (!route.routeConfig) return null;\r\n //在loadChildren路径上通过修改自定义RouteReuseStrategy中的检索函数时从不检索分离的路由。\r\n if (route.routeConfig.loadChildren) return null;\r\n if (route.component?.name) {\r\n return this.handlers[route.component?.name];\r\n }\r\n return null\r\n }\r\n\r\n //进入路由触发,判断是否同一路由\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, current: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === current.routeConfig;\r\n }\r\n\r\n}\r\n","import { ConfigStateService, LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { AfterContentInit, Component, inject, Input, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\nimport { Observable } from 'rxjs';\nimport { DatePipe, Location } from '@angular/common';\nimport { CmsApiService } from '../../../services';\n\n@Component({\n selector: 'cms-create-or-edit-entries',\n templateUrl: './create-or-edit-entries.component.html',\n styleUrls: ['./create-or-edit-entries.component.scss']\n})\nexport class CreateOrEditEntriesComponent implements AfterContentInit {\n\n\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private configState: ConfigStateService,\n private _SectionAdminService: SectionAdminService,\n private _EntryAdminService: EntryAdminService,\n private datePipe: DatePipe,\n private _LocalizationService: LocalizationService,\n private router: Router,\n private _CmsApiService: CmsApiService,\n ) { }\n\n\n /**语言 */\n cultureName: string = ''\n /**条目id */\n entryTypeId: string = ''\n\n /**新建版本的版本id,同条目id */\n RevisionEntryId: any = ''\n /**选择的条目项 */\n entryTypesItem: any = ''\n /**版块id */\n sectionId: string = ''\n /**版块详情 */\n SectionSelect: any = ''\n /**语言列表 */\n languagesList: any[] = []\n /**条目类型列表-用于选择上级条目 */\n entryTypesList: any[] = []\n /**版本列表 */\n AllVersionsList: any[] = []\n\n /**是否是编辑 */\n @Input() isEdit = false\n\n /**来自父组件的传值 */\n FromParentQueryParams: any = ''\n @Input()\n public set ParentQueryParams(v: any) {\n if (v) {\n this.FromParentQueryParams = v;\n }\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n if (v) {\n this._entity = v;\n }\n }\n /**指定id的条目信息 */\n entrySelect: any = ''\n @Input()\n public set parentEntrySelect(v: any) {\n if (v) {\n let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties))\n v.extraProperties = V_extraProperties\n this.entrySelect = v;\n }\n }\n /**将对象中的ExtraProperties赋值到extraProperties */\n convertExtraProperties(obj) {\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key].forEach(item => {\n if (item.hasOwnProperty('ExtraProperties')) {\n item['extraProperties'] = item['ExtraProperties'];\n }\n });\n }\n }\n return obj;\n }\n\n /**别名表单实体 */\n get sluginput() {\n return this._entity.get('slug')\n }\n /**语言表单实体 */\n get cultureinput() {\n return this._entity.get('culture')\n }\n /**语言表单实体影子 */\n get culture_shadowInput() {\n return this._entity.get('culture_shadow')\n }\n\n /**extraProperties配置表单实体 */\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n async ngAfterContentInit(): Promise<void> {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n let queryParams = this.FromParentQueryParams\n if (this._entity && this.FromParentQueryParams) {\n this._entity.setControl('slug', new FormControl('', {\n validators: Validators.required,\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n }))\n this._entity.setControl('culture_shadow', new FormControl('', {\n validators: [Validators.required],\n asyncValidators: this.cultureAsyncValidator_test(),\n }))\n this._entity.get('culture').disable();\n if (queryParams.RevisionEntryId && this.entrySelect) {\n this.RevisionEntryId = queryParams.RevisionEntryId\n this.setEntryconfig(this.entrySelect);\n } else {\n this.setEntryconfig(queryParams);\n }\n if (this.sectionId) await this.getSectionSelect();\n if (this.RevisionEntryId) await this.getAllVersionsList()\n\n }\n\n\n }\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChildren('FormDynamicontrolRef', { read: ViewContainerRef }) FormDynamicontrolRef: QueryList<ViewContainerRef>;\n\n\n\n\n\n /**定义自定义异步验证 */\n cultureAsyncValidator_test() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subculture = this._entity?.get('culture').value\n if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {\n resolve(null);\n return\n }\n this._EntryAdminService.cultureExistWithSingleSection({\n culture: subculture,\n sectionId: this.sectionId,\n entryTypeId: this.entryTypeId\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntriesAlreadyExistEntryType`, this.entryTypesItem.displayName, this.languagesList.find(el => el.cultureName == subculture).displayName) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n /** \n * 设置条目详情 \n * @param {object} source - 数据源对象 \n */\n setEntryconfig(source: any) {\n this.entryTypeId = source.entryTypeId;\n this.cultureName = source.culture || source.cultureName;\n this.sectionId = source.sectionId;\n }\n time: number = 0\n\n /**定义自定义异步验证 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this._entity?.get('slug').value\n if (subslug == this.entrySelect?.slug) {\n resolve(null);\n return\n }\n this._EntryAdminService.slugExists({\n culture: this.cultureName,\n sectionId: this.sectionId,\n slug: subslug\n }).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::EntrySlug{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n private config = inject(ConfigStateService)\n\n /**获取版块详情 */\n getSectionSelect() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.get(this.sectionId).subscribe(async (res) => {\n let languages = this.configState.getDeep('localization.languages')\n this.languagesList = languages\n let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId)\n this.SectionSelect = res\n this.entryTypesItem = entryTypesItem\n this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId)\n this._entity.patchValue({\n ...this.entrySelect,\n initialVersionId: this.entrySelect?.initialVersionId || this.RevisionEntryId || '',\n culture: this.cultureName,\n culture_shadow: this.cultureName,\n entryTypeId: this.entryTypeId,\n publishTime: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'),\n })\n resolve(true)\n })\n })\n }\n\n /**获取条目版本列表 */\n getAllVersionsList() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getAllVersions(this.RevisionEntryId).subscribe(res => {\n this.AllVersionsList = res.items\n resolve(res)\n })\n })\n }\n\n /**标题转化别名 */\n setTitleToSlugBlur(event) {\n let val = event.target.value\n let slug = this._entity.get('slug')\n let pinyinstr = ''\n if (slug.value) return\n pinyinstr = this._CmsApiService.chineseToPinyin(val)\n this._entity.patchValue({\n slug: pinyinstr || val\n })\n }\n /**使用Unicode编码范围判断是否是中文字符 */\n isChinese(str) {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n\n /**激活 */\n ActivatedVersion(VersionId) {\n this._EntryAdminService.activate(VersionId).subscribe((res) => {\n this.AllVersionsList.forEach(el => {\n el.isActivatedVersion = el.id === VersionId\n })\n return\n })\n }\n /**编辑版本 */\n toEditUrl(id) {\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries/${id}/edit`]);\n });\n }\n /**删除版本 */\n delectVersion(vid) {\n this._EntryAdminService.delete(vid).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.getAllVersionsList()\n })\n }\n\n}\n","<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <template #FormDynamicRef></template>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs;let i =index\">\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\">\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\"\n style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' |\n abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\n abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","import { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup} from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums/ecms-component';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n\n\n@Component({\n selector: 'cms-create',\n templateUrl: './create.component.html',\n styleUrls: ['./create.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Create,\n },\n ]\n})\nexport class CreateComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private _LocalizationService: LocalizationService,\n private router: Router,\n ) { }\n private fb=inject(FormBuilder)\n private _updateListService=inject(UpdateListService)\n\n /**表单实体 */\n newEntity: FormGroup | undefined\n\n /**是否是草稿 */\n draftType: boolean = false\n /**页面传值用于传递到子组件 */\n queryParams: any = ''\n\n /**指定id的条目信息 */\n entrySelect: any = ''\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit(): Promise<void> {\n this.queryParams = this.route.snapshot.queryParams\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase())\n if(this.queryParams.RevisionEntryId) await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res\n \n resolve(res)\n })\n })\n }\n\n\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft\n })\n let input = this.newEntity.value\n input.publishTime = new Date(new Date(input.publishTime).getTime() + (8 * 60 * 60 * 1000)).toISOString()\n input.culture=this.newEntity.get('culture').value\n console.log(input,'保存',this.newEntity);\n \n if (!this.newEntity.valid) return\n this._EntryAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries`]);\n this._updateListService.updateList();\n });\n })\n }\n\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.draftType = type\n this.submitclick.nativeElement.click()\n }\n /**返回上一页 */\n backTo() {\n this._location.back()\n }\n\n\n\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect; else elseTemplate\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" ></cms-create-or-edit-entries>\n </ng-container>\n <ng-template #elseTemplate>\n <cms-create-or-edit-entries [entity]=\"newEntity\"\n [ParentQueryParams]=\"queryParams\" ></cms-create-or-edit-entries>\n </ng-template>\n </abp-page>\n</form>","/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums/ecms-component';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-edit',\n templateUrl: './edit.component.html',\n styleUrls: ['./edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Entries_Edit,\n },\n ],\n})\nexport class EditComponent implements OnInit {\n constructor(\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n private _EntryAdminService: EntryAdminService,\n private router: Router,\n private _LocalizationService: LocalizationService\n ) {}\n private fb = inject(FormBuilder);\n private _updateListService = inject(UpdateListService);\n \n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**是否是草稿 */\n draftType: boolean = false;\n\n /**页面传值用于传递到子组件 */\n queryParams: any = '' || {};\n\n /**指定id的条目信息 */\n entrySelect: any = '';\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async ngOnInit() {\n this.queryParams.RevisionEntryId = this.route.snapshot.params.entrieId;\n this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase());\n await this.getEntrySelect();\n }\n\n /**获取条目信息 */\n getEntrySelect() {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {\n this.entrySelect = res;\n resolve(res);\n });\n });\n }\n\n /**保存 */\n save(draft) {\n this.newEntity.patchValue({\n draft: draft,\n });\n let input = this.newEntity.value;\n input.publishTime = new Date(\n new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000\n ).toISOString();\n input.culture = this.newEntity.get('culture').value;\n input.concurrencyStamp = this.entrySelect.concurrencyStamp;\n if (!this.newEntity.valid) return;\n this._EntryAdminService.update(this.entrySelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/entries`]);\n this._updateListService.updateList();\n });\n });\n }\n\n /**触发点击按钮替身 */\n clickSubmit(type) {\n this.draftType = type;\n this.submitclick.nativeElement.click();\n }\n /**返回上一页 */\n backTo() {\n this._location.back();\n }\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'AbpUi::Edit' | abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" [isEdit]=\"true\"></cms-create-or-edit-entries>\n </ng-container>\n </abp-page>\n</form>","import type { CreateFieldInput, FieldDto, GetFieldsInput, UpdateFieldInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FieldAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n create = (input: CreateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/fields',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n delete = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'DELETE',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (id: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/${id}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n getList = (input: GetFieldsInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, PagedResultDto<FieldDto>>({\r\n method: 'GET',\r\n url: '/api/cms-admin/fields',\r\n params: { filter: input.filter, groupId: input.groupId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (name: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: `/api/cms-admin/fields/name-exists/${name}`,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (id: string, input: UpdateFieldInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, FieldDto>({\r\n method: 'PUT',\r\n url: `/api/cms-admin/fields/${id}`,\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { FieldGroupAdminService } from '../../../proxy/admin/fields';\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\nimport { finalize} from 'rxjs/operators';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { LocalizationService } from '@abp/ng.core';\n\n@Component({\n selector: 'cms-field-group',\n templateUrl: './field-group.component.html',\n styleUrls: ['./field-group.component.scss']\n})\nexport class FieldGroupComponent implements OnInit {\n constructor(\n private fb: FormBuilder,\n private _FieldGroupAdminService: FieldGroupAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n public _FieldAbstractsService: FieldAbstractsService,\n public _LocalizationService: LocalizationService,\n ) { }\n\n\n /**创建分组表单 */\n createForm: FormGroup | undefined;\n\n /** 编辑分组表单*/\n editGroupForm: FormGroup | undefined;\n\n /**表单已存在的值 */\n selected = {} as any;\n\n /**选择的字段分组id */\n fieldGroupId: string | undefined = ''\n\n /**创建分组模态框状态 */\n createGroupOpen = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**编辑分组模态框状态 */\n editGroupOpen: boolean = false\n\n /**点击分组回调 */\n @Output() OnGroupClickBack = new EventEmitter();\n\n ngOnInit(): void {\n this._FieldAbstractsService.getfieldGroupList()\n }\n\n /**创建字段分组 */\n createGroupBtn() {\n this.createGroupOpen = true\n this.createForm = this.fb.group({\n name: ['', [Validators.required]],\n })\n }\n\n /**创建分组模态框状态改变 */\n createGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n\n /**编辑字段分组 */\n editGroupBtn(itemName: string) {\n this.editGroupOpen = true\n this.editGroupForm = this.fb.group({\n name: [itemName, [Validators.required]],\n })\n }\n\n /**编辑分组模态框状态改变 */\n editGroupVisibleChange(event) {\n if (!event) {\n return\n }\n }\n\n /**创建字段分组保存 */\n createSave() {\n let input = this.createForm.value\n this.modalBusy = true\n this._FieldGroupAdminService.create(input).pipe(finalize(() => {\n this.modalBusy = false\n this.createGroupOpen = false\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**编辑字段分组保存 */\n editSave() {\n let input = this.editGroupForm.value\n this.modalBusy = true\n this._FieldGroupAdminService.update(this.fieldGroupId, input).pipe(finalize(() => {\n this.modalBusy = false\n this.editGroupOpen = false\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n\n /**删除字段分组1 */\n deleteGroupbtn(fieldGroupitem: any) {\n this.confirmation.warn(\n fieldGroupitem.name,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldGroupAdminService.delete(this.fieldGroupId).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.fieldGroupId = ''\n this._FieldAbstractsService.getfieldGroupList()\n })\n }\n });\n }\n\n /**字段分组改变 */\n fieldGroupChange(event) {\n this.fieldGroupId = event\n this.OnGroupClickBack.emit(event)\n }\n\n}\n","<div class=\"card-header px-2 py-sm-2 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'Cms::FieldGroup' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-link btn-sm ms-2\"><i class=\"fas fa-plus-circle\" aria-hidden=\"true\"\n (click)=\"createGroupBtn()\"></i></button>\n</div>\n<div class=\"card-body p-0\">\n <div class=\"container-height overflow-auto\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action active\" [class.active]=\"fieldGroupId===''\"\n (click)=\"fieldGroupChange('')\">{{'Cms::AllFields' | abpLocalization}}</li>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <li class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [class.active]=\"fieldGroupId===item.id\" (click)=\"fieldGroupChange(item.id)\">\n <div>{{item.name}}</div>\n <div *ngIf=\"fieldGroupId===item.id\">\n <i class=\"fas fa-trash px-1\" role=\"button\" (click.stop)=\"deleteGroupbtn(item)\"></i>\n <i class=\"fas fa-edit px-1\" role=\"button\" (click.stop)=\"editGroupBtn(item.name)\"></i>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"createGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'Cms::New' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"createForm; else loaderRef\" [formGroup]=\"createForm\" (ngSubmit)=\"createSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"createForm?.invalid\" (click)=\"createSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-modal [(visible)]=\"editGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"editGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"editGroupForm; else loaderRef\" [formGroup]=\"editGroupForm\" (ngSubmit)=\"editSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"editGroupForm?.invalid\" (click)=\"editSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","\nimport { ABP, LIST_QUERY_DEBOUNCE_TIME, ListService, LocalizationService, PagedResultDto } from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FieldAdminService, FieldDto, GetFieldsInput } from '../../../proxy/admin/fields';\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { finalize } from 'rxjs/operators';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-fields',\n templateUrl: './fields.component.html',\n styleUrls: ['./fields.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Fields,\n },\n ]\n})\nexport class FieldsComponent implements OnInit {\n\n constructor(\n public readonly list: ListService,\n private _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private _LocalizationService: LocalizationService,\n private router: Router,\n private _CmsApiService: CmsApiService,\n ) {\n \n }\n private _UpdateListService=inject(UpdateListService)\n /**表格单元格布局类型 */\n ColumnMode = ColumnMode;\n\n /**表格数据 */\n data: PagedResultDto<FieldDto> = {\n items: [],\n totalCount: 0,\n };\n\n /**过滤器 */\n filters = {} as GetFieldsInput;\n\n ngOnInit(): void {\n this.hookToQuery()\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get()\n });\n }\n getData(){\n this.list.get()\n }\n\n\n /**字段分组选择回调 */\n fieldGroupChange(event) {\n this.filters.groupId = event\n this.list.page=0\n this.list.get()\n }\n\n\n\n /**使用abp的list获取表格的字段数据列表 */\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) => this._FieldAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<FieldDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n /**新建字段按钮 */\n toFieldsCreateBtn() {\n this.router.navigate(['/cms/admin/fields/create'],\n {\n queryParams: {}\n }\n )\n }\n\n /**删除字段 */\n deletefield(row: any) {\n this.confirmation.warn(\n row.displayName,\n this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n ).subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._FieldAdminService.delete(row.id).pipe(finalize(() => {\n })).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get()\n })\n }\n });\n }\n}\n","<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header 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\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\"\n [count]=\"data.totalCount\" [scrollbarH]=\"true\">\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::FormControlName' | abpLocalization\"\n prop=\"formControlName\">\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::Group' | abpLocalization\" prop=\"groupId\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{row.groupName}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [width]=\"190\">\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\" [name]=\"'AbpUi::Actions' | abpLocalization\"\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\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-primary btn-sm\"\n ngbDropdownToggle> <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}</button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n routerLink=\"/cms/admin/fields/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"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 </div>\n </div>\n\n</abp-page>","import { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateFieldInputBase {\r\n /**分组id */\r\n groupId: any = ['', []];\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = [undefined, [Validators.required]];\r\n\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: CreateOrUpdateFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n","import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { LocalizationService } from '@abp/ng.core';\n@Component({\n selector: 'cms-create-or-edit-field',\n templateUrl: './create-or-edit-field.component.html',\n styleUrls: ['./create-or-edit-field.component.scss']\n})\nexport class CreateOrEditFieldComponent {\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChild('FormDynamicRef', { read: ViewContainerRef, static: true }) FormDynamicRef: ViewContainerRef;\n\n constructor(\n public _FieldAbstractsService: FieldAbstractsService,\n private _CmsApiService: CmsApiService,\n private _FieldAdminService: FieldAdminService,\n private _LocalizationService: LocalizationService,\n \n ) {\n if (this._FieldAbstractsService.fieldGroupList.length == 0) {\n this._FieldAbstractsService.getfieldGroupList()\n }\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup | undefined) {\n if (v) {\n this._Entity = v;\n this.dataLoaded();\n }\n }\n get formControlName() {\n return this._Entity.get('formControlName')\n }\n /**选择的表单信息 */\n _selected_copy:any\n _selected: any\n @Input()\n public set selected(v: any) {\n if(v) {\n this._selected = v || '';\n this._selected_copy=v\n this.dataLoaded()\n }\n \n }\n\n\n async dataLoaded() {\n if (this._FieldAbstractsService.fromControlList.length == 0) {\n await this._FieldAbstractsService.getFromControlList()\n }\n \n if (this._Entity) {\n if (!this.formControlName.value) {\n this._Entity.patchValue({\n formControlName: this._FieldAbstractsService.fromControlList[0]?.name,\n })\n }\n this._Entity.setControl('name', new FormControl(this.nameInput.value||'', {\n validators: Validators.required,\n asyncValidators: [this.repetitionAsyncValidator()] ,\n updateOn: 'blur'\n }))\n }\n }\n\n\n /**name表单控件 */\n get nameInput() {\n return this._Entity.get('name')\n }\n\n nameInputBlur(event){\n let value = event.target.value\n this.nameInput.patchValue(value)\n }\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**定义异步验证方法 */\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n if (ctrl.value == this._selected?.name||!ctrl.value) {\n resolve(null);\n return\n }\n this._FieldAdminService.nameExists(ctrl.value).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n\n formControlNameChange(){\n }\n\n}\n","<form [formGroup]=\"_Entity\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange()\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n\n</form>","import { Component, ElementRef, ViewChild, inject } from '@angular/core';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { Location } from '@angular/common';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services';\nimport { Router } from '@angular/router';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-create-field',\n templateUrl: './create-field.component.html',\n styleUrls: ['./create-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsCreate,\n },\n ]\n})\nexport class CreateFieldComponent {\n \n constructor(\n private fb: FormBuilder,\n public _FieldAdminService: FieldAdminService,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router,\n \n ) { }\n private _UpdateListService=inject(UpdateListService)\n \n /**表单实体 */\n newEntity: FormGroup | undefined \n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n this.newEntity= this.fb.group(new CreateOrUpdateFieldInputBase())\n }\n\n /**触发提交按钮 */\n submitclickBtn(){\n this.submitclick.nativeElement.click()\n }\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n if (!this.newEntity.valid) return\n this._FieldAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/fields`]);\n this._UpdateListService.updateList();\n });\n })\n }\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { FieldAbstractsService } from '../../../services/field-abstracts.service';\nimport { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FieldAdminService } from '../../../proxy/admin/fields';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Location } from '@angular/common';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-edit-field',\n templateUrl: './edit-field.component.html',\n styleUrls: ['./edit-field.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.FieldsEdit,\n },\n ]\n})\nexport class EditFieldComponent implements OnInit {\n\n constructor(\n private fb: FormBuilder,\n public _FieldAbstractsService: FieldAbstractsService,\n public _FieldAdminService: FieldAdminService,\n private route: ActivatedRoute,\n private toaster: ToasterService,\n public _location: Location,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router,\n ) { }\n\n /**表单实体 */\n newEntity: FormGroup | undefined\n\n /**字段id */\n fieldId: string = '';\n\n /**字段详情 */\n fieldDetails: any;\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n\n async ngOnInit(): Promise<void> {\n const _fieldId = this.route.snapshot.params.id;\n if (_fieldId) {\n this.fieldId = _fieldId;\n this.newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());\n await Promise.all([\n this._FieldAbstractsService.getFromControlList(),\n this.getFieldEdit(),\n ]);\n this.newEntity.patchValue({\n ...this.fieldDetails,\n });\n }\n }\n\n /**获取字段详情 */\n getFieldEdit() {\n return new Promise((resolve, reject) => {\n this._FieldAdminService.get(this.fieldId).subscribe(res => {\n res.groupId = res.groupId ? res.groupId : ''\n this.fieldDetails = res\n resolve(res)\n })\n })\n }\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.submitclick.nativeElement.click()\n }\n private _UpdateListService=inject(UpdateListService)\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n if (!this.newEntity.valid) return\n this._FieldAdminService.update(this.fieldId, input).subscribe((res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/fields`]);\n this._UpdateListService.updateList();\n });\n }))\n }\n\n \n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::EditField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <!-- <div class=\"p-3 bg-white rounded-1\"> -->\n <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>","import { ABP, ConfigStateService, LIST_QUERY_DEBOUNCE_TIME, ListService, LocalizationService, PagedResultDto } from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, ViewChild, OnInit, ElementRef } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\n// import { GetSitesInput, SiteDto, SiteAdminService } from '../../../proxy/admin/sites';\nimport { ColumnMode } from \"@swimlane/ngx-datatable\";\nimport { finalize } from 'rxjs/operators';\nimport { CreateOrUpdateSitesInputBase } from './create-or-update-sites-input-base';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'cms-sites',\n templateUrl: './sites.component.html',\n styleUrls: ['./sites.component.scss'],\n providers: [\n ListService,\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Sites,\n },\n ]\n})\nexport class SitesComponent {\n // constructor(\n // public readonly list: ListService,\n // // private _SiteAdminService: SiteAdminService,\n // private toaster: ToasterService,\n // private confirmation: ConfirmationService,\n // private fb: FormBuilder,\n // private configState: ConfigStateService,\n // private _LocalizationService: LocalizationService,\n // private _CmsApiService: CmsApiService,\n // ) {}\n // /**创建站点模态框状态 */\n // createSitesOpen: boolean = false\n // /**用于确定模态的繁忙状态是否为真 */\n // modalBusy: boolean = false\n // /**创建站点表单 */\n // createOrEditForm: FormGroup | undefined;\n // get languagesInput() {\n // return this.createOrEditForm.get('languages').value\n // }\n // /**语言列表 */\n // languages: any[]\n // /**站点给定的表单值 */\n // selected: any\n // /**表单控件模板-动态赋值表单控件 */\n // @ViewChild('createModalSubmit', { static: false }) createModalSubmit: ElementRef;\n // ColumnMode = ColumnMode;\n // data: PagedResultDto<SiteDto> = {\n // items: [],\n // totalCount: 0,\n // };\n // filters = {} as GetSitesInput;\n // ngOnInit(): void {\n // this.hookToQuery()\n // }\n // hookToQuery() {\n // const getData = (query: ABP.PageQueryParams) => this._SiteAdminService.getList({\n // ...query,\n // ...this.filters,\n // });\n // const setData = (list: PagedResultDto<SiteDto>) => (this.data = list);\n // this.list.hookToQuery(getData).subscribe(setData);\n // }\n // /**删除字段 */\n // deletefield(row: any) {\n // this.confirmation.warn(\n // row.displayName,\n // this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`),\n // ).subscribe((status: Confirmation.Status) => {\n // if (status == 'confirm') {\n // this._SiteAdminService.delete(row.id).pipe(finalize(() => {\n // })).subscribe(res => {\n // this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n // this.list.get()\n // })\n // }\n // });\n // }\n // /**创建站点模态框状态改变 */\n // createGroupVisibleChange(event) {\n // if (!event) {\n // this.selected = ''\n // return\n // }\n // }\n // /**选择语言改变 */\n // languagesChange(event) {\n // let checked = event.target.checked\n // let value = event.target.value\n // this.languages.forEach(el => {\n // el.ischecked = el.cultureName === value ? checked : el.ischecked;\n // })\n // this.setFromLangguages()\n // }\n // /**设置默认语言 */\n // setDefault(items) {\n // this.languages.forEach(el => {\n // el.isDefault = el.cultureName === items.cultureName;\n // })\n // this.setFromLangguages()\n // }\n // /**设置表单中的语言 */\n // setFromLangguages() {\n // let languagesSelect = this.languages.filter(el => el.ischecked == true)\n // this.createOrEditForm.patchValue({\n // languages: languagesSelect\n // })\n // if (languagesSelect.length == 0) {\n // this.languages.forEach(el => {\n // el.isDefault = false\n // })\n // }\n // }\n // /**表单保存提交 */\n // createOrEditSave() {\n // if (!this.createOrEditForm.valid) return\n // if (this.selected) {\n // return this.EditSave()\n // }\n // this.createSave()\n // }\n // /**创建站点保存 */\n // createSave() {\n // let input = this.createOrEditForm.value\n // this.modalBusy = true\n // if (!this.createOrEditForm.valid) return\n // this._SiteAdminService.create(input).pipe(finalize(() => {\n // this.modalBusy = false\n // this.createSitesOpen = false\n // })).subscribe(res => {\n // this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n // this.list.get()\n // })\n // }\n // /**编辑站点保存 */\n // EditSave() {\n // let input = this.createOrEditForm.value\n // this.modalBusy = true\n // this._SiteAdminService.update(this.selected.id, input).pipe(finalize(() => {\n // this.modalBusy = false\n // this.createSitesOpen = false\n // })).subscribe(res => {\n // this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n // this.list.get()\n // })\n // }\n // /**创建站点按钮 */\n // createSitesBtn() {\n // this.createSitesOpen = true\n // this.createOrEditForm = this.fb.group(new CreateOrUpdateSitesInputBase())\n // this.setAsyncValidatorsFn()\n // this.languages = this.configState.getDeep('localization.languages')\n // this.languages.forEach((el, index) => {\n // el.isDefault = index === 0\n // el.ischecked = index === 0\n // })\n // this.setFromLangguages()\n // }\n // /**编辑站点按钮 */\n // EditSitesBtn(rows) {\n // this.createSitesOpen = true\n // this.languages = this.configState.getDeep('localization.languages')\n // this._SiteAdminService.get(rows.id).subscribe(res => {\n // this.selected = rows\n // this.createOrEditForm = this.fb.group(new CreateOrUpdateSitesInputBase())\n // this.createOrEditForm.patchValue(rows)\n // this.setAsyncValidatorsFn()\n // // 更新语言和默认状态 \n // this.updateLanguages(res.languages);\n // // 设置表单语言 \n // this.setFromLangguages()\n // })\n // }\n // /**设置字段控件异步验证 */\n // setAsyncValidatorsFn() {\n // this.createOrEditForm.setControl('name', new FormControl(this.nameInput.value || '', {\n // validators: Validators.required,\n // asyncValidators: this.nameRepetitionAsyncValidator(),\n // updateOn: 'blur'\n // }))\n // }\n // /**更新语言和默认状态 */\n // updateLanguages(siteLanguages) {\n // this.languages.forEach(language => {\n // const siteLanguage = siteLanguages.find(sl => sl.cultureName === language.cultureName);\n // if (siteLanguage) {\n // language.ischecked = true;\n // language.isDefault = siteLanguage.isDefault;\n // }\n // });\n // }\n // get nameInput() {\n // return this.createOrEditForm.get('name')\n // }\n // get hostInput() {\n // return this.createOrEditForm.get('host')\n // }\n // /**字段标签input失去标点生成字段名字 */\n // disPlayNameInputBlur(event) {\n // let value = event.target.value\n // let pinyin = this._CmsApiService.chineseToPinyin(value)\n // let nameInput = this.nameInput\n // if (nameInput.value) return\n // nameInput.patchValue(pinyin)\n // }\n // /**name定义自定义异步验证 */\n // nameRepetitionAsyncValidator() {\n // return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n // return new Promise(resolve => {\n // let subslug = this.createOrEditForm?.get('name').value\n // if (subslug == this.selected?.name) {\n // resolve(null);\n // return\n // }\n // this._SiteAdminService.nameExists(subslug).subscribe(res => {\n // if (res) {\n // resolve({ repetition: this._LocalizationService.instant(`Cms::SiteName{0}AlreadyExist`, ctrl.value) });\n // } else {\n // resolve(null);\n // }\n // })\n // });\n // };\n // }\n // /**host定义自定义异步验证 */\n // hostRepetitionAsyncValidator() {\n // return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n // return new Promise(resolve => {\n // let subslug = this.createOrEditForm?.get('host').value\n // if (subslug == this.selected?.host || subslug == 'https://') {\n // resolve(null);\n // return\n // }\n // this._SiteAdminService.hostExists(subslug).subscribe(res => {\n // if (res) {\n // resolve({ repetition: this._LocalizationService.instant(`Cms::SiteHost{0}AlreadyExist`, ctrl.value) });\n // } else {\n // resolve(null);\n // }\n // })\n // });\n // };\n // }\n}\n","<!-- <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> -->","import { Validators } from \"@angular/forms\";\r\nexport class CreateOrUpdateSitesInputBase {\r\n displayName: any = ['', [Validators.required]];\r\n name: any = ['', [Validators.required]];\r\n host: any = ['https://', [Validators.required]];\r\n isActive: any = [true, []];\r\n languages:any = [[], [Validators.required]]\r\n constructor(data?: CreateOrUpdateSitesInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport {Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrUpdateSectionsInputBase {\r\n /**版块类型 */\r\n type: any = [0, [Validators.required]];\r\n\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n\r\n /**条目路由 */\r\n route: any = ['', [Validators.required]];\r\n /**页面模板 */\r\n template: any = ['', [Validators.required]];\r\n /**是否默认 */\r\n isDefault: any = [false, []];\r\n /**是否激活 */\r\n isActive: any = [true, []];\r\n \r\n\r\n\r\n constructor(data?: CreateOrUpdateSectionsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum SectionType {\r\n Single = 0,\r\n Structure = 1,\r\n Channel = 2,\r\n}\r\n\r\nexport const sectionTypeOptions = mapEnumToOptions(SectionType);\r\n","import {\n ABP,\n LIST_QUERY_DEBOUNCE_TIME,\n ListService,\n LocalizationService,\n PagedResultDto,\n} from '@abp/ng.core';\nimport { ToasterService, ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {\n EntryTypeAdminService,\n GetSectionsInput,\n SectionAdminService,\n SectionDto,\n} from '../../../proxy/admin/sections';\nimport { ColumnMode } from '@swimlane/ngx-datatable';\nimport { finalize } from 'rxjs/operators';\nimport { CreateOrUpdateSectionsInputBase } from './create-or-update-sections-input-base';\nimport { SectionType, sectionTypeOptions } from '../../../proxy/sections';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../enums';\nimport { CmsApiService } from '../../../services/cms-api.service';\nimport { Observable } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { UpdateListService } from '../../../services/update-list.service';\n\n@Component({\n selector: 'cms-sections',\n templateUrl: './sections.component.html',\n styleUrls: ['./sections.component.scss'],\n providers: [\n // [Required]\n ListService,\n // [Optional]\n // Provide this token if you want a different debounce time.\n // Default is 300. Cannot be 0. Any value below 100 is not recommended.\n { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.Sections,\n },\n ],\n})\nexport class SectionsComponent implements OnInit {\n constructor(\n public readonly list: ListService,\n private _SectionAdminService: SectionAdminService,\n // private _SiteAdminService: SiteAdminService,\n private toaster: ToasterService,\n private confirmation: ConfirmationService,\n private fb: FormBuilder,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router\n ) { }\n private _UpdateListService = inject(UpdateListService);\n\n /**跳转编辑 */\n jumpSectionsEdit(row, item) {\n this.router.navigate([`/cms/admin/sections/${row.id}/entry-types/${item.id}/edit`], {});\n }\n /**跳转新建 */\n jumpSectionsCreate(row) {\n this.router.navigate([`/cms/admin/sections/${row.id}/entry-types/create`], {});\n }\n\n /**版块列表 */\n siteList: any[] = [];\n /*** */\n ColumnMode = ColumnMode;\n data: PagedResultDto<SectionDto> = {\n items: [],\n totalCount: 0,\n };\n /** */\n filters = {} as GetSectionsInput;\n /**获取页面列表 */\n hookToQuery() {\n const getData = (query: ABP.PageQueryParams) => this._SectionAdminService.getList({\n ...query,\n ...this.filters,\n });\n const setData = (list: PagedResultDto<SectionDto>) => (this.data = list);\n this.list.hookToQuery(getData).subscribe(setData);\n }\n\n async ngOnInit(): Promise<void> {\n this.hookToQuery();\n this._UpdateListService.updateListEvent.subscribe(() => {\n this.list.get();\n });\n }\n\n /**站点切换 */\n siteIdChange() {\n this.list.page = 0;\n this.list.get();\n }\n\n\n /**创建版块模态框状态 */\n visibleOpen: boolean = false;\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false;\n /**创建版块表单 */\n createOrEditForm: FormGroup | undefined;\n\n /**版块给定的表单值 */\n selected: any;\n\n _SectionType = SectionType;\n _sectionTypeOptions = sectionTypeOptions;\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('createOrEditModalSubmitBtn', { static: false })\n createOrEditModalSubmitBtn: ElementRef;\n\n /**创建版块模态框状态改变 */\n VisibleChange(event) {\n if (!event) {\n this.selected = '';\n return;\n }\n }\n /**创建版块,打开模态框 */\n createSectionBtn() {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n }\n /**编辑版块,打开模态框 */\n editSectionBtn(row) {\n this.visibleOpen = true;\n this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());\n this.setAsyncValidatorsFn();\n this._SectionAdminService.get(row.id).subscribe(res => {\n this.createOrEditForm.patchValue(res);\n this.selected = res;\n });\n }\n /**删除某个条目类型 */\n deleteEntryType(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._EntryTypeAdminService\n .delete(row.id)\n .pipe(finalize(() => { }))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n\n /**表单保存提交 */\n createOrEditSave() {\n if (this.selected) {\n return this.EditSave();\n }\n this.createSave();\n }\n\n /** */\n createSave() {\n let input = this.createOrEditForm.value;\n // input.siteId = this.filters.siteId;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .create(input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.list.get();\n });\n }\n /**创建版块保存 */\n EditSave() {\n let input = this.createOrEditForm.value;\n // input.siteId = this.filters.siteId;\n input.concurrencyStamp = this.selected.concurrencyStamp;\n if (!this.createOrEditForm.valid) return;\n this.modalBusy = true;\n this._SectionAdminService\n .update(this.selected.id, input)\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n this.visibleOpen = false;\n })\n )\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.list.get();\n });\n }\n /**删除版块 */\n deletefield(row) {\n this.confirmation\n .warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))\n .subscribe((status: Confirmation.Status) => {\n if (status == 'confirm') {\n this._SectionAdminService\n .delete(row.id)\n .pipe(finalize(() => { }))\n .subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));\n this.list.get();\n });\n }\n });\n }\n\n /**name表单控件 */\n get displayNameInput() {\n return this.createOrEditForm.get('displayName');\n }\n /**name表单控件 */\n get nameInput() {\n return this.createOrEditForm.get('name');\n }\n /**route表单控件 */\n get routeInput() {\n return this.createOrEditForm.get('route');\n }\n /**route表单控件 */\n get templateInput() {\n return this.createOrEditForm.get('template');\n }\n /**route表单控件 */\n get typeInput() {\n return this.createOrEditForm.get('type');\n }\n\n radiochange() {\n this.routeInput.patchValue(this.routeInput.value);\n }\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value;\n let pinyin = this._CmsApiService.chineseToPinyin(value);\n let nameInput = this.nameInput;\n let routeInput = this.routeInput;\n let templateInput = this.templateInput;\n if (nameInput.value) return;\n nameInput.patchValue(pinyin);\n if (routeInput.value) return;\n routeInput.patchValue(pinyin + (this.typeInput.value === 0 ? '' : '/{slug}'));\n if (templateInput.value) return;\n templateInput.patchValue(pinyin + '/index');\n }\n\n /**设置字段控件异步验证 */\n setAsyncValidatorsFn() {\n this.createOrEditForm.setControl(\n 'name',\n new FormControl(this.nameInput.value || '', {\n validators: Validators.required,\n asyncValidators: this.nameRepetitionAsyncValidator(),\n })\n );\n this.createOrEditForm.setControl(\n 'route',\n new FormControl(this.routeInput.value || '', {\n validators: [Validators.required, this.forbiddenNameValidator()],\n asyncValidators: [this.routeRepetitionAsyncValidator()],\n })\n );\n }\n forbiddenNameValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let inputValue = control.value.toLocaleLowerCase();\n let forbidden =\n this.typeInput.value == 0 ? false : inputValue.includes('{slug}') ? false : true;\n return forbidden\n ? {\n repetition: this._LocalizationService.instant(\n `Cms::RouteVerificationTips`,\n this._LocalizationService.instant(\n `Cms::Enum:SectionType:` + SectionType[this.typeInput.value]\n ),\n '{slug}'\n ),\n }\n : null;\n };\n }\n\n /**定义异步验证方法 */\n nameRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('name');\n if (subslug.value == this.selected?.name) {\n resolve(null);\n return;\n }\n this._SectionAdminService\n .nameExists({\n name: subslug.value,\n })\n .subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionName{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n /**定义异步验证方法 */\n routeRepetitionAsyncValidator() {\n return (\n ctrl: AbstractControl\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let subslug = this.createOrEditForm?.get('route').value;\n if (subslug == this.selected?.route) {\n resolve(null);\n return;\n }\n this._SectionAdminService\n .routeExists({\n // siteId: this.filters.siteId,\n route: subslug,\n })\n .subscribe(res => {\n if (res) {\n resolve({\n repetition: this._LocalizationService.instant(\n `Cms::SectionRoute{0}AlreadyExist`,\n ctrl.value\n ),\n });\n } else {\n resolve(null);\n }\n });\n });\n };\n }\n}\n","<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}:</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">是</option>\n <option [value]=\"false\">否</option>\n </select>\n </div>\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}:</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-2 col-4\">\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>\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 \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\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::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\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::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\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::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\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-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\"\n (click.stop)=\"jumpSectionsEdit(row,item)\">{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem (click.stop)=\"jumpSectionsCreate(row)\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\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\" [frozenRight]=\"true\" [name]=\"'AbpUi::Actions' | abpLocalization\" cellClass=\"cellClassRight\" [width]=\"100\">\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-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n 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)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($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\" [formGroup]=\"createOrEditForm\" (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\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)\" placeholder=\"\" />\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\" placeholder=\"\" />\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::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <div class=\"form-text\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\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=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\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=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n\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\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { FormArray, Validators } from \"@angular/forms\";\r\n\r\nexport class CreateOrEditEntryTypeInputBase {\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**条目路由 */\r\n fieldTabs: any = new FormArray([])\r\n \r\n constructor(data?: CreateOrEditEntryTypeInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldTabsBase {\r\n /**名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n fields?: any = [[], []]\r\n constructor(data?: fieldTabsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class fieldsBase {\r\n /**字段id Unique Name*/\r\n fieldId: any = ['', [Validators.required]];\r\n /**显示名称 Unique Name*/\r\n displayName: any = ['', [Validators.required]];\r\n /**必填 Unique Name*/\r\n required: any = [false, []];\r\n /**是否在列表中显示 Unique Name*/\r\n showOnList: any = [false, []];\r\n\r\n constructor(data?: fieldsBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport class fieldsInputBase {\r\n /**字段id */\r\n fieldId = ['', [Validators.required]];\r\n /**显示名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 Unique Name*/\r\n required: any = [false, []];\r\n /**在列表中展示 Unique Name*/\r\n showOnList: any = [false, []];\r\n constructor(data?: fieldsInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n","import { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { Location } from '@angular/common';\nimport { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from './create-or-edit.-entry-type-input-base';\nimport { FieldGroupAdminService, FieldAdminService } from '../../../../proxy/admin/fields';\nimport { EntryTypeAdminService } from '../../../../proxy/admin/sections';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LocalizationService } from '@abp/ng.core';\nimport { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';\nimport { ECmsComponent } from '../../../../enums';\nimport { CmsApiService } from '../../../../services/cms-api.service';\nimport { UpdateListService } from '../../../../services/update-list.service';\n\n@Component({\n selector: 'cms-create-or-edit',\n templateUrl: './create-or-edit.component.html',\n styleUrls: ['./create-or-edit.component.scss'],\n providers: [\n {\n provide: EXTENSIONS_IDENTIFIER,\n useValue: ECmsComponent.SectionsCreateOrEdit,\n },\n ]\n})\nexport class CreateOrEditComponent implements OnInit {\n\n constructor(\n // private fb: FormBuilder,\n private toaster: ToasterService,\n public _location: Location,\n private route: ActivatedRoute,\n public _FieldGroupAdminService: FieldGroupAdminService,\n public _FieldAdminService: FieldAdminService,\n public _EntryTypeAdminService: EntryTypeAdminService,\n public _LocalizationService: LocalizationService,\n public _CmsApiService: CmsApiService,\n private router: Router,\n ) { }\n private fb = inject(FormBuilder)\n private _UpdateListService = inject(UpdateListService)\n /**表单实体 */\n newEntity: FormGroup | undefined = this.fb.group(new CreateOrEditEntryTypeInputBase())\n /**版块id */\n sectionId: string = ''\n /**条目类型id */\n entryTypesId: string = ''\n /**条目类型详情 */\n entryTypesSelect: any\n\n get fieldTabs() {\n return this.newEntity.get('fieldTabs') as FormArray;\n }\n\n /**获取提交按钮替身,用于真实触发表单提交 */\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**触发提交按钮 */\n submitclickBtn() {\n this.submitclick.nativeElement.click()\n }\n ngOnInit() {\n let sectionId = this.route.snapshot.params.sectionsId\n this.entryTypesId = this.route.snapshot.params.entryTypesId || ''\n if (sectionId) {\n this.sectionId = sectionId\n this.addControlToFieldTabs()\n this.getFieldGroup()\n }\n }\n\n /**给fieldTabs添加新控件 */\n addControlToFieldTabs(nameValue = '') {\n const newFormGroup = this.fb.group(new fieldTabsBase({\n name: this.fieldTabs.length === 0 ? this._LocalizationService.instant(`Cms::FieldTab`) : nameValue,\n }));\n this.fieldTabs.push(newFormGroup)\n this.resultSource.push(newFormGroup.value)\n this.navActive = this.resultSource.length - 1\n }\n\n\n /**获取字段分组 */\n getFieldGroup() {\n this._FieldGroupAdminService.getList({}).subscribe(async (res) => {\n let fieldList: any = await this.getFieldList()\n let fieldGroupList = res.items\n fieldGroupList.unshift({\n id: null,\n name: 'UngroupedFields'\n })\n fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id)\n });\n this.fieldGroupList = fieldGroupList\n this.fieldList = this.deepClone(fieldList)\n let entryTypesId = this.entryTypesId\n if (entryTypesId) {\n this.entryTypesId = entryTypesId\n this.getEntryTypes()\n }\n })\n }\n /**获取条目类型详情 */\n getEntryTypes() {\n let fieldList: any = this.deepClone(this.fieldList)\n this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {\n res.fieldTabs.forEach(el => {\n el.fields.forEach((eld: any) => {\n eld.id = eld.fieldId\n eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId\n this.formRightGroup.push(eld)\n let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId)\n fieldList.splice(fieldindex, 1)\n })\n })\n this.fieldGroupList.forEach((el: any, index) => {\n el.fields = fieldList.filter(els => els.groupId === el.id)\n });\n this.newEntity.patchValue(res)\n this.entryTypesSelect = res\n this.resultSource = res.fieldTabs\n })\n }\n /**\n * 深拷贝--方法\n * $api.deepClone() */\n deepClone(obj: any) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n /**\n * \n * @param nameValue 获取所有字段\n */\n getFieldList() {\n return new Promise((resolve, rejects) => {\n this._FieldAdminService.getList({\n maxResultCount: 1000\n }).subscribe((res: any) => {\n res.items.forEach(el => {\n el.required = false\n el.showOnList = false\n })\n resolve(res.items)\n })\n })\n }\n\n\n /**\n * 拖拽 功能*/\n /**数据源 */\n /**数据源-字段分组数据-包含字段数据 fields */\n fieldGroupList: any[] = []\n /**数据源-所有字段列表 */\n fieldList: any[] = []\n /**数据源拖拽的分组下标 */\n DataSourceGroupIndex: number\n /**数据源拖拽的字段下标 */\n DataSourceFieldIndex: number\n /**目标源 结果*/\n resultSource: any[] = []\n\n /**从数据源拖拽的元素 */\n fromDataSourceDragEl: any\n /**从目标源拖拽的元素 */\n fromResultSourceDragEl: any\n\n /**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */\n formRightGroup: any[] = []\n /**从数据源开始拖拽 */\n fromDataSourceDragStart(element, fieldIndex, groupIndex) {\n this.fromDataSourceDragEl = element\n this.DataSourceFieldIndex = fieldIndex\n this.DataSourceGroupIndex = groupIndex\n this.fromResultSourceDragEl = undefined\n\n }\n /**从目标源开始拖拽 */\n fromResultSourceDragStart(element) {\n this.fromResultSourceDragEl = element\n this.fromDataSourceDragEl = undefined\n this.DataSourceFieldIndex = undefined\n this.DataSourceGroupIndex = undefined\n }\n /**拖拽到数据源时触发 */\n dragToDataSourceDropped() {\n //从数据源拖拽到数据源-排序\n if (this.fromDataSourceDragEl) {\n }\n let _fromResultSourceDragEl = this.fromResultSourceDragEl\n let formRightGroup = this.deepClone(this.formRightGroup)\n let fieldList = this.deepClone(this.fieldList)\n\n if (_fromResultSourceDragEl) {//移动\n //从目标源拖拽到数据源\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id)\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1)\n formRightGroup.splice(formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id), 1)\n this.fieldGroupList.forEach(el => {\n if (el.id == _fromResultSourceDragEl.groupId) {\n const elFieldsAll = fieldList.filter(els => els.groupId === el.id)\n el.fields = elFieldsAll.filter(item => !formRightGroup.some(itemB => item.id === itemB.id));\n }\n })\n this.formRightGroup = formRightGroup\n }\n\n this.setfieldTabsFrom()\n }\n /**拖拽到目标源时触发\n * \n */\n dragToResultSourceDropped(fieldTabstem: any, fieldTabsIndex) {\n const _fromDataSourceDragEl = this.fromDataSourceDragEl\n //从数据源拖拽到目标源\n if (_fromDataSourceDragEl) {\n this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1)\n this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl)\n this.formRightGroup.push(_fromDataSourceDragEl)\n }\n\n this.setfieldTabsFrom()\n }\n /** 从目标源拖拽到目标源*/\n dragToResultSourceItemDropped(fieldsIndex) {\n const _fromResultSourceDragEl = this.fromResultSourceDragEl\n if (_fromResultSourceDragEl) {\n // 拖拽目标源的下标\n let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id)\n //删除目标源中的数据\n this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1)\n this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl)\n }\n this.setfieldTabsFrom()\n }\n /**设置formA表单 */\n setfieldTabsFrom() {\n let setArray = []\n this.resultSource.forEach(el => {\n let fieldsArray = []\n el.fields.forEach(item => {\n fieldsArray.push({\n \"fieldId\": item.id || item.fieldId,\n \"displayName\": item.displayName,\n \"required\": item?.required,\n \"showOnList\": item?.showOnList\n })\n })\n setArray.push({\n name: el.name,\n fields: fieldsArray\n })\n })\n this.newEntity.patchValue({\n fieldTabs: setArray\n })\n }\n\n\n /**保存表单 */\n save() {\n let input = this.newEntity.value\n if (this.entryTypesSelect) {\n this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/sections`]);\n this._UpdateListService.updateList();\n });\n })\n return\n }\n input.sectionId = this.sectionId\n this._EntryTypeAdminService.create(input).subscribe(res => {\n this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));\n this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {\n this.router.navigate([`/cms/admin/sections`]);\n this._UpdateListService.updateList();\n });\n })\n\n\n\n }\n /**编辑Tabs表单 */\n editFieldTabsFrom: FormGroup | undefined;\n /**模态框状态 */\n visibleTabsOpen: boolean = false\n /**是否是忙碌状态 */\n modalBusy: boolean = false\n /**正在编辑的tabs */\n editFieldTabsSelect: any\n /**正在选中的nav */\n navActive: any = 0\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('editFieldTabsModalSubmitBtn', { static: false }) editFieldTabsModalSubmitBtn: ElementRef;\n\n /**模态框状态改变回调 */\n VisibleTabsChange(event) {\n if (!event) {\n this.editFieldTabsSelect = ''\n return\n }\n }\n /**新建增加FieldTabs */\n addFieldTabs() {\n this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());\n this.visibleTabsOpen = true\n\n }\n /**正在编辑的tab下标 */\n newEditFieldTabsIndex: number\n /**编辑FieldTabs */\n editFieldTabs(item, i) {\n this.editFieldTabsFrom = this.fb.group(new fieldTabsBase({\n name: item.name\n }));\n this.editFieldTabsSelect = item\n this.visibleTabsOpen = true\n this.newEditFieldTabsIndex = i\n }\n\n /**保存编辑tabs表单 */\n editFieldTabsSave() {\n //编辑\n if (this.editFieldTabsSelect) {\n this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name\n this.navActive = this.newEditFieldTabsIndex\n } else {\n //新建\n this.addControlToFieldTabs(this.editFieldTabsFrom.value.name)\n }\n this.visibleTabsOpen = false\n this.setfieldTabsFrom()\n }\n /**删除某个tabs表单 */\n deleteFieldTabs(index) {\n this.fieldTabs.removeAt(index)\n this.resultSource.splice(index, 1)\n }\n\n\n /**编辑字段模态框状态 */\n visibleEditFieldOpen: boolean = false\n /**编辑字段模态框表单 */\n editFieldFrom: FormGroup | undefined;\n /**表单控件模板-动态赋值表单控件-编辑字段 */\n @ViewChild('editFieldModalSubmitBtn', { static: false }) editFieldModalSubmitBtn: ElementRef;\n /**正在编辑的字段下标 */\n EditFieldIndex: number;\n /**编辑字段模态框状态状态改变回调 */\n VisibleEditFieldChange(event) {\n if (!event) {\n this.EditFieldIndex = undefined\n return\n }\n }\n /**打开编辑字段模态框 */\n EditFieldModalOpen(items, elIndex) {\n this.visibleEditFieldOpen = true\n this.EditFieldIndex = elIndex\n this.editFieldFrom = this.fb.group(new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex]))\n }\n /**保存编辑字段 */\n editFieldSave() {\n let input = this.editFieldFrom.value\n this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName\n this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required\n this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList\n this.visibleEditFieldOpen = false\n this.setfieldTabsFrom()\n }\n\n /**name表单控件 */\n get nameInput() {\n return this.newEntity.get('name')\n }\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n\n}\n","<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\" [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\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)\" placeholder=\"\" />\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\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <!-- -->\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem\n *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\" style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n \n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('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=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (ngSubmit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\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\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (ngSubmit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn 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\" placeholder=\"\" />\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=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\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=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}} </label>\n </div>\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\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import type { DomainDto, UpdateDomainInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DomainAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getBound = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/bound',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (domainName: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/name-exists',\r\n params: { domainName },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateDomainInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/domains',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, inject } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { DomainAdminService } from '../../../proxy/admin/domains';\nimport { LocalizationService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'cms-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss']\n})\nexport class DomainsComponent {\n\n private toaster = inject(ToasterService)\n private _DomainAdminService = inject(DomainAdminService);\n private _LocalizationService = inject(LocalizationService);\n\n\n\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**domain详情 */\n domainInfo:any=''\n get domainNameInput() {\n return this.newEntity.get('domainName')\n }\n\n async ngOnInit(): Promise<void> {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n \n this.newEntity = new FormGroup({\n domainName: new FormControl('', {\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n })\n })\n await this.getDomainsBound()\n\n }\n\n /**用于获取已绑定的域名 */\n getDomainsBound(){\n return new Promise((resolve,rejects)=>{\n this._DomainAdminService.getBound().subscribe(res=>{\n this.domainNameInput.patchValue(res?.domainName||'')\n this.domainInfo=res\n resolve(res)\n })\n })\n }\n\n //检验域名是否已经绑定\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let domainNameInput = this.domainNameInput.value\n if (!domainNameInput) {\n resolve(null);\n return\n }\n if (this.domainInfo?.domainName===domainNameInput) {\n resolve(null);\n return\n }\n var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.[A-Za-z]{2,6}$/;\n if(!patt.test(domainNameInput)){\n \n resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });\n console.log(this.newEntity,'newEntity');\n return\n }\n\n\n this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n /**保存 */\n SaveSubmit() {\n let input = this.newEntity.value\n console.log(input, '保存');\n this._DomainAdminService.update(input).subscribe(async(res)=>{\n this.toaster.success(this._LocalizationService.instant(`AbpUi::保存成功`));\n await this.getDomainsBound()\n })\n }\n\n \n}\n","<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\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 </div>\n <hr class=\"my-3\" />\n</form>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class EntryConfig {\r\n\r\n\r\n /**多选 */\r\n 'Entry.Multiple': any = [false, []];\r\n /**占位符 */\r\n 'Entry.Placeholder': any = ['', []];\r\n /**版块id */\r\n 'Entry.SectionId': any = ['', []];\r\n\r\n constructor(data?: EntryConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { AfterContentInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport { EntryConfig } from './entry-config';\n// import { SiteAdminService } from '../../../proxy/admin/sites';\nimport { SectionAdminService } from '../../../proxy/admin/sections';\n@Component({\n selector: 'cms-entry-config',\n templateUrl: './entry-config.component.html',\n styleUrls: ['./entry-config.component.scss']\n})\nexport class EntryConfigComponent implements AfterContentInit{\n constructor(\n private fb: FormBuilder,\n // private _SiteAdminService: SiteAdminService,\n private _SectionAdminService: SectionAdminService,\n ) {\n }\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n if (v == this._type) return\n\n this._type = v\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /**站点列表 */\n siteList: any[any] = []\n\n /**选择的站点id */\n // siteId: string = ''\n siteId: any = new FormControl('')\n /**站点下的版块 */\n SiteOfSectionList: any[any] = []\n\n ngAfterContentInit(): void {\n //Called after ngOnInit when the component's or directive's content has been initialized.\n //Add 'implements AfterContentInit' to the class.\n this.dataLoaded(2)\n }\n\n async dataLoaded(val) {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new EntryConfig()))\n // await this.getsiteList()\n await this.getSiteOfSectionList()\n if (this._selected) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration\n })\n }\n resolve(true)\n })\n }\n\n /**获取站点列表 */\n // getsiteList() {\n // return new Promise((resolve, rejects) => {\n // this._SiteAdminService.getList({}).subscribe(res => {\n // this.siteList = res.items\n // this.siteId = res.items[0]?.id || ''\n // resolve(res.items)\n // })\n // })\n // }\n /**获取站点下的版块 */\n getSiteOfSectionList() {\n return new Promise((resolve, rejects) => {\n this._SectionAdminService.getList({\n maxResultCount: 1000,\n // siteId: this.siteId\n }).subscribe(res => {\n this.SiteOfSectionList = res.items\n this.formConfiguration.patchValue({\n 'Entry.SectionId': res.items[0]?.id || ''\n })\n resolve(res.items)\n })\n })\n }\n\n /**切换站点 */\n async siteIdChange() {\n await this.getSiteOfSectionList()\n }\n}\n","<div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sites' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\n <ng-container *ngFor=\"let item of siteList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n</div>\n<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" formControlName=\"Entry.SectionId\">\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Entry.Multiple\" id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'Cms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Entry.Placeholder\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { EntryAdminService } from '../../../proxy/admin/entries';\nimport { EntryStatus } from '../../../proxy/entries/entry-status.enum';\n\n\n@Component({\n selector: 'cms-entry-control',\n templateUrl: './entry-control.component.html',\n styleUrls: ['./entry-control.component.scss']\n})\nexport class EntryControlComponent {\n\n\n constructor(\n ) {\n }\n private fb=inject(FormBuilder)\n private _EntryAdminService=inject(EntryAdminService)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n \n if (v) this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n if (v) this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n if (v) this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v || [];\n if (v) this.dataLoaded()\n }\n /**语言 */\n_culture: any\n @Input()\n public set culture(v: any) {\n if (v) {\n this._culture = v ;\n this.dataLoaded()\n }\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n extraProperties: FormGroup | undefined\n\n /** */\n listOfOption: any[] = [];\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName&&this._culture) {\n await this.AfterInit()\n await this.getEntryAssignList()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray)\n let extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n\n /**获取对应的条目 */\n getEntryAssignList(filter = '') {\n return new Promise((resolve, rejects) => {\n this._EntryAdminService.getList({\n culture: this._culture,\n sectionId: this._fields.field.formConfiguration['Entry.SectionId'],\n skipCount: 0,\n maxResultCount: 30,\n status: EntryStatus.Published,\n filter: filter\n }).subscribe(res => {\n this.listOfOption = res.items\n resolve(true)\n })\n })\n }\n\n /** */\n async SelectChange(event) {\n await this.getEntryAssignList(event)\n }\n}\n","<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class MatrixConfig {\r\n // 矩阵类型\r\n 'MatrixBlockTypes': any = new FormArray([])\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class MatrixItemConfig {\r\n \r\n displayName: any = ['', [Validators.required]];\r\n /**字段名字 */\r\n name: any = ['', [Validators.required]];\r\n\r\n constructor(data?: MatrixConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\n\r\n\r\nexport class matrixFieldInputBase {\r\n\r\n\r\n /**字段名称 Display name of this field */\r\n displayName: any = ['', [Validators.required]];\r\n /**字段唯一名称 Unique Name*/\r\n name: any = ['', [Validators.required]];\r\n /**描述 说明 */\r\n description: any = ['', []];\r\n /**FieldType字段类型 表单控件名称 */\r\n formControlName: any = ['TextEdit', [Validators.required]];\r\n /**动态表单配置 */\r\n formConfiguration: FormGroup | undefined = new FormGroup({})\r\n\r\n\r\n constructor(data?: matrixFieldInputBase) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n }\r\n}","import { Component, ElementRef, Input, ViewChild, } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatrixConfig, MatrixItemConfig } from './matrix-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-matrix-config',\n templateUrl: './matrix-config.component.html',\n styleUrls: ['./matrix-config.component.scss']\n})\nexport class MatrixConfigComponent {\n\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n\n /**表单控件组 */\n _FieldControlGroup: any[]\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n\n\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n\n\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise(async (resolve, rejects) => {\n this._FieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n this._Entity.setControl('formConfiguration', this.fb.group(new MatrixConfig()))\n await this.setSelectValue()\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n resolve(true)\n })\n }\n\n\n setSelectValue() {\n return new Promise((resolve, rejects) => {\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['MatrixBlockTypes'].forEach(((el, index) => {\n this.addMatrixBlockTypeItem(el)\n el.fields.forEach((elf, indexf) => {\n this.addMatrixFieldItem(elf, index)\n })\n }))\n resolve(true)\n }\n \n })\n }\n\n /**获取表单配置 */\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n\n /**获取表单配置下的矩阵块表单数组 */\n get MatrixBlockTypes() {\n return this.formConfiguration.controls['MatrixBlockTypes'] as FormArray\n }\n\n\n /**模态框-状态 */\n matrixModalOpen: boolean = false\n /**模态框-是否正在编辑 */\n isMatrixModalEdit: any = false\n\n /**模态框-用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n\n /**模态框-表单 */\n matrixModalForm: FormGroup | undefined;\n\n /**表单控件模板-用于在form外提交submit */\n @ViewChild('matrixModalModalSubmit', { static: false }) matrixModalModalSubmit: ElementRef;\n\n /**矩阵块-选择的下标 */\n selectMatrixBlockIndex: any = 0\n\n /**矩阵块-选择的矩阵下字段的下标 */\n selectMatrixFieldIndex: any = 0\n\n /**模态框-状态改变 */\n matrixModalVisibleChange(event) {\n if (!event) {\n this.isMatrixModalEdit = false\n this.matrixModalForm = undefined\n return\n }\n }\n\n\n /**矩阵块--新增-打开模态框 */\n addMatrixBlockType() {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalOpen = true\n }\n\n\n\n /**模态框--矩阵表单保存提交 */\n createOrEditSave() {\n let input = this.matrixModalForm.value\n if (!this.matrixModalForm.valid) return\n if (this.isMatrixModalEdit) {\n let MatrixBlockTypesItem = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n MatrixBlockTypesItem.patchValue({\n ...input\n })\n } else {\n this.addMatrixBlockTypeItem(input)\n }\n this.matrixModalOpen = false\n }\n /**新增矩阵块-向数组表单中增加项 */\n addMatrixBlockTypeItem(input) {\n this.MatrixBlockTypes.push(new FormGroup({\n displayName: new FormControl(input.displayName, Validators.required),\n name: new FormControl(input.name, Validators.required),\n fields: new FormArray([])\n }))\n }\n /**编辑矩阵块 */\n EditMatrixBlock(input) {\n this.matrixModalForm = this.fb.group(new MatrixItemConfig())\n this.matrixModalForm.patchValue({\n ...input\n })\n this.matrixModalOpen = true\n this.isMatrixModalEdit = true\n }\n\n /**删除矩阵块 */\n DeleteMatrixBlock(index) {\n this.MatrixBlockTypes.removeAt(index)\n }\n\n /**矩阵块-选择 */\n selectMatrixBlockChange(index) {\n this.selectMatrixBlockIndex = index\n }\n\n /**矩阵字段-新增 */\n addMatrixField() {\n this.addMatrixFieldItem('', this.selectMatrixBlockIndex)\n \n }\n /**矩阵字段-新增矩阵字段项 */\n addMatrixFieldItem(input: any = '', selectMatrixBlockIndex) {\n /**矩阵下标的矩阵项Form */\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n MatrixFieldItemForm.push(this.fb.group({\n /**字段名称 Display name of this field */\n displayName: [input.displayName, [Validators.required]],\n /**字段唯一名称 Unique Name*/\n name: [input.name, [Validators.required]],\n /**描述 说明 */\n description: [input.description, []],\n /**FieldType字段类型 表单控件名称 */\n formControlName: [input.formControlName || 'TextEdit', [Validators.required]],\n //动态表单配置\n formConfiguration: new FormGroup({}),\n }))\n //\n }\n\n /**删除矩阵字段项 */\n deleteMatrixField(MatrixFieldForm, index) {\n MatrixFieldForm.removeAt(index)\n this.selectMatrixFieldIndex = 0\n }\n\n /**矩阵字段-选择 */\n selectMatrixFieldChange(MatrixBlockIndex, MatrixFieldIndex) {\n this.selectMatrixFieldIndex = MatrixFieldIndex\n }\n\n get nameInput() {\n return this.matrixModalForm?.get('name')\n }\n get FieldnameInput() {\n let MatrixBlockTypesItemForm = this.MatrixBlockTypes.at(this.selectMatrixBlockIndex) as FormGroup\n let MatrixFieldItemForm = MatrixBlockTypesItemForm.get('fields') as FormArray\n return MatrixFieldItemForm.at(this.selectMatrixFieldIndex).get('name')\n }\n\n /**矩阵displayNameInput字段失去焦点 */\n displayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = this.nameInput\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n /**矩阵displayNameInput字段失去焦点 */\n MatrixFieldDisplayNameInputBlur(event) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let FieldnameInput = this.FieldnameInput\n if (FieldnameInput.value) return\n FieldnameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <div class=\"form-text\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&item\">\n <df-dynamic [type]=\"itemf.value.formControlName\" [entity]=\"item\"\n [selected]=\"_selected?_selected['formConfiguration']['MatrixBlockTypes'][i]['fields'][fi]:''\"></df-dynamic>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('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=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'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\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\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)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'df-matrix-control',\n templateUrl: './matrix-control.component.html',\n styleUrls: ['./matrix-control.component.scss']\n})\nexport class MatrixControlComponent {\n\n constructor(\n private fb: FormBuilder,\n ) {\n\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n if (this._selected) this.fieldNameControl.patchValue(this._selected);\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let formConfiguration = this._fields.field.formConfiguration\n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addMatrixControl(formConfiguration.MatrixBlockTypes.find(item => item.name == el.matrixBlockTypeName))\n });\n }\n this.MatrixBlockTypesList = formConfiguration.MatrixBlockTypes\n resolve(true)\n })\n }\n\n /**矩阵列表 */\n MatrixBlockTypesList: any[] = []\n\n /**增加指定矩阵控件项 */\n addMatrixControl(item) {\n this.fieldNameControl.push(this.fb.group({\n extraProperties: new FormGroup({}),\n matrixBlockTypeName: [item.name],\n displayName: [item.displayName]\n }))\n }\n /**删除矩阵控件 */\n deleteMatrixControl(index) {\n this.fieldNameControl.removeAt(index)\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container>\n <df-dynamic [entity]=\"item\"\n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i][_parentFiledName][elf.name]: ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nexport class TableConfig {\r\n\r\n\r\n\r\n // 选项\r\n TableColumns: any = new FormArray([])\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport class TableFormControl {\r\n /**列标题 */\r\n displayName: any = ['', [Validators.required]];\r\n /**空间配置 */\r\n formConfiguration: any = new FormGroup({})\r\n /**列名 */\r\n name: any = ['', [Validators.required]];\r\n //控件标识\r\n formControlName: any = ['', [Validators.required]];\r\n\r\n /**是否必填 */\r\n required: any = [false];\r\n /**描述 */\r\n description: any = [''];\r\n\r\n\r\n constructor(data?: TableConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { TableConfig, TableFormControl } from './table-config';\nimport { CmsApiService, FieldAbstractsService } from '../../../services';\n\n@Component({\n selector: 'df-table-config',\n templateUrl: './table-config.component.html',\n styleUrls: ['./table-config.component.scss']\n})\nexport class TableConfigComponent {\n constructor(\n private fb: FormBuilder,\n private _CmsApiService: CmsApiService,\n private _FieldAbstractsService: FieldAbstractsService,\n ) { }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n if (v) {\n this._selected = v\n this.dataLoaded()\n }\n }\n /**表单控件组 */\n _fieldControlGroup: any[]\n\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n get TableColumns() {\n return this.formConfiguration.controls['TableColumns'] as FormArray\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n\n }\n }\n /**增加选项 */\n addTableColumns() {\n this.TableColumns.push(this.fb.group({\n ...new TableFormControl(),\n formConfiguration: [{}]\n }))\n }\n /**删除某个选项 */\n deleteTableColumns(index) {\n this.TableColumns.removeAt(index)\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new TableConfig()))\n this._fieldControlGroup = this._FieldAbstractsService.getExcludeAssignControl(this._type)\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['TableColumns'].forEach(el => {\n this.addTableColumns()\n });\n this.formConfiguration.patchValue(this._selected.formConfiguration)\n } else {\n this.addTableColumns()\n }\n resolve(true)\n })\n }\n itemForm: any\n /**选择表格的表单控件 */\n selectTableControl(event, i, item) {\n this.CurrentSelectionTableControlName = event.target.value\n this.tableSelectOpen = true\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.TableColumnsIndex = i\n this.itemForm = item\n }\n\n CurrentSelectionTableControlName: any\n\n /**正在创建或编辑的表格项下标 */\n TableColumnsIndex: any\n /**创建站点模态框状态 */\n tableSelectOpen: boolean = false\n\n /**用于确定模态的繁忙状态是否为真 */\n modalBusy: boolean = false\n /**创建站点表单 */\n tableSelectForm: FormGroup | undefined;\n\n /**表格已选择数据 */\n _tableSelected: any\n\n\n /**表单控件模板-动态赋值表单控件 */\n @ViewChild('tableSelectModalSubmit', { static: false }) tableSelectModalSubmit: ElementRef;\n\n\n /**创建站点模态框状态改变 */\n tableSelectVisibleChange(event) {\n if (!event) {\n this._tableSelected = undefined\n this.tableSelectForm = undefined\n this.CurrentSelectionTableControlName = undefined\n this.TableColumnsIndex = undefined\n return\n }\n }\n /**表单保存提交 */\n createOrEditSave() {\n const formGroup = this.TableColumns.at(this.TableColumnsIndex) as FormGroup;\n let formConfigurationgroup = formGroup.get('formConfiguration') as FormGroup\n\n formConfigurationgroup.setValue({\n ...this.tableSelectForm.value['formConfiguration'],\n });\n this.tableSelectOpen = false\n }\n\n /**编辑站点按钮 */\n EditSitesBtn(rows, i) {\n\n this.CurrentSelectionTableControlName = rows.get('formControlName').value\n this.tableSelectForm = this.fb.group(new TableFormControl())\n this.tableSelectForm.patchValue({\n ...rows.value\n })\n this.tableSelectForm.get('formConfiguration').patchValue({\n ...rows.value['formConfiguration']\n })\n this._tableSelected = rows.value\n this.TableColumnsIndex = i\n this.tableSelectOpen = true\n }\n\n\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.TableColumns.at(index)\n this.TableColumns.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.TableColumns.insert(lastindex, controlAt)\n }\n\n\n /**字段标签input失去标点生成字段名字 */\n disPlayNameInputBlur(event, item) {\n let value = event.target.value\n let pinyin = this._CmsApiService.chineseToPinyin(value)\n let nameInput = item.get('name')\n if (nameInput.value) return\n nameInput.patchValue(pinyin)\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('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=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" [entity]=\"tableSelectForm\"\n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\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)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n selector: 'df-table-control',\n templateUrl: './table-control.component.html',\n styleUrls: ['./table-control.component.scss']\n})\nexport class TableControlComponent {\n\n constructor(\n // private fb: FormBuilder,\n ) {\n }\n private fb=inject(FormBuilder)\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v ;\n if (v) { this.dataLoaded() }\n\n }\n /**语言 */\n _culture: any\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n /** 获取父级字段代表的表单组*/\n extraProperties: FormGroup | undefined\n \n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n formConfiguration: any\n /**获取表格字段代表的控件 */\n fieldNameControl: FormArray | undefined\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let formConfiguration = this._fields.field.formConfiguration\n this.formConfiguration = formConfiguration\n console.log(formConfiguration,'formConfiguration');\n \n let newArrayGroup = this.fb.array([])\n this.extraProperties.setControl(this._fields.field.name, newArrayGroup)\n this.fieldNameControl = this.extraProperties.get(this._fields.field.name) as FormArray\n if (this._selected) {\n this._selected.forEach(el => {\n this.addTableControlItem()\n });\n this.fieldNameControl.patchValue(this._selected)\n } else {\n this.addTableControlItem()\n }\n resolve(true)\n })\n }\n /**增加表格项 */\n addTableControlItem(){\n this.fieldNameControl.push(this.fb.group({\n 'extraProperties':this.fb.group({})\n }))\n }\n /**删除表格项 */\n minusTableControlItem(index){\n this.fieldNameControl.removeAt(index)\n }\n /**调整表格位置 */\n TableArrowUpOrDown(type, index) {\n let controlAt = this.fieldNameControl.at(index)\n this.fieldNameControl.removeAt(index)\n let lastindex = type == 'up' ? index - 1 : index + 1\n this.fieldNameControl.insert(lastindex, controlAt)\n this._selected=this.fieldNameControl.value\n }\n\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th scope=\"col\">{{ item.displayName }}</th>\n </ng-container>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [entity]=\"item\" [fields]=\"{ field: el }\"\n [selected]=\"_selected[i]?.extraProperties[''+el.name+'']\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"\">\n <div class=\"flex-end mb-2\">\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"TableArrowUpOrDown('up',i)\"\n *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>","import { EntryConfigComponent, EntryControlComponent } from \"./entry\";\r\nimport { MatrixConfigComponent } from \"./matrix/matrix-config.component\";\r\nimport { MatrixControlComponent } from \"./matrix/matrix-control.component\";\r\nimport { TableConfigComponent, TableControlComponent } from \"./table\";\r\n/**\r\n * 表单控件分组-包含配置,控件,显示的数组\r\n */\r\nexport const FieldControlGroup: any[] = [\r\n {\r\n displayName: '表格',\r\n name: 'Table',\r\n fieldConfigComponent: TableConfigComponent,\r\n fieldComponent: TableControlComponent,\r\n },\r\n {\r\n displayName: '矩阵',\r\n name: 'Matrix',\r\n fieldConfigComponent: MatrixConfigComponent,\r\n fieldComponent: MatrixControlComponent,\r\n },\r\n {\r\n displayName: '条目',\r\n name: 'Entry',\r\n fieldConfigComponent: EntryConfigComponent,\r\n fieldComponent: EntryControlComponent,\r\n },\r\n];\r\n","import { ToolbarAction } from '@abp/ng.theme.shared/extensions';\r\nimport {\r\n SectionsComponent,\r\n CreateOrEditComponent,\r\n SitesComponent,\r\n FieldsComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n CreateComponent,\r\n EditComponent,\r\n} from '../components';\r\n\r\n/**版块 */\r\nexport const Sections_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(SectionsComponent);\r\n component.createSectionBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**版块-创建-编辑 */\r\nexport const Sections_Create_Or_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateOrEditComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**站点 */\r\n// export const Sites_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n// {\r\n// text: 'Cms::New',\r\n// action: data => {\r\n// const component = data.getInjected(SitesComponent);\r\n// // component.createSitesBtn();\r\n// },\r\n// btnClass: '',\r\n// permission: 'CmsAdmin.Entry.Create',\r\n// icon: 'fa fa-plus',\r\n// },\r\n// ]);\r\n/**字段 */\r\nexport const Fields_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(FieldsComponent);\r\n component.toFieldsCreateBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n/**字段-创建 */\r\nexport const Fields_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditFieldComponent);\r\n component.submitclickBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n]);\r\n\r\n/**条目 */\r\nexport const Entries_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'Cms::New',\r\n action: data => {\r\n const component = data.getInjected(EntriesComponent);\r\n component.createEntriesBtn();\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-plus',\r\n },\r\n]);\r\n/**条目-创建 */\r\nexport const Entries_Create_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(CreateComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n/**条目编辑 */\r\nexport const Entries_Edit_Defaults_Toolbar_Action = ToolbarAction.createMany<any[]>([\r\n {\r\n text: 'AbpUi::Cancel',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.backTo();\r\n },\r\n btnClass: 'btn btn-light btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: '',\r\n },\r\n {\r\n text: 'AbpUi::Save',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(true);\r\n },\r\n btnClass: 'btn btn-info btn-sm',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fas fa-save',\r\n },\r\n {\r\n text: 'Cms::Publish',\r\n action: data => {\r\n const component = data.getInjected(EditComponent);\r\n component.clickSubmit(false);\r\n },\r\n btnClass: '',\r\n permission: 'CmsAdmin.Entry.Create',\r\n icon: 'fa fa-paper-plane',\r\n },\r\n]);\r\n","import { ConfigStateService } from \"@abp/ng.core\";\r\nimport { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions } from \"@abp/ng.theme.shared/extensions\";\r\nimport { InjectionToken, inject } from \"@angular/core\";\r\nimport { ResolveFn } from \"@angular/router\";\r\nimport { map, tap } from \"rxjs\";\r\nimport { ECmsComponent } from \"../enums\";\r\nimport { Entries_Defaults_Toolbar_Action, Entries_Create_Defaults_Toolbar_Action, Entries_Edit_Defaults_Toolbar_Action, Fields_Defaults_Toolbar_Action, Fields_Create_Defaults_Toolbar_Action, Fields_Edit_Defaults_Toolbar_Action, Sections_Defaults_Toolbar_Action, Sections_Create_Or_Edit_Defaults_Toolbar_Action } from \"./toolbar-btn-default-action\";\r\n\r\nexport const ActionGroup = {\r\n Entries: Entries_Defaults_Toolbar_Action,\r\n Entries_Create: Entries_Create_Defaults_Toolbar_Action,\r\n Entries_Edit: Entries_Edit_Defaults_Toolbar_Action,\r\n Fields: Fields_Defaults_Toolbar_Action,\r\n FieldsCreate: Fields_Create_Defaults_Toolbar_Action,\r\n FieldsEdit: Fields_Edit_Defaults_Toolbar_Action,\r\n Sections: Sections_Defaults_Toolbar_Action,\r\n SectionsCreateOrEdit: Sections_Create_Or_Edit_Defaults_Toolbar_Action,\r\n};\r\n\r\nconst setCmsAction = () => {\r\n let Cms_Default = {};\r\n for (const iterator in ECmsComponent) {\r\n Cms_Default[ECmsComponent[iterator]] = ActionGroup[iterator];\r\n }\r\n return Cms_Default;\r\n};\r\n/**用于路由守卫增加工具栏按钮 */\r\nexport const Cms_Default_Toolbar_Actions = setCmsAction();\r\n\r\n/**\r\n * \r\n * @param 在identityExtensionsResolver方法中使用\r\n * \r\n * @param 在cms.module.ts中使用,\r\n export class CmsModule {\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: CMS_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n // useValue: identityToolbarActionContributors,\r\n },\r\n // IdentityExtensionsGuard,\r\n ]\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n }\r\n * \r\n * \r\n */\r\nexport const CMS_TOOLBAR_ACTION_CONTRIBUTORS = new InjectionToken<any>(\r\n 'CMS_TOOLBAR_ACTION_CONTRIBUTORS'\r\n);\r\n\r\n/**用于放在cms-routing.module.ts路由守卫中\r\n * \r\n *\r\n const routes: Routes = [\r\n {\r\n path: 'demo',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [identityExtensionsResolver],\r\n children: []\r\n },\r\n ]\r\n * \r\n * \r\n */\r\nexport const CmsExtensionsResolver: ResolveFn<any> = () => {\r\n const configState = inject(ConfigStateService);\r\n const extensions = inject(ExtensionsService);\r\n const config = { optional: true };\r\n const toolbarContributors = inject(CMS_TOOLBAR_ACTION_CONTRIBUTORS, config) || {};\r\n return getObjectExtensionEntitiesFromStore(configState, 'Cms').pipe(\r\n map(entities => ({\r\n // [ECmseComponents.UsePage]: entities.Role,\r\n // [eIdentityComponents.Users]: entities.User,\r\n })),\r\n mapEntitiesToContributors(configState, 'Cms'),\r\n tap(objectExtensionContributors => {\r\n mergeWithDefaultActions(\r\n extensions.toolbarActions,\r\n Cms_Default_Toolbar_Actions,\r\n toolbarContributors\r\n );\r\n })\r\n );\r\n};","export default `\r\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}\r\na {\r\n text-decoration: unset;\r\n}\r\n:root .cellClassRight{\r\n transform: translateX(17px);\r\n background: var(--lpx-card-bg);\r\n}\r\n.form-label{\r\n font-size: 12px;\r\n}\r\n`;","import { Renderer2, RendererFactory2, inject } from \"@angular/core\";\r\nimport styles from \"../constants/styles\";\r\nlet isAppentStyle = false\r\nexport function appentStyle() {\r\n /**确保该路由守卫只会执行一次 */\r\n if (isAppentStyle) return\r\n isAppentStyle = true\r\n const rendererFactory = inject(RendererFactory2);\r\n let renderer: Renderer2=rendererFactory.createRenderer(null, null)\r\n const style = renderer.createElement('style');\r\n renderer.setProperty(style, 'innerHTML', styles);\r\n renderer.appendChild(document.head, style);\r\n}","import { NgModule} from '@angular/core';\r\nimport { Routes, RouterModule} from '@angular/router';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n SitesComponent,\r\n} from './components';\r\nimport {\r\n AuthGuard,\r\n PermissionGuard,\r\n} from '@abp/ng.core';\r\nimport { CmsExtensionsResolver } from './toolbar';\r\nimport { appentStyle } from './services/appent-content';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'admin',\r\n canActivate: [AuthGuard, PermissionGuard],\r\n resolve: [CmsExtensionsResolver, appentStyle],\r\n children: [\r\n { \r\n path: 'entries',\r\n\r\n children: [\r\n {\r\n path: '',\r\n component: EntriesComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateComponent,\r\n },\r\n {\r\n path: ':entrieId/edit',\r\n component: EditComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'fields',\r\n children: [\r\n {\r\n path: '',\r\n component: FieldsComponent,\r\n data: { keep: true }\r\n },\r\n {\r\n path: 'create',\r\n component: CreateFieldComponent,\r\n },\r\n {\r\n path: ':id/edit',\r\n component: EditFieldComponent,\r\n },\r\n ],\r\n },\r\n // {\r\n // path: 'sites',\r\n // component: SitesComponent,\r\n // data: { keep: true }\r\n // },\r\n {\r\n path: 'sections',\r\n children: [\r\n {\r\n path: '',\r\n data: { keep: true },\r\n component: SectionsComponent,\r\n },\r\n {\r\n path: ':sectionsId/entry-types',\r\n children: [\r\n {\r\n path: 'create',\r\n component: CreateOrEditComponent,\r\n },\r\n {\r\n path: ':entryTypesId/edit',\r\n component: CreateOrEditComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class CmsRoutingModule {\r\n}\r\n","import { NgModule, NgModuleFactory, ModuleWithProviders } from '@angular/core';\r\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { CmsRoutingModule } from './cms-routing.module';\r\nimport {\r\n CreateComponent,\r\n CreateFieldComponent,\r\n CreateOrEditComponent,\r\n CreateOrEditEntriesComponent,\r\n CreateOrEditFieldComponent,\r\n EditComponent,\r\n EditFieldComponent,\r\n EntriesComponent,\r\n FieldGroupComponent,\r\n FieldsComponent,\r\n SectionsComponent,\r\n // SitesComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n FieldControlGroup\r\n} from './components';\r\nimport {\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CMS_TOOLBAR_ACTION_CONTRIBUTORS } from './toolbar';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { DynamicFormModule } from '@dignite-ng/expand.dynamic-form';\r\nimport { fielFieldControlGroup } from '@dignite-ng/expand.file-explorer';\r\nimport { ckEditorFieldControlGroup } from '@dignite-ng/expand.ck-editor';\r\nimport { DomainsComponent } from './components/admin/domains/domains.component';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\n\r\n@NgModule({\r\n declarations: [\r\n EntriesComponent,\r\n FieldsComponent,\r\n // SitesComponent,\r\n SectionsComponent,\r\n FieldGroupComponent,\r\n CreateFieldComponent,\r\n EditFieldComponent,\r\n CreateOrEditFieldComponent,\r\n CreateOrEditComponent,\r\n CreateComponent,\r\n EditComponent,\r\n CreateOrEditEntriesComponent,\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n DomainsComponent,\r\n ],\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n CmsRoutingModule,\r\n FormsModule,\r\n NgbNavModule,\r\n NgbAccordionModule,\r\n NgbDropdownModule,\r\n PageModule,\r\n NzSelectModule,\r\n DynamicFormModule.forRoot({\r\n cmsFieldControlGroup: [...FieldControlGroup, ...fielFieldControlGroup, ...ckEditorFieldControlGroup]\r\n }),\r\n ],\r\n exports: [\r\n TableConfigComponent,\r\n TableControlComponent,\r\n MatrixConfigComponent,\r\n MatrixControlComponent,\r\n EntryConfigComponent,\r\n EntryControlComponent,\r\n DomainsComponent\r\n ],\r\n providers: [\r\n ],\r\n\r\n})\r\nexport class CmsModule {\r\n \r\n\r\n\r\n static forChild(options: any = {}): ModuleWithProviders<CmsModule> {\r\n return {\r\n ngModule: CmsModule,\r\n providers: [\r\n {\r\n provide: CMS_TOOLBAR_ACTION_CONTRIBUTORS,\r\n useValue: options.toolbarActionContributors,\r\n },\r\n ],\r\n };\r\n }\r\n static forLazy(options: any = {}): NgModuleFactory<CmsModule> {\r\n return new LazyModuleFactory(CmsModule.forChild(options));\r\n }\r\n}\r\n","/*\r\n * Public API Surface of cms\r\n */\r\n\r\nexport * from './lib/cms.module';\r\n// export * from './lib/cms-routing.module';\r\nexport * from './lib/components/dynamic-form';\r\n// export * from './lib/proxy';\r\nexport * from './lib/services/simple-reuse-strategy';\r\nexport * from './lib/components/admin/domains';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntryAdminService","i2.SectionAdminService","i4","i5","i6","i7","i1.FieldGroupAdminService","i2.FormAdminService","i1","i3","i4.SectionAdminService","i5.EntryAdminService","i7.CmsApiService","i8","i11","i4.EntryAdminService","i9.CreateOrEditEntriesComponent","i2.FieldGroupAdminService","i4.FieldAbstractsService","i2.FieldAdminService","i5.CmsApiService","i9","i10.FieldGroupComponent","i1.FieldAbstractsService","i2.CmsApiService","i3.FieldAdminService","i6.CmsApiService","i10.CreateOrEditFieldComponent","i2.FieldAbstractsService","i8.CmsApiService","i10","i11.CreateOrEditFieldComponent","i2.EntryTypeAdminService","i4.FieldGroupAdminService","i4.FieldAdminService","i5.EntryTypeAdminService","i2"],"mappings":"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"}