{"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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"}