@vendure/admin-ui 2.0.0-next.21 → 2.0.0-next.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +0 -1
- package/catalog/components/product-detail/product-detail.component.d.ts +2 -7
- package/catalog/components/product-variants-list/product-variants-list.component.d.ts +10 -10
- package/catalog/providers/product-detail/product-detail.service.d.ts +1 -2
- package/core/common/generated-types.d.ts +72 -0
- package/core/common/version.d.ts +1 -1
- package/core/data/definitions/facet-definitions.d.ts +1 -0
- package/core/data/providers/facet-data.service.d.ts +4 -0
- package/core/providers/custom-history-entry-component/history-entry-component-types.d.ts +81 -0
- package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +19 -0
- package/core/public_api.d.ts +2 -1
- package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +16 -16
- package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +3 -11
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +1 -2
- package/customer/components/customer-detail/customer-detail.component.d.ts +3 -3
- package/customer/components/customer-history/customer-history-entry-host.component.d.ts +19 -0
- package/customer/components/customer-history/customer-history.component.d.ts +38 -10
- package/customer/customer.module.d.ts +4 -3
- package/customer/public_api.d.ts +1 -0
- package/esm2020/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +3 -3
- package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +3 -4
- package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +11 -6
- package/esm2020/catalog/components/product-detail/product-detail.component.mjs +17 -48
- package/esm2020/catalog/components/product-list/product-list-bulk-actions.mjs +4 -7
- package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +39 -33
- package/esm2020/catalog/providers/product-detail/product-detail.service.mjs +1 -4
- package/esm2020/core/common/generated-types.mjs +1 -1
- package/esm2020/core/common/introspection-result.mjs +2 -1
- package/esm2020/core/common/version.mjs +2 -2
- package/esm2020/core/data/data.module.mjs +8 -1
- package/esm2020/core/data/definitions/facet-definitions.mjs +12 -1
- package/esm2020/core/data/providers/facet-data.service.mjs +5 -2
- package/esm2020/core/providers/custom-history-entry-component/history-entry-component-types.mjs +2 -0
- package/esm2020/core/providers/custom-history-entry-component/history-entry-component.service.mjs +40 -0
- package/esm2020/core/public_api.mjs +3 -2
- package/esm2020/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +52 -25
- package/esm2020/core/shared/components/timeline-entry/timeline-entry.component.mjs +3 -3
- package/esm2020/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +8 -18
- package/esm2020/customer/components/customer-detail/customer-detail.component.mjs +2 -1
- package/esm2020/customer/components/customer-history/customer-history-entry-host.component.mjs +64 -0
- package/esm2020/customer/components/customer-history/customer-history.component.mjs +16 -10
- package/esm2020/customer/customer.module.mjs +5 -2
- package/esm2020/customer/providers/routing/customer-resolver.mjs +5 -3
- package/esm2020/customer/public_api.mjs +2 -1
- package/esm2020/login/components/login/login.component.mjs +36 -9
- package/esm2020/order/components/order-detail/order-detail.component.mjs +1 -1
- package/esm2020/order/components/order-history/order-history-entry-host.component.mjs +64 -0
- package/esm2020/order/components/order-history/order-history.component.mjs +19 -14
- package/esm2020/order/order.module.mjs +8 -5
- package/esm2020/order/public_api.mjs +2 -1
- package/esm2020/settings/components/admin-detail/admin-detail.component.mjs +5 -4
- package/fesm2015/vendure-admin-ui-catalog.mjs +69 -96
- package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-core.mjs +167 -90
- package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.mjs +93 -21
- package/fesm2015/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-login.mjs +35 -8
- package/fesm2015/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-order.mjs +76 -8
- package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.mjs +4 -3
- package/fesm2015/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-catalog.mjs +68 -96
- package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-core.mjs +165 -90
- package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-customer.mjs +92 -21
- package/fesm2020/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-login.mjs +35 -8
- package/fesm2020/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-order.mjs +75 -8
- package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-settings.mjs +4 -3
- package/fesm2020/vendure-admin-ui-settings.mjs.map +1 -1
- package/login/components/login/login.component.d.ts +9 -1
- package/order/components/order-detail/order-detail.component.d.ts +3 -3
- package/order/components/order-history/order-history-entry-host.component.d.ts +19 -0
- package/order/components/order-history/order-history.component.d.ts +40 -13
- package/order/order.module.d.ts +4 -3
- package/order/public_api.d.ts +1 -0
- package/package.json +2 -2
- package/static/i18n-messages/de.json +3 -1
- package/static/i18n-messages/en.json +3 -1
- package/static/styles/_variables.scss +1 -0
- package/core/common/utilities/flatten-facet-values.d.ts +0 -2
- package/esm2020/core/common/utilities/flatten-facet-values.mjs +0 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, Injectable, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewContainerRef, ViewChild, Injectable, NgModule } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, Subject, combineLatest, forkJoin, from, EMPTY, of } from 'rxjs';
|
|
4
4
|
import { map, startWith, distinctUntilChanged, debounceTime, tap, takeUntil, switchMap, filter, take, shareReplay, merge, mergeMap, concatMap, mapTo } from 'rxjs/operators';
|
|
5
5
|
import * as i1 from '@vendure/admin-ui/core';
|
|
@@ -9,8 +9,8 @@ import { FormControl, Validators, FormArray } from '@angular/forms';
|
|
|
9
9
|
import * as i2 from '@angular/router';
|
|
10
10
|
import { RouterModule } from '@angular/router';
|
|
11
11
|
import * as i4 from '@ngx-translate/core';
|
|
12
|
-
import * as
|
|
13
|
-
import * as
|
|
12
|
+
import * as i4$1 from '@angular/common';
|
|
13
|
+
import * as i5 from '@clr/angular';
|
|
14
14
|
import { __rest } from 'tslib';
|
|
15
15
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
16
16
|
import { notNullOrUndefined } from '@vendure/common/lib/shared-utils';
|
|
@@ -92,7 +92,7 @@ class CustomerGroupMemberListComponent {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
CustomerGroupMemberListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerGroupMemberListComponent, deps: [{ token: i2.Router }, { token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
-
CustomerGroupMemberListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: { members: "members", totalItems: "totalItems", route: "route", selectedMemberIds: "selectedMemberIds" }, outputs: { selectionChange: "selectionChange", fetchParamsChange: "fetchParamsChange" }, ngImport: i0, 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]=\"('UpdateCustomerGroup' | 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-customer=\"item\">\r\n <td class=\"left align-middle\">\r\n {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }}\r\n </td>\r\n <td class=\"left align-middle\">{{ customer.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]=\"['/customer', 'customers', customer.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n", styles: [""], components: [{ type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: i1.TableRowActionComponent, selector: "vdr-table-row-action", inputs: ["linkTo", "label", "iconShape", "disabled"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i4.TranslatePipe, "async":
|
|
95
|
+
CustomerGroupMemberListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: { members: "members", totalItems: "totalItems", route: "route", selectedMemberIds: "selectedMemberIds" }, outputs: { selectionChange: "selectionChange", fetchParamsChange: "fetchParamsChange" }, ngImport: i0, 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]=\"('UpdateCustomerGroup' | 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-customer=\"item\">\r\n <td class=\"left align-middle\">\r\n {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }}\r\n </td>\r\n <td class=\"left align-middle\">{{ customer.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]=\"['/customer', 'customers', customer.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n", styles: [""], components: [{ type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: i1.TableRowActionComponent, selector: "vdr-table-row-action", inputs: ["linkTo", "label", "iconShape", "disabled"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i4.TranslatePipe, "async": i4$1.AsyncPipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerGroupMemberListComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
98
|
args: [{ selector: 'vdr-customer-group-member-list', changeDetection: ChangeDetectionStrategy.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]=\"('UpdateCustomerGroup' | 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-customer=\"item\">\r\n <td class=\"left align-middle\">\r\n {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }}\r\n </td>\r\n <td class=\"left align-middle\">{{ customer.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]=\"['/customer', 'customers', customer.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n", styles: [""] }]
|
|
@@ -137,7 +137,7 @@ class AddCustomerToGroupDialogComponent {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
AddCustomerToGroupDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AddCustomerToGroupDialogComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
-
AddCustomerToGroupDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AddCustomerToGroupDialogComponent, selector: "vdr-add-customer-to-group-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'customer.add-customers-to-group-with-name' | translate: {groupName: group.name} }}\r\n</ng-template>\r\n\r\n<vdr-customer-group-member-list\r\n [members]=\"customers$ | async\"\r\n [totalItems]=\"customersTotal$ | async\"\r\n [route]=\"route\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n>\r\n\r\n</vdr-customer-group-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]=\"!selectedCustomerIds.length\" class=\"btn btn-primary\">\r\n {{ 'customer.add-customers-to-group-with-count' | translate: {count: selectedCustomerIds.length} }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["members", "totalItems", "route", "selectedMemberIds"], outputs: ["selectionChange", "fetchParamsChange"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe, "async":
|
|
140
|
+
AddCustomerToGroupDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AddCustomerToGroupDialogComponent, selector: "vdr-add-customer-to-group-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'customer.add-customers-to-group-with-name' | translate: {groupName: group.name} }}\r\n</ng-template>\r\n\r\n<vdr-customer-group-member-list\r\n [members]=\"customers$ | async\"\r\n [totalItems]=\"customersTotal$ | async\"\r\n [route]=\"route\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n>\r\n\r\n</vdr-customer-group-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]=\"!selectedCustomerIds.length\" class=\"btn btn-primary\">\r\n {{ 'customer.add-customers-to-group-with-count' | translate: {count: selectedCustomerIds.length} }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["members", "totalItems", "route", "selectedMemberIds"], outputs: ["selectionChange", "fetchParamsChange"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe, "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
141
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AddCustomerToGroupDialogComponent, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
143
|
args: [{ selector: 'vdr-add-customer-to-group-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'customer.add-customers-to-group-with-name' | translate: {groupName: group.name} }}\r\n</ng-template>\r\n\r\n<vdr-customer-group-member-list\r\n [members]=\"customers$ | async\"\r\n [totalItems]=\"customersTotal$ | async\"\r\n [route]=\"route\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n>\r\n\r\n</vdr-customer-group-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]=\"!selectedCustomerIds.length\" class=\"btn btn-primary\">\r\n {{ 'customer.add-customers-to-group-with-count' | translate: {count: selectedCustomerIds.length} }}\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
|
|
@@ -159,7 +159,7 @@ class AddressDetailDialogComponent {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
AddressDetailDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AddressDetailDialogComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
-
AddressDetailDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AddressDetailDialogComponent, selector: "vdr-address-detail-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"addressForm.get('streetLine1')?.value as streetLine1\">{{ streetLine1 }},</span>\r\n <span *ngIf=\"addressForm.get('countryCode')?.value as countryCode\"> {{ countryCode }}</span>\r\n</ng-template>\r\n\r\n<vdr-address-form\r\n [formGroup]=\"addressForm\"\r\n [availableCountries]=\"availableCountries\"\r\n [customFields]=\"customFields\"\r\n></vdr-address-form>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"save()\"\r\n [disabled]=\"!addressForm.valid || !addressForm.touched\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: ["clr-input-container{margin-bottom:12px}\n"], components: [{ type: i1.AddressFormComponent, selector: "vdr-address-form", inputs: ["customFields", "formGroup", "availableCountries"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type:
|
|
162
|
+
AddressDetailDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AddressDetailDialogComponent, selector: "vdr-address-detail-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"addressForm.get('streetLine1')?.value as streetLine1\">{{ streetLine1 }},</span>\r\n <span *ngIf=\"addressForm.get('countryCode')?.value as countryCode\"> {{ countryCode }}</span>\r\n</ng-template>\r\n\r\n<vdr-address-form\r\n [formGroup]=\"addressForm\"\r\n [availableCountries]=\"availableCountries\"\r\n [customFields]=\"customFields\"\r\n></vdr-address-form>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"save()\"\r\n [disabled]=\"!addressForm.valid || !addressForm.touched\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: ["clr-input-container{margin-bottom:12px}\n"], components: [{ type: i1.AddressFormComponent, selector: "vdr-address-form", inputs: ["customFields", "formGroup", "availableCountries"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
163
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AddressDetailDialogComponent, decorators: [{
|
|
164
164
|
type: Component,
|
|
165
165
|
args: [{ selector: 'vdr-address-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"addressForm.get('streetLine1')?.value as streetLine1\">{{ streetLine1 }},</span>\r\n <span *ngIf=\"addressForm.get('countryCode')?.value as countryCode\"> {{ countryCode }}</span>\r\n</ng-template>\r\n\r\n<vdr-address-form\r\n [formGroup]=\"addressForm\"\r\n [availableCountries]=\"availableCountries\"\r\n [customFields]=\"customFields\"\r\n></vdr-address-form>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"save()\"\r\n [disabled]=\"!addressForm.valid || !addressForm.touched\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: ["clr-input-container{margin-bottom:12px}\n"] }]
|
|
@@ -229,7 +229,7 @@ class AddressCardComponent {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
AddressCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AddressCardComponent, deps: [{ token: i1.ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
232
|
-
AddressCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AddressCardComponent, selector: "vdr-address-card", inputs: { addressForm: "addressForm", customFields: "customFields", availableCountries: "availableCountries", isDefaultBilling: "isDefaultBilling", isDefaultShipping: "isDefaultShipping", editable: "editable" }, outputs: { setAsDefaultShipping: "setAsDefaultShipping", setAsDefaultBilling: "setAsDefaultBilling", deleteAddress: "deleteAddress" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"addressForm.value as address\">\r\n <div class=\"card-header\">\r\n <div class=\"address-title\">\r\n <span class=\"street-line\" *ngIf=\"address.streetLine1\">{{ address.streetLine1 }},</span>\r\n {{ address.countryCode }}\r\n </div>\r\n <div class=\"default-controls\">\r\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultShipping\">\r\n <clr-icon shape=\"truck\"></clr-icon>\r\n {{ 'customer.default-shipping-address' | translate }}\r\n </vdr-chip>\r\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultBilling\">\r\n <clr-icon shape=\"credit-card\"></clr-icon>\r\n {{ 'customer.default-billing-address' | translate }}\r\n </vdr-chip>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text\">\r\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <vdr-entity-info [entity]=\"address\"></vdr-entity-info>\r\n <ng-container *ngIf=\"editable\">\r\n <button class=\"btn btn-sm btn-link\" (click)=\"editAddress()\">\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-sm btn-link\" vdrDropdownTrigger>\r\n {{ 'common.more' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <button\r\n vdrDropdownItem\r\n class=\"button\"\r\n [disabled]=\"isDefaultShipping\"\r\n (click)=\"setAsDefaultShippingAddress()\"\r\n >\r\n {{ 'customer.set-as-default-shipping-address' | translate }}\r\n </button>\r\n <button\r\n vdrDropdownItem\r\n class=\"button\"\r\n [disabled]=\"isDefaultBilling\"\r\n (click)=\"setAsDefaultBillingAddress()\"\r\n >\r\n {{ 'customer.set-as-default-billing-address' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"delete()\"\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 </ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;max-width:360px}clr-input-container{margin-bottom:12px}.defaul-controls{display:flex}.is-default{margin:0;color:var(--color-success-500)}\n"], components: [{ type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.FormattedAddressComponent, selector: "vdr-formatted-address", inputs: ["address"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type:
|
|
232
|
+
AddressCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AddressCardComponent, selector: "vdr-address-card", inputs: { addressForm: "addressForm", customFields: "customFields", availableCountries: "availableCountries", isDefaultBilling: "isDefaultBilling", isDefaultShipping: "isDefaultShipping", editable: "editable" }, outputs: { setAsDefaultShipping: "setAsDefaultShipping", setAsDefaultBilling: "setAsDefaultBilling", deleteAddress: "deleteAddress" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"addressForm.value as address\">\r\n <div class=\"card-header\">\r\n <div class=\"address-title\">\r\n <span class=\"street-line\" *ngIf=\"address.streetLine1\">{{ address.streetLine1 }},</span>\r\n {{ address.countryCode }}\r\n </div>\r\n <div class=\"default-controls\">\r\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultShipping\">\r\n <clr-icon shape=\"truck\"></clr-icon>\r\n {{ 'customer.default-shipping-address' | translate }}\r\n </vdr-chip>\r\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultBilling\">\r\n <clr-icon shape=\"credit-card\"></clr-icon>\r\n {{ 'customer.default-billing-address' | translate }}\r\n </vdr-chip>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text\">\r\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <vdr-entity-info [entity]=\"address\"></vdr-entity-info>\r\n <ng-container *ngIf=\"editable\">\r\n <button class=\"btn btn-sm btn-link\" (click)=\"editAddress()\">\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-sm btn-link\" vdrDropdownTrigger>\r\n {{ 'common.more' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <button\r\n vdrDropdownItem\r\n class=\"button\"\r\n [disabled]=\"isDefaultShipping\"\r\n (click)=\"setAsDefaultShippingAddress()\"\r\n >\r\n {{ 'customer.set-as-default-shipping-address' | translate }}\r\n </button>\r\n <button\r\n vdrDropdownItem\r\n class=\"button\"\r\n [disabled]=\"isDefaultBilling\"\r\n (click)=\"setAsDefaultBillingAddress()\"\r\n >\r\n {{ 'customer.set-as-default-billing-address' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"delete()\"\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 </ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;max-width:360px}clr-input-container{margin-bottom:12px}.defaul-controls{display:flex}.is-default{margin:0;color:var(--color-success-500)}\n"], components: [{ type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.FormattedAddressComponent, selector: "vdr-formatted-address", inputs: ["address"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "translate": i4.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
233
233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AddressCardComponent, decorators: [{
|
|
234
234
|
type: Component,
|
|
235
235
|
args: [{ selector: 'vdr-address-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\" *ngIf=\"addressForm.value as address\">\r\n <div class=\"card-header\">\r\n <div class=\"address-title\">\r\n <span class=\"street-line\" *ngIf=\"address.streetLine1\">{{ address.streetLine1 }},</span>\r\n {{ address.countryCode }}\r\n </div>\r\n <div class=\"default-controls\">\r\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultShipping\">\r\n <clr-icon shape=\"truck\"></clr-icon>\r\n {{ 'customer.default-shipping-address' | translate }}\r\n </vdr-chip>\r\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultBilling\">\r\n <clr-icon shape=\"credit-card\"></clr-icon>\r\n {{ 'customer.default-billing-address' | translate }}\r\n </vdr-chip>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text\">\r\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <vdr-entity-info [entity]=\"address\"></vdr-entity-info>\r\n <ng-container *ngIf=\"editable\">\r\n <button class=\"btn btn-sm btn-link\" (click)=\"editAddress()\">\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-sm btn-link\" vdrDropdownTrigger>\r\n {{ 'common.more' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <button\r\n vdrDropdownItem\r\n class=\"button\"\r\n [disabled]=\"isDefaultShipping\"\r\n (click)=\"setAsDefaultShippingAddress()\"\r\n >\r\n {{ 'customer.set-as-default-shipping-address' | translate }}\r\n </button>\r\n <button\r\n vdrDropdownItem\r\n class=\"button\"\r\n [disabled]=\"isDefaultBilling\"\r\n (click)=\"setAsDefaultBillingAddress()\"\r\n >\r\n {{ 'customer.set-as-default-billing-address' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"delete()\"\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 </ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;max-width:360px}clr-input-container{margin-bottom:12px}.defaul-controls{display:flex}.is-default{margin:0;color:var(--color-success-500)}\n"] }]
|
|
@@ -271,7 +271,7 @@ class SelectCustomerGroupDialogComponent {
|
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
SelectCustomerGroupDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectCustomerGroupDialogComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
SelectCustomerGroupDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectCustomerGroupDialogComponent, selector: "vdr-select-customer-group-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n</ng-template>\r\n\r\n<ng-select\r\n [items]=\"groups$ | async\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n bindValue=\"id\"\r\n [(ngModel)]=\"selectedGroupIds\"\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)\"> \u00D7 </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]=\"!selectedGroupIds.length\" class=\"btn btn-primary\">\r\n {{ 'customer.add-customer-to-groups-with-count' | translate: {count: selectedGroupIds.length} }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i2$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2$1.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i2$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe, "async":
|
|
274
|
+
SelectCustomerGroupDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectCustomerGroupDialogComponent, selector: "vdr-select-customer-group-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n</ng-template>\r\n\r\n<ng-select\r\n [items]=\"groups$ | async\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n bindValue=\"id\"\r\n [(ngModel)]=\"selectedGroupIds\"\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)\"> \u00D7 </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]=\"!selectedGroupIds.length\" class=\"btn btn-primary\">\r\n {{ 'customer.add-customer-to-groups-with-count' | translate: {count: selectedGroupIds.length} }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i2$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2$1.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i2$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe, "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
275
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectCustomerGroupDialogComponent, decorators: [{
|
|
276
276
|
type: Component,
|
|
277
277
|
args: [{ selector: 'vdr-select-customer-group-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n</ng-template>\r\n\r\n<ng-select\r\n [items]=\"groups$ | async\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n bindValue=\"id\"\r\n [(ngModel)]=\"selectedGroupIds\"\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)\"> \u00D7 </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]=\"!selectedGroupIds.length\" class=\"btn btn-primary\">\r\n {{ 'customer.add-customer-to-groups-with-count' | translate: {count: selectedGroupIds.length} }}\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
|
|
@@ -280,7 +280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
280
280
|
class CustomerStatusLabelComponent {
|
|
281
281
|
}
|
|
282
282
|
CustomerStatusLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerStatusLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
283
|
-
CustomerStatusLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: { customer: "customer" }, ngImport: i0, template: "<vdr-chip *ngIf=\"customer.user?.id\">\r\n <ng-container *ngIf=\"customer.user?.verified\">\r\n <clr-icon shape=\"check-circle\" class=\"verified-user-icon\"></clr-icon>\r\n {{ 'customer.verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!customer.user?.verified\">\r\n <clr-icon shape=\"check-circle\" class=\"registered-user-icon\"></clr-icon>\r\n {{ 'customer.registered' | translate }}\r\n </ng-container>\r\n</vdr-chip>\r\n<vdr-chip *ngIf=\"!customer.user?.id\">{{ 'customer.guest' | translate }}</vdr-chip>\r\n", styles: [".registered-user-icon{color:var(--color-grey-300)}.verified-user-icon{color:var(--color-success-500)}\n"], components: [{ type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }], directives: [{ type:
|
|
283
|
+
CustomerStatusLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: { customer: "customer" }, ngImport: i0, template: "<vdr-chip *ngIf=\"customer.user?.id\">\r\n <ng-container *ngIf=\"customer.user?.verified\">\r\n <clr-icon shape=\"check-circle\" class=\"verified-user-icon\"></clr-icon>\r\n {{ 'customer.verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!customer.user?.verified\">\r\n <clr-icon shape=\"check-circle\" class=\"registered-user-icon\"></clr-icon>\r\n {{ 'customer.registered' | translate }}\r\n </ng-container>\r\n</vdr-chip>\r\n<vdr-chip *ngIf=\"!customer.user?.id\">{{ 'customer.guest' | translate }}</vdr-chip>\r\n", styles: [".registered-user-icon{color:var(--color-grey-300)}.verified-user-icon{color:var(--color-success-500)}\n"], components: [{ type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }], pipes: { "translate": i4.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
284
284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerStatusLabelComponent, decorators: [{
|
|
285
285
|
type: Component,
|
|
286
286
|
args: [{ selector: 'vdr-customer-status-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-chip *ngIf=\"customer.user?.id\">\r\n <ng-container *ngIf=\"customer.user?.verified\">\r\n <clr-icon shape=\"check-circle\" class=\"verified-user-icon\"></clr-icon>\r\n {{ 'customer.verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!customer.user?.verified\">\r\n <clr-icon shape=\"check-circle\" class=\"registered-user-icon\"></clr-icon>\r\n {{ 'customer.registered' | translate }}\r\n </ng-container>\r\n</vdr-chip>\r\n<vdr-chip *ngIf=\"!customer.user?.id\">{{ 'customer.guest' | translate }}</vdr-chip>\r\n", styles: [".registered-user-icon{color:var(--color-grey-300)}.verified-user-icon{color:var(--color-success-500)}\n"] }]
|
|
@@ -288,14 +288,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
288
288
|
type: Input
|
|
289
289
|
}] } });
|
|
290
290
|
|
|
291
|
+
class CustomerHistoryEntryHostComponent {
|
|
292
|
+
constructor(componentFactoryResolver, historyEntryComponentService) {
|
|
293
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
294
|
+
this.historyEntryComponentService = historyEntryComponentService;
|
|
295
|
+
this.expandClick = new EventEmitter();
|
|
296
|
+
}
|
|
297
|
+
ngOnInit() {
|
|
298
|
+
const componentType = this.historyEntryComponentService.getComponent(this.entry.type);
|
|
299
|
+
const factory = this.componentFactoryResolver.resolveComponentFactory(componentType);
|
|
300
|
+
const componentRef = this.portalRef.createComponent(factory);
|
|
301
|
+
componentRef.instance.entry = this.entry;
|
|
302
|
+
componentRef.instance.customer = this.customer;
|
|
303
|
+
this.instance = componentRef.instance;
|
|
304
|
+
this.componentRef = componentRef;
|
|
305
|
+
}
|
|
306
|
+
ngOnDestroy() {
|
|
307
|
+
var _a;
|
|
308
|
+
(_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
CustomerHistoryEntryHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerHistoryEntryHostComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
+
CustomerHistoryEntryHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerHistoryEntryHostComponent, selector: "vdr-customer-history-entry-host", inputs: { entry: "entry", customer: "customer", expanded: "expanded" }, outputs: { expandClick: "expandClick" }, viewQueries: [{ propertyName: "portalRef", first: true, predicate: ["portal"], descendants: true, read: ViewContainerRef, static: true }], exportAs: ["historyEntry"], ngImport: i0, template: ` <vdr-timeline-entry
|
|
313
|
+
[displayType]="instance.getDisplayType(entry)"
|
|
314
|
+
[iconShape]="instance.getIconShape && instance.getIconShape(entry)"
|
|
315
|
+
[createdAt]="entry.createdAt"
|
|
316
|
+
[name]="instance.getName && instance.getName(entry)"
|
|
317
|
+
[featured]="instance.isFeatured(entry)"
|
|
318
|
+
[collapsed]="!expanded && !instance.isFeatured(entry)"
|
|
319
|
+
(expandClick)="expandClick.emit()"
|
|
320
|
+
>
|
|
321
|
+
<div #portal></div>
|
|
322
|
+
</vdr-timeline-entry>`, isInline: true, components: [{ type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isLast", "collapsed"], outputs: ["expandClick"] }] });
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerHistoryEntryHostComponent, decorators: [{
|
|
324
|
+
type: Component,
|
|
325
|
+
args: [{
|
|
326
|
+
selector: 'vdr-customer-history-entry-host',
|
|
327
|
+
template: ` <vdr-timeline-entry
|
|
328
|
+
[displayType]="instance.getDisplayType(entry)"
|
|
329
|
+
[iconShape]="instance.getIconShape && instance.getIconShape(entry)"
|
|
330
|
+
[createdAt]="entry.createdAt"
|
|
331
|
+
[name]="instance.getName && instance.getName(entry)"
|
|
332
|
+
[featured]="instance.isFeatured(entry)"
|
|
333
|
+
[collapsed]="!expanded && !instance.isFeatured(entry)"
|
|
334
|
+
(expandClick)="expandClick.emit()"
|
|
335
|
+
>
|
|
336
|
+
<div #portal></div>
|
|
337
|
+
</vdr-timeline-entry>`,
|
|
338
|
+
exportAs: 'historyEntry',
|
|
339
|
+
}]
|
|
340
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.HistoryEntryComponentService }]; }, propDecorators: { entry: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], customer: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], expanded: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], expandClick: [{
|
|
347
|
+
type: Output
|
|
348
|
+
}], portalRef: [{
|
|
349
|
+
type: ViewChild,
|
|
350
|
+
args: ['portal', { static: true, read: ViewContainerRef }]
|
|
351
|
+
}] } });
|
|
352
|
+
|
|
291
353
|
class CustomerHistoryComponent {
|
|
292
|
-
constructor() {
|
|
354
|
+
constructor(historyEntryComponentService) {
|
|
355
|
+
this.historyEntryComponentService = historyEntryComponentService;
|
|
293
356
|
this.addNote = new EventEmitter();
|
|
294
357
|
this.updateNote = new EventEmitter();
|
|
295
358
|
this.deleteNote = new EventEmitter();
|
|
296
359
|
this.note = '';
|
|
360
|
+
this.expanded = false;
|
|
297
361
|
this.type = HistoryEntryType;
|
|
298
362
|
}
|
|
363
|
+
hasCustomComponent(type) {
|
|
364
|
+
return !!this.historyEntryComponentService.getComponent(type);
|
|
365
|
+
}
|
|
299
366
|
getDisplayType(entry) {
|
|
300
367
|
switch (entry.type) {
|
|
301
368
|
case HistoryEntryType.CUSTOMER_VERIFIED:
|
|
@@ -346,12 +413,12 @@ class CustomerHistoryComponent {
|
|
|
346
413
|
this.note = '';
|
|
347
414
|
}
|
|
348
415
|
}
|
|
349
|
-
CustomerHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
350
|
-
CustomerHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: { customer: "customer", history: "history" }, outputs: { addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote" }, ngImport: i0, template: "<h4>{{ 'customer.customer-history' | translate }}</h4>\r\n<div class=\"entry-list\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\r\n {{ 'order.add-note' | translate }}\r\n </button>\r\n </div>\r\n </vdr-timeline-entry>\r\n <vdr-timeline-entry\r\n *ngFor=\"let entry of history\"\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-registered' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-verified' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-detail-updated' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\r\n {{\r\n 'customer.history-customer-added-to-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\r\n {{\r\n 'customer.history-customer-removed-from-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\r\n {{ 'customer.history-customer-address-created' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\r\n {{ 'customer.history-customer-address-updated' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\r\n {{ 'customer.history-customer-address-deleted' | translate }}\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\r\n {{ 'customer.history-customer-password-updated' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\r\n {{ 'customer.history-customer-password-reset-requested' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\r\n {{ 'customer.history-customer-password-reset-verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-requested' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-verified' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></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)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | 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 </div>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\r\n</div>\r\n", styles: [".entry-list{margin-top:24px;margin-left:24px;margin-right:12px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-right:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"], components: [{ type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isLast", "collapsed"], outputs: ["expandClick"] }, { type: i1.HistoryEntryDetailComponent, selector: "vdr-history-entry-detail" }, { type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i3$2.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "translate": i4.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
416
|
+
CustomerHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerHistoryComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
417
|
+
CustomerHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: { customer: "customer", history: "history" }, outputs: { addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote" }, ngImport: i0, template: "<h4>{{ 'customer.customer-history' | translate }}</h4>\r\n<div class=\"entry-list\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\r\n {{ 'order.add-note' | translate }}\r\n </button>\r\n </div>\r\n </vdr-timeline-entry>\r\n <ng-container *ngFor=\"let entry of history\">\r\n <vdr-customer-history-entry-host\r\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\r\n [customer]=\"customer\"\r\n [entry]=\"entry\"\r\n [expanded]=\"expanded\"\r\n (expandClick)=\"expanded = !expanded\"\r\n ></vdr-customer-history-entry-host>\r\n <ng-template #defaultComponents>\r\n <vdr-timeline-entry\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-registered' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-verified' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-detail-updated' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\r\n {{\r\n 'customer.history-customer-added-to-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\r\n {{\r\n 'customer.history-customer-removed-from-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\r\n {{ 'customer.history-customer-address-created' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\r\n {{ 'customer.history-customer-address-updated' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\r\n {{ 'customer.history-customer-address-deleted' | translate }}\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\r\n {{ 'customer.history-customer-password-updated' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\r\n {{ 'customer.history-customer-password-reset-requested' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\r\n {{ 'customer.history-customer-password-reset-verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-requested' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-verified' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></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)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | 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 </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"title\">\r\n {{ entry.type | translate }}\r\n </div>\r\n <vdr-history-entry-detail *ngIf=\"entry.data\">\r\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n </ng-template>\r\n </ng-container>\r\n <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\r\n</div>\r\n", styles: [".entry-list{margin-top:24px;margin-left:24px;margin-right:12px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-right:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"], components: [{ type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isLast", "collapsed"], outputs: ["expandClick"] }, { type: CustomerHistoryEntryHostComponent, selector: "vdr-customer-history-entry-host", inputs: ["entry", "customer", "expanded"], outputs: ["expandClick"], exportAs: ["historyEntry"] }, { type: i1.HistoryEntryDetailComponent, selector: "vdr-history-entry-detail" }, { type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { type: i4$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": i4.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
351
418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerHistoryComponent, decorators: [{
|
|
352
419
|
type: Component,
|
|
353
|
-
args: [{ selector: 'vdr-customer-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h4>{{ 'customer.customer-history' | translate }}</h4>\r\n<div class=\"entry-list\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\r\n {{ 'order.add-note' | translate }}\r\n </button>\r\n </div>\r\n </vdr-timeline-entry>\r\n <vdr-timeline-entry\r\n *ngFor=\"let entry of history\"\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-registered' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-verified' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-detail-updated' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\r\n {{\r\n 'customer.history-customer-added-to-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\r\n {{\r\n 'customer.history-customer-removed-from-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\r\n {{ 'customer.history-customer-address-created' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\r\n {{ 'customer.history-customer-address-updated' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\r\n {{ 'customer.history-customer-address-deleted' | translate }}\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\r\n {{ 'customer.history-customer-password-updated' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\r\n {{ 'customer.history-customer-password-reset-requested' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\r\n {{ 'customer.history-customer-password-reset-verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-requested' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-verified' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></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)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | 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 </div>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\r\n</div>\r\n", styles: [".entry-list{margin-top:24px;margin-left:24px;margin-right:12px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-right:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"] }]
|
|
354
|
-
}], propDecorators: { customer: [{
|
|
420
|
+
args: [{ selector: 'vdr-customer-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h4>{{ 'customer.customer-history' | translate }}</h4>\r\n<div class=\"entry-list\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\r\n {{ 'order.add-note' | translate }}\r\n </button>\r\n </div>\r\n </vdr-timeline-entry>\r\n <ng-container *ngFor=\"let entry of history\">\r\n <vdr-customer-history-entry-host\r\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\r\n [customer]=\"customer\"\r\n [entry]=\"entry\"\r\n [expanded]=\"expanded\"\r\n (expandClick)=\"expanded = !expanded\"\r\n ></vdr-customer-history-entry-host>\r\n <ng-template #defaultComponents>\r\n <vdr-timeline-entry\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-registered' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\r\n <div class=\"title\">\r\n {{ 'customer.history-customer-verified' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\r\n {{ 'customer.history-using-native-auth-strategy' | translate }}\r\n </ng-container>\r\n <ng-template #namedStrategy>\r\n {{\r\n 'customer.history-using-external-auth-strategy'\r\n | translate: { strategy: entry.data.strategy }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-detail-updated' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\r\n {{\r\n 'customer.history-customer-added-to-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\r\n {{\r\n 'customer.history-customer-removed-from-group'\r\n | translate: { groupName: entry.data.groupName }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\r\n {{ 'customer.history-customer-address-created' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\r\n {{ 'customer.history-customer-address-updated' | translate }}\r\n <div class=\"flex\">\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n <vdr-history-entry-detail>\r\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\r\n {{ 'customer.history-customer-address-deleted' | translate }}\r\n <div class=\"address-string\">{{ entry.data.address }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\r\n {{ 'customer.history-customer-password-updated' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\r\n {{ 'customer.history-customer-password-reset-requested' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\r\n {{ 'customer.history-customer-password-reset-verified' | translate }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-requested' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\r\n <div class=\"flex\">\r\n {{ 'customer.history-customer-email-update-verified' | translate }}\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\r\n entry.data.oldEmailAddress\r\n }}</vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\r\n entry.data.newEmailAddress\r\n }}</vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></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)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateCustomer' | 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 </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"title\">\r\n {{ entry.type | translate }}\r\n </div>\r\n <vdr-history-entry-detail *ngIf=\"entry.data\">\r\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n </ng-template>\r\n </ng-container>\r\n <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\r\n</div>\r\n", styles: [".entry-list{margin-top:24px;margin-left:24px;margin-right:12px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-right:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"] }]
|
|
421
|
+
}], ctorParameters: function () { return [{ type: i1.HistoryEntryComponentService }]; }, propDecorators: { customer: [{
|
|
355
422
|
type: Input
|
|
356
423
|
}], history: [{
|
|
357
424
|
type: Input
|
|
@@ -744,13 +811,14 @@ class CustomerDetailComponent extends BaseDetailComponent {
|
|
|
744
811
|
.getCustomer(this.id, {
|
|
745
812
|
take: this.ordersPerPage,
|
|
746
813
|
skip: (this.currentOrdersPage - 1) * this.ordersPerPage,
|
|
814
|
+
sort: { orderPlacedAt: SortOrder.DESC },
|
|
747
815
|
})
|
|
748
816
|
.single$.pipe(map(data => data.customer), filter(notNullOrUndefined))
|
|
749
817
|
.subscribe(result => this.orderListUpdates$.next(result));
|
|
750
818
|
}
|
|
751
819
|
}
|
|
752
820
|
CustomerDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerDetailComponent, deps: [{ token: i2.ActivatedRoute }, { token: i2.Router }, { token: i1.ServerConfigService }, { token: i0.ChangeDetectorRef }, { token: i3.FormBuilder }, { token: i1.DataService }, { token: i1.ModalService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
753
|
-
CustomerDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerDetailComponent, selector: "vdr-customer-detail", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-customer-status-label [customer]=\"entity$ | async\"></vdr-customer-status-label>\r\n <div\r\n class=\"last-login\"\r\n *ngIf=\"(entity$ | async)?.user?.lastLogin as lastLogin\"\r\n [title]=\"lastLogin | localeDate: 'medium'\"\r\n >\r\n {{ 'customer.last-login' | translate }}: {{ lastLogin | timeAgo }}\r\n </div>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-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]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"'UpdateCustomer'\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\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.get('customer')\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\" [readOnlyToggle]=\"!(isNew$ | async)\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.first-name' | translate\"\r\n for=\"firstName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.last-name' | translate\"\r\n for=\"lastName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.email-address' | translate\"\r\n for=\"emailAddress\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.phone-number' | translate\"\r\n for=\"phoneNumber\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.password' | translate\" for=\"password\" *ngIf=\"isNew$ | async\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\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 <vdr-tabbed-custom-fields\r\n entityName=\"Customer\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get(['customer', 'customFields'])\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"customer-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n\r\n<div class=\"groups\" *ngIf=\"(entity$ | async)?.groups as groups\">\r\n <label class=\"clr-control-label\">{{ 'customer.customer-groups' | translate }}</label>\r\n <ng-container *ngIf=\"groups.length; else noGroups\">\r\n <vdr-chip\r\n *ngFor=\"let group of groups\"\r\n [colorFrom]=\"group.id\"\r\n icon=\"times\"\r\n (iconClick)=\"removeFromGroup(group)\"\r\n >{{ group.name }}</vdr-chip\r\n >\r\n </ng-container>\r\n <ng-template #noGroups>\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"addToGroup()\"\r\n *vdrIfPermissions=\"'UpdateCustomerGroup'\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-4\">\r\n <h3>{{ 'customer.addresses' | translate }}</h3>\r\n <vdr-address-card\r\n *ngFor=\"let addressForm of getAddressFormControls()\"\r\n [class.to-delete]=\"addressesToDeleteIds.has(addressForm.value.id)\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\r\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\r\n [addressForm]=\"addressForm\"\r\n [customFields]=\"addressCustomFields\"\r\n [editable]=\"(['UpdateCustomer'] | hasPermission) && !addressesToDeleteIds.has(addressForm.value.id)\"\r\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\r\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\r\n (deleteAddress)=\"toggleDeleteAddress($event)\"\r\n ></vdr-address-card>\r\n <button class=\"btn btn-secondary\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"clr-col-md-8\">\r\n <h3>{{ 'customer.orders' | translate }}</h3>\r\n <vdr-data-table\r\n [items]=\"orders$ | async\"\r\n [itemsPerPage]=\"ordersPerPage\"\r\n [totalItems]=\"ordersCount$ | async\"\r\n [currentPage]=\"currentOrdersPage\"\r\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\r\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\r\n (pageChange)=\"setOrderCurrentPage($event)\"\r\n >\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left\">{{ order.code }}</td>\r\n <td class=\"left\">{{ order.state }}</td>\r\n <td class=\"left\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left\">{{ order.updatedAt | localeDate: 'medium' }}</td>\r\n <td class=\"right\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"['/orders/', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n </vdr-data-table>\r\n </div>\r\n</div>\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-6\">\r\n <vdr-customer-history\r\n [customer]=\"entity$ | async\"\r\n [history]=\"history$ | async\"\r\n (addNote)=\"addNoteToCustomer($event)\"\r\n (updateNote)=\"updateNote($event)\"\r\n (deleteNote)=\"deleteNote($event)\"\r\n ></vdr-customer-history>\r\n </div>\r\n</div>\r\n", styles: [".last-login{margin-left:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { type: i1.CustomDetailComponentHostComponent, selector: "vdr-custom-detail-component-host", inputs: ["locationId", "entity$", "detailForm"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: AddressCardComponent, selector: "vdr-address-card", inputs: ["addressForm", "customFields", "availableCountries", "isDefaultBilling", "isDefaultShipping", "editable"], outputs: ["setAsDefaultShipping", "setAsDefaultBilling", "deleteAddress"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: i1.TableRowActionComponent, selector: "vdr-table-row-action", inputs: ["linkTo", "label", "iconShape", "disabled"] }, { type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: ["customer", "history"], outputs: ["addNote", "updateNote", "deleteNote"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i3$2.ClrLabel, selector: "label", inputs: ["for"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$2.ClrIconCustomTag, selector: "clr-icon" }], pipes: { "async": i3$1.AsyncPipe, "localeDate": i1.LocaleDatePipe, "translate": i4.TranslatePipe, "timeAgo": i1.TimeAgoPipe, "hasPermission": i1.HasPermissionPipe, "localeCurrency": i1.LocaleCurrencyPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
821
|
+
CustomerDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerDetailComponent, selector: "vdr-customer-detail", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-customer-status-label [customer]=\"entity$ | async\"></vdr-customer-status-label>\r\n <div\r\n class=\"last-login\"\r\n *ngIf=\"(entity$ | async)?.user?.lastLogin as lastLogin\"\r\n [title]=\"lastLogin | localeDate: 'medium'\"\r\n >\r\n {{ 'customer.last-login' | translate }}: {{ lastLogin | timeAgo }}\r\n </div>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-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]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"'UpdateCustomer'\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\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.get('customer')\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\" [readOnlyToggle]=\"!(isNew$ | async)\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.first-name' | translate\"\r\n for=\"firstName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.last-name' | translate\"\r\n for=\"lastName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.email-address' | translate\"\r\n for=\"emailAddress\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.phone-number' | translate\"\r\n for=\"phoneNumber\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.password' | translate\" for=\"password\" *ngIf=\"isNew$ | async\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\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 <vdr-tabbed-custom-fields\r\n entityName=\"Customer\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get(['customer', 'customFields'])\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"customer-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n\r\n<div class=\"groups\" *ngIf=\"(entity$ | async)?.groups as groups\">\r\n <label class=\"clr-control-label\">{{ 'customer.customer-groups' | translate }}</label>\r\n <ng-container *ngIf=\"groups.length; else noGroups\">\r\n <vdr-chip\r\n *ngFor=\"let group of groups\"\r\n [colorFrom]=\"group.id\"\r\n icon=\"times\"\r\n (iconClick)=\"removeFromGroup(group)\"\r\n >{{ group.name }}</vdr-chip\r\n >\r\n </ng-container>\r\n <ng-template #noGroups>\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"addToGroup()\"\r\n *vdrIfPermissions=\"'UpdateCustomerGroup'\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-4\">\r\n <h3>{{ 'customer.addresses' | translate }}</h3>\r\n <vdr-address-card\r\n *ngFor=\"let addressForm of getAddressFormControls()\"\r\n [class.to-delete]=\"addressesToDeleteIds.has(addressForm.value.id)\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\r\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\r\n [addressForm]=\"addressForm\"\r\n [customFields]=\"addressCustomFields\"\r\n [editable]=\"(['UpdateCustomer'] | hasPermission) && !addressesToDeleteIds.has(addressForm.value.id)\"\r\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\r\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\r\n (deleteAddress)=\"toggleDeleteAddress($event)\"\r\n ></vdr-address-card>\r\n <button class=\"btn btn-secondary\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"clr-col-md-8\">\r\n <h3>{{ 'customer.orders' | translate }}</h3>\r\n <vdr-data-table\r\n [items]=\"orders$ | async\"\r\n [itemsPerPage]=\"ordersPerPage\"\r\n [totalItems]=\"ordersCount$ | async\"\r\n [currentPage]=\"currentOrdersPage\"\r\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\r\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\r\n (pageChange)=\"setOrderCurrentPage($event)\"\r\n >\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left\">{{ order.code }}</td>\r\n <td class=\"left\">{{ order.state }}</td>\r\n <td class=\"left\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left\">{{ order.updatedAt | localeDate: 'medium' }}</td>\r\n <td class=\"right\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"['/orders/', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n </vdr-data-table>\r\n </div>\r\n</div>\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-6\">\r\n <vdr-customer-history\r\n [customer]=\"entity$ | async\"\r\n [history]=\"history$ | async\"\r\n (addNote)=\"addNoteToCustomer($event)\"\r\n (updateNote)=\"updateNote($event)\"\r\n (deleteNote)=\"deleteNote($event)\"\r\n ></vdr-customer-history>\r\n </div>\r\n</div>\r\n", styles: [".last-login{margin-left:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { type: i1.CustomDetailComponentHostComponent, selector: "vdr-custom-detail-component-host", inputs: ["locationId", "entity$", "detailForm"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: AddressCardComponent, selector: "vdr-address-card", inputs: ["addressForm", "customFields", "availableCountries", "isDefaultBilling", "isDefaultShipping", "editable"], outputs: ["setAsDefaultShipping", "setAsDefaultBilling", "deleteAddress"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: i1.TableRowActionComponent, selector: "vdr-table-row-action", inputs: ["linkTo", "label", "iconShape", "disabled"] }, { type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: ["customer", "history"], outputs: ["addNote", "updateNote", "deleteNote"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i5.ClrLabel, selector: "label", inputs: ["for"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }], pipes: { "async": i4$1.AsyncPipe, "localeDate": i1.LocaleDatePipe, "translate": i4.TranslatePipe, "timeAgo": i1.TimeAgoPipe, "hasPermission": i1.HasPermissionPipe, "localeCurrency": i1.LocaleCurrencyPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
754
822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerDetailComponent, decorators: [{
|
|
755
823
|
type: Component,
|
|
756
824
|
args: [{ selector: 'vdr-customer-detail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-customer-status-label [customer]=\"entity$ | async\"></vdr-customer-status-label>\r\n <div\r\n class=\"last-login\"\r\n *ngIf=\"(entity$ | async)?.user?.lastLogin as lastLogin\"\r\n [title]=\"lastLogin | localeDate: 'medium'\"\r\n >\r\n {{ 'customer.last-login' | translate }}: {{ lastLogin | timeAgo }}\r\n </div>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-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]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"'UpdateCustomer'\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\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.get('customer')\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\" [readOnlyToggle]=\"!(isNew$ | async)\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.first-name' | translate\"\r\n for=\"firstName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.last-name' | translate\"\r\n for=\"lastName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.email-address' | translate\"\r\n for=\"emailAddress\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.phone-number' | translate\"\r\n for=\"phoneNumber\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.password' | translate\" for=\"password\" *ngIf=\"isNew$ | async\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\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 <vdr-tabbed-custom-fields\r\n entityName=\"Customer\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get(['customer', 'customFields'])\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"customer-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n\r\n<div class=\"groups\" *ngIf=\"(entity$ | async)?.groups as groups\">\r\n <label class=\"clr-control-label\">{{ 'customer.customer-groups' | translate }}</label>\r\n <ng-container *ngIf=\"groups.length; else noGroups\">\r\n <vdr-chip\r\n *ngFor=\"let group of groups\"\r\n [colorFrom]=\"group.id\"\r\n icon=\"times\"\r\n (iconClick)=\"removeFromGroup(group)\"\r\n >{{ group.name }}</vdr-chip\r\n >\r\n </ng-container>\r\n <ng-template #noGroups>\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"addToGroup()\"\r\n *vdrIfPermissions=\"'UpdateCustomerGroup'\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-4\">\r\n <h3>{{ 'customer.addresses' | translate }}</h3>\r\n <vdr-address-card\r\n *ngFor=\"let addressForm of getAddressFormControls()\"\r\n [class.to-delete]=\"addressesToDeleteIds.has(addressForm.value.id)\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\r\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\r\n [addressForm]=\"addressForm\"\r\n [customFields]=\"addressCustomFields\"\r\n [editable]=\"(['UpdateCustomer'] | hasPermission) && !addressesToDeleteIds.has(addressForm.value.id)\"\r\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\r\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\r\n (deleteAddress)=\"toggleDeleteAddress($event)\"\r\n ></vdr-address-card>\r\n <button class=\"btn btn-secondary\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"clr-col-md-8\">\r\n <h3>{{ 'customer.orders' | translate }}</h3>\r\n <vdr-data-table\r\n [items]=\"orders$ | async\"\r\n [itemsPerPage]=\"ordersPerPage\"\r\n [totalItems]=\"ordersCount$ | async\"\r\n [currentPage]=\"currentOrdersPage\"\r\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\r\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\r\n (pageChange)=\"setOrderCurrentPage($event)\"\r\n >\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left\">{{ order.code }}</td>\r\n <td class=\"left\">{{ order.state }}</td>\r\n <td class=\"left\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left\">{{ order.updatedAt | localeDate: 'medium' }}</td>\r\n <td class=\"right\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"['/orders/', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n </vdr-data-table>\r\n </div>\r\n</div>\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-6\">\r\n <vdr-customer-history\r\n [customer]=\"entity$ | async\"\r\n [history]=\"history$ | async\"\r\n (addNote)=\"addNoteToCustomer($event)\"\r\n (updateNote)=\"updateNote($event)\"\r\n (deleteNote)=\"deleteNote($event)\"\r\n ></vdr-customer-history>\r\n </div>\r\n</div>\r\n", styles: [".last-login{margin-left:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"] }]
|
|
@@ -788,7 +856,7 @@ class CustomerGroupDetailDialogComponent {
|
|
|
788
856
|
}
|
|
789
857
|
}
|
|
790
858
|
CustomerGroupDetailDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerGroupDetailDialogComponent, deps: [{ token: i1.ServerConfigService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
791
|
-
CustomerGroupDetailDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerGroupDetailDialogComponent, selector: "vdr-customer-group-detail-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n</ng-template>\r\n<form [formGroup]=\"form\">\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]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"CustomerGroup\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"form.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\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]=\"!form.valid\" class=\"btn btn-primary\">\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type:
|
|
859
|
+
CustomerGroupDetailDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerGroupDetailDialogComponent, selector: "vdr-customer-group-detail-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n</ng-template>\r\n<form [formGroup]=\"form\">\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]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"CustomerGroup\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"form.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\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]=\"!form.valid\" class=\"btn btn-primary\">\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i5.ClrLabel, selector: "label", inputs: ["for"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
792
860
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerGroupDetailDialogComponent, decorators: [{
|
|
793
861
|
type: Component,
|
|
794
862
|
args: [{ selector: 'vdr-customer-group-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n</ng-template>\r\n<form [formGroup]=\"form\">\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]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"CustomerGroup\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"form.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\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]=\"!form.valid\" class=\"btn btn-primary\">\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
|
|
@@ -968,7 +1036,7 @@ class CustomerGroupListComponent extends BaseListComponent {
|
|
|
968
1036
|
}
|
|
969
1037
|
}
|
|
970
1038
|
CustomerGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerGroupListComponent, deps: [{ token: i1.DataService }, { token: i1.NotificationService }, { token: i1.ModalService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
971
|
-
CustomerGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerGroupListComponent, selector: "vdr-customer-group-list", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-by-group-name' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <div class=\"group-list\">\r\n <vdr-data-table\r\n [class.expanded]=\"activeGroup$ | async\"\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 <ng-template let-group=\"item\">\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-entity-info [entity]=\"group\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-chip [colorFrom]=\"group.id\">{{ group.name }}</vdr-chip>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"right align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(group)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td [class.active]=\"group.id === activeGroupId\" 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(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | 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 </div>\r\n <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">{{ activeGroup.name }} ({{ membersTotal$ | async }})</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]=\"selectedCustomerIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate: { count: selectedCustomerIds.length } }}\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)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\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 .active{background-color:var(--clr-global-selection-color)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}vdr-data-table ::ng-deep table{margin-top:0}.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}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { type: i1.EmptyPlaceholderComponent, selector: "vdr-empty-placeholder", inputs: ["emptyStateLabel"] }, { type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["members", "totalItems", "route", "selectedMemberIds"], outputs: ["selectionChange", "fetchParamsChange"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i3$2.ClrIconCustomTag, selector: "clr-icon" }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i4.TranslatePipe, "async": i3$1.AsyncPipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1039
|
+
CustomerGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerGroupListComponent, selector: "vdr-customer-group-list", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-by-group-name' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <div class=\"group-list\">\r\n <vdr-data-table\r\n [class.expanded]=\"activeGroup$ | async\"\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 <ng-template let-group=\"item\">\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-entity-info [entity]=\"group\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-chip [colorFrom]=\"group.id\">{{ group.name }}</vdr-chip>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"right align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(group)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td [class.active]=\"group.id === activeGroupId\" 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(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | 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 </div>\r\n <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">{{ activeGroup.name }} ({{ membersTotal$ | async }})</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]=\"selectedCustomerIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate: { count: selectedCustomerIds.length } }}\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)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\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 .active{background-color:var(--clr-global-selection-color)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}vdr-data-table ::ng-deep table{margin-top:0}.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}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { type: i1.EmptyPlaceholderComponent, selector: "vdr-empty-placeholder", inputs: ["emptyStateLabel"] }, { type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["members", "totalItems", "route", "selectedMemberIds"], outputs: ["selectionChange", "fetchParamsChange"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i4.TranslatePipe, "async": i4$1.AsyncPipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
972
1040
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerGroupListComponent, decorators: [{
|
|
973
1041
|
type: Component,
|
|
974
1042
|
args: [{ selector: 'vdr-customer-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-by-group-name' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <div class=\"group-list\">\r\n <vdr-data-table\r\n [class.expanded]=\"activeGroup$ | async\"\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 <ng-template let-group=\"item\">\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-entity-info [entity]=\"group\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-chip [colorFrom]=\"group.id\">{{ group.name }}</vdr-chip>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"right align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(group)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td [class.active]=\"group.id === activeGroupId\" 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(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | 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 </div>\r\n <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">{{ activeGroup.name }} ({{ membersTotal$ | async }})</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]=\"selectedCustomerIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate: { count: selectedCustomerIds.length } }}\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)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\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 .active{background-color:var(--clr-global-selection-color)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}vdr-data-table ::ng-deep table{margin-top:0}.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}\n"] }]
|
|
@@ -1033,7 +1101,7 @@ class CustomerListComponent extends BaseListComponent {
|
|
|
1033
1101
|
}
|
|
1034
1102
|
}
|
|
1035
1103
|
CustomerListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerListComponent, deps: [{ token: i1.DataService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i1.ModalService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1036
|
-
CustomerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerListComponent, selector: "vdr-customer-list", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer' | 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 [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>{{ 'customer.customer-type' | 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-customer=\"item\">\r\n <td class=\"left align-middle\">\r\n {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }}\r\n </td>\r\n <td class=\"left align-middle\">{{ customer.emailAddress }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\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]=\"['./', customer.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)=\"deleteCustomer(customer)\"\r\n [disabled]=\"!('DeleteCustomer' | 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: [".search-input{margin-top:6px;min-width:300px}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { type: i1.TableRowActionComponent, selector: "vdr-table-row-action", inputs: ["linkTo", "label", "iconShape", "disabled"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type:
|
|
1104
|
+
CustomerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CustomerListComponent, selector: "vdr-customer-list", usesInheritance: true, ngImport: i0, template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer' | 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 [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>{{ 'customer.customer-type' | 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-customer=\"item\">\r\n <td class=\"left align-middle\">\r\n {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }}\r\n </td>\r\n <td class=\"left align-middle\">{{ customer.emailAddress }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\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]=\"['./', customer.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)=\"deleteCustomer(customer)\"\r\n [disabled]=\"!('DeleteCustomer' | 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: [".search-input{margin-top:6px;min-width:300px}\n"], components: [{ type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { type: i1.DataTableComponent, selector: "vdr-data-table", inputs: ["items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "selectionManager", "allSelected", "isRowSelectedFn"], outputs: ["pageChange", "itemsPerPageChange", "allSelectChange", "rowSelectChange"] }, { type: i1.DataTableColumnComponent, selector: "vdr-dt-column", inputs: ["expand"] }, { type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { type: i1.TableRowActionComponent, selector: "vdr-table-row-action", inputs: ["linkTo", "label", "iconShape", "disabled"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "translate": i4.TranslatePipe, "async": i4$1.AsyncPipe, "hasPermission": i1.HasPermissionPipe } });
|
|
1037
1105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerListComponent, decorators: [{
|
|
1038
1106
|
type: Component,
|
|
1039
1107
|
args: [{ selector: 'vdr-customer-list', template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n class=\"search-input\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer' | 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 [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>{{ 'customer.customer-type' | 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-customer=\"item\">\r\n <td class=\"left align-middle\">\r\n {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }}\r\n </td>\r\n <td class=\"left align-middle\">{{ customer.emailAddress }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\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]=\"['./', customer.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)=\"deleteCustomer(customer)\"\r\n [disabled]=\"!('DeleteCustomer' | 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: [".search-input{margin-top:6px;min-width:300px}\n"] }]
|
|
@@ -1053,7 +1121,9 @@ class CustomerResolver extends BaseEntityResolver {
|
|
|
1053
1121
|
phoneNumber: null,
|
|
1054
1122
|
addresses: null,
|
|
1055
1123
|
user: null,
|
|
1056
|
-
}, id => dataService.customer
|
|
1124
|
+
}, id => dataService.customer
|
|
1125
|
+
.getCustomer(id, { take: 10, sort: { orderPlacedAt: SortOrder.DESC } })
|
|
1126
|
+
.mapStream(data => data.customer));
|
|
1057
1127
|
}
|
|
1058
1128
|
}
|
|
1059
1129
|
CustomerResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerResolver, deps: [{ token: i2.Router }, { token: i1.DataService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -1114,7 +1184,8 @@ CustomerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
1114
1184
|
CustomerGroupMemberListComponent,
|
|
1115
1185
|
SelectCustomerGroupDialogComponent,
|
|
1116
1186
|
CustomerHistoryComponent,
|
|
1117
|
-
AddressDetailDialogComponent
|
|
1187
|
+
AddressDetailDialogComponent,
|
|
1188
|
+
CustomerHistoryEntryHostComponent], imports: [SharedModule, i2.RouterModule], exports: [AddressCardComponent] });
|
|
1118
1189
|
CustomerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerModule, imports: [[SharedModule, RouterModule.forChild(customerRoutes)]] });
|
|
1119
1190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CustomerModule, decorators: [{
|
|
1120
1191
|
type: NgModule,
|
|
@@ -1132,6 +1203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
1132
1203
|
SelectCustomerGroupDialogComponent,
|
|
1133
1204
|
CustomerHistoryComponent,
|
|
1134
1205
|
AddressDetailDialogComponent,
|
|
1206
|
+
CustomerHistoryEntryHostComponent,
|
|
1135
1207
|
],
|
|
1136
1208
|
exports: [AddressCardComponent],
|
|
1137
1209
|
}]
|
|
@@ -1143,5 +1215,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
1143
1215
|
* Generated bundle index. Do not edit.
|
|
1144
1216
|
*/
|
|
1145
1217
|
|
|
1146
|
-
export { AddCustomerToGroupDialogComponent, AddressCardComponent, AddressDetailDialogComponent, CustomerDetailComponent, CustomerGroupDetailDialogComponent, CustomerGroupListComponent, CustomerGroupMemberListComponent, CustomerHistoryComponent, CustomerListComponent, CustomerModule, CustomerResolver, CustomerStatusLabelComponent, SelectCustomerGroupDialogComponent, customerBreadcrumb, customerRoutes };
|
|
1218
|
+
export { AddCustomerToGroupDialogComponent, AddressCardComponent, AddressDetailDialogComponent, CustomerDetailComponent, CustomerGroupDetailDialogComponent, CustomerGroupListComponent, CustomerGroupMemberListComponent, CustomerHistoryComponent, CustomerHistoryEntryHostComponent, CustomerListComponent, CustomerModule, CustomerResolver, CustomerStatusLabelComponent, SelectCustomerGroupDialogComponent, customerBreadcrumb, customerRoutes };
|
|
1147
1219
|
//# sourceMappingURL=vendure-admin-ui-customer.mjs.map
|