@vendure/admin-ui 2.1.0-next.1 → 2.1.0-next.3
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/collection-detail/collection-detail.component.d.ts +3 -1
- package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +6 -4
- package/catalog/components/facet-detail/facet-detail.component.d.ts +3 -1
- package/catalog/components/product-detail/product-detail.component.d.ts +3 -1
- package/catalog/components/stock-location-detail/stock-location-detail.component.d.ts +3 -1
- package/core/common/base-detail.component.d.ts +11 -1
- package/core/common/component-registry-types.d.ts +2 -1
- package/core/common/utilities/custom-field-default-value.d.ts +6 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +2 -0
- package/core/extension/add-action-bar-item.d.ts +28 -0
- package/core/extension/add-nav-menu-item.d.ts +60 -0
- package/core/extension/components/angular-route.component.d.ts +6 -0
- package/core/extension/components/route.component.d.ts +13 -0
- package/core/extension/providers/page-metadata.service.d.ts +9 -0
- package/core/{providers/bulk-action-registry → extension}/register-bulk-action.d.ts +1 -1
- package/core/extension/register-custom-detail-component.d.ts +10 -0
- package/core/{providers/dashboard-widget → extension}/register-dashboard-widget.d.ts +5 -1
- package/core/extension/register-data-table-component.d.ts +44 -0
- package/core/extension/register-form-input-component.d.ts +50 -0
- package/core/extension/register-history-entry-component.d.ts +11 -0
- package/core/extension/register-route-component.d.ts +59 -0
- package/core/extension/types.d.ts +11 -0
- package/core/providers/component-registry/component-registry.service.d.ts +6 -3
- package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +2 -1
- package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -9
- package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +1 -10
- package/core/providers/dashboard-widget/dashboard-widget-types.d.ts +17 -1
- package/core/providers/modal/modal.service.d.ts +1 -3
- package/core/providers/nav-builder/nav-builder.service.d.ts +0 -85
- package/core/public_api.d.ts +16 -3
- package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +3 -3
- package/core/shared/components/data-table-2/data-table-column.component.d.ts +2 -2
- package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +52 -0
- package/core/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +0 -1
- package/core/shared/components/data-table-2/data-table2.component.d.ts +9 -2
- package/core/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +2 -3
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +13 -4
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +15 -0
- package/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +3 -3
- package/core/shared/shared.module.d.ts +25 -25
- package/customer/components/customer-detail/customer-detail.component.d.ts +3 -1
- package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +3 -1
- package/customer/components/customer-history/customer-history-entry-host.component.d.ts +2 -3
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/dashboard/components/dashboard-widget/dashboard-widget.component.d.ts +1 -3
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +3 -3
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +3 -3
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +3 -3
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +3 -3
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +8 -5
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +3 -3
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +3 -3
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-list/product-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +3 -3
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +3 -3
- package/esm2022/catalog/components/stock-location-detail/stock-location-detail.component.mjs +3 -3
- package/esm2022/catalog/components/stock-location-list/stock-location-list.component.mjs +3 -3
- package/esm2022/core/common/base-detail.component.mjs +9 -7
- package/esm2022/core/common/component-registry-types.mjs +1 -1
- package/esm2022/core/common/utilities/create-updated-translatable.mjs +5 -23
- package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +16 -10
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +3 -3
- package/esm2022/core/components/main-nav/main-nav.component.mjs +3 -3
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +1 -1
- package/esm2022/core/core.module.mjs +2 -2
- package/esm2022/core/extension/add-action-bar-item.mjs +38 -0
- package/esm2022/core/extension/add-nav-menu-item.mjs +79 -0
- package/esm2022/core/extension/components/angular-route.component.mjs +22 -0
- package/esm2022/core/extension/components/route.component.mjs +59 -0
- package/esm2022/core/extension/providers/page-metadata.service.mjs +20 -0
- package/esm2022/core/extension/register-bulk-action.mjs +63 -0
- package/esm2022/core/extension/register-custom-detail-component.mjs +20 -0
- package/esm2022/core/extension/register-dashboard-widget.mjs +36 -0
- package/esm2022/core/extension/register-data-table-component.mjs +50 -0
- package/esm2022/core/extension/register-form-input-component.mjs +60 -0
- package/esm2022/core/extension/register-history-entry-component.mjs +21 -0
- package/esm2022/core/extension/register-route-component.mjs +44 -0
- package/esm2022/core/extension/types.mjs +2 -0
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +3 -3
- package/esm2022/core/providers/custom-detail-component/custom-detail-component-types.mjs +1 -1
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +2 -19
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +2 -20
- package/esm2022/core/providers/dashboard-widget/dashboard-widget-types.mjs +1 -1
- package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +1 -8
- package/esm2022/core/providers/data-table/data-table-filter.mjs +1 -1
- package/esm2022/core/providers/modal/modal.service.mjs +5 -7
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +2 -113
- package/esm2022/core/public_api.mjs +17 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +3 -3
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +3 -3
- package/esm2022/core/shared/components/card/card.component.mjs +3 -3
- package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +13 -9
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +5 -6
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +26 -0
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +2 -4
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +23 -10
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +2 -2
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +6 -4
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +2 -2
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +6 -8
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +3 -3
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +2 -2
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -2
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +97 -5
- package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +44 -0
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +20 -16
- package/esm2022/core/shared/shared.module.mjs +14 -13
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +5 -5
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +3 -3
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +3 -2
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +3 -3
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +5 -7
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +10 -7
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -7
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +3 -3
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +3 -3
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +2 -2
- package/esm2022/order/components/order-detail/order-detail.component.mjs +3 -3
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +7 -9
- package/esm2022/order/components/order-list/order-list.component.mjs +3 -3
- package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
- package/esm2022/react/components/react-custom-column.component.mjs +25 -0
- package/esm2022/react/components/react-custom-detail.component.mjs +23 -0
- package/esm2022/react/components/react-form-input.component.mjs +24 -0
- package/esm2022/react/components/react-route.component.mjs +26 -0
- package/esm2022/react/directives/react-component-host.directive.mjs +54 -0
- package/esm2022/react/public_api.mjs +19 -0
- package/esm2022/react/react-components/Card.mjs +28 -0
- package/esm2022/react/react-components/Link.mjs +30 -0
- package/esm2022/react/react-hooks/use-detail-component-data.mjs +48 -0
- package/esm2022/react/react-hooks/use-form-control.mjs +66 -0
- package/esm2022/react/react-hooks/use-injector.mjs +33 -0
- package/esm2022/react/react-hooks/use-page-metadata.mjs +41 -0
- package/esm2022/react/react-hooks/use-query.mjs +124 -0
- package/esm2022/react/register-react-custom-detail-component.mjs +33 -0
- package/esm2022/react/register-react-data-table-component.mjs +62 -0
- package/esm2022/react/register-react-form-input-component.mjs +27 -0
- package/esm2022/react/register-react-route-component.mjs +25 -0
- package/esm2022/react/types.mjs +2 -0
- package/esm2022/react/vendure-admin-ui-react.mjs +5 -0
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +3 -3
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +3 -3
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +10 -10
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +3 -3
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +3 -3
- package/esm2022/settings/components/country-list/country-list.component.mjs +3 -3
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +3 -3
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +3 -3
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +3 -3
- package/esm2022/settings/components/profile/profile.component.mjs +3 -3
- package/esm2022/settings/components/role-list/role-list.component.mjs +3 -3
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +3 -3
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +3 -3
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +3 -3
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +3 -3
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +3 -3
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +3 -3
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +3 -3
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +3 -3
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +3 -3
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
- package/esm2022/settings/settings.routes.mjs +1 -1
- package/esm2022/system/components/job-list/job-list.component.mjs +3 -3
- package/fesm2022/vendure-admin-ui-catalog.mjs +34 -31
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +659 -346
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +19 -18
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +5 -8
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +4 -4
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +14 -16
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +641 -0
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -0
- package/fesm2022/vendure-admin-ui-settings.mjs +41 -41
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +2 -2
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-detail/promotion-detail.component.d.ts +3 -1
- package/order/components/order-detail/order-detail.component.d.ts +3 -1
- package/order/components/order-history/order-history-entry-host.component.d.ts +2 -3
- package/package.json +22 -14
- package/react/components/react-custom-column.component.d.ts +17 -0
- package/react/components/react-custom-detail.component.d.ts +24 -0
- package/react/components/react-form-input.component.d.ts +20 -0
- package/react/components/react-route.component.d.ts +10 -0
- package/react/directives/react-component-host.directive.d.ts +23 -0
- package/react/index.d.ts +5 -0
- package/react/public_api.d.ts +17 -0
- package/react/react-components/Card.d.ts +24 -0
- package/react/react-components/Link.d.ts +22 -0
- package/react/react-hooks/use-detail-component-data.d.ts +32 -0
- package/react/react-hooks/use-form-control.d.ts +29 -0
- package/react/react-hooks/use-injector.d.ts +24 -0
- package/react/react-hooks/use-page-metadata.d.ts +30 -0
- package/react/react-hooks/use-query.d.ts +92 -0
- package/react/register-react-custom-detail-component.d.ts +38 -0
- package/react/register-react-data-table-component.d.ts +81 -0
- package/react/register-react-form-input-component.d.ts +9 -0
- package/react/register-react-route-component.d.ts +26 -0
- package/react/types.d.ts +17 -0
- package/settings/components/admin-detail/admin-detail.component.d.ts +3 -1
- package/settings/components/channel-detail/channel-detail.component.d.ts +5 -3
- package/settings/components/country-detail/country-detail.component.d.ts +3 -1
- package/settings/components/global-settings/global-settings.component.d.ts +3 -1
- package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +3 -1
- package/settings/components/profile/profile.component.d.ts +3 -1
- package/settings/components/seller-detail/seller-detail.component.d.ts +3 -1
- package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +3 -1
- package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +3 -1
- package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +3 -1
- package/settings/components/zone-detail/zone-detail.component.d.ts +3 -1
- package/static/i18n-messages/cs.json +789 -789
- package/static/i18n-messages/de.json +789 -789
- package/static/i18n-messages/en.json +789 -789
- package/static/i18n-messages/es.json +789 -789
- package/static/i18n-messages/fr.json +789 -789
- package/static/i18n-messages/he.json +789 -789
- package/static/i18n-messages/it.json +789 -789
- package/static/i18n-messages/pl.json +789 -789
- package/static/i18n-messages/pt_BR.json +789 -789
- package/static/i18n-messages/pt_PT.json +789 -789
- package/static/i18n-messages/ru.json +789 -789
- package/static/i18n-messages/uk.json +789 -789
- package/static/i18n-messages/zh_Hans.json +789 -789
- package/static/i18n-messages/zh_Hant.json +789 -789
- package/static/styles/_mixins.scss +4 -4
- package/static/styles/global/_forms.scss +2 -2
- package/static/styles/rtl.scss +1 -1
- package/static/styles/theme/dark.scss +1 -16
- package/static/styles/theme/default.scss +1 -0
- package/static/theme.min.css +1 -1
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +0 -64
- package/esm2022/core/providers/bulk-action-registry/register-bulk-action.mjs +0 -63
- package/esm2022/core/providers/dashboard-widget/register-dashboard-widget.mjs +0 -32
- package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +0 -102
|
@@ -3,7 +3,7 @@ import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewCo
|
|
|
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';
|
|
6
|
-
import { SelectionManager, HistoryEntryType, CUSTOMER_FRAGMENT, TypedBaseDetailComponent, SortOrder, EditNoteDialogComponent, CustomerDetailQueryDocument, createBulkDeleteAction, Permission, CUSTOMER_GROUP_FRAGMENT, TypedBaseListComponent, GetCustomerGroupListDocument, ModalService, DataService, NotificationService, CustomerListQueryDocument, LogicalOperator, PageComponent, detailBreadcrumb, detailComponentWithResolver, GetCustomerGroupDetailDocument, SharedModule, PageService } from '@vendure/admin-ui/core';
|
|
6
|
+
import { SelectionManager, HistoryEntryType, CUSTOMER_FRAGMENT, TypedBaseDetailComponent, getCustomFieldsDefaults, SortOrder, EditNoteDialogComponent, CustomerDetailQueryDocument, createBulkDeleteAction, Permission, CUSTOMER_GROUP_FRAGMENT, TypedBaseListComponent, GetCustomerGroupListDocument, ModalService, DataService, NotificationService, CustomerListQueryDocument, LogicalOperator, PageComponent, detailBreadcrumb, detailComponentWithResolver, GetCustomerGroupDetailDocument, SharedModule, PageService } from '@vendure/admin-ui/core';
|
|
7
7
|
import * as i1$1 from '@angular/forms';
|
|
8
8
|
import { FormControl, Validators, UntypedFormArray } from '@angular/forms';
|
|
9
9
|
import * as i2 from '@angular/router';
|
|
@@ -83,11 +83,11 @@ class CustomerGroupMemberListComponent {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerGroupMemberListComponent, deps: [{ token: i2.Router }, { token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: { locationId: "locationId", members: "members", totalItems: "totalItems", route: "route", selectedMemberIds: "selectedMemberIds", activeGroup: "activeGroup" }, outputs: { selectionChange: "selectionChange", fetchParamsChange: "fetchParamsChange" }, ngImport: i0, template: "<vdr-data-table-2\r\n [id]=\"locationId\"\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>\r\n <vdr-bulk-action-menu\r\n [locationId]=\"locationId\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" [optional]=\"false\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/customer/customers', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: { locationId: "locationId", members: "members", totalItems: "totalItems", route: "route", selectedMemberIds: "selectedMemberIds", activeGroup: "activeGroup" }, outputs: { selectionChange: "selectionChange", fetchParamsChange: "fetchParamsChange" }, ngImport: i0, template: "<vdr-data-table-2\r\n [id]=\"locationId\"\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>\r\n <vdr-bulk-action-menu\r\n [locationId]=\"locationId\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/customer/customers', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
87
87
|
}
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerGroupMemberListComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
|
-
args: [{ selector: 'vdr-customer-group-member-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-data-table-2\r\n [id]=\"locationId\"\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>\r\n <vdr-bulk-action-menu\r\n [locationId]=\"locationId\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" [optional]=\"false\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/customer/customers', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n" }]
|
|
90
|
+
args: [{ selector: 'vdr-customer-group-member-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-data-table-2\r\n [id]=\"locationId\"\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>\r\n <vdr-bulk-action-menu\r\n [locationId]=\"locationId\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/customer/customers', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n" }]
|
|
91
91
|
}], ctorParameters: function () { return [{ type: i2.Router }, { type: i1.DataService }]; }, propDecorators: { locationId: [{
|
|
92
92
|
type: Input
|
|
93
93
|
}], members: [{
|
|
@@ -272,15 +272,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
272
272
|
}], ctorParameters: function () { return [{ type: i1.DataService }]; } });
|
|
273
273
|
|
|
274
274
|
class CustomerHistoryEntryHostComponent {
|
|
275
|
-
constructor(
|
|
276
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
275
|
+
constructor(historyEntryComponentService) {
|
|
277
276
|
this.historyEntryComponentService = historyEntryComponentService;
|
|
278
277
|
this.expandClick = new EventEmitter();
|
|
279
278
|
}
|
|
280
279
|
ngOnInit() {
|
|
281
280
|
const componentType = this.historyEntryComponentService.getComponent(this.entry.type);
|
|
282
|
-
const
|
|
283
|
-
const componentRef = this.portalRef.createComponent(factory);
|
|
281
|
+
const componentRef = this.portalRef.createComponent(componentType);
|
|
284
282
|
componentRef.instance.entry = this.entry;
|
|
285
283
|
componentRef.instance.customer = this.customer;
|
|
286
284
|
this.instance = componentRef.instance;
|
|
@@ -289,7 +287,7 @@ class CustomerHistoryEntryHostComponent {
|
|
|
289
287
|
ngOnDestroy() {
|
|
290
288
|
this.componentRef?.destroy();
|
|
291
289
|
}
|
|
292
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerHistoryEntryHostComponent, deps: [{ token:
|
|
290
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerHistoryEntryHostComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
293
291
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", 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
|
|
294
292
|
[displayType]="instance.getDisplayType(entry)"
|
|
295
293
|
[iconShape]="instance.getIconShape && instance.getIconShape(entry)"
|
|
@@ -319,7 +317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
319
317
|
</vdr-timeline-entry>`,
|
|
320
318
|
exportAs: 'historyEntry',
|
|
321
319
|
}]
|
|
322
|
-
}], ctorParameters: function () { return [{ type:
|
|
320
|
+
}], ctorParameters: function () { return [{ type: i1.HistoryEntryComponentService }]; }, propDecorators: { entry: [{
|
|
323
321
|
type: Input
|
|
324
322
|
}], customer: [{
|
|
325
323
|
type: Input
|
|
@@ -457,7 +455,7 @@ class CustomerDetailComponent extends TypedBaseDetailComponent {
|
|
|
457
455
|
phoneNumber: '',
|
|
458
456
|
emailAddress: ['', [Validators.required, Validators.email]],
|
|
459
457
|
password: '',
|
|
460
|
-
customFields: this.formBuilder.group(this.customFields
|
|
458
|
+
customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),
|
|
461
459
|
}),
|
|
462
460
|
addresses: new UntypedFormArray([]),
|
|
463
461
|
});
|
|
@@ -827,11 +825,11 @@ class CustomerDetailComponent extends TypedBaseDetailComponent {
|
|
|
827
825
|
}).single$;
|
|
828
826
|
}
|
|
829
827
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerDetailComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.FormBuilder }, { token: i1.DataService }, { token: i1.ModalService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
830
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerDetailComponent, selector: "vdr-customer-detail", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as customer\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\r\n <vdr-labeled-data\r\n class=\"last-login\"\r\n *ngIf=\"customer.user?.lastLogin as lastLogin\"\r\n [label]=\"'customer.last-login' | translate\"\r\n >\r\n <time [dateTime]=\"lastLogin\">{{ lastLogin | timeAgo }}</time>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card\r\n [title]=\"'customer.customer-groups' | translate\"\r\n *ngIf=\"(entity$ | async)?.groups as groups\"\r\n >\r\n <div *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 </div>\r\n <ng-template #noGroups>\r\n <span class=\"color-weight-400\">\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </span>\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"button-small mt-1\"\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 </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <form class=\"form\" [formGroup]=\"detailForm.get('customer')\">\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'customer.title' | translate\"\r\n for=\"title\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <div><!-- spacer --></div>\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\r\n [label]=\"'customer.password' | translate\"\r\n for=\"password\"\r\n *ngIf=\"isNew$ | async\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\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 </vdr-card>\r\n </form>\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 <ng-container *ngIf=\"!(isNew$ | async)\">\r\n <vdr-card [title]=\"'customer.addresses' | translate\">\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]=\"\r\n (['UpdateCustomer'] | hasPermission) &&\r\n !addressesToDeleteIds.has(addressForm.value.id)\r\n \"\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 mt-2\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.orders' | translate\" [paddingX]=\"false\">\r\n <vdr-data-table-2\r\n id=\"customer-order-list\"\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-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" [optional]=\"false\">\r\n <ng-template let-order=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/orders', order.id]\"\r\n ><span>{{ order.code }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.order-type' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n <vdr-chip>{{ order.type }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.state' | translate\">\r\n <ng-template let-order=\"item\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.total' | translate\">\r\n <ng-template let-order=\"item\">\r\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\">\r\n <ng-template let-order=\"item\">\r\n {{ order.updatedAt | timeAgo }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\">\r\n <ng-template let-order=\"item\">\r\n {{ order.orderPlacedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n />\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.customer-history' | translate\">\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 </vdr-card>\r\n </ng-container>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".last-login{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i1.OrderStateLabelComponent, selector: "vdr-order-state-label", inputs: ["state"] }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i1.CustomDetailComponentHostComponent, selector: "vdr-custom-detail-component-host", inputs: ["locationId", "entity$", "detailForm"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: i1.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i1.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i1.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "component", type: AddressCardComponent, selector: "vdr-address-card", inputs: ["addressForm", "customFields", "availableCountries", "isDefaultBilling", "isDefaultShipping", "editable"], outputs: ["setAsDefaultShipping", "setAsDefaultBilling", "deleteAddress"] }, { kind: "component", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: ["customer", "history"], outputs: ["addNote", "updateNote", "deleteNote"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i1.TimeAgoPipe, name: "timeAgo" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
828
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerDetailComponent, selector: "vdr-customer-detail", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as customer\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\r\n <vdr-labeled-data\r\n class=\"last-login\"\r\n *ngIf=\"customer.user?.lastLogin as lastLogin\"\r\n [label]=\"'customer.last-login' | translate\"\r\n >\r\n <time [dateTime]=\"lastLogin\">{{ lastLogin | timeAgo }}</time>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card\r\n [title]=\"'customer.customer-groups' | translate\"\r\n *ngIf=\"(entity$ | async)?.groups as groups\"\r\n >\r\n <div *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 </div>\r\n <ng-template #noGroups>\r\n <span class=\"color-weight-400\">\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </span>\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"button-small mt-1\"\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 </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <form class=\"form\" [formGroup]=\"detailForm.get('customer')\">\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'customer.title' | translate\"\r\n for=\"title\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <div><!-- spacer --></div>\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\r\n [label]=\"'customer.password' | translate\"\r\n for=\"password\"\r\n *ngIf=\"isNew$ | async\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\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 </vdr-card>\r\n </form>\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 <ng-container *ngIf=\"!(isNew$ | async)\">\r\n <vdr-card [title]=\"'customer.addresses' | translate\">\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]=\"\r\n (['UpdateCustomer'] | hasPermission) &&\r\n !addressesToDeleteIds.has(addressForm.value.id)\r\n \"\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 mt-2\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.orders' | translate\" [paddingX]=\"false\">\r\n <vdr-data-table-2\r\n id=\"customer-order-list\"\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-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\r\n <ng-template let-order=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/orders', order.id]\"\r\n ><span>{{ order.code }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.order-type' | translate\" id=\"order-type\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n <vdr-chip>{{ order.type }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\">\r\n <ng-template let-order=\"item\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\">\r\n <ng-template let-order=\"item\">\r\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\r\n <ng-template let-order=\"item\">\r\n {{ order.updatedAt | timeAgo }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\">\r\n <ng-template let-order=\"item\">\r\n {{ order.orderPlacedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n />\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.customer-history' | translate\">\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 </vdr-card>\r\n </ng-container>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".last-login{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i1.OrderStateLabelComponent, selector: "vdr-order-state-label", inputs: ["state"] }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i1.CustomDetailComponentHostComponent, selector: "vdr-custom-detail-component-host", inputs: ["locationId", "entity$", "detailForm"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: i1.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i1.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i1.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "component", type: AddressCardComponent, selector: "vdr-address-card", inputs: ["addressForm", "customFields", "availableCountries", "isDefaultBilling", "isDefaultShipping", "editable"], outputs: ["setAsDefaultShipping", "setAsDefaultBilling", "deleteAddress"] }, { kind: "component", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: ["customer", "history"], outputs: ["addNote", "updateNote", "deleteNote"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i1.TimeAgoPipe, name: "timeAgo" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
831
829
|
}
|
|
832
830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerDetailComponent, decorators: [{
|
|
833
831
|
type: Component,
|
|
834
|
-
args: [{ selector: 'vdr-customer-detail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as customer\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\r\n <vdr-labeled-data\r\n class=\"last-login\"\r\n *ngIf=\"customer.user?.lastLogin as lastLogin\"\r\n [label]=\"'customer.last-login' | translate\"\r\n >\r\n <time [dateTime]=\"lastLogin\">{{ lastLogin | timeAgo }}</time>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card\r\n [title]=\"'customer.customer-groups' | translate\"\r\n *ngIf=\"(entity$ | async)?.groups as groups\"\r\n >\r\n <div *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 </div>\r\n <ng-template #noGroups>\r\n <span class=\"color-weight-400\">\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </span>\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"button-small mt-1\"\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 </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <form class=\"form\" [formGroup]=\"detailForm.get('customer')\">\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'customer.title' | translate\"\r\n for=\"title\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <div><!-- spacer --></div>\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\r\n [label]=\"'customer.password' | translate\"\r\n for=\"password\"\r\n *ngIf=\"isNew$ | async\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\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 </vdr-card>\r\n </form>\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 <ng-container *ngIf=\"!(isNew$ | async)\">\r\n <vdr-card [title]=\"'customer.addresses' | translate\">\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]=\"\r\n (['UpdateCustomer'] | hasPermission) &&\r\n !addressesToDeleteIds.has(addressForm.value.id)\r\n \"\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 mt-2\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.orders' | translate\" [paddingX]=\"false\">\r\n <vdr-data-table-2\r\n id=\"customer-order-list\"\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-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" [optional]=\"false\">\r\n <ng-template let-order=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/orders', order.id]\"\r\n ><span>{{ order.code }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.order-type' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n <vdr-chip>{{ order.type }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.state' | translate\">\r\n <ng-template let-order=\"item\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.total' | translate\">\r\n <ng-template let-order=\"item\">\r\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\">\r\n <ng-template let-order=\"item\">\r\n {{ order.updatedAt | timeAgo }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\">\r\n <ng-template let-order=\"item\">\r\n {{ order.orderPlacedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n />\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.customer-history' | translate\">\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 </vdr-card>\r\n </ng-container>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".last-login{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"] }]
|
|
832
|
+
args: [{ selector: 'vdr-customer-detail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as customer\">\r\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\r\n <vdr-labeled-data\r\n class=\"last-login\"\r\n *ngIf=\"customer.user?.lastLogin as lastLogin\"\r\n [label]=\"'customer.last-login' | translate\"\r\n >\r\n <time [dateTime]=\"lastLogin\">{{ lastLogin | timeAgo }}</time>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card\r\n [title]=\"'customer.customer-groups' | translate\"\r\n *ngIf=\"(entity$ | async)?.groups as groups\"\r\n >\r\n <div *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 </div>\r\n <ng-template #noGroups>\r\n <span class=\"color-weight-400\">\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </span>\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"button-small mt-1\"\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 </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <form class=\"form\" [formGroup]=\"detailForm.get('customer')\">\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'customer.title' | translate\"\r\n for=\"title\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <div><!-- spacer --></div>\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\r\n [label]=\"'customer.password' | translate\"\r\n for=\"password\"\r\n *ngIf=\"isNew$ | async\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\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 </vdr-card>\r\n </form>\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 <ng-container *ngIf=\"!(isNew$ | async)\">\r\n <vdr-card [title]=\"'customer.addresses' | translate\">\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]=\"\r\n (['UpdateCustomer'] | hasPermission) &&\r\n !addressesToDeleteIds.has(addressForm.value.id)\r\n \"\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 mt-2\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.orders' | translate\" [paddingX]=\"false\">\r\n <vdr-data-table-2\r\n id=\"customer-order-list\"\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-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\r\n <ng-template let-order=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/orders', order.id]\"\r\n ><span>{{ order.code }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.order-type' | translate\" id=\"order-type\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n <vdr-chip>{{ order.type }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\">\r\n <ng-template let-order=\"item\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\">\r\n <ng-template let-order=\"item\">\r\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\r\n <ng-template let-order=\"item\">\r\n {{ order.updatedAt | timeAgo }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\">\r\n <ng-template let-order=\"item\">\r\n {{ order.orderPlacedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n />\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'customer.customer-history' | translate\">\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 </vdr-card>\r\n </ng-container>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".last-login{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"] }]
|
|
835
833
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.FormBuilder }, { type: i1.DataService }, { type: i1.ModalService }, { type: i1.NotificationService }]; } });
|
|
836
834
|
|
|
837
835
|
const CUSTOMER_GROUP_DETAIL_QUERY = gql `
|
|
@@ -857,7 +855,7 @@ class CustomerGroupDetailComponent extends TypedBaseDetailComponent {
|
|
|
857
855
|
this.customFields = this.getCustomFieldConfig('CustomerGroup');
|
|
858
856
|
this.detailForm = this.formBuilder.group({
|
|
859
857
|
name: '',
|
|
860
|
-
customFields: this.formBuilder.group(this.customFields
|
|
858
|
+
customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),
|
|
861
859
|
});
|
|
862
860
|
}
|
|
863
861
|
ngOnInit() {
|
|
@@ -924,7 +922,7 @@ class CustomerGroupDetailDialogComponent {
|
|
|
924
922
|
ngOnInit() {
|
|
925
923
|
this.form = this.formBuilder.group({
|
|
926
924
|
name: [this.group.name, Validators.required],
|
|
927
|
-
customFields: this.formBuilder.group(this.customFields
|
|
925
|
+
customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),
|
|
928
926
|
});
|
|
929
927
|
if (this.customFields.length) {
|
|
930
928
|
const customFieldsGroup = this.form.get('customFields');
|
|
@@ -1086,11 +1084,11 @@ class CustomerGroupListComponent extends TypedBaseListComponent {
|
|
|
1086
1084
|
});
|
|
1087
1085
|
}
|
|
1088
1086
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerGroupListComponent, deps: [{ token: i1.DataService }, { token: i1.NotificationService }, { token: i1.ModalService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1089
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerGroupListComponent, selector: "vdr-customer-group-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-split-view [rightPanelOpen]=\"activeGroup$ | async\" (closeClicked)=\"closeMembers()\">\r\n <ng-template vdrSplitViewLeft>\r\n <vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-group-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n [activeIndex]=\"activeIndex$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n >\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-group-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\r\n ><span>{{ customerGroup.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.view-contents' | translate\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a\r\n class=\"button-small bg-weight-150\"\r\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <span>{{ 'customer.view-group-members' | translate }}</span>\r\n <clr-icon shape=\"file-group\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </ng-template>\r\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeGroup$ | async)?.name\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <button class=\"button-ghost ml-4\" (click)=\"addToGroup(activeGroup)\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span>{{\r\n 'customer.add-customers-to-group' | translate : { groupName: activeGroup.name }\r\n }}</span>\r\n </button>\r\n <vdr-customer-group-member-list\r\n locationId=\"customer-group-members-list\"\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [activeGroup]=\"activeGroup$ | async\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n />\r\n </ng-container>\r\n </ng-template>\r\n</vdr-split-view>\r\n", styles: ["vdr-empty-placeholder{flex:1}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.SplitViewComponent, selector: "vdr-split-view", inputs: ["rightPanelOpen"], outputs: ["closeClicked"] }, { kind: "directive", type: i1.SplitViewLeftDirective, selector: "[vdrSplitViewLeft]" }, { kind: "directive", type: i1.SplitViewRightDirective, selector: "[vdrSplitViewRight]", inputs: ["splitViewTitle"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["locationId", "members", "totalItems", "route", "selectedMemberIds", "activeGroup"], outputs: ["selectionChange", "fetchParamsChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1087
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerGroupListComponent, selector: "vdr-customer-group-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-split-view [rightPanelOpen]=\"activeGroup$ | async\" (closeClicked)=\"closeMembers()\">\r\n <ng-template vdrSplitViewLeft>\r\n <vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-group-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n [activeIndex]=\"activeIndex$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n >\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-group-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\" id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\r\n ><span>{{ customerGroup.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.view-contents' | translate\" id=\"view-contents\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a\r\n class=\"button-small bg-weight-150\"\r\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <span>{{ 'customer.view-group-members' | translate }}</span>\r\n <clr-icon shape=\"file-group\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </ng-template>\r\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeGroup$ | async)?.name\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <button class=\"button-ghost ml-4\" (click)=\"addToGroup(activeGroup)\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span>{{\r\n 'customer.add-customers-to-group' | translate : { groupName: activeGroup.name }\r\n }}</span>\r\n </button>\r\n <vdr-customer-group-member-list\r\n locationId=\"customer-group-members-list\"\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [activeGroup]=\"activeGroup$ | async\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n />\r\n </ng-container>\r\n </ng-template>\r\n</vdr-split-view>\r\n", styles: ["vdr-empty-placeholder{flex:1}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.SplitViewComponent, selector: "vdr-split-view", inputs: ["rightPanelOpen"], outputs: ["closeClicked"] }, { kind: "directive", type: i1.SplitViewLeftDirective, selector: "[vdrSplitViewLeft]" }, { kind: "directive", type: i1.SplitViewRightDirective, selector: "[vdrSplitViewRight]", inputs: ["splitViewTitle"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["locationId", "members", "totalItems", "route", "selectedMemberIds", "activeGroup"], outputs: ["selectionChange", "fetchParamsChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1090
1088
|
}
|
|
1091
1089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerGroupListComponent, decorators: [{
|
|
1092
1090
|
type: Component,
|
|
1093
|
-
args: [{ selector: 'vdr-customer-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-split-view [rightPanelOpen]=\"activeGroup$ | async\" (closeClicked)=\"closeMembers()\">\r\n <ng-template vdrSplitViewLeft>\r\n <vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-group-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n [activeIndex]=\"activeIndex$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n >\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-group-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\r\n ><span>{{ customerGroup.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.view-contents' | translate\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a\r\n class=\"button-small bg-weight-150\"\r\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <span>{{ 'customer.view-group-members' | translate }}</span>\r\n <clr-icon shape=\"file-group\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </ng-template>\r\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeGroup$ | async)?.name\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <button class=\"button-ghost ml-4\" (click)=\"addToGroup(activeGroup)\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span>{{\r\n 'customer.add-customers-to-group' | translate : { groupName: activeGroup.name }\r\n }}</span>\r\n </button>\r\n <vdr-customer-group-member-list\r\n locationId=\"customer-group-members-list\"\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [activeGroup]=\"activeGroup$ | async\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n />\r\n </ng-container>\r\n </ng-template>\r\n</vdr-split-view>\r\n", styles: ["vdr-empty-placeholder{flex:1}\n"] }]
|
|
1091
|
+
args: [{ selector: 'vdr-customer-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-split-view [rightPanelOpen]=\"activeGroup$ | async\" (closeClicked)=\"closeMembers()\">\r\n <ng-template vdrSplitViewLeft>\r\n <vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-group-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n [activeIndex]=\"activeIndex$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n >\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-group-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\" id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\r\n ><span>{{ customerGroup.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.view-contents' | translate\" id=\"view-contents\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a\r\n class=\"button-small bg-weight-150\"\r\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <span>{{ 'customer.view-group-members' | translate }}</span>\r\n <clr-icon shape=\"file-group\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </ng-template>\r\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeGroup$ | async)?.name\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <button class=\"button-ghost ml-4\" (click)=\"addToGroup(activeGroup)\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span>{{\r\n 'customer.add-customers-to-group' | translate : { groupName: activeGroup.name }\r\n }}</span>\r\n </button>\r\n <vdr-customer-group-member-list\r\n locationId=\"customer-group-members-list\"\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [activeGroup]=\"activeGroup$ | async\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n />\r\n </ng-container>\r\n </ng-template>\r\n</vdr-split-view>\r\n", styles: ["vdr-empty-placeholder{flex:1}\n"] }]
|
|
1094
1092
|
}], ctorParameters: function () { return [{ type: i1.DataService }, { type: i1.NotificationService }, { type: i1.ModalService }, { type: i2.ActivatedRoute }, { type: i2.Router }]; } });
|
|
1095
1093
|
|
|
1096
1094
|
const removeCustomerGroupMembersBulkAction = {
|
|
@@ -1152,6 +1150,7 @@ const CUSTOMER_LIST_QUERY = gql `
|
|
|
1152
1150
|
class CustomerListComponent extends TypedBaseListComponent {
|
|
1153
1151
|
constructor() {
|
|
1154
1152
|
super();
|
|
1153
|
+
this.customFields = this.getCustomFieldConfig('Customer');
|
|
1155
1154
|
this.filters = this.createFilterCollection()
|
|
1156
1155
|
.addIdFilter()
|
|
1157
1156
|
.addDateFilters()
|
|
@@ -1173,6 +1172,7 @@ class CustomerListComponent extends TypedBaseListComponent {
|
|
|
1173
1172
|
label: marker('customer.email-address'),
|
|
1174
1173
|
filterField: 'emailAddress',
|
|
1175
1174
|
})
|
|
1175
|
+
.addCustomFieldFilters(this.customFields)
|
|
1176
1176
|
.connectToRoute(this.route);
|
|
1177
1177
|
this.sorts = this.createSortCollection()
|
|
1178
1178
|
.defaultSort('createdAt', 'DESC')
|
|
@@ -1180,6 +1180,7 @@ class CustomerListComponent extends TypedBaseListComponent {
|
|
|
1180
1180
|
.addSort({ name: 'updatedAt' })
|
|
1181
1181
|
.addSort({ name: 'lastName' })
|
|
1182
1182
|
.addSort({ name: 'emailAddress' })
|
|
1183
|
+
.addCustomFieldSorts(this.customFields)
|
|
1183
1184
|
.connectToRoute(this.route);
|
|
1184
1185
|
this.configure({
|
|
1185
1186
|
document: CustomerListQueryDocument,
|
|
@@ -1212,11 +1213,11 @@ class CustomerListComponent extends TypedBaseListComponent {
|
|
|
1212
1213
|
});
|
|
1213
1214
|
}
|
|
1214
1215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1215
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerListComponent, selector: "vdr-customer-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n", styles: [".search-input{margin-top:6px;min-width:300px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }] }); }
|
|
1216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerListComponent, selector: "vdr-customer-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let field of customFields\" [customField]=\"field\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".search-input{margin-top:6px;min-width:300px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }] }); }
|
|
1216
1217
|
}
|
|
1217
1218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerListComponent, decorators: [{
|
|
1218
1219
|
type: Component,
|
|
1219
|
-
args: [{ selector: 'vdr-customer-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n", styles: [".search-input{margin-top:6px;min-width:300px}\n"] }]
|
|
1220
|
+
args: [{ selector: 'vdr-customer-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </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</vdr-page-block>\r\n\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"customer-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"customer-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customer=\"item\">\r\n {{ customer.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-customer=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customer.id]\"\r\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\">\r\n <ng-template let-customer=\"item\">\r\n <vdr-customer-status-label [customer]=\"customer\" />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-customer=\"item\">\r\n {{ customer.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let field of customFields\" [customField]=\"field\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".search-input{margin-top:6px;min-width:300px}\n"] }]
|
|
1220
1221
|
}], ctorParameters: function () { return []; } });
|
|
1221
1222
|
|
|
1222
1223
|
const createRoutes = (pageService) => [
|