@vendure/admin-ui 3.3.6-master-202507110238 → 3.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/common/version.d.ts +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +60 -34
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +0 -1
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +0 -1
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +0 -1
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +3 -6
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/package.json +2 -2
- package/static/i18n-messages/es.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendure-admin-ui-settings.mjs","sources":["../../src/lib/settings/src/components/zone-member-list/zone-member-controls.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list-header.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.html","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.ts","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.html","../../src/lib/settings/src/components/permission-grid/permission-grid.component.ts","../../src/lib/settings/src/components/permission-grid/permission-grid.component.html","../../src/lib/settings/src/components/admin-detail/admin-detail.component.ts","../../src/lib/settings/src/components/admin-detail/admin-detail.component.html","../../src/lib/settings/src/components/administrator-list/administrator-list-bulk-actions.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.html","../../src/lib/settings/src/components/channel-detail/channel-detail.component.ts","../../src/lib/settings/src/components/channel-detail/channel-detail.component.html","../../src/lib/settings/src/components/channel-list/channel-list-bulk-actions.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.html","../../src/lib/settings/src/components/country-detail/country-detail.component.ts","../../src/lib/settings/src/components/country-detail/country-detail.component.html","../../src/lib/settings/src/components/country-list/country-list-bulk-actions.ts","../../src/lib/settings/src/components/country-list/country-list.component.ts","../../src/lib/settings/src/components/country-list/country-list.component.html","../../src/lib/settings/src/components/global-settings/global-settings.component.ts","../../src/lib/settings/src/components/global-settings/global-settings.component.html","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.ts","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.html","../../src/lib/settings/src/components/payment-method-list/payment-method-list-bulk-actions.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.html","../../src/lib/settings/src/components/profile/profile.component.ts","../../src/lib/settings/src/components/profile/profile.component.html","../../src/lib/settings/src/components/role-detail/role-detail.component.ts","../../src/lib/settings/src/components/role-detail/role-detail.component.html","../../src/lib/settings/src/components/role-list/role-list-bulk-actions.ts","../../src/lib/settings/src/components/role-list/role-list.component.ts","../../src/lib/settings/src/components/role-list/role-list.component.html","../../src/lib/settings/src/components/seller-detail/seller-detail.component.ts","../../src/lib/settings/src/components/seller-detail/seller-detail.component.html","../../src/lib/settings/src/components/seller-list/seller-list-bulk-actions.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.html","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.ts","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.html","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.ts","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.html","../../src/lib/settings/src/components/test-address-form/test-address-form.component.ts","../../src/lib/settings/src/components/test-address-form/test-address-form.component.html","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.ts","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.html","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.ts","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.html","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list-bulk-actions.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.html","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.ts","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.html","../../src/lib/settings/src/components/stock-location-list/stock-location-list-bulk-actions.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.html","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.ts","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.html","../../src/lib/settings/src/components/tax-category-list/tax-category-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.html","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.ts","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.html","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.html","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.ts","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.html","../../src/lib/settings/src/components/zone-detail/zone-detail.component.ts","../../src/lib/settings/src/components/zone-detail/zone-detail.component.html","../../src/lib/settings/src/components/zone-list/zone-list-bulk-actions.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.html","../../src/lib/settings/src/components/zone-member-list/zone-member-list-bulk-actions.ts","../../src/lib/settings/src/providers/routing/profile-resolver.ts","../../src/lib/settings/src/settings.routes.ts","../../src/lib/settings/src/settings.module.ts","../../src/lib/settings/src/public_api.ts","../../src/lib/settings/src/vendure-admin-ui-settings.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vdrZoneMemberControls]',\n standalone: false\n})\nexport class ZoneMemberControlsDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vdrZoneMemberListHeader]',\n standalone: false\n})\nexport class ZoneMemberListHeaderDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport {\n BulkActionLocationId,\n DataService,\n GetZoneListQuery,\n GetZoneMembersDocument,\n GetZoneMembersQuery,\n ItemOf,\n SelectionManager,\n} from '@vendure/admin-ui/core';\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject, switchMap } from 'rxjs';\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\n\nimport { ZoneMemberControlsDirective } from './zone-member-controls.directive';\nimport { ZoneMemberListHeaderDirective } from './zone-member-list-header.directive';\n\nexport type ZoneMember = { id: string; name: string; code: string };\n\n@Component({\n selector: 'vdr-zone-member-list',\n templateUrl: './zone-member-list.component.html',\n styleUrls: ['./zone-member-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ZoneMemberListComponent implements OnInit, OnChanges, OnDestroy {\n @Input() locationId: BulkActionLocationId;\n @Input() members?: ZoneMember[];\n @Input() selectedMemberIds: string[] = [];\n @Input() activeZone: ItemOf<GetZoneListQuery, 'zones'>;\n @Output() selectionChange = new EventEmitter<string[]>();\n @ContentChild(ZoneMemberListHeaderDirective) headerTemplate: ZoneMemberListHeaderDirective;\n @ContentChild(ZoneMemberControlsDirective) controlsTemplate: ZoneMemberControlsDirective;\n members$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members'] | ZoneMember[]>;\n filterTermControl = new FormControl('');\n filteredMembers$: Observable<ZoneMember[]>;\n totalItems$: Observable<number>;\n currentPage = 1;\n itemsPerPage = 10;\n selectionManager = new SelectionManager<ZoneMember>({\n multiSelect: true,\n itemsAreEqual: (a, b) => a.id === b.id,\n additiveMode: true,\n });\n private membersInput$ = new Subject<ZoneMember[]>();\n private activeZoneInput$ = new BehaviorSubject<ItemOf<GetZoneListQuery, 'zones'> | undefined>(undefined);\n private destroy$ = new Subject<void>();\n private refresh$ = new Subject<void>();\n\n constructor(private dataService: DataService) {}\n\n ngOnInit() {\n const activeZoneMembers$ = merge(this.activeZoneInput$, this.refresh$).pipe(\n switchMap(activeZone =>\n this.activeZone\n ? this.dataService\n .query(GetZoneMembersDocument, { zoneId: this.activeZone.id })\n .mapSingle(({ zone }) => zone?.members ?? [])\n : of([]),\n ),\n );\n this.members$ = merge(activeZoneMembers$, this.membersInput$);\n\n this.members$.pipe(take(1)).subscribe(members => {\n this.selectionManager.setCurrentItems(\n members?.filter(m => this.selectedMemberIds.includes(m.id)) ?? [],\n );\n });\n this.selectionManager.selectionChanges$.pipe(takeUntil(this.destroy$)).subscribe(selection => {\n this.selectionChange.emit(selection.map(s => s.id));\n });\n this.filteredMembers$ = combineLatest(\n this.members$,\n this.filterTermControl.valueChanges.pipe(startWith('')),\n ).pipe(\n map(([members, filterTerm]) => {\n if (filterTerm) {\n const term = filterTerm?.toLocaleLowerCase() ?? '';\n return members.filter(\n m =>\n m.name.toLocaleLowerCase().includes(term) ||\n m.code.toLocaleLowerCase().includes(term),\n );\n } else {\n return members;\n }\n }),\n );\n this.totalItems$ = this.filteredMembers$.pipe(map(members => members.length));\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('members' in changes) {\n this.membersInput$.next(this.members ?? []);\n }\n if ('activeZone' in changes) {\n this.activeZoneInput$.next(this.activeZone);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n refresh() {\n this.refresh$.next();\n }\n}\n","<vdr-data-table-2\n [id]=\"locationId\"\n [items]=\"filteredMembers$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [itemsPerPage]=\"itemsPerPage\"\n [currentPage]=\"currentPage\"\n (itemsPerPageChange)=\"itemsPerPage = $event\"\n (pageChange)=\"currentPage = $event\"\n>\n <vdr-bulk-action-menu\n [locationId]=\"locationId\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"filterTermControl\"\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-member=\"item\">\n {{ member.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\n <ng-template let-member=\"item\">\n {{ member.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\n <ng-template let-member=\"item\">\n {{ member.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\">\n <ng-template let-member=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/settings/countries', member.id]\"\n ><span> {{ member.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\n <ng-template let-member=\"item\">\n {{ member.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-member=\"item\">\n <vdr-chip *ngIf=\"member.enabled\" colorType=\"success\">{{ 'common.enabled' | translate }}</vdr-chip>\n <vdr-chip *ngIf=\"!member.enabled\" colorType=\"warning\">{{ 'common.disabled' | translate }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport {\n DataService,\n Dialog,\n GetCountryListDocument,\n GetCountryListQuery,\n GetZoneListQuery,\n GetZoneMembersDocument,\n GetZoneMembersQuery,\n ItemOf,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map, withLatestFrom } from 'rxjs/operators';\n\nexport const GET_ZONE_MEMBERS = gql`\n query GetZoneMembers($zoneId: ID!) {\n zone(id: $zoneId) {\n id\n createdAt\n updatedAt\n name\n members {\n createdAt\n updatedAt\n id\n name\n code\n enabled\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-add-country-to-zone-dialog',\n templateUrl: './add-country-to-zone-dialog.component.html',\n styleUrls: ['./add-country-to-zone-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AddCountryToZoneDialogComponent implements Dialog<string[]>, OnInit {\n resolveWith: (result?: string[]) => void;\n zoneName: string;\n zoneId: string;\n currentMembers$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members']>;\n availableCountries$: Observable<Array<ItemOf<GetCountryListQuery, 'countries'>>>;\n selectedMemberIds: string[] = [];\n\n constructor(private dataService: DataService) {}\n\n ngOnInit(): void {\n this.currentMembers$ = this.dataService\n .query(GetZoneMembersDocument, { zoneId: this.zoneId })\n .mapSingle(({ zone }) => zone?.members ?? []);\n this.availableCountries$ = this.dataService\n .query(GetCountryListDocument, {\n options: { take: 999 },\n })\n .mapStream(data => data.countries.items)\n .pipe(\n withLatestFrom(this.currentMembers$),\n map(([countries, currentMembers]) =>\n countries.filter(c => !currentMembers.find(cm => cm.id === c.id)),\n ),\n );\n }\n\n cancel() {\n this.resolveWith();\n }\n\n add() {\n this.resolveWith(this.selectedMemberIds);\n }\n}\n","<ng-template vdrDialogTitle>{{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}</ng-template>\n\n<vdr-zone-member-list\n locationId=\"zone-members-list\"\n [members]=\"availableCountries$ | async\"\n [selectedMemberIds]=\"selectedMemberIds\"\n (selectionChange)=\"selectedMemberIds = $event\"\n>\n</vdr-zone-member-list>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedMemberIds.length\" class=\"btn btn-primary\">\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}\n </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { PermissionDefinition } from '@vendure/admin-ui/core';\n\nexport interface PermissionGridRow {\n label: string;\n description: string;\n permissions: PermissionDefinition[];\n}\n\n/**\n * A table showing and allowing the setting of all possible CRUD permissions.\n */\n@Component({\n selector: 'vdr-permission-grid',\n templateUrl: './permission-grid.component.html',\n styleUrls: ['./permission-grid.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PermissionGridComponent implements OnInit {\n @Input() permissionDefinitions: PermissionDefinition[];\n @Input() activePermissions: string[];\n @Input() readonly = false;\n @Output() permissionChange = new EventEmitter<{ permission: string; value: boolean }>();\n gridData: PermissionGridRow[];\n\n ngOnInit() {\n this.buildGrid();\n }\n\n setPermission(permission: string, value: boolean) {\n if (!this.readonly) {\n this.permissionChange.emit({ permission, value });\n }\n }\n\n toggleAll(defs: PermissionDefinition[]) {\n const value = defs.some(d => !this.activePermissions.includes(d.name));\n for (const def of defs) {\n this.permissionChange.emit({ permission: def.name, value });\n }\n }\n\n private buildGrid() {\n const crudGroups = new Map<string, PermissionDefinition[]>();\n const nonCrud: PermissionDefinition[] = [];\n const crudRe = /^(Create|Read|Update|Delete)([a-zA-Z]+)$/;\n for (const def of this.permissionDefinitions) {\n const isCrud = crudRe.test(def.name);\n if (isCrud) {\n const groupName = def.name.match(crudRe)?.[2];\n if (groupName) {\n const existing = crudGroups.get(groupName);\n if (existing) {\n existing.push(def);\n } else {\n crudGroups.set(groupName, [def]);\n }\n }\n } else if (def.assignable) {\n nonCrud.push(def);\n }\n }\n this.gridData = [\n ...nonCrud.map(d => ({\n label: d.name,\n description: d.description,\n permissions: [d],\n })),\n ...Array.from(crudGroups.entries()).map(([label, defs]) => ({\n label,\n description: this.extractCrudDescription(defs[0]),\n permissions: defs,\n })),\n ];\n }\n\n private extractCrudDescription(def: PermissionDefinition): string {\n return def.description.replace(/Grants permission to [\\w]+/, 'Grants permissions on');\n }\n}\n","<table class=\"table\">\n <tbody>\n <tr *ngFor=\"let section of gridData\">\n <td class=\"permission-group left\">\n <div><strong>{{ section.label | translate }}</strong></div>\n <small>{{ section.description | translate }}</small><br>\n <button *ngIf=\"1 < section.permissions.length && !readonly\" class=\"button-small\" (click)=\"toggleAll(section.permissions)\">\n {{ 'common.toggle-all' | translate }}\n </button>\n </td>\n <td *ngFor=\"let permission of section.permissions\" [attr.colspan]=\"section.permissions.length === 1 ? 4 : 1\">\n <vdr-select-toggle\n size=\"small\"\n [title]=\"permission.description\"\n [label]=\"permission.name\"\n [disabled]=\"readonly\"\n [selected]=\"activePermissions?.includes(permission.name)\"\n (selectedChange)=\"setPermission(permission.name, $event)\"\n ></vdr-select-toggle>\n </td>\n </tr>\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { ResultOf } from '@graphql-typed-document-node/core';\nimport {\n ADMINISTRATOR_FRAGMENT,\n CreateAdministratorInput,\n DataService,\n GetAdministratorDetailDocument,\n getCustomFieldsDefaults,\n LanguageCode,\n NotificationService,\n Permission,\n PermissionDefinition,\n RoleFragment,\n TypedBaseDetailComponent,\n UpdateAdministratorInput,\n} from '@vendure/admin-ui/core';\nimport { CUSTOMER_ROLE_CODE } from '@vendure/common/lib/shared-constants';\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport interface PermissionsByChannel {\n channelId: string;\n channelCode: string;\n permissions: { [K in Permission]: boolean };\n}\n\nexport const GET_ADMINISTRATOR_DETAIL = gql`\n query GetAdministratorDetail($id: ID!) {\n administrator(id: $id) {\n ...Administrator\n }\n }\n ${ADMINISTRATOR_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-admin-detail',\n templateUrl: './admin-detail.component.html',\n styleUrls: ['./admin-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AdminDetailComponent\n extends TypedBaseDetailComponent<typeof GetAdministratorDetailDocument, 'administrator'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Administrator');\n detailForm = this.formBuilder.group({\n emailAddress: ['', Validators.required],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n password: [''],\n roles: [\n [] as NonNullable<\n ResultOf<typeof GetAdministratorDetailDocument>['administrator']\n >['user']['roles'],\n ],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n permissionDefinitions: PermissionDefinition[];\n allRoles$: Observable<RoleFragment[]>;\n selectedRoles: RoleFragment[] = [];\n selectedRolePermissions: { [channelId: string]: PermissionsByChannel } = {} as any;\n selectedChannelId: string | null = null;\n\n getAvailableChannels(): PermissionsByChannel[] {\n return Object.values(this.selectedRolePermissions);\n }\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.allRoles$ = this.dataService.administrator\n .getRoles(999)\n .mapStream(item => item.roles.items.filter(i => i.code !== CUSTOMER_ROLE_CODE));\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\n if (\n !userStatus.permissions.includes(Permission.CreateAdministrator) &&\n !userStatus.permissions.includes(Permission.UpdateAdministrator)\n ) {\n const rolesSelect = this.detailForm.get('roles');\n if (rolesSelect) {\n rolesSelect.disable();\n }\n }\n });\n this.permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n rolesChanged(roles: RoleFragment[]) {\n this.buildPermissionsMap();\n }\n\n getPermissionsForSelectedChannel(): string[] {\n function getActivePermissions(input: PermissionsByChannel['permissions']): string[] {\n return Object.entries(input)\n .filter(([permission, active]) => active)\n .map(([permission, active]) => permission);\n }\n if (this.selectedChannelId) {\n const selectedChannel = this.selectedRolePermissions[this.selectedChannelId];\n if (selectedChannel) {\n const permissionMap = this.selectedRolePermissions[this.selectedChannelId].permissions;\n return getActivePermissions(permissionMap);\n }\n }\n const channels = Object.values(this.selectedRolePermissions);\n if (0 < channels.length) {\n this.selectedChannelId = channels[0].channelId;\n return getActivePermissions(channels[0].permissions);\n }\n return [];\n }\n\n create() {\n const { emailAddress, firstName, lastName, password, customFields, roles } = this.detailForm.value;\n if (!emailAddress || !firstName || !lastName || !password) {\n return;\n }\n const administrator: CreateAdministratorInput = {\n emailAddress,\n firstName,\n lastName,\n password,\n customFields,\n roleIds: roles?.map(role => role.id).filter(notNullOrUndefined) ?? [],\n };\n this.dataService.administrator.createAdministrator(administrator).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Administrator',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createAdministrator.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Administrator',\n });\n },\n );\n }\n\n save() {\n this.entity$\n .pipe(\n take(1),\n mergeMap(({ id }) => {\n const formValue = this.detailForm.value;\n const administrator: UpdateAdministratorInput = {\n id,\n emailAddress: formValue.emailAddress,\n firstName: formValue.firstName,\n lastName: formValue.lastName,\n password: formValue.password,\n customFields: formValue.customFields,\n roleIds: formValue.roles?.map(role => role.id),\n };\n return this.dataService.administrator.updateAdministrator(administrator);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Administrator',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Administrator',\n });\n },\n );\n }\n\n protected setFormValues(\n entity: NonNullable<ResultOf<typeof GetAdministratorDetailDocument>['administrator']>,\n languageCode: LanguageCode,\n ) {\n this.detailForm.patchValue({\n emailAddress: entity.emailAddress,\n firstName: entity.firstName,\n lastName: entity.lastName,\n roles: entity.user.roles,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n }\n const passwordControl = this.detailForm.get('password');\n if (passwordControl) {\n if (!entity.id) {\n passwordControl.setValidators([Validators.required]);\n } else {\n passwordControl.setValidators([]);\n }\n }\n this.buildPermissionsMap();\n }\n\n private buildPermissionsMap() {\n const permissionsControl = this.detailForm.get('roles');\n if (permissionsControl) {\n const roles = permissionsControl.value;\n const channelIdPermissionsMap = new Map<string, Set<Permission>>();\n const channelIdCodeMap = new Map<string, string>();\n\n for (const role of roles ?? []) {\n for (const channel of role.channels) {\n const channelPermissions = channelIdPermissionsMap.get(channel.id);\n const permissionSet = channelPermissions || new Set<Permission>();\n\n role.permissions.forEach(p => permissionSet.add(p));\n channelIdPermissionsMap.set(channel.id, permissionSet);\n channelIdCodeMap.set(channel.id, channel.code);\n }\n }\n\n this.selectedRolePermissions = {} as any;\n for (const channelId of Array.from(channelIdPermissionsMap.keys())) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const permissionSet = channelIdPermissionsMap.get(channelId)!;\n const permissionsHash: { [K in Permission]: boolean } = {} as any;\n for (const def of this.serverConfigService.getPermissionDefinitions()) {\n permissionsHash[def.name] = permissionSet.has(def.name as Permission);\n }\n this.selectedRolePermissions[channelId] = {\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n channelId,\n channelCode: channelIdCodeMap.get(channelId)!,\n permissions: permissionsHash,\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n };\n }\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"administrator-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"'UpdateAdministrator'\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"administrator-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n [label]=\"'settings.email-address-or-identifier' | translate\"\n for=\"emailAddress\"\n class=\"form-grid-span\"\n >\n <input\n id=\"emailAddress\"\n type=\"text\"\n formControlName=\"emailAddress\"\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\n <input\n id=\"firstName\"\n type=\"text\"\n formControlName=\"firstName\"\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\n <input\n id=\"lastName\"\n type=\"text\"\n formControlName=\"lastName\"\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field\n *ngIf=\"isNew$ | async\"\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n <vdr-form-field\n *ngIf=\"\n !(isNew$ | async) &&\n (['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\n \"\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n [readOnlyToggle]=\"true\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Administrator\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"administrator-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n <vdr-page-block>\n <vdr-card [title]=\"'settings.roles' | translate\">\n <ng-select\n [items]=\"allRoles$ | async\"\n [multiple]=\"true\"\n [hideSelected]=\"true\"\n formControlName=\"roles\"\n (change)=\"rolesChanged($event)\"\n bindLabel=\"description\"\n ></ng-select>\n\n <ul class=\"nav mt-2\" role=\"tablist\">\n <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\n <button\n [id]=\"channel.channelId\"\n (click)=\"selectedChannelId = channel.channelId\"\n class=\"btn btn-link nav-link\"\n [class.active]=\"selectedChannelId === channel.channelId\"\n [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\n type=\"button\"\n >\n {{ channel.channelCode | channelCodeToLabel | translate }}\n </button>\n </li>\n </ul>\n <vdr-permission-grid\n [activePermissions]=\"getPermissionsForSelectedChannel()\"\n [permissionDefinitions]=\"permissionDefinitions\"\n [readonly]=\"true\"\n ></vdr-permission-grid>\n </vdr-card>\n </vdr-page-block>\n</form>\n","import {\n createBulkDeleteAction,\n GetAdministratorListQuery,\n ItemOf,\n Permission,\n} from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteAdministratorsBulkAction = createBulkDeleteAction<\n ItemOf<GetAdministratorListQuery, 'administrators'>\n>({\n location: 'administrator-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\n getItemName: item => item.firstName + ' ' + item.lastName,\n bulkDelete: (dataService, ids) =>\n dataService.administrator.deleteAdministrators(ids).pipe(map(res => res.deleteAdministrators)),\n});\n","import { Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n ADMINISTRATOR_FRAGMENT,\n GetAdministratorListDocument,\n LogicalOperator,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_ADMINISTRATOR_LIST = gql`\n query GetAdministratorList($options: AdministratorListOptions) {\n administrators(options: $options) {\n items {\n ...AdministratorListItem\n }\n totalItems\n }\n }\n fragment AdministratorListItem on Administrator {\n id\n createdAt\n updatedAt\n firstName\n lastName\n emailAddress\n user {\n id\n identifier\n lastLogin\n roles {\n id\n createdAt\n updatedAt\n code\n description\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-administrator-list',\n templateUrl: './administrator-list.component.html',\n styleUrls: ['./administrator-list.component.scss'],\n standalone: false\n})\nexport class AdministratorListComponent extends TypedBaseListComponent<\n typeof GetAdministratorListDocument,\n 'administrators'\n> {\n dataTableListId = 'administrator-list';\n readonly customFields = this.getCustomFieldConfig('Administrator');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'firstName',\n type: { kind: 'text' },\n label: _('settings.first-name'),\n filterField: 'firstName',\n })\n .addFilter({\n name: 'lastName',\n type: { kind: 'text' },\n label: _('settings.last-name'),\n filterField: 'lastName',\n })\n .addFilter({\n name: 'emailAddress',\n type: { kind: 'text' },\n label: _('settings.email-address'),\n filterField: 'emailAddress',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'lastName' })\n .addSort({ name: 'emailAddress' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetAdministratorListDocument,\n getItems: data => data.administrators,\n setVariables: (skip, take) => this.createSearchQuery(skip, take, this.searchTermControl.value),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n createSearchQuery(skip: number, take: number, searchTerm: string | null) {\n let _filter = {};\n let filterOperator: LogicalOperator = LogicalOperator.AND;\n\n if (searchTerm) {\n _filter = {\n emailAddress: {\n contains: searchTerm,\n },\n firstName: {\n contains: searchTerm,\n },\n lastName: {\n contains: searchTerm,\n },\n };\n filterOperator = LogicalOperator.OR;\n }\n return {\n options: {\n skip,\n take,\n filter: {\n ...(_filter ?? {}),\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n filterOperator,\n },\n };\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"administrator-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateAdministrator']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'admin.create-new-administrator' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"administrator-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"administrator-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-administrator=\"item\">\n {{ administrator.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-administrator=\"item\">\n {{ administrator.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-administrator=\"item\">\n {{ administrator.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\n <ng-template let-administrator=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', administrator.id]\"\n ><span>{{ administrator.firstName }} {{ administrator.lastName }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\n <ng-template let-administrator=\"item\">\n {{ administrator.emailAddress }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.roles' | translate\" id=\"roles\">\n <ng-template let-administrator=\"item\">\n <vdr-chip *ngFor=\"let role of administrator.user.roles\">{{ role.description }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CHANNEL_FRAGMENT,\n ChannelFragment,\n CreateChannelInput,\n CurrencyCode,\n DataService,\n GetChannelDetailDocument,\n getCustomFieldsDefaults,\n GetSellersQuery,\n LanguageCode,\n NotificationService,\n Permission,\n ServerConfigService,\n TypedBaseDetailComponent,\n UpdateChannelInput,\n} from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map, mergeMap, take, takeUntil } from 'rxjs/operators';\n\nexport const GET_CHANNEL_DETAIL = gql`\n query GetChannelDetail($id: ID!) {\n channel(id: $id) {\n ...Channel\n }\n }\n ${CHANNEL_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-channel-detail',\n templateUrl: './channel-detail.component.html',\n styleUrls: ['./channel-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ChannelDetailComponent\n extends TypedBaseDetailComponent<typeof GetChannelDetailDocument, 'channel'>\n implements OnInit, OnDestroy\n{\n DEFAULT_CHANNEL_CODE = DEFAULT_CHANNEL_CODE;\n customFields = this.getCustomFieldConfig('Channel');\n // zones$: Observable<Array<ItemOf<GetZoneListQuery, 'zones'>>>;\n sellers$: Observable<GetSellersQuery['sellers']['items']>;\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n token: ['', Validators.required],\n pricesIncludeTax: [false],\n availableLanguageCodes: [[] as string[]],\n availableCurrencyCodes: [[] as string[]],\n defaultCurrencyCode: ['' as CurrencyCode, Validators.required],\n defaultShippingZoneId: ['', Validators.required],\n defaultLanguageCode: [undefined as LanguageCode | undefined, Validators.required],\n defaultTaxZoneId: ['', Validators.required],\n sellerId: ['', Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n\n availableLanguageCodes$: Observable<LanguageCode[]>;\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateChannel, Permission.CreateChannel];\n\n constructor(\n protected serverConfigService: ServerConfigService,\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n // TODO: make this lazy-loaded autocomplete\n this.sellers$ = this.dataService.settings.getSellerList().mapSingle(data => data.sellers.items);\n this.availableLanguageCodes$ = this.serverConfigService.getAvailableLanguages();\n this.detailForm.controls.availableCurrencyCodes.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n if (value) {\n const defaultCurrencyCode = this.detailForm.controls.defaultCurrencyCode.value;\n if (defaultCurrencyCode && !value.includes(defaultCurrencyCode)) {\n this.detailForm.controls.defaultCurrencyCode.setValue(value[0] as CurrencyCode);\n }\n }\n });\n this.detailForm.controls.availableLanguageCodes.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n if (value) {\n const defaultLanguageCode = this.detailForm.controls.defaultLanguageCode.value;\n if (defaultLanguageCode && !value.includes(defaultLanguageCode)) {\n this.detailForm.controls.defaultLanguageCode.setValue(value[0] as LanguageCode);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const {\n code,\n token,\n defaultLanguageCode,\n pricesIncludeTax,\n defaultCurrencyCode,\n defaultShippingZoneId,\n defaultTaxZoneId,\n customFields,\n sellerId,\n } = this.detailForm.value;\n if (\n !code ||\n !token ||\n !defaultLanguageCode ||\n !defaultCurrencyCode ||\n !defaultShippingZoneId ||\n !defaultTaxZoneId\n ) {\n return;\n }\n const input: CreateChannelInput = {\n code,\n token,\n defaultLanguageCode,\n pricesIncludeTax: !!pricesIncludeTax,\n defaultCurrencyCode,\n defaultShippingZoneId,\n defaultTaxZoneId,\n customFields,\n sellerId,\n };\n this.dataService.settings\n .createChannel(input)\n .pipe(\n mergeMap(({ createChannel }) =>\n this.dataService.auth.currentUser().single$.pipe(\n map(({ me }) => ({\n me,\n createChannel,\n })),\n ),\n ),\n mergeMap(({ me, createChannel }) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.dataService.client.updateUserChannels(me!.channels).pipe(map(() => createChannel)),\n ),\n )\n .subscribe(data => {\n switch (data.__typename) {\n case 'Channel':\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Channel',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.id], { relativeTo: this.route });\n break;\n case 'LanguageNotAvailableError':\n this.notificationService.error(data.message);\n break;\n }\n });\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(channel => {\n const input = {\n id: channel.id,\n code: formValue.code,\n token: formValue.token,\n pricesIncludeTax: formValue.pricesIncludeTax,\n availableLanguageCodes: formValue.availableLanguageCodes,\n availableCurrencyCodes: formValue.availableCurrencyCodes,\n defaultCurrencyCode: formValue.defaultCurrencyCode,\n defaultShippingZoneId: formValue.defaultShippingZoneId,\n defaultLanguageCode: formValue.defaultLanguageCode,\n defaultTaxZoneId: formValue.defaultTaxZoneId,\n customFields: formValue.customFields,\n sellerId: formValue.sellerId,\n } as UpdateChannelInput;\n return this.dataService.settings.updateChannel(input);\n }),\n )\n .subscribe(({ updateChannel }) => {\n switch (updateChannel.__typename) {\n case 'Channel':\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Channel',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n break;\n case 'LanguageNotAvailableError':\n this.notificationService.error(updateChannel.message);\n }\n });\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: ChannelFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n code: entity.code,\n token: entity.token || this.generateToken(),\n pricesIncludeTax: entity.pricesIncludeTax,\n availableLanguageCodes: entity.availableLanguageCodes,\n availableCurrencyCodes: entity.availableCurrencyCodes,\n defaultCurrencyCode: entity.defaultCurrencyCode,\n defaultShippingZoneId: entity.defaultShippingZone?.id ?? '',\n defaultLanguageCode: entity.defaultLanguageCode,\n defaultTaxZoneId: entity.defaultTaxZone?.id ?? '',\n sellerId: entity.seller?.id ?? '',\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n }\n if (entity.code === DEFAULT_CHANNEL_CODE) {\n const codeControl = this.detailForm.get('code');\n if (codeControl) {\n codeControl.disable();\n }\n }\n }\n\n private generateToken(): string {\n return Array.from(crypto.getRandomValues(new Uint8Array(10)))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"channel-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"channel-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n class=\"form-grid-span\"\n *ngIf=\"entity?.code !== DEFAULT_CHANNEL_CODE\"\n [label]=\"'common.code' | translate\"\n for=\"code\"\n >\n <input\n id=\"code\"\n type=\"text\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n formControlName=\"code\"\n />\n </vdr-form-field>\n <vdr-form-item\n class=\"form-grid-span\"\n *ngIf=\"entity?.code === DEFAULT_CHANNEL_CODE\"\n [label]=\"'common.code' | translate\"\n >\n {{ entity?.code | channelCodeToLabel | translate }}\n </vdr-form-item>\n <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\n <input\n id=\"token\"\n type=\"text\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n formControlName=\"token\"\n />\n </vdr-form-field>\n\n <vdr-form-field [label]=\"'common.seller' | translate\" for=\"sellerId\">\n <select\n name=\"sellerId\"\n formControlName=\"sellerId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option selected value style=\"display: none\"></option>\n <option *ngFor=\"let seller of sellers$ | async\" [value]=\"seller.id\">\n {{ seller.name }}\n </option>\n </select>\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.available-languages' | translate\"\n for=\"availableLanguageCodes\"\n >\n <vdr-language-code-selector\n formControlName=\"availableLanguageCodes\"\n [languageCodes]=\"availableLanguageCodes$ | async\"\n ></vdr-language-code-selector>\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.available-currencies' | translate\"\n for=\"availableCurrencyCodes\"\n >\n <vdr-currency-code-selector\n formControlName=\"availableCurrencyCodes\"\n ></vdr-currency-code-selector>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.defaults' | translate\">\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\n <select\n name=\"defaultLanguageCode\"\n formControlName=\"defaultLanguageCode\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option\n *ngFor=\"let languageCode of detailForm.value.availableLanguageCodes\"\n [value]=\"languageCode\"\n >\n {{ languageCode | localeLanguageName }} ({{ languageCode | uppercase }})\n </option>\n </select>\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.default-currency' | translate\" for=\"defaultCurrency\">\n <select\n name=\"defaultCurrencyCode\"\n formControlName=\"defaultCurrencyCode\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option\n *ngFor=\"let code of detailForm.value.availableCurrencyCodes\"\n [value]=\"code\"\n >\n {{ code | localeCurrencyName }}\n </option>\n </select>\n </vdr-form-field>\n <div>\n <vdr-form-field\n [label]=\"'settings.default-tax-zone' | translate\"\n for=\"defaultTaxZoneId\"\n >\n <vdr-zone-selector\n formControlName=\"defaultTaxZoneId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n ></vdr-zone-selector>\n </vdr-form-field>\n <clr-alert\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\n clrAlertType=\"danger\"\n [clrAlertClosable]=\"false\"\n >\n <clr-alert-item>\n <span class=\"alert-text\">\n {{ 'error.no-default-tax-zone-set' | translate }}\n </span>\n </clr-alert-item>\n </clr-alert>\n </div>\n\n <div>\n <vdr-form-field\n [label]=\"'settings.default-shipping-zone' | translate\"\n for=\"defaultShippingZoneId\"\n >\n <vdr-zone-selector\n name=\"defaultShippingZoneId\"\n formControlName=\"defaultShippingZoneId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n ></vdr-zone-selector>\n </vdr-form-field>\n <clr-alert\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\n clrAlertType=\"danger\"\n [clrAlertClosable]=\"false\"\n >\n <clr-alert-item>\n <span class=\"alert-text\">\n {{ 'error.no-default-shipping-zone-set' | translate }}\n </span>\n </clr-alert-item>\n </clr-alert>\n </div>\n <vdr-form-field\n [label]=\"'settings.prices-include-tax' | translate\"\n for=\"pricesIncludeTax\"\n >\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"pricesIncludeTax\"\n formControlName=\"pricesIncludeTax\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Channel\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"channel-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetChannelsQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map, mergeMap } from 'rxjs/operators';\n\nexport const deleteChannelsBulkAction = createBulkDeleteAction<ItemOf<GetChannelsQuery, 'channels'>>({\n location: 'channel-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.SuperAdmin) || userPermissions.includes(Permission.DeleteChannel),\n getItemName: item => item.code,\n bulkDelete: (dataService, ids) => {\n return dataService.settings.deleteChannels(ids).pipe(\n mergeMap(({ deleteChannels }) =>\n dataService.auth.currentUser().single$.pipe(\n map(({ me }) => ({\n me,\n deleteChannels,\n })),\n ),\n ),\n mergeMap(({ me, deleteChannels }) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dataService.client.updateUserChannels(me!.channels).pipe(map(() => deleteChannels)),\n ),\n );\n },\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { CHANNEL_FRAGMENT, GetChannelListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\nimport { gql } from 'apollo-angular';\n\nexport const GET_CHANNEL_LIST = gql`\n query GetChannelList($options: ChannelListOptions) {\n channels(options: $options) {\n items {\n ...Channel\n }\n totalItems\n }\n }\n ${CHANNEL_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-channel-list',\n templateUrl: './channel-list.component.html',\n styleUrls: ['./channel-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ChannelListComponent\n extends TypedBaseListComponent<typeof GetChannelListDocument, 'channels'>\n implements OnInit\n{\n dataTableListId = 'channel-list';\n readonly customFields = this.getCustomFieldConfig('Channel');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'token',\n type: { kind: 'text' },\n label: _('settings.channel-token'),\n filterField: 'token',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'code' })\n .addSort({ name: 'token' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetChannelListDocument,\n getItems: data => data.channels,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n code: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n isDefaultChannel(channelCode: string): boolean {\n return channelCode === DEFAULT_CHANNEL_CODE;\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"channel-list\" />\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateChannel']\" [routerLink]=\"['./', 'create']\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-channel' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"channel-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"channel-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-channel=\"item\">\n {{ channel.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-channel=\"item\">\n {{ channel.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-channel=\"item\">\n {{ channel.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\" [sort]=\"sorts.get('code')\">\n <ng-template let-channel=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', channel.id]\"\n ><span>{{ channel.code | channelCodeToLabel | translate }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.channel-token' | translate\" id=\"channel-token\" [sort]=\"sorts.get('token')\">\n <ng-template let-channel=\"item\">\n {{ channel.token }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n COUNTRY_FRAGMENT,\n CountryFragment,\n createUpdatedTranslatable,\n DataService,\n findTranslation,\n GetCountryDetailDocument,\n getCustomFieldsDefaults,\n LanguageCode,\n NotificationService,\n Permission,\n TypedBaseDetailComponent,\n UpdateCountryInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { combineLatest } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_COUNTRY_DETAIL = gql`\n query GetCountryDetail($id: ID!) {\n country(id: $id) {\n ...Country\n }\n }\n ${COUNTRY_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-country-detail',\n templateUrl: './country-detail.component.html',\n styleUrls: ['./country-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class CountryDetailComponent\n extends TypedBaseDetailComponent<typeof GetCountryDetailDocument, 'country'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Region');\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n name: ['', Validators.required],\n enabled: [true],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateCountry];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n\n const formValue = this.detailForm.value;\n const input = createUpdatedTranslatable({\n translatable: {\n id: '',\n createdAt: '',\n updatedAt: '',\n code: '',\n name: '',\n enabled: false,\n translations: [],\n } as CountryFragment,\n updatedFields: formValue,\n languageCode: this.languageCode,\n customFieldConfig: this.customFields,\n defaultTranslation: {\n name: formValue.name ?? '',\n languageCode: this.languageCode,\n },\n });\n this.dataService.settings.createCountry(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Country',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createCountry.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Country',\n });\n },\n );\n }\n\n save() {\n combineLatest(this.entity$, this.languageCode$)\n .pipe(\n take(1),\n mergeMap(([country, languageCode]) => {\n const formValue = this.detailForm.value;\n const input: UpdateCountryInput = createUpdatedTranslatable({\n translatable: country,\n updatedFields: formValue,\n customFieldConfig: this.customFields,\n languageCode,\n defaultTranslation: {\n name: formValue.name ?? '',\n languageCode,\n },\n });\n return this.dataService.settings.updateCountry(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Country',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Country',\n });\n },\n );\n }\n\n protected setFormValues(country: CountryFragment, languageCode: LanguageCode): void {\n const currentTranslation = findTranslation(country, languageCode);\n\n this.detailForm.patchValue({\n code: country.code,\n name: currentTranslation ? currentTranslation.name : '',\n enabled: country.enabled,\n });\n\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get(['customFields']),\n country,\n currentTranslation,\n );\n }\n }\n}\n","<vdr-page-block\n ><vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"country-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"updatePermission\"\n (click)=\"save()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"country-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"enabled\"\n formControlName=\"enabled\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Region\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"country-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetCountryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteCountriesBulkAction = createBulkDeleteAction<ItemOf<GetCountryListQuery, 'countries'>>({\n location: 'country-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteCountry),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteCountries(ids).pipe(map(res => res.deleteCountries)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetCountryListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_COUNTRY_LIST = gql`\n query GetCountryList($options: CountryListOptions) {\n countries(options: $options) {\n items {\n ...CountryListItem\n }\n totalItems\n }\n }\n fragment CountryListItem on Country {\n id\n createdAt\n updatedAt\n code\n name\n type\n enabled\n }\n`;\n\n@Component({\n selector: 'vdr-country-list',\n templateUrl: './country-list.component.html',\n styleUrls: ['./country-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class CountryListComponent extends TypedBaseListComponent<typeof GetCountryListDocument, 'countries'> {\n dataTableListId = 'country-list';\n readonly customFields = this.getCustomFieldConfig('Region');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'enabled',\n type: { kind: 'boolean' },\n label: _('common.enabled'),\n filterField: 'enabled',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('name', 'ASC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'code' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetCountryListDocument,\n getItems: data => data.countries,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"country-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-country' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"country-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"country-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-country=\"item\">\n {{ country.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-country=\"item\">\n {{ country.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\"\n id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-country=\"item\">\n {{ country.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\"\n id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-country=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', country.id]\"\n ><span>{{ country.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-country=\"item\">\n {{ country.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-country=\"item\">\n <vdr-chip *ngIf=\"country.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!country.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n getCustomFieldsDefaults,\n GetGlobalSettingsDetailDocument,\n GlobalSettings,\n LanguageCode,\n NotificationService,\n Permission,\n TypedBaseDetailComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nexport const GET_GLOBAL_SETTINGS_DETAIL = gql`\n query GetGlobalSettingsDetail {\n globalSettings {\n ...GlobalSettingsDetail\n }\n }\n fragment GlobalSettingsDetail on GlobalSettings {\n id\n createdAt\n updatedAt\n availableLanguages\n trackInventory\n outOfStockThreshold\n }\n`;\n\n@Component({\n selector: 'vdr-global-settings',\n templateUrl: './global-settings.component.html',\n styleUrls: ['./global-settings.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class GlobalSettingsComponent\n extends TypedBaseDetailComponent<typeof GetGlobalSettingsDetailDocument, 'globalSettings'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('GlobalSettings');\n detailForm = this.formBuilder.group({\n availableLanguages: [[] as LanguageCode[]],\n trackInventory: false,\n outOfStockThreshold: [0, Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n languageCodes = Object.values(LanguageCode);\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateGlobalSettings];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.init();\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\n if (!userStatus.permissions.includes(Permission.UpdateSettings)) {\n const languagesSelect = this.detailForm.get('availableLanguages');\n if (languagesSelect) {\n languagesSelect.disable();\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n\n this.dataService.settings\n .updateGlobalSettings(this.detailForm.value)\n .pipe(\n tap(({ updateGlobalSettings }) => {\n switch (updateGlobalSettings.__typename) {\n case 'GlobalSettings':\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Settings',\n });\n break;\n case 'ChannelDefaultLanguageError':\n this.notificationService.error(updateGlobalSettings.message);\n }\n }),\n switchMap(() => this.serverConfigService.refreshGlobalSettings()),\n withLatestFrom(this.dataService.client.uiState().single$),\n )\n .subscribe(([{ globalSettings }, { uiState }]) => {\n const availableLangs = globalSettings.availableLanguages;\n if (availableLangs.length && !availableLangs.includes(uiState.contentLanguage)) {\n this.dataService.client.setContentLanguage(availableLangs[0]).subscribe();\n }\n });\n }\n\n protected setFormValues(entity: GlobalSettings, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n availableLanguages: entity.availableLanguages,\n trackInventory: entity.trackInventory,\n outOfStockThreshold: entity.outOfStockThreshold,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"global-setting-detail\" />\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"updatePermission\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n <vdr-action-bar-dropdown-menu locationId=\"global-setting-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n [label]=\"'common.available-languages' | translate\"\n for=\"availableLanguages\"\n [tooltip]=\"'settings.global-available-languages-tooltip' | translate\"\n >\n <vdr-language-code-selector\n formControlName=\"availableLanguages\"\n [languageCodes]=\"languageCodes\"\n ></vdr-language-code-selector>\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\n for=\"outOfStockThreshold\"\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\n >\n <input\n id=\"outOfStockThreshold\"\n type=\"number\"\n formControlName=\"outOfStockThreshold\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'settings.track-inventory-default' | translate\"\n for=\"enabled\"\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\n >\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n name=\"enabled\"\n formControlName=\"trackInventory\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"GlobalSettings\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"global-settings-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n configurableDefinitionToInstance,\n ConfigurableOperation,\n ConfigurableOperationDefinition,\n CreatePaymentMethodInput,\n createUpdatedTranslatable,\n DataService,\n findTranslation,\n getConfigArgValue,\n getCustomFieldsDefaults,\n GetPaymentMethodDetailDocument,\n GetPaymentMethodDetailQuery,\n LanguageCode,\n NotificationService,\n PAYMENT_METHOD_FRAGMENT,\n PaymentMethodFragment,\n Permission,\n toConfigurableOperationInput,\n TypedBaseDetailComponent,\n UpdatePaymentMethodInput,\n} from '@vendure/admin-ui/core';\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\nimport { gql } from 'apollo-angular';\nimport { combineLatest } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_PAYMENT_METHOD_DETAIL = gql`\n query GetPaymentMethodDetail($id: ID!) {\n paymentMethod(id: $id) {\n ...PaymentMethod\n }\n }\n ${PAYMENT_METHOD_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-payment-method-detail',\n templateUrl: './payment-method-detail.component.html',\n styleUrls: ['./payment-method-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PaymentMethodDetailComponent\n extends TypedBaseDetailComponent<typeof GetPaymentMethodDetailDocument, 'paymentMethod'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('PaymentMethod');\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n name: ['', Validators.required],\n description: '',\n enabled: [true, Validators.required],\n checker: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['checker'],\n handler: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['handler'],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n checkers: ConfigurableOperationDefinition[] = [];\n handlers: ConfigurableOperationDefinition[] = [];\n selectedChecker?: ConfigurableOperation | null;\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\n selectedHandler?: ConfigurableOperation | null;\n selectedHandlerDefinition?: ConfigurableOperationDefinition;\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdatePaymentMethod];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.dataService.settings.getPaymentMethodOperations().single$.subscribe(data => {\n this.checkers = data.paymentMethodEligibilityCheckers;\n this.handlers = data.paymentMethodHandlers;\n this.changeDetector.markForCheck();\n this.selectedCheckerDefinition = data.paymentMethodEligibilityCheckers.find(\n c => c.code === this.entity?.checker?.code,\n );\n this.selectedHandlerDefinition = data.paymentMethodHandlers.find(\n c => c.code === this.entity?.handler?.code,\n );\n });\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n updateCode(currentCode: string | undefined, nameValue: string) {\n if (!currentCode) {\n const codeControl = this.detailForm.get('code');\n if (codeControl && codeControl.pristine) {\n codeControl.setValue(normalizeString(nameValue, '-'));\n }\n }\n }\n\n selectChecker(checker: ConfigurableOperationDefinition) {\n this.selectedCheckerDefinition = checker;\n this.selectedChecker = configurableDefinitionToInstance(checker);\n const formControl = this.detailForm.get('checker');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedChecker);\n }\n this.detailForm.markAsDirty();\n }\n\n selectHandler(handler: ConfigurableOperationDefinition) {\n this.selectedHandlerDefinition = handler;\n this.selectedHandler = configurableDefinitionToInstance(handler);\n const formControl = this.detailForm.get('handler');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedHandler);\n }\n this.detailForm.markAsDirty();\n }\n\n removeChecker() {\n this.selectedChecker = null;\n this.detailForm.markAsDirty();\n }\n\n removeHandler() {\n this.selectedHandler = null;\n this.detailForm.markAsDirty();\n }\n\n create() {\n const selectedChecker = this.selectedChecker;\n const selectedHandler = this.selectedHandler;\n if (!selectedHandler) {\n return;\n }\n const input = this.getUpdatedPaymentMethod(\n {\n id: '',\n createdAt: '',\n updatedAt: '',\n name: '',\n code: '',\n description: '',\n enabled: true,\n checker: undefined as any,\n handler: undefined as any,\n translations: [],\n },\n this.detailForm,\n this.languageCode,\n selectedHandler,\n selectedChecker,\n ) as CreatePaymentMethodInput;\n this.dataService.settings.createPaymentMethod(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'PaymentMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createPaymentMethod.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'PaymentMethod',\n });\n },\n );\n }\n\n save() {\n const selectedChecker = this.selectedChecker;\n const selectedHandler = this.selectedHandler;\n if (!selectedHandler) {\n return;\n }\n combineLatest(this.entity$, this.languageCode$)\n .pipe(\n take(1),\n mergeMap(([paymentMethod, languageCode]) => {\n const input = this.getUpdatedPaymentMethod(\n paymentMethod,\n this.detailForm,\n languageCode,\n selectedHandler,\n selectedChecker,\n ) as UpdatePaymentMethodInput;\n return this.dataService.settings.updatePaymentMethod(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'PaymentMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'PaymentMethod',\n });\n },\n );\n }\n\n /**\n * Given a PaymentMethod and the value of the detailForm, this method creates an updated copy of it which\n * can then be persisted to the API.\n */\n private getUpdatedPaymentMethod(\n paymentMethod: PaymentMethodFragment,\n formGroup: UntypedFormGroup,\n languageCode: LanguageCode,\n selectedHandler: ConfigurableOperation,\n selectedChecker?: ConfigurableOperation | null,\n ): UpdatePaymentMethodInput | CreatePaymentMethodInput {\n const input = createUpdatedTranslatable({\n translatable: paymentMethod,\n updatedFields: formGroup.value,\n customFieldConfig: this.customFields,\n languageCode,\n defaultTranslation: {\n languageCode,\n name: paymentMethod.name || '',\n description: paymentMethod.description || '',\n },\n });\n return {\n ...input,\n checker: selectedChecker\n ? toConfigurableOperationInput(selectedChecker, formGroup.value.checker)\n : null,\n handler: toConfigurableOperationInput(selectedHandler, formGroup.value.handler),\n };\n }\n\n protected setFormValues(\n paymentMethod: NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>,\n languageCode: LanguageCode,\n ): void {\n const currentTranslation = findTranslation(paymentMethod, languageCode);\n this.detailForm.patchValue({\n name: currentTranslation?.name,\n code: paymentMethod.code,\n description: currentTranslation?.description,\n enabled: paymentMethod.enabled,\n checker: paymentMethod.checker || ({} as any),\n handler: paymentMethod.handler || ({} as any),\n });\n if (!this.selectedChecker) {\n this.selectedChecker = paymentMethod.checker && {\n code: paymentMethod.checker.code,\n args: paymentMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (!this.selectedHandler) {\n this.selectedHandler = paymentMethod.handler && {\n code: paymentMethod.handler.code,\n args: paymentMethod.handler.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get('customFields'),\n paymentMethod,\n currentTranslation,\n );\n }\n }\n}\n","<vdr-page-block\n ><vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"payment-method-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\n (click)=\"create()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n *vdrIfPermissions=\"updatePermission\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"enabled\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n formControlName=\"enabled\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (input)=\"updateCode(entity?.code, $event.target.value)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.code' | translate\"\n for=\"code\"\n [readOnlyToggle]=\"updatePermission | hasPermission\"\n >\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-rich-text-editor\n class=\"form-grid-span\"\n formControlName=\"description\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n [label]=\"'common.description' | translate\"\n ></vdr-rich-text-editor>\n </div>\n </vdr-card>\n\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"PaymentMethod\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"payment-method-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n\n <vdr-card [title]=\"'settings.payment-eligibility-checker' | translate\">\n <vdr-configurable-input\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\n [operation]=\"selectedChecker\"\n [operationDefinition]=\"selectedCheckerDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"removeChecker()\"\n formControlName=\"checker\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let checker of checkers\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectChecker(checker)\"\n >\n {{ checker.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.payment-handler' | translate\">\n <vdr-configurable-input\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\n [operation]=\"selectedHandler\"\n [operationDefinition]=\"selectedHandlerDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"removeHandler()\"\n formControlName=\"handler\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let handler of handlers\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectHandler(handler)\"\n >\n {{ handler.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import {\n createBulkAssignToChannelAction,\n AssignPaymentMethodsToChannelDocument,\n RemovePaymentMethodsFromChannelDocument,\n createBulkDeleteAction,\n createBulkRemoveFromChannelAction,\n GetPaymentMethodListQuery,\n ItemOf,\n Permission,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { map } from 'rxjs/operators';\n\nexport const deletePaymentMethodsBulkAction = createBulkDeleteAction<\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\n>({\n location: 'payment-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeletePaymentMethod) ||\n userPermissions.includes(Permission.DeleteSettings),\n getItemName: item => item.name,\n shouldRetryItem: (response, item) => !!response.message,\n bulkDelete: (dataService, ids, retrying) =>\n dataService.settings.deletePaymentMethods(ids, retrying).pipe(map(res => res.deletePaymentMethods)),\n});\n\nconst ASSIGN_PAYMENT_METHODS_TO_CHANNEL = gql`\n mutation AssignPaymentMethodsToChannel($input: AssignPaymentMethodsToChannelInput!) {\n assignPaymentMethodsToChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nconst REMOVE_PAYMENT_METHODS_FROM_CHANNEL = gql`\n mutation RemovePaymentMethodsFromChannel($input: RemovePaymentMethodsFromChannelInput!) {\n removePaymentMethodsFromChannel(input: $input) {\n id\n name\n }\n }\n`;\nexport const assignPaymentMethodsToChannelBulkAction = createBulkAssignToChannelAction<\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\n>({\n location: 'payment-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.UpdatePaymentMethod) ||\n userPermissions.includes(Permission.UpdateSettings),\n getItemName: item => item.name,\n bulkAssignToChannel: (dataService, paymentMethodIds, channelIds) =>\n channelIds.map(channelId =>\n dataService\n .mutate(AssignPaymentMethodsToChannelDocument, {\n input: {\n channelId,\n paymentMethodIds,\n },\n })\n .pipe(map(res => res.assignPaymentMethodsToChannel)),\n ),\n});\n\nexport const removePaymentMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\n>({\n location: 'payment-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeletePaymentMethod) ||\n userPermissions.includes(Permission.DeleteSettings),\n getItemName: item => item.name,\n bulkRemoveFromChannel: (dataService, paymentMethodIds, channelId) =>\n dataService\n .mutate(RemovePaymentMethodsFromChannelDocument, {\n input: {\n channelId,\n paymentMethodIds,\n },\n })\n .pipe(map(res => res.removePaymentMethodsFromChannel)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetPaymentMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_PAYMENT_METHOD_LIST = gql`\n query GetPaymentMethodList($options: PaymentMethodListOptions!) {\n paymentMethods(options: $options) {\n items {\n ...PaymentMethodListItem\n }\n totalItems\n }\n }\n fragment PaymentMethodListItem on PaymentMethod {\n id\n createdAt\n updatedAt\n name\n description\n code\n enabled\n }\n`;\n\n@Component({\n selector: 'vdr-payment-method-list',\n templateUrl: './payment-method-list.component.html',\n styleUrls: ['./payment-method-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PaymentMethodListComponent extends TypedBaseListComponent<\n typeof GetPaymentMethodListDocument,\n 'paymentMethods'\n> {\n dataTableListId = 'payment-method-list';\n readonly customFields = this.getCustomFieldConfig('PaymentMethod');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'enabled',\n type: { kind: 'boolean' },\n label: _('common.enabled'),\n filterField: 'enabled',\n })\n .addFilter({\n name: 'description',\n type: { kind: 'text' },\n label: _('common.description'),\n filterField: 'description',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'id' })\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'code' })\n .addSort({ name: 'description' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetPaymentMethodListDocument,\n getItems: data => data.paymentMethods,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"payment-method-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreatePaymentMethod']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-payment-method' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"payment-method-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column\n [heading]=\"'common.id' | translate\"\n id=\"id\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('id')\"\n >\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\"\n id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\"\n id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-paymentMethod=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', paymentMethod.id]\"\n ><span>{{ paymentMethod.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-paymentMethod=\"item\">\n <vdr-chip *ngIf=\"paymentMethod.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!paymentMethod.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n Administrator,\n DataService,\n getCustomFieldsDefaults,\n GetProfileDetailDocument,\n LanguageCode,\n NotificationService,\n TypedBaseDetailComponent,\n UpdateActiveAdministratorInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_PROFILE_DETAIL = gql`\n query GetProfileDetail {\n activeAdministrator {\n ...ProfileDetail\n }\n }\n fragment ProfileDetail on Administrator {\n id\n createdAt\n updatedAt\n firstName\n lastName\n emailAddress\n user {\n id\n lastLogin\n verified\n }\n }\n`;\n\n@Component({\n selector: 'vdr-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ProfileComponent\n extends TypedBaseDetailComponent<typeof GetProfileDetailDocument, 'activeAdministrator'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Administrator');\n detailForm = this.formBuilder.group({\n emailAddress: ['', Validators.required],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n password: [''],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n save() {\n this.entity$\n .pipe(\n take(1),\n mergeMap(({ id }) => {\n const formValue = this.detailForm.value;\n const administrator: UpdateActiveAdministratorInput = {\n emailAddress: formValue.emailAddress,\n firstName: formValue.firstName,\n lastName: formValue.lastName,\n password: formValue.password,\n customFields: formValue.customFields,\n };\n return this.dataService.administrator.updateActiveAdministrator(administrator);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Administrator',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Administrator',\n });\n },\n );\n }\n\n protected setFormValues(administrator: Administrator, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n emailAddress: administrator.emailAddress,\n firstName: administrator.firstName,\n lastName: administrator.lastName,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get('customFields'),\n administrator,\n );\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"profile\"></vdr-action-bar-items>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\n </vdr-form-field>\n <vdr-form-field\n *ngIf=\"isNew$ | async\"\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n [readOnlyToggle]=\"true\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Administrator\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"administrator-profile\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateRoleInput,\n DataService,\n GetRoleDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n Role,\n ROLE_FRAGMENT,\n TypedBaseDetailComponent,\n UpdateRoleInput,\n} from '@vendure/admin-ui/core';\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\nimport { unique } from '@vendure/common/lib/unique';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_ROLE_DETAIL = gql`\n query GetRoleDetail($id: ID!) {\n role(id: $id) {\n ...Role\n }\n }\n ${ROLE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-role-detail',\n templateUrl: './role-detail.component.html',\n styleUrls: ['./role-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class RoleDetailComponent\n extends TypedBaseDetailComponent<typeof GetRoleDetailDocument, 'role'>\n implements OnInit, OnDestroy\n{\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n description: ['', Validators.required],\n channelIds: [[] as string[]],\n permissions: [[] as Permission[]],\n });\n permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n updateCode(nameValue: string) {\n const codeControl = this.detailForm.get(['code']);\n if (codeControl && codeControl.pristine) {\n codeControl.setValue(normalizeString(nameValue, '-'));\n }\n }\n\n setPermission(change: { permission: string; value: boolean }) {\n const permissionsControl = this.detailForm.get('permissions');\n if (permissionsControl) {\n const currentPermissions = permissionsControl.value as string[];\n const newValue = (\n change.value === true\n ? unique([...currentPermissions, change.permission])\n : currentPermissions.filter(p => p !== change.permission)\n ) as Permission[];\n permissionsControl.setValue(newValue);\n permissionsControl.markAsDirty();\n }\n }\n\n create() {\n const { code, description, permissions, channelIds } = this.detailForm.value;\n if (!code || !description) {\n return;\n }\n const role: CreateRoleInput = {\n code,\n description,\n permissions: permissions ?? [],\n channelIds,\n };\n this.dataService.administrator.createRole(role).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), { entity: 'Role' });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createRole.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Role',\n });\n },\n );\n }\n\n save() {\n this.entity$\n .pipe(\n take(1),\n mergeMap(({ id }) => {\n const formValue = this.detailForm.value;\n const role: UpdateRoleInput = { id, ...formValue };\n return this.dataService.administrator.updateRole(role);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), { entity: 'Role' });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Role',\n });\n },\n );\n }\n\n protected setFormValues(role: Role, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n description: role.description,\n code: role.code,\n channelIds: role.channels.map(c => c.id),\n permissions: role.permissions,\n });\n // This was required to get the channel selector component to\n // correctly display its contents. A while spent debugging the root\n // cause did not yield a solution, therefore this next line.\n this.changeDetector.detectChanges();\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"role-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"'UpdateAdministrator'\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"role-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\">\n <input\n id=\"description\"\n type=\"text\"\n formControlName=\"description\"\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\n (input)=\"updateCode($event.target.value)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.code' | translate\"\n for=\"code\"\n [readOnlyToggle]=\"'UpdateAdministrator' | hasPermission\"\n >\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n <vdr-page-block class=\"mt-2\">\n <vdr-card [title]=\"'settings.permissions' | translate\">\n <vdr-form-field [label]=\"'settings.channel' | translate\">\n <vdr-channel-assignment-control\n formControlName=\"channelIds\"\n [vdrDisabled]=\"!('UpdateAdministrator' | hasPermission)\"\n ></vdr-channel-assignment-control>\n </vdr-form-field>\n <vdr-permission-grid\n class=\"mt-2\"\n [permissionDefinitions]=\"permissionDefinitions\"\n [activePermissions]=\"detailForm.get('permissions')?.value\"\n (permissionChange)=\"setPermission($event)\"\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\n ></vdr-permission-grid>\n </vdr-card>\n </vdr-page-block>\n</form>\n","import { createBulkDeleteAction, GetRolesQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteRolesBulkAction = createBulkDeleteAction<ItemOf<GetRolesQuery, 'roles'>>({\n location: 'role-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\n getItemName: item => item.description,\n bulkDelete: (dataService, ids) =>\n dataService.administrator.deleteRoles(ids).pipe(map(res => res.deleteRoles)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n GetRoleListDocument,\n GetRolesQuery,\n ItemOf,\n Role,\n ROLE_FRAGMENT,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { CUSTOMER_ROLE_CODE, SUPER_ADMIN_ROLE_CODE } from '@vendure/common/lib/shared-constants';\nimport { gql } from 'apollo-angular';\n\nexport const GET_ROLE_LIST = gql`\n query GetRoleList($options: RoleListOptions) {\n roles(options: $options) {\n items {\n ...Role\n }\n totalItems\n }\n }\n ${ROLE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-role-list',\n templateUrl: './role-list.component.html',\n styleUrls: ['./role-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class RoleListComponent\n extends TypedBaseListComponent<typeof GetRoleListDocument, 'roles'>\n implements OnInit\n{\n dataTableListId = 'role-list';\n readonly initialLimit = 3;\n displayLimit: { [id: string]: number } = {};\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'code' })\n .addSort({ name: 'description' })\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetRoleListDocument,\n getItems: data => data.roles,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n code: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n toggleDisplayLimit(role: ItemOf<GetRolesQuery, 'roles'>) {\n if (this.displayLimit[role.id] === role.permissions.length) {\n this.displayLimit[role.id] = this.initialLimit;\n } else {\n this.displayLimit[role.id] = role.permissions.length;\n }\n }\n\n isDefaultRole(role: Role): boolean {\n return role.code === SUPER_ADMIN_ROLE_CODE || role.code === CUSTOMER_ROLE_CODE;\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"role-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateAdministrator']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-role' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"role-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"role-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-role=\"item\">\n {{ role.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-role=\"item\">\n {{ role.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-role=\"item\">\n {{ role.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.description' | translate\" id=\"description\"\n [optional]=\"false\"\n [sort]=\"sorts.get('description')\"\n >\n <ng-template let-role=\"item\">\n <a\n *ngIf=\"!isDefaultRole(role); else defaultRole\"\n class=\"button-ghost\"\n [routerLink]=\"['./', role.id]\"\n ><span>{{ role.description }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n <ng-template #defaultRole>\n {{ role.description }}\n </ng-template>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-role=\"item\">\n <span *ngIf=\"!isDefaultRole(role)\">{{ role.code }}</span>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.channel' | translate\" id=\"channel\">\n <ng-template let-role=\"item\">\n <ng-container *ngIf=\"!isDefaultRole(role)\">\n <vdr-chip *ngFor=\"let channel of role.channels\">\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\n <div class=\"ml-1\">{{ channel.code | channelCodeToLabel | translate }}</div>\n </vdr-chip>\n </ng-container>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.permissions' | translate\" id=\"permissions\">\n <ng-template let-role=\"item\">\n <ng-container *ngIf=\"!isDefaultRole(role); else defaultRole\">\n <div class=\"permissions-list\">\n <vdr-chip\n *ngFor=\"let permission of role.permissions | slice : 0 : displayLimit[role.id] || 3\"\n >{{ permission }}</vdr-chip\n >\n <button\n class=\"button-small\"\n *ngIf=\"role.permissions.length > initialLimit\"\n (click)=\"toggleDisplayLimit(role)\"\n >\n <ng-container\n *ngIf=\"(displayLimit[role.id] || 0) < role.permissions.length; else collapse\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ role.permissions.length - initialLimit }}\n </ng-container>\n <ng-template #collapse>\n <clr-icon shape=\"minus\"></clr-icon>\n </ng-template>\n </button>\n </div>\n </ng-container>\n <ng-template #defaultRole>\n <span class=\"default-role-label\">{{ 'settings.default-role-label' | translate }}</span>\n </ng-template>\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateSellerInput,\n DataService,\n getCustomFieldsDefaults,\n GetSellerDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n SellerFragment,\n TypedBaseDetailComponent,\n UpdateSellerInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_SELLER_DETAIL = gql`\n query GetSellerDetail($id: ID!) {\n seller(id: $id) {\n ...SellerDetail\n }\n }\n fragment SellerDetail on Seller {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-seller-detail',\n templateUrl: './seller-detail.component.html',\n styleUrls: ['./seller-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class SellerDetailComponent\n extends TypedBaseDetailComponent<typeof GetSellerDetailDocument, 'seller'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Seller');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateSeller, Permission.CreateSeller];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n if (!formValue.name) {\n return;\n }\n const input: CreateSellerInput = {\n name: formValue.name,\n customFields: formValue.customFields,\n };\n this.dataService.settings.createSeller(input).subscribe(data => {\n switch (data.createSeller.__typename) {\n case 'Seller':\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Seller',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createSeller.id], { relativeTo: this.route });\n break;\n }\n });\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(seller => {\n const input = {\n id: seller.id,\n name: formValue.name,\n customFields: formValue.customFields,\n } as UpdateSellerInput;\n return this.dataService.settings.updateSeller(input);\n }),\n )\n .subscribe(({ updateSeller }) => {\n switch (updateSeller.__typename) {\n case 'Seller':\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Seller',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n break;\n // case 'LanguageNotAvailableError':\n // this.notificationService.error(updateSeller.message);\n }\n });\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: SellerFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n name: entity.name,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"seller-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateSeller']\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"seller-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n formControlName=\"name\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Seller\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"seller-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetSellersQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteSellersBulkAction = createBulkDeleteAction<ItemOf<GetSellersQuery, 'sellers'>>({\n location: 'seller-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteSeller),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteSellers(ids).pipe(map(res => res.deleteSellers)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetSellerListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nconst GET_SELLER_LIST = gql`\n query GetSellerList($options: SellerListOptions) {\n sellers(options: $options) {\n items {\n ...SellerListItem\n }\n totalItems\n }\n }\n fragment SellerListItem on Seller {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-seller-list',\n templateUrl: './seller-list.component.html',\n styleUrls: ['./seller-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class SellerListComponent\n extends TypedBaseListComponent<typeof GetSellerListDocument, 'sellers'>\n implements OnInit\n{\n dataTableListId = 'seller-list';\n readonly customFields = this.getCustomFieldConfig('Seller');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetSellerListDocument,\n getItems: data => data.sellers,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"seller-list\" />\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateSeller']\" [routerLink]=\"['./', 'create']\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-seller' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"seller-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"seller-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-seller=\"item\">{{ seller.id }}</ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-seller=\"item\">\n {{ seller.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-seller=\"item\">\n {{ seller.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-seller=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', seller.id]\"\n ><span>{{ seller.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { CurrencyCode, ShippingMethodQuote } from '@vendure/admin-ui/core';\n\n@Component({\n selector: 'vdr-shipping-eligibility-test-result',\n templateUrl: './shipping-eligibility-test-result.component.html',\n styleUrls: ['./shipping-eligibility-test-result.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingEligibilityTestResultComponent {\n @Input() testResult: ShippingMethodQuote[];\n @Input() okToRun = false;\n @Input() testDataUpdated = false;\n @Input() currencyCode: CurrencyCode;\n @Output() runTest = new EventEmitter<void>();\n}\n","<vdr-card class=\"test-result\" [title]=\"'settings.test-result' | translate\">\n <div class=\"card-span\" *ngFor=\"let quote of testResult\">\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\n {{ quote.name }}\n </vdr-labeled-data>\n <div class=\"price-row\">\n <vdr-labeled-data [label]=\"'common.price' | translate\">\n {{ quote.price | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n </div>\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\n </div>\n </div>\n <div class=\"card-span\" *ngIf=\"testResult?.length === 0\">\n <clr-icon shape=\"ban\" class=\"is-solid error\"></clr-icon>\n {{ 'settings.no-eligible-shipping-methods' | translate }}\n </div>\n <div class=\"card-footer\">\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\n {{ 'settings.test-shipping-methods' | translate }}\n </button>\n </div>\n</vdr-card>\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport {\n CurrencyCode,\n DataService,\n LocalStorageService,\n ProductSelectorSearchQuery,\n} from '@vendure/admin-ui/core';\n\ntype SearchItem = ProductSelectorSearchQuery['search']['items'][number];\n\nexport interface TestOrderLine {\n id: string;\n name: string;\n preview: string;\n sku: string;\n unitPriceWithTax: number;\n quantity: number;\n}\n\n@Component({\n selector: 'vdr-test-order-builder',\n templateUrl: './test-order-builder.component.html',\n styleUrls: ['./test-order-builder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TestOrderBuilderComponent implements OnInit {\n @Output() orderLinesChange = new EventEmitter<TestOrderLine[]>();\n lines: TestOrderLine[] = [];\n currencyCode: CurrencyCode;\n get subTotal(): number {\n return this.lines.reduce((sum, l) => sum + l.unitPriceWithTax * l.quantity, 0);\n }\n\n constructor(private dataService: DataService, private localStorageService: LocalStorageService) {}\n\n ngOnInit() {\n this.lines = this.loadFromLocalStorage();\n if (this.lines) {\n this.orderLinesChange.emit(this.lines);\n }\n this.dataService.settings.getActiveChannel('cache-first').single$.subscribe(result => {\n this.currencyCode = result.activeChannel.defaultCurrencyCode;\n });\n }\n\n selectResult(result: SearchItem) {\n if (result) {\n this.addToLines(result);\n }\n }\n\n private addToLines(result: SearchItem) {\n if (!this.lines.find(l => l.id === result.productVariantId)) {\n this.lines.push({\n id: result.productVariantId,\n name: result.productVariantName,\n preview: result.productAsset?.preview ?? '',\n quantity: 1,\n sku: result.sku,\n unitPriceWithTax:\n (result.priceWithTax.__typename === 'SinglePrice' && result.priceWithTax.value) || 0,\n });\n this.persistToLocalStorage();\n this.orderLinesChange.emit(this.lines);\n }\n }\n\n updateQuantity() {\n this.persistToLocalStorage();\n this.orderLinesChange.emit(this.lines);\n }\n\n removeLine(line: TestOrderLine) {\n this.lines = this.lines.filter(l => l.id !== line.id);\n this.persistToLocalStorage();\n this.orderLinesChange.emit(this.lines);\n }\n\n private persistToLocalStorage() {\n this.localStorageService.setForCurrentLocation('shippingTestOrder', this.lines);\n }\n\n private loadFromLocalStorage(): TestOrderLine[] {\n return this.localStorageService.getForCurrentLocation('shippingTestOrder') || [];\n }\n}\n","<table class=\"order-table table\" *ngIf=\"lines.length; else emptyPlaceholder\">\n <thead>\n <tr>\n <th></th>\n <th>{{ 'order.product-name' | translate }}</th>\n <th>{{ 'order.product-sku' | translate }}</th>\n <th>{{ 'order.unit-price' | translate }}</th>\n <th>{{ 'order.quantity' | translate }}</th>\n <th>{{ 'order.total' | translate }}</th>\n </tr>\n </thead>\n <tr *ngFor=\"let line of lines\" class=\"order-line\">\n <td class=\"align-middle thumb\">\n <img [src]=\"line.preview + '?preset=tiny'\" />\n </td>\n <td class=\"align-middle name\">{{ line.name }}</td>\n <td class=\"align-middle sku\">{{ line.sku }}</td>\n <td class=\"align-middle unit-price\">\n {{ line.unitPriceWithTax | localeCurrency : currencyCode }}\n </td>\n <td class=\"align-middle quantity\">\n <input [(ngModel)]=\"line.quantity\" (change)=\"updateQuantity()\" type=\"number\" max=\"9999\" min=\"1\" />\n <button class=\"icon-button\" (click)=\"removeLine(line)\">\n <clr-icon shape=\"trash\"></clr-icon>\n </button>\n </td>\n <td class=\"align-middle total\">\n {{ line.unitPriceWithTax * line.quantity | localeCurrency : currencyCode }}\n </td>\n </tr>\n <tr class=\"sub-total\">\n <td class=\"left\">{{ 'order.sub-total' | translate }}</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>{{ subTotal | localeCurrency : currencyCode }}</td>\n </tr>\n</table>\n\n<ng-template #emptyPlaceholder>\n <div class=\"card-block empty-placeholder card-span\">\n <div class=\"empty-text\">{{ 'settings.add-products-to-test-order' | translate }}</div>\n <clr-icon shape=\"arrow\" dir=\"down\" size=\"96\"></clr-icon>\n </div>\n</ng-template>\n<div class=\"card-block\">\n <vdr-product-variant-selector (productSelected)=\"selectResult($event)\"> </vdr-product-variant-selector>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { DataService, GetAvailableCountriesQuery, ItemOf, LocalStorageService } from '@vendure/admin-ui/core';\nimport { Observable, Subscription } from 'rxjs';\n\nexport interface TestAddress {\n city: string;\n province: string;\n postalCode: string;\n countryCode: string;\n}\n\n@Component({\n selector: 'vdr-test-address-form',\n templateUrl: './test-address-form.component.html',\n styleUrls: ['./test-address-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TestAddressFormComponent implements OnInit, OnDestroy {\n @Output() addressChange = new EventEmitter<TestAddress>();\n availableCountries$: Observable<Array<ItemOf<GetAvailableCountriesQuery, 'countries'>>>;\n form: UntypedFormGroup;\n private subscription: Subscription;\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n private dataService: DataService,\n private localStorageService: LocalStorageService,\n ) {}\n\n ngOnInit() {\n this.availableCountries$ = this.dataService.settings\n .getAvailableCountries()\n .mapSingle(result => result.countries.items);\n const storedValue = this.localStorageService.getForCurrentLocation('shippingTestAddress');\n const initialValue: TestAddress = storedValue\n ? storedValue\n : {\n city: '',\n countryCode: '',\n postalCode: '',\n province: '',\n };\n this.addressChange.emit(initialValue);\n\n this.form = this.formBuilder.group(initialValue);\n this.subscription = this.form.valueChanges.subscribe(value => {\n this.localStorageService.setForCurrentLocation('shippingTestAddress', value);\n this.addressChange.emit(value);\n });\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","<div class=\"card\">\n <div class=\"card-header\">\n {{ 'settings.test-address' | translate }}\n </div>\n <div class=\"card-block\">\n <form [formGroup]=\"form\" class=\"form-grid\">\n <vdr-form-field [label]=\"'customer.city' | translate\">\n <input formControlName=\"city\" type=\"text\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'customer.province' | translate\">\n <input formControlName=\"province\" type=\"text\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'customer.postal-code' | translate\">\n <input formControlName=\"postalCode\" type=\"text\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'customer.country' | translate\">\n <select name=\"countryCode\" formControlName=\"countryCode\" >\n <option *ngFor=\"let country of availableCountries$ | async\" [value]=\"country.code\">\n {{ country.name }}\n </option>\n </select>\n </vdr-form-field>\n </form>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { CurrencyCode, TestShippingMethodResult } from '@vendure/admin-ui/core';\n\n@Component({\n selector: 'vdr-shipping-method-test-result',\n templateUrl: './shipping-method-test-result.component.html',\n styleUrls: ['./shipping-method-test-result.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingMethodTestResultComponent {\n @Input() testResult: TestShippingMethodResult;\n @Input() okToRun = false;\n @Input() testDataUpdated = false;\n @Input() currencyCode: CurrencyCode;\n @Output() runTest = new EventEmitter<void>();\n}\n","<div\n class=\"test-result card\"\n [ngClass]=\"{\n success: testResult?.eligible === true,\n error: testResult?.eligible === false,\n unknown: !testResult\n }\"\n>\n <div class=\"card-header\">\n {{ 'settings.test-result' | translate }}\n </div>\n <div class=\"card-block\">\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\n <vdr-labeled-data [label]=\"'settings.eligible' | translate\">\n <div class=\"eligible-icon\">\n <clr-icon\n shape=\"success-standard\"\n class=\"is-solid success\"\n *ngIf=\"testResult?.eligible\"\n ></clr-icon>\n <clr-icon\n shape=\"ban\"\n class=\"is-solid error\"\n *ngIf=\"testResult?.eligible === false\"\n ></clr-icon>\n <clr-icon shape=\"unknown-status\" *ngIf=\"!testResult\"></clr-icon>\n </div>\n {{ testResult?.eligible }}\n </vdr-labeled-data>\n <div class=\"price-row\">\n <vdr-labeled-data\n [label]=\"'common.price' | translate\"\n *ngIf=\"testResult?.quote?.price != null\"\n >\n {{ testResult.quote?.price | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n <vdr-labeled-data\n [label]=\"'common.price-with-tax' | translate\"\n *ngIf=\"testResult?.quote?.priceWithTax != null\"\n >\n {{ testResult.quote?.priceWithTax | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n </div>\n <vdr-object-tree\n *ngIf=\"testResult?.quote?.metadata\"\n [value]=\"testResult?.quote?.metadata\"\n ></vdr-object-tree>\n </div>\n </div>\n <div class=\"card-footer\">\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\n {{ 'settings.test-shipping-method' | translate }}\n </button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n configurableDefinitionToInstance,\n ConfigurableOperation,\n ConfigurableOperationDefinition,\n CreateShippingMethodInput,\n createUpdatedTranslatable,\n DataService,\n findTranslation,\n GetActiveChannelQuery,\n getConfigArgValue,\n getCustomFieldsDefaults,\n GetShippingMethodDetailDocument,\n GetShippingMethodDetailQuery,\n LanguageCode,\n NotificationService,\n Permission,\n SHIPPING_METHOD_FRAGMENT,\n ShippingMethodFragment,\n TestShippingMethodInput,\n TestShippingMethodResult,\n toConfigurableOperationInput,\n TypedBaseDetailComponent,\n UpdateShippingMethodInput,\n} from '@vendure/admin-ui/core';\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\nimport { gql } from 'apollo-angular';\nimport { combineLatest, merge, Observable, of, Subject } from 'rxjs';\nimport { mergeMap, switchMap, take, takeUntil } from 'rxjs/operators';\n\nimport { TestAddress } from '../test-address-form/test-address-form.component';\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\n\nexport const GET_SHIPPING_METHOD_DETAIL = gql`\n query GetShippingMethodDetail($id: ID!) {\n shippingMethod(id: $id) {\n ...ShippingMethod\n }\n }\n ${SHIPPING_METHOD_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-shipping-method-detail',\n templateUrl: './shipping-method-detail.component.html',\n styleUrls: ['./shipping-method-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingMethodDetailComponent\n extends TypedBaseDetailComponent<typeof GetShippingMethodDetailDocument, 'shippingMethod'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('ShippingMethod');\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n name: ['', Validators.required],\n description: '',\n fulfillmentHandler: ['', Validators.required],\n checker: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['checker'],\n calculator: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['calculator'],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n checkers: ConfigurableOperationDefinition[] = [];\n calculators: ConfigurableOperationDefinition[] = [];\n fulfillmentHandlers: ConfigurableOperationDefinition[] = [];\n selectedChecker?: ConfigurableOperation | null;\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\n selectedCalculator?: ConfigurableOperation | null;\n selectedCalculatorDefinition?: ConfigurableOperationDefinition;\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\n testAddress: TestAddress;\n testOrderLines: TestOrderLine[];\n testDataUpdated = false;\n testResult$: Observable<TestShippingMethodResult | undefined>;\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateShippingMethod];\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.dataService.shippingMethod.getShippingMethodOperations().single$.subscribe(data => {\n this.checkers = data.shippingEligibilityCheckers;\n this.calculators = data.shippingCalculators;\n this.fulfillmentHandlers = data.fulfillmentHandlers;\n this.changeDetector.markForCheck();\n this.selectedCheckerDefinition = data.shippingEligibilityCheckers.find(\n c => c.code === this.entity?.checker?.code,\n );\n this.selectedCalculatorDefinition = data.shippingCalculators.find(\n c => c.code === this.entity?.calculator?.code,\n );\n });\n\n this.activeChannel$ = this.dataService.settings\n .getActiveChannel()\n .mapStream(data => data.activeChannel);\n\n this.testResult$ = this.fetchTestResult$.pipe(\n switchMap(([address, lines]) => {\n const { checker, calculator } = this.detailForm.value;\n if (!this.selectedChecker || !this.selectedCalculator || !checker || !calculator) {\n return of(undefined);\n }\n const input: TestShippingMethodInput = {\n shippingAddress: { ...address, streetLine1: 'test' },\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\n checker: toConfigurableOperationInput(this.selectedChecker, checker),\n calculator: toConfigurableOperationInput(this.selectedCalculator, calculator),\n };\n return this.dataService.shippingMethod\n .testShippingMethod(input)\n .mapSingle(result => result.testShippingMethod);\n }),\n );\n\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n merge(\n this.detailForm.get(['checker'])!.valueChanges,\n this.detailForm.get(['calculator'])!.valueChanges,\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => (this.testDataUpdated = true));\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n updateCode(currentCode: string | undefined, nameValue: string) {\n if (!currentCode) {\n const codeControl = this.detailForm.get(['code']);\n if (codeControl && codeControl.pristine) {\n codeControl.setValue(normalizeString(nameValue, '-'));\n }\n }\n }\n\n selectChecker(checker: ConfigurableOperationDefinition) {\n this.selectedCheckerDefinition = checker;\n this.selectedChecker = configurableDefinitionToInstance(checker);\n const formControl = this.detailForm.get('checker');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedChecker);\n }\n this.detailForm.markAsDirty();\n }\n\n selectCalculator(calculator: ConfigurableOperationDefinition) {\n this.selectedCalculatorDefinition = calculator;\n this.selectedCalculator = configurableDefinitionToInstance(calculator);\n const formControl = this.detailForm.get('calculator');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedCalculator);\n }\n this.detailForm.markAsDirty();\n }\n\n create() {\n const selectedChecker = this.selectedChecker;\n const selectedCalculator = this.selectedCalculator;\n const { checker, calculator } = this.detailForm.value;\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\n return;\n }\n const formValue = this.detailForm.value;\n const input = {\n ...(this.getUpdatedShippingMethod(\n {\n createdAt: '',\n updatedAt: '',\n id: '',\n code: '',\n name: '',\n description: '',\n fulfillmentHandlerCode: '',\n checker: undefined as any,\n calculator: undefined as any,\n translations: [],\n },\n this.detailForm,\n this.languageCode,\n ) as CreateShippingMethodInput),\n checker: toConfigurableOperationInput(selectedChecker, checker),\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\n };\n this.dataService.shippingMethod.createShippingMethod(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'ShippingMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createShippingMethod.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'ShippingMethod',\n });\n },\n );\n }\n\n save() {\n const selectedChecker = this.selectedChecker;\n const selectedCalculator = this.selectedCalculator;\n const { checker, calculator } = this.detailForm.value;\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\n return;\n }\n combineLatest([this.entity$, this.languageCode$])\n .pipe(\n take(1),\n mergeMap(([shippingMethod, languageCode]) => {\n const formValue = this.detailForm.value;\n const input = {\n ...(this.getUpdatedShippingMethod(\n shippingMethod,\n this.detailForm,\n languageCode,\n ) as UpdateShippingMethodInput),\n checker: toConfigurableOperationInput(selectedChecker, checker),\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\n };\n return this.dataService.shippingMethod.updateShippingMethod(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'ShippingMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n // eslint-disable-next-line no-console\n console.error(err);\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'ShippingMethod',\n });\n },\n );\n }\n\n setTestOrderLines(event: TestOrderLine[]) {\n this.testOrderLines = event;\n this.testDataUpdated = true;\n }\n\n setTestAddress(event: TestAddress) {\n this.testAddress = event;\n this.testDataUpdated = true;\n }\n\n allTestDataPresent(): boolean {\n return !!(\n this.testAddress &&\n this.testOrderLines &&\n this.testOrderLines.length &&\n this.selectedChecker &&\n this.selectedCalculator\n );\n }\n\n runTest() {\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\n this.testDataUpdated = false;\n }\n\n /**\n * Given a ShippingMethod and the value of the detailForm, this method creates an updated copy which\n * can then be persisted to the API.\n */\n private getUpdatedShippingMethod(\n shippingMethod: NonNullable<GetShippingMethodDetailQuery['shippingMethod']>,\n formGroup: typeof this.detailForm,\n languageCode: LanguageCode,\n ): Omit<CreateShippingMethodInput | UpdateShippingMethodInput, 'checker' | 'calculator'> {\n const formValue = formGroup.value;\n const input = createUpdatedTranslatable({\n translatable: shippingMethod,\n updatedFields: formValue,\n customFieldConfig: this.customFields,\n languageCode,\n defaultTranslation: {\n languageCode,\n name: shippingMethod.name || '',\n description: shippingMethod.description || '',\n },\n });\n return { ...input, fulfillmentHandler: formValue.fulfillmentHandler };\n }\n\n protected setFormValues(shippingMethod: ShippingMethodFragment, languageCode: LanguageCode): void {\n const currentTranslation = findTranslation(shippingMethod, languageCode);\n this.detailForm.patchValue({\n name: currentTranslation?.name ?? '',\n description: currentTranslation?.description ?? '',\n code: shippingMethod.code,\n fulfillmentHandler: shippingMethod.fulfillmentHandlerCode,\n checker: shippingMethod.checker || {},\n calculator: shippingMethod.calculator || {},\n });\n if (!this.selectedChecker) {\n this.selectedChecker = shippingMethod.checker && {\n code: shippingMethod.checker.code,\n args: shippingMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (!this.selectedCalculator) {\n this.selectedCalculator = shippingMethod.calculator && {\n code: shippingMethod.calculator?.code,\n args: shippingMethod.calculator?.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get(['customFields']),\n shippingMethod,\n currentTranslation,\n );\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"shipping-method-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\n \"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"updatePermission\"\n [disabled]=\"\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\n \"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (input)=\"updateCode(entity?.code, $event.target.value)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.code' | translate\"\n for=\"code\"\n [readOnlyToggle]=\"updatePermission | hasPermission\"\n >\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-rich-text-editor\n class=\"form-grid-span\"\n formControlName=\"description\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n [label]=\"'common.description' | translate\"\n ></vdr-rich-text-editor>\n <vdr-form-field\n [label]=\"'settings.fulfillment-handler' | translate\"\n for=\"fulfillmentHandler\"\n >\n <select\n name=\"fulfillmentHandler\"\n formControlName=\"fulfillmentHandler\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\n {{ handler.code }}: {{ handler.description }}\n </option>\n </select>\n </vdr-form-field>\n </div>\n </vdr-card>\n\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"ShippingMethod\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"shipping-method-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n\n <vdr-card [title]=\"'settings.shipping-eligibility-checker' | translate\">\n <vdr-configurable-input\n class=\"card-span\"\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\n [operation]=\"selectedChecker\"\n [operationDefinition]=\"selectedCheckerDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"selectedChecker = null\"\n formControlName=\"checker\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\" class=\"card-span\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let checker of checkers\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectChecker(checker)\"\n >\n {{ checker.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.shipping-calculator' | translate\">\n <vdr-configurable-input\n class=\"card-span\"\n *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\n [operation]=\"selectedCalculator\"\n [operationDefinition]=\"selectedCalculatorDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"selectedCalculator = null\"\n formControlName=\"calculator\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\" class=\"card-span\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let calculator of calculators\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectCalculator(calculator)\"\n >\n {{ calculator.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.test-shipping-method' | translate\">\n <vdr-test-order-builder\n class=\"card-span\"\n (orderLinesChange)=\"setTestOrderLines($event)\"\n ></vdr-test-order-builder>\n <vdr-test-address-form\n (addressChange)=\"setTestAddress($event)\"\n class=\"mt-2\"\n ></vdr-test-address-form>\n <vdr-shipping-method-test-result\n class=\"mt-2\"\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\n [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\n [testDataUpdated]=\"testDataUpdated\"\n [testResult]=\"testResult$ | async\"\n (runTest)=\"runTest()\"\n ></vdr-shipping-method-test-result>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import {\n createBulkAssignToChannelAction,\n createBulkDeleteAction,\n createBulkRemoveFromChannelAction,\n GetShippingMethodListQuery,\n GetRolesQuery,\n ItemOf,\n Permission,\n AssignShippingMethodsToChannelDocument,\n RemoveShippingMethodsFromChannelDocument,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { map } from 'rxjs/operators';\n\nexport const deleteShippingMethodsBulkAction = createBulkDeleteAction<\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\n>({\n location: 'shipping-method-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteShippingMethod),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.shippingMethod.deleteShippingMethods(ids).pipe(map(res => res.deleteShippingMethods)),\n});\n\nconst ASSIGN_SHIPPING_METHODS_TO_CHANNEL = gql`\n mutation AssignShippingMethodsToChannel($input: AssignShippingMethodsToChannelInput!) {\n assignShippingMethodsToChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nconst REMOVE_SHIPPING_METHODS_FROM_CHANNEL = gql`\n mutation RemoveShippingMethodsFromChannel($input: RemoveShippingMethodsFromChannelInput!) {\n removeShippingMethodsFromChannel(input: $input) {\n id\n name\n }\n }\n`;\nexport const assignShippingMethodsToChannelBulkAction = createBulkAssignToChannelAction<\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\n>({\n location: 'shipping-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.UpdateShippingMethod) ||\n userPermissions.includes(Permission.UpdateSettings),\n getItemName: item => item.name,\n bulkAssignToChannel: (dataService, shippingMethodIds, channelIds) =>\n channelIds.map(channelId =>\n dataService\n .mutate(AssignShippingMethodsToChannelDocument, {\n input: {\n channelId,\n shippingMethodIds,\n },\n })\n .pipe(map(res => res.assignShippingMethodsToChannel)),\n ),\n});\n\nexport const removeShippingMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\n>({\n location: 'shipping-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteShippingMethod) ||\n userPermissions.includes(Permission.DeleteSettings),\n getItemName: item => item.name,\n bulkRemoveFromChannel: (dataService, shippingMethodIds, channelId) =>\n dataService\n .mutate(RemoveShippingMethodsFromChannelDocument, {\n input: {\n channelId,\n shippingMethodIds,\n },\n })\n .pipe(map(res => res.removeShippingMethodsFromChannel)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetShippingMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_SHIPPING_METHOD_LIST = gql`\n query GetShippingMethodList($options: ShippingMethodListOptions) {\n shippingMethods(options: $options) {\n items {\n ...ShippingMethodListItem\n }\n totalItems\n }\n }\n fragment ShippingMethodListItem on ShippingMethod {\n id\n createdAt\n updatedAt\n code\n name\n description\n fulfillmentHandlerCode\n }\n`;\n\n@Component({\n selector: 'vdr-shipping-method-list',\n templateUrl: './shipping-method-list.component.html',\n styleUrls: ['./shipping-method-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingMethodListComponent\n extends TypedBaseListComponent<typeof GetShippingMethodListDocument, 'shippingMethods'>\n implements OnInit\n{\n dataTableListId = 'shipping-method-list';\n readonly customFields = this.getCustomFieldConfig('ShippingMethod');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'description',\n type: { kind: 'text' },\n label: _('common.description'),\n filterField: 'description',\n })\n .addFilter({\n name: 'fulfillmentHandler',\n type: { kind: 'text' },\n label: _('settings.fulfillment-handler'),\n filterField: 'fulfillmentHandlerCode',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'code' })\n .addSort({ name: 'description' })\n .addSort({ name: 'fulfillmentHandlerCode' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetShippingMethodListDocument,\n getItems: data => data.shippingMethods,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"shipping-method-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateShippingMethod']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-shipping-method' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"shipping-method-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-shippingMethod=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', shippingMethod.id]\"\n ><span>{{ shippingMethod.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.description' | translate\" id=\"description\"\n [sort]=\"sorts.get('description')\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.description }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.fulfillment-handler' | translate\" id=\"fulfillment-handler\" [sort]=\"sorts.get('fulfillmentHandlerCode')\">\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.fulfillmentHandlerCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateStockLocationDocument,\n CreateStockLocationInput,\n DataService,\n getCustomFieldsDefaults,\n GetStockLocationDetailDocument,\n NotificationService,\n StockLocationDetailFragment,\n TypedBaseDetailComponent,\n UpdateStockLocationDocument,\n UpdateStockLocationInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nconst STOCK_LOCATION_DETAIL_FRAGMENT = gql`\n fragment StockLocationDetail on StockLocation {\n id\n createdAt\n updatedAt\n name\n description\n }\n`;\n\nexport const GET_STOCK_LOCATION_DETAIL = gql`\n query GetStockLocationDetail($id: ID!) {\n stockLocation(id: $id) {\n ...StockLocationDetail\n }\n }\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\n`;\n\nexport const CREATE_STOCK_LOCATION = gql`\n mutation CreateStockLocation($input: CreateStockLocationInput!) {\n createStockLocation(input: $input) {\n ...StockLocationDetail\n }\n }\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\n`;\n\nexport const UPDATE_STOCK_LOCATION = gql`\n mutation UpdateStockLocation($input: UpdateStockLocationInput!) {\n updateStockLocation(input: $input) {\n ...StockLocationDetail\n }\n }\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-stock-location-detail',\n templateUrl: './stock-location-detail.component.html',\n styleUrls: ['./stock-location-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class StockLocationDetailComponent\n extends TypedBaseDetailComponent<typeof GetStockLocationDetailDocument, 'stockLocation'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('StockLocation');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n description: [''],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const { name, description, customFields } = this.detailForm.value;\n if (!name) {\n return;\n }\n const input = {\n name,\n description,\n customFields,\n } satisfies CreateStockLocationInput;\n this.dataService.mutate(CreateStockLocationDocument, { input }).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'StockLocation',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createStockLocation.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'StockLocation',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(taxRate => {\n const input = {\n id: taxRate.id,\n name: formValue.name,\n description: formValue.description,\n customFields: formValue.customFields,\n } satisfies UpdateStockLocationInput;\n return this.dataService.mutate(UpdateStockLocationDocument, { input });\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'StockLocation',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'StockLocation',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: StockLocationDetailFragment): void {\n this.detailForm.patchValue({\n name: entity.name,\n description: entity.description,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"stock-location-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n *vdrIfPermissions=\"'UpdateStockLocation'\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field\n class=\"form-grid-span\"\n [label]=\"'common.description' | translate\"\n for=\"slug\"\n [errors]=\"{ pattern: 'catalog.slug-pattern-error' | translate }\"\n >\n <vdr-rich-text-editor\n formControlName=\"description\"\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\n ></vdr-rich-text-editor>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"StockLocation\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"stock-location-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import {\n AssignStockLocationsToChannelDocument,\n createBulkAssignToChannelAction,\n createBulkDeleteAction,\n createBulkRemoveFromChannelAction,\n DeleteStockLocationsDocument,\n DeletionResult,\n GetStockLocationListQuery,\n ItemOf,\n Permission,\n RemoveStockLocationsFromChannelDocument,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { map } from 'rxjs/operators';\n\nconst DELETE_STOCK_LOCATIONS = gql`\n mutation DeleteStockLocations($input: [DeleteStockLocationInput!]!) {\n deleteStockLocations(input: $input) {\n result\n message\n }\n }\n`;\n\nconst ASSIGN_STOCK_LOCATIONS_TO_CHANNEL = gql`\n mutation AssignStockLocationsToChannel($input: AssignStockLocationsToChannelInput!) {\n assignStockLocationsToChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nconst REMOVE_STOCK_LOCATIONS_FROM_CHANNEL = gql`\n mutation RemoveStockLocationsFromChannel($input: RemoveStockLocationsFromChannelInput!) {\n removeStockLocationsFromChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nexport const deleteStockLocationsBulkAction = createBulkDeleteAction<\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\n>({\n location: 'stock-location-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteStockLocation) ||\n userPermissions.includes(Permission.DeleteCatalog),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService\n .mutate(DeleteStockLocationsDocument, {\n input: ids.map(id => ({ id })),\n })\n .pipe(map(res => res.deleteStockLocations)),\n shouldRetryItem: response => response.result === DeletionResult.NOT_DELETED,\n});\n\nexport const assignStockLocationsToChannelBulkAction = createBulkAssignToChannelAction<\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\n>({\n location: 'stock-location-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.UpdateCatalog) ||\n userPermissions.includes(Permission.UpdateStockLocation),\n getItemName: item => item.name,\n bulkAssignToChannel: (dataService, stockLocationIds, channelIds) =>\n channelIds.map(channelId =>\n dataService\n .mutate(AssignStockLocationsToChannelDocument, {\n input: {\n channelId,\n stockLocationIds,\n },\n })\n .pipe(map(res => res.assignStockLocationsToChannel)),\n ),\n});\n\nexport const removeStockLocationsFromChannelBulkAction = createBulkRemoveFromChannelAction<\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\n>({\n location: 'stock-location-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteCatalog) ||\n userPermissions.includes(Permission.DeleteStockLocation),\n getItemName: item => item.name,\n bulkRemoveFromChannel: (dataService, stockLocationIds, channelId) =>\n dataService\n .mutate(RemoveStockLocationsFromChannelDocument, {\n input: {\n channelId,\n stockLocationIds,\n },\n })\n .pipe(map(res => res.removeStockLocationsFromChannel)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetStockLocationListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_STOCK_LOCATION_LIST = gql`\n query GetStockLocationList($options: StockLocationListOptions) {\n stockLocations(options: $options) {\n items {\n ...StockLocationListItem\n }\n totalItems\n }\n }\n fragment StockLocationListItem on StockLocation {\n id\n createdAt\n updatedAt\n name\n description\n }\n`;\n\n@Component({\n selector: 'vdr-stock-location-list',\n templateUrl: './stock-location-list.component.html',\n styleUrls: ['./stock-location-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class StockLocationListComponent\n extends TypedBaseListComponent<typeof GetStockLocationListDocument, 'stockLocations'>\n implements OnInit\n{\n dataTableListId = 'stock-location-list';\n readonly customFields = this.getCustomFieldConfig('StockLocation');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilters([\n {\n name: 'enabled',\n type: { kind: 'text' },\n label: _('common.enabled'),\n filterField: 'name',\n },\n {\n name: 'sku',\n type: { kind: 'text' },\n label: _('catalog.sku'),\n filterField: 'description',\n },\n ])\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .addSorts([\n { name: 'id' },\n { name: 'createdAt' },\n { name: 'updatedAt' },\n { name: 'name' },\n { name: 'description' },\n ])\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n this.configure({\n document: GetStockLocationListDocument,\n getItems: data => data.stockLocations,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"stock-location-list\" />\n <a\n class=\"button primary\"\n *vdrIfPermissions=\"['CreateStockLocation']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'catalog.create-new-stock-location' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"stock-location-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\n <ng-template let-stockLocation=\"item\">\n {{ stockLocation.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-stockLocation=\"item\">\n {{ stockLocation.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-stockLocation=\"item\">\n {{ stockLocation.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-stockLocation=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', stockLocation.id]\"\n ><span>{{ stockLocation.name }}</span\n ><clr-icon shape=\"arrow right\"\n /></a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.description' | translate\" id=\"description\" [sort]=\"sorts.get('description')\">\n <ng-template let-stockLocation=\"item\">\n <div class=\"description\" [innerHTML]=\"stockLocation.description\"></div>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let field of customFields\"\n [customField]=\"field\"\n [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateTaxCategoryInput,\n DataService,\n getCustomFieldsDefaults,\n GetTaxCategoryDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n TAX_CATEGORY_FRAGMENT,\n TaxCategoryFragment,\n TypedBaseDetailComponent,\n UpdateTaxCategoryInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_TAX_CATEGORY_DETAIL = gql`\n query GetTaxCategoryDetail($id: ID!) {\n taxCategory(id: $id) {\n ...TaxCategory\n }\n }\n ${TAX_CATEGORY_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-detail',\n templateUrl: './tax-category-detail.component.html',\n styleUrls: ['./tax-category-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxCategoryDetailComponent\n extends TypedBaseDetailComponent<typeof GetTaxCategoryDetailDocument, 'taxCategory'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('TaxCategory');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n isDefault: false,\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxCategory];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n const input = {\n name: formValue.name,\n isDefault: formValue.isDefault,\n customFields: formValue.customFields,\n } as CreateTaxCategoryInput;\n this.dataService.settings.createTaxCategory(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'TaxCategory',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createTaxCategory.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'TaxCategory',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(taxCategory => {\n const input = {\n id: taxCategory.id,\n name: formValue.name,\n isDefault: formValue.isDefault,\n customFields: formValue.customFields,\n } as UpdateTaxCategoryInput;\n return this.dataService.settings.updateTaxCategory(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'TaxCategory',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'TaxCategory',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: TaxCategoryFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n name: entity.name,\n isDefault: entity.isDefault,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-category-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!saveButtonEnabled()\"\n *vdrIfPermissions=\"updatePermission\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"isDefault\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n formControlName=\"isDefault\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"TaxCategory\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"tax-category-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetTaxCategoryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteTaxCategoriesBulkAction = createBulkDeleteAction<\n ItemOf<GetTaxCategoryListQuery, 'taxCategories'>\n>({\n location: 'tax-category-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteTaxCategory),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteTaxCategories(ids).pipe(map(res => res.deleteTaxCategories)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n GetTaxCategoryListDocument,\n TAX_CATEGORY_FRAGMENT,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_TAX_CATEGORY_LIST = gql`\n query GetTaxCategoryList($options: TaxCategoryListOptions) {\n taxCategories(options: $options) {\n items {\n ...TaxCategory\n }\n totalItems\n }\n }\n ${TAX_CATEGORY_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-list',\n templateUrl: './tax-category-list.component.html',\n styleUrls: ['./tax-category-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxCategoryListComponent extends TypedBaseListComponent<\n typeof GetTaxCategoryListDocument,\n 'taxCategories'\n> {\n dataTableListId = 'tax-category-list';\n readonly customFields = this.serverConfigService.getCustomFieldsFor('TaxCategory');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetTaxCategoryListDocument,\n getItems: data => data.taxCategories,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-category-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxCategory']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-tax-category' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"tax-category-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-taxCategory=\"item\">\n {{ taxCategory.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-taxCategory=\"item\">\n {{ taxCategory.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-taxCategory=\"item\">\n {{ taxCategory.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-taxCategory=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', taxCategory.id]\"\n ><span>{{ taxCategory.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.default-tax-category' | translate\" id=\"default-tax-category\">\n <ng-template let-taxCategory=\"item\">\n <vdr-chip *ngIf=\"taxCategory.isDefault\">{{ 'common.default-tax-category' | translate }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateTaxRateInput,\n CustomerGroup,\n DataService,\n getCustomFieldsDefaults,\n GetTaxRateDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n TAX_RATE_FRAGMENT,\n TaxCategoryFragment,\n TaxRateFragment,\n TypedBaseDetailComponent,\n UpdateTaxRateInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_TAX_RATE_DETAIL = gql`\n query GetTaxRateDetail($id: ID!) {\n taxRate(id: $id) {\n ...TaxRate\n }\n }\n ${TAX_RATE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-rate-detail',\n templateUrl: './tax-rate-detail.component.html',\n styleUrls: ['./tax-rate-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxRateDetailComponent\n extends TypedBaseDetailComponent<typeof GetTaxRateDetailDocument, 'taxRate'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('TaxRate');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n enabled: [true],\n value: [0, Validators.required],\n taxCategoryId: ['', Validators.required],\n zoneId: ['', Validators.required],\n customerGroupId: [''],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n taxCategories$: Observable<TaxCategoryFragment[]>;\n groups$: Observable<CustomerGroup[]>;\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxRate];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.taxCategories$ = this.dataService.settings\n .getTaxCategories({ take: 100 })\n .mapSingle(data => data.taxCategories.items);\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const { name, enabled, value, taxCategoryId, zoneId, customerGroupId, customFields } =\n this.detailForm.value;\n if (!name || enabled == null || value == null || !taxCategoryId || !zoneId) {\n return;\n }\n const formValue = this.detailForm.value;\n const input = {\n name,\n enabled,\n value,\n categoryId: taxCategoryId,\n zoneId,\n customerGroupId: formValue.customerGroupId,\n customFields: formValue.customFields,\n } satisfies CreateTaxRateInput;\n this.dataService.settings.createTaxRate(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'TaxRate',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createTaxRate.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'TaxRate',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(taxRate => {\n const input = {\n id: taxRate.id,\n name: formValue.name,\n enabled: formValue.enabled,\n value: formValue.value,\n categoryId: formValue.taxCategoryId,\n zoneId: formValue.zoneId,\n customerGroupId: formValue.customerGroupId,\n customFields: formValue.customFields,\n } satisfies UpdateTaxRateInput;\n return this.dataService.settings.updateTaxRate(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'TaxRate',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'TaxRate',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: TaxRateFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n name: entity.name,\n enabled: entity.enabled,\n value: entity.value,\n taxCategoryId: entity.category ? entity.category.id : '',\n zoneId: entity.zone ? entity.zone.id : '',\n customerGroupId: entity.customerGroup ? entity.customerGroup.id : '',\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-rate-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!saveButtonEnabled()\"\n *vdrIfPermissions=\"updatePermission\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"enabled\"\n formControlName=\"enabled\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\n <vdr-affixed-input suffix=\"%\">\n <input\n id=\"value\"\n type=\"number\"\n step=\"0.1\"\n formControlName=\"value\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-affixed-input>\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\n <select\n name=\"taxCategoryId\"\n formControlName=\"taxCategoryId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option\n *ngFor=\"let taxCategory of taxCategories$ | async\"\n [value]=\"taxCategory.id\"\n >\n {{ taxCategory.name }}\n </option>\n </select>\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\n <vdr-zone-selector\n name=\"zoneId\"\n formControlName=\"zoneId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n </vdr-zone-selector>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"TaxRate\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"tax-rate-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetTaxRateListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteTaxRatesBulkAction = createBulkDeleteAction<ItemOf<GetTaxRateListQuery, 'taxRates'>>({\n location: 'tax-rate-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteTaxRate),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteTaxRates(ids).pipe(map(res => res.deleteTaxRates)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetTaxRateListDocument, TAX_RATE_FRAGMENT, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_TAX_RATE_LIST = gql`\n query GetTaxRateList($options: TaxRateListOptions) {\n taxRates(options: $options) {\n items {\n ...TaxRate\n }\n totalItems\n }\n }\n ${TAX_RATE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-rate-list',\n templateUrl: './tax-rate-list.component.html',\n styleUrls: ['./tax-rate-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxRateListComponent extends TypedBaseListComponent<typeof GetTaxRateListDocument, 'taxRates'> {\n dataTableListId = 'tax-rate-list';\n readonly customFields = this.getCustomFieldConfig('TaxRate');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'enabled',\n type: { kind: 'boolean' },\n label: _('common.enabled'),\n filterField: 'enabled',\n })\n .addFilter({\n name: 'value',\n type: { kind: 'number' },\n label: _('common.value'),\n filterField: 'value',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'value' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetTaxRateListDocument,\n getItems: data => data.taxRates,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-rate-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-tax-rate' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"tax-rate-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-taxRate=\"item\">\n {{ taxRate.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-taxRate=\"item\">\n {{ taxRate.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-taxRate=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', taxRate.id]\"\n ><span>{{ taxRate.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.tax-category' | translate\" id=\"tax-category\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.category.name }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.zone' | translate\" id=\"zone\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.zone.name }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.customer-group' | translate\" id=\"customer-group\" [hiddenByDefault]=\"true\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.customerGroup?.name }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.tax-rate' | translate\" id=\"tax-rate\" [sort]=\"sorts.get('value')\">\n <ng-template let-taxRate=\"item\"> {{ taxRate.value }}% </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-taxRate=\"item\">\n <vdr-chip *ngIf=\"taxRate.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!taxRate.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport {\n DataService,\n GetActiveChannelQuery,\n ShippingMethodQuote,\n TestEligibleShippingMethodsInput,\n} from '@vendure/admin-ui/core';\nimport { Observable, Subject } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { TestAddress } from '../test-address-form/test-address-form.component';\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\n\n@Component({\n selector: 'vdr-test-shipping-methods',\n templateUrl: './test-shipping-methods.component.html',\n styleUrls: ['./test-shipping-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TestShippingMethodsComponent implements OnInit {\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\n testAddress: TestAddress;\n testOrderLines: TestOrderLine[];\n testDataUpdated = false;\n testResult$: Observable<ShippingMethodQuote[] | undefined>;\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\n\n constructor(private dataService: DataService) {}\n\n ngOnInit() {\n this.activeChannel$ = this.dataService.settings\n .getActiveChannel()\n .mapStream(data => data.activeChannel);\n this.testResult$ = this.fetchTestResult$.pipe(\n switchMap(([address, lines]) => {\n const input: TestEligibleShippingMethodsInput = {\n shippingAddress: { ...address, streetLine1: 'test' },\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\n };\n return this.dataService.shippingMethod\n .testEligibleShippingMethods(input)\n .mapSingle(result => result.testEligibleShippingMethods);\n }),\n );\n }\n\n setTestOrderLines(event: TestOrderLine[]) {\n this.testOrderLines = event;\n this.testDataUpdated = true;\n }\n\n setTestAddress(event: TestAddress) {\n this.testAddress = event;\n this.testDataUpdated = true;\n }\n\n allTestDataPresent(): boolean {\n return !!(this.testAddress && this.testOrderLines && this.testOrderLines.length);\n }\n\n runTest() {\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\n this.testDataUpdated = false;\n }\n}\n","<vdr-page-block>\n <div class=\"test-wrapper\">\n <div class=\"\">\n <vdr-test-order-builder (orderLinesChange)=\"setTestOrderLines($event)\"></vdr-test-order-builder>\n </div>\n <div class=\"\">\n <vdr-test-address-form (addressChange)=\"setTestAddress($event)\"></vdr-test-address-form>\n <vdr-shipping-eligibility-test-result\n class=\"mt-1\"\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\n [okToRun]=\"allTestDataPresent()\"\n [testDataUpdated]=\"testDataUpdated\"\n [testResult]=\"testResult$ | async\"\n (runTest)=\"runTest()\"\n ></vdr-shipping-eligibility-test-result>\n </div>\n </div>\n</vdr-page-block>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateZoneInput,\n DataService,\n getCustomFieldsDefaults,\n GetZoneDetailDocument,\n GetZoneDetailQuery,\n LanguageCode,\n NotificationService,\n Permission,\n TypedBaseDetailComponent,\n UpdateTaxCategoryInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_ZONE_DETAIL = gql`\n query GetZoneDetail($id: ID!) {\n zone(id: $id) {\n ...ZoneDetail\n }\n }\n fragment ZoneDetail on Zone {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-zone-detail',\n templateUrl: './zone-detail.component.html',\n styleUrls: ['./zone-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ZoneDetailComponent\n extends TypedBaseDetailComponent<typeof GetZoneDetailDocument, 'zone'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Zone');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateZone];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const { name, customFields } = this.detailForm.value;\n if (!name) {\n return;\n }\n const input = {\n name,\n customFields,\n } satisfies CreateZoneInput;\n this.dataService.settings.createZone(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Zone',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createZone.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Zone',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(zone => {\n const input = {\n id: zone.id,\n name: formValue.name,\n customFields: formValue.customFields,\n } satisfies UpdateTaxCategoryInput;\n return this.dataService.settings.updateZone(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Zone',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Zone',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(\n entity: NonNullable<GetZoneDetailQuery['zone']>,\n languageCode: LanguageCode,\n ): void {\n this.detailForm.patchValue({\n name: entity.name,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"zone-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!saveButtonEnabled()\"\n *vdrIfPermissions=\"updatePermission\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"zone-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Zone\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"zone-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetZoneListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteZonesBulkAction = createBulkDeleteAction<ItemOf<GetZoneListQuery, 'zones'>>({\n location: 'zone-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteZone),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) => dataService.settings.deleteZones(ids).pipe(map(res => res.deleteZones)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n GetZoneListDocument,\n GetZoneListQuery,\n ItemOf,\n LanguageCode,\n LogicalOperator,\n ModalService,\n NotificationService,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { combineLatest, EMPTY, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, mapTo, switchMap, tap } from 'rxjs/operators';\n\nimport { AddCountryToZoneDialogComponent } from '../add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nimport { ZoneMemberListComponent } from '../zone-member-list/zone-member-list.component';\n\nexport const GET_ZONE_LIST = gql`\n query GetZoneList($options: ZoneListOptions) {\n zones(options: $options) {\n items {\n ...ZoneListItem\n }\n totalItems\n }\n }\n fragment ZoneListItem on Zone {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-zone-list',\n templateUrl: './zone-list.component.html',\n styleUrls: ['./zone-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ZoneListComponent\n extends TypedBaseListComponent<typeof GetZoneListDocument, 'zones'>\n implements OnInit\n{\n dataTableListId = 'zone-list';\n activeZone$: Observable<ItemOf<GetZoneListQuery, 'zones'> | undefined>;\n activeIndex$: Observable<number>;\n selectedMemberIds: string[] = [];\n @ViewChild(ZoneMemberListComponent) zoneMemberList: ZoneMemberListComponent;\n readonly customFields = this.serverConfigService.getCustomFieldsFor('Zone');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor(\n protected dataService: DataService,\n private notificationService: NotificationService,\n private modalService: ModalService,\n ) {\n super();\n super.configure({\n document: GetZoneListDocument,\n getItems: data => data.zones,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n filterOperator: this.searchTermControl.value ? LogicalOperator.OR : LogicalOperator.AND,\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n const activeZoneId$ = this.route.paramMap.pipe(\n map(pm => pm.get('contents')),\n distinctUntilChanged(),\n tap(() => (this.selectedMemberIds = [])),\n );\n this.activeZone$ = combineLatest(this.items$, activeZoneId$).pipe(\n map(([zones, activeZoneId]) => {\n if (activeZoneId) {\n return zones.find(z => z.id === activeZoneId);\n }\n }),\n );\n this.activeIndex$ = combineLatest(this.items$, activeZoneId$).pipe(\n map(([zones, activeZoneId]) => {\n if (activeZoneId) {\n return zones.findIndex(g => g.id === activeZoneId);\n } else {\n return -1;\n }\n }),\n );\n }\n\n setLanguage(code: LanguageCode) {\n this.dataService.client.setContentLanguage(code).subscribe();\n }\n\n closeMembers() {\n const params = { ...this.route.snapshot.params };\n delete params.contents;\n this.router.navigate(['./', params], { relativeTo: this.route, queryParamsHandling: 'preserve' });\n }\n\n addToZone(zone: ItemOf<GetZoneListQuery, 'zones'>) {\n this.modalService\n .fromComponent(AddCountryToZoneDialogComponent, {\n locals: {\n zoneName: zone.name,\n zoneId: zone.id,\n },\n size: 'md',\n })\n .pipe(\n switchMap(memberIds =>\n memberIds\n ? this.dataService.settings\n .addMembersToZone(zone.id, memberIds)\n .pipe(mapTo(memberIds))\n : EMPTY,\n ),\n )\n .subscribe({\n next: result => {\n this.notificationService.success(_(`settings.add-countries-to-zone-success`), {\n countryCount: result.length,\n zoneName: zone.name,\n });\n this.refreshMemberList();\n },\n error: err => {\n this.notificationService.error(err);\n },\n });\n }\n\n refreshMemberList() {\n this.zoneMemberList?.refresh();\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"zone-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-zone' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"zone-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-split-view [rightPanelOpen]=\"activeZone$ | async\" (closeClicked)=\"closeMembers()\">\n <ng-template vdrSplitViewLeft>\n <vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n [activeIndex]=\"activeIndex$ | async\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n >\n <vdr-bulk-action-menu\n locationId=\"zone-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\" id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-customerGroup=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\n ><span>{{ customerGroup.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.view-contents' | translate\" id=\"view-contents\" [optional]=\"false\">\n <ng-template let-customerGroup=\"item\">\n <a\n class=\"button-small bg-weight-150\"\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\n queryParamsHandling=\"preserve\"\n >\n <span>{{ 'settings.view-zone-members' | translate }}</span>\n <clr-icon shape=\"file-group\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sort]=\"sorts\"\n />\n </vdr-data-table-2>\n </ng-template>\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeZone$ | async)?.name\">\n <ng-container *ngIf=\"activeZone$ | async as activeZone\">\n <button class=\"button-ghost ml-4\" (click)=\"addToZone(activeZone)\">\n <clr-icon shape=\"plus\"></clr-icon>\n <span>{{\n 'settings.add-countries-to-zone' | translate : { zoneName: activeZone.name }\n }}</span>\n </button>\n <vdr-zone-member-list\n *ngIf=\"activeZone$ | async as activeZone\"\n locationId=\"zone-members-list\"\n [selectedMemberIds]=\"selectedMemberIds\"\n [activeZone]=\"activeZone\"\n (selectionChange)=\"selectedMemberIds = $event\"\n />\n </ng-container>\n </ng-template>\n</vdr-split-view>\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { BulkAction, DataService, NotificationService, Permission } from '@vendure/admin-ui/core';\nimport { ZoneMember, ZoneMemberListComponent } from './zone-member-list.component';\n\nexport const removeZoneMembersBulkAction: BulkAction<ZoneMember, ZoneMemberListComponent> = {\n location: 'zone-members-list',\n label: _('settings.remove-from-zone'),\n icon: 'trash',\n iconClass: 'is-danger',\n requiresPermission: Permission.UpdateCustomerGroup,\n onClick: ({ injector, selection, hostComponent, clearSelection }) => {\n const dataService = injector.get(DataService);\n const notificationService = injector.get(NotificationService);\n\n const zone = hostComponent.activeZone;\n const memberIds = selection.map(s => s.id);\n\n dataService.settings.removeMembersFromZone(zone.id, memberIds).subscribe({\n complete: () => {\n notificationService.success(_(`settings.remove-countries-from-zone-success`), {\n countryCount: memberIds.length,\n zoneName: zone.name,\n });\n hostComponent.refresh();\n clearSelection();\n },\n });\n },\n};\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AdministratorFragment, BaseEntityResolver, DataService } from '@vendure/admin-ui/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileResolver extends BaseEntityResolver<AdministratorFragment> {\n constructor(router: Router, dataService: DataService) {\n super(\n router,\n {\n __typename: 'Administrator' as const,\n id: '',\n createdAt: '',\n updatedAt: '',\n emailAddress: '',\n firstName: '',\n lastName: '',\n user: { roles: [] } as any,\n },\n id =>\n dataService.administrator\n .getActiveAdministrator()\n .mapStream(data => data.activeAdministrator),\n );\n }\n}\n","import { inject } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n GetGlobalSettingsDetailDocument,\n GetProfileDetailDocument,\n PageComponent,\n PageService,\n} from '@vendure/admin-ui/core';\nimport { of } from 'rxjs';\n\nexport const createRoutes = (pageService: PageService): Route[] => [\n {\n path: 'profile',\n component: PageComponent,\n data: {\n breadcrumb: _('breadcrumb.profile'),\n },\n resolve: {\n detail: () =>\n inject(DataService)\n .query(GetProfileDetailDocument)\n .mapSingle(data => ({ entity: of(data.activeAdministrator) })),\n },\n children: pageService.getPageTabRoutes('profile'),\n },\n {\n path: 'administrators',\n component: PageComponent,\n data: {\n locationId: 'administrator-list',\n breadcrumb: _('breadcrumb.administrators'),\n },\n children: pageService.getPageTabRoutes('administrator-list'),\n },\n {\n path: 'administrators/:id',\n component: PageComponent,\n data: {\n locationId: 'administrator-detail',\n breadcrumb: { label: _('breadcrumb.administrators'), link: ['../', 'administrators'] },\n },\n children: pageService.getPageTabRoutes('administrator-detail'),\n },\n {\n path: 'channels',\n component: PageComponent,\n data: {\n locationId: 'channel-list',\n breadcrumb: _('breadcrumb.channels'),\n },\n children: pageService.getPageTabRoutes('channel-list'),\n },\n {\n path: 'channels/:id',\n component: PageComponent,\n data: {\n locationId: 'channel-detail',\n breadcrumb: { label: _('breadcrumb.channels'), link: ['../', 'channels'] },\n },\n children: pageService.getPageTabRoutes('channel-detail'),\n },\n {\n path: 'stock-locations',\n component: PageComponent,\n data: {\n locationId: 'stock-location-list',\n breadcrumb: _('breadcrumb.stock-locations'),\n },\n children: pageService.getPageTabRoutes('stock-location-list'),\n },\n {\n path: 'stock-locations/:id',\n component: PageComponent,\n data: {\n locationId: 'stock-location-detail',\n breadcrumb: { label: _('breadcrumb.stock-locations'), link: ['../', 'stock-locations'] },\n },\n children: pageService.getPageTabRoutes('stock-location-detail'),\n },\n {\n path: 'sellers',\n component: PageComponent,\n data: {\n locationId: 'seller-list',\n breadcrumb: _('breadcrumb.sellers'),\n },\n children: pageService.getPageTabRoutes('seller-list'),\n },\n {\n path: 'sellers/:id',\n component: PageComponent,\n data: {\n locationId: 'seller-detail',\n breadcrumb: { label: _('breadcrumb.sellers'), link: ['../', 'sellers'] },\n },\n children: pageService.getPageTabRoutes('seller-detail'),\n },\n {\n path: 'roles',\n component: PageComponent,\n data: {\n locationId: 'role-list',\n breadcrumb: _('breadcrumb.roles'),\n },\n children: pageService.getPageTabRoutes('role-list'),\n },\n {\n path: 'roles/:id',\n component: PageComponent,\n data: {\n locationId: 'role-detail',\n breadcrumb: { label: _('breadcrumb.roles'), link: ['../', 'roles'] },\n },\n children: pageService.getPageTabRoutes('role-detail'),\n },\n {\n path: 'tax-categories',\n component: PageComponent,\n data: {\n locationId: 'tax-category-list',\n breadcrumb: _('breadcrumb.tax-categories'),\n },\n children: pageService.getPageTabRoutes('tax-category-list'),\n },\n {\n path: 'tax-categories/:id',\n component: PageComponent,\n data: {\n locationId: 'tax-category-detail',\n breadcrumb: { label: _('breadcrumb.tax-categories'), link: ['../', 'tax-categories'] },\n },\n children: pageService.getPageTabRoutes('tax-category-detail'),\n },\n {\n path: 'tax-rates',\n component: PageComponent,\n data: {\n locationId: 'tax-rate-list',\n breadcrumb: _('breadcrumb.tax-rates'),\n },\n children: pageService.getPageTabRoutes('tax-rate-list'),\n },\n {\n path: 'tax-rates/:id',\n component: PageComponent,\n data: {\n locationId: 'tax-rate-detail',\n breadcrumb: { label: _('breadcrumb.tax-rates'), link: ['../', 'tax-rates'] },\n },\n children: pageService.getPageTabRoutes('tax-rate-detail'),\n },\n {\n path: 'countries',\n component: PageComponent,\n data: {\n locationId: 'country-list',\n breadcrumb: _('breadcrumb.countries'),\n },\n children: pageService.getPageTabRoutes('country-list'),\n },\n {\n path: 'countries/:id',\n component: PageComponent,\n data: {\n locationId: 'country-detail',\n breadcrumb: { label: _('breadcrumb.countries'), link: ['../', 'countries'] },\n },\n children: pageService.getPageTabRoutes('country-detail'),\n },\n {\n path: 'zones',\n component: PageComponent,\n data: {\n locationId: 'zone-list',\n breadcrumb: _('breadcrumb.zones'),\n },\n children: pageService.getPageTabRoutes('zone-list'),\n },\n {\n path: 'zones/:id',\n component: PageComponent,\n data: {\n locationId: 'zone-detail',\n breadcrumb: { label: _('breadcrumb.zones'), link: ['../', 'zones'] },\n },\n children: pageService.getPageTabRoutes('zone-detail'),\n },\n {\n path: 'shipping-methods',\n component: PageComponent,\n data: {\n locationId: 'shipping-method-list',\n breadcrumb: _('breadcrumb.shipping-methods'),\n },\n children: pageService.getPageTabRoutes('shipping-method-list'),\n },\n {\n path: 'shipping-methods/:id',\n component: PageComponent,\n data: {\n locationId: 'shipping-method-detail',\n breadcrumb: { label: _('breadcrumb.shipping-methods'), link: ['../', 'shipping-methods'] },\n },\n children: pageService.getPageTabRoutes('shipping-method-detail'),\n },\n {\n path: 'payment-methods',\n component: PageComponent,\n data: {\n locationId: 'payment-method-list',\n breadcrumb: _('breadcrumb.payment-methods'),\n },\n children: pageService.getPageTabRoutes('payment-method-list'),\n },\n {\n path: 'payment-methods/:id',\n component: PageComponent,\n data: {\n locationId: 'payment-method-detail',\n breadcrumb: { label: _('breadcrumb.payment-methods'), link: ['../', 'payment-methods'] },\n },\n children: pageService.getPageTabRoutes('payment-method-detail'),\n },\n {\n path: 'global-settings',\n component: PageComponent,\n data: {\n breadcrumb: _('breadcrumb.global-settings'),\n locationId: 'global-setting-detail',\n },\n resolve: {\n detail: () =>\n inject(DataService)\n .query(GetGlobalSettingsDetailDocument)\n .mapSingle(data => ({ entity: of(data.globalSettings) })),\n },\n children: pageService.getPageTabRoutes('global-setting-detail'),\n },\n];\n","import { NgModule } from '@angular/core';\nimport { RouterModule, ROUTES } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n BulkActionRegistryService,\n detailComponentWithResolver,\n GetAdministratorDetailDocument,\n GetChannelDetailDocument,\n GetCountryDetailDocument,\n GetPaymentMethodDetailDocument,\n GetRoleDetailDocument,\n GetSellerDetailDocument,\n GetShippingMethodDetailDocument,\n GetStockLocationDetailDocument,\n GetTaxCategoryDetailDocument,\n GetTaxRateDetailDocument,\n GetZoneDetailDocument,\n PageService,\n SharedModule,\n} from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\n\nimport { AddCountryToZoneDialogComponent } from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nimport { AdminDetailComponent } from './components/admin-detail/admin-detail.component';\nimport { deleteAdministratorsBulkAction } from './components/administrator-list/administrator-list-bulk-actions';\nimport { AdministratorListComponent } from './components/administrator-list/administrator-list.component';\nimport { ChannelDetailComponent } from './components/channel-detail/channel-detail.component';\nimport { deleteChannelsBulkAction } from './components/channel-list/channel-list-bulk-actions';\nimport { ChannelListComponent } from './components/channel-list/channel-list.component';\nimport { CountryDetailComponent } from './components/country-detail/country-detail.component';\nimport { deleteCountriesBulkAction } from './components/country-list/country-list-bulk-actions';\nimport { CountryListComponent } from './components/country-list/country-list.component';\nimport { GlobalSettingsComponent } from './components/global-settings/global-settings.component';\nimport { PaymentMethodDetailComponent } from './components/payment-method-detail/payment-method-detail.component';\nimport {\n assignPaymentMethodsToChannelBulkAction,\n deletePaymentMethodsBulkAction,\n removePaymentMethodsFromChannelBulkAction,\n} from './components/payment-method-list/payment-method-list-bulk-actions';\nimport { PaymentMethodListComponent } from './components/payment-method-list/payment-method-list.component';\nimport { PermissionGridComponent } from './components/permission-grid/permission-grid.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { RoleDetailComponent } from './components/role-detail/role-detail.component';\nimport { deleteRolesBulkAction } from './components/role-list/role-list-bulk-actions';\nimport { RoleListComponent } from './components/role-list/role-list.component';\nimport { SellerDetailComponent } from './components/seller-detail/seller-detail.component';\nimport { deleteSellersBulkAction } from './components/seller-list/seller-list-bulk-actions';\nimport { SellerListComponent } from './components/seller-list/seller-list.component';\nimport { ShippingEligibilityTestResultComponent } from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\nimport { ShippingMethodDetailComponent } from './components/shipping-method-detail/shipping-method-detail.component';\nimport {\n assignShippingMethodsToChannelBulkAction,\n deleteShippingMethodsBulkAction,\n removeShippingMethodsFromChannelBulkAction,\n} from './components/shipping-method-list/shipping-method-list-bulk-actions';\nimport { ShippingMethodListComponent } from './components/shipping-method-list/shipping-method-list.component';\nimport { ShippingMethodTestResultComponent } from './components/shipping-method-test-result/shipping-method-test-result.component';\nimport { StockLocationDetailComponent } from './components/stock-location-detail/stock-location-detail.component';\nimport {\n assignStockLocationsToChannelBulkAction,\n deleteStockLocationsBulkAction,\n removeStockLocationsFromChannelBulkAction,\n} from './components/stock-location-list/stock-location-list-bulk-actions';\nimport { StockLocationListComponent } from './components/stock-location-list/stock-location-list.component';\nimport { TaxCategoryDetailComponent } from './components/tax-category-detail/tax-category-detail.component';\nimport { deleteTaxCategoriesBulkAction } from './components/tax-category-list/tax-category-list-bulk-actions';\nimport { TaxCategoryListComponent } from './components/tax-category-list/tax-category-list.component';\nimport { TaxRateDetailComponent } from './components/tax-rate-detail/tax-rate-detail.component';\nimport { deleteTaxRatesBulkAction } from './components/tax-rate-list/tax-rate-list-bulk-actions';\nimport { TaxRateListComponent } from './components/tax-rate-list/tax-rate-list.component';\nimport { TestAddressFormComponent } from './components/test-address-form/test-address-form.component';\nimport { TestOrderBuilderComponent } from './components/test-order-builder/test-order-builder.component';\nimport { TestShippingMethodsComponent } from './components/test-shipping-methods/test-shipping-methods.component';\nimport { ZoneDetailComponent } from './components/zone-detail/zone-detail.component';\nimport { deleteZonesBulkAction } from './components/zone-list/zone-list-bulk-actions';\nimport { ZoneListComponent } from './components/zone-list/zone-list.component';\nimport { ZoneMemberControlsDirective } from './components/zone-member-list/zone-member-controls.directive';\nimport { removeZoneMembersBulkAction } from './components/zone-member-list/zone-member-list-bulk-actions';\nimport { ZoneMemberListHeaderDirective } from './components/zone-member-list/zone-member-list-header.directive';\nimport { ZoneMemberListComponent } from './components/zone-member-list/zone-member-list.component';\nimport { createRoutes } from './settings.routes';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild([])],\n providers: [\n {\n provide: ROUTES,\n useFactory: (pageService: PageService) => createRoutes(pageService),\n multi: true,\n deps: [PageService],\n },\n ],\n declarations: [\n TaxCategoryListComponent,\n TaxCategoryDetailComponent,\n AdministratorListComponent,\n RoleListComponent,\n RoleDetailComponent,\n AdminDetailComponent,\n PermissionGridComponent,\n CountryListComponent,\n CountryDetailComponent,\n TaxRateListComponent,\n TaxRateDetailComponent,\n ChannelListComponent,\n ChannelDetailComponent,\n ShippingMethodListComponent,\n ShippingMethodDetailComponent,\n PaymentMethodListComponent,\n PaymentMethodDetailComponent,\n GlobalSettingsComponent,\n TestOrderBuilderComponent,\n TestAddressFormComponent,\n SellerDetailComponent,\n SellerListComponent,\n ShippingMethodTestResultComponent,\n ShippingEligibilityTestResultComponent,\n ZoneListComponent,\n AddCountryToZoneDialogComponent,\n ZoneMemberListComponent,\n ZoneMemberListHeaderDirective,\n ZoneMemberControlsDirective,\n ProfileComponent,\n TestShippingMethodsComponent,\n ZoneDetailComponent,\n StockLocationListComponent,\n StockLocationDetailComponent,\n ],\n})\nexport class SettingsModule {\n private static hasRegisteredTabsAndBulkActions = false;\n\n constructor(bulkActionRegistryService: BulkActionRegistryService, pageService: PageService) {\n if (SettingsModule.hasRegisteredTabsAndBulkActions) {\n return;\n }\n bulkActionRegistryService.registerBulkAction(deleteSellersBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteChannelsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteAdministratorsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteRolesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(assignShippingMethodsToChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(removeShippingMethodsFromChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(deleteShippingMethodsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(assignPaymentMethodsToChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(removePaymentMethodsFromChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(deletePaymentMethodsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteTaxCategoriesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteTaxRatesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteCountriesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteZonesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(removeZoneMembersBulkAction);\n\n bulkActionRegistryService.registerBulkAction(assignStockLocationsToChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(removeStockLocationsFromChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(deleteStockLocationsBulkAction);\n\n pageService.registerPageTab({\n priority: 0,\n location: 'seller-list',\n tab: _('breadcrumb.sellers'),\n route: '',\n component: SellerListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'seller-detail',\n tab: _('settings.seller'),\n route: '',\n component: detailComponentWithResolver({\n component: SellerDetailComponent,\n query: GetSellerDetailDocument,\n entityKey: 'seller',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-seller'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'channel-list',\n tab: _('breadcrumb.channels'),\n route: '',\n component: ChannelListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'channel-detail',\n tab: _('settings.channel'),\n route: '',\n component: detailComponentWithResolver({\n component: ChannelDetailComponent,\n query: GetChannelDetailDocument,\n entityKey: 'channel',\n getBreadcrumbs: entity => [\n {\n label: entity\n ? entity.code === DEFAULT_CHANNEL_CODE\n ? 'common.default-channel'\n : entity.code\n : _('settings.create-new-channel'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'administrator-list',\n tab: _('breadcrumb.administrators'),\n route: '',\n component: AdministratorListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'administrator-detail',\n tab: _('settings.administrator'),\n route: '',\n component: detailComponentWithResolver({\n component: AdminDetailComponent,\n query: GetAdministratorDetailDocument,\n entityKey: 'administrator',\n getBreadcrumbs: entity => [\n {\n label: entity\n ? `${entity.firstName} ${entity.lastName}`\n : _('admin.create-new-administrator'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'role-list',\n tab: _('breadcrumb.roles'),\n route: '',\n component: RoleListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'role-detail',\n tab: _('settings.role'),\n route: '',\n component: detailComponentWithResolver({\n component: RoleDetailComponent,\n query: GetRoleDetailDocument,\n entityKey: 'role',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.description : _('settings.create-new-role'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'shipping-method-list',\n tab: _('breadcrumb.shipping-methods'),\n route: '',\n component: ShippingMethodListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'shipping-method-detail',\n tab: _('settings.shipping-method'),\n route: '',\n component: detailComponentWithResolver({\n component: ShippingMethodDetailComponent,\n query: GetShippingMethodDetailDocument,\n entityKey: 'shippingMethod',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-shipping-method'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'shipping-method-list',\n tab: _('settings.test-shipping-methods'),\n route: 'test',\n component: TestShippingMethodsComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'payment-method-list',\n tab: _('breadcrumb.payment-methods'),\n route: '',\n component: PaymentMethodListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'payment-method-detail',\n tab: _('settings.payment-method'),\n route: '',\n component: detailComponentWithResolver({\n component: PaymentMethodDetailComponent,\n query: GetPaymentMethodDetailDocument,\n entityKey: 'paymentMethod',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-payment-method'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-category-list',\n tab: _('breadcrumb.tax-categories'),\n route: '',\n component: TaxCategoryListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-category-detail',\n tab: _('settings.tax-category'),\n route: '',\n component: detailComponentWithResolver({\n component: TaxCategoryDetailComponent,\n query: GetTaxCategoryDetailDocument,\n entityKey: 'taxCategory',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-tax-category'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-rate-list',\n tab: _('breadcrumb.tax-rates'),\n route: '',\n component: TaxRateListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-rate-detail',\n tab: _('settings.tax-rate'),\n route: '',\n component: detailComponentWithResolver({\n component: TaxRateDetailComponent,\n query: GetTaxRateDetailDocument,\n entityKey: 'taxRate',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-tax-rate'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'country-list',\n tab: _('breadcrumb.countries'),\n route: '',\n component: CountryListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'country-detail',\n tab: _('settings.country'),\n route: '',\n component: detailComponentWithResolver({\n component: CountryDetailComponent,\n query: GetCountryDetailDocument,\n entityKey: 'country',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-country'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'zone-list',\n tab: _('breadcrumb.zones'),\n route: '',\n component: ZoneListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'zone-detail',\n tab: _('settings.zone'),\n route: '',\n component: detailComponentWithResolver({\n component: ZoneDetailComponent,\n query: GetZoneDetailDocument,\n entityKey: 'zone',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-zone'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'global-setting-detail',\n tab: _('breadcrumb.global-settings'),\n route: '',\n component: GlobalSettingsComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'profile',\n tab: _('breadcrumb.profile'),\n route: '',\n component: ProfileComponent,\n });\n\n pageService.registerPageTab({\n priority: 0,\n location: 'stock-location-list',\n tab: _('catalog.stock-locations'),\n route: '',\n component: StockLocationListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'stock-location-detail',\n tab: _('catalog.stock-location'),\n route: '',\n component: detailComponentWithResolver({\n component: StockLocationDetailComponent,\n query: GetStockLocationDetailDocument,\n entityKey: 'stockLocation',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('catalog.create-new-stock-location'),\n link: [entity?.id],\n },\n ],\n }),\n });\n SettingsModule.hasRegisteredTabsAndBulkActions = true;\n }\n}\n","// This file was generated by the build-public-api.ts script\nexport * from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nexport * from './components/admin-detail/admin-detail.component';\nexport * from './components/administrator-list/administrator-list-bulk-actions';\nexport * from './components/administrator-list/administrator-list.component';\nexport * from './components/channel-detail/channel-detail.component';\nexport * from './components/channel-list/channel-list-bulk-actions';\nexport * from './components/channel-list/channel-list.component';\nexport * from './components/country-detail/country-detail.component';\nexport * from './components/country-list/country-list-bulk-actions';\nexport * from './components/country-list/country-list.component';\nexport * from './components/global-settings/global-settings.component';\nexport * from './components/payment-method-detail/payment-method-detail.component';\nexport * from './components/payment-method-list/payment-method-list-bulk-actions';\nexport * from './components/payment-method-list/payment-method-list.component';\nexport * from './components/permission-grid/permission-grid.component';\nexport * from './components/profile/profile.component';\nexport * from './components/role-detail/role-detail.component';\nexport * from './components/role-list/role-list-bulk-actions';\nexport * from './components/role-list/role-list.component';\nexport * from './components/seller-detail/seller-detail.component';\nexport * from './components/seller-list/seller-list-bulk-actions';\nexport * from './components/seller-list/seller-list.component';\nexport * from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\nexport * from './components/shipping-method-detail/shipping-method-detail.component';\nexport * from './components/shipping-method-list/shipping-method-list-bulk-actions';\nexport * from './components/shipping-method-list/shipping-method-list.component';\nexport * from './components/shipping-method-test-result/shipping-method-test-result.component';\nexport * from './components/stock-location-detail/stock-location-detail.component';\nexport * from './components/stock-location-list/stock-location-list-bulk-actions';\nexport * from './components/stock-location-list/stock-location-list.component';\nexport * from './components/tax-category-detail/tax-category-detail.component';\nexport * from './components/tax-category-list/tax-category-list-bulk-actions';\nexport * from './components/tax-category-list/tax-category-list.component';\nexport * from './components/tax-rate-detail/tax-rate-detail.component';\nexport * from './components/tax-rate-list/tax-rate-list-bulk-actions';\nexport * from './components/tax-rate-list/tax-rate-list.component';\nexport * from './components/test-address-form/test-address-form.component';\nexport * from './components/test-order-builder/test-order-builder.component';\nexport * from './components/test-shipping-methods/test-shipping-methods.component';\nexport * from './components/zone-detail/zone-detail.component';\nexport * from './components/zone-list/zone-list-bulk-actions';\nexport * from './components/zone-list/zone-list.component';\nexport * from './components/zone-member-list/zone-member-controls.directive';\nexport * from './components/zone-member-list/zone-member-list-bulk-actions';\nexport * from './components/zone-member-list/zone-member-list-header.directive';\nexport * from './components/zone-member-list/zone-member-list.component';\nexport * from './providers/routing/profile-resolver';\nexport * from './settings.module';\nexport * from './settings.routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i4","i2.ZoneMemberListComponent","i1","_","i5.PermissionGridComponent","i6","switchMap","i4.PermissionGridComponent","i5","i5.TestOrderBuilderComponent","i6.TestAddressFormComponent","i7.ShippingMethodTestResultComponent","i8","i2.TestOrderBuilderComponent","i3.TestAddressFormComponent","i4.ShippingEligibilityTestResultComponent","i5.ZoneMemberListComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAMa,2BAA2B,CAAA;AACpC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW;;+GADrB,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,6BAA6B,CAAA;AACtC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW;;+GADrB,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCgCY,uBAAuB,CAAA;AAwBhC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW;QArBtB,IAAiB,CAAA,iBAAA,GAAa,EAAE;AAE/B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAY;AAIxD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAGvC,IAAW,CAAA,WAAA,GAAG,CAAC;QACf,IAAY,CAAA,YAAA,GAAG,EAAE;QACjB,IAAgB,CAAA,gBAAA,GAAG,IAAI,gBAAgB,CAAa;AAChD,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AACtC,YAAA,YAAY,EAAE,IAAI;AACrB,SAAA,CAAC;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAgB;AAC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAgD,SAAS,CAAC;AAChG,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;;IAItC,QAAQ,GAAA;QACJ,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvE,SAAS,CAAC,UAAU,IAChB,IAAI,CAAC;cACC,IAAI,CAAC;AACA,iBAAA,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AAC5D,iBAAA,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,IAAI,EAAE;AAClD,cAAE,EAAE,CAAC,EAAE,CAAC,CACf,CACJ;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC;AAE7D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;YAC5C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACjC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACpE;AACL,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAG;AACzF,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,aAAa,CACjC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAC1D,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,KAAI;YAC1B,IAAI,UAAU,EAAE;gBACZ,MAAM,IAAI,GAAG,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE;AAClD,gBAAA,OAAO,OAAO,CAAC,MAAM,CACjB,CAAC,IACG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACzC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAChD;;iBACE;AACH,gBAAA,OAAO,OAAO;;SAErB,CAAC,CACL;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;;AAGjF,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,SAAS,IAAI,OAAO,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;;AAE/C,QAAA,IAAI,YAAY,IAAI,OAAO,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;;IAInD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;IAG5B,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;+GAjFf,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAMlB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,6BAA6B,EAC7B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,2BAA2B,qEC5C7C,62EAqDA,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDhBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,62EAAA,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA;gFAGR,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACS,eAAe,EAAA,CAAA;sBAAxB;gBAC4C,cAAc,EAAA,CAAA;sBAA1D,YAAY;uBAAC,6BAA6B;gBACA,gBAAgB,EAAA,CAAA;sBAA1D,YAAY;uBAAC,2BAA2B;;;AE7BtC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;MA0BtB,+BAA+B,CAAA;AAQxC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW;QAF/B,IAAiB,CAAA,iBAAA,GAAa,EAAE;;IAIhC,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aACvB,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrD,aAAA,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aAC3B,KAAK,CAAC,sBAAsB,EAAE;AAC3B,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;SACzB;aACA,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;aACtC,IAAI,CACD,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACpC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,KAC5B,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACpE,CACJ;;IAGT,MAAM,GAAA;QACF,IAAI,CAAC,WAAW,EAAE;;IAGtB,GAAG,GAAA;AACC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;;+GAhCnC,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,2FCzC5C,0tBAgBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDyBa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,EAGzB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,0tBAAA,EAAA;;;AE7BrB;;AAEG;MAQU,uBAAuB,CAAA;AAPpC,IAAA,WAAA,GAAA;QAUa,IAAQ,CAAA,QAAA,GAAG,KAAK;AACf,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAA0C;AAyD1F;IAtDG,QAAQ,GAAA;QACJ,IAAI,CAAC,SAAS,EAAE;;IAGpB,aAAa,CAAC,UAAkB,EAAE,KAAc,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;;AAIzD,IAAA,SAAS,CAAC,IAA4B,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtE,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;;;IAI3D,SAAS,GAAA;AACb,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkC;QAC5D,MAAM,OAAO,GAA2B,EAAE;QAC1C,MAAM,MAAM,GAAG,0CAA0C;AACzD,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACpC,IAAI,MAAM,EAAE;AACR,gBAAA,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7C,IAAI,SAAS,EAAE;oBACX,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC1C,IAAI,QAAQ,EAAE;AACV,wBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;;yBACf;wBACH,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;;;;AAGrC,iBAAA,IAAI,GAAG,CAAC,UAAU,EAAE;AACvB,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;;QAGzB,IAAI,CAAC,QAAQ,GAAG;YACZ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK;gBACjB,KAAK,EAAE,CAAC,CAAC,IAAI;gBACb,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,CAAC;AACnB,aAAA,CAAC,CAAC;YACH,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM;gBACpD,KAAK;gBACL,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,gBAAA,WAAW,EAAE,IAAI;AACpB,aAAA,CAAC,CAAC;SACV;;AAGG,IAAA,sBAAsB,CAAC,GAAyB,EAAA;QACpD,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;;+GA3DhF,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,6PCpBpC,6nCAuBA,EAAA,MAAA,EAAA,CAAA,2GAAA,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,EAAAJ,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDHa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGd,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,6nCAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA;8BAGR,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;;;AEME,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;MAMrC,sBAAsB;;AAUtB,MAAO,oBACT,SAAQ,wBAAgF,CAAA;IAsBxF,oBAAoB,GAAA;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;;AAGtD,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AA3B/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvC,YAAA,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;AACd,YAAA,KAAK,EAAE;gBACH,EAEkB;AACrB,aAAA;AACD,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QAGF,IAAa,CAAA,aAAA,GAAmB,EAAE;QAClC,IAAuB,CAAA,uBAAA,GAAkD,EAAS;QAClF,IAAiB,CAAA,iBAAA,GAAkB,IAAI;;IAevC,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;aAC7B,QAAQ,CAAC,GAAG;aACZ,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;YACtE,IACI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBAChE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAClE;gBACE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;gBAChD,IAAI,WAAW,EAAE;oBACb,WAAW,CAAC,OAAO,EAAE;;;AAGjC,SAAC,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE;;IAGpF,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;AAGlB,IAAA,YAAY,CAAC,KAAqB,EAAA;QAC9B,IAAI,CAAC,mBAAmB,EAAE;;IAG9B,gCAAgC,GAAA;QAC5B,SAAS,oBAAoB,CAAC,KAA0C,EAAA;AACpE,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK;iBACtB,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,MAAM;AACvC,iBAAA,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,UAAU,CAAC;;AAElD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC5E,IAAI,eAAe,EAAE;AACjB,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW;AACtF,gBAAA,OAAO,oBAAoB,CAAC,aAAa,CAAC;;;QAGlD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;;AAExD,QAAA,OAAO,EAAE;;IAGb,MAAM,GAAA;AACF,QAAA,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AAClG,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACvD;;AAEJ,QAAA,MAAM,aAAa,GAA6B;YAC5C,YAAY;YACZ,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,YAAY;AACZ,YAAA,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE;SACxE;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,SAAS,CACvE,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACI,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACzF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,YAAA,MAAM,aAAa,GAA6B;gBAC5C,EAAE;gBACF,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;AACpC,gBAAA,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;aACjD;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC;AAC5E,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;IAGC,aAAa,CACnB,MAAqF,EACrF,YAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,YAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC3B,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;;QAEnG,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;QACvD,IAAI,eAAe,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;gBACZ,eAAe,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;;iBACjD;AACH,gBAAA,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;;;QAGzC,IAAI,CAAC,mBAAmB,EAAE;;IAGtB,mBAAmB,GAAA;QACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;QACvD,IAAI,kBAAkB,EAAE;AACpB,YAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK;AACtC,YAAA,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAA2B;AAClE,YAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB;AAElD,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE;AAC5B,gBAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AAClE,oBAAA,MAAM,aAAa,GAAG,kBAAkB,IAAI,IAAI,GAAG,EAAc;AAEjE,oBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnD,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC;oBACtD,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;;;AAItD,YAAA,IAAI,CAAC,uBAAuB,GAAG,EAAS;AACxC,YAAA,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE;;gBAEhE,MAAM,aAAa,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAE;gBAC7D,MAAM,eAAe,GAAmC,EAAS;gBACjE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,EAAE;AACnE,oBAAA,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAkB,CAAC;;AAEzE,gBAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG;;oBAEtC,SAAS;AACT,oBAAA,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAE;AAC7C,oBAAA,WAAW,EAAE,eAAe;;iBAE/B;;;;+GA5MJ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oGC9CjC,olMA0IA,EAAA,MAAA,EAAA,CAAA,6CAAA,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,EAAAD,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,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Fa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,olMAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA;;;AEpCd,MAAM,8BAA8B,GAAG,sBAAsB,CAElE;AACE,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC/F,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ;AACzD,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACrG,CAAA;;ACNM,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCnC,MAAO,0BAA2B,SAAQ,sBAG/C,CAAA;AAoCG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QApCX,IAAe,CAAA,eAAA,GAAG,oBAAoB;AAC7B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEF,MAAC,CAAC,qBAAqB,CAAC;AAC/B,YAAA,WAAW,EAAE,WAAW;SAC3B;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC9B,YAAA,WAAW,EAAE,UAAU;SAC1B;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAClC,YAAA,WAAW,EAAE,cAAc;SAC9B;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;AAC5B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;AAChC,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc;YACrC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC9F,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;AAGN,IAAA,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAE,UAAyB,EAAA;QACnE,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,cAAc,GAAoB,eAAe,CAAC,GAAG;QAEzD,IAAI,UAAU,EAAE;AACZ,YAAA,OAAO,GAAG;AACN,gBAAA,YAAY,EAAE;AACV,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;AACD,gBAAA,SAAS,EAAE;AACP,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;aACJ;AACD,YAAA,cAAc,GAAG,eAAe,CAAC,EAAE;;QAEvC,OAAO;AACH,YAAA,OAAO,EAAE;gBACL,IAAI;gBACJ,IAAI;AACJ,gBAAA,MAAM,EAAE;AACJ,oBAAA,IAAI,OAAO,IAAI,EAAE,CAAC;AAClB,oBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;gBAClC,cAAc;AACjB,aAAA;SACJ;;+GA9EI,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,0GC/CvC,u7GAqFA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDtCa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cAGtB,KAAK,EAAA,QAAA,EAAA,u7GAAA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA;;;AErBd,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;MAM/B,gBAAgB;;AAUhB,MAAO,sBACT,SAAQ,wBAAoE,CAAA;IAwB5E,WACc,CAAA,mBAAwC,EAC1C,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QANG,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QACrB,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QA1B/B,IAAoB,CAAA,oBAAA,GAAG,oBAAoB;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAGnD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAChC,gBAAgB,EAAE,CAAC,KAAK,CAAC;YACzB,sBAAsB,EAAE,CAAC,EAAc,CAAC;YACxC,sBAAsB,EAAE,CAAC,EAAc,CAAC;AACxC,YAAA,mBAAmB,EAAE,CAAC,EAAkB,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC9D,YAAA,qBAAqB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAChD,YAAA,mBAAmB,EAAE,CAAC,SAAqC,EAAE,UAAU,CAAC,QAAQ,CAAC;AACjF,YAAA,gBAAgB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC3C,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACnC,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;AAGO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC;;IAYvG,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;QAEX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/F,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE;AAC/E,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;AAC3C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,KAAK,IAAG;YACf,IAAI,KAAK,EAAE;gBACP,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;gBAC9E,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAC7D,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC;;;AAG3F,SAAC,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;AAC3C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,KAAK,IAAG;YACf,IAAI,KAAK,EAAE;gBACP,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;gBAC9E,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAC7D,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC;;;AAG3F,SAAC,CAAC;;IAGV,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;;IAGzD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;QAEJ,MAAM,EACF,IAAI,EACJ,KAAK,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,GACX,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACzB,QAAA,IACI,CAAC,IAAI;AACL,YAAA,CAAC,KAAK;AACN,YAAA,CAAC,mBAAmB;AACpB,YAAA,CAAC,mBAAmB;AACpB,YAAA,CAAC,qBAAqB;YACtB,CAAC,gBAAgB,EACnB;YACE;;AAEJ,QAAA,MAAM,KAAK,GAAuB;YAC9B,IAAI;YACJ,KAAK;YACL,mBAAmB;YACnB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,mBAAmB;YACnB,qBAAqB;YACrB,gBAAgB;YAChB,YAAY;YACZ,QAAQ;SACX;QACD,IAAI,CAAC,WAAW,CAAC;aACZ,aAAa,CAAC,KAAK;AACnB,aAAA,IAAI,CACD,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,KACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;YACb,EAAE;YACF,aAAa;AAChB,SAAA,CAAC,CAAC,CACN,CACJ,EACD,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE;;QAE3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,CAAC,CAC1F;aAEJ,SAAS,CAAC,IAAI,IAAG;AACd,YAAA,QAAQ,IAAI,CAAC,UAAU;AACnB,gBAAA,KAAK,SAAS;oBACV,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,SAAS;AACpB,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;oBAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClE;AACJ,gBAAA,KAAK,2BAA2B;oBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC5C;;AAEZ,SAAC,CAAC;;IAGV,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC;aACA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,OAAO,IAAG;AACf,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;gBACxD,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;gBACxD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;gBAClD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;gBAClD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ;aACT;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzD,SAAC,CAAC;AAEL,aAAA,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,KAAI;AAC7B,YAAA,QAAQ,aAAa,CAAC,UAAU;AAC5B,gBAAA,KAAK,SAAS;oBACV,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,SAAS;AACpB,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;oBAClC;AACJ,gBAAA,KAAK,2BAA2B;oBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;;AAEjE,SAAC,CAAC;;AAGV;;AAEG;IACO,aAAa,CAAC,MAAuB,EAAE,YAA0B,EAAA;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAC/C,YAAA,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE;YAC3D,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAC/C,YAAA,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE;AACjD,YAAA,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;AACpC,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;;AAEnG,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/C,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,OAAO,EAAE;;;;IAKzB,aAAa,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACvD,aAAA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aACxC,IAAI,CAAC,EAAE,CAAC;;+GAlNR,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,sGCxCnC,u3TAkNA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,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,EAAAF,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,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD1Ka,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,u3TAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA;;;AEnCd,MAAM,wBAAwB,GAAG,sBAAsB,CAAuC;AACjG,IAAA,QAAQ,EAAE,cAAc;IACxB,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACzG,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KAAI;AAC7B,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAChD,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KACxB,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;YACb,EAAE;YACF,cAAc;AACjB,SAAA,CAAC,CAAC,CACN,CACJ,EACD,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE;;QAE5B,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC,CACtF,CACJ;KACJ;AACJ,CAAA;;AClBM,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;MAS7B,gBAAgB;;AAUhB,MAAO,oBACT,SAAQ,sBAAiE,CAAA;AAgCzE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA9BX,IAAe,CAAA,eAAA,GAAG,cAAc;AACvB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAClC,YAAA,WAAW,EAAE,OAAO;SACvB;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACzB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;AAGN,IAAA,gBAAgB,CAAC,WAAmB,EAAA;QAChC,OAAO,WAAW,KAAK,oBAAoB;;+GAxDtC,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oGCzBjC,49FAwEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD/Ca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,49FAAA,EAAA;;;AEFd,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;MAM/B,gBAAgB;;AAUhB,MAAO,sBACT,SAAQ,wBAAoE,CAAA;AAY5E,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAb/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QACO,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,aAAa,CAAC;;IAWjF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAGJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;QACvC,MAAM,KAAK,GAAG,yBAAyB,CAAC;AACpC,YAAA,YAAY,EAAE;AACV,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,YAAY,EAAE,EAAE;AACA,aAAA;AACpB,YAAA,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,IAAI,CAAC,YAAY;AACpC,YAAA,kBAAkB,EAAE;AAChB,gBAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY;AAClC,aAAA;AACJ,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CACpD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACnF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;QACA,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa;AACzC,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,KAAI;AACjC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;YACvC,MAAM,KAAK,GAAuB,yBAAyB,CAAC;AACxD,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,aAAa,EAAE,SAAS;gBACxB,iBAAiB,EAAE,IAAI,CAAC,YAAY;gBACpC,YAAY;AACZ,gBAAA,kBAAkB,EAAE;AAChB,oBAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;oBAC1B,YAAY;AACf,iBAAA;AACJ,aAAA,CAAC;YACF,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzD,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGC,aAAa,CAAC,OAAwB,EAAE,YAA0B,EAAA;QACxE,MAAM,kBAAkB,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;AAEjE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,GAAG,EAAE;YACvD,OAAO,EAAE,OAAO,CAAC,OAAO;AAC3B,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EACrC,OAAO,EACP,kBAAkB,CACrB;;;+GAzHA,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,sGCrCnC,45HA+FA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,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,EAAAF,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD1Da,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,45HAAA,EAAA;;;AEhCd,MAAM,yBAAyB,GAAG,sBAAsB,CAA2C;AACtG,IAAA,QAAQ,EAAE,cAAc;AACxB,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACtD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AACtF,CAAA;;ACNM,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;AA2B7B,MAAO,oBAAqB,SAAQ,sBAAkE,CAAA;AAoCxG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QApCX,IAAe,CAAA,eAAA,GAAG,cAAc;AACvB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzB,YAAA,KAAK,EAAEA,MAAC,CAAC,gBAAgB,CAAC;AAC1B,YAAA,WAAW,EAAE,SAAS;SACzB;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,MAAM,EAAE,KAAK;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS;YAChC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GAvDG,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oGChCjC,kyHAuGA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDvEa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,kyHAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA;;;AEdd,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;AAuBvC,MAAO,uBACT,SAAQ,wBAAkF,CAAA;AAa1F,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAd/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAChC,kBAAkB,EAAE,CAAC,EAAoB,CAAC;AAC1C,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,mBAAmB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC7C,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;AACF,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QAClC,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,oBAAoB,CAAC;;IAWxF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;AACtE,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC;gBACjE,IAAI,eAAe,EAAE;oBACjB,eAAe,CAAC,OAAO,EAAE;;;AAGrC,SAAC,CAAC;;IAGN,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;QAGJ,IAAI,CAAC,WAAW,CAAC;AACZ,aAAA,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;aAC1C,IAAI,CACD,GAAG,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAI;AAC7B,YAAA,QAAQ,oBAAoB,CAAC,UAAU;AACnC,gBAAA,KAAK,gBAAgB;AACjB,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;oBAClC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,UAAU;AACrB,qBAAA,CAAC;oBACF;AACJ,gBAAA,KAAK,6BAA6B;oBAC9B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC;;AAExE,SAAC,CAAC,EACFG,WAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,EACjE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;AAE5D,aAAA,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAI;AAC7C,YAAA,MAAM,cAAc,GAAG,cAAc,CAAC,kBAAkB;AACxD,YAAA,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAC5E,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;;AAEjF,SAAC,CAAC;;IAGA,aAAa,CAAC,MAAsB,EAAE,YAA0B,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAClD,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;;;+GA9E5F,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,uGCvCpC,g0GAgFA,EAAA,MAAA,EAAA,CAAA,8LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,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,EAAAF,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,mBAAA,EAAA,QAAA,EAAA,iGAAA,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDzCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGd,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,g0GAAA,EAAA,MAAA,EAAA,CAAA,8LAAA,CAAA,EAAA;;;AERd,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;MAMtC,uBAAuB;;AAUvB,MAAO,4BACT,SAAQ,wBAAgF,CAAA;AAqBxF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAtB/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,OAAO,EAAE,EAA0E;AACnF,YAAA,OAAO,EAAE,EAA0E;AACnF,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QACF,IAAQ,CAAA,QAAA,GAAsC,EAAE;QAChD,IAAQ,CAAA,QAAA,GAAsC,EAAE;QAKvC,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,mBAAmB,CAAC;;IAWvF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5E,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gCAAgC;AACrD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,gCAAgC,CAAC,IAAI,CACvE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAC7C;YACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC5D,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAC7C;AACL,SAAC,CAAC;;IAGN,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,UAAU,CAAC,WAA+B,EAAE,SAAiB,EAAA;QACzD,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,YAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACrC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;;;AAKjE,IAAA,aAAa,CAAC,OAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;QAClD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE;YAC7B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;;AAEhD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;AAGjC,IAAA,aAAa,CAAC,OAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;QAClD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE;YAC7B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;;AAEhD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;IAGjC,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;IAGjC,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;IAGjC,MAAM,GAAA;AACF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AAC5C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;QAC5C,IAAI,CAAC,eAAe,EAAE;YAClB;;AAEJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CACtC;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,SAAgB;AACzB,YAAA,OAAO,EAAE,SAAgB;AACzB,YAAA,YAAY,EAAE,EAAE;AACnB,SAAA,EACD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,EACjB,eAAe,EACf,eAAe,CACU;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,CAC1D,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACK,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACzF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AAC5C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;QAC5C,IAAI,CAAC,eAAe,EAAE;YAClB;;QAEJ,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa;AACzC,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,KAAI;AACvC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CACtC,aAAa,EACb,IAAI,CAAC,UAAU,EACf,YAAY,EACZ,eAAe,EACf,eAAe,CACU;YAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;AAGT;;;AAGG;IACK,uBAAuB,CAC3B,aAAoC,EACpC,SAA2B,EAC3B,YAA0B,EAC1B,eAAsC,EACtC,eAA8C,EAAA;QAE9C,MAAM,KAAK,GAAG,yBAAyB,CAAC;AACpC,YAAA,YAAY,EAAE,aAAa;YAC3B,aAAa,EAAE,SAAS,CAAC,KAAK;YAC9B,iBAAiB,EAAE,IAAI,CAAC,YAAY;YACpC,YAAY;AACZ,YAAA,kBAAkB,EAAE;gBAChB,YAAY;AACZ,gBAAA,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE;AAC9B,gBAAA,WAAW,EAAE,aAAa,CAAC,WAAW,IAAI,EAAE;AAC/C,aAAA;AACJ,SAAA,CAAC;QACF,OAAO;AACH,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE;kBACH,4BAA4B,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO;AACvE,kBAAE,IAAI;YACV,OAAO,EAAE,4BAA4B,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;SAClF;;IAGK,aAAa,CACnB,aAAwE,EACxE,YAA0B,EAAA;QAE1B,MAAM,kBAAkB,GAAG,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,kBAAkB,EAAE,IAAI;YAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,kBAAkB,EAAE,WAAW;YAC5C,OAAO,EAAE,aAAa,CAAC,OAAO;AAC9B,YAAA,OAAO,EAAE,aAAa,CAAC,OAAO,IAAK,EAAU;AAC7C,YAAA,OAAO,EAAE,aAAa,CAAC,OAAO,IAAK,EAAU;AAChD,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI;AAC5C,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI;AAChC,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC3F;;AAEL,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI;AAC5C,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI;AAChC,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC3F;;AAEL,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EACnC,aAAa,EACb,kBAAkB,CACrB;;;+GAxOA,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,6GC7CzC,8+OAsKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,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,EAAAF,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDzHa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAGpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,8+OAAA,EAAA;;;AE9Bd,MAAM,8BAA8B,GAAG,sBAAsB,CAElE;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,eAAe,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO;AACvD,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,KACnC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC1G,CAAA;AAED,MAAM,iCAAiC,GAAG,GAAG,CAAA;;;;;;;CAO5C;AAED,MAAM,mCAAmC,GAAG,GAAG,CAAA;;;;;;;CAO9C;AACM,MAAM,uCAAuC,GAAG,+BAA+B,CAEpF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,mBAAmB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,KAC3D,UAAU,CAAC,GAAG,CAAC,SAAS,IACpB;SACK,MAAM,CAAC,qCAAqC,EAAE;AAC3C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ;AACA,SAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAC3D;AACR,CAAA;AAEM,MAAM,yCAAyC,GAAG,iCAAiC,CAExF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,qBAAqB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,KAC5D;SACK,MAAM,CAAC,uCAAuC,EAAE;AAC7C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ;SACA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAA;;AC5EM,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;AA2BpC,MAAO,0BAA2B,SAAQ,sBAG/C,CAAA;AA4CG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA5CX,IAAe,CAAA,eAAA,GAAG,qBAAqB;AAC9B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzB,YAAA,KAAK,EAAEA,MAAC,CAAC,gBAAgB,CAAC;AAC1B,YAAA,WAAW,EAAE,SAAS;SACzB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC9B,YAAA,WAAW,EAAE,aAAa;SAC7B;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AACtB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;AAC/B,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc;YACrC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GAlEG,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,2GChCvC,++HA2GA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD3Ea,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAGlB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,++HAAA,EAAA;;;AEdd,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;AA4B/B,MAAO,gBACT,SAAQ,wBAAgF,CAAA;AAYxF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAb/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvC,YAAA,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;AACd,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;;IAWF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,IAAI,GAAA;AACA,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,YAAA,MAAM,aAAa,GAAmC;gBAClD,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;aACvC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,yBAAyB,CAAC,aAAa,CAAC;AAClF,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;IAGC,aAAa,CAAC,aAA4B,EAAE,YAA0B,EAAA;AAC5E,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACnC,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EACnC,aAAa,CAChB;;;+GAzEA,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,+FC5C7B,qnGAsEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD1Ba,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGN,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,qnGAAA,EAAA;;;AEtBd,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;MAM5B,aAAa;;AAUb,MAAO,mBACT,SAAQ,wBAA8D,CAAA;AAUtE,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAX/B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACtC,UAAU,EAAE,CAAC,EAAc,CAAC;YAC5B,WAAW,EAAE,CAAC,EAAkB,CAAC;AACpC,SAAA,CAAC;AACF,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE;;IAU3E,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;AAGlB,IAAA,UAAU,CAAC,SAAiB,EAAA;AACxB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AACjD,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;YACrC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;;AAI7D,IAAA,aAAa,CAAC,MAA8C,EAAA;QACxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;QAC7D,IAAI,kBAAkB,EAAE;AACpB,YAAA,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAiB;AAC/D,YAAA,MAAM,QAAQ,IACV,MAAM,CAAC,KAAK,KAAK;kBACX,MAAM,CAAC,CAAC,GAAG,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC;AACnD,kBAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAChD;AACjB,YAAA,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrC,kBAAkB,CAAC,WAAW,EAAE;;;IAIxC,MAAM,GAAA;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AAC5E,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;YACvB;;AAEJ,QAAA,MAAM,IAAI,GAAoB;YAC1B,IAAI;YACJ,WAAW;YACX,WAAW,EAAE,WAAW,IAAI,EAAE;YAC9B,UAAU;SACb;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CACrD,IAAI,IAAG;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACvF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SAChF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;YACvC,MAAM,IAAI,GAAoB,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE;YAClD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;AAC1D,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACvF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGC,aAAa,CAAC,IAAU,EAAE,YAA0B,EAAA;AAC1D,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxC,WAAW,EAAE,IAAI,CAAC,WAAW;AAChC,SAAA,CAAC;;;;AAIF,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;;+GA7G9B,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,mGCpChC,27GAiFA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD7Ca,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,27GAAA,EAAA;;;AE/Bd,MAAM,qBAAqB,GAAG,sBAAsB,CAAiC;AACxF,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC/F,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW;AACrC,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AACnF,CAAA;;ACIM,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;MAS1B,aAAa;;AAUb,MAAO,iBACT,SAAQ,sBAA2D,CAAA;AAyBnE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAvBX,IAAe,CAAA,eAAA,GAAG,WAAW;QACpB,IAAY,CAAA,YAAA,GAAG,CAAC;QACzB,IAAY,CAAA,YAAA,GAA6B,EAAE;AAClC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEI,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;AAC/B,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK;YAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;AAGN,IAAA,kBAAkB,CAAC,IAAoC,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY;;aAC3C;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;;;AAI5D,IAAA,aAAa,CAAC,IAAU,EAAA;QACpB,OAAO,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;;+GAzDzE,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,iGChC9B,mnKA4HA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Fa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGR,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,mnKAAA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA;;;AEZd,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;;;;;;;;;;AAqB9B,MAAO,qBACT,SAAQ,wBAAkE,CAAA;AAU1E,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAX/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;AACO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC;;IAWrG,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;;IAGzD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACjB;;AAEJ,QAAA,MAAM,KAAK,GAAsB;YAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,YAAY,EAAE,SAAS,CAAC,YAAY;SACvC;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAC3D,YAAA,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU;AAChC,gBAAA,KAAK,QAAQ;oBACT,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,QAAQ;AACnB,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;oBAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC/E;;AAEZ,SAAC,CAAC;;IAGN,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC;aACA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,MAAM,IAAG;AACd,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;aAClB;YACtB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;AACxD,SAAC,CAAC;AAEL,aAAA,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,KAAI;AAC5B,YAAA,QAAQ,YAAY,CAAC,UAAU;AAC3B,gBAAA,KAAK,QAAQ;oBACT,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,QAAQ;AACnB,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;oBAClC;;;;AAIZ,SAAC,CAAC;;AAGV;;AAEG;IACO,aAAa,CAAC,MAAsB,EAAE,YAA0B,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;;;+GAlG9F,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qGCvClC,smFAoEA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD7Ba,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,smFAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA;;;AElCd,MAAM,uBAAuB,GAAG,sBAAsB,CAAqC;AAC9F,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;AACxF,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;AAClF,CAAA;;ACJD,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;CAe1B;AASK,MAAO,mBACT,SAAQ,sBAA+D,CAAA;AAyBvE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAvBX,IAAe,CAAA,eAAA,GAAG,aAAa;AACtB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO;YAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GA7CG,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,mGC7BhC,yoFAgEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDnCa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,yoFAAA,EAAA;;;MEhBR,sCAAsC,CAAA;AAPnD,IAAA,WAAA,GAAA;QASa,IAAO,CAAA,OAAA,GAAG,KAAK;QACf,IAAe,CAAA,eAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAC/C;+GANY,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sCAAsC,8PCXnD,k3CA2BA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDhBa,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAPlD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sCAAsC,EAG/B,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,k3CAAA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA;8BAGR,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;MEUQ,yBAAyB,CAAA;AAIlC,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;;IAGlF,WAAoB,CAAA,WAAwB,EAAU,mBAAwC,EAAA;QAA1E,IAAW,CAAA,WAAA,GAAX,WAAW;QAAuB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAP/D,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB;QAChE,IAAK,CAAA,KAAA,GAAoB,EAAE;;IAQ3B,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACxC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE1C,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAG;YACjF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,mBAAmB;AAChE,SAAC,CAAC;;AAGN,IAAA,YAAY,CAAC,MAAkB,EAAA;QAC3B,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;;;AAIvB,IAAA,UAAU,CAAC,MAAkB,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,MAAM,CAAC,gBAAgB;gBAC3B,IAAI,EAAE,MAAM,CAAC,kBAAkB;AAC/B,gBAAA,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE;AAC3C,gBAAA,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,MAAM,CAAC,GAAG;AACf,gBAAA,gBAAgB,EACZ,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,KAAK,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC;AAC3F,aAAA,CAAC;YACF,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAI9C,cAAc,GAAA;QACV,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG1C,IAAA,UAAU,CAAC,IAAmB,EAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGlC,qBAAqB,GAAA;QACzB,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;;IAG3E,oBAAoB,GAAA;QACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,EAAE;;+GA1D3E,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,sIC1BtC,oiEAiDA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,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,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,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,EAAAQ,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDvBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGjB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,oiEAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA;kHAGP,gBAAgB,EAAA,CAAA;sBAAzB;;;MERQ,wBAAwB,CAAA;AAMjC,IAAA,WAAA,CACY,WAA+B,EAC/B,WAAwB,EACxB,mBAAwC,EAAA;QAFxC,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AARrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAe;;IAWzD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;AACvC,aAAA,qBAAqB;aACrB,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;QACzF,MAAM,YAAY,GAAgB;AAC9B,cAAE;AACF,cAAE;AACI,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,QAAQ,EAAE,EAAE;aACf;AACP,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;QAErC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;AAChD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;YACzD,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAC5E,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;;;+GApC9B,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,+HCnBrC,8oCAyBA,EAAA,MAAA,EAAA,CAAA,+DAAA,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,EAAAG,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,EAAAJ,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDNa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,8oCAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA;qJAGP,aAAa,EAAA,CAAA;sBAAtB;;;METQ,iCAAiC,CAAA;AAP9C,IAAA,WAAA,GAAA;QASa,IAAO,CAAA,OAAA,GAAG,KAAK;QACf,IAAe,CAAA,eAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAC/C;+GANY,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,yPCX9C,6tEAuDA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,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,EAAAH,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Ca,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAP7C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAG1B,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,6tEAAA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA;8BAGR,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;AEmBE,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;MAMvC,wBAAwB;;AAUxB,MAAO,6BACT,SAAQ,wBAAkF,CAAA;AA4B1F,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AA7B/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,kBAAkB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC7C,YAAA,OAAO,EAAE,EAA4E;AACrF,YAAA,UAAU,EAAE,EAA+E;AAC3F,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QACF,IAAQ,CAAA,QAAA,GAAsC,EAAE;QAChD,IAAW,CAAA,WAAA,GAAsC,EAAE;QACnD,IAAmB,CAAA,mBAAA,GAAsC,EAAE;QAQ3D,IAAe,CAAA,eAAA,GAAG,KAAK;QAEd,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAChF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAkC;;IAWxE,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAG;AACnF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B;AAChD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB;AAC3C,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;AACnD,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAClE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAC7C;YACD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC7D,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAChD;AACL,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AAClC,aAAA,gBAAgB;aAChB,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC;AAE1C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzCO,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;YAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACrD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;AAC9E,gBAAA,OAAO,EAAE,CAAC,SAAS,CAAC;;AAExB,YAAA,MAAM,KAAK,GAA4B;gBACnC,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;gBACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,OAAO,EAAE,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;gBACpE,UAAU,EAAE,4BAA4B,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;aAChF;AACD,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC;iBACnB,kBAAkB,CAAC,KAAK;iBACxB,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC;SACtD,CAAC,CACL;;QAGD,KAAK,CACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAE,CAAC,YAAY,EAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAE,CAAC,YAAY;AAEhD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;;;IAIvD,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,UAAU,CAAC,WAA+B,EAAE,SAAiB,EAAA;QACzD,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AACjD,YAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACrC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;;;AAKjE,IAAA,aAAa,CAAC,OAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;QAClD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE;YAC7B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;;AAEhD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;AAGjC,IAAA,gBAAgB,CAAC,UAA2C,EAAA;AACxD,QAAA,IAAI,CAAC,4BAA4B,GAAG,UAAU;AAC9C,QAAA,IAAI,CAAC,kBAAkB,GAAG,gCAAgC,CAAC,UAAU,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;QACrD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE;YAC7B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;;AAEnD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;IAGjC,MAAM,GAAA;AACF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AAC5C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;QAClD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACrD,QAAA,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;YACpE;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,MAAM,KAAK,GAAG;YACV,GAAI,IAAI,CAAC,wBAAwB,CAC7B;AACI,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,sBAAsB,EAAE,EAAE;AAC1B,gBAAA,OAAO,EAAE,SAAgB;AACzB,gBAAA,UAAU,EAAE,SAAgB;AAC5B,gBAAA,YAAY,EAAE,EAAE;AACnB,aAAA,EACD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CACU;AAC/B,YAAA,OAAO,EAAE,4BAA4B,CAAC,eAAe,EAAE,OAAO,CAAC;AAC/D,YAAA,UAAU,EAAE,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,CAAC;SAC3E;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,SAAS,CACjE,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACH,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SAC1F,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AAC5C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;QAClD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACrD,QAAA,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;YACpE;;QAEJ,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AAC3C,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,KAAI;AACxC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,YAAA,MAAM,KAAK,GAAG;gBACV,GAAI,IAAI,CAAC,wBAAwB,CAC7B,cAAc,EACd,IAAI,CAAC,UAAU,EACf,YAAY,CACe;AAC/B,gBAAA,OAAO,EAAE,4BAA4B,CAAC,eAAe,EAAE,OAAO,CAAC;AAC/D,gBAAA,UAAU,EAAE,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,CAAC;aAC3E;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACtE,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;;AAEF,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC;AACN,SAAC,CACJ;;AAGT,IAAA,iBAAiB,CAAC,KAAsB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;AAG/B,IAAA,cAAc,CAAC,KAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;IAG/B,kBAAkB,GAAA;AACd,QAAA,OAAO,CAAC,EACJ,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM;AAC1B,YAAA,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,kBAAkB,CAC1B;;IAGL,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;;AAGhC;;;AAGG;AACK,IAAA,wBAAwB,CAC5B,cAA2E,EAC3E,SAAiC,EACjC,YAA0B,EAAA;AAE1B,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK;QACjC,MAAM,KAAK,GAAG,yBAAyB,CAAC;AACpC,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,aAAa,EAAE,SAAS;YACxB,iBAAiB,EAAE,IAAI,CAAC,YAAY;YACpC,YAAY;AACZ,YAAA,kBAAkB,EAAE;gBAChB,YAAY;AACZ,gBAAA,IAAI,EAAE,cAAc,CAAC,IAAI,IAAI,EAAE;AAC/B,gBAAA,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;AAChD,aAAA;AACJ,SAAA,CAAC;QACF,OAAO,EAAE,GAAG,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,EAAE;;IAG/D,aAAa,CAAC,cAAsC,EAAE,YAA0B,EAAA;QACtF,MAAM,kBAAkB,GAAG,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC;AACxE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACvB,YAAA,IAAI,EAAE,kBAAkB,EAAE,IAAI,IAAI,EAAE;AACpC,YAAA,WAAW,EAAE,kBAAkB,EAAE,WAAW,IAAI,EAAE;YAClD,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,kBAAkB,EAAE,cAAc,CAAC,sBAAsB;AACzD,YAAA,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,EAAE;AACrC,YAAA,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,EAAE;AAC9C,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,OAAO,IAAI;AAC7C,gBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI;AACjC,gBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5F;;AAEL,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC,UAAU,IAAI;AACnD,gBAAA,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI;AACrC,gBAAA,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAChG;;AAEL,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EACrC,cAAc,EACd,kBAAkB,CACrB;;;+GA9RA,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,8GCnD1C,k5RA+LA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAF,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Ia,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAGrB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,k5RAAA,EAAA;;;AEnCd,MAAM,+BAA+B,GAAG,sBAAsB,CAEnE;AACE,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAChG,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACxG,CAAA;AAED,MAAM,kCAAkC,GAAG,GAAG,CAAA;;;;;;;CAO7C;AAED,MAAM,oCAAoC,GAAG,GAAG,CAAA;;;;;;;CAO/C;AACM,MAAM,wCAAwC,GAAG,+BAA+B,CAErF;AACE,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACzD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,mBAAmB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,KAC5D,UAAU,CAAC,GAAG,CAAC,SAAS,IACpB;SACK,MAAM,CAAC,sCAAsC,EAAE;AAC5C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,iBAAiB;AACpB,SAAA;KACJ;AACA,SAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAC5D;AACR,CAAA;AAEM,MAAM,0CAA0C,GAAG,iCAAiC,CAEzF;AACE,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACzD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,qBAAqB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,KAC7D;SACK,MAAM,CAAC,wCAAwC,EAAE;AAC9C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,iBAAiB;AACpB,SAAA;KACJ;SACA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAClE,CAAA;;AC1EM,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;AA2BrC,MAAO,2BACT,SAAQ,sBAA+E,CAAA;AA8CvF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QA5CX,IAAe,CAAA,eAAA,GAAG,sBAAsB;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAET,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC9B,YAAA,WAAW,EAAE,aAAa;SAC7B;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,8BAA8B,CAAC;AACxC,YAAA,WAAW,EAAE,wBAAwB;SACxC;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE;AAC1C,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,6BAA6B;AACvC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,eAAe;YACtC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GAlEG,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4GChCxC,++HAmGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDnEa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,++HAAA,EAAA;;;AEZrB,MAAM,8BAA8B,GAAG,GAAG,CAAA;;;;;;;;CAQzC;AAEM,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;MAMtC,8BAA8B;;AAG7B,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;MAMlC,8BAA8B;;AAG7B,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;MAMlC,8BAA8B;;AAU9B,MAAO,4BACT,SAAQ,wBAAgF,CAAA;AAUxF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAX/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,CAAC,EAAE,CAAC;AACjB,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;;IAWF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;QACjE,IAAI,CAAC,IAAI,EAAE;YACP;;AAEJ,QAAA,MAAM,KAAK,GAAG;YACV,IAAI;YACJ,WAAW;YACX,YAAY;SACoB;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CACrE,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACzF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC;aACA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,OAAO,IAAG;AACf,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,YAAY,EAAE,SAAS,CAAC,YAAY;aACJ;AACpC,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC;AAC1E,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC;AACN,SAAC,CACJ;;AAGT;;AAEG;AACO,IAAA,aAAa,CAAC,MAAmC,EAAA;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;AAClC,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;;;+GArG5F,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,6GC9DzC,0vGA+EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDjBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAGpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,0vGAAA,EAAA;;;AE7CrB,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;CAOjC;AAED,MAAM,iCAAiC,GAAG,GAAG,CAAA;;;;;;;CAO5C;AAED,MAAM,mCAAmC,GAAG,GAAG,CAAA;;;;;;;CAO9C;AAEM,MAAM,8BAA8B,GAAG,sBAAsB,CAElE;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACtD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB;SACK,MAAM,CAAC,4BAA4B,EAAE;AAClC,QAAA,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;KACjC;SACA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,eAAe,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC,WAAW;AAC9E,CAAA;AAEM,MAAM,uCAAuC,GAAG,+BAA+B,CAEpF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AAClD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC5D,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,mBAAmB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,KAC3D,UAAU,CAAC,GAAG,CAAC,SAAS,IACpB;SACK,MAAM,CAAC,qCAAqC,EAAE;AAC3C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ;AACA,SAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAC3D;AACR,CAAA;AAEM,MAAM,yCAAyC,GAAG,iCAAiC,CAExF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AAClD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC5D,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,qBAAqB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,KAC5D;SACK,MAAM,CAAC,uCAAuC,EAAE;AAC7C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ;SACA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAA;;AC5FM,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;AAyBpC,MAAO,0BACT,SAAQ,sBAA6E,CAAA;AAoCrF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAlCX,IAAe,CAAA,eAAA,GAAG,qBAAqB;AAC9B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,UAAU,CAAC;AACR,YAAA;AACI,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,gBAAA,KAAK,EAAEG,MAAC,CAAC,gBAAgB,CAAC;AAC1B,gBAAA,WAAW,EAAE,MAAM;AACtB,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,gBAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;SACJ;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,QAAQ,CAAC;YACN,EAAE,IAAI,EAAE,IAAI,EAAE;YACd,EAAE,IAAI,EAAE,WAAW,EAAE;YACrB,EAAE,IAAI,EAAE,WAAW,EAAE;YACrB,EAAE,IAAI,EAAE,MAAM,EAAE;YAChB,EAAE,IAAI,EAAE,aAAa,EAAE;SAC1B;AACA,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,IAAI,CAAC,SAAS,CAAC;AACX,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc;YACrC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GAxDG,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,2GC9BvC,kqGA+EA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDjDa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAGlB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,kqGAAA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA;;;AETd,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;MAMpC,qBAAqB;;AAUrB,MAAO,0BACT,SAAQ,wBAA4E,CAAA;AAWpF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAZ/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;AACvD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QACO,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,iBAAiB,CAAC;;IAWrF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;;IAGzD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,MAAM,KAAK,GAAG;YACV,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;SACb;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CACxD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACvF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC;aACA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,WAAW,IAAG;AACnB,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;aACb;YAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC7D,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC;AACN,SAAC,CACJ;;AAGT;;AAEG;IACO,aAAa,CAAC,MAA2B,EAAE,YAA0B,EAAA;AAC3E,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;AAC9B,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;;;+GAvG5F,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,kGCnCvC,ysGA8EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,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,EAAAF,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD3Ca,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,ysGAAA,EAAA;;;AE9Bd,MAAM,6BAA6B,GAAG,sBAAsB,CAEjE;AACE,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAC1D,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC9F,CAAA;;ACJM,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;MASlC,qBAAqB;;AAUrB,MAAO,wBAAyB,SAAQ,sBAG7C,CAAA;AAsBG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAtBX,IAAe,CAAA,eAAA,GAAG,mBAAmB;QAC5B,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC;AACzE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,0BAA0B;AACpC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa;YACpC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GA5CG,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,gGC5BrC,2mGA2EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD/Ca,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,2mGAAA,EAAA;;;AEJd,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;MAMhC,iBAAiB;;AAUjB,MAAO,sBACT,SAAQ,wBAAoE,CAAA;AAiB5E,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAlB/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,YAAA,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxC,YAAA,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACjC,eAAe,EAAE,CAAC,EAAE,CAAC;AACrB,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QAGO,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,aAAa,CAAC;;IAWjF,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AAClC,aAAA,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;aAC9B,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;;IAGpD,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;;IAGzD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;QAEJ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAChF,IAAI,CAAC,UAAU,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE;YACxE;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,MAAM,KAAK,GAAG;YACV,IAAI;YACJ,OAAO;YACP,KAAK;AACL,YAAA,UAAU,EAAE,aAAa;YACzB,MAAM;YACN,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,YAAY,EAAE,SAAS,CAAC,YAAY;SACV;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CACpD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACnF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC;aACA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,OAAO,IAAG;AACf,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,UAAU,EAAE,SAAS,CAAC,aAAa;gBACnC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,YAAY,EAAE,SAAS,CAAC,YAAY;aACV;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzD,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC;AACN,SAAC,CACJ;;AAGT;;AAEG;IACO,aAAa,CAAC,MAAuB,EAAE,YAA0B,EAAA;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,aAAa,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;AACxD,YAAA,MAAM,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;AACzC,YAAA,eAAe,EAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;AACvE,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;;;+GAjI5F,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,uGCtCnC,q5JAkHA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,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,EAAAF,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,mBAAA,EAAA,QAAA,EAAA,iGAAA,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,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,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGd,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,q5JAAA,EAAA;;;AEjCd,MAAM,wBAAwB,GAAG,sBAAsB,CAA0C;AACpG,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACtD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AACpF,CAAA;;ACNM,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;;;;;;MAS9B,iBAAiB;;AAUjB,MAAO,oBAAqB,SAAQ,sBAAiE,CAAA;AAoCvG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QApCX,IAAe,CAAA,eAAA,GAAG,eAAe;AACxB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzB,YAAA,KAAK,EAAEA,MAAC,CAAC,gBAAgB,CAAC;AAC1B,YAAA,WAAW,EAAE,SAAS;SACzB;AACA,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,YAAA,KAAK,EAAEA,MAAC,CAAC,cAAc,CAAC;AACxB,YAAA,WAAW,EAAE,OAAO;SACvB;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACzB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAI3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;+GAvDG,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,qGCxBjC,qlIAkGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD1Ea,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,qlIAAA,EAAA;;;MEHR,4BAA4B,CAAA;AAQrC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW;QAJ/B,IAAe,CAAA,eAAA,GAAG,KAAK;AAEf,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAkC;;IAIxE,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AAClC,aAAA,gBAAgB;aAChB,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzCM,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AAC3B,YAAA,MAAM,KAAK,GAAqC;gBAC5C,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;gBACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5E;AACD,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC;iBACnB,2BAA2B,CAAC,KAAK;iBACjC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,2BAA2B,CAAC;SAC/D,CAAC,CACL;;AAGL,IAAA,iBAAiB,CAAC,KAAsB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;AAG/B,IAAA,cAAc,CAAC,KAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;IAG/B,kBAAkB,GAAA;AACd,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;;IAGpF,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;;+GA3CvB,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,sFCnBzC,+xBAkBA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDCa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAGpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,+xBAAA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA;;;AECd,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;AAqB5B,MAAO,mBACT,SAAQ,wBAA8D,CAAA;AAUtE,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE;QALC,IAAc,CAAA,cAAA,GAAd,cAAc;QACZ,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;AAX/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;AAChD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC;QACO,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC;;IAW9E,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;;IAGf,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE;;IAGlB,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;;IAGzD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;QAEJ,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;QACpD,IAAI,CAAC,IAAI,EAAE;YACP;;AAEJ,QAAA,MAAM,KAAK,GAAG;YACV,IAAI;YACJ,YAAY;SACW;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CACjD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACL,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SAChF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC;AACN,SAAC,CACJ;;IAGL,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB;;AAEJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AACvC,QAAA,IAAI,CAAC;aACA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,IAAI,IAAG;AACZ,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;aACN;YAClC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,SAAC,CAAC;aAEL,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;SACrC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC;AACN,SAAC,CACJ;;AAGT;;AAEG;IACO,aAAa,CACnB,MAA+C,EAC/C,YAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;;;+GAzG5F,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,mGCvChC,8kFAmEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,8kFAAA,EAAA;;;AElCd,MAAM,qBAAqB,GAAG,sBAAsB,CAAoC;AAC3F,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AACnD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5G,CAAA;;ACUM,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;AAwB1B,MAAO,iBACT,SAAQ,sBAA2D,CAAA;AA6BnE,IAAA,WAAA,CACc,WAAwB,EAC1B,mBAAwC,EACxC,YAA0B,EAAA;AAElC,QAAA,KAAK,EAAE;QAJG,IAAW,CAAA,WAAA,GAAX,WAAW;QACb,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QACnB,IAAY,CAAA,YAAA,GAAZ,YAAY;QA7BxB,IAAe,CAAA,eAAA,GAAG,WAAW;QAG7B,IAAiB,CAAA,iBAAA,GAAa,EAAE;QAEvB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,CAAC;AAClE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB;AACzC,aAAA,WAAW;AACX,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB;AACA,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY;AACvC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB;AACrC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM;AAC/B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACxB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY;AACrC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAQ3B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK;YAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,GAAG,eAAe,CAAC,GAAG;AACvF,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC;;IAGN,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAC1C,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAC7B,oBAAoB,EAAE,EACtB,GAAG,CAAC,OAAO,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAC3C;QACD,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAC7D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAI;YAC1B,IAAI,YAAY,EAAE;AACd,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC;;SAEpD,CAAC,CACL;QACD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAC9D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAI;YAC1B,IAAI,YAAY,EAAE;AACd,gBAAA,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC;;iBAC/C;gBACH,OAAO,CAAC,CAAC;;SAEhB,CAAC,CACL;;AAGL,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;;IAGhE,YAAY,GAAA;AACR,QAAA,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;QAChD,OAAO,MAAM,CAAC,QAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;;AAGrG,IAAA,SAAS,CAAC,IAAuC,EAAA;AAC7C,QAAA,IAAI,CAAC;aACA,aAAa,CAAC,+BAA+B,EAAE;AAC5C,YAAA,MAAM,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,IAAI,CAAC,EAAE;AAClB,aAAA;AACD,YAAA,IAAI,EAAE,IAAI;SACb;AACA,aAAA,IAAI,CACDG,WAAS,CAAC,SAAS,IACf;AACI,cAAE,IAAI,CAAC,WAAW,CAAC;AACZ,iBAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS;AACnC,iBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;cAC1B,KAAK,CACd;AAEJ,aAAA,SAAS,CAAC;YACP,IAAI,EAAE,MAAM,IAAG;gBACX,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACH,MAAC,CAAC,CAAwC,sCAAA,CAAA,CAAC,EAAE;oBAC1E,YAAY,EAAE,MAAM,CAAC,MAAM;oBAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI;AACtB,iBAAA,CAAC;gBACF,IAAI,CAAC,iBAAiB,EAAE;aAC3B;YACD,KAAK,EAAE,GAAG,IAAG;AACT,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC;aACtC;AACJ,SAAA,CAAC;;IAGV,iBAAiB,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE;;+GA7HzB,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQf,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpDtC,+wKAsHA,EAAA,MAAA,EAAA,CAAA,kpBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,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,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAjB,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD1Ea,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGR,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,+wKAAA,EAAA,MAAA,EAAA,CAAA,kpBAAA,CAAA,EAAA;6IAUmB,cAAc,EAAA,CAAA;sBAAjD,SAAS;uBAAC,uBAAuB;;;AEhDzB,MAAA,2BAA2B,GAAoD;AACxF,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,KAAK,EAAEF,MAAC,CAAC,2BAA2B,CAAC;AACrC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,SAAS,EAAE,WAAW;IACtB,kBAAkB,EAAE,UAAU,CAAC,mBAAmB;AAClD,IAAA,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,KAAI;QAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAC7C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAE7D,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU;AACrC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAE1C,QAAA,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;YACrE,QAAQ,EAAE,MAAK;AACX,gBAAA,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,CAAA,2CAAA,CAA6C,CAAC,EAAE;oBAC1E,YAAY,EAAE,SAAS,CAAC,MAAM;oBAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI;AACtB,iBAAA,CAAC;gBACF,aAAa,CAAC,OAAO,EAAE;AACvB,gBAAA,cAAc,EAAE;aACnB;AACJ,SAAA,CAAC;KACL;;;ACpBC,MAAO,eAAgB,SAAQ,kBAAyC,CAAA;IAC1E,WAAY,CAAA,MAAc,EAAE,WAAwB,EAAA;QAChD,KAAK,CACD,MAAM,EACN;AACI,YAAA,UAAU,EAAE,eAAwB;AACpC,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAS;AAC7B,SAAA,EACD,EAAE,IACE,WAAW,CAAC;AACP,aAAA,sBAAsB;aACtB,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,CACvD;;+GAlBI,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCMY,YAAY,GAAG,CAAC,WAAwB,KAAc;AAC/D,IAAA;AACI,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAEK,MAAC,CAAC,oBAAoB,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,MACJ,MAAM,CAAC,WAAW;iBACb,KAAK,CAAC,wBAAwB;AAC9B,iBAAA,SAAS,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AACzE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACpD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,oBAAoB;AAChC,YAAA,UAAU,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AAC7C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAC/D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,sBAAsB;AAClC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE;AACzF,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;AACjE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,UAAU,EAAEA,MAAC,CAAC,qBAAqB,CAAC;AACvC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACzD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AAC7E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAC3D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,UAAU,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AAC9C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAChE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE;AAC3F,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAClE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACxD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC3E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC;AAC1D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,UAAU,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACtD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACvE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACxD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,mBAAmB;AAC/B,YAAA,UAAU,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AAC7C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,mBAAmB,CAAC;AAC9D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE;AACzF,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAChE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,UAAU,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC;AAC1D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AAC/E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;AAC5D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,UAAU,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACzD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AAC/E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAC3D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,UAAU,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACtD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACvE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACxD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,sBAAsB;AAClC,YAAA,UAAU,EAAEA,MAAC,CAAC,6BAA6B,CAAC;AAC/C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;AACjE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,wBAAwB;AACpC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE;AAC7F,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;AACnE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,UAAU,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AAC9C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAChE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE;AAC3F,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAClE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AAC3C,YAAA,UAAU,EAAE,uBAAuB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,MACJ,MAAM,CAAC,WAAW;iBACb,KAAK,CAAC,+BAA+B;AACrC,iBAAA,SAAS,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAClE,KAAA;;;MC9GQ,cAAc,CAAA;aACR,IAA+B,CAAA,+BAAA,GAAG,KAAH,CAAS;IAEvD,WAAY,CAAA,yBAAoD,EAAE,WAAwB,EAAA;AACtF,QAAA,IAAI,cAAc,CAAC,+BAA+B,EAAE;YAChD;;AAEJ,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC;AAErE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;AAEtE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,8BAA8B,CAAC;AAE5E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;AAEnE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,wCAAwC,CAAC;AACtF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,0CAA0C,CAAC;AACxF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,+BAA+B,CAAC;AAE7E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,uCAAuC,CAAC;AACrF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,yCAAyC,CAAC;AACvF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,8BAA8B,CAAC;AAE5E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,6BAA6B,CAAC;AAE3E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;AAEtE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,yBAAyB,CAAC;AAEvE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;AAEnE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,2BAA2B,CAAC;AAEzE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,uCAAuC,CAAC;AACrF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,yCAAyC,CAAC;AACvF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,8BAA8B,CAAC;QAE5E,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC5B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,mBAAmB;AACjC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,GAAG,EAAEA,MAAC,CAAC,iBAAiB,CAAC;AACzB,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,qBAAqB;AAChC,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,4BAA4B,CAAC;AAC7D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,GAAG,EAAEA,MAAC,CAAC,qBAAqB,CAAC;AAC7B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,oBAAoB;AAClC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE;AACH,8BAAE,MAAM,CAAC,IAAI,KAAK;AACd,kCAAE;kCACA,MAAM,CAAC;AACb,8BAAEA,MAAC,CAAC,6BAA6B,CAAC;AACtC,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,GAAG,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AACnC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,0BAA0B;AACxC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,GAAG,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAChC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,oBAAoB;AAC/B,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE;8BACD,GAAG,MAAM,CAAC,SAAS,CAAI,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAE;AAC1C,8BAAEA,MAAC,CAAC,gCAAgC,CAAC;AACzC,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,iBAAiB;AAC/B,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAEA,MAAC,CAAC,eAAe,CAAC;AACvB,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,GAAGA,MAAC,CAAC,0BAA0B,CAAC;AAClE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,GAAG,EAAEA,MAAC,CAAC,6BAA6B,CAAC;AACrC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,2BAA2B;AACzC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,wBAAwB;AAClC,YAAA,GAAG,EAAEA,MAAC,CAAC,0BAA0B,CAAC;AAClC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,KAAK,EAAE,+BAA+B;AACtC,gBAAA,SAAS,EAAE,gBAAgB;AAC3B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,qCAAqC,CAAC;AACtE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,GAAG,EAAEA,MAAC,CAAC,gCAAgC,CAAC;AACxC,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,4BAA4B;AAC1C,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,GAAG,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AACpC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,0BAA0B;AACxC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,uBAAuB;AACjC,YAAA,GAAG,EAAEA,MAAC,CAAC,yBAAyB,CAAC;AACjC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,4BAA4B;AACvC,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,oCAAoC,CAAC;AACrE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,GAAG,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AACnC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,wBAAwB;AACtC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,GAAG,EAAEA,MAAC,CAAC,uBAAuB,CAAC;AAC/B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,0BAA0B;AACrC,gBAAA,KAAK,EAAE,4BAA4B;AACnC,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,kCAAkC,CAAC;AACnE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,GAAG,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AAC9B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,oBAAoB;AAClC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,GAAG,EAAEA,MAAC,CAAC,mBAAmB,CAAC;AAC3B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,8BAA8B,CAAC;AAC/D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,GAAG,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AAC9B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,oBAAoB;AAClC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,6BAA6B,CAAC;AAC9D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,iBAAiB;AAC/B,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAEA,MAAC,CAAC,eAAe,CAAC;AACvB,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,0BAA0B,CAAC;AAC3D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,uBAAuB;AACjC,YAAA,GAAG,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AACpC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,uBAAuB;AACrC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,GAAG,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC5B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,gBAAgB;AAC9B,SAAA,CAAC;QAEF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,GAAG,EAAEA,MAAC,CAAC,yBAAyB,CAAC;AACjC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,0BAA0B;AACxC,SAAA,CAAC;QACF,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,uBAAuB;AACjC,YAAA,GAAG,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAChC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,4BAA4B;AACvC,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,mCAAmC,CAAC;AACpE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC;AACF,QAAA,cAAc,CAAC,+BAA+B,GAAG,IAAI;;+GAzUhD,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBApCnB,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;YAC1B,iBAAiB;YACjB,mBAAmB;YACnB,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,2BAA2B;YAC3B,6BAA6B;YAC7B,0BAA0B;YAC1B,4BAA4B;YAC5B,uBAAuB;YACvB,yBAAyB;YACzB,wBAAwB;YACxB,qBAAqB;YACrB,mBAAmB;YACnB,iCAAiC;YACjC,sCAAsC;YACtC,iBAAiB;YACjB,+BAA+B;YAC/B,uBAAuB;YACvB,6BAA6B;YAC7B,2BAA2B;YAC3B,gBAAgB;YAChB,4BAA4B;YAC5B,mBAAmB;YACnB,0BAA0B;AAC1B,YAAA,4BAA4B,aA3CtB,YAAY,EAAAL,IAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AA8Cb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EA7CZ,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,CAAC,WAAwB,KAAK,YAAY,CAAC,WAAW,CAAC;AACnE,gBAAA,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,aAAA;AACJ,SAAA,EAAA,OAAA,EAAA,CARS,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,EAAA,CAAA,CAAA;;4FA8CxC,cAAc,EAAA,UAAA,EAAA,CAAA;kBA/C1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,CAAC,WAAwB,KAAK,YAAY,CAAC,WAAW,CAAC;AACnE,4BAAA,KAAK,EAAE,IAAI;4BACX,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,yBAAA;AACJ,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,wBAAwB;wBACxB,0BAA0B;wBAC1B,0BAA0B;wBAC1B,iBAAiB;wBACjB,mBAAmB;wBACnB,oBAAoB;wBACpB,uBAAuB;wBACvB,oBAAoB;wBACpB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,2BAA2B;wBAC3B,6BAA6B;wBAC7B,0BAA0B;wBAC1B,4BAA4B;wBAC5B,uBAAuB;wBACvB,yBAAyB;wBACzB,wBAAwB;wBACxB,qBAAqB;wBACrB,mBAAmB;wBACnB,iCAAiC;wBACjC,sCAAsC;wBACtC,iBAAiB;wBACjB,+BAA+B;wBAC/B,uBAAuB;wBACvB,6BAA6B;wBAC7B,2BAA2B;wBAC3B,gBAAgB;wBAChB,4BAA4B;wBAC5B,mBAAmB;wBACnB,0BAA0B;wBAC1B,4BAA4B;AAC/B,qBAAA;AACJ,iBAAA;;;AChID;;ACAA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"vendure-admin-ui-settings.mjs","sources":["../../src/lib/settings/src/components/zone-member-list/zone-member-controls.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list-header.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.html","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.ts","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.html","../../src/lib/settings/src/components/permission-grid/permission-grid.component.ts","../../src/lib/settings/src/components/permission-grid/permission-grid.component.html","../../src/lib/settings/src/components/admin-detail/admin-detail.component.ts","../../src/lib/settings/src/components/admin-detail/admin-detail.component.html","../../src/lib/settings/src/components/administrator-list/administrator-list-bulk-actions.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.html","../../src/lib/settings/src/components/channel-detail/channel-detail.component.ts","../../src/lib/settings/src/components/channel-detail/channel-detail.component.html","../../src/lib/settings/src/components/channel-list/channel-list-bulk-actions.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.html","../../src/lib/settings/src/components/country-detail/country-detail.component.ts","../../src/lib/settings/src/components/country-detail/country-detail.component.html","../../src/lib/settings/src/components/country-list/country-list-bulk-actions.ts","../../src/lib/settings/src/components/country-list/country-list.component.ts","../../src/lib/settings/src/components/country-list/country-list.component.html","../../src/lib/settings/src/components/global-settings/global-settings.component.ts","../../src/lib/settings/src/components/global-settings/global-settings.component.html","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.ts","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.html","../../src/lib/settings/src/components/payment-method-list/payment-method-list-bulk-actions.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.html","../../src/lib/settings/src/components/profile/profile.component.ts","../../src/lib/settings/src/components/profile/profile.component.html","../../src/lib/settings/src/components/role-detail/role-detail.component.ts","../../src/lib/settings/src/components/role-detail/role-detail.component.html","../../src/lib/settings/src/components/role-list/role-list-bulk-actions.ts","../../src/lib/settings/src/components/role-list/role-list.component.ts","../../src/lib/settings/src/components/role-list/role-list.component.html","../../src/lib/settings/src/components/seller-detail/seller-detail.component.ts","../../src/lib/settings/src/components/seller-detail/seller-detail.component.html","../../src/lib/settings/src/components/seller-list/seller-list-bulk-actions.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.html","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.ts","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.html","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.ts","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.html","../../src/lib/settings/src/components/test-address-form/test-address-form.component.ts","../../src/lib/settings/src/components/test-address-form/test-address-form.component.html","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.ts","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.html","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.ts","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.html","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list-bulk-actions.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.html","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.ts","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.html","../../src/lib/settings/src/components/stock-location-list/stock-location-list-bulk-actions.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.html","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.ts","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.html","../../src/lib/settings/src/components/tax-category-list/tax-category-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.html","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.ts","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.html","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.html","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.ts","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.html","../../src/lib/settings/src/components/zone-detail/zone-detail.component.ts","../../src/lib/settings/src/components/zone-detail/zone-detail.component.html","../../src/lib/settings/src/components/zone-list/zone-list-bulk-actions.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.html","../../src/lib/settings/src/components/zone-member-list/zone-member-list-bulk-actions.ts","../../src/lib/settings/src/providers/routing/profile-resolver.ts","../../src/lib/settings/src/settings.routes.ts","../../src/lib/settings/src/settings.module.ts","../../src/lib/settings/src/public_api.ts","../../src/lib/settings/src/vendure-admin-ui-settings.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vdrZoneMemberControls]',\n standalone: false\n})\nexport class ZoneMemberControlsDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vdrZoneMemberListHeader]',\n standalone: false\n})\nexport class ZoneMemberListHeaderDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport {\n BulkActionLocationId,\n DataService,\n GetZoneListQuery,\n GetZoneMembersDocument,\n GetZoneMembersQuery,\n ItemOf,\n SelectionManager,\n} from '@vendure/admin-ui/core';\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject, switchMap } from 'rxjs';\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\n\nimport { ZoneMemberControlsDirective } from './zone-member-controls.directive';\nimport { ZoneMemberListHeaderDirective } from './zone-member-list-header.directive';\n\nexport type ZoneMember = { id: string; name: string; code: string };\n\n@Component({\n selector: 'vdr-zone-member-list',\n templateUrl: './zone-member-list.component.html',\n styleUrls: ['./zone-member-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ZoneMemberListComponent implements OnInit, OnChanges, OnDestroy {\n @Input() locationId: BulkActionLocationId;\n @Input() members?: ZoneMember[];\n @Input() selectedMemberIds: string[] = [];\n @Input() activeZone: ItemOf<GetZoneListQuery, 'zones'>;\n @Output() selectionChange = new EventEmitter<string[]>();\n @ContentChild(ZoneMemberListHeaderDirective) headerTemplate: ZoneMemberListHeaderDirective;\n @ContentChild(ZoneMemberControlsDirective) controlsTemplate: ZoneMemberControlsDirective;\n members$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members'] | ZoneMember[]>;\n filterTermControl = new FormControl('');\n filteredMembers$: Observable<ZoneMember[]>;\n totalItems$: Observable<number>;\n currentPage = 1;\n itemsPerPage = 10;\n selectionManager = new SelectionManager<ZoneMember>({\n multiSelect: true,\n itemsAreEqual: (a, b) => a.id === b.id,\n additiveMode: true,\n });\n private membersInput$ = new Subject<ZoneMember[]>();\n private activeZoneInput$ = new BehaviorSubject<ItemOf<GetZoneListQuery, 'zones'> | undefined>(undefined);\n private destroy$ = new Subject<void>();\n private refresh$ = new Subject<void>();\n\n constructor(private dataService: DataService) {}\n\n ngOnInit() {\n const activeZoneMembers$ = merge(this.activeZoneInput$, this.refresh$).pipe(\n switchMap(activeZone =>\n this.activeZone\n ? this.dataService\n .query(GetZoneMembersDocument, { zoneId: this.activeZone.id })\n .mapSingle(({ zone }) => zone?.members ?? [])\n : of([]),\n ),\n );\n this.members$ = merge(activeZoneMembers$, this.membersInput$);\n\n this.members$.pipe(take(1)).subscribe(members => {\n this.selectionManager.setCurrentItems(\n members?.filter(m => this.selectedMemberIds.includes(m.id)) ?? [],\n );\n });\n this.selectionManager.selectionChanges$.pipe(takeUntil(this.destroy$)).subscribe(selection => {\n this.selectionChange.emit(selection.map(s => s.id));\n });\n this.filteredMembers$ = combineLatest(\n this.members$,\n this.filterTermControl.valueChanges.pipe(startWith('')),\n ).pipe(\n map(([members, filterTerm]) => {\n if (filterTerm) {\n const term = filterTerm?.toLocaleLowerCase() ?? '';\n return members.filter(\n m =>\n m.name.toLocaleLowerCase().includes(term) ||\n m.code.toLocaleLowerCase().includes(term),\n );\n } else {\n return members;\n }\n }),\n );\n this.totalItems$ = this.filteredMembers$.pipe(map(members => members.length));\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('members' in changes) {\n this.membersInput$.next(this.members ?? []);\n }\n if ('activeZone' in changes) {\n this.activeZoneInput$.next(this.activeZone);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n refresh() {\n this.refresh$.next();\n }\n}\n","<vdr-data-table-2\n [id]=\"locationId\"\n [items]=\"filteredMembers$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [itemsPerPage]=\"itemsPerPage\"\n [currentPage]=\"currentPage\"\n (itemsPerPageChange)=\"itemsPerPage = $event\"\n (pageChange)=\"currentPage = $event\"\n>\n <vdr-bulk-action-menu\n [locationId]=\"locationId\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"filterTermControl\"\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-member=\"item\">\n {{ member.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\n <ng-template let-member=\"item\">\n {{ member.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\n <ng-template let-member=\"item\">\n {{ member.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\">\n <ng-template let-member=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/settings/countries', member.id]\"\n ><span> {{ member.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\n <ng-template let-member=\"item\">\n {{ member.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-member=\"item\">\n <vdr-chip *ngIf=\"member.enabled\" colorType=\"success\">{{ 'common.enabled' | translate }}</vdr-chip>\n <vdr-chip *ngIf=\"!member.enabled\" colorType=\"warning\">{{ 'common.disabled' | translate }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport {\n DataService,\n Dialog,\n GetCountryListDocument,\n GetCountryListQuery,\n GetZoneListQuery,\n GetZoneMembersDocument,\n GetZoneMembersQuery,\n ItemOf,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map, withLatestFrom } from 'rxjs/operators';\n\nexport const GET_ZONE_MEMBERS = gql`\n query GetZoneMembers($zoneId: ID!) {\n zone(id: $zoneId) {\n id\n createdAt\n updatedAt\n name\n members {\n createdAt\n updatedAt\n id\n name\n code\n enabled\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-add-country-to-zone-dialog',\n templateUrl: './add-country-to-zone-dialog.component.html',\n styleUrls: ['./add-country-to-zone-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AddCountryToZoneDialogComponent implements Dialog<string[]>, OnInit {\n resolveWith: (result?: string[]) => void;\n zoneName: string;\n zoneId: string;\n currentMembers$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members']>;\n availableCountries$: Observable<Array<ItemOf<GetCountryListQuery, 'countries'>>>;\n selectedMemberIds: string[] = [];\n\n constructor(private dataService: DataService) {}\n\n ngOnInit(): void {\n this.currentMembers$ = this.dataService\n .query(GetZoneMembersDocument, { zoneId: this.zoneId })\n .mapSingle(({ zone }) => zone?.members ?? []);\n this.availableCountries$ = this.dataService\n .query(GetCountryListDocument, {\n options: { take: 999 },\n })\n .mapStream(data => data.countries.items)\n .pipe(\n withLatestFrom(this.currentMembers$),\n map(([countries, currentMembers]) =>\n countries.filter(c => !currentMembers.find(cm => cm.id === c.id)),\n ),\n );\n }\n\n cancel() {\n this.resolveWith();\n }\n\n add() {\n this.resolveWith(this.selectedMemberIds);\n }\n}\n","<ng-template vdrDialogTitle>{{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}</ng-template>\n\n<vdr-zone-member-list\n locationId=\"zone-members-list\"\n [members]=\"availableCountries$ | async\"\n [selectedMemberIds]=\"selectedMemberIds\"\n (selectionChange)=\"selectedMemberIds = $event\"\n>\n</vdr-zone-member-list>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedMemberIds.length\" class=\"btn btn-primary\">\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}\n </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { PermissionDefinition } from '@vendure/admin-ui/core';\n\nexport interface PermissionGridRow {\n label: string;\n description: string;\n permissions: PermissionDefinition[];\n}\n\n/**\n * A table showing and allowing the setting of all possible CRUD permissions.\n */\n@Component({\n selector: 'vdr-permission-grid',\n templateUrl: './permission-grid.component.html',\n styleUrls: ['./permission-grid.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PermissionGridComponent implements OnInit {\n @Input() permissionDefinitions: PermissionDefinition[];\n @Input() activePermissions: string[];\n @Input() readonly = false;\n @Output() permissionChange = new EventEmitter<{ permission: string; value: boolean }>();\n gridData: PermissionGridRow[];\n\n ngOnInit() {\n this.buildGrid();\n }\n\n setPermission(permission: string, value: boolean) {\n if (!this.readonly) {\n this.permissionChange.emit({ permission, value });\n }\n }\n\n toggleAll(defs: PermissionDefinition[]) {\n const value = defs.some(d => !this.activePermissions.includes(d.name));\n for (const def of defs) {\n this.permissionChange.emit({ permission: def.name, value });\n }\n }\n\n private buildGrid() {\n const crudGroups = new Map<string, PermissionDefinition[]>();\n const nonCrud: PermissionDefinition[] = [];\n const crudRe = /^(Create|Read|Update|Delete)([a-zA-Z]+)$/;\n for (const def of this.permissionDefinitions) {\n const isCrud = crudRe.test(def.name);\n if (isCrud) {\n const groupName = def.name.match(crudRe)?.[2];\n if (groupName) {\n const existing = crudGroups.get(groupName);\n if (existing) {\n existing.push(def);\n } else {\n crudGroups.set(groupName, [def]);\n }\n }\n } else if (def.assignable) {\n nonCrud.push(def);\n }\n }\n this.gridData = [\n ...nonCrud.map(d => ({\n label: d.name,\n description: d.description,\n permissions: [d],\n })),\n ...Array.from(crudGroups.entries()).map(([label, defs]) => ({\n label,\n description: this.extractCrudDescription(defs[0]),\n permissions: defs,\n })),\n ];\n }\n\n private extractCrudDescription(def: PermissionDefinition): string {\n return def.description.replace(/Grants permission to [\\w]+/, 'Grants permissions on');\n }\n}\n","<table class=\"table\">\n <tbody>\n <tr *ngFor=\"let section of gridData\">\n <td class=\"permission-group left\">\n <div><strong>{{ section.label | translate }}</strong></div>\n <small>{{ section.description | translate }}</small><br>\n <button *ngIf=\"1 < section.permissions.length && !readonly\" class=\"button-small\" (click)=\"toggleAll(section.permissions)\">\n {{ 'common.toggle-all' | translate }}\n </button>\n </td>\n <td *ngFor=\"let permission of section.permissions\" [attr.colspan]=\"section.permissions.length === 1 ? 4 : 1\">\n <vdr-select-toggle\n size=\"small\"\n [title]=\"permission.description\"\n [label]=\"permission.name\"\n [disabled]=\"readonly\"\n [selected]=\"activePermissions?.includes(permission.name)\"\n (selectedChange)=\"setPermission(permission.name, $event)\"\n ></vdr-select-toggle>\n </td>\n </tr>\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { ResultOf } from '@graphql-typed-document-node/core';\nimport {\n ADMINISTRATOR_FRAGMENT,\n CreateAdministratorInput,\n DataService,\n GetAdministratorDetailDocument,\n getCustomFieldsDefaults,\n LanguageCode,\n NotificationService,\n Permission,\n PermissionDefinition,\n RoleFragment,\n TypedBaseDetailComponent,\n UpdateAdministratorInput,\n} from '@vendure/admin-ui/core';\nimport { CUSTOMER_ROLE_CODE } from '@vendure/common/lib/shared-constants';\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport interface PermissionsByChannel {\n channelId: string;\n channelCode: string;\n permissions: { [K in Permission]: boolean };\n}\n\nexport const GET_ADMINISTRATOR_DETAIL = gql`\n query GetAdministratorDetail($id: ID!) {\n administrator(id: $id) {\n ...Administrator\n }\n }\n ${ADMINISTRATOR_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-admin-detail',\n templateUrl: './admin-detail.component.html',\n styleUrls: ['./admin-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AdminDetailComponent\n extends TypedBaseDetailComponent<typeof GetAdministratorDetailDocument, 'administrator'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Administrator');\n detailForm = this.formBuilder.group({\n emailAddress: ['', Validators.required],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n password: [''],\n roles: [\n [] as NonNullable<\n ResultOf<typeof GetAdministratorDetailDocument>['administrator']\n >['user']['roles'],\n ],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n permissionDefinitions: PermissionDefinition[];\n allRoles$: Observable<RoleFragment[]>;\n selectedRoles: RoleFragment[] = [];\n selectedRolePermissions: { [channelId: string]: PermissionsByChannel } = {} as any;\n selectedChannelId: string | null = null;\n\n getAvailableChannels(): PermissionsByChannel[] {\n return Object.values(this.selectedRolePermissions);\n }\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.allRoles$ = this.dataService.administrator\n .getRoles(999)\n .mapStream(item => item.roles.items.filter(i => i.code !== CUSTOMER_ROLE_CODE));\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\n if (\n !userStatus.permissions.includes(Permission.CreateAdministrator) &&\n !userStatus.permissions.includes(Permission.UpdateAdministrator)\n ) {\n const rolesSelect = this.detailForm.get('roles');\n if (rolesSelect) {\n rolesSelect.disable();\n }\n }\n });\n this.permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n rolesChanged(roles: RoleFragment[]) {\n this.buildPermissionsMap();\n }\n\n getPermissionsForSelectedChannel(): string[] {\n function getActivePermissions(input: PermissionsByChannel['permissions']): string[] {\n return Object.entries(input)\n .filter(([permission, active]) => active)\n .map(([permission, active]) => permission);\n }\n if (this.selectedChannelId) {\n const selectedChannel = this.selectedRolePermissions[this.selectedChannelId];\n if (selectedChannel) {\n const permissionMap = this.selectedRolePermissions[this.selectedChannelId].permissions;\n return getActivePermissions(permissionMap);\n }\n }\n const channels = Object.values(this.selectedRolePermissions);\n if (0 < channels.length) {\n this.selectedChannelId = channels[0].channelId;\n return getActivePermissions(channels[0].permissions);\n }\n return [];\n }\n\n create() {\n const { emailAddress, firstName, lastName, password, customFields, roles } = this.detailForm.value;\n if (!emailAddress || !firstName || !lastName || !password) {\n return;\n }\n const administrator: CreateAdministratorInput = {\n emailAddress,\n firstName,\n lastName,\n password,\n customFields,\n roleIds: roles?.map(role => role.id).filter(notNullOrUndefined) ?? [],\n };\n this.dataService.administrator.createAdministrator(administrator).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Administrator',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createAdministrator.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Administrator',\n });\n },\n );\n }\n\n save() {\n this.entity$\n .pipe(\n take(1),\n mergeMap(({ id }) => {\n const formValue = this.detailForm.value;\n const administrator: UpdateAdministratorInput = {\n id,\n emailAddress: formValue.emailAddress,\n firstName: formValue.firstName,\n lastName: formValue.lastName,\n password: formValue.password,\n customFields: formValue.customFields,\n roleIds: formValue.roles?.map(role => role.id),\n };\n return this.dataService.administrator.updateAdministrator(administrator);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Administrator',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Administrator',\n });\n },\n );\n }\n\n protected setFormValues(\n entity: NonNullable<ResultOf<typeof GetAdministratorDetailDocument>['administrator']>,\n languageCode: LanguageCode,\n ) {\n this.detailForm.patchValue({\n emailAddress: entity.emailAddress,\n firstName: entity.firstName,\n lastName: entity.lastName,\n roles: entity.user.roles,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n }\n const passwordControl = this.detailForm.get('password');\n if (passwordControl) {\n if (!entity.id) {\n passwordControl.setValidators([Validators.required]);\n } else {\n passwordControl.setValidators([]);\n }\n }\n this.buildPermissionsMap();\n }\n\n private buildPermissionsMap() {\n const permissionsControl = this.detailForm.get('roles');\n if (permissionsControl) {\n const roles = permissionsControl.value;\n const channelIdPermissionsMap = new Map<string, Set<Permission>>();\n const channelIdCodeMap = new Map<string, string>();\n\n for (const role of roles ?? []) {\n for (const channel of role.channels) {\n const channelPermissions = channelIdPermissionsMap.get(channel.id);\n const permissionSet = channelPermissions || new Set<Permission>();\n\n role.permissions.forEach(p => permissionSet.add(p));\n channelIdPermissionsMap.set(channel.id, permissionSet);\n channelIdCodeMap.set(channel.id, channel.code);\n }\n }\n\n this.selectedRolePermissions = {} as any;\n for (const channelId of Array.from(channelIdPermissionsMap.keys())) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const permissionSet = channelIdPermissionsMap.get(channelId)!;\n const permissionsHash: { [K in Permission]: boolean } = {} as any;\n for (const def of this.serverConfigService.getPermissionDefinitions()) {\n permissionsHash[def.name] = permissionSet.has(def.name as Permission);\n }\n this.selectedRolePermissions[channelId] = {\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n channelId,\n channelCode: channelIdCodeMap.get(channelId)!,\n permissions: permissionsHash,\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n };\n }\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"administrator-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"'UpdateAdministrator'\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"administrator-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n [label]=\"'settings.email-address-or-identifier' | translate\"\n for=\"emailAddress\"\n class=\"form-grid-span\"\n >\n <input\n id=\"emailAddress\"\n type=\"text\"\n formControlName=\"emailAddress\"\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\n <input\n id=\"firstName\"\n type=\"text\"\n formControlName=\"firstName\"\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\n <input\n id=\"lastName\"\n type=\"text\"\n formControlName=\"lastName\"\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field\n *ngIf=\"isNew$ | async\"\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n <vdr-form-field\n *ngIf=\"\n !(isNew$ | async) &&\n (['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\n \"\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n [readOnlyToggle]=\"true\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Administrator\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"administrator-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n <vdr-page-block>\n <vdr-card [title]=\"'settings.roles' | translate\">\n <ng-select\n [items]=\"allRoles$ | async\"\n [multiple]=\"true\"\n [hideSelected]=\"true\"\n formControlName=\"roles\"\n (change)=\"rolesChanged($event)\"\n bindLabel=\"description\"\n ></ng-select>\n\n <ul class=\"nav mt-2\" role=\"tablist\">\n <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\n <button\n [id]=\"channel.channelId\"\n (click)=\"selectedChannelId = channel.channelId\"\n class=\"btn btn-link nav-link\"\n [class.active]=\"selectedChannelId === channel.channelId\"\n [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\n type=\"button\"\n >\n {{ channel.channelCode | channelCodeToLabel | translate }}\n </button>\n </li>\n </ul>\n <vdr-permission-grid\n [activePermissions]=\"getPermissionsForSelectedChannel()\"\n [permissionDefinitions]=\"permissionDefinitions\"\n [readonly]=\"true\"\n ></vdr-permission-grid>\n </vdr-card>\n </vdr-page-block>\n</form>\n","import {\n createBulkDeleteAction,\n GetAdministratorListQuery,\n ItemOf,\n Permission,\n} from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteAdministratorsBulkAction = createBulkDeleteAction<\n ItemOf<GetAdministratorListQuery, 'administrators'>\n>({\n location: 'administrator-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\n getItemName: item => item.firstName + ' ' + item.lastName,\n bulkDelete: (dataService, ids) =>\n dataService.administrator.deleteAdministrators(ids).pipe(map(res => res.deleteAdministrators)),\n});\n","import { Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n ADMINISTRATOR_FRAGMENT,\n GetAdministratorListDocument,\n LogicalOperator,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_ADMINISTRATOR_LIST = gql`\n query GetAdministratorList($options: AdministratorListOptions) {\n administrators(options: $options) {\n items {\n ...AdministratorListItem\n }\n totalItems\n }\n }\n fragment AdministratorListItem on Administrator {\n id\n createdAt\n updatedAt\n firstName\n lastName\n emailAddress\n user {\n id\n identifier\n lastLogin\n roles {\n id\n createdAt\n updatedAt\n code\n description\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-administrator-list',\n templateUrl: './administrator-list.component.html',\n styleUrls: ['./administrator-list.component.scss'],\n standalone: false\n})\nexport class AdministratorListComponent extends TypedBaseListComponent<\n typeof GetAdministratorListDocument,\n 'administrators'\n> {\n dataTableListId = 'administrator-list';\n readonly customFields = this.getCustomFieldConfig('Administrator');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'firstName',\n type: { kind: 'text' },\n label: _('settings.first-name'),\n filterField: 'firstName',\n })\n .addFilter({\n name: 'lastName',\n type: { kind: 'text' },\n label: _('settings.last-name'),\n filterField: 'lastName',\n })\n .addFilter({\n name: 'emailAddress',\n type: { kind: 'text' },\n label: _('settings.email-address'),\n filterField: 'emailAddress',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'lastName' })\n .addSort({ name: 'emailAddress' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetAdministratorListDocument,\n getItems: data => data.administrators,\n setVariables: (skip, take) => this.createSearchQuery(skip, take, this.searchTermControl.value),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n createSearchQuery(skip: number, take: number, searchTerm: string | null) {\n let _filter = {};\n let filterOperator: LogicalOperator = LogicalOperator.AND;\n\n if (searchTerm) {\n _filter = {\n emailAddress: {\n contains: searchTerm,\n },\n firstName: {\n contains: searchTerm,\n },\n lastName: {\n contains: searchTerm,\n },\n };\n filterOperator = LogicalOperator.OR;\n }\n return {\n options: {\n skip,\n take,\n filter: {\n ...(_filter ?? {}),\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n filterOperator,\n },\n };\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"administrator-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateAdministrator']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'admin.create-new-administrator' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"administrator-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"administrator-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-administrator=\"item\">\n {{ administrator.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-administrator=\"item\">\n {{ administrator.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-administrator=\"item\">\n {{ administrator.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\n <ng-template let-administrator=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', administrator.id]\"\n ><span>{{ administrator.firstName }} {{ administrator.lastName }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\n <ng-template let-administrator=\"item\">\n {{ administrator.emailAddress }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.roles' | translate\" id=\"roles\">\n <ng-template let-administrator=\"item\">\n <vdr-chip *ngFor=\"let role of administrator.user.roles\">{{ role.description }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CHANNEL_FRAGMENT,\n ChannelFragment,\n CreateChannelInput,\n CurrencyCode,\n DataService,\n GetChannelDetailDocument,\n getCustomFieldsDefaults,\n GetSellersQuery,\n LanguageCode,\n NotificationService,\n Permission,\n ServerConfigService,\n TypedBaseDetailComponent,\n UpdateChannelInput,\n} from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map, mergeMap, take, takeUntil } from 'rxjs/operators';\n\nexport const GET_CHANNEL_DETAIL = gql`\n query GetChannelDetail($id: ID!) {\n channel(id: $id) {\n ...Channel\n }\n }\n ${CHANNEL_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-channel-detail',\n templateUrl: './channel-detail.component.html',\n styleUrls: ['./channel-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ChannelDetailComponent\n extends TypedBaseDetailComponent<typeof GetChannelDetailDocument, 'channel'>\n implements OnInit, OnDestroy\n{\n DEFAULT_CHANNEL_CODE = DEFAULT_CHANNEL_CODE;\n customFields = this.getCustomFieldConfig('Channel');\n // zones$: Observable<Array<ItemOf<GetZoneListQuery, 'zones'>>>;\n sellers$: Observable<GetSellersQuery['sellers']['items']>;\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n token: ['', Validators.required],\n pricesIncludeTax: [false],\n availableLanguageCodes: [[] as string[]],\n availableCurrencyCodes: [[] as string[]],\n defaultCurrencyCode: ['' as CurrencyCode, Validators.required],\n defaultShippingZoneId: ['', Validators.required],\n defaultLanguageCode: [undefined as LanguageCode | undefined, Validators.required],\n defaultTaxZoneId: ['', Validators.required],\n sellerId: ['', Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n\n availableLanguageCodes$: Observable<LanguageCode[]>;\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateChannel, Permission.CreateChannel];\n\n constructor(\n protected serverConfigService: ServerConfigService,\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n // TODO: make this lazy-loaded autocomplete\n this.sellers$ = this.dataService.settings.getSellerList().mapSingle(data => data.sellers.items);\n this.availableLanguageCodes$ = this.serverConfigService.getAvailableLanguages();\n this.detailForm.controls.availableCurrencyCodes.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n if (value) {\n const defaultCurrencyCode = this.detailForm.controls.defaultCurrencyCode.value;\n if (defaultCurrencyCode && !value.includes(defaultCurrencyCode)) {\n this.detailForm.controls.defaultCurrencyCode.setValue(value[0] as CurrencyCode);\n }\n }\n });\n this.detailForm.controls.availableLanguageCodes.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(value => {\n if (value) {\n const defaultLanguageCode = this.detailForm.controls.defaultLanguageCode.value;\n if (defaultLanguageCode && !value.includes(defaultLanguageCode)) {\n this.detailForm.controls.defaultLanguageCode.setValue(value[0] as LanguageCode);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const {\n code,\n token,\n defaultLanguageCode,\n pricesIncludeTax,\n defaultCurrencyCode,\n defaultShippingZoneId,\n defaultTaxZoneId,\n customFields,\n sellerId,\n } = this.detailForm.value;\n if (\n !code ||\n !token ||\n !defaultLanguageCode ||\n !defaultCurrencyCode ||\n !defaultShippingZoneId ||\n !defaultTaxZoneId\n ) {\n return;\n }\n const input: CreateChannelInput = {\n code,\n token,\n defaultLanguageCode,\n pricesIncludeTax: !!pricesIncludeTax,\n defaultCurrencyCode,\n defaultShippingZoneId,\n defaultTaxZoneId,\n customFields,\n sellerId,\n };\n this.dataService.settings\n .createChannel(input)\n .pipe(\n mergeMap(({ createChannel }) =>\n this.dataService.auth.currentUser().single$.pipe(\n map(({ me }) => ({\n me,\n createChannel,\n })),\n ),\n ),\n mergeMap(({ me, createChannel }) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.dataService.client.updateUserChannels(me!.channels).pipe(map(() => createChannel)),\n ),\n )\n .subscribe(data => {\n switch (data.__typename) {\n case 'Channel':\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Channel',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.id], { relativeTo: this.route });\n break;\n case 'LanguageNotAvailableError':\n this.notificationService.error(data.message);\n break;\n }\n });\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(channel => {\n const input = {\n id: channel.id,\n code: formValue.code,\n token: formValue.token,\n pricesIncludeTax: formValue.pricesIncludeTax,\n availableLanguageCodes: formValue.availableLanguageCodes,\n availableCurrencyCodes: formValue.availableCurrencyCodes,\n defaultCurrencyCode: formValue.defaultCurrencyCode,\n defaultShippingZoneId: formValue.defaultShippingZoneId,\n defaultLanguageCode: formValue.defaultLanguageCode,\n defaultTaxZoneId: formValue.defaultTaxZoneId,\n customFields: formValue.customFields,\n sellerId: formValue.sellerId,\n } as UpdateChannelInput;\n return this.dataService.settings.updateChannel(input);\n }),\n )\n .subscribe(({ updateChannel }) => {\n switch (updateChannel.__typename) {\n case 'Channel':\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Channel',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n break;\n case 'LanguageNotAvailableError':\n this.notificationService.error(updateChannel.message);\n }\n });\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: ChannelFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n code: entity.code,\n token: entity.token || this.generateToken(),\n pricesIncludeTax: entity.pricesIncludeTax,\n availableLanguageCodes: entity.availableLanguageCodes,\n availableCurrencyCodes: entity.availableCurrencyCodes,\n defaultCurrencyCode: entity.defaultCurrencyCode,\n defaultShippingZoneId: entity.defaultShippingZone?.id ?? '',\n defaultLanguageCode: entity.defaultLanguageCode,\n defaultTaxZoneId: entity.defaultTaxZone?.id ?? '',\n sellerId: entity.seller?.id ?? '',\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n }\n if (entity.code === DEFAULT_CHANNEL_CODE) {\n const codeControl = this.detailForm.get('code');\n if (codeControl) {\n codeControl.disable();\n }\n }\n }\n\n private generateToken(): string {\n return Array.from(crypto.getRandomValues(new Uint8Array(10)))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"channel-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"channel-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n class=\"form-grid-span\"\n *ngIf=\"entity?.code !== DEFAULT_CHANNEL_CODE\"\n [label]=\"'common.code' | translate\"\n for=\"code\"\n >\n <input\n id=\"code\"\n type=\"text\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n formControlName=\"code\"\n />\n </vdr-form-field>\n <vdr-form-item\n class=\"form-grid-span\"\n *ngIf=\"entity?.code === DEFAULT_CHANNEL_CODE\"\n [label]=\"'common.code' | translate\"\n >\n {{ entity?.code | channelCodeToLabel | translate }}\n </vdr-form-item>\n <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\n <input\n id=\"token\"\n type=\"text\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n formControlName=\"token\"\n />\n </vdr-form-field>\n\n <vdr-form-field [label]=\"'common.seller' | translate\" for=\"sellerId\">\n <select\n name=\"sellerId\"\n formControlName=\"sellerId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option selected value style=\"display: none\"></option>\n <option *ngFor=\"let seller of sellers$ | async\" [value]=\"seller.id\">\n {{ seller.name }}\n </option>\n </select>\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.available-languages' | translate\"\n for=\"availableLanguageCodes\"\n >\n <vdr-language-code-selector\n formControlName=\"availableLanguageCodes\"\n [languageCodes]=\"availableLanguageCodes$ | async\"\n ></vdr-language-code-selector>\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.available-currencies' | translate\"\n for=\"availableCurrencyCodes\"\n >\n <vdr-currency-code-selector\n formControlName=\"availableCurrencyCodes\"\n ></vdr-currency-code-selector>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.defaults' | translate\">\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\n <select\n name=\"defaultLanguageCode\"\n formControlName=\"defaultLanguageCode\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option\n *ngFor=\"let languageCode of detailForm.value.availableLanguageCodes\"\n [value]=\"languageCode\"\n >\n {{ languageCode | localeLanguageName }} ({{ languageCode | uppercase }})\n </option>\n </select>\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.default-currency' | translate\" for=\"defaultCurrency\">\n <select\n name=\"defaultCurrencyCode\"\n formControlName=\"defaultCurrencyCode\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option\n *ngFor=\"let code of detailForm.value.availableCurrencyCodes\"\n [value]=\"code\"\n >\n {{ code | localeCurrencyName }}\n </option>\n </select>\n </vdr-form-field>\n <div>\n <vdr-form-field\n [label]=\"'settings.default-tax-zone' | translate\"\n for=\"defaultTaxZoneId\"\n >\n <vdr-zone-selector\n formControlName=\"defaultTaxZoneId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n ></vdr-zone-selector>\n </vdr-form-field>\n <clr-alert\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\n clrAlertType=\"danger\"\n [clrAlertClosable]=\"false\"\n >\n <clr-alert-item>\n <span class=\"alert-text\">\n {{ 'error.no-default-tax-zone-set' | translate }}\n </span>\n </clr-alert-item>\n </clr-alert>\n </div>\n\n <div>\n <vdr-form-field\n [label]=\"'settings.default-shipping-zone' | translate\"\n for=\"defaultShippingZoneId\"\n >\n <vdr-zone-selector\n name=\"defaultShippingZoneId\"\n formControlName=\"defaultShippingZoneId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n ></vdr-zone-selector>\n </vdr-form-field>\n <clr-alert\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\n clrAlertType=\"danger\"\n [clrAlertClosable]=\"false\"\n >\n <clr-alert-item>\n <span class=\"alert-text\">\n {{ 'error.no-default-shipping-zone-set' | translate }}\n </span>\n </clr-alert-item>\n </clr-alert>\n </div>\n <vdr-form-field\n [label]=\"'settings.prices-include-tax' | translate\"\n for=\"pricesIncludeTax\"\n >\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"pricesIncludeTax\"\n formControlName=\"pricesIncludeTax\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Channel\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"channel-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetChannelsQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map, mergeMap } from 'rxjs/operators';\n\nexport const deleteChannelsBulkAction = createBulkDeleteAction<ItemOf<GetChannelsQuery, 'channels'>>({\n location: 'channel-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.SuperAdmin) || userPermissions.includes(Permission.DeleteChannel),\n getItemName: item => item.code,\n bulkDelete: (dataService, ids) => {\n return dataService.settings.deleteChannels(ids).pipe(\n mergeMap(({ deleteChannels }) =>\n dataService.auth.currentUser().single$.pipe(\n map(({ me }) => ({\n me,\n deleteChannels,\n })),\n ),\n ),\n mergeMap(({ me, deleteChannels }) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dataService.client.updateUserChannels(me!.channels).pipe(map(() => deleteChannels)),\n ),\n );\n },\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { CHANNEL_FRAGMENT, GetChannelListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\nimport { gql } from 'apollo-angular';\n\nexport const GET_CHANNEL_LIST = gql`\n query GetChannelList($options: ChannelListOptions) {\n channels(options: $options) {\n items {\n ...Channel\n }\n totalItems\n }\n }\n ${CHANNEL_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-channel-list',\n templateUrl: './channel-list.component.html',\n styleUrls: ['./channel-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ChannelListComponent\n extends TypedBaseListComponent<typeof GetChannelListDocument, 'channels'>\n implements OnInit\n{\n dataTableListId = 'channel-list';\n readonly customFields = this.getCustomFieldConfig('Channel');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'token',\n type: { kind: 'text' },\n label: _('settings.channel-token'),\n filterField: 'token',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'code' })\n .addSort({ name: 'token' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetChannelListDocument,\n getItems: data => data.channels,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n code: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n isDefaultChannel(channelCode: string): boolean {\n return channelCode === DEFAULT_CHANNEL_CODE;\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"channel-list\" />\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateChannel']\" [routerLink]=\"['./', 'create']\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-channel' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"channel-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"channel-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-channel=\"item\">\n {{ channel.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-channel=\"item\">\n {{ channel.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-channel=\"item\">\n {{ channel.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\" [sort]=\"sorts.get('code')\">\n <ng-template let-channel=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', channel.id]\"\n ><span>{{ channel.code | channelCodeToLabel | translate }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.channel-token' | translate\" id=\"channel-token\" [sort]=\"sorts.get('token')\">\n <ng-template let-channel=\"item\">\n {{ channel.token }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n COUNTRY_FRAGMENT,\n CountryFragment,\n createUpdatedTranslatable,\n DataService,\n findTranslation,\n GetCountryDetailDocument,\n getCustomFieldsDefaults,\n LanguageCode,\n NotificationService,\n Permission,\n TypedBaseDetailComponent,\n UpdateCountryInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { combineLatest } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_COUNTRY_DETAIL = gql`\n query GetCountryDetail($id: ID!) {\n country(id: $id) {\n ...Country\n }\n }\n ${COUNTRY_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-country-detail',\n templateUrl: './country-detail.component.html',\n styleUrls: ['./country-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class CountryDetailComponent\n extends TypedBaseDetailComponent<typeof GetCountryDetailDocument, 'country'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Region');\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n name: ['', Validators.required],\n enabled: [true],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateCountry];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n\n const formValue = this.detailForm.value;\n const input = createUpdatedTranslatable({\n translatable: {\n id: '',\n createdAt: '',\n updatedAt: '',\n code: '',\n name: '',\n enabled: false,\n translations: [],\n } as CountryFragment,\n updatedFields: formValue,\n languageCode: this.languageCode,\n customFieldConfig: this.customFields,\n defaultTranslation: {\n name: formValue.name ?? '',\n languageCode: this.languageCode,\n },\n });\n this.dataService.settings.createCountry(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Country',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createCountry.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Country',\n });\n },\n );\n }\n\n save() {\n combineLatest(this.entity$, this.languageCode$)\n .pipe(\n take(1),\n mergeMap(([country, languageCode]) => {\n const formValue = this.detailForm.value;\n const input: UpdateCountryInput = createUpdatedTranslatable({\n translatable: country,\n updatedFields: formValue,\n customFieldConfig: this.customFields,\n languageCode,\n defaultTranslation: {\n name: formValue.name ?? '',\n languageCode,\n },\n });\n return this.dataService.settings.updateCountry(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Country',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Country',\n });\n },\n );\n }\n\n protected setFormValues(country: CountryFragment, languageCode: LanguageCode): void {\n const currentTranslation = findTranslation(country, languageCode);\n\n this.detailForm.patchValue({\n code: country.code,\n name: currentTranslation ? currentTranslation.name : '',\n enabled: country.enabled,\n });\n\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get(['customFields']),\n country,\n currentTranslation,\n );\n }\n }\n}\n","<vdr-page-block\n ><vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"country-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"updatePermission\"\n (click)=\"save()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"country-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"enabled\"\n formControlName=\"enabled\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Region\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"country-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetCountryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteCountriesBulkAction = createBulkDeleteAction<ItemOf<GetCountryListQuery, 'countries'>>({\n location: 'country-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteCountry),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteCountries(ids).pipe(map(res => res.deleteCountries)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetCountryListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_COUNTRY_LIST = gql`\n query GetCountryList($options: CountryListOptions) {\n countries(options: $options) {\n items {\n ...CountryListItem\n }\n totalItems\n }\n }\n fragment CountryListItem on Country {\n id\n createdAt\n updatedAt\n code\n name\n type\n enabled\n }\n`;\n\n@Component({\n selector: 'vdr-country-list',\n templateUrl: './country-list.component.html',\n styleUrls: ['./country-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class CountryListComponent extends TypedBaseListComponent<typeof GetCountryListDocument, 'countries'> {\n dataTableListId = 'country-list';\n readonly customFields = this.getCustomFieldConfig('Region');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'enabled',\n type: { kind: 'boolean' },\n label: _('common.enabled'),\n filterField: 'enabled',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('name', 'ASC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'code' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetCountryListDocument,\n getItems: data => data.countries,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"country-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-country' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"country-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"country-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-country=\"item\">\n {{ country.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-country=\"item\">\n {{ country.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\"\n id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-country=\"item\">\n {{ country.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\"\n id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-country=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', country.id]\"\n ><span>{{ country.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-country=\"item\">\n {{ country.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-country=\"item\">\n <vdr-chip *ngIf=\"country.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!country.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n getCustomFieldsDefaults,\n GetGlobalSettingsDetailDocument,\n GlobalSettings,\n LanguageCode,\n NotificationService,\n Permission,\n TypedBaseDetailComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nexport const GET_GLOBAL_SETTINGS_DETAIL = gql`\n query GetGlobalSettingsDetail {\n globalSettings {\n ...GlobalSettingsDetail\n }\n }\n fragment GlobalSettingsDetail on GlobalSettings {\n id\n createdAt\n updatedAt\n availableLanguages\n trackInventory\n outOfStockThreshold\n }\n`;\n\n@Component({\n selector: 'vdr-global-settings',\n templateUrl: './global-settings.component.html',\n styleUrls: ['./global-settings.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class GlobalSettingsComponent\n extends TypedBaseDetailComponent<typeof GetGlobalSettingsDetailDocument, 'globalSettings'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('GlobalSettings');\n detailForm = this.formBuilder.group({\n availableLanguages: [[] as LanguageCode[]],\n trackInventory: false,\n outOfStockThreshold: [0, Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n languageCodes = Object.values(LanguageCode);\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateGlobalSettings];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.init();\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\n if (!userStatus.permissions.includes(Permission.UpdateSettings)) {\n const languagesSelect = this.detailForm.get('availableLanguages');\n if (languagesSelect) {\n languagesSelect.disable();\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n\n this.dataService.settings\n .updateGlobalSettings(this.detailForm.value)\n .pipe(\n tap(({ updateGlobalSettings }) => {\n switch (updateGlobalSettings.__typename) {\n case 'GlobalSettings':\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Settings',\n });\n break;\n case 'ChannelDefaultLanguageError':\n this.notificationService.error(updateGlobalSettings.message);\n }\n }),\n switchMap(() => this.serverConfigService.refreshGlobalSettings()),\n withLatestFrom(this.dataService.client.uiState().single$),\n )\n .subscribe(([{ globalSettings }, { uiState }]) => {\n const availableLangs = globalSettings.availableLanguages;\n if (availableLangs.length && !availableLangs.includes(uiState.contentLanguage)) {\n this.dataService.client.setContentLanguage(availableLangs[0]).subscribe();\n }\n });\n }\n\n protected setFormValues(entity: GlobalSettings, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n availableLanguages: entity.availableLanguages,\n trackInventory: entity.trackInventory,\n outOfStockThreshold: entity.outOfStockThreshold,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"global-setting-detail\" />\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"updatePermission\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n <vdr-action-bar-dropdown-menu locationId=\"global-setting-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n [label]=\"'common.available-languages' | translate\"\n for=\"availableLanguages\"\n [tooltip]=\"'settings.global-available-languages-tooltip' | translate\"\n >\n <vdr-language-code-selector\n formControlName=\"availableLanguages\"\n [languageCodes]=\"languageCodes\"\n ></vdr-language-code-selector>\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\n for=\"outOfStockThreshold\"\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\n >\n <input\n id=\"outOfStockThreshold\"\n type=\"number\"\n formControlName=\"outOfStockThreshold\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'settings.track-inventory-default' | translate\"\n for=\"enabled\"\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\n >\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n name=\"enabled\"\n formControlName=\"trackInventory\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"GlobalSettings\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"global-settings-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n configurableDefinitionToInstance,\n ConfigurableOperation,\n ConfigurableOperationDefinition,\n CreatePaymentMethodInput,\n createUpdatedTranslatable,\n DataService,\n findTranslation,\n getConfigArgValue,\n getCustomFieldsDefaults,\n GetPaymentMethodDetailDocument,\n GetPaymentMethodDetailQuery,\n LanguageCode,\n NotificationService,\n PAYMENT_METHOD_FRAGMENT,\n PaymentMethodFragment,\n Permission,\n toConfigurableOperationInput,\n TypedBaseDetailComponent,\n UpdatePaymentMethodInput,\n} from '@vendure/admin-ui/core';\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\nimport { gql } from 'apollo-angular';\nimport { combineLatest } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_PAYMENT_METHOD_DETAIL = gql`\n query GetPaymentMethodDetail($id: ID!) {\n paymentMethod(id: $id) {\n ...PaymentMethod\n }\n }\n ${PAYMENT_METHOD_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-payment-method-detail',\n templateUrl: './payment-method-detail.component.html',\n styleUrls: ['./payment-method-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PaymentMethodDetailComponent\n extends TypedBaseDetailComponent<typeof GetPaymentMethodDetailDocument, 'paymentMethod'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('PaymentMethod');\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n name: ['', Validators.required],\n description: '',\n enabled: [true, Validators.required],\n checker: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['checker'],\n handler: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['handler'],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n checkers: ConfigurableOperationDefinition[] = [];\n handlers: ConfigurableOperationDefinition[] = [];\n selectedChecker?: ConfigurableOperation | null;\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\n selectedHandler?: ConfigurableOperation | null;\n selectedHandlerDefinition?: ConfigurableOperationDefinition;\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdatePaymentMethod];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.dataService.settings.getPaymentMethodOperations().single$.subscribe(data => {\n this.checkers = data.paymentMethodEligibilityCheckers;\n this.handlers = data.paymentMethodHandlers;\n this.changeDetector.markForCheck();\n this.selectedCheckerDefinition = data.paymentMethodEligibilityCheckers.find(\n c => c.code === this.entity?.checker?.code,\n );\n this.selectedHandlerDefinition = data.paymentMethodHandlers.find(\n c => c.code === this.entity?.handler?.code,\n );\n });\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n updateCode(currentCode: string | undefined, nameValue: string) {\n if (!currentCode) {\n const codeControl = this.detailForm.get('code');\n if (codeControl && codeControl.pristine) {\n codeControl.setValue(normalizeString(nameValue, '-'));\n }\n }\n }\n\n selectChecker(checker: ConfigurableOperationDefinition) {\n this.selectedCheckerDefinition = checker;\n this.selectedChecker = configurableDefinitionToInstance(checker);\n const formControl = this.detailForm.get('checker');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedChecker);\n }\n this.detailForm.markAsDirty();\n }\n\n selectHandler(handler: ConfigurableOperationDefinition) {\n this.selectedHandlerDefinition = handler;\n this.selectedHandler = configurableDefinitionToInstance(handler);\n const formControl = this.detailForm.get('handler');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedHandler);\n }\n this.detailForm.markAsDirty();\n }\n\n removeChecker() {\n this.selectedChecker = null;\n this.detailForm.markAsDirty();\n }\n\n removeHandler() {\n this.selectedHandler = null;\n this.detailForm.markAsDirty();\n }\n\n create() {\n const selectedChecker = this.selectedChecker;\n const selectedHandler = this.selectedHandler;\n if (!selectedHandler) {\n return;\n }\n const input = this.getUpdatedPaymentMethod(\n {\n id: '',\n createdAt: '',\n updatedAt: '',\n name: '',\n code: '',\n description: '',\n enabled: true,\n checker: undefined as any,\n handler: undefined as any,\n translations: [],\n },\n this.detailForm,\n this.languageCode,\n selectedHandler,\n selectedChecker,\n ) as CreatePaymentMethodInput;\n this.dataService.settings.createPaymentMethod(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'PaymentMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createPaymentMethod.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'PaymentMethod',\n });\n },\n );\n }\n\n save() {\n const selectedChecker = this.selectedChecker;\n const selectedHandler = this.selectedHandler;\n if (!selectedHandler) {\n return;\n }\n combineLatest(this.entity$, this.languageCode$)\n .pipe(\n take(1),\n mergeMap(([paymentMethod, languageCode]) => {\n const input = this.getUpdatedPaymentMethod(\n paymentMethod,\n this.detailForm,\n languageCode,\n selectedHandler,\n selectedChecker,\n ) as UpdatePaymentMethodInput;\n return this.dataService.settings.updatePaymentMethod(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'PaymentMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'PaymentMethod',\n });\n },\n );\n }\n\n /**\n * Given a PaymentMethod and the value of the detailForm, this method creates an updated copy of it which\n * can then be persisted to the API.\n */\n private getUpdatedPaymentMethod(\n paymentMethod: PaymentMethodFragment,\n formGroup: UntypedFormGroup,\n languageCode: LanguageCode,\n selectedHandler: ConfigurableOperation,\n selectedChecker?: ConfigurableOperation | null,\n ): UpdatePaymentMethodInput | CreatePaymentMethodInput {\n const input = createUpdatedTranslatable({\n translatable: paymentMethod,\n updatedFields: formGroup.value,\n customFieldConfig: this.customFields,\n languageCode,\n defaultTranslation: {\n languageCode,\n name: paymentMethod.name || '',\n description: paymentMethod.description || '',\n },\n });\n return {\n ...input,\n checker: selectedChecker\n ? toConfigurableOperationInput(selectedChecker, formGroup.value.checker)\n : null,\n handler: toConfigurableOperationInput(selectedHandler, formGroup.value.handler),\n };\n }\n\n protected setFormValues(\n paymentMethod: NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>,\n languageCode: LanguageCode,\n ): void {\n const currentTranslation = findTranslation(paymentMethod, languageCode);\n this.detailForm.patchValue({\n name: currentTranslation?.name,\n code: paymentMethod.code,\n description: currentTranslation?.description,\n enabled: paymentMethod.enabled,\n checker: paymentMethod.checker || ({} as any),\n handler: paymentMethod.handler || ({} as any),\n });\n if (!this.selectedChecker) {\n this.selectedChecker = paymentMethod.checker && {\n code: paymentMethod.checker.code,\n args: paymentMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (!this.selectedHandler) {\n this.selectedHandler = paymentMethod.handler && {\n code: paymentMethod.handler.code,\n args: paymentMethod.handler.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get('customFields'),\n paymentMethod,\n currentTranslation,\n );\n }\n }\n}\n","<vdr-page-block\n ><vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"payment-method-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\n (click)=\"create()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n *vdrIfPermissions=\"updatePermission\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"enabled\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n formControlName=\"enabled\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (input)=\"updateCode(entity?.code, $event.target.value)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.code' | translate\"\n for=\"code\"\n [readOnlyToggle]=\"updatePermission | hasPermission\"\n >\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-rich-text-editor\n class=\"form-grid-span\"\n formControlName=\"description\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n [label]=\"'common.description' | translate\"\n ></vdr-rich-text-editor>\n </div>\n </vdr-card>\n\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"PaymentMethod\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"payment-method-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n\n <vdr-card [title]=\"'settings.payment-eligibility-checker' | translate\">\n <vdr-configurable-input\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\n [operation]=\"selectedChecker\"\n [operationDefinition]=\"selectedCheckerDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"removeChecker()\"\n formControlName=\"checker\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let checker of checkers\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectChecker(checker)\"\n >\n {{ checker.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.payment-handler' | translate\">\n <vdr-configurable-input\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\n [operation]=\"selectedHandler\"\n [operationDefinition]=\"selectedHandlerDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"removeHandler()\"\n formControlName=\"handler\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let handler of handlers\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectHandler(handler)\"\n >\n {{ handler.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import {\n createBulkAssignToChannelAction,\n AssignPaymentMethodsToChannelDocument,\n RemovePaymentMethodsFromChannelDocument,\n createBulkDeleteAction,\n createBulkRemoveFromChannelAction,\n GetPaymentMethodListQuery,\n ItemOf,\n Permission,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { map } from 'rxjs/operators';\n\nexport const deletePaymentMethodsBulkAction = createBulkDeleteAction<\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\n>({\n location: 'payment-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeletePaymentMethod) ||\n userPermissions.includes(Permission.DeleteSettings),\n getItemName: item => item.name,\n shouldRetryItem: (response, item) => !!response.message,\n bulkDelete: (dataService, ids, retrying) =>\n dataService.settings.deletePaymentMethods(ids, retrying).pipe(map(res => res.deletePaymentMethods)),\n});\n\nconst ASSIGN_PAYMENT_METHODS_TO_CHANNEL = gql`\n mutation AssignPaymentMethodsToChannel($input: AssignPaymentMethodsToChannelInput!) {\n assignPaymentMethodsToChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nconst REMOVE_PAYMENT_METHODS_FROM_CHANNEL = gql`\n mutation RemovePaymentMethodsFromChannel($input: RemovePaymentMethodsFromChannelInput!) {\n removePaymentMethodsFromChannel(input: $input) {\n id\n name\n }\n }\n`;\nexport const assignPaymentMethodsToChannelBulkAction = createBulkAssignToChannelAction<\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\n>({\n location: 'payment-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.UpdatePaymentMethod) ||\n userPermissions.includes(Permission.UpdateSettings),\n getItemName: item => item.name,\n bulkAssignToChannel: (dataService, paymentMethodIds, channelIds) =>\n channelIds.map(channelId =>\n dataService\n .mutate(AssignPaymentMethodsToChannelDocument, {\n input: {\n channelId,\n paymentMethodIds,\n },\n })\n .pipe(map(res => res.assignPaymentMethodsToChannel)),\n ),\n});\n\nexport const removePaymentMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\n>({\n location: 'payment-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeletePaymentMethod) ||\n userPermissions.includes(Permission.DeleteSettings),\n getItemName: item => item.name,\n bulkRemoveFromChannel: (dataService, paymentMethodIds, channelId) =>\n dataService\n .mutate(RemovePaymentMethodsFromChannelDocument, {\n input: {\n channelId,\n paymentMethodIds,\n },\n })\n .pipe(map(res => res.removePaymentMethodsFromChannel)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetPaymentMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_PAYMENT_METHOD_LIST = gql`\n query GetPaymentMethodList($options: PaymentMethodListOptions!) {\n paymentMethods(options: $options) {\n items {\n ...PaymentMethodListItem\n }\n totalItems\n }\n }\n fragment PaymentMethodListItem on PaymentMethod {\n id\n createdAt\n updatedAt\n name\n description\n code\n enabled\n }\n`;\n\n@Component({\n selector: 'vdr-payment-method-list',\n templateUrl: './payment-method-list.component.html',\n styleUrls: ['./payment-method-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PaymentMethodListComponent extends TypedBaseListComponent<\n typeof GetPaymentMethodListDocument,\n 'paymentMethods'\n> {\n dataTableListId = 'payment-method-list';\n readonly customFields = this.getCustomFieldConfig('PaymentMethod');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'enabled',\n type: { kind: 'boolean' },\n label: _('common.enabled'),\n filterField: 'enabled',\n })\n .addFilter({\n name: 'description',\n type: { kind: 'text' },\n label: _('common.description'),\n filterField: 'description',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'id' })\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'code' })\n .addSort({ name: 'description' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetPaymentMethodListDocument,\n getItems: data => data.paymentMethods,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"payment-method-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreatePaymentMethod']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-payment-method' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"payment-method-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column\n [heading]=\"'common.id' | translate\"\n id=\"id\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('id')\"\n >\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\"\n id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\"\n id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-paymentMethod=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', paymentMethod.id]\"\n ><span>{{ paymentMethod.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-paymentMethod=\"item\">\n {{ paymentMethod.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-paymentMethod=\"item\">\n <vdr-chip *ngIf=\"paymentMethod.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!paymentMethod.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n Administrator,\n DataService,\n getCustomFieldsDefaults,\n GetProfileDetailDocument,\n LanguageCode,\n NotificationService,\n TypedBaseDetailComponent,\n UpdateActiveAdministratorInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_PROFILE_DETAIL = gql`\n query GetProfileDetail {\n activeAdministrator {\n ...ProfileDetail\n }\n }\n fragment ProfileDetail on Administrator {\n id\n createdAt\n updatedAt\n firstName\n lastName\n emailAddress\n user {\n id\n lastLogin\n verified\n }\n }\n`;\n\n@Component({\n selector: 'vdr-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ProfileComponent\n extends TypedBaseDetailComponent<typeof GetProfileDetailDocument, 'activeAdministrator'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Administrator');\n detailForm = this.formBuilder.group({\n emailAddress: ['', Validators.required],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n password: [''],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n save() {\n this.entity$\n .pipe(\n take(1),\n mergeMap(({ id }) => {\n const formValue = this.detailForm.value;\n const administrator: UpdateActiveAdministratorInput = {\n emailAddress: formValue.emailAddress,\n firstName: formValue.firstName,\n lastName: formValue.lastName,\n password: formValue.password,\n customFields: formValue.customFields,\n };\n return this.dataService.administrator.updateActiveAdministrator(administrator);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Administrator',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Administrator',\n });\n },\n );\n }\n\n protected setFormValues(administrator: Administrator, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n emailAddress: administrator.emailAddress,\n firstName: administrator.firstName,\n lastName: administrator.lastName,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get('customFields'),\n administrator,\n );\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"profile\"></vdr-action-bar-items>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\n </vdr-form-field>\n <vdr-form-field\n *ngIf=\"isNew$ | async\"\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'settings.password' | translate\"\n for=\"password\"\n [readOnlyToggle]=\"true\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Administrator\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"administrator-profile\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateRoleInput,\n DataService,\n GetRoleDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n Role,\n ROLE_FRAGMENT,\n TypedBaseDetailComponent,\n UpdateRoleInput,\n} from '@vendure/admin-ui/core';\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\nimport { unique } from '@vendure/common/lib/unique';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_ROLE_DETAIL = gql`\n query GetRoleDetail($id: ID!) {\n role(id: $id) {\n ...Role\n }\n }\n ${ROLE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-role-detail',\n templateUrl: './role-detail.component.html',\n styleUrls: ['./role-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class RoleDetailComponent\n extends TypedBaseDetailComponent<typeof GetRoleDetailDocument, 'role'>\n implements OnInit, OnDestroy\n{\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n description: ['', Validators.required],\n channelIds: [[] as string[]],\n permissions: [[] as Permission[]],\n });\n permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n updateCode(nameValue: string) {\n const codeControl = this.detailForm.get(['code']);\n if (codeControl && codeControl.pristine) {\n codeControl.setValue(normalizeString(nameValue, '-'));\n }\n }\n\n setPermission(change: { permission: string; value: boolean }) {\n const permissionsControl = this.detailForm.get('permissions');\n if (permissionsControl) {\n const currentPermissions = permissionsControl.value as string[];\n const newValue = (\n change.value === true\n ? unique([...currentPermissions, change.permission])\n : currentPermissions.filter(p => p !== change.permission)\n ) as Permission[];\n permissionsControl.setValue(newValue);\n permissionsControl.markAsDirty();\n }\n }\n\n create() {\n const { code, description, permissions, channelIds } = this.detailForm.value;\n if (!code || !description) {\n return;\n }\n const role: CreateRoleInput = {\n code,\n description,\n permissions: permissions ?? [],\n channelIds,\n };\n this.dataService.administrator.createRole(role).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), { entity: 'Role' });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createRole.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Role',\n });\n },\n );\n }\n\n save() {\n this.entity$\n .pipe(\n take(1),\n mergeMap(({ id }) => {\n const formValue = this.detailForm.value;\n const role: UpdateRoleInput = { id, ...formValue };\n return this.dataService.administrator.updateRole(role);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), { entity: 'Role' });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Role',\n });\n },\n );\n }\n\n protected setFormValues(role: Role, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n description: role.description,\n code: role.code,\n channelIds: role.channels.map(c => c.id),\n permissions: role.permissions,\n });\n // This was required to get the channel selector component to\n // correctly display its contents. A while spent debugging the root\n // cause did not yield a solution, therefore this next line.\n this.changeDetector.detectChanges();\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"role-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"'UpdateAdministrator'\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"role-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\">\n <input\n id=\"description\"\n type=\"text\"\n formControlName=\"description\"\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\n (input)=\"updateCode($event.target.value)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.code' | translate\"\n for=\"code\"\n [readOnlyToggle]=\"'UpdateAdministrator' | hasPermission\"\n >\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n <vdr-page-block class=\"mt-2\">\n <vdr-card [title]=\"'settings.permissions' | translate\">\n <vdr-form-field [label]=\"'settings.channel' | translate\">\n <vdr-channel-assignment-control\n formControlName=\"channelIds\"\n [vdrDisabled]=\"!('UpdateAdministrator' | hasPermission)\"\n ></vdr-channel-assignment-control>\n </vdr-form-field>\n <vdr-permission-grid\n class=\"mt-2\"\n [permissionDefinitions]=\"permissionDefinitions\"\n [activePermissions]=\"detailForm.get('permissions')?.value\"\n (permissionChange)=\"setPermission($event)\"\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\n ></vdr-permission-grid>\n </vdr-card>\n </vdr-page-block>\n</form>\n","import { createBulkDeleteAction, GetRolesQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteRolesBulkAction = createBulkDeleteAction<ItemOf<GetRolesQuery, 'roles'>>({\n location: 'role-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\n getItemName: item => item.description,\n bulkDelete: (dataService, ids) =>\n dataService.administrator.deleteRoles(ids).pipe(map(res => res.deleteRoles)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n GetRoleListDocument,\n GetRolesQuery,\n ItemOf,\n Role,\n ROLE_FRAGMENT,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { CUSTOMER_ROLE_CODE, SUPER_ADMIN_ROLE_CODE } from '@vendure/common/lib/shared-constants';\nimport { gql } from 'apollo-angular';\n\nexport const GET_ROLE_LIST = gql`\n query GetRoleList($options: RoleListOptions) {\n roles(options: $options) {\n items {\n ...Role\n }\n totalItems\n }\n }\n ${ROLE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-role-list',\n templateUrl: './role-list.component.html',\n styleUrls: ['./role-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class RoleListComponent\n extends TypedBaseListComponent<typeof GetRoleListDocument, 'roles'>\n implements OnInit\n{\n dataTableListId = 'role-list';\n readonly initialLimit = 3;\n displayLimit: { [id: string]: number } = {};\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'code' })\n .addSort({ name: 'description' })\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetRoleListDocument,\n getItems: data => data.roles,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n code: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n toggleDisplayLimit(role: ItemOf<GetRolesQuery, 'roles'>) {\n if (this.displayLimit[role.id] === role.permissions.length) {\n this.displayLimit[role.id] = this.initialLimit;\n } else {\n this.displayLimit[role.id] = role.permissions.length;\n }\n }\n\n isDefaultRole(role: Role): boolean {\n return role.code === SUPER_ADMIN_ROLE_CODE || role.code === CUSTOMER_ROLE_CODE;\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"role-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateAdministrator']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-role' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"role-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"role-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-role=\"item\">\n {{ role.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-role=\"item\">\n {{ role.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-role=\"item\">\n {{ role.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.description' | translate\" id=\"description\"\n [optional]=\"false\"\n [sort]=\"sorts.get('description')\"\n >\n <ng-template let-role=\"item\">\n <a\n *ngIf=\"!isDefaultRole(role); else defaultRole\"\n class=\"button-ghost\"\n [routerLink]=\"['./', role.id]\"\n ><span>{{ role.description }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n <ng-template #defaultRole>\n {{ role.description }}\n </ng-template>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-role=\"item\">\n <span *ngIf=\"!isDefaultRole(role)\">{{ role.code }}</span>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.channel' | translate\" id=\"channel\">\n <ng-template let-role=\"item\">\n <ng-container *ngIf=\"!isDefaultRole(role)\">\n <vdr-chip *ngFor=\"let channel of role.channels\">\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\n <div class=\"ml-1\">{{ channel.code | channelCodeToLabel | translate }}</div>\n </vdr-chip>\n </ng-container>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.permissions' | translate\" id=\"permissions\">\n <ng-template let-role=\"item\">\n <ng-container *ngIf=\"!isDefaultRole(role); else defaultRole\">\n <div class=\"permissions-list\">\n <vdr-chip\n *ngFor=\"let permission of role.permissions | slice : 0 : displayLimit[role.id] || 3\"\n >{{ permission }}</vdr-chip\n >\n <button\n class=\"button-small\"\n *ngIf=\"role.permissions.length > initialLimit\"\n (click)=\"toggleDisplayLimit(role)\"\n >\n <ng-container\n *ngIf=\"(displayLimit[role.id] || 0) < role.permissions.length; else collapse\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ role.permissions.length - initialLimit }}\n </ng-container>\n <ng-template #collapse>\n <clr-icon shape=\"minus\"></clr-icon>\n </ng-template>\n </button>\n </div>\n </ng-container>\n <ng-template #defaultRole>\n <span class=\"default-role-label\">{{ 'settings.default-role-label' | translate }}</span>\n </ng-template>\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateSellerInput,\n DataService,\n getCustomFieldsDefaults,\n GetSellerDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n SellerFragment,\n TypedBaseDetailComponent,\n UpdateSellerInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_SELLER_DETAIL = gql`\n query GetSellerDetail($id: ID!) {\n seller(id: $id) {\n ...SellerDetail\n }\n }\n fragment SellerDetail on Seller {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-seller-detail',\n templateUrl: './seller-detail.component.html',\n styleUrls: ['./seller-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class SellerDetailComponent\n extends TypedBaseDetailComponent<typeof GetSellerDetailDocument, 'seller'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Seller');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateSeller, Permission.CreateSeller];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n if (!formValue.name) {\n return;\n }\n const input: CreateSellerInput = {\n name: formValue.name,\n customFields: formValue.customFields,\n };\n this.dataService.settings.createSeller(input).subscribe(data => {\n switch (data.createSeller.__typename) {\n case 'Seller':\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Seller',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createSeller.id], { relativeTo: this.route });\n break;\n }\n });\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(seller => {\n const input = {\n id: seller.id,\n name: formValue.name,\n customFields: formValue.customFields,\n } as UpdateSellerInput;\n return this.dataService.settings.updateSeller(input);\n }),\n )\n .subscribe(({ updateSeller }) => {\n switch (updateSeller.__typename) {\n case 'Seller':\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Seller',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n break;\n // case 'LanguageNotAvailableError':\n // this.notificationService.error(updateSeller.message);\n }\n });\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: SellerFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n name: entity.name,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"seller-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateSeller']\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"seller-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n formControlName=\"name\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Seller\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"seller-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetSellersQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteSellersBulkAction = createBulkDeleteAction<ItemOf<GetSellersQuery, 'sellers'>>({\n location: 'seller-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteSeller),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteSellers(ids).pipe(map(res => res.deleteSellers)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetSellerListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nconst GET_SELLER_LIST = gql`\n query GetSellerList($options: SellerListOptions) {\n sellers(options: $options) {\n items {\n ...SellerListItem\n }\n totalItems\n }\n }\n fragment SellerListItem on Seller {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-seller-list',\n templateUrl: './seller-list.component.html',\n styleUrls: ['./seller-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class SellerListComponent\n extends TypedBaseListComponent<typeof GetSellerListDocument, 'sellers'>\n implements OnInit\n{\n dataTableListId = 'seller-list';\n readonly customFields = this.getCustomFieldConfig('Seller');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetSellerListDocument,\n getItems: data => data.sellers,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"seller-list\" />\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateSeller']\" [routerLink]=\"['./', 'create']\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-seller' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"seller-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"seller-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-seller=\"item\">{{ seller.id }}</ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-seller=\"item\">\n {{ seller.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-seller=\"item\">\n {{ seller.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-seller=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', seller.id]\"\n ><span>{{ seller.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { CurrencyCode, ShippingMethodQuote } from '@vendure/admin-ui/core';\n\n@Component({\n selector: 'vdr-shipping-eligibility-test-result',\n templateUrl: './shipping-eligibility-test-result.component.html',\n styleUrls: ['./shipping-eligibility-test-result.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingEligibilityTestResultComponent {\n @Input() testResult: ShippingMethodQuote[];\n @Input() okToRun = false;\n @Input() testDataUpdated = false;\n @Input() currencyCode: CurrencyCode;\n @Output() runTest = new EventEmitter<void>();\n}\n","<vdr-card class=\"test-result\" [title]=\"'settings.test-result' | translate\">\n <div class=\"card-span\" *ngFor=\"let quote of testResult\">\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\n {{ quote.name }}\n </vdr-labeled-data>\n <div class=\"price-row\">\n <vdr-labeled-data [label]=\"'common.price' | translate\">\n {{ quote.price | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n </div>\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\n </div>\n </div>\n <div class=\"card-span\" *ngIf=\"testResult?.length === 0\">\n <clr-icon shape=\"ban\" class=\"is-solid error\"></clr-icon>\n {{ 'settings.no-eligible-shipping-methods' | translate }}\n </div>\n <div class=\"card-footer\">\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\n {{ 'settings.test-shipping-methods' | translate }}\n </button>\n </div>\n</vdr-card>\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport {\n CurrencyCode,\n DataService,\n LocalStorageService,\n ProductSelectorSearchQuery,\n} from '@vendure/admin-ui/core';\n\ntype SearchItem = ProductSelectorSearchQuery['search']['items'][number];\n\nexport interface TestOrderLine {\n id: string;\n name: string;\n preview: string;\n sku: string;\n unitPriceWithTax: number;\n quantity: number;\n}\n\n@Component({\n selector: 'vdr-test-order-builder',\n templateUrl: './test-order-builder.component.html',\n styleUrls: ['./test-order-builder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TestOrderBuilderComponent implements OnInit {\n @Output() orderLinesChange = new EventEmitter<TestOrderLine[]>();\n lines: TestOrderLine[] = [];\n currencyCode: CurrencyCode;\n get subTotal(): number {\n return this.lines.reduce((sum, l) => sum + l.unitPriceWithTax * l.quantity, 0);\n }\n\n constructor(private dataService: DataService, private localStorageService: LocalStorageService) {}\n\n ngOnInit() {\n this.lines = this.loadFromLocalStorage();\n if (this.lines) {\n this.orderLinesChange.emit(this.lines);\n }\n this.dataService.settings.getActiveChannel('cache-first').single$.subscribe(result => {\n this.currencyCode = result.activeChannel.defaultCurrencyCode;\n });\n }\n\n selectResult(result: SearchItem) {\n if (result) {\n this.addToLines(result);\n }\n }\n\n private addToLines(result: SearchItem) {\n if (!this.lines.find(l => l.id === result.productVariantId)) {\n this.lines.push({\n id: result.productVariantId,\n name: result.productVariantName,\n preview: result.productAsset?.preview ?? '',\n quantity: 1,\n sku: result.sku,\n unitPriceWithTax:\n (result.priceWithTax.__typename === 'SinglePrice' && result.priceWithTax.value) || 0,\n });\n this.persistToLocalStorage();\n this.orderLinesChange.emit(this.lines);\n }\n }\n\n updateQuantity() {\n this.persistToLocalStorage();\n this.orderLinesChange.emit(this.lines);\n }\n\n removeLine(line: TestOrderLine) {\n this.lines = this.lines.filter(l => l.id !== line.id);\n this.persistToLocalStorage();\n this.orderLinesChange.emit(this.lines);\n }\n\n private persistToLocalStorage() {\n this.localStorageService.setForCurrentLocation('shippingTestOrder', this.lines);\n }\n\n private loadFromLocalStorage(): TestOrderLine[] {\n return this.localStorageService.getForCurrentLocation('shippingTestOrder') || [];\n }\n}\n","<table class=\"order-table table\" *ngIf=\"lines.length; else emptyPlaceholder\">\n <thead>\n <tr>\n <th></th>\n <th>{{ 'order.product-name' | translate }}</th>\n <th>{{ 'order.product-sku' | translate }}</th>\n <th>{{ 'order.unit-price' | translate }}</th>\n <th>{{ 'order.quantity' | translate }}</th>\n <th>{{ 'order.total' | translate }}</th>\n </tr>\n </thead>\n <tr *ngFor=\"let line of lines\" class=\"order-line\">\n <td class=\"align-middle thumb\">\n <img [src]=\"line.preview + '?preset=tiny'\" />\n </td>\n <td class=\"align-middle name\">{{ line.name }}</td>\n <td class=\"align-middle sku\">{{ line.sku }}</td>\n <td class=\"align-middle unit-price\">\n {{ line.unitPriceWithTax | localeCurrency : currencyCode }}\n </td>\n <td class=\"align-middle quantity\">\n <input [(ngModel)]=\"line.quantity\" (change)=\"updateQuantity()\" type=\"number\" max=\"9999\" min=\"1\" />\n <button class=\"icon-button\" (click)=\"removeLine(line)\">\n <clr-icon shape=\"trash\"></clr-icon>\n </button>\n </td>\n <td class=\"align-middle total\">\n {{ line.unitPriceWithTax * line.quantity | localeCurrency : currencyCode }}\n </td>\n </tr>\n <tr class=\"sub-total\">\n <td class=\"left\">{{ 'order.sub-total' | translate }}</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>{{ subTotal | localeCurrency : currencyCode }}</td>\n </tr>\n</table>\n\n<ng-template #emptyPlaceholder>\n <div class=\"card-block empty-placeholder card-span\">\n <div class=\"empty-text\">{{ 'settings.add-products-to-test-order' | translate }}</div>\n <clr-icon shape=\"arrow\" dir=\"down\" size=\"96\"></clr-icon>\n </div>\n</ng-template>\n<div class=\"card-block\">\n <vdr-product-variant-selector (productSelected)=\"selectResult($event)\"> </vdr-product-variant-selector>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { DataService, GetAvailableCountriesQuery, ItemOf, LocalStorageService } from '@vendure/admin-ui/core';\nimport { Observable, Subscription } from 'rxjs';\n\nexport interface TestAddress {\n city: string;\n province: string;\n postalCode: string;\n countryCode: string;\n}\n\n@Component({\n selector: 'vdr-test-address-form',\n templateUrl: './test-address-form.component.html',\n styleUrls: ['./test-address-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TestAddressFormComponent implements OnInit, OnDestroy {\n @Output() addressChange = new EventEmitter<TestAddress>();\n availableCountries$: Observable<Array<ItemOf<GetAvailableCountriesQuery, 'countries'>>>;\n form: UntypedFormGroup;\n private subscription: Subscription;\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n private dataService: DataService,\n private localStorageService: LocalStorageService,\n ) {}\n\n ngOnInit() {\n this.availableCountries$ = this.dataService.settings\n .getAvailableCountries()\n .mapSingle(result => result.countries.items);\n const storedValue = this.localStorageService.getForCurrentLocation('shippingTestAddress');\n const initialValue: TestAddress = storedValue\n ? storedValue\n : {\n city: '',\n countryCode: '',\n postalCode: '',\n province: '',\n };\n this.addressChange.emit(initialValue);\n\n this.form = this.formBuilder.group(initialValue);\n this.subscription = this.form.valueChanges.subscribe(value => {\n this.localStorageService.setForCurrentLocation('shippingTestAddress', value);\n this.addressChange.emit(value);\n });\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","<div class=\"card\">\n <div class=\"card-header\">\n {{ 'settings.test-address' | translate }}\n </div>\n <div class=\"card-block\">\n <form [formGroup]=\"form\" class=\"form-grid\">\n <vdr-form-field [label]=\"'customer.city' | translate\">\n <input formControlName=\"city\" type=\"text\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'customer.province' | translate\">\n <input formControlName=\"province\" type=\"text\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'customer.postal-code' | translate\">\n <input formControlName=\"postalCode\" type=\"text\" />\n </vdr-form-field>\n <vdr-form-field [label]=\"'customer.country' | translate\">\n <select name=\"countryCode\" formControlName=\"countryCode\" >\n <option *ngFor=\"let country of availableCountries$ | async\" [value]=\"country.code\">\n {{ country.name }}\n </option>\n </select>\n </vdr-form-field>\n </form>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { CurrencyCode, TestShippingMethodResult } from '@vendure/admin-ui/core';\n\n@Component({\n selector: 'vdr-shipping-method-test-result',\n templateUrl: './shipping-method-test-result.component.html',\n styleUrls: ['./shipping-method-test-result.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingMethodTestResultComponent {\n @Input() testResult: TestShippingMethodResult;\n @Input() okToRun = false;\n @Input() testDataUpdated = false;\n @Input() currencyCode: CurrencyCode;\n @Output() runTest = new EventEmitter<void>();\n}\n","<div\n class=\"test-result card\"\n [ngClass]=\"{\n success: testResult?.eligible === true,\n error: testResult?.eligible === false,\n unknown: !testResult\n }\"\n>\n <div class=\"card-header\">\n {{ 'settings.test-result' | translate }}\n </div>\n <div class=\"card-block\">\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\n <vdr-labeled-data [label]=\"'settings.eligible' | translate\">\n <div class=\"eligible-icon\">\n <clr-icon\n shape=\"success-standard\"\n class=\"is-solid success\"\n *ngIf=\"testResult?.eligible\"\n ></clr-icon>\n <clr-icon\n shape=\"ban\"\n class=\"is-solid error\"\n *ngIf=\"testResult?.eligible === false\"\n ></clr-icon>\n <clr-icon shape=\"unknown-status\" *ngIf=\"!testResult\"></clr-icon>\n </div>\n {{ testResult?.eligible }}\n </vdr-labeled-data>\n <div class=\"price-row\">\n <vdr-labeled-data\n [label]=\"'common.price' | translate\"\n *ngIf=\"testResult?.quote?.price != null\"\n >\n {{ testResult.quote?.price | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n <vdr-labeled-data\n [label]=\"'common.price-with-tax' | translate\"\n *ngIf=\"testResult?.quote?.priceWithTax != null\"\n >\n {{ testResult.quote?.priceWithTax | localeCurrency: currencyCode }}\n </vdr-labeled-data>\n </div>\n <vdr-object-tree\n *ngIf=\"testResult?.quote?.metadata\"\n [value]=\"testResult?.quote?.metadata\"\n ></vdr-object-tree>\n </div>\n </div>\n <div class=\"card-footer\">\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\n {{ 'settings.test-shipping-method' | translate }}\n </button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n configurableDefinitionToInstance,\n ConfigurableOperation,\n ConfigurableOperationDefinition,\n CreateShippingMethodInput,\n createUpdatedTranslatable,\n DataService,\n findTranslation,\n GetActiveChannelQuery,\n getConfigArgValue,\n getCustomFieldsDefaults,\n GetShippingMethodDetailDocument,\n GetShippingMethodDetailQuery,\n LanguageCode,\n NotificationService,\n Permission,\n SHIPPING_METHOD_FRAGMENT,\n ShippingMethodFragment,\n TestShippingMethodInput,\n TestShippingMethodResult,\n toConfigurableOperationInput,\n TypedBaseDetailComponent,\n UpdateShippingMethodInput,\n} from '@vendure/admin-ui/core';\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\nimport { gql } from 'apollo-angular';\nimport { combineLatest, merge, Observable, of, Subject } from 'rxjs';\nimport { mergeMap, switchMap, take, takeUntil } from 'rxjs/operators';\n\nimport { TestAddress } from '../test-address-form/test-address-form.component';\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\n\nexport const GET_SHIPPING_METHOD_DETAIL = gql`\n query GetShippingMethodDetail($id: ID!) {\n shippingMethod(id: $id) {\n ...ShippingMethod\n }\n }\n ${SHIPPING_METHOD_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-shipping-method-detail',\n templateUrl: './shipping-method-detail.component.html',\n styleUrls: ['./shipping-method-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ShippingMethodDetailComponent\n extends TypedBaseDetailComponent<typeof GetShippingMethodDetailDocument, 'shippingMethod'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('ShippingMethod');\n detailForm = this.formBuilder.group({\n code: ['', Validators.required],\n name: ['', Validators.required],\n description: '',\n fulfillmentHandler: ['', Validators.required],\n checker: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['checker'],\n calculator: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['calculator'],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n checkers: ConfigurableOperationDefinition[] = [];\n calculators: ConfigurableOperationDefinition[] = [];\n fulfillmentHandlers: ConfigurableOperationDefinition[] = [];\n selectedChecker?: ConfigurableOperation | null;\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\n selectedCalculator?: ConfigurableOperation | null;\n selectedCalculatorDefinition?: ConfigurableOperationDefinition;\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\n testAddress: TestAddress;\n testOrderLines: TestOrderLine[];\n testDataUpdated = false;\n testResult$: Observable<TestShippingMethodResult | undefined>;\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateShippingMethod];\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.dataService.shippingMethod.getShippingMethodOperations().single$.subscribe(data => {\n this.checkers = data.shippingEligibilityCheckers;\n this.calculators = data.shippingCalculators;\n this.fulfillmentHandlers = data.fulfillmentHandlers;\n this.changeDetector.markForCheck();\n this.selectedCheckerDefinition = data.shippingEligibilityCheckers.find(\n c => c.code === this.entity?.checker?.code,\n );\n this.selectedCalculatorDefinition = data.shippingCalculators.find(\n c => c.code === this.entity?.calculator?.code,\n );\n });\n\n this.activeChannel$ = this.dataService.settings\n .getActiveChannel()\n .mapStream(data => data.activeChannel);\n\n this.testResult$ = this.fetchTestResult$.pipe(\n switchMap(([address, lines]) => {\n const { checker, calculator } = this.detailForm.value;\n if (!this.selectedChecker || !this.selectedCalculator || !checker || !calculator) {\n return of(undefined);\n }\n const input: TestShippingMethodInput = {\n shippingAddress: { ...address, streetLine1: 'test' },\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\n checker: toConfigurableOperationInput(this.selectedChecker, checker),\n calculator: toConfigurableOperationInput(this.selectedCalculator, calculator),\n };\n return this.dataService.shippingMethod\n .testShippingMethod(input)\n .mapSingle(result => result.testShippingMethod);\n }),\n );\n\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n merge(\n this.detailForm.get(['checker'])!.valueChanges,\n this.detailForm.get(['calculator'])!.valueChanges,\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => (this.testDataUpdated = true));\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n updateCode(currentCode: string | undefined, nameValue: string) {\n if (!currentCode) {\n const codeControl = this.detailForm.get(['code']);\n if (codeControl && codeControl.pristine) {\n codeControl.setValue(normalizeString(nameValue, '-'));\n }\n }\n }\n\n selectChecker(checker: ConfigurableOperationDefinition) {\n this.selectedCheckerDefinition = checker;\n this.selectedChecker = configurableDefinitionToInstance(checker);\n const formControl = this.detailForm.get('checker');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedChecker);\n }\n this.detailForm.markAsDirty();\n }\n\n selectCalculator(calculator: ConfigurableOperationDefinition) {\n this.selectedCalculatorDefinition = calculator;\n this.selectedCalculator = configurableDefinitionToInstance(calculator);\n const formControl = this.detailForm.get('calculator');\n if (formControl) {\n formControl.clearValidators();\n formControl.updateValueAndValidity({ onlySelf: true });\n formControl.patchValue(this.selectedCalculator);\n }\n this.detailForm.markAsDirty();\n }\n\n create() {\n const selectedChecker = this.selectedChecker;\n const selectedCalculator = this.selectedCalculator;\n const { checker, calculator } = this.detailForm.value;\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\n return;\n }\n const input = {\n ...(this.getUpdatedShippingMethod(\n {\n createdAt: '',\n updatedAt: '',\n id: '',\n code: '',\n name: '',\n description: '',\n fulfillmentHandlerCode: '',\n checker: undefined as any,\n calculator: undefined as any,\n translations: [],\n },\n this.detailForm,\n this.languageCode,\n ) as CreateShippingMethodInput),\n checker: toConfigurableOperationInput(selectedChecker, checker),\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\n };\n this.dataService.shippingMethod.createShippingMethod(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'ShippingMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createShippingMethod.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'ShippingMethod',\n });\n },\n );\n }\n\n save() {\n const selectedChecker = this.selectedChecker;\n const selectedCalculator = this.selectedCalculator;\n const { checker, calculator } = this.detailForm.value;\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\n return;\n }\n combineLatest([this.entity$, this.languageCode$])\n .pipe(\n take(1),\n mergeMap(([shippingMethod, languageCode]) => {\n const input = {\n ...(this.getUpdatedShippingMethod(\n shippingMethod,\n this.detailForm,\n languageCode,\n ) as UpdateShippingMethodInput),\n checker: toConfigurableOperationInput(selectedChecker, checker),\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\n };\n return this.dataService.shippingMethod.updateShippingMethod(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'ShippingMethod',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n // eslint-disable-next-line no-console\n console.error(err);\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'ShippingMethod',\n });\n },\n );\n }\n\n setTestOrderLines(event: TestOrderLine[]) {\n this.testOrderLines = event;\n this.testDataUpdated = true;\n }\n\n setTestAddress(event: TestAddress) {\n this.testAddress = event;\n this.testDataUpdated = true;\n }\n\n allTestDataPresent(): boolean {\n return !!(\n this.testAddress &&\n this.testOrderLines &&\n this.testOrderLines.length &&\n this.selectedChecker &&\n this.selectedCalculator\n );\n }\n\n runTest() {\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\n this.testDataUpdated = false;\n }\n\n /**\n * Given a ShippingMethod and the value of the detailForm, this method creates an updated copy which\n * can then be persisted to the API.\n */\n private getUpdatedShippingMethod(\n shippingMethod: NonNullable<GetShippingMethodDetailQuery['shippingMethod']>,\n formGroup: typeof this.detailForm,\n languageCode: LanguageCode,\n ): Omit<CreateShippingMethodInput | UpdateShippingMethodInput, 'checker' | 'calculator'> {\n const formValue = formGroup.value;\n const input = createUpdatedTranslatable({\n translatable: shippingMethod,\n updatedFields: formValue,\n customFieldConfig: this.customFields,\n languageCode,\n defaultTranslation: {\n languageCode,\n name: shippingMethod.name || '',\n description: shippingMethod.description || '',\n },\n });\n return { ...input, fulfillmentHandler: formValue.fulfillmentHandler };\n }\n\n protected setFormValues(shippingMethod: ShippingMethodFragment, languageCode: LanguageCode): void {\n const currentTranslation = findTranslation(shippingMethod, languageCode);\n this.detailForm.patchValue({\n name: currentTranslation?.name ?? '',\n description: currentTranslation?.description ?? '',\n code: shippingMethod.code,\n fulfillmentHandler: shippingMethod.fulfillmentHandlerCode,\n checker: shippingMethod.checker || {},\n calculator: shippingMethod.calculator || {},\n });\n if (!this.selectedChecker) {\n this.selectedChecker = shippingMethod.checker && {\n code: shippingMethod.checker.code,\n args: shippingMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (!this.selectedCalculator) {\n this.selectedCalculator = shippingMethod.calculator && {\n code: shippingMethod.calculator?.code,\n args: shippingMethod.calculator?.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\n };\n }\n if (this.customFields.length) {\n this.setCustomFieldFormValues(\n this.customFields,\n this.detailForm.get(['customFields']),\n shippingMethod,\n currentTranslation,\n );\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"shipping-method-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\n \"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"updatePermission\"\n [disabled]=\"\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\n \"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (input)=\"updateCode(entity?.code, $event.target.value)\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'common.code' | translate\"\n for=\"code\"\n [readOnlyToggle]=\"updatePermission | hasPermission\"\n >\n <input\n id=\"code\"\n type=\"text\"\n formControlName=\"code\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-rich-text-editor\n class=\"form-grid-span\"\n formControlName=\"description\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n [label]=\"'common.description' | translate\"\n ></vdr-rich-text-editor>\n <vdr-form-field\n [label]=\"'settings.fulfillment-handler' | translate\"\n for=\"fulfillmentHandler\"\n >\n <select\n name=\"fulfillmentHandler\"\n formControlName=\"fulfillmentHandler\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\n {{ handler.code }}: {{ handler.description }}\n </option>\n </select>\n </vdr-form-field>\n </div>\n </vdr-card>\n\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"ShippingMethod\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"shipping-method-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n\n <vdr-card [title]=\"'settings.shipping-eligibility-checker' | translate\">\n <vdr-configurable-input\n class=\"card-span\"\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\n [operation]=\"selectedChecker\"\n [operationDefinition]=\"selectedCheckerDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"selectedChecker = null\"\n formControlName=\"checker\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\" class=\"card-span\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let checker of checkers\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectChecker(checker)\"\n >\n {{ checker.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.shipping-calculator' | translate\">\n <vdr-configurable-input\n class=\"card-span\"\n *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\n [operation]=\"selectedCalculator\"\n [operationDefinition]=\"selectedCalculatorDefinition\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n (remove)=\"selectedCalculator = null\"\n formControlName=\"calculator\"\n ></vdr-configurable-input>\n <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\" class=\"card-span\">\n <vdr-dropdown>\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'common.select' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let calculator of calculators\"\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectCalculator(calculator)\"\n >\n {{ calculator.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'settings.test-shipping-method' | translate\">\n <vdr-test-order-builder\n class=\"card-span\"\n (orderLinesChange)=\"setTestOrderLines($event)\"\n ></vdr-test-order-builder>\n <vdr-test-address-form\n (addressChange)=\"setTestAddress($event)\"\n class=\"mt-2\"\n ></vdr-test-address-form>\n <vdr-shipping-method-test-result\n class=\"mt-2\"\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\n [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\n [testDataUpdated]=\"testDataUpdated\"\n [testResult]=\"testResult$ | async\"\n (runTest)=\"runTest()\"\n ></vdr-shipping-method-test-result>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import {\n createBulkAssignToChannelAction,\n createBulkDeleteAction,\n createBulkRemoveFromChannelAction,\n GetShippingMethodListQuery,\n GetRolesQuery,\n ItemOf,\n Permission,\n AssignShippingMethodsToChannelDocument,\n RemoveShippingMethodsFromChannelDocument,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { map } from 'rxjs/operators';\n\nexport const deleteShippingMethodsBulkAction = createBulkDeleteAction<\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\n>({\n location: 'shipping-method-list',\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteShippingMethod),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.shippingMethod.deleteShippingMethods(ids).pipe(map(res => res.deleteShippingMethods)),\n});\n\nconst ASSIGN_SHIPPING_METHODS_TO_CHANNEL = gql`\n mutation AssignShippingMethodsToChannel($input: AssignShippingMethodsToChannelInput!) {\n assignShippingMethodsToChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nconst REMOVE_SHIPPING_METHODS_FROM_CHANNEL = gql`\n mutation RemoveShippingMethodsFromChannel($input: RemoveShippingMethodsFromChannelInput!) {\n removeShippingMethodsFromChannel(input: $input) {\n id\n name\n }\n }\n`;\nexport const assignShippingMethodsToChannelBulkAction = createBulkAssignToChannelAction<\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\n>({\n location: 'shipping-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.UpdateShippingMethod) ||\n userPermissions.includes(Permission.UpdateSettings),\n getItemName: item => item.name,\n bulkAssignToChannel: (dataService, shippingMethodIds, channelIds) =>\n channelIds.map(channelId =>\n dataService\n .mutate(AssignShippingMethodsToChannelDocument, {\n input: {\n channelId,\n shippingMethodIds,\n },\n })\n .pipe(map(res => res.assignShippingMethodsToChannel)),\n ),\n});\n\nexport const removeShippingMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\n>({\n location: 'shipping-method-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteShippingMethod) ||\n userPermissions.includes(Permission.DeleteSettings),\n getItemName: item => item.name,\n bulkRemoveFromChannel: (dataService, shippingMethodIds, channelId) =>\n dataService\n .mutate(RemoveShippingMethodsFromChannelDocument, {\n input: {\n channelId,\n shippingMethodIds,\n },\n })\n .pipe(map(res => res.removeShippingMethodsFromChannel)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetShippingMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_SHIPPING_METHOD_LIST = gql`\n query GetShippingMethodList($options: ShippingMethodListOptions) {\n shippingMethods(options: $options) {\n items {\n ...ShippingMethodListItem\n }\n totalItems\n }\n }\n fragment ShippingMethodListItem on ShippingMethod {\n id\n createdAt\n updatedAt\n code\n name\n description\n fulfillmentHandlerCode\n }\n`;\n\n@Component({\n selector: 'vdr-shipping-method-list',\n templateUrl: './shipping-method-list.component.html',\n styleUrls: ['./shipping-method-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ShippingMethodListComponent\n extends TypedBaseListComponent<typeof GetShippingMethodListDocument, 'shippingMethods'>\n implements OnInit\n{\n dataTableListId = 'shipping-method-list';\n readonly customFields = this.getCustomFieldConfig('ShippingMethod');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'code',\n type: { kind: 'text' },\n label: _('common.code'),\n filterField: 'code',\n })\n .addFilter({\n name: 'description',\n type: { kind: 'text' },\n label: _('common.description'),\n filterField: 'description',\n })\n .addFilter({\n name: 'fulfillmentHandler',\n type: { kind: 'text' },\n label: _('settings.fulfillment-handler'),\n filterField: 'fulfillmentHandlerCode',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'code' })\n .addSort({ name: 'description' })\n .addSort({ name: 'fulfillmentHandlerCode' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetShippingMethodListDocument,\n getItems: data => data.shippingMethods,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"shipping-method-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateShippingMethod']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-shipping-method' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"shipping-method-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-shippingMethod=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', shippingMethod.id]\"\n ><span>{{ shippingMethod.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.code }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.description' | translate\" id=\"description\"\n [sort]=\"sorts.get('description')\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.description }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.fulfillment-handler' | translate\" id=\"fulfillment-handler\" [sort]=\"sorts.get('fulfillmentHandlerCode')\">\n <ng-template let-shippingMethod=\"item\">\n {{ shippingMethod.fulfillmentHandlerCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateStockLocationDocument,\n CreateStockLocationInput,\n DataService,\n getCustomFieldsDefaults,\n GetStockLocationDetailDocument,\n NotificationService,\n StockLocationDetailFragment,\n TypedBaseDetailComponent,\n UpdateStockLocationDocument,\n UpdateStockLocationInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nconst STOCK_LOCATION_DETAIL_FRAGMENT = gql`\n fragment StockLocationDetail on StockLocation {\n id\n createdAt\n updatedAt\n name\n description\n }\n`;\n\nexport const GET_STOCK_LOCATION_DETAIL = gql`\n query GetStockLocationDetail($id: ID!) {\n stockLocation(id: $id) {\n ...StockLocationDetail\n }\n }\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\n`;\n\nexport const CREATE_STOCK_LOCATION = gql`\n mutation CreateStockLocation($input: CreateStockLocationInput!) {\n createStockLocation(input: $input) {\n ...StockLocationDetail\n }\n }\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\n`;\n\nexport const UPDATE_STOCK_LOCATION = gql`\n mutation UpdateStockLocation($input: UpdateStockLocationInput!) {\n updateStockLocation(input: $input) {\n ...StockLocationDetail\n }\n }\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-stock-location-detail',\n templateUrl: './stock-location-detail.component.html',\n styleUrls: ['./stock-location-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class StockLocationDetailComponent\n extends TypedBaseDetailComponent<typeof GetStockLocationDetailDocument, 'stockLocation'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('StockLocation');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n description: [''],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const { name, description, customFields } = this.detailForm.value;\n if (!name) {\n return;\n }\n const input = {\n name,\n description,\n customFields,\n } satisfies CreateStockLocationInput;\n this.dataService.mutate(CreateStockLocationDocument, { input }).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'StockLocation',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createStockLocation.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'StockLocation',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(taxRate => {\n const input = {\n id: taxRate.id,\n name: formValue.name,\n description: formValue.description,\n customFields: formValue.customFields,\n } satisfies UpdateStockLocationInput;\n return this.dataService.mutate(UpdateStockLocationDocument, { input });\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'StockLocation',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'StockLocation',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: StockLocationDetailFragment): void {\n this.detailForm.patchValue({\n name: entity.name,\n description: entity.description,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"stock-location-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\n *vdrIfPermissions=\"'UpdateStockLocation'\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field\n class=\"form-grid-span\"\n [label]=\"'common.description' | translate\"\n for=\"slug\"\n [errors]=\"{ pattern: 'catalog.slug-pattern-error' | translate }\"\n >\n <vdr-rich-text-editor\n formControlName=\"description\"\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\n ></vdr-rich-text-editor>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"StockLocation\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"stock-location-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import {\n AssignStockLocationsToChannelDocument,\n createBulkAssignToChannelAction,\n createBulkDeleteAction,\n createBulkRemoveFromChannelAction,\n DeleteStockLocationsDocument,\n DeletionResult,\n GetStockLocationListQuery,\n ItemOf,\n Permission,\n RemoveStockLocationsFromChannelDocument,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { map } from 'rxjs/operators';\n\nconst DELETE_STOCK_LOCATIONS = gql`\n mutation DeleteStockLocations($input: [DeleteStockLocationInput!]!) {\n deleteStockLocations(input: $input) {\n result\n message\n }\n }\n`;\n\nconst ASSIGN_STOCK_LOCATIONS_TO_CHANNEL = gql`\n mutation AssignStockLocationsToChannel($input: AssignStockLocationsToChannelInput!) {\n assignStockLocationsToChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nconst REMOVE_STOCK_LOCATIONS_FROM_CHANNEL = gql`\n mutation RemoveStockLocationsFromChannel($input: RemoveStockLocationsFromChannelInput!) {\n removeStockLocationsFromChannel(input: $input) {\n id\n name\n }\n }\n`;\n\nexport const deleteStockLocationsBulkAction = createBulkDeleteAction<\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\n>({\n location: 'stock-location-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteStockLocation) ||\n userPermissions.includes(Permission.DeleteCatalog),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService\n .mutate(DeleteStockLocationsDocument, {\n input: ids.map(id => ({ id })),\n })\n .pipe(map(res => res.deleteStockLocations)),\n shouldRetryItem: response => response.result === DeletionResult.NOT_DELETED,\n});\n\nexport const assignStockLocationsToChannelBulkAction = createBulkAssignToChannelAction<\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\n>({\n location: 'stock-location-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.UpdateCatalog) ||\n userPermissions.includes(Permission.UpdateStockLocation),\n getItemName: item => item.name,\n bulkAssignToChannel: (dataService, stockLocationIds, channelIds) =>\n channelIds.map(channelId =>\n dataService\n .mutate(AssignStockLocationsToChannelDocument, {\n input: {\n channelId,\n stockLocationIds,\n },\n })\n .pipe(map(res => res.assignStockLocationsToChannel)),\n ),\n});\n\nexport const removeStockLocationsFromChannelBulkAction = createBulkRemoveFromChannelAction<\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\n>({\n location: 'stock-location-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteCatalog) ||\n userPermissions.includes(Permission.DeleteStockLocation),\n getItemName: item => item.name,\n bulkRemoveFromChannel: (dataService, stockLocationIds, channelId) =>\n dataService\n .mutate(RemoveStockLocationsFromChannelDocument, {\n input: {\n channelId,\n stockLocationIds,\n },\n })\n .pipe(map(res => res.removeStockLocationsFromChannel)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetStockLocationListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_STOCK_LOCATION_LIST = gql`\n query GetStockLocationList($options: StockLocationListOptions) {\n stockLocations(options: $options) {\n items {\n ...StockLocationListItem\n }\n totalItems\n }\n }\n fragment StockLocationListItem on StockLocation {\n id\n createdAt\n updatedAt\n name\n description\n }\n`;\n\n@Component({\n selector: 'vdr-stock-location-list',\n templateUrl: './stock-location-list.component.html',\n styleUrls: ['./stock-location-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class StockLocationListComponent\n extends TypedBaseListComponent<typeof GetStockLocationListDocument, 'stockLocations'>\n implements OnInit\n{\n dataTableListId = 'stock-location-list';\n readonly customFields = this.getCustomFieldConfig('StockLocation');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilters([\n {\n name: 'enabled',\n type: { kind: 'text' },\n label: _('common.enabled'),\n filterField: 'name',\n },\n {\n name: 'sku',\n type: { kind: 'text' },\n label: _('catalog.sku'),\n filterField: 'description',\n },\n ])\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .addSorts([\n { name: 'id' },\n { name: 'createdAt' },\n { name: 'updatedAt' },\n { name: 'name' },\n { name: 'description' },\n ])\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n this.configure({\n document: GetStockLocationListDocument,\n getItems: data => data.stockLocations,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"stock-location-list\" />\n <a\n class=\"button primary\"\n *vdrIfPermissions=\"['CreateStockLocation']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'catalog.create-new-stock-location' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n class=\"mt-2\"\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"stock-location-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\n <ng-template let-stockLocation=\"item\">\n {{ stockLocation.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-stockLocation=\"item\">\n {{ stockLocation.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-stockLocation=\"item\">\n {{ stockLocation.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-stockLocation=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', stockLocation.id]\"\n ><span>{{ stockLocation.name }}</span\n ><clr-icon shape=\"arrow right\"\n /></a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.description' | translate\" id=\"description\" [sort]=\"sorts.get('description')\">\n <ng-template let-stockLocation=\"item\">\n <div class=\"description\" [innerHTML]=\"stockLocation.description\"></div>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let field of customFields\"\n [customField]=\"field\"\n [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateTaxCategoryInput,\n DataService,\n getCustomFieldsDefaults,\n GetTaxCategoryDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n TAX_CATEGORY_FRAGMENT,\n TaxCategoryFragment,\n TypedBaseDetailComponent,\n UpdateTaxCategoryInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_TAX_CATEGORY_DETAIL = gql`\n query GetTaxCategoryDetail($id: ID!) {\n taxCategory(id: $id) {\n ...TaxCategory\n }\n }\n ${TAX_CATEGORY_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-detail',\n templateUrl: './tax-category-detail.component.html',\n styleUrls: ['./tax-category-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxCategoryDetailComponent\n extends TypedBaseDetailComponent<typeof GetTaxCategoryDetailDocument, 'taxCategory'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('TaxCategory');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n isDefault: false,\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxCategory];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n const input = {\n name: formValue.name,\n isDefault: formValue.isDefault,\n customFields: formValue.customFields,\n } as CreateTaxCategoryInput;\n this.dataService.settings.createTaxCategory(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'TaxCategory',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createTaxCategory.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'TaxCategory',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(taxCategory => {\n const input = {\n id: taxCategory.id,\n name: formValue.name,\n isDefault: formValue.isDefault,\n customFields: formValue.customFields,\n } as UpdateTaxCategoryInput;\n return this.dataService.settings.updateTaxCategory(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'TaxCategory',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'TaxCategory',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: TaxCategoryFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n name: entity.name,\n isDefault: entity.isDefault,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-category-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!saveButtonEnabled()\"\n *vdrIfPermissions=\"updatePermission\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"isDefault\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n formControlName=\"isDefault\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"TaxCategory\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"tax-category-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetTaxCategoryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteTaxCategoriesBulkAction = createBulkDeleteAction<\n ItemOf<GetTaxCategoryListQuery, 'taxCategories'>\n>({\n location: 'tax-category-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteTaxCategory),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteTaxCategories(ids).pipe(map(res => res.deleteTaxCategories)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n GetTaxCategoryListDocument,\n TAX_CATEGORY_FRAGMENT,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_TAX_CATEGORY_LIST = gql`\n query GetTaxCategoryList($options: TaxCategoryListOptions) {\n taxCategories(options: $options) {\n items {\n ...TaxCategory\n }\n totalItems\n }\n }\n ${TAX_CATEGORY_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-list',\n templateUrl: './tax-category-list.component.html',\n styleUrls: ['./tax-category-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxCategoryListComponent extends TypedBaseListComponent<\n typeof GetTaxCategoryListDocument,\n 'taxCategories'\n> {\n dataTableListId = 'tax-category-list';\n readonly customFields = this.serverConfigService.getCustomFieldsFor('TaxCategory');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetTaxCategoryListDocument,\n getItems: data => data.taxCategories,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-category-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxCategory']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-tax-category' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"tax-category-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-taxCategory=\"item\">\n {{ taxCategory.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-taxCategory=\"item\">\n {{ taxCategory.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-taxCategory=\"item\">\n {{ taxCategory.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-taxCategory=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', taxCategory.id]\"\n ><span>{{ taxCategory.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.default-tax-category' | translate\" id=\"default-tax-category\">\n <ng-template let-taxCategory=\"item\">\n <vdr-chip *ngIf=\"taxCategory.isDefault\">{{ 'common.default-tax-category' | translate }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateTaxRateInput,\n CustomerGroup,\n DataService,\n getCustomFieldsDefaults,\n GetTaxRateDetailDocument,\n LanguageCode,\n NotificationService,\n Permission,\n TAX_RATE_FRAGMENT,\n TaxCategoryFragment,\n TaxRateFragment,\n TypedBaseDetailComponent,\n UpdateTaxRateInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_TAX_RATE_DETAIL = gql`\n query GetTaxRateDetail($id: ID!) {\n taxRate(id: $id) {\n ...TaxRate\n }\n }\n ${TAX_RATE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-rate-detail',\n templateUrl: './tax-rate-detail.component.html',\n styleUrls: ['./tax-rate-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaxRateDetailComponent\n extends TypedBaseDetailComponent<typeof GetTaxRateDetailDocument, 'taxRate'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('TaxRate');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n enabled: [true],\n value: [0, Validators.required],\n taxCategoryId: ['', Validators.required],\n zoneId: ['', Validators.required],\n customerGroupId: [''],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n taxCategories$: Observable<TaxCategoryFragment[]>;\n groups$: Observable<CustomerGroup[]>;\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxRate];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n this.taxCategories$ = this.dataService.settings\n .getTaxCategories({ take: 100 })\n .mapSingle(data => data.taxCategories.items);\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const { name, enabled, value, taxCategoryId, zoneId, customFields, customerGroupId } =\n this.detailForm.value;\n if (!name || enabled == null || value == null || !taxCategoryId || !zoneId) {\n return;\n }\n const input = {\n name,\n enabled,\n value,\n categoryId: taxCategoryId,\n zoneId,\n customerGroupId,\n customFields,\n } satisfies CreateTaxRateInput;\n this.dataService.settings.createTaxRate(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'TaxRate',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createTaxRate.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'TaxRate',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(taxRate => {\n const input = {\n id: taxRate.id,\n name: formValue.name,\n enabled: formValue.enabled,\n value: formValue.value,\n categoryId: formValue.taxCategoryId,\n zoneId: formValue.zoneId,\n customerGroupId: formValue.customerGroupId,\n customFields: formValue.customFields,\n } satisfies UpdateTaxRateInput;\n return this.dataService.settings.updateTaxRate(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'TaxRate',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'TaxRate',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(entity: TaxRateFragment, languageCode: LanguageCode): void {\n this.detailForm.patchValue({\n name: entity.name,\n enabled: entity.enabled,\n value: entity.value,\n taxCategoryId: entity.category ? entity.category.id : '',\n zoneId: entity.zone ? entity.zone.id : '',\n customerGroupId: entity.customerGroup ? entity.customerGroup.id : '',\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left></vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-rate-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!saveButtonEnabled()\"\n *vdrIfPermissions=\"updatePermission\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\n <clr-toggle-wrapper>\n <input\n type=\"checkbox\"\n clrToggle\n id=\"enabled\"\n formControlName=\"enabled\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n />\n </clr-toggle-wrapper>\n </vdr-form-field>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\n <vdr-affixed-input suffix=\"%\">\n <input\n id=\"value\"\n type=\"number\"\n step=\"0.1\"\n formControlName=\"value\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-affixed-input>\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\n <select\n name=\"taxCategoryId\"\n formControlName=\"taxCategoryId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n <option\n *ngFor=\"let taxCategory of taxCategories$ | async\"\n [value]=\"taxCategory.id\"\n >\n {{ taxCategory.name }}\n </option>\n </select>\n </vdr-form-field>\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\n <vdr-zone-selector\n name=\"zoneId\"\n formControlName=\"zoneId\"\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\n >\n </vdr-zone-selector>\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"TaxRate\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"tax-rate-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetTaxRateListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteTaxRatesBulkAction = createBulkDeleteAction<ItemOf<GetTaxRateListQuery, 'taxRates'>>({\n location: 'tax-rate-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteTaxRate),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) =>\n dataService.settings.deleteTaxRates(ids).pipe(map(res => res.deleteTaxRates)),\n});\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { GetTaxRateListDocument, TAX_RATE_FRAGMENT, TypedBaseListComponent } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_TAX_RATE_LIST = gql`\n query GetTaxRateList($options: TaxRateListOptions) {\n taxRates(options: $options) {\n items {\n ...TaxRate\n }\n totalItems\n }\n }\n ${TAX_RATE_FRAGMENT}\n`;\n\n@Component({\n selector: 'vdr-tax-rate-list',\n templateUrl: './tax-rate-list.component.html',\n styleUrls: ['./tax-rate-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TaxRateListComponent extends TypedBaseListComponent<typeof GetTaxRateListDocument, 'taxRates'> {\n dataTableListId = 'tax-rate-list';\n readonly customFields = this.getCustomFieldConfig('TaxRate');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addFilter({\n name: 'enabled',\n type: { kind: 'boolean' },\n label: _('common.enabled'),\n filterField: 'enabled',\n })\n .addFilter({\n name: 'value',\n type: { kind: 'number' },\n label: _('common.value'),\n filterField: 'value',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addSort({ name: 'value' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor() {\n super();\n super.configure({\n document: GetTaxRateListDocument,\n getItems: data => data.taxRates,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"tax-rate-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-tax-rate' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"tax-rate-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-taxRate=\"item\">\n {{ taxRate.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-taxRate=\"item\">\n {{ taxRate.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\n <ng-template let-taxRate=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', taxRate.id]\"\n ><span>{{ taxRate.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.tax-category' | translate\" id=\"tax-category\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.category.name }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.zone' | translate\" id=\"zone\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.zone.name }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.customer-group' | translate\" id=\"customer-group\" [hiddenByDefault]=\"true\">\n <ng-template let-taxRate=\"item\">\n {{ taxRate.customerGroup?.name }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'settings.tax-rate' | translate\" id=\"tax-rate\" [sort]=\"sorts.get('value')\">\n <ng-template let-taxRate=\"item\"> {{ taxRate.value }}% </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-taxRate=\"item\">\n <vdr-chip *ngIf=\"taxRate.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!taxRate.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport {\n DataService,\n GetActiveChannelQuery,\n ShippingMethodQuote,\n TestEligibleShippingMethodsInput,\n} from '@vendure/admin-ui/core';\nimport { Observable, Subject } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { TestAddress } from '../test-address-form/test-address-form.component';\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\n\n@Component({\n selector: 'vdr-test-shipping-methods',\n templateUrl: './test-shipping-methods.component.html',\n styleUrls: ['./test-shipping-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class TestShippingMethodsComponent implements OnInit {\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\n testAddress: TestAddress;\n testOrderLines: TestOrderLine[];\n testDataUpdated = false;\n testResult$: Observable<ShippingMethodQuote[] | undefined>;\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\n\n constructor(private dataService: DataService) {}\n\n ngOnInit() {\n this.activeChannel$ = this.dataService.settings\n .getActiveChannel()\n .mapStream(data => data.activeChannel);\n this.testResult$ = this.fetchTestResult$.pipe(\n switchMap(([address, lines]) => {\n const input: TestEligibleShippingMethodsInput = {\n shippingAddress: { ...address, streetLine1: 'test' },\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\n };\n return this.dataService.shippingMethod\n .testEligibleShippingMethods(input)\n .mapSingle(result => result.testEligibleShippingMethods);\n }),\n );\n }\n\n setTestOrderLines(event: TestOrderLine[]) {\n this.testOrderLines = event;\n this.testDataUpdated = true;\n }\n\n setTestAddress(event: TestAddress) {\n this.testAddress = event;\n this.testDataUpdated = true;\n }\n\n allTestDataPresent(): boolean {\n return !!(this.testAddress && this.testOrderLines && this.testOrderLines.length);\n }\n\n runTest() {\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\n this.testDataUpdated = false;\n }\n}\n","<vdr-page-block>\n <div class=\"test-wrapper\">\n <div class=\"\">\n <vdr-test-order-builder (orderLinesChange)=\"setTestOrderLines($event)\"></vdr-test-order-builder>\n </div>\n <div class=\"\">\n <vdr-test-address-form (addressChange)=\"setTestAddress($event)\"></vdr-test-address-form>\n <vdr-shipping-eligibility-test-result\n class=\"mt-1\"\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\n [okToRun]=\"allTestDataPresent()\"\n [testDataUpdated]=\"testDataUpdated\"\n [testResult]=\"testResult$ | async\"\n (runTest)=\"runTest()\"\n ></vdr-shipping-eligibility-test-result>\n </div>\n </div>\n</vdr-page-block>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n CreateZoneInput,\n DataService,\n getCustomFieldsDefaults,\n GetZoneDetailDocument,\n GetZoneDetailQuery,\n LanguageCode,\n NotificationService,\n Permission,\n TypedBaseDetailComponent,\n UpdateTaxCategoryInput,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport const GET_ZONE_DETAIL = gql`\n query GetZoneDetail($id: ID!) {\n zone(id: $id) {\n ...ZoneDetail\n }\n }\n fragment ZoneDetail on Zone {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-zone-detail',\n templateUrl: './zone-detail.component.html',\n styleUrls: ['./zone-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ZoneDetailComponent\n extends TypedBaseDetailComponent<typeof GetZoneDetailDocument, 'zone'>\n implements OnInit, OnDestroy\n{\n customFields = this.getCustomFieldConfig('Zone');\n detailForm = this.formBuilder.group({\n name: ['', Validators.required],\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n });\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateZone];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n protected dataService: DataService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n super();\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n saveButtonEnabled(): boolean {\n return this.detailForm.dirty && this.detailForm.valid;\n }\n\n create() {\n if (!this.detailForm.dirty) {\n return;\n }\n const { name, customFields } = this.detailForm.value;\n if (!name) {\n return;\n }\n const input = {\n name,\n customFields,\n } satisfies CreateZoneInput;\n this.dataService.settings.createZone(input).subscribe(\n data => {\n this.notificationService.success(_('common.notify-create-success'), {\n entity: 'Zone',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n this.router.navigate(['../', data.createZone.id], { relativeTo: this.route });\n },\n err => {\n this.notificationService.error(_('common.notify-create-error'), {\n entity: 'Zone',\n });\n },\n );\n }\n\n save() {\n if (!this.detailForm.dirty) {\n return;\n }\n const formValue = this.detailForm.value;\n this.entity$\n .pipe(\n take(1),\n mergeMap(zone => {\n const input = {\n id: zone.id,\n name: formValue.name,\n customFields: formValue.customFields,\n } satisfies UpdateTaxCategoryInput;\n return this.dataService.settings.updateZone(input);\n }),\n )\n .subscribe(\n data => {\n this.notificationService.success(_('common.notify-update-success'), {\n entity: 'Zone',\n });\n this.detailForm.markAsPristine();\n this.changeDetector.markForCheck();\n },\n err => {\n this.notificationService.error(_('common.notify-update-error'), {\n entity: 'Zone',\n });\n },\n );\n }\n\n /**\n * Update the form values when the entity changes.\n */\n protected setFormValues(\n entity: NonNullable<GetZoneDetailQuery['zone']>,\n languageCode: LanguageCode,\n ): void {\n this.detailForm.patchValue({\n name: entity.name,\n });\n if (this.customFields.length) {\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\n }\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"zone-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!saveButtonEnabled()\"\n *vdrIfPermissions=\"updatePermission\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"zone-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(updatePermission | hasPermission)\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Zone\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"zone-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n","import { createBulkDeleteAction, GetZoneListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\nimport { map } from 'rxjs/operators';\n\nexport const deleteZonesBulkAction = createBulkDeleteAction<ItemOf<GetZoneListQuery, 'zones'>>({\n location: 'zone-list',\n requiresPermission: userPermissions =>\n userPermissions.includes(Permission.DeleteSettings) ||\n userPermissions.includes(Permission.DeleteZone),\n getItemName: item => item.name,\n bulkDelete: (dataService, ids) => dataService.settings.deleteZones(ids).pipe(map(res => res.deleteZones)),\n});\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n GetZoneListDocument,\n GetZoneListQuery,\n ItemOf,\n LanguageCode,\n LogicalOperator,\n ModalService,\n NotificationService,\n TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { combineLatest, EMPTY, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, mapTo, switchMap, tap } from 'rxjs/operators';\n\nimport { AddCountryToZoneDialogComponent } from '../add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nimport { ZoneMemberListComponent } from '../zone-member-list/zone-member-list.component';\n\nexport const GET_ZONE_LIST = gql`\n query GetZoneList($options: ZoneListOptions) {\n zones(options: $options) {\n items {\n ...ZoneListItem\n }\n totalItems\n }\n }\n fragment ZoneListItem on Zone {\n id\n createdAt\n updatedAt\n name\n }\n`;\n\n@Component({\n selector: 'vdr-zone-list',\n templateUrl: './zone-list.component.html',\n styleUrls: ['./zone-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ZoneListComponent\n extends TypedBaseListComponent<typeof GetZoneListDocument, 'zones'>\n implements OnInit\n{\n dataTableListId = 'zone-list';\n activeZone$: Observable<ItemOf<GetZoneListQuery, 'zones'> | undefined>;\n activeIndex$: Observable<number>;\n selectedMemberIds: string[] = [];\n @ViewChild(ZoneMemberListComponent) zoneMemberList: ZoneMemberListComponent;\n readonly customFields = this.serverConfigService.getCustomFieldsFor('Zone');\n readonly filters = this.createFilterCollection()\n .addIdFilter()\n .addDateFilters()\n .addFilter({\n name: 'name',\n type: { kind: 'text' },\n label: _('common.name'),\n filterField: 'name',\n })\n .addCustomFieldFilters(this.customFields)\n .connectToRoute(this.route);\n\n readonly sorts = this.createSortCollection()\n .defaultSort('createdAt', 'DESC')\n .addSort({ name: 'createdAt' })\n .addSort({ name: 'updatedAt' })\n .addSort({ name: 'name' })\n .addCustomFieldSorts(this.customFields)\n .connectToRoute(this.route);\n\n constructor(\n protected dataService: DataService,\n private notificationService: NotificationService,\n private modalService: ModalService,\n ) {\n super();\n super.configure({\n document: GetZoneListDocument,\n getItems: data => data.zones,\n setVariables: (skip, take) => ({\n options: {\n skip,\n take,\n filter: {\n name: {\n contains: this.searchTermControl.value,\n },\n ...this.filters.createFilterInput(),\n },\n filterOperator: this.searchTermControl.value ? LogicalOperator.OR : LogicalOperator.AND,\n sort: this.sorts.createSortInput(),\n },\n }),\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n });\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n const activeZoneId$ = this.route.paramMap.pipe(\n map(pm => pm.get('contents')),\n distinctUntilChanged(),\n tap(() => (this.selectedMemberIds = [])),\n );\n this.activeZone$ = combineLatest(this.items$, activeZoneId$).pipe(\n map(([zones, activeZoneId]) => {\n if (activeZoneId) {\n return zones.find(z => z.id === activeZoneId);\n }\n }),\n );\n this.activeIndex$ = combineLatest(this.items$, activeZoneId$).pipe(\n map(([zones, activeZoneId]) => {\n if (activeZoneId) {\n return zones.findIndex(g => g.id === activeZoneId);\n } else {\n return -1;\n }\n }),\n );\n }\n\n setLanguage(code: LanguageCode) {\n this.dataService.client.setContentLanguage(code).subscribe();\n }\n\n closeMembers() {\n const params = { ...this.route.snapshot.params };\n delete params.contents;\n this.router.navigate(['./', params], { relativeTo: this.route, queryParamsHandling: 'preserve' });\n }\n\n addToZone(zone: ItemOf<GetZoneListQuery, 'zones'>) {\n this.modalService\n .fromComponent(AddCountryToZoneDialogComponent, {\n locals: {\n zoneName: zone.name,\n zoneId: zone.id,\n },\n size: 'md',\n })\n .pipe(\n switchMap(memberIds =>\n memberIds\n ? this.dataService.settings\n .addMembersToZone(zone.id, memberIds)\n .pipe(mapTo(memberIds))\n : EMPTY,\n ),\n )\n .subscribe({\n next: result => {\n this.notificationService.success(_(`settings.add-countries-to-zone-success`), {\n countryCount: result.length,\n zoneName: zone.name,\n });\n this.refreshMemberList();\n },\n error: err => {\n this.notificationService.error(err);\n },\n });\n }\n\n refreshMemberList() {\n this.zoneMemberList?.refresh();\n }\n}\n","<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"zone-list\" />\n <a\n class=\"btn btn-primary\"\n *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\"\n [routerLink]=\"['./', 'create']\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'settings.create-new-zone' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"zone-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-split-view [rightPanelOpen]=\"activeZone$ | async\" (closeClicked)=\"closeMembers()\">\n <ng-template vdrSplitViewLeft>\n <vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n [activeIndex]=\"activeIndex$ | async\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n >\n <vdr-bulk-action-menu\n locationId=\"zone-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\" id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-customerGroup=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\n ><span>{{ customerGroup.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.view-contents' | translate\" id=\"view-contents\" [optional]=\"false\">\n <ng-template let-customerGroup=\"item\">\n <a\n class=\"button-small bg-weight-150\"\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\n queryParamsHandling=\"preserve\"\n >\n <span>{{ 'settings.view-zone-members' | translate }}</span>\n <clr-icon shape=\"file-group\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sort]=\"sorts\"\n />\n </vdr-data-table-2>\n </ng-template>\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeZone$ | async)?.name\">\n <ng-container *ngIf=\"activeZone$ | async as activeZone\">\n <button class=\"button-ghost ml-4\" (click)=\"addToZone(activeZone)\">\n <clr-icon shape=\"plus\"></clr-icon>\n <span>{{\n 'settings.add-countries-to-zone' | translate : { zoneName: activeZone.name }\n }}</span>\n </button>\n <vdr-zone-member-list\n *ngIf=\"activeZone$ | async as activeZone\"\n locationId=\"zone-members-list\"\n [selectedMemberIds]=\"selectedMemberIds\"\n [activeZone]=\"activeZone\"\n (selectionChange)=\"selectedMemberIds = $event\"\n />\n </ng-container>\n </ng-template>\n</vdr-split-view>\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { BulkAction, DataService, NotificationService, Permission } from '@vendure/admin-ui/core';\nimport { ZoneMember, ZoneMemberListComponent } from './zone-member-list.component';\n\nexport const removeZoneMembersBulkAction: BulkAction<ZoneMember, ZoneMemberListComponent> = {\n location: 'zone-members-list',\n label: _('settings.remove-from-zone'),\n icon: 'trash',\n iconClass: 'is-danger',\n requiresPermission: Permission.UpdateCustomerGroup,\n onClick: ({ injector, selection, hostComponent, clearSelection }) => {\n const dataService = injector.get(DataService);\n const notificationService = injector.get(NotificationService);\n\n const zone = hostComponent.activeZone;\n const memberIds = selection.map(s => s.id);\n\n dataService.settings.removeMembersFromZone(zone.id, memberIds).subscribe({\n complete: () => {\n notificationService.success(_(`settings.remove-countries-from-zone-success`), {\n countryCount: memberIds.length,\n zoneName: zone.name,\n });\n hostComponent.refresh();\n clearSelection();\n },\n });\n },\n};\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AdministratorFragment, BaseEntityResolver, DataService } from '@vendure/admin-ui/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileResolver extends BaseEntityResolver<AdministratorFragment> {\n constructor(router: Router, dataService: DataService) {\n super(\n router,\n {\n __typename: 'Administrator' as const,\n id: '',\n createdAt: '',\n updatedAt: '',\n emailAddress: '',\n firstName: '',\n lastName: '',\n user: { roles: [] } as any,\n },\n id =>\n dataService.administrator\n .getActiveAdministrator()\n .mapStream(data => data.activeAdministrator),\n );\n }\n}\n","import { inject } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n GetGlobalSettingsDetailDocument,\n GetProfileDetailDocument,\n PageComponent,\n PageService,\n} from '@vendure/admin-ui/core';\nimport { of } from 'rxjs';\n\nexport const createRoutes = (pageService: PageService): Route[] => [\n {\n path: 'profile',\n component: PageComponent,\n data: {\n breadcrumb: _('breadcrumb.profile'),\n },\n resolve: {\n detail: () =>\n inject(DataService)\n .query(GetProfileDetailDocument)\n .mapSingle(data => ({ entity: of(data.activeAdministrator) })),\n },\n children: pageService.getPageTabRoutes('profile'),\n },\n {\n path: 'administrators',\n component: PageComponent,\n data: {\n locationId: 'administrator-list',\n breadcrumb: _('breadcrumb.administrators'),\n },\n children: pageService.getPageTabRoutes('administrator-list'),\n },\n {\n path: 'administrators/:id',\n component: PageComponent,\n data: {\n locationId: 'administrator-detail',\n breadcrumb: { label: _('breadcrumb.administrators'), link: ['../', 'administrators'] },\n },\n children: pageService.getPageTabRoutes('administrator-detail'),\n },\n {\n path: 'channels',\n component: PageComponent,\n data: {\n locationId: 'channel-list',\n breadcrumb: _('breadcrumb.channels'),\n },\n children: pageService.getPageTabRoutes('channel-list'),\n },\n {\n path: 'channels/:id',\n component: PageComponent,\n data: {\n locationId: 'channel-detail',\n breadcrumb: { label: _('breadcrumb.channels'), link: ['../', 'channels'] },\n },\n children: pageService.getPageTabRoutes('channel-detail'),\n },\n {\n path: 'stock-locations',\n component: PageComponent,\n data: {\n locationId: 'stock-location-list',\n breadcrumb: _('breadcrumb.stock-locations'),\n },\n children: pageService.getPageTabRoutes('stock-location-list'),\n },\n {\n path: 'stock-locations/:id',\n component: PageComponent,\n data: {\n locationId: 'stock-location-detail',\n breadcrumb: { label: _('breadcrumb.stock-locations'), link: ['../', 'stock-locations'] },\n },\n children: pageService.getPageTabRoutes('stock-location-detail'),\n },\n {\n path: 'sellers',\n component: PageComponent,\n data: {\n locationId: 'seller-list',\n breadcrumb: _('breadcrumb.sellers'),\n },\n children: pageService.getPageTabRoutes('seller-list'),\n },\n {\n path: 'sellers/:id',\n component: PageComponent,\n data: {\n locationId: 'seller-detail',\n breadcrumb: { label: _('breadcrumb.sellers'), link: ['../', 'sellers'] },\n },\n children: pageService.getPageTabRoutes('seller-detail'),\n },\n {\n path: 'roles',\n component: PageComponent,\n data: {\n locationId: 'role-list',\n breadcrumb: _('breadcrumb.roles'),\n },\n children: pageService.getPageTabRoutes('role-list'),\n },\n {\n path: 'roles/:id',\n component: PageComponent,\n data: {\n locationId: 'role-detail',\n breadcrumb: { label: _('breadcrumb.roles'), link: ['../', 'roles'] },\n },\n children: pageService.getPageTabRoutes('role-detail'),\n },\n {\n path: 'tax-categories',\n component: PageComponent,\n data: {\n locationId: 'tax-category-list',\n breadcrumb: _('breadcrumb.tax-categories'),\n },\n children: pageService.getPageTabRoutes('tax-category-list'),\n },\n {\n path: 'tax-categories/:id',\n component: PageComponent,\n data: {\n locationId: 'tax-category-detail',\n breadcrumb: { label: _('breadcrumb.tax-categories'), link: ['../', 'tax-categories'] },\n },\n children: pageService.getPageTabRoutes('tax-category-detail'),\n },\n {\n path: 'tax-rates',\n component: PageComponent,\n data: {\n locationId: 'tax-rate-list',\n breadcrumb: _('breadcrumb.tax-rates'),\n },\n children: pageService.getPageTabRoutes('tax-rate-list'),\n },\n {\n path: 'tax-rates/:id',\n component: PageComponent,\n data: {\n locationId: 'tax-rate-detail',\n breadcrumb: { label: _('breadcrumb.tax-rates'), link: ['../', 'tax-rates'] },\n },\n children: pageService.getPageTabRoutes('tax-rate-detail'),\n },\n {\n path: 'countries',\n component: PageComponent,\n data: {\n locationId: 'country-list',\n breadcrumb: _('breadcrumb.countries'),\n },\n children: pageService.getPageTabRoutes('country-list'),\n },\n {\n path: 'countries/:id',\n component: PageComponent,\n data: {\n locationId: 'country-detail',\n breadcrumb: { label: _('breadcrumb.countries'), link: ['../', 'countries'] },\n },\n children: pageService.getPageTabRoutes('country-detail'),\n },\n {\n path: 'zones',\n component: PageComponent,\n data: {\n locationId: 'zone-list',\n breadcrumb: _('breadcrumb.zones'),\n },\n children: pageService.getPageTabRoutes('zone-list'),\n },\n {\n path: 'zones/:id',\n component: PageComponent,\n data: {\n locationId: 'zone-detail',\n breadcrumb: { label: _('breadcrumb.zones'), link: ['../', 'zones'] },\n },\n children: pageService.getPageTabRoutes('zone-detail'),\n },\n {\n path: 'shipping-methods',\n component: PageComponent,\n data: {\n locationId: 'shipping-method-list',\n breadcrumb: _('breadcrumb.shipping-methods'),\n },\n children: pageService.getPageTabRoutes('shipping-method-list'),\n },\n {\n path: 'shipping-methods/:id',\n component: PageComponent,\n data: {\n locationId: 'shipping-method-detail',\n breadcrumb: { label: _('breadcrumb.shipping-methods'), link: ['../', 'shipping-methods'] },\n },\n children: pageService.getPageTabRoutes('shipping-method-detail'),\n },\n {\n path: 'payment-methods',\n component: PageComponent,\n data: {\n locationId: 'payment-method-list',\n breadcrumb: _('breadcrumb.payment-methods'),\n },\n children: pageService.getPageTabRoutes('payment-method-list'),\n },\n {\n path: 'payment-methods/:id',\n component: PageComponent,\n data: {\n locationId: 'payment-method-detail',\n breadcrumb: { label: _('breadcrumb.payment-methods'), link: ['../', 'payment-methods'] },\n },\n children: pageService.getPageTabRoutes('payment-method-detail'),\n },\n {\n path: 'global-settings',\n component: PageComponent,\n data: {\n breadcrumb: _('breadcrumb.global-settings'),\n locationId: 'global-setting-detail',\n },\n resolve: {\n detail: () =>\n inject(DataService)\n .query(GetGlobalSettingsDetailDocument)\n .mapSingle(data => ({ entity: of(data.globalSettings) })),\n },\n children: pageService.getPageTabRoutes('global-setting-detail'),\n },\n];\n","import { NgModule } from '@angular/core';\nimport { RouterModule, ROUTES } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n BulkActionRegistryService,\n detailComponentWithResolver,\n GetAdministratorDetailDocument,\n GetChannelDetailDocument,\n GetCountryDetailDocument,\n GetPaymentMethodDetailDocument,\n GetRoleDetailDocument,\n GetSellerDetailDocument,\n GetShippingMethodDetailDocument,\n GetStockLocationDetailDocument,\n GetTaxCategoryDetailDocument,\n GetTaxRateDetailDocument,\n GetZoneDetailDocument,\n PageService,\n SharedModule,\n} from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\n\nimport { AddCountryToZoneDialogComponent } from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nimport { AdminDetailComponent } from './components/admin-detail/admin-detail.component';\nimport { deleteAdministratorsBulkAction } from './components/administrator-list/administrator-list-bulk-actions';\nimport { AdministratorListComponent } from './components/administrator-list/administrator-list.component';\nimport { ChannelDetailComponent } from './components/channel-detail/channel-detail.component';\nimport { deleteChannelsBulkAction } from './components/channel-list/channel-list-bulk-actions';\nimport { ChannelListComponent } from './components/channel-list/channel-list.component';\nimport { CountryDetailComponent } from './components/country-detail/country-detail.component';\nimport { deleteCountriesBulkAction } from './components/country-list/country-list-bulk-actions';\nimport { CountryListComponent } from './components/country-list/country-list.component';\nimport { GlobalSettingsComponent } from './components/global-settings/global-settings.component';\nimport { PaymentMethodDetailComponent } from './components/payment-method-detail/payment-method-detail.component';\nimport {\n assignPaymentMethodsToChannelBulkAction,\n deletePaymentMethodsBulkAction,\n removePaymentMethodsFromChannelBulkAction,\n} from './components/payment-method-list/payment-method-list-bulk-actions';\nimport { PaymentMethodListComponent } from './components/payment-method-list/payment-method-list.component';\nimport { PermissionGridComponent } from './components/permission-grid/permission-grid.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { RoleDetailComponent } from './components/role-detail/role-detail.component';\nimport { deleteRolesBulkAction } from './components/role-list/role-list-bulk-actions';\nimport { RoleListComponent } from './components/role-list/role-list.component';\nimport { SellerDetailComponent } from './components/seller-detail/seller-detail.component';\nimport { deleteSellersBulkAction } from './components/seller-list/seller-list-bulk-actions';\nimport { SellerListComponent } from './components/seller-list/seller-list.component';\nimport { ShippingEligibilityTestResultComponent } from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\nimport { ShippingMethodDetailComponent } from './components/shipping-method-detail/shipping-method-detail.component';\nimport {\n assignShippingMethodsToChannelBulkAction,\n deleteShippingMethodsBulkAction,\n removeShippingMethodsFromChannelBulkAction,\n} from './components/shipping-method-list/shipping-method-list-bulk-actions';\nimport { ShippingMethodListComponent } from './components/shipping-method-list/shipping-method-list.component';\nimport { ShippingMethodTestResultComponent } from './components/shipping-method-test-result/shipping-method-test-result.component';\nimport { StockLocationDetailComponent } from './components/stock-location-detail/stock-location-detail.component';\nimport {\n assignStockLocationsToChannelBulkAction,\n deleteStockLocationsBulkAction,\n removeStockLocationsFromChannelBulkAction,\n} from './components/stock-location-list/stock-location-list-bulk-actions';\nimport { StockLocationListComponent } from './components/stock-location-list/stock-location-list.component';\nimport { TaxCategoryDetailComponent } from './components/tax-category-detail/tax-category-detail.component';\nimport { deleteTaxCategoriesBulkAction } from './components/tax-category-list/tax-category-list-bulk-actions';\nimport { TaxCategoryListComponent } from './components/tax-category-list/tax-category-list.component';\nimport { TaxRateDetailComponent } from './components/tax-rate-detail/tax-rate-detail.component';\nimport { deleteTaxRatesBulkAction } from './components/tax-rate-list/tax-rate-list-bulk-actions';\nimport { TaxRateListComponent } from './components/tax-rate-list/tax-rate-list.component';\nimport { TestAddressFormComponent } from './components/test-address-form/test-address-form.component';\nimport { TestOrderBuilderComponent } from './components/test-order-builder/test-order-builder.component';\nimport { TestShippingMethodsComponent } from './components/test-shipping-methods/test-shipping-methods.component';\nimport { ZoneDetailComponent } from './components/zone-detail/zone-detail.component';\nimport { deleteZonesBulkAction } from './components/zone-list/zone-list-bulk-actions';\nimport { ZoneListComponent } from './components/zone-list/zone-list.component';\nimport { ZoneMemberControlsDirective } from './components/zone-member-list/zone-member-controls.directive';\nimport { removeZoneMembersBulkAction } from './components/zone-member-list/zone-member-list-bulk-actions';\nimport { ZoneMemberListHeaderDirective } from './components/zone-member-list/zone-member-list-header.directive';\nimport { ZoneMemberListComponent } from './components/zone-member-list/zone-member-list.component';\nimport { createRoutes } from './settings.routes';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild([])],\n providers: [\n {\n provide: ROUTES,\n useFactory: (pageService: PageService) => createRoutes(pageService),\n multi: true,\n deps: [PageService],\n },\n ],\n declarations: [\n TaxCategoryListComponent,\n TaxCategoryDetailComponent,\n AdministratorListComponent,\n RoleListComponent,\n RoleDetailComponent,\n AdminDetailComponent,\n PermissionGridComponent,\n CountryListComponent,\n CountryDetailComponent,\n TaxRateListComponent,\n TaxRateDetailComponent,\n ChannelListComponent,\n ChannelDetailComponent,\n ShippingMethodListComponent,\n ShippingMethodDetailComponent,\n PaymentMethodListComponent,\n PaymentMethodDetailComponent,\n GlobalSettingsComponent,\n TestOrderBuilderComponent,\n TestAddressFormComponent,\n SellerDetailComponent,\n SellerListComponent,\n ShippingMethodTestResultComponent,\n ShippingEligibilityTestResultComponent,\n ZoneListComponent,\n AddCountryToZoneDialogComponent,\n ZoneMemberListComponent,\n ZoneMemberListHeaderDirective,\n ZoneMemberControlsDirective,\n ProfileComponent,\n TestShippingMethodsComponent,\n ZoneDetailComponent,\n StockLocationListComponent,\n StockLocationDetailComponent,\n ],\n})\nexport class SettingsModule {\n private static hasRegisteredTabsAndBulkActions = false;\n\n constructor(bulkActionRegistryService: BulkActionRegistryService, pageService: PageService) {\n if (SettingsModule.hasRegisteredTabsAndBulkActions) {\n return;\n }\n bulkActionRegistryService.registerBulkAction(deleteSellersBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteChannelsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteAdministratorsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteRolesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(assignShippingMethodsToChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(removeShippingMethodsFromChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(deleteShippingMethodsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(assignPaymentMethodsToChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(removePaymentMethodsFromChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(deletePaymentMethodsBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteTaxCategoriesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteTaxRatesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteCountriesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(deleteZonesBulkAction);\n\n bulkActionRegistryService.registerBulkAction(removeZoneMembersBulkAction);\n\n bulkActionRegistryService.registerBulkAction(assignStockLocationsToChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(removeStockLocationsFromChannelBulkAction);\n bulkActionRegistryService.registerBulkAction(deleteStockLocationsBulkAction);\n\n pageService.registerPageTab({\n priority: 0,\n location: 'seller-list',\n tab: _('breadcrumb.sellers'),\n route: '',\n component: SellerListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'seller-detail',\n tab: _('settings.seller'),\n route: '',\n component: detailComponentWithResolver({\n component: SellerDetailComponent,\n query: GetSellerDetailDocument,\n entityKey: 'seller',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-seller'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'channel-list',\n tab: _('breadcrumb.channels'),\n route: '',\n component: ChannelListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'channel-detail',\n tab: _('settings.channel'),\n route: '',\n component: detailComponentWithResolver({\n component: ChannelDetailComponent,\n query: GetChannelDetailDocument,\n entityKey: 'channel',\n getBreadcrumbs: entity => [\n {\n label: entity\n ? entity.code === DEFAULT_CHANNEL_CODE\n ? 'common.default-channel'\n : entity.code\n : _('settings.create-new-channel'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'administrator-list',\n tab: _('breadcrumb.administrators'),\n route: '',\n component: AdministratorListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'administrator-detail',\n tab: _('settings.administrator'),\n route: '',\n component: detailComponentWithResolver({\n component: AdminDetailComponent,\n query: GetAdministratorDetailDocument,\n entityKey: 'administrator',\n getBreadcrumbs: entity => [\n {\n label: entity\n ? `${entity.firstName} ${entity.lastName}`\n : _('admin.create-new-administrator'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'role-list',\n tab: _('breadcrumb.roles'),\n route: '',\n component: RoleListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'role-detail',\n tab: _('settings.role'),\n route: '',\n component: detailComponentWithResolver({\n component: RoleDetailComponent,\n query: GetRoleDetailDocument,\n entityKey: 'role',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.description : _('settings.create-new-role'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'shipping-method-list',\n tab: _('breadcrumb.shipping-methods'),\n route: '',\n component: ShippingMethodListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'shipping-method-detail',\n tab: _('settings.shipping-method'),\n route: '',\n component: detailComponentWithResolver({\n component: ShippingMethodDetailComponent,\n query: GetShippingMethodDetailDocument,\n entityKey: 'shippingMethod',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-shipping-method'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'shipping-method-list',\n tab: _('settings.test-shipping-methods'),\n route: 'test',\n component: TestShippingMethodsComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'payment-method-list',\n tab: _('breadcrumb.payment-methods'),\n route: '',\n component: PaymentMethodListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'payment-method-detail',\n tab: _('settings.payment-method'),\n route: '',\n component: detailComponentWithResolver({\n component: PaymentMethodDetailComponent,\n query: GetPaymentMethodDetailDocument,\n entityKey: 'paymentMethod',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-payment-method'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-category-list',\n tab: _('breadcrumb.tax-categories'),\n route: '',\n component: TaxCategoryListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-category-detail',\n tab: _('settings.tax-category'),\n route: '',\n component: detailComponentWithResolver({\n component: TaxCategoryDetailComponent,\n query: GetTaxCategoryDetailDocument,\n entityKey: 'taxCategory',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-tax-category'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-rate-list',\n tab: _('breadcrumb.tax-rates'),\n route: '',\n component: TaxRateListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'tax-rate-detail',\n tab: _('settings.tax-rate'),\n route: '',\n component: detailComponentWithResolver({\n component: TaxRateDetailComponent,\n query: GetTaxRateDetailDocument,\n entityKey: 'taxRate',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-tax-rate'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'country-list',\n tab: _('breadcrumb.countries'),\n route: '',\n component: CountryListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'country-detail',\n tab: _('settings.country'),\n route: '',\n component: detailComponentWithResolver({\n component: CountryDetailComponent,\n query: GetCountryDetailDocument,\n entityKey: 'country',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-country'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'zone-list',\n tab: _('breadcrumb.zones'),\n route: '',\n component: ZoneListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'zone-detail',\n tab: _('settings.zone'),\n route: '',\n component: detailComponentWithResolver({\n component: ZoneDetailComponent,\n query: GetZoneDetailDocument,\n entityKey: 'zone',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('settings.create-new-zone'),\n link: [entity?.id],\n },\n ],\n }),\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'global-setting-detail',\n tab: _('breadcrumb.global-settings'),\n route: '',\n component: GlobalSettingsComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'profile',\n tab: _('breadcrumb.profile'),\n route: '',\n component: ProfileComponent,\n });\n\n pageService.registerPageTab({\n priority: 0,\n location: 'stock-location-list',\n tab: _('catalog.stock-locations'),\n route: '',\n component: StockLocationListComponent,\n });\n pageService.registerPageTab({\n priority: 0,\n location: 'stock-location-detail',\n tab: _('catalog.stock-location'),\n route: '',\n component: detailComponentWithResolver({\n component: StockLocationDetailComponent,\n query: GetStockLocationDetailDocument,\n entityKey: 'stockLocation',\n getBreadcrumbs: entity => [\n {\n label: entity ? entity.name : _('catalog.create-new-stock-location'),\n link: [entity?.id],\n },\n ],\n }),\n });\n SettingsModule.hasRegisteredTabsAndBulkActions = true;\n }\n}\n","// This file was generated by the build-public-api.ts script\nexport * from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nexport * from './components/admin-detail/admin-detail.component';\nexport * from './components/administrator-list/administrator-list-bulk-actions';\nexport * from './components/administrator-list/administrator-list.component';\nexport * from './components/channel-detail/channel-detail.component';\nexport * from './components/channel-list/channel-list-bulk-actions';\nexport * from './components/channel-list/channel-list.component';\nexport * from './components/country-detail/country-detail.component';\nexport * from './components/country-list/country-list-bulk-actions';\nexport * from './components/country-list/country-list.component';\nexport * from './components/global-settings/global-settings.component';\nexport * from './components/payment-method-detail/payment-method-detail.component';\nexport * from './components/payment-method-list/payment-method-list-bulk-actions';\nexport * from './components/payment-method-list/payment-method-list.component';\nexport * from './components/permission-grid/permission-grid.component';\nexport * from './components/profile/profile.component';\nexport * from './components/role-detail/role-detail.component';\nexport * from './components/role-list/role-list-bulk-actions';\nexport * from './components/role-list/role-list.component';\nexport * from './components/seller-detail/seller-detail.component';\nexport * from './components/seller-list/seller-list-bulk-actions';\nexport * from './components/seller-list/seller-list.component';\nexport * from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\nexport * from './components/shipping-method-detail/shipping-method-detail.component';\nexport * from './components/shipping-method-list/shipping-method-list-bulk-actions';\nexport * from './components/shipping-method-list/shipping-method-list.component';\nexport * from './components/shipping-method-test-result/shipping-method-test-result.component';\nexport * from './components/stock-location-detail/stock-location-detail.component';\nexport * from './components/stock-location-list/stock-location-list-bulk-actions';\nexport * from './components/stock-location-list/stock-location-list.component';\nexport * from './components/tax-category-detail/tax-category-detail.component';\nexport * from './components/tax-category-list/tax-category-list-bulk-actions';\nexport * from './components/tax-category-list/tax-category-list.component';\nexport * from './components/tax-rate-detail/tax-rate-detail.component';\nexport * from './components/tax-rate-list/tax-rate-list-bulk-actions';\nexport * from './components/tax-rate-list/tax-rate-list.component';\nexport * from './components/test-address-form/test-address-form.component';\nexport * from './components/test-order-builder/test-order-builder.component';\nexport * from './components/test-shipping-methods/test-shipping-methods.component';\nexport * from './components/zone-detail/zone-detail.component';\nexport * from './components/zone-list/zone-list-bulk-actions';\nexport * from './components/zone-list/zone-list.component';\nexport * from './components/zone-member-list/zone-member-controls.directive';\nexport * from './components/zone-member-list/zone-member-list-bulk-actions';\nexport * from './components/zone-member-list/zone-member-list-header.directive';\nexport * from './components/zone-member-list/zone-member-list.component';\nexport * from './providers/routing/profile-resolver';\nexport * from './settings.module';\nexport * from './settings.routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i4","i2.ZoneMemberListComponent","i1","_","i5.PermissionGridComponent","i6","switchMap","i4.PermissionGridComponent","i5","i5.TestOrderBuilderComponent","i6.TestAddressFormComponent","i7.ShippingMethodTestResultComponent","i8","i2.TestOrderBuilderComponent","i3.TestAddressFormComponent","i4.ShippingEligibilityTestResultComponent","i5.ZoneMemberListComponent"],"mappings":"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"}
|