{"__symbolic":"module","version":4,"metadata":{"AddCountryToZoneDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"vdr-add-country-to-zone-dialog","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":9,"character":21},"member":"OnPush"},"template":"<ng-template vdrDialogTitle>{{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}</ng-template>\r\n\r\n<vdr-zone-member-list\r\n    [members]=\"availableCountries$ | async\"\r\n    [selectedMemberIds]=\"selectedMemberIds\"\r\n    (selectionChange)=\"selectedMemberIds = $event\"\r\n>\r\n</vdr-zone-member-list>\r\n\r\n<ng-template vdrDialogButtons>\r\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n    <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedMemberIds.length\" class=\"btn btn-primary\">\r\n        {{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}\r\n    </button>\r\n</ng-template>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":18,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}]}},"PermissionsByChannel":{"__symbolic":"interface"},"AdminDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":35,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"vdr-admin-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":32,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n                [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n        <input\r\n            id=\"emailAddress\"\r\n            type=\"text\"\r\n            formControlName=\"emailAddress\"\r\n            [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n        <input\r\n            id=\"firstName\"\r\n            type=\"text\"\r\n            formControlName=\"firstName\"\r\n            [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n        <input\r\n            id=\"lastName\"\r\n            type=\"text\"\r\n            formControlName=\"lastName\"\r\n            [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n        <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n    </vdr-form-field>\r\n    <vdr-form-field\r\n        *ngIf=\"!(isNew$ | async) && ('UpdateAdministrator' | hasPermission)\"\r\n        [label]=\"'settings.password' | translate\"\r\n        for=\"password\"\r\n        [readOnlyToggle]=\"true\"\r\n    >\r\n        <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n    </vdr-form-field>\r\n    <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n        <label>{{ 'common.custom-fields' | translate }}</label>\r\n        <ng-container *ngFor=\"let customField of customFields\">\r\n            <vdr-custom-field-control\r\n                *ngIf=\"customFieldIsSet(customField.name)\"\r\n                entityName=\"Administrator\"\r\n                [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n                [customField]=\"customField\"\r\n            ></vdr-custom-field-control>\r\n        </ng-container>\r\n    </section>\r\n    <label class=\"clr-control-label\">{{ 'settings.roles' | translate }}</label>\r\n    <ng-select\r\n        [items]=\"allRoles$ | async\"\r\n        [multiple]=\"true\"\r\n        [hideSelected]=\"true\"\r\n        formControlName=\"roles\"\r\n        (change)=\"rolesChanged($event)\"\r\n        bindLabel=\"description\"\r\n    ></ng-select>\r\n\r\n    <ul class=\"nav\" role=\"tablist\">\r\n        <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\r\n            <button\r\n                [id]=\"channel.channelId\"\r\n                (click)=\"selectedChannelId = channel.channelId\"\r\n                class=\"btn btn-link nav-link\"\r\n                [class.active]=\"selectedChannelId === channel.channelId\"\r\n                [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\r\n                type=\"button\"\r\n            >\r\n                {{ channel.channelCode | channelCodeToLabel | translate }}\r\n            </button>\r\n        </li>\r\n    </ul>\r\n    <vdr-permission-grid\r\n        [activePermissions]=\"getPermissionsForSelectedChannel()\"\r\n        [permissionDefinitions]=\"permissionDefinitions\"\r\n        [readonly]=\"true\"\r\n    ></vdr-permission-grid>\r\n</form>\r\n","styles":[""]}]}],"members":{"getAvailableChannels":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":51,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":52,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":53,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":55,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":56,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":57,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"customFieldIsSet":[{"__symbolic":"method"}],"rolesChanged":[{"__symbolic":"method"}],"getPermissionsForSelectedChannel":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}],"buildPermissionsMap":[{"__symbolic":"method"}]}},"AdministratorListComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseListComponent","line":18,"character":48},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"vdr-administrator-list","template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"administrator-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateAdministrator'\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'admin.create-new-administrator' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n    [items]=\"items$ | async\"\r\n    [itemsPerPage]=\"itemsPerPage$ | async\"\r\n    [totalItems]=\"totalItems$ | async\"\r\n    [currentPage]=\"currentPage$ | async\"\r\n    (pageChange)=\"setPageNumber($event)\"\r\n    (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n    <vdr-dt-column>{{ 'settings.first-name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.last-name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.email-address' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-administrator=\"item\">\r\n        <td class=\"left align-middle\">{{ administrator.firstName }}</td>\r\n        <td class=\"left align-middle\">{{ administrator.lastName }}</td>\r\n        <td class=\"left align-middle\">{{ administrator.emailAddress }}</td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', administrator.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td>\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteAdministrator(administrator)\"\r\n                        [disabled]=\"!('DeleteAdministrator' | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":23,"character":29},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":24,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":25,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":26,"character":30},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":27,"character":37}]}],"deleteAdministrator":[{"__symbolic":"method"}]}},"ChannelDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":30,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"vdr-channel-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":27,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"channel-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"!saveButtonEnabled()\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\r\n                [disabled]=\"!saveButtonEnabled()\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\"  *ngIf=\"entity$ | async as channel\">\r\n    <div class=\"clr-row\">\r\n        <div class=\"clr-col\">\r\n            <vdr-form-field [label]=\"'common.storename' | translate\" for=\"name\">\r\n                <input id=\"name\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"name\" />\r\n            </vdr-form-field>\r\n            <vdr-rich-text-editor\r\n            formControlName=\"description\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n            [label]=\"'common.description' | translate\"\r\n        ></vdr-rich-text-editor>\r\n            <vdr-form-field [label]=\"'common.ownerfirstname' | translate\" for=\"firstName\">\r\n                <input id=\"firstName\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"firstName\" />\r\n            </vdr-form-field>\r\n            <vdr-form-field [label]=\"'common.ownerlastname' | translate\" for=\"lastName\">\r\n                <input id=\"lastName\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"lastName\" />\r\n            </vdr-form-field>\r\n            <vdr-form-field [label]=\"'common.storeemail' | translate\" for=\"email\">\r\n                <input id=\"email\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"email\" />\r\n            </vdr-form-field>\r\n            <vdr-form-field [label]=\"'common.officephone' | translate\" for=\"officePhone\">\r\n                <input id=\"officePhone\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"officePhone\" />\r\n            </vdr-form-field>\r\n        \r\n            <vdr-form-field [label]=\"'common.storeaddress' | translate\" for=\"address\">\r\n                <input id=\"address\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"address\" />\r\n            </vdr-form-field>\r\n        \r\n            <vdr-form-field [label]=\"'common.postcode' | translate\" for=\"pincode\">\r\n                <input id=\"pincode\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"pincode\" />\r\n            </vdr-form-field>\r\n             \r\n<div class=\"groups\">\r\n    <label class=\"clr-control-label\">{{ 'settings.vendor-category' | translate }}</label>\r\n     <div  *ngIf=\"(entity$ | async)?.categories as categories\">\r\n        <ng-container *ngIf=\"categories.length; else noGroups\">\r\n            <vdr-chip\r\n                *ngFor=\"let group of categories\"\r\n                [colorFrom]=\"group.id\"\r\n                icon=\"times\"\r\n                (iconClick)=\"removeFromCategory(group)\"\r\n                >{{ group.name }}</vdr-chip\r\n            >\r\n        </ng-container>\r\n     </div> \r\n     \r\n    <ng-template #noGroups>\r\n        {{ 'settings.not-a-member-of-any-category' | translate }}\r\n    </ng-template>\r\n    <div>\r\n        <button class=\"btn btn-sm btn-secondary\" (click)=\"addToCategory()\"  >\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.add-vendor-to-category' | translate }}\r\n        </button>\r\n    </div>\r\n</div>\r\n\r\n            </div>\r\n            <div class=\"clr-col-md-auto\">\r\n                <vdr-product-assets\r\n                [assets]=\"channel.assets\"\r\n                [featuredAsset]=\"channel.featuredAsset\"\r\n                (change)=\"assetChanges = $event\"\r\n            ></vdr-product-assets>\r\n            \r\n\r\n            </div>   \r\n        </div>\r\n            <div class=\"clr-row\">\r\n                <div class=\"clr-col\">\r\n    <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n        <input id=\"code\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"code\" />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\r\n        <input id=\"token\" type=\"text\" [readonly]=\"!(updatePermission | hasPermission)\" formControlName=\"token\" />\r\n    </vdr-form-field>\r\n   \r\n    <vdr-form-field [label]=\"'settings.currency' | translate\" for=\"defaultTaxZoneId\">\r\n        <select\r\n            clrSelect\r\n            name=\"currencyCode\"\r\n            formControlName=\"currencyCode\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let code of currencyCodes\" [value]=\"code\">{{ code | localeCurrencyName }}</option>\r\n        </select>\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\r\n        <select\r\n            clrSelect\r\n            name=\"defaultLanguageCode\"\r\n            formControlName=\"defaultLanguageCode\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let languageCode of availableLanguageCodes$ | async\" [value]=\"languageCode\">\r\n                {{ 'lang.' + languageCode | translate }} ({{ languageCode | uppercase }})\r\n            </option>\r\n        </select>\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.prices-include-tax' | translate\" for=\"pricesIncludeTax\">\r\n        <clr-toggle-wrapper>\r\n            <input\r\n                type=\"checkbox\"\r\n                clrToggle\r\n                id=\"pricesIncludeTax\"\r\n                formControlName=\"pricesIncludeTax\"\r\n                [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n            />\r\n        </clr-toggle-wrapper>\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.default-tax-zone' | translate\" for=\"defaultTaxZoneId\">\r\n        <select\r\n            clrSelect\r\n            name=\"defaultTaxZoneId\"\r\n            formControlName=\"defaultTaxZoneId\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n        </select>\r\n    </vdr-form-field>\r\n    <clr-alert\r\n        *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\r\n        clrAlertType=\"danger\"\r\n        [clrAlertClosable]=\"false\"\r\n    >\r\n        <clr-alert-item>\r\n            <span class=\"alert-text\">\r\n                {{ 'error.no-default-tax-zone-set' | translate }}\r\n            </span>\r\n        </clr-alert-item>\r\n    </clr-alert>\r\n\r\n    <vdr-form-field [label]=\"'settings.default-shipping-zone' | translate\" for=\"defaultShippingZoneId\">\r\n        <select\r\n            clrSelect\r\n            name=\"defaultShippingZoneId\"\r\n            formControlName=\"defaultShippingZoneId\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n        </select>\r\n    </vdr-form-field>\r\n    <clr-alert\r\n        *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\r\n        clrAlertType=\"warning\"\r\n        [clrAlertClosable]=\"false\"\r\n    >\r\n        <clr-alert-item>\r\n            <span class=\"alert-text\">\r\n                {{ 'error.no-default-shipping-zone-set' | translate }}\r\n            </span>\r\n        </clr-alert-item>\r\n    </clr-alert>\r\n\r\n    <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n        <label>{{ 'common.custom-fields' | translate }}</label>\r\n        <ng-container *ngFor=\"let customField of customFields\">\r\n            <vdr-custom-field-control\r\n                *ngIf=\"customFieldIsSet(customField.name)\"\r\n                entityName=\"Channel\"\r\n                [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n                [customField]=\"customField\"\r\n            ></vdr-custom-field-control>\r\n        </ng-container>\r\n    </section>\r\n    </div>\r\n    </div>\r\n   \r\n</form>\r\n","styles":["clr-alert{max-width:30rem;margin-bottom:12px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":42,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":43,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":44,"character":39},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":45,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":46,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":47,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":48,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":49,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"customFieldIsSet":[{"__symbolic":"method"}],"saveButtonEnabled":[{"__symbolic":"method"}],"assetsChanged":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}],"generateToken":[{"__symbolic":"method"}],"addToCategory":[{"__symbolic":"method"}],"removeFromCategory":[{"__symbolic":"method"}]}},"ChannelListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"vdr-channel-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":14,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"channel-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'SuperAdmin'\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-channel' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table [items]=\"channels$ | async\">\r\n    <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-channel=\"item\">\r\n        <td class=\"left align-middle\">\r\n            <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n            {{ channel.name ? channel.name : channel.code | channelCodeToLabel | translate  }}\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', channel.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger [disabled]=\"isDefaultChannel(channel.code)\">\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteChannel(channel.id)\"\r\n                        [disabled]=\"!(['SuperAdmin', 'DeleteChannel'] | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":21,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":22,"character":30},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":23,"character":37}]}],"isDefaultChannel":[{"__symbolic":"method"}],"deleteChannel":[{"__symbolic":"method"}]}},"CountryDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":26,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"vdr-country-detail","template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n        <vdr-language-selector\r\n            [disabled]=\"isNew$ | async\"\r\n            [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n            [currentLanguageCode]=\"languageCode$ | async\"\r\n            (languageCodeChange)=\"setLanguage($event)\"\r\n        ></vdr-language-selector>\r\n    </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"country-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                *vdrIfPermissions=\"updatePermission\"\r\n                (click)=\"save()\"\r\n                [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n        <input\r\n            id=\"code\"\r\n            type=\"text\"\r\n            formControlName=\"code\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n        <input\r\n            id=\"name\"\r\n            type=\"text\"\r\n            formControlName=\"name\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n        <clr-toggle-wrapper>\r\n            <input\r\n                type=\"checkbox\"\r\n                clrToggle\r\n                id=\"enabled\"\r\n                formControlName=\"enabled\"\r\n                [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n            />\r\n        </clr-toggle-wrapper>\r\n    </vdr-form-field>\r\n</form>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":33,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":34,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":35,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":36,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":37,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":38,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":39,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"CountryListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"vdr-country-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":19,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <input\r\n            type=\"text\"\r\n            name=\"searchTerm\"\r\n            [formControl]=\"searchTerm\"\r\n            [placeholder]=\"'settings.search-country-by-name' | translate\"\r\n            class=\"search-input\"\r\n        />\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"country-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-country' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n    [items]=\"countriesWithZones$ | async\"\r\n>\r\n    <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column [expand]=\"true\">{{ 'common.name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.zone' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-country=\"item\">\r\n        <td class=\"left align-middle\">{{ country.code }}</td>\r\n        <td class=\"left align-middle\">{{ country.name }}</td>\r\n        <td class=\"left align-middle\">\r\n            <a [routerLink]=\"['/settings', 'zones', { contents: zone.id }]\" *ngFor=\"let zone of country.zones\">\r\n            <vdr-chip [colorFrom]=\"zone.name\">{{ zone.name }}</vdr-chip>\r\n            </a>\r\n        </td>\r\n        <td class=\"left align-middle\">\r\n            <clr-icon\r\n                [class.is-success]=\"country.enabled\"\r\n                [attr.shape]=\"country.enabled ? 'check' : 'times'\"\r\n            ></clr-icon>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', country.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteCountry(country.id)\"\r\n                        vdrDropdownItem\r\n                        [disabled]=\"!(['DeleteSettings', 'DeleteCountry'] | hasPermission)\"\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[".search-input{margin-top:6px;min-width:300px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":30,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":31,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":32,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"deleteCountry":[{"__symbolic":"method"}],"isZone":[{"__symbolic":"method"}]}},"AssetChange":{"__symbolic":"interface"},"GlobalAssetsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":37,"character":1},"arguments":[{"selector":"vdr-global-assets","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":41,"character":21},"member":"OnPush"},"template":"<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n    <div class=\"card-img\">\r\n        <div class=\"featured-asset\">\r\n            <img\r\n                *ngIf=\"featuredAsset\"\r\n                [src]=\"featuredAsset | assetPreview:'small'\"\r\n                (click)=\"previewAsset(featuredAsset)\"\r\n            />\r\n            <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n                <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n                <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n    <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n        <button class=\"btn\" (click)=\"selectAssets()\">\r\n            <clr-icon shape=\"attachment\"></clr-icon>\r\n            {{ 'asset.add-asset' | translate }}\r\n        </button>\r\n    </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n    <div class=\"featured-asset compact\">\r\n        <img\r\n            *ngIf=\"featuredAsset\"\r\n            [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n            (click)=\"previewAsset(featuredAsset)\"\r\n        />\r\n\r\n        <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n    </div>\r\n    <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n    <button\r\n        *vdrIfPermissions=\"updatePermissions\"\r\n        class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n        [title]=\"'asset.add-asset' | translate\"\r\n        (click)=\"selectAssets()\"\r\n    >\r\n        <clr-icon shape=\"attachment\"></clr-icon>\r\n        {{ 'asset.add-asset' | translate }}\r\n    </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n    <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup #dlg>\r\n        <div\r\n            cdkDropList\r\n            #dl\r\n            [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n            [cdkDropListEnterPredicate]=\"dropListEnterPredicate\"\r\n            (cdkDropListDropped)=\"dropListDropped()\"\r\n        ></div>\r\n        <div\r\n            *ngFor=\"let asset of assets\"\r\n            cdkDropList\r\n            [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n            [cdkDropListEnterPredicate]=\"dropListEnterPredicate\"\r\n            (cdkDropListDropped)=\"dropListDropped()\"\r\n        >\r\n            <vdr-dropdown cdkDrag (cdkDragMoved)=\"dragMoved($event)\">\r\n                <div\r\n                    class=\"asset-thumb\"\r\n                    vdrDropdownTrigger\r\n                    [class.featured]=\"isFeatured(asset)\"\r\n                    [title]=\"\"\r\n                    tabindex=\"0\"\r\n                >\r\n                    <img [src]=\"asset | assetPreview:'tiny'\" />\r\n                </div>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n                        {{ 'asset.preview' | translate }}\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n                        vdrDropdownItem\r\n                        (click)=\"setAsFeatured(asset)\"\r\n                    >\r\n                        {{ 'asset.set-as-featured-asset' | translate }}\r\n                    </button>\r\n                    <div class=\"dropdown-divider\"></div>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"remove-asset\"\r\n                        vdrDropdownItem\r\n                        [disabled]=\"!(updatePermissions | hasPermission)\"\r\n                        (click)=\"removeAsset(asset)\"\r\n                    >\r\n                        {{ 'asset.remove-asset' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </div>\r\n    </div>\r\n</ng-template>\r\n","styles":[":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.cdk-drag-preview{display:flex;align-items:center;justify-content:center;width:50px;background-color:var(--color-component-bg-100);opacity:.9;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.cdk-drag-placeholder{opacity:.8;width:60px;height:50px}.cdk-drag-placeholder .asset-thumb{background-color:var(--color-component-bg-300);height:100%;width:54px}.cdk-drag-placeholder img{display:none}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"]}]}],"members":{"assetsSetter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":5},"arguments":["assets"]}]}],"featuredAsset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":5}}]}],"compact":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":49,"character":5},"arguments":["class.compact"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":5}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":52,"character":5}}]}],"listGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":53,"character":5},"arguments":["dlg",{"static":false,"read":{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"CdkDropListGroup","line":53,"character":45}}]}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":54,"character":5},"arguments":["dl",{"static":false,"read":{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"CdkDropList","line":54,"character":44}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":73,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":74,"character":32},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":75,"character":31}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"selectAssets":[{"__symbolic":"method"}],"setAsFeatured":[{"__symbolic":"method"}],"isFeatured":[{"__symbolic":"method"}],"previewAsset":[{"__symbolic":"method"}],"removeAsset":[{"__symbolic":"method"}],"emitChangeEvent":[{"__symbolic":"method"}],"dragMoved":[{"__symbolic":"method"}],"dropListDropped":[{"__symbolic":"method"}],"getPointerPositionOnPage":[{"__symbolic":"method"}]}},"GlobalSettingsComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":17,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"vdr-global-settings","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"global-settings-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            (click)=\"save()\"\r\n            *vdrIfPermissions=\"updatePermission\"\r\n            [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n        >\r\n            {{ 'common.update' | translate }}\r\n        </button>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'common.available-languages' | translate\" for=\"availableLanguages\">\r\n        <ng-select\r\n            [items]=\"languageCodes\"\r\n            [addTag]=\"false\"\r\n            [hideSelected]=\"true\"\r\n            multiple=\"true\"\r\n            appendTo=\"body\"\r\n            formControlName=\"availableLanguages\"\r\n        >\r\n            <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n                <span class=\"ng-value-icon left\" (click)=\"clear.call(null, item)\" aria-hidden=\"true\">\r\n                    ×\r\n                </span>\r\n                <span class=\"ng-value-label\">{{ 'lang.' + item | translate }} ({{ item }})</span>\r\n            </ng-template>\r\n            <ng-template ng-option-tmp let-item=\"item\">\r\n                {{ 'lang.' + item | translate }} ({{ item }})\r\n            </ng-template>\r\n        </ng-select>\r\n    </vdr-form-field>\r\n    <vdr-form-field\r\n        [label]=\"'settings.global-out-of-stock-threshold' | translate\"\r\n        for=\"outOfStockThreshold\"\r\n        [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\r\n    >\r\n        <input\r\n            id=\"outOfStockThreshold\"\r\n            type=\"number\"\r\n            formControlName=\"outOfStockThreshold\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field\r\n        [label]=\"'settings.track-inventory-default' | translate\"\r\n        for=\"enabled\"\r\n        [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\r\n    >\r\n        <clr-toggle-wrapper>\r\n            <input\r\n                type=\"checkbox\"\r\n                clrToggle\r\n                name=\"enabled\"\r\n                formControlName=\"trackInventory\"\r\n                [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n            />\r\n        </clr-toggle-wrapper>\r\n    </vdr-form-field>\r\n    <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n        <label>{{ 'common.custom-fields' | translate }}</label>\r\n        <ng-container *ngFor=\"let customField of customFields\">\r\n            <vdr-custom-field-control\r\n                *ngIf=\"customFieldIsSet(customField.name)\"\r\n                entityName=\"GlobalSettings\"\r\n                [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n                [customField]=\"customField\"\r\n            ></vdr-custom-field-control>\r\n        </ng-container>\r\n    </section>\r\n</form>\r\n","styles":["::ng-deep ng-select .ng-arrow-wrapper .ng-arrow,::ng-deep ng-select .ng-select-container>span,::ng-deep ng-select .ng-value>span{margin:0!important}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":24,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":25,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":26,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":27,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":28,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":29,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":30,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"customFieldIsSet":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"PaymentMethodDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":32,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"vdr-payment-method-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":29,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"payment-method-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            [disabled]=\"detailForm.pristine || detailForm.invalid\"\r\n            (click)=\"create()\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                *vdrIfPermissions=\"updatePermission\"\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as paymentMethod\">\r\n    <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n        <input\r\n            id=\"name\"\r\n            type=\"text\"\r\n            formControlName=\"name\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n            (input)=\"updateCode(paymentMethod.code, $event.target.value)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field\r\n        [label]=\"'common.code' | translate\"\r\n        for=\"code\"\r\n        [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n    >\r\n        <input\r\n            id=\"code\"\r\n            type=\"text\"\r\n            formControlName=\"code\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-rich-text-editor\r\n        formControlName=\"description\"\r\n        [readonly]=\"!(updatePermission | hasPermission)\"\r\n        [label]=\"'common.description' | translate\"\r\n    ></vdr-rich-text-editor>\r\n    <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\r\n        <clr-toggle-wrapper>\r\n            <input\r\n                type=\"checkbox\"\r\n                clrToggle\r\n                id=\"enabled\"\r\n                [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n                formControlName=\"enabled\"\r\n            />\r\n        </clr-toggle-wrapper>\r\n    </vdr-form-field>\r\n\r\n    <div class=\"clr-row mt4\">\r\n        <div class=\"clr-col\">\r\n            <label class=\"clr-control-label\">{{ 'settings.payment-eligibility-checker' | translate }}</label>\r\n            <vdr-configurable-input\r\n                *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n                [operation]=\"selectedChecker\"\r\n                [operationDefinition]=\"selectedCheckerDefinition\"\r\n                [readonly]=\"!(updatePermission | hasPermission)\"\r\n                (remove)=\"removeChecker()\"\r\n                formControlName=\"checker\"\r\n            ></vdr-configurable-input>\r\n            <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n                <vdr-dropdown>\r\n                    <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n                        <clr-icon shape=\"plus\"></clr-icon>\r\n                        {{ 'common.select' | translate }}\r\n                    </button>\r\n                    <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n                        <button\r\n                            *ngFor=\"let checker of checkers\"\r\n                            type=\"button\"\r\n                            vdrDropdownItem\r\n                            (click)=\"selectChecker(checker)\"\r\n                        >\r\n                            {{ checker.description }}\r\n                        </button>\r\n                    </vdr-dropdown-menu>\r\n                </vdr-dropdown>\r\n            </div>\r\n        </div>\r\n        <div class=\"clr-col\">\r\n            <label class=\"clr-control-label\">{{ 'settings.payment-handler' | translate }}</label>\r\n            <vdr-configurable-input\r\n                *ngIf=\"selectedHandler && selectedHandlerDefinition\"\r\n                [operation]=\"selectedHandler\"\r\n                [operationDefinition]=\"selectedHandlerDefinition\"\r\n                [readonly]=\"!(updatePermission | hasPermission)\"\r\n                (remove)=\"removeHandler()\"\r\n                formControlName=\"handler\"\r\n            ></vdr-configurable-input>\r\n            <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\r\n                <vdr-dropdown>\r\n                    <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n                        <clr-icon shape=\"plus\"></clr-icon>\r\n                        {{ 'common.select' | translate }}\r\n                    </button>\r\n                    <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n                        <button\r\n                            *ngFor=\"let handler of handlers\"\r\n                            type=\"button\"\r\n                            vdrDropdownItem\r\n                            (click)=\"selectHandler(handler)\"\r\n                        >\r\n                            {{ handler.description }}\r\n                        </button>\r\n                    </vdr-dropdown-menu>\r\n                </vdr-dropdown>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</form>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":44,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":45,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":46,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":47,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":48,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":49,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":50,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateCode":[{"__symbolic":"method"}],"configArgsIsPopulated":[{"__symbolic":"method"}],"selectChecker":[{"__symbolic":"method"}],"selectHandler":[{"__symbolic":"method"}],"removeChecker":[{"__symbolic":"method"}],"removeHandler":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"PaymentMethodListComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseListComponent","line":20,"character":48},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"vdr-payment-method-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":18,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"payment-method-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreatePaymentMethod']\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-payment-method' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n    [items]=\"items$ | async\"\r\n    [itemsPerPage]=\"itemsPerPage$ | async\"\r\n    [totalItems]=\"totalItems$ | async\"\r\n    [currentPage]=\"currentPage$ | async\"\r\n    (pageChange)=\"setPageNumber($event)\"\r\n    (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n    <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-paymentMethod=\"item\">\r\n        <td class=\"left align-middle\">{{ paymentMethod.code }}</td>\r\n        <td class=\"left align-middle\">{{ paymentMethod.enabled }}</td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', paymentMethod.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deletePaymentMethod(paymentMethod.id)\"\r\n                        [disabled]=\"!(['DeleteSettings', 'DeletePaymentMethod'] | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":25,"character":29},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":26,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":27,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":28,"character":30},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":29,"character":37}]}],"deletePaymentMethod":[{"__symbolic":"method"}],"showModalAndDelete":[{"__symbolic":"method"}]}},"PermissionGridRow":{"__symbolic":"interface"},"PermissionGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"vdr-permission-grid","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":21},"member":"OnPush"},"template":"<table class=\"table\">\r\n    <tbody>\r\n        <tr *ngFor=\"let section of gridData\">\r\n            <td class=\"permission-group left\">\r\n                <div><strong>{{ section.label | translate }}</strong></div>\r\n                <small>{{ section.description | translate }}</small><br>\r\n                <button *ngIf=\"1 < section.permissions.length && !readonly\" class=\"btn btn-sm btn-link\" (click)=\"toggleAll(section.permissions)\">\r\n                    {{ 'common.toggle-all' | translate }}\r\n                </button>\r\n            </td>\r\n            <td *ngFor=\"let permission of section.permissions\" [attr.colspan]=\"section.permissions.length === 1 ? 4 : 1\">\r\n                <vdr-select-toggle\r\n                    size=\"small\"\r\n                    [title]=\"permission.description\"\r\n                    [label]=\"permission.name\"\r\n                    [disabled]=\"readonly\"\r\n                    [selected]=\"activePermissions?.includes(permission.name)\"\r\n                    (selectedChange)=\"setPermission(permission.name, $event)\"\r\n                ></vdr-select-toggle>\r\n            </td>\r\n        </tr>\r\n    </tbody>\r\n</table>\r\n","styles":["td.permission-group{max-width:300px;background-color:var(--color-component-bg-200)}"]}]}],"members":{"permissionDefinitions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"activePermissions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":5}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"permissionChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":5}}]}],"ngOnInit":[{"__symbolic":"method"}],"setPermission":[{"__symbolic":"method"}],"toggleAll":[{"__symbolic":"method"}],"buildGrid":[{"__symbolic":"method"}],"extractCrudDescription":[{"__symbolic":"method"}]}},"ProfileComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":24,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"vdr-profile","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            (click)=\"save()\"\r\n            [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n        >\r\n            {{ 'common.update' | translate }}\r\n        </button>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n        <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n        <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n        <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n    </vdr-form-field>\r\n    <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n        <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.password' | translate\" for=\"password\" [readOnlyToggle]=\"true\">\r\n        <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n    </vdr-form-field>\r\n    <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n        <label>{{ 'common.custom-fields' | translate }}</label>\r\n        <ng-container *ngFor=\"let customField of customFields\">\r\n            <vdr-custom-field-control\r\n                *ngIf=\"customFieldIsSet(customField.name)\"\r\n                entityName=\"Administrator\"\r\n                [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n                [customField]=\"customField\"\r\n            ></vdr-custom-field-control>\r\n        </ng-container>\r\n    </section>\r\n</form>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":30,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":31,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":32,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":33,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":34,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":35,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":36,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"customFieldIsSet":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"RoleDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":27,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"vdr-role-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":25,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"role-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n                [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\">\r\n        <input\r\n            id=\"description\"\r\n            type=\"text\"\r\n            formControlName=\"description\"\r\n            [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n            (input)=\"updateCode($event.target.value)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field\r\n        [label]=\"'common.code' | translate\"\r\n        for=\"code\"\r\n        [readOnlyToggle]=\"'UpdateAdministrator' | hasPermission\"\r\n    >\r\n        <input\r\n            id=\"code\"\r\n            type=\"text\"\r\n            formControlName=\"code\"\r\n            [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.channel' | translate\">\r\n        <vdr-channel-assignment-control\r\n            formControlName=\"channelIds\"\r\n            [vdrDisabled]=\"!('UpdateAdministrator' | hasPermission)\"\r\n        ></vdr-channel-assignment-control>\r\n    </vdr-form-field>\r\n    <label>{{ 'settings.permissions' | translate }}</label>\r\n    <vdr-permission-grid\r\n        [permissionDefinitions]=\"permissionDefinitions\"\r\n        [activePermissions]=\"detailForm.get('permissions')?.value\"\r\n        (permissionChange)=\"setPermission($event)\"\r\n        [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n    ></vdr-permission-grid>\r\n</form>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":32,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":33,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":34,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":35,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":36,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":37,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":38,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateCode":[{"__symbolic":"method"}],"setPermission":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"RoleListComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseListComponent","line":18,"character":39},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"vdr-role-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"role-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateAdministrator'\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-role' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n    [items]=\"visibleRoles$ | async\"\r\n    [itemsPerPage]=\"itemsPerPage$ | async\"\r\n    [totalItems]=\"totalItems$ | async\"\r\n    [currentPage]=\"currentPage$ | async\"\r\n    (pageChange)=\"setPageNumber($event)\"\r\n    (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n    <vdr-dt-column>{{ 'common.description' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.channel' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.permissions' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-role=\"item\">\r\n        <td class=\"left align-middle\">{{ role.description }}</td>\r\n        <td class=\"left align-middle\"><span *ngIf=\"!isDefaultRole(role)\">{{ role.code }}</span></td>\r\n        <td class=\"left align-middle\">\r\n            <ng-container *ngIf=\"!isDefaultRole(role)\">\r\n                <vdr-chip *ngFor=\"let channel of role.channels\">\r\n                    <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n                    {{ channel.code | channelCodeToLabel | translate }}\r\n                </vdr-chip>\r\n            </ng-container>\r\n        </td>\r\n        <td class=\"left align-middle\">\r\n            <ng-container *ngIf=\"!isDefaultRole(role); else defaultRole\">\r\n                <vdr-chip *ngFor=\"let permission of role.permissions |  slice: 0:displayLimit[role.id] || 3\">{{ permission }}</vdr-chip>\r\n                <button\r\n                    class=\"btn btn-sm btn-secondary btn-icon\"\r\n                    *ngIf=\"role.permissions.length > initialLimit\"\r\n                    (click)=\"toggleDisplayLimit(role)\"\r\n                >\r\n                    <ng-container *ngIf=\"(displayLimit[role.id] || 0) < role.permissions.length; else collapse\">\r\n                        <clr-icon shape=\"plus\"></clr-icon>\r\n                        {{ role.permissions.length - initialLimit }}\r\n                    </ng-container>\r\n                    <ng-template #collapse>\r\n                        <clr-icon shape=\"minus\"></clr-icon>\r\n                    </ng-template>\r\n                </button>\r\n            </ng-container>\r\n            <ng-template #defaultRole>\r\n                <span class=\"default-role-label\">{{ 'settings.default-role-label' | translate }}</span>\r\n            </ng-template>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                *ngIf=\"!isDefaultRole(role)\"\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', role.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger [disabled]=\"isDefaultRole(role)\">\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteRole(role.id)\"\r\n                        [disabled]=\"!('SuperAdmin' | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[".default-role-label{color:var(--color-grey-400)}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":24,"character":30},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":25,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":26,"character":29},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":27,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":28,"character":15}]}],"ngOnInit":[{"__symbolic":"method"}],"toggleDisplayLimit":[{"__symbolic":"method"}],"isDefaultRole":[{"__symbolic":"method"}],"deleteRole":[{"__symbolic":"method"}]}},"SelectVendorCategoryDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"vdr-select-vendor-category-dialog","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":21},"member":"OnPush"},"template":"<ng-template vdrDialogTitle>\r\n    {{ 'settings.add-vendor-to-category' | translate }}\r\n</ng-template>\r\n\r\n<ng-select\r\n    [items]=\"categories$ | async\"\r\n    appendTo=\"body\"\r\n    [addTag]=\"false\"\r\n    [multiple]=\"true\"\r\n    bindValue=\"id\"\r\n    [(ngModel)]=\"selectedCategoryIds\"\r\n    [clearable]=\"true\"\r\n    [searchable]=\"false\"\r\n>\r\n    <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n        <span aria-hidden=\"true\" class=\"ng-value-icon left\" (click)=\"clear(item)\"> × </span>\r\n        <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n    </ng-template>\r\n    <ng-template ng-option-tmp let-item=\"item\">\r\n        <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n    </ng-template>\r\n</ng-select>\r\n\r\n\r\n<ng-template vdrDialogButtons>\r\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n    <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedCategoryIds.length\" class=\"btn btn-primary\">\r\n        {{ 'settings.add-vendor-to-category-with-count' | translate: {count: selectedCategoryIds.length} }}\r\n    </button>\r\n</ng-template>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":17,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}]}},"ShippingEligibilityTestResultComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"vdr-shipping-eligibility-test-result","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":21},"member":"OnPush"},"template":"<div class=\"test-result card\">\r\n    <div class=\"card-header\">\r\n        {{ 'settings.test-result' | translate }}\r\n    </div>\r\n    <div class=\"card-block\" *ngFor=\"let quote of testResult\">\r\n        <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n            <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\r\n                {{ quote.name }}\r\n            </vdr-labeled-data>\r\n            <div class=\"price-row\">\r\n                <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n                    {{ quote.price | localeCurrency: currencyCode }}\r\n                </vdr-labeled-data>\r\n                <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\r\n                    {{ quote.priceWithTax | localeCurrency: currencyCode }}\r\n                </vdr-labeled-data>\r\n            </div>\r\n            <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\r\n        </div>\r\n    </div>\r\n    <div class=\"card-block\" *ngIf=\"testResult?.length === 0\">\r\n        <clr-icon shape=\"ban\" class=\"is-solid error\"></clr-icon>\r\n        {{ 'settings.no-eligible-shipping-methods' | translate }}\r\n    </div>\r\n    <div class=\"card-footer\">\r\n        <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n            {{ 'settings.test-shipping-methods' | translate }}\r\n        </button>\r\n    </div>\r\n</div>\r\n","styles":[".result-details{transition:opacity .2s}.result-details.stale{opacity:.5}.price-row{display:flex}.price-row>:not(:first-child){margin-left:24px}clr-icon.error{color:var(--color-error-500)}"]}]}],"members":{"testResult":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":5}}]}],"okToRun":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":5}}]}],"testDataUpdated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":5}}]}],"currencyCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"runTest":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":5}}]}]}},"ShippingMethodDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":40,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":33,"character":1},"arguments":[{"selector":"vdr-shipping-method-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n        <vdr-language-selector\r\n            [disabled]=\"isNew$ | async\"\r\n            [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n            [currentLanguageCode]=\"languageCode$ | async\"\r\n            (languageCodeChange)=\"setLanguage($event)\"\r\n        ></vdr-language-selector>\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"shipping-method-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                *vdrIfPermissions=\"updatePermission\"\r\n                [disabled]=\"\r\n                    detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n                \"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as shippingMethod\">\r\n    <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n        <input\r\n            id=\"name\"\r\n            type=\"text\"\r\n            formControlName=\"name\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n            (input)=\"updateCode(shippingMethod.code, $event.target.value)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field\r\n        [label]=\"'common.code' | translate\"\r\n        for=\"code\"\r\n        [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n    >\r\n        <input\r\n            id=\"code\"\r\n            type=\"text\"\r\n            formControlName=\"code\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-rich-text-editor\r\n        formControlName=\"description\"\r\n        [readonly]=\"!(updatePermission | hasPermission)\"\r\n        [label]=\"'common.description' | translate\"\r\n    ></vdr-rich-text-editor>\r\n    <vdr-form-field [label]=\"'settings.fulfillment-handler' | translate\" for=\"fulfillmentHandler\" class=\"mb2\">\r\n        <select\r\n            name=\"fulfillmentHandler\"\r\n            formControlName=\"fulfillmentHandler\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\r\n                {{ handler.code }}: {{ handler.description }}\r\n            </option>\r\n        </select>\r\n    </vdr-form-field>\r\n\r\n    <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n        <label>{{ 'common.custom-fields' | translate }}</label>\r\n        <ng-container *ngFor=\"let customField of customFields\">\r\n            <vdr-custom-field-control\r\n                *ngIf=\"customFieldIsSet(customField.name)\"\r\n                entityName=\"ShippingMethod\"\r\n                [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n                [customField]=\"customField\"\r\n            ></vdr-custom-field-control>\r\n        </ng-container>\r\n    </section>\r\n\r\n    <div class=\"clr-row mt4\">\r\n        <div class=\"clr-col\">\r\n            <label class=\"clr-control-label\">{{ 'settings.shipping-eligibility-checker' | translate }}</label>\r\n            <vdr-configurable-input\r\n                *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n                [operation]=\"selectedChecker\"\r\n                [operationDefinition]=\"selectedCheckerDefinition\"\r\n                [readonly]=\"!(updatePermission | hasPermission)\"\r\n                (remove)=\"selectedChecker = null\"\r\n                formControlName=\"checker\"\r\n            ></vdr-configurable-input>\r\n            <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n                <vdr-dropdown>\r\n                    <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n                        <clr-icon shape=\"plus\"></clr-icon>\r\n                        {{ 'common.select' | translate }}\r\n                    </button>\r\n                    <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n                        <button\r\n                            *ngFor=\"let checker of checkers\"\r\n                            type=\"button\"\r\n                            vdrDropdownItem\r\n                            (click)=\"selectChecker(checker)\"\r\n                        >\r\n                            {{ checker.description }}\r\n                        </button>\r\n                    </vdr-dropdown-menu>\r\n                </vdr-dropdown>\r\n            </div>\r\n        </div>\r\n        <div class=\"clr-col\">\r\n            <label class=\"clr-control-label\">{{ 'settings.shipping-calculator' | translate }}</label>\r\n            <vdr-configurable-input\r\n                *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\r\n                [operation]=\"selectedCalculator\"\r\n                [operationDefinition]=\"selectedCalculatorDefinition\"\r\n                [readonly]=\"!(updatePermission | hasPermission)\"\r\n                (remove)=\"selectedCalculator = null\"\r\n                formControlName=\"calculator\"\r\n            ></vdr-configurable-input>\r\n            <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\">\r\n                <vdr-dropdown>\r\n                    <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n                        <clr-icon shape=\"plus\"></clr-icon>\r\n                        {{ 'common.select' | translate }}\r\n                    </button>\r\n                    <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n                        <button\r\n                            *ngFor=\"let calculator of calculators\"\r\n                            type=\"button\"\r\n                            vdrDropdownItem\r\n                            (click)=\"selectCalculator(calculator)\"\r\n                        >\r\n                            {{ calculator.description }}\r\n                        </button>\r\n                    </vdr-dropdown-menu>\r\n                </vdr-dropdown>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</form>\r\n<div class=\"testing-tool\">\r\n    <clr-accordion>\r\n        <clr-accordion-panel>\r\n            <clr-accordion-title>{{ 'settings.test-shipping-method' | translate }}</clr-accordion-title>\r\n            <clr-accordion-content *clrIfExpanded>\r\n                <div class=\"clr-row\">\r\n                    <div class=\"clr-col\">\r\n                        <vdr-test-order-builder\r\n                            (orderLinesChange)=\"setTestOrderLines($event)\"\r\n                        ></vdr-test-order-builder>\r\n                    </div>\r\n                    <div class=\"clr-col\">\r\n                        <vdr-test-address-form\r\n                            (addressChange)=\"setTestAddress($event)\"\r\n                        ></vdr-test-address-form>\r\n                        <vdr-shipping-method-test-result\r\n                            [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n                            [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\r\n                            [testDataUpdated]=\"testDataUpdated\"\r\n                            [testResult]=\"testResult$ | async\"\r\n                            (runTest)=\"runTest()\"\r\n                        ></vdr-shipping-method-test-result>\r\n                    </div>\r\n                </div>\r\n            </clr-accordion-content>\r\n        </clr-accordion-panel>\r\n    </clr-accordion>\r\n</div>\r\n","styles":[".testing-tool{margin-top:48px;margin-bottom:128px}.testing-tool h4{margin-bottom:12px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":60,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":61,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":62,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":63,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":64,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":65,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":66,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"customFieldIsSet":[{"__symbolic":"method"}],"updateCode":[{"__symbolic":"method"}],"selectChecker":[{"__symbolic":"method"}],"selectCalculator":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setTestOrderLines":[{"__symbolic":"method"}],"setTestAddress":[{"__symbolic":"method"}],"allTestDataPresent":[{"__symbolic":"method"}],"runTest":[{"__symbolic":"method"}],"getUpdatedShippingMethod":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"ShippingMethodListComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseListComponent","line":28,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"vdr-shipping-method-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":25,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-language-selector\r\n            [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n            [currentLanguageCode]=\"contentLanguage$ | async\"\r\n            (languageCodeChange)=\"setLanguage($event)\"\r\n        ></vdr-language-selector>\r\n    </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"shipping-method-list\"></vdr-action-bar-items>\r\n        <a\r\n            class=\"btn btn-primary\"\r\n            [routerLink]=\"['./create']\"\r\n            *vdrIfPermissions=\"['CreateSettings', 'CreateShippingMethod']\"\r\n        >\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-shipping-method' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n    [items]=\"items$ | async\"\r\n    [itemsPerPage]=\"itemsPerPage$ | async\"\r\n    [totalItems]=\"totalItems$ | async\"\r\n    [currentPage]=\"currentPage$ | async\"\r\n    (pageChange)=\"setPageNumber($event)\"\r\n    (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n    <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-shippingMethod=\"item\">\r\n        <td class=\"left align-middle\">{{ shippingMethod.code }}</td>\r\n        <td class=\"left align-middle\">{{ shippingMethod.name }}</td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', shippingMethod.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteShippingMethod(shippingMethod.id)\"\r\n                        [disabled]=\"!(['DeleteSettings', 'DeleteShippingMethod'] | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n\r\n<div class=\"testing-tool\">\r\n    <clr-accordion>\r\n        <clr-accordion-panel>\r\n            <clr-accordion-title>{{ 'settings.test-shipping-methods' | translate }}</clr-accordion-title>\r\n            <clr-accordion-content *clrIfExpanded>\r\n                <div class=\"clr-row\">\r\n                    <div class=\"clr-col\">\r\n                        <vdr-test-order-builder\r\n                            (orderLinesChange)=\"setTestOrderLines($event)\"\r\n                        ></vdr-test-order-builder>\r\n                    </div>\r\n                    <div class=\"clr-col\">\r\n                        <vdr-test-address-form\r\n                            (addressChange)=\"setTestAddress($event)\"\r\n                        ></vdr-test-address-form>\r\n                        <vdr-shipping-eligibility-test-result\r\n                            [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n                            [okToRun]=\"allTestDataPresent()\"\r\n                            [testDataUpdated]=\"testDataUpdated\"\r\n                            [testResult]=\"testResult$ | async\"\r\n                            (runTest)=\"runTest()\"\r\n                        ></vdr-shipping-eligibility-test-result>\r\n                    </div>\r\n                </div>\r\n            </clr-accordion-content>\r\n        </clr-accordion-panel>\r\n    </clr-accordion>\r\n</div>\r\n","styles":[".testing-tool{margin-top:48px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":40,"character":30},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":41,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":42,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":43,"character":37},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":44,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":45,"character":15}]}],"ngOnInit":[{"__symbolic":"method"}],"deleteShippingMethod":[{"__symbolic":"method"}],"setTestOrderLines":[{"__symbolic":"method"}],"setTestAddress":[{"__symbolic":"method"}],"allTestDataPresent":[{"__symbolic":"method"}],"runTest":[{"__symbolic":"method"}],"setLanguage":[{"__symbolic":"method"}]}},"ShippingMethodTestResultComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"vdr-shipping-method-test-result","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":21},"member":"OnPush"},"template":"<div\r\n    class=\"test-result card\"\r\n    [ngClass]=\"{\r\n        success: testResult?.eligible === true,\r\n        error: testResult?.eligible === false,\r\n        unknown: !testResult\r\n    }\"\r\n>\r\n    <div class=\"card-header\">\r\n        {{ 'settings.test-result' | translate }}\r\n    </div>\r\n    <div class=\"card-block\">\r\n        <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n            <vdr-labeled-data [label]=\"'settings.eligible' | translate\">\r\n                <div class=\"eligible-icon\">\r\n                    <clr-icon\r\n                        shape=\"success-standard\"\r\n                        class=\"is-solid success\"\r\n                        *ngIf=\"testResult?.eligible\"\r\n                    ></clr-icon>\r\n                    <clr-icon\r\n                        shape=\"ban\"\r\n                        class=\"is-solid error\"\r\n                        *ngIf=\"testResult?.eligible === false\"\r\n                    ></clr-icon>\r\n                    <clr-icon shape=\"unknown-status\" *ngIf=\"!testResult\"></clr-icon>\r\n                </div>\r\n                {{ testResult?.eligible }}\r\n            </vdr-labeled-data>\r\n            <div class=\"price-row\">\r\n                <vdr-labeled-data\r\n                    [label]=\"'common.price' | translate\"\r\n                    *ngIf=\"testResult?.quote?.price != null\"\r\n                >\r\n                    {{ testResult.quote?.price | localeCurrency: currencyCode }}\r\n                </vdr-labeled-data>\r\n                <vdr-labeled-data\r\n                    [label]=\"'common.price-with-tax' | translate\"\r\n                    *ngIf=\"testResult?.quote?.priceWithTax != null\"\r\n                >\r\n                    {{ testResult.quote?.priceWithTax | localeCurrency: currencyCode }}\r\n                </vdr-labeled-data>\r\n            </div>\r\n            <vdr-object-tree\r\n                *ngIf=\"testResult?.quote?.metadata\"\r\n                [value]=\"testResult?.quote?.metadata\"\r\n            ></vdr-object-tree>\r\n        </div>\r\n    </div>\r\n    <div class=\"card-footer\">\r\n        <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n            {{ 'settings.test-shipping-method' | translate }}\r\n        </button>\r\n    </div>\r\n</div>\r\n","styles":[".test-result.success .card-block{background-color:var(--color-success-100)}.test-result.error .card-block{background-color:var(--color-error-100)}.test-result.unknown .card-block{background-color:var(--color-component-bg-100)}.result-details{transition:opacity .2s}.result-details.stale{opacity:.5}.eligible-icon{display:inline-block}.eligible-icon .success{color:var(--color-success-500)}.eligible-icon .error{color:var(--color-error-500)}.price-row{display:flex}.price-row>:not(:first-child){margin-left:24px}"]}]}],"members":{"testResult":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":5}}]}],"okToRun":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":5}}]}],"testDataUpdated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":5}}]}],"currencyCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"runTest":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":5}}]}]}},"TaxCategoryDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":25,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"vdr-tax-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":22,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"tax-category-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"!saveButtonEnabled()\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                [disabled]=\"!saveButtonEnabled()\"\r\n                *vdrIfPermissions=\"updatePermission\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n        <input\r\n            id=\"name\"\r\n            type=\"text\"\r\n            formControlName=\"name\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\r\n        <clr-toggle-wrapper>\r\n            <input\r\n                type=\"checkbox\"\r\n                clrToggle\r\n                id=\"isDefault\"\r\n                [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n                formControlName=\"isDefault\"\r\n            />\r\n        </clr-toggle-wrapper>\r\n    </vdr-form-field>\r\n</form>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":35,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":36,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":37,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":38,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":39,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":40,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":41,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"saveButtonEnabled":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"TaxCategoryListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"vdr-tax-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"tax-category-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateTaxCategory']\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-tax-category' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table [items]=\"taxCategories$ | async\">\r\n    <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-taxCategory=\"item\">\r\n        <td class=\"left align-middle\">{{ taxCategory.name }}</td>\r\n        <td class=\"left align-middle\">\r\n            <vdr-chip *ngIf=\"taxCategory.isDefault\">{{ 'common.default-tax-category' | translate }}</vdr-chip>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', taxCategory.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteTaxCategory(taxCategory)\"\r\n                        [disabled]=\"!(['DeleteSettings', 'DeleteTaxCategory'] | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":22,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":23,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":24,"character":30}]}],"deleteTaxCategory":[{"__symbolic":"method"}]}},"TaxRateDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":28,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"vdr-tax-rate-detail","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":25,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"tax-rate-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"!saveButtonEnabled()\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                [disabled]=\"!saveButtonEnabled()\"\r\n                *vdrIfPermissions=\"updatePermission\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n    <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n        <input\r\n            id=\"name\"\r\n            type=\"text\"\r\n            formControlName=\"name\"\r\n            [readonly]=\"!(updatePermission | hasPermission)\"\r\n        />\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n        <clr-toggle-wrapper>\r\n            <input\r\n                type=\"checkbox\"\r\n                clrToggle\r\n                id=\"enabled\"\r\n                formControlName=\"enabled\"\r\n                [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n            />\r\n        </clr-toggle-wrapper>\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\r\n        <vdr-affixed-input suffix=\"%\">\r\n            <input\r\n                id=\"value\"\r\n                type=\"number\"\r\n                step=\"0.1\"\r\n                formControlName=\"value\"\r\n                [readonly]=\"!(updatePermission | hasPermission)\"\r\n            />\r\n        </vdr-affixed-input>\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\r\n        <select\r\n            clrSelect\r\n            name=\"taxCategoryId\"\r\n            formControlName=\"taxCategoryId\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let taxCategory of taxCategories$ | async\" [value]=\"taxCategory.id\">\r\n                {{ taxCategory.name }}\r\n            </option>\r\n        </select>\r\n    </vdr-form-field>\r\n    <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\r\n        <select\r\n            clrSelect\r\n            name=\"zoneId\"\r\n            formControlName=\"zoneId\"\r\n            [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n        >\r\n            <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n        </select>\r\n    </vdr-form-field>\r\n</form>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":37,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":38,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":39,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":40,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":41,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":42,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":43,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"saveButtonEnabled":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}]}},"TaxRateListComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseListComponent","line":18,"character":42},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"vdr-tax-rate-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"tax-rate-list\"></vdr-action-bar-items>\r\n        <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-tax-rate' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n    [items]=\"items$ | async\"\r\n    [itemsPerPage]=\"itemsPerPage$ | async\"\r\n    [totalItems]=\"totalItems$ | async\"\r\n    [currentPage]=\"currentPage$ | async\"\r\n    (pageChange)=\"setPageNumber($event)\"\r\n    (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n    <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.tax-category' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.zone' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'settings.tax-rate' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-taxRate=\"item\">\r\n        <td class=\"left align-middle\">{{ taxRate.name }}</td>\r\n        <td class=\"left align-middle\">{{ taxRate.category.name }}</td>\r\n        <td class=\"left align-middle\">{{ taxRate.zone.name }}</td>\r\n        <td class=\"left align-middle\">{{ taxRate.value }}%</td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-table-row-action\r\n                iconShape=\"edit\"\r\n                [label]=\"'common.edit' | translate\"\r\n                [linkTo]=\"['./', taxRate.id]\"\r\n            ></vdr-table-row-action>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <vdr-dropdown>\r\n                <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                    {{ 'common.actions' | translate }}\r\n                    <clr-icon shape=\"caret down\"></clr-icon>\r\n                </button>\r\n                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"delete-button\"\r\n                        (click)=\"deleteTaxRate(taxRate)\"\r\n                        [disabled]=\"!(['DeleteSettings', 'DeleteTaxRate'] | hasPermission)\"\r\n                        vdrDropdownItem\r\n                    >\r\n                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                        {{ 'common.delete' | translate }}\r\n                    </button>\r\n                </vdr-dropdown-menu>\r\n            </vdr-dropdown>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":20,"character":30},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":21,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":22,"character":29},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":23,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":24,"character":15}]}],"deleteTaxRate":[{"__symbolic":"method"}]}},"TestAddress":{"__symbolic":"interface"},"TestAddressFormComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"vdr-test-address-form","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":21},"member":"OnPush"},"template":"<div class=\"card\">\r\n    <div class=\"card-header\">\r\n        {{ 'settings.test-address' | translate }}\r\n    </div>\r\n    <div class=\"card-block\">\r\n        <form [formGroup]=\"form\">\r\n            <clr-input-container>\r\n                <label>{{ 'customer.city' | translate }}</label>\r\n                <input formControlName=\"city\" type=\"text\" clrInput />\r\n            </clr-input-container>\r\n            <clr-input-container>\r\n                <label>{{ 'customer.province' | translate }}</label>\r\n                <input formControlName=\"province\" type=\"text\" clrInput />\r\n            </clr-input-container>\r\n            <clr-input-container>\r\n                <label>{{ 'customer.postal-code' | translate }}</label>\r\n                <input formControlName=\"postalCode\" type=\"text\" clrInput />\r\n            </clr-input-container>\r\n            <clr-input-container>\r\n                <label>{{ 'customer.country' | translate }}</label>\r\n                <select name=\"countryCode\" formControlName=\"countryCode\" clrInput clrSelect>\r\n                    <option *ngFor=\"let country of availableCountries$ | async\" [value]=\"country.code\">\r\n                        {{ country.name }}\r\n                    </option>\r\n                </select>\r\n            </clr-input-container>\r\n        </form>\r\n    </div>\r\n</div>\r\n","styles":["clr-input-container{margin-bottom:12px}"]}]}],"members":{"addressChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":25,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":26,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"LocalStorageService","line":27,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"TestOrderLine":{"__symbolic":"interface"},"TestOrderBuilderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"vdr-test-order-builder","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":21},"member":"OnPush"},"template":"<div class=\"card\">\r\n    <div class=\"card-header\">\r\n        {{ 'settings.test-order' | translate }}\r\n    </div>\r\n    <table class=\"order-table table\" *ngIf=\"lines.length; else emptyPlaceholder\">\r\n        <thead>\r\n            <tr>\r\n                <th></th>\r\n                <th>{{ 'order.product-name' | translate }}</th>\r\n                <th>{{ 'order.product-sku' | translate }}</th>\r\n                <th>{{ 'order.unit-price' | translate }}</th>\r\n                <th>{{ 'order.quantity' | translate }}</th>\r\n                <th>{{ 'order.total' | translate }}</th>\r\n            </tr>\r\n        </thead>\r\n        <tr *ngFor=\"let line of lines\" class=\"order-line\">\r\n            <td class=\"align-middle thumb\">\r\n                <img [src]=\"line.preview + '?preset=tiny'\" />\r\n            </td>\r\n            <td class=\"align-middle name\">{{ line.name }}</td>\r\n            <td class=\"align-middle sku\">{{ line.sku }}</td>\r\n            <td class=\"align-middle unit-price\">\r\n                {{ line.unitPriceWithTax | localeCurrency: currencyCode }}\r\n            </td>\r\n            <td class=\"align-middle quantity\">\r\n                <input\r\n                    [(ngModel)]=\"line.quantity\"\r\n                    (change)=\"updateQuantity()\"\r\n                    type=\"number\"\r\n                    max=\"9999\"\r\n                    min=\"1\"\r\n                />\r\n                <button class=\"icon-button\" (click)=\"removeLine(line)\">\r\n                    <clr-icon shape=\"trash\"></clr-icon>\r\n                </button>\r\n            </td>\r\n            <td class=\"align-middle total\">\r\n                {{ (line.unitPriceWithTax * line.quantity) | localeCurrency: currencyCode }}\r\n            </td>\r\n        </tr>\r\n        <tr class=\"sub-total\">\r\n            <td class=\"left\">{{ 'order.sub-total' | translate }}</td>\r\n            <td></td>\r\n            <td></td>\r\n            <td></td>\r\n            <td></td>\r\n            <td>{{ subTotal | localeCurrency: currencyCode }}</td>\r\n        </tr>\r\n    </table>\r\n\r\n    <ng-template #emptyPlaceholder>\r\n        <div class=\"card-block empty-placeholder\">\r\n            <div class=\"empty-text\">{{ 'settings.add-products-to-test-order' | translate }}</div>\r\n            <clr-icon shape=\"arrow\" dir=\"down\" size=\"96\"></clr-icon>\r\n        </div>\r\n    </ng-template>\r\n    <div class=\"card-block\">\r\n        <vdr-product-selector (productSelected)=\"selectResult($event)\"> </vdr-product-selector>\r\n    </div>\r\n</div>\r\n","styles":[".empty-placeholder{color:var(--color-grey-400);text-align:center}.empty-text{font-size:22px}"]}]}],"members":{"orderLinesChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":31,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"LocalStorageService","line":31,"character":79}]}],"ngOnInit":[{"__symbolic":"method"}],"selectResult":[{"__symbolic":"method"}],"addToLines":[{"__symbolic":"method"}],"updateQuantity":[{"__symbolic":"method"}],"removeLine":[{"__symbolic":"method"}],"persistToLocalStorage":[{"__symbolic":"method"}],"loadFromLocalStorage":[{"__symbolic":"method"}]}},"VendorCategoryComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseDetailComponent","line":49,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":42,"character":1},"arguments":[{"selector":"vdr-vendor-category","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":46,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n        <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n        <vdr-language-selector\r\n            [disabled]=\"isNew$ | async\"\r\n            [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n            [currentLanguageCode]=\"languageCode$ | async\"\r\n            (languageCodeChange)=\"setLanguage($event)\"\r\n        ></vdr-language-selector>\r\n    </vdr-ab-left>\r\n\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"collection-detail\"></vdr-action-bar-items>\r\n        <button\r\n            class=\"btn btn-primary\"\r\n            *ngIf=\"isNew$ | async; else updateButton\"\r\n            (click)=\"create()\"\r\n            [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n        >\r\n            {{ 'common.create' | translate }}\r\n        </button>\r\n        <ng-template #updateButton>\r\n            <button\r\n                *vdrIfPermissions=\"updatePermission\"\r\n                class=\"btn btn-primary\"\r\n                (click)=\"save()\"\r\n                [disabled]=\"(detailForm.invalid || detailForm.pristine) && !assetsChanged()\"\r\n            >\r\n                {{ 'common.update' | translate }}\r\n            </button>\r\n        </ng-template>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as category\">\r\n    <div class=\"clr-row\">\r\n        <div class=\"clr-col\">\r\n            \r\n            <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n                <input\r\n                    id=\"name\"\r\n                    type=\"text\"\r\n                    formControlName=\"name\"\r\n                    [readonly]=\"!(updatePermission | hasPermission)\"\r\n                    (input)=\"updateSlug($event.target.value)\"\r\n                />\r\n            </vdr-form-field>\r\n            <vdr-form-field\r\n                [label]=\"'catalog.slug' | translate\"\r\n                for=\"slug\"\r\n                [errors]=\"{ pattern: ('catalog.slug-pattern-error' | translate) }\"\r\n            >\r\n                <input\r\n                    id=\"slug\"\r\n                    type=\"text\"\r\n                    formControlName=\"slug\"\r\n                    [readonly]=\"!(updatePermission | hasPermission)\"\r\n                    pattern=\"[a-z0-9_-]+\"\r\n                />\r\n            </vdr-form-field>\r\n          \r\n        </div>\r\n        <div class=\"clr-col-md-auto\">\r\n            <vdr-global-assets\r\n                 [assets]=\"category.featuredAsset?[category.featuredAsset]:[]\"\r\n               \r\n                [featuredAsset]=\"category.featuredAsset\"\r\n                (change)=\"assetChanges = $event\"\r\n            ></vdr-global-assets>\r\n        </div>\r\n        \r\n    </div>\r\n    \r\n     \r\n</form>\r\n","styles":[".visible-toggle{margin-top:-3px!important}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":69,"character":16},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":70,"character":15},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":71,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":72,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":73,"character":31},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":74,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":75,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":76,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"assetsChanged":[{"__symbolic":"method"}],"updateSlug":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"canDeactivate":[{"__symbolic":"method"}],"setFormValues":[{"__symbolic":"method"}],"getUpdatedCollection":[{"__symbolic":"method"}],"mapOperationsToInputs":[{"__symbolic":"method"}]}},"VendorCategoryListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"vdr-vendor-category-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":23,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left>\r\n       <!--  <div class=\"flex center wrap\">\r\n            <vdr-language-selector\r\n                class=\"mt2\"\r\n                [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n                [currentLanguageCode]=\"contentLanguage$ | async\"\r\n                (languageCodeChange)=\"setLanguage($event)\"\r\n            ></vdr-language-selector>\r\n            <clr-checkbox-wrapper\r\n                class=\"expand-all-toggle ml3\"\r\n                [ngClass]=\"(availableLanguages$ | async)?.length === 1 ? 'mt3' : 'mt1'\"\r\n            >\r\n                <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"expandAll\" />\r\n                <label>{{ 'catalog.expand-all-collections' | translate }}</label>\r\n            </clr-checkbox-wrapper>\r\n        </div> -->\r\n    </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"vc-list\"></vdr-action-bar-items>\r\n        <a\r\n            class=\"btn btn-primary\"\r\n            *vdrIfPermissions=\"'SuperAdmin'\"\r\n            [routerLink]=\"['./create']\"\r\n        >\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-category' | translate }}\r\n        </a>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"collection-wrapper\">\r\n    <vdr-data-table [items]=\"items$ | async\">\r\n        <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n        <vdr-dt-column></vdr-dt-column>\r\n        <vdr-dt-column></vdr-dt-column>\r\n         <ng-template let-category=\"item\">\r\n         \r\n            <td class=\"left align-middle\">{{ category.name | translate }}</td>\r\n            <td class=\"right align-middle\">\r\n                <vdr-table-row-action\r\n                    iconShape=\"edit\"\r\n                    [label]=\"'common.edit' | translate\"\r\n                    [linkTo]=\"['./', category.id]\"\r\n                ></vdr-table-row-action>\r\n            </td>\r\n            <td class=\"right align-middle\">\r\n                <vdr-dropdown>\r\n                    <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger  >\r\n                        {{ 'common.actions' | translate }}\r\n                        <clr-icon shape=\"caret down\"></clr-icon>\r\n                    </button>\r\n                    <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                        <button\r\n                            type=\"button\"\r\n                            class=\"delete-button\"\r\n                            (click)=\"deleteCategory(category.id)\"\r\n                            [disabled]=\"!(['SuperAdmin'] | hasPermission)\"\r\n                            vdrDropdownItem\r\n                        >\r\n                            <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                            {{ 'common.delete' | translate }}\r\n                        </button>\r\n                    </vdr-dropdown-menu>\r\n                </vdr-dropdown>\r\n            </td>\r\n        </ng-template> \r\n    </vdr-data-table>\r\n    \r\n</div>\r\n","styles":[".group-wrapper{display:flex;height:calc(100% - 50px)}.group-wrapper .group-list{flex:1;overflow:auto;margin-top:0}.group-wrapper .group-list tr.active{background-color:var(--color-component-bg-200)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}.group-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.group-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.group-members .close-button{margin:0;background:none;border:none;cursor:pointer}.group-members ::ng-deep table.table{margin-top:0}.group-members ::ng-deep table.table th{top:0}.group-members .controls{display:flex;justify-content:space-between}vdr-empty-placeholder{flex:1}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":35,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":36,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":37,"character":30},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":38,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":39,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ServerConfigService","line":40,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"setLanguage":[{"__symbolic":"method"}],"deleteCategory":[{"__symbolic":"method"}]}},"VendorCategoryMemberFetchParams":{"__symbolic":"interface"},"VendorCategoryMemberListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"vdr-vendor-category-member-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":26,"character":21},"member":"OnPush"},"template":"<input\r\n    type=\"text\"\r\n    name=\"searchTerm\"\r\n    [formControl]=\"filterTermControl\"\r\n    [placeholder]=\"'customer.search-customers-by-email' | translate\"\r\n    class=\"search-input\"\r\n/>\r\n\r\n<vdr-data-table\r\n    [items]=\"members\"\r\n    [itemsPerPage]=\"membersItemsPerPage$ | async\"\r\n    [totalItems]=\"totalItems\"\r\n    [currentPage]=\"membersCurrentPage$ | async\"\r\n    (pageChange)=\"setContentsPageNumber($event)\"\r\n    (itemsPerPageChange)=\"setContentsItemsPerPage($event)\"\r\n    [allSelected]=\"areAllSelected()\"\r\n    [isRowSelectedFn]=\"('SuperAdmin' | hasPermission) && isMemberSelected\"\r\n    (rowSelectChange)=\"toggleSelectMember($event)\"\r\n    (allSelectChange)=\"toggleSelectAll()\"\r\n>\r\n    <vdr-dt-column [expand]=\"true\">{{ 'customer.name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column [expand]=\"true\">{{ 'customer.email-address' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-vendor=\"item\">\r\n        <td class=\"left align-middle\">\r\n            {{ vendor.name }} {{ vendor.firstName }} {{ vendor.lastName }}\r\n        </td>\r\n        <td class=\"left align-middle\">{{ vendor.email }}</td>\r\n        \r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[""]}]}],"members":{"members":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":5}}]}],"totalItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"route":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"selectedMemberIds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"selectionChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":5}}]}],"fetchParamsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":44,"character":32},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":44,"character":61}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setContentsPageNumber":[{"__symbolic":"method"}],"setContentsItemsPerPage":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"setParam":[{"__symbolic":"method"}],"areAllSelected":[{"__symbolic":"method"}],"toggleSelectAll":[{"__symbolic":"method"}],"toggleSelectMember":[{"__symbolic":"method"}]}},"ZoneDetailDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"vdr-zone-detail-dialog","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":21},"member":"OnPush"},"template":"<ng-template vdrDialogTitle>\r\n    <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n    <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n</ng-template>\r\n\r\n<vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n    <input id=\"name\" type=\"text\" [(ngModel)]=\"zone.name\" [readonly]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\" />\r\n</vdr-form-field>\r\n\r\n<ng-template vdrDialogButtons>\r\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n    <button type=\"submit\" (click)=\"save()\" [disabled]=\"!zone.name\" class=\"btn btn-primary\">\r\n        <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n        <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n    </button>\r\n</ng-template>\r\n","styles":[""]}]}],"members":{"cancel":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ZoneListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"vdr-zone-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":21},"member":"OnPush"},"template":"<vdr-action-bar>\r\n    <vdr-ab-left> </vdr-ab-left>\r\n    <vdr-ab-right>\r\n        <vdr-action-bar-items locationId=\"zone-list\"></vdr-action-bar-items>\r\n        <button class=\"btn btn-primary\" *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\" (click)=\"create()\">\r\n            <clr-icon shape=\"plus\"></clr-icon>\r\n            {{ 'settings.create-new-zone' | translate }}\r\n        </button>\r\n    </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"zone-wrapper\">\r\n    <table class=\"table zone-list\">\r\n        <tbody>\r\n            <tr *ngFor=\"let zone of zones$ | async\" [class.active]=\"zone.id === (activeZone$ | async)?.id\">\r\n                <td class=\"left align-middle\"><vdr-entity-info [entity]=\"zone\"></vdr-entity-info></td>\r\n                <td class=\"left align-middle\"><vdr-chip [colorFrom]=\"zone.name\">{{ zone.name }}</vdr-chip></td>\r\n                <td class=\"text-right align-middle\">\r\n                    <a\r\n                        class=\"btn btn-link btn-sm\"\r\n                        [routerLink]=\"['./', { contents: zone.id }]\"\r\n                        queryParamsHandling=\"preserve\"\r\n                    >\r\n                        <clr-icon shape=\"view-list\"></clr-icon>\r\n                        {{ 'settings.view-zone-members' | translate }}\r\n                    </a>\r\n                </td>\r\n                <td class=\"align-middle\">\r\n                    <button class=\"btn btn-link btn-sm\" (click)=\"update(zone)\">\r\n                        <clr-icon shape=\"edit\"></clr-icon>\r\n                        {{ 'common.edit' | translate }}\r\n                    </button>\r\n                </td>\r\n                <td class=\"align-middle\">\r\n                    <vdr-dropdown>\r\n                        <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                            {{ 'common.actions' | translate }}\r\n                            <clr-icon shape=\"caret down\"></clr-icon>\r\n                        </button>\r\n                        <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                            <button\r\n                                class=\"button\"\r\n                                vdrDropdownItem\r\n                                (click)=\"delete(zone.id)\"\r\n                                [disabled]=\"!(['DeleteSettings', 'DeleteZone'] | hasPermission)\"\r\n                            >\r\n                                <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                                {{ 'common.delete' | translate }}\r\n                            </button>\r\n                        </vdr-dropdown-menu>\r\n                    </vdr-dropdown>\r\n                </td>\r\n            </tr>\r\n        </tbody>\r\n    </table>\r\n    <div class=\"zone-members\" [class.expanded]=\"activeZone$ | async\">\r\n        <ng-container *ngIf=\"activeZone$ | async as activeZone\">\r\n            <vdr-zone-member-list\r\n                [members]=\"activeZone.members\"\r\n                [selectedMemberIds]=\"selectedMemberIds\"\r\n                (selectionChange)=\"selectedMemberIds = $event\"\r\n            >\r\n                <div *vdrZoneMemberListHeader>\r\n                    <div class=\"flex\">\r\n                        <div class=\"header-title-row\">\r\n                            {{ activeZone.name }} ({{ activeZone.members.length }})\r\n                        </div>\r\n                        <div class=\"flex-spacer\"></div>\r\n                        <button type=\"button\" class=\"close-button\" (click)=\"closeMembers()\">\r\n                            <clr-icon shape=\"close\"></clr-icon>\r\n                        </button>\r\n                    </div>\r\n                    <div class=\"controls\">\r\n                        <vdr-dropdown>\r\n                            <button\r\n                                type=\"button\"\r\n                                class=\"btn btn-secondary btn-sm\"\r\n                                vdrDropdownTrigger\r\n                                [disabled]=\"selectedMemberIds.length === 0\"\r\n                            >\r\n                                {{ 'common.with-selected' | translate }}\r\n                                <clr-icon shape=\"caret down\"></clr-icon>\r\n                            </button>\r\n                            <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                                <button\r\n                                    type=\"button\"\r\n                                    class=\"delete-button\"\r\n                                    (click)=\"removeFromZone(activeZone, selectedMemberIds)\"\r\n                                    vdrDropdownItem\r\n                                    [disabled]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n                                >\r\n                                    <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                                    {{ 'settings.remove-from-zone' | translate }}\r\n                                </button>\r\n                            </vdr-dropdown-menu>\r\n                        </vdr-dropdown>\r\n                        <button class=\"btn btn-secondary btn-sm\" (click)=\"addToZone(activeZone)\">\r\n                            {{ 'settings.add-countries-to-zone' | translate: { zoneName: activeZone.name } }}\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n                <div *vdrZoneMemberControls=\"let member = member\">\r\n                    <vdr-dropdown>\r\n                        <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n                            {{ 'common.actions' | translate }}\r\n                            <clr-icon shape=\"caret down\"></clr-icon>\r\n                        </button>\r\n                        <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n                            <a\r\n                                type=\"button\"\r\n                                [routerLink]=\"['/settings', 'countries', member.id]\"\r\n                                vdrDropdownItem\r\n                            >\r\n                                <clr-icon shape=\"edit\"></clr-icon>\r\n                                {{ 'common.edit' | translate }}\r\n                            </a>\r\n                            <button\r\n                                type=\"button\"\r\n                                class=\"delete-button\"\r\n                                (click)=\"removeFromZone(activeZone, [member.id])\"\r\n                                vdrDropdownItem\r\n                                [disabled]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n                            >\r\n                                <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n                                {{ 'settings.remove-from-zone' | translate }}\r\n                            </button>\r\n                        </vdr-dropdown-menu>\r\n                    </vdr-dropdown>\r\n                </div>\r\n            </vdr-zone-member-list>\r\n        </ng-container>\r\n    </div>\r\n</div>\r\n","styles":[".zone-wrapper{display:flex;height:calc(100% - 50px)}.zone-wrapper .zone-list{flex:1;overflow:auto;margin-top:0}.zone-wrapper .zone-list tr.active{background-color:var(--color-component-bg-200)}.zone-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.zone-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.zone-members .close-button{margin:0;background:none;border:none;cursor:pointer}.zone-members ::ng-deep table.table{margin-top:0}.zone-members ::ng-deep table.table th{top:0}.zone-members .controls{display:flex;justify-content:space-between}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":30,"character":29},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"NotificationService","line":31,"character":37},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"ModalService","line":32,"character":30},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":33,"character":23},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":34,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"closeMembers":[{"__symbolic":"method"}],"addToZone":[{"__symbolic":"method"}],"removeFromZone":[{"__symbolic":"method"}]}},"ZoneMemberControlsDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[vdrZoneMemberControls]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ZoneMemberListHeaderDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[vdrZoneMemberListHeader]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ZoneMember":{"__symbolic":"interface"},"ZoneMemberListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"vdr-zone-member-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":21},"member":"OnPush"},"template":"<div class=\"members-header\">\r\n    <ng-container *ngIf=\"headerTemplate\">\r\n        <ng-container *ngTemplateOutlet=\"headerTemplate.templateRef\"></ng-container>\r\n    </ng-container>\r\n    <input\r\n        type=\"text\"\r\n        [placeholder]=\"'settings.filter-by-member-name' | translate\"\r\n        [(ngModel)]=\"filterTerm\"\r\n    />\r\n</div>\r\n<vdr-data-table\r\n    [items]=\"filteredMembers()\"\r\n    [allSelected]=\"areAllSelected()\"\r\n    [isRowSelectedFn]=\"(['UpdateSettings', 'UpdateZone'] | hasPermission) && isMemberSelected\"\r\n    (rowSelectChange)=\"toggleSelectMember($event)\"\r\n    (allSelectChange)=\"toggleSelectAll()\"\r\n>\r\n    <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n    <vdr-dt-column></vdr-dt-column>\r\n    <ng-template let-member=\"item\">\r\n        <td class=\"left align-middle\">{{ member.code }}</td>\r\n        <td class=\"left align-middle\">{{ member.name }}</td>\r\n        <td class=\"left align-middle\">\r\n            <clr-icon\r\n                [class.is-success]=\"member.enabled\"\r\n                [attr.shape]=\"member.enabled ? 'check' : 'times'\"\r\n            ></clr-icon>\r\n        </td>\r\n        <td class=\"right align-middle\">\r\n            <ng-container *ngIf=\"controlsTemplate\">\r\n                <ng-container\r\n                    *ngTemplateOutlet=\"controlsTemplate.templateRef; context: { member: member }\"\r\n                ></ng-container>\r\n            </ng-container>\r\n        </td>\r\n    </ng-template>\r\n</vdr-data-table>\r\n","styles":[".members-header{background-color:var(--color-component-bg-100);position:sticky;top:0;padding:6px;z-index:5;border-bottom:1px solid var(--color-component-border-200)}.members-header .header-title-row{display:flex;justify-content:space-between;align-items:center}.members-header .clr-input{width:100%}"]}]}],"members":{"members":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":5}}]}],"selectedMemberIds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"selectionChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":5}}]}],"headerTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"ZoneMemberListHeaderDirective"}]}]}],"controlsTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":19,"character":5},"arguments":[{"__symbolic":"reference","name":"ZoneMemberControlsDirective"}]}]}],"filteredMembers":[{"__symbolic":"method"}],"areAllSelected":[{"__symbolic":"method"}],"toggleSelectAll":[{"__symbolic":"method"}],"toggleSelectMember":[{"__symbolic":"method"}]}},"AdministratorResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":9,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":10,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":10,"character":45}]}]},"statics":{"ɵprov":{}}},"ChannelResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":13,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":14,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":14,"character":45}]}]},"statics":{"ɵprov":{}}},"CountryResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":12,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":13,"character":45}]}]},"statics":{"ɵprov":{}}},"GlobalSettingsResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":12,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":13,"character":45}]}]},"statics":{"ɵprov":{}}},"PaymentMethodResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":12,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":13,"character":45}]}]},"statics":{"ɵprov":{}}},"ProfileResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":9,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":10,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":10,"character":45}]}]},"statics":{"ɵprov":{}}},"RoleResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":9,"character":34},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":10,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":10,"character":45}]}]},"statics":{"ɵprov":{}}},"ShippingMethodResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":12,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":13,"character":45}]}]},"statics":{"ɵprov":{}}},"TaxCategoryResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":10,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":11,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":11,"character":45}]}]},"statics":{"ɵprov":{}}},"TaxRateResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":10,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":11,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":11,"character":45}]}]},"statics":{"ɵprov":{}}},"VendorCategoryResolver":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"BaseEntityResolver","line":13,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":14,"character":24},{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"DataService","line":14,"character":45}]}]},"statics":{"ɵprov":{}}},"SettingsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":41,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"SharedModule","line":42,"character":14},{"__symbolic":"reference","module":"@ishop/admin-ui/catalog","name":"CatalogModule","line":42,"character":28},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":42,"character":43},"member":"forChild"},"arguments":[{"__symbolic":"reference","name":"settingsRoutes"}]}],"declarations":[{"__symbolic":"reference","name":"TaxCategoryListComponent"},{"__symbolic":"reference","name":"TaxCategoryDetailComponent"},{"__symbolic":"reference","name":"AdministratorListComponent"},{"__symbolic":"reference","name":"RoleListComponent"},{"__symbolic":"reference","name":"RoleDetailComponent"},{"__symbolic":"reference","name":"AdminDetailComponent"},{"__symbolic":"reference","name":"PermissionGridComponent"},{"__symbolic":"reference","name":"CountryListComponent"},{"__symbolic":"reference","name":"CountryDetailComponent"},{"__symbolic":"reference","name":"TaxRateListComponent"},{"__symbolic":"reference","name":"TaxRateDetailComponent"},{"__symbolic":"reference","name":"ChannelListComponent"},{"__symbolic":"reference","name":"ChannelDetailComponent"},{"__symbolic":"reference","name":"ShippingMethodListComponent"},{"__symbolic":"reference","name":"ShippingMethodDetailComponent"},{"__symbolic":"reference","name":"PaymentMethodListComponent"},{"__symbolic":"reference","name":"PaymentMethodDetailComponent"},{"__symbolic":"reference","name":"GlobalSettingsComponent"},{"__symbolic":"reference","name":"TestOrderBuilderComponent"},{"__symbolic":"reference","name":"TestAddressFormComponent"},{"__symbolic":"reference","name":"ShippingMethodTestResultComponent"},{"__symbolic":"reference","name":"ShippingEligibilityTestResultComponent"},{"__symbolic":"reference","name":"ZoneListComponent"},{"__symbolic":"reference","name":"AddCountryToZoneDialogComponent"},{"__symbolic":"reference","name":"ZoneMemberListComponent"},{"__symbolic":"reference","name":"ZoneMemberListHeaderDirective"},{"__symbolic":"reference","name":"ZoneMemberControlsDirective"},{"__symbolic":"reference","name":"ZoneDetailDialogComponent"},{"__symbolic":"reference","name":"ProfileComponent"},{"__symbolic":"reference","name":"VendorCategoryListComponent"},{"__symbolic":"reference","name":"VendorCategoryComponent"},{"__symbolic":"reference","name":"VendorCategoryMemberListComponent"},{"__symbolic":"reference","name":"SelectVendorCategoryDialogComponent"},{"__symbolic":"reference","name":"GlobalAssetsComponent"}]}]}],"members":{}},"settingsRoutes":[{"path":"profile","component":{"__symbolic":"reference","name":"ProfileComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":53,"character":17},"arguments":[{"__symbolic":"reference","name":"ProfileResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":54,"character":24}],"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":56,"character":24},"arguments":["breadcrumb.profile"]}}},{"path":"administrators","component":{"__symbolic":"reference","name":"AdministratorListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":63,"character":24},"arguments":["breadcrumb.administrators"]}}},{"path":"administrators/:id","component":{"__symbolic":"reference","name":"AdminDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":69,"character":17},"arguments":[{"__symbolic":"reference","name":"AdministratorResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":70,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"administratorBreadcrumb"}}},{"path":"categories","component":{"__symbolic":"reference","name":"VendorCategoryListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":78,"character":24},"arguments":["breadcrumb.categories"]}}},{"path":"categories/:id","component":{"__symbolic":"reference","name":"VendorCategoryComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":83,"character":17},"arguments":[{"__symbolic":"reference","name":"VendorCategoryResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":84,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"categoryBreadcrumb"}}},{"path":"channels","component":{"__symbolic":"reference","name":"ChannelListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":91,"character":24},"arguments":["breadcrumb.channels"]}}},{"path":"channels/:id","component":{"__symbolic":"reference","name":"ChannelDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":97,"character":17},"arguments":[{"__symbolic":"reference","name":"ChannelResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":98,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"channelBreadcrumb"}}},{"path":"roles","component":{"__symbolic":"reference","name":"RoleListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":105,"character":24},"arguments":["breadcrumb.roles"]}}},{"path":"roles/:id","component":{"__symbolic":"reference","name":"RoleDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":111,"character":17},"arguments":[{"__symbolic":"reference","name":"RoleResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":112,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"roleBreadcrumb"}}},{"path":"tax-categories","component":{"__symbolic":"reference","name":"TaxCategoryListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":119,"character":24},"arguments":["breadcrumb.tax-categories"]}}},{"path":"tax-categories/:id","component":{"__symbolic":"reference","name":"TaxCategoryDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":125,"character":17},"arguments":[{"__symbolic":"reference","name":"TaxCategoryResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":126,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"taxCategoryBreadcrumb"}}},{"path":"tax-rates","component":{"__symbolic":"reference","name":"TaxRateListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":135,"character":24},"arguments":["breadcrumb.tax-rates"]}}},{"path":"tax-rates/:id","component":{"__symbolic":"reference","name":"TaxRateDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":141,"character":17},"arguments":[{"__symbolic":"reference","name":"TaxRateResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":142,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"taxRateBreadcrumb"}}},{"path":"countries","component":{"__symbolic":"reference","name":"CountryListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":151,"character":24},"arguments":["breadcrumb.countries"]}}},{"path":"countries/:id","component":{"__symbolic":"reference","name":"CountryDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":157,"character":17},"arguments":[{"__symbolic":"reference","name":"CountryResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":158,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"countryBreadcrumb"}}},{"path":"zones","component":{"__symbolic":"reference","name":"ZoneListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":167,"character":24},"arguments":["breadcrumb.zones"]}}},{"path":"shipping-methods","component":{"__symbolic":"reference","name":"ShippingMethodListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":174,"character":24},"arguments":["breadcrumb.shipping-methods"]}}},{"path":"shipping-methods/:id","component":{"__symbolic":"reference","name":"ShippingMethodDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":180,"character":17},"arguments":[{"__symbolic":"reference","name":"ShippingMethodResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":181,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"shippingMethodBreadcrumb"}}},{"path":"payment-methods","component":{"__symbolic":"reference","name":"PaymentMethodListComponent"},"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":190,"character":24},"arguments":["breadcrumb.payment-methods"]}}},{"path":"payment-methods/:id","component":{"__symbolic":"reference","name":"PaymentMethodDetailComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":196,"character":17},"arguments":[{"__symbolic":"reference","name":"PaymentMethodResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":197,"character":24}],"data":{"breadcrumb":{"__symbolic":"reference","name":"paymentMethodBreadcrumb"}}},{"path":"global-settings","component":{"__symbolic":"reference","name":"GlobalSettingsComponent"},"resolve":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"createResolveData","line":205,"character":17},"arguments":[{"__symbolic":"reference","name":"GlobalSettingsResolver"}]},"canDeactivate":[{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"CanDeactivateDetailGuard","line":206,"character":24}],"data":{"breadcrumb":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@biesbjerg/ngx-translate-extract-marker","name":"marker","line":208,"character":24},"arguments":["breadcrumb.global-settings"]}}}],"administratorBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":214,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":218,"character":17,"module":"./settings.routes"}]}},"channelBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":224,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":228,"character":17,"module":"./settings.routes"}]}},"roleBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":234,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":238,"character":17,"module":"./settings.routes"}]}},"taxCategoryBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":244,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":248,"character":17,"module":"./settings.routes"}]}},"taxRateBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":254,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":258,"character":17,"module":"./settings.routes"}]}},"countryBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":264,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":268,"character":17,"module":"./settings.routes"}]}},"shippingMethodBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":274,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":278,"character":17,"module":"./settings.routes"}]}},"paymentMethodBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":284,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":288,"character":17,"module":"./settings.routes"}]}},"categoryBreadcrumb":{"__symbolic":"function","parameters":["data","params"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ishop/admin-ui/core","name":"detailBreadcrumb","line":293,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":297,"character":17,"module":"./settings.routes"}]}}},"origins":{"AddCountryToZoneDialogComponent":"./components/add-country-to-zone-dialog/add-country-to-zone-dialog.component","PermissionsByChannel":"./components/admin-detail/admin-detail.component","AdminDetailComponent":"./components/admin-detail/admin-detail.component","AdministratorListComponent":"./components/administrator-list/administrator-list.component","ChannelDetailComponent":"./components/channel-detail/channel-detail.component","ChannelListComponent":"./components/channel-list/channel-list.component","CountryDetailComponent":"./components/country-detail/country-detail.component","CountryListComponent":"./components/country-list/country-list.component","AssetChange":"./components/global-assets/global-assets.component","GlobalAssetsComponent":"./components/global-assets/global-assets.component","GlobalSettingsComponent":"./components/global-settings/global-settings.component","PaymentMethodDetailComponent":"./components/payment-method-detail/payment-method-detail.component","PaymentMethodListComponent":"./components/payment-method-list/payment-method-list.component","PermissionGridRow":"./components/permission-grid/permission-grid.component","PermissionGridComponent":"./components/permission-grid/permission-grid.component","ProfileComponent":"./components/profile/profile.component","RoleDetailComponent":"./components/role-detail/role-detail.component","RoleListComponent":"./components/role-list/role-list.component","SelectVendorCategoryDialogComponent":"./components/select-vendor-category-dialog/select-vendor-category-dialog.component","ShippingEligibilityTestResultComponent":"./components/shipping-eligibility-test-result/shipping-eligibility-test-result.component","ShippingMethodDetailComponent":"./components/shipping-method-detail/shipping-method-detail.component","ShippingMethodListComponent":"./components/shipping-method-list/shipping-method-list.component","ShippingMethodTestResultComponent":"./components/shipping-method-test-result/shipping-method-test-result.component","TaxCategoryDetailComponent":"./components/tax-category-detail/tax-category-detail.component","TaxCategoryListComponent":"./components/tax-category-list/tax-category-list.component","TaxRateDetailComponent":"./components/tax-rate-detail/tax-rate-detail.component","TaxRateListComponent":"./components/tax-rate-list/tax-rate-list.component","TestAddress":"./components/test-address-form/test-address-form.component","TestAddressFormComponent":"./components/test-address-form/test-address-form.component","TestOrderLine":"./components/test-order-builder/test-order-builder.component","TestOrderBuilderComponent":"./components/test-order-builder/test-order-builder.component","VendorCategoryComponent":"./components/vendor-category/vendor-category.component","VendorCategoryListComponent":"./components/vendor-category-list/vendor-category-list.component","VendorCategoryMemberFetchParams":"./components/vendor-category-member-list/vendor-category-member-list.component","VendorCategoryMemberListComponent":"./components/vendor-category-member-list/vendor-category-member-list.component","ZoneDetailDialogComponent":"./components/zone-detail-dialog/zone-detail-dialog.component","ZoneListComponent":"./components/zone-list/zone-list.component","ZoneMemberControlsDirective":"./components/zone-member-list/zone-member-controls.directive","ZoneMemberListHeaderDirective":"./components/zone-member-list/zone-member-list-header.directive","ZoneMember":"./components/zone-member-list/zone-member-list.component","ZoneMemberListComponent":"./components/zone-member-list/zone-member-list.component","AdministratorResolver":"./providers/routing/administrator-resolver","ChannelResolver":"./providers/routing/channel-resolver","CountryResolver":"./providers/routing/country-resolver","GlobalSettingsResolver":"./providers/routing/global-settings-resolver","PaymentMethodResolver":"./providers/routing/payment-method-resolver","ProfileResolver":"./providers/routing/profile-resolver","RoleResolver":"./providers/routing/role-resolver","ShippingMethodResolver":"./providers/routing/shipping-method-resolver","TaxCategoryResolver":"./providers/routing/tax-category-resolver","TaxRateResolver":"./providers/routing/tax-rate-resolver","VendorCategoryResolver":"./providers/routing/vendor-category-resolver","SettingsModule":"./settings.module","settingsRoutes":"./settings.routes","administratorBreadcrumb":"./settings.routes","channelBreadcrumb":"./settings.routes","roleBreadcrumb":"./settings.routes","taxCategoryBreadcrumb":"./settings.routes","taxRateBreadcrumb":"./settings.routes","countryBreadcrumb":"./settings.routes","shippingMethodBreadcrumb":"./settings.routes","paymentMethodBreadcrumb":"./settings.routes","categoryBreadcrumb":"./settings.routes"},"importAs":"@ishop/admin-ui/settings"}