@vendure/admin-ui 3.2.0 → 3.2.1

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.
Files changed (65) hide show
  1. package/LICENSE.md +42 -42
  2. package/core/common/version.d.ts +1 -1
  3. package/fesm2022/vendure-admin-ui-catalog.mjs +257 -257
  4. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  5. package/fesm2022/vendure-admin-ui-core.mjs +4140 -4140
  6. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  7. package/fesm2022/vendure-admin-ui-customer.mjs +119 -119
  8. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  9. package/fesm2022/vendure-admin-ui-dashboard.mjs +58 -58
  10. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  11. package/fesm2022/vendure-admin-ui-login.mjs +2 -2
  12. package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
  13. package/fesm2022/vendure-admin-ui-marketing.mjs +35 -35
  14. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  15. package/fesm2022/vendure-admin-ui-order.mjs +186 -186
  16. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  17. package/fesm2022/vendure-admin-ui-react.mjs +8 -8
  18. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  19. package/fesm2022/vendure-admin-ui-settings.mjs +441 -441
  20. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  21. package/fesm2022/vendure-admin-ui-system.mjs +6 -6
  22. package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
  23. package/fesm2022/vendure-admin-ui.mjs.map +1 -1
  24. package/package.json +13 -9
  25. package/static/fonts/fonts.scss +253 -253
  26. package/static/i18n-messages/ar.json +813 -813
  27. package/static/i18n-messages/cs.json +813 -813
  28. package/static/i18n-messages/de.json +813 -813
  29. package/static/i18n-messages/en.json +817 -817
  30. package/static/i18n-messages/es.json +813 -813
  31. package/static/i18n-messages/fa.json +813 -813
  32. package/static/i18n-messages/fr.json +813 -813
  33. package/static/i18n-messages/he.json +813 -813
  34. package/static/i18n-messages/hr.json +813 -813
  35. package/static/i18n-messages/it.json +813 -813
  36. package/static/i18n-messages/ja.json +818 -818
  37. package/static/i18n-messages/nb.json +811 -811
  38. package/static/i18n-messages/ne.json +813 -813
  39. package/static/i18n-messages/pl.json +813 -813
  40. package/static/i18n-messages/pt_BR.json +813 -813
  41. package/static/i18n-messages/pt_PT.json +814 -814
  42. package/static/i18n-messages/ru.json +813 -813
  43. package/static/i18n-messages/sv.json +806 -806
  44. package/static/i18n-messages/tr.json +814 -814
  45. package/static/i18n-messages/uk.json +813 -813
  46. package/static/i18n-messages/zh_Hans.json +813 -813
  47. package/static/i18n-messages/zh_Hant.json +813 -813
  48. package/static/index.html +14 -14
  49. package/static/polyfills.ts +66 -66
  50. package/static/styles/_mixins.scss +60 -60
  51. package/static/styles/_variables.scss +11 -11
  52. package/static/styles/component/prosemirror.scss +513 -513
  53. package/static/styles/global/_buttons.scss +147 -147
  54. package/static/styles/global/_clarity.scss +140 -140
  55. package/static/styles/global/_forms.scss +187 -187
  56. package/static/styles/global/_global.scss +41 -41
  57. package/static/styles/global/_overrides.scss +165 -165
  58. package/static/styles/global/_sass-overrides.scss +7 -7
  59. package/static/styles/global/_utilities.scss +155 -155
  60. package/static/styles/rtl.scss +143 -143
  61. package/static/styles/styles.scss +19 -19
  62. package/static/styles/theme/dark.scss +591 -591
  63. package/static/styles/theme/default.scss +254 -254
  64. package/static/styles/ui-extension-theme.scss +13 -13
  65. package/static/vendure-ui-config.json +289 -289
@@ -15,13 +15,13 @@ import * as i5 from '@ngx-translate/core';
15
15
  import * as i3$1 from '@angular/router';
16
16
  import { RouterModule, ROUTES } from '@angular/router';
17
17
 
18
- const GET_PROMOTION_DETAIL = gql `
19
- query GetPromotionDetail($id: ID!) {
20
- promotion(id: $id) {
21
- ...Promotion
22
- }
23
- }
24
- ${PROMOTION_FRAGMENT}
18
+ const GET_PROMOTION_DETAIL = gql `
19
+ query GetPromotionDetail($id: ID!) {
20
+ promotion(id: $id) {
21
+ ...Promotion
22
+ }
23
+ }
24
+ ${PROMOTION_FRAGMENT}
25
25
  `;
26
26
  class PromotionDetailComponent extends TypedBaseDetailComponent {
27
27
  constructor(changeDetector, dataService, formBuilder, notificationService) {
@@ -264,28 +264,28 @@ class PromotionDetailComponent extends TypedBaseDetailComponent {
264
264
  }
265
265
  }
266
266
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PromotionDetailComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DataService }, { token: i2.FormBuilder }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: PromotionDetailComponent, isStandalone: false, selector: "vdr-promotion-detail", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"promotion-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdatePromotion'\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"promotion-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <clr-toggle-wrapper>\r\n <input type=\"checkbox\" clrToggle name=\"enabled\" formControlName=\"enabled\" />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n class=\"form-grid-span\"\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'marketing.starts-at' | translate\" for=\"startsAt\">\r\n <vdr-datetime-picker formControlName=\"startsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.ends-at' | translate\" for=\"endsAt\">\r\n <vdr-datetime-picker formControlName=\"endsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.coupon-code' | translate\" for=\"couponCode\">\r\n <input\r\n id=\"couponCode\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"couponCode\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'marketing.per-customer-limit' | translate\"\r\n [tooltip]=\"'marketing.per-customer-limit-tooltip' | translate\"\r\n for=\"perCustomerUsageLimit\"\r\n >\r\n <input\r\n id=\"perCustomerUsageLimit\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"999\"\r\n formControlName=\"perCustomerUsageLimit\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'marketing.usage-limit' | translate\"\r\n [tooltip]=\"'marketing.usage-limit-tooltip' | translate\"\r\n for=\"usageLimit\"\r\n >\r\n <input\r\n id=\"usageLimit\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"9999999\"\r\n formControlName=\"usageLimit\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n [title]=\"'common.custom-fields' | translate\"\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Promotion\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"promotion-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-card [title]=\"'marketing.conditions' | translate\" formArrayName=\"conditions\">\r\n <div *ngFor=\"let condition of conditions; index as i\">\r\n <vdr-configurable-input\r\n (remove)=\"removeCondition($event)\"\r\n [position]=\"i\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operation]=\"condition\"\r\n [operationDefinition]=\"getConditionDefinition(condition)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n </div>\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-condition' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let condition of getAvailableConditions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n class=\"item-wrap\"\r\n (click)=\"addCondition(condition)\"\r\n >\r\n {{ condition.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'marketing.actions' | translate\" formArrayName=\"actions\">\r\n <div *ngFor=\"let action of actions; index as i\">\r\n <vdr-configurable-input\r\n (remove)=\"removeAction($event)\"\r\n [position]=\"i\"\r\n [operation]=\"action\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operationDefinition]=\"getActionDefinition(action)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n </div>\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-action' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let action of getAvailableActions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n class=\"item-wrap\"\r\n (click)=\"addAction(action)\"\r\n >\r\n {{ action.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n", styles: [".item-wrap{white-space:normal}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { 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.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ConfigurableInputComponent, selector: "vdr-configurable-input", inputs: ["operation", "operationDefinition", "readonly", "removable", "position", "hideDescription"], outputs: ["remove"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "component", type: i1.RichTextEditorComponent, selector: "vdr-rich-text-editor", inputs: ["label", "readonly"] }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.DatetimePickerComponent, selector: "vdr-datetime-picker", inputs: ["yearRange", "weekStartDay", "timeGranularityInterval", "min", "max", "readonly"] }, { 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.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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
267
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: PromotionDetailComponent, isStandalone: false, selector: "vdr-promotion-detail", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <div class=\"flex clr-align-items-center\">\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n ></vdr-language-selector>\n </div>\n </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"promotion-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"'UpdatePromotion'\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"promotion-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *vdrIfPermissions=\"'UpdatePromotion'\">\n <clr-toggle-wrapper>\n <input type=\"checkbox\" clrToggle name=\"enabled\" formControlName=\"enabled\" />\n <label>{{ 'common.enabled' | translate }}</label>\n </clr-toggle-wrapper>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"text\"\n formControlName=\"name\"\n />\n </vdr-form-field>\n <vdr-rich-text-editor\n class=\"form-grid-span\"\n formControlName=\"description\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n [label]=\"'common.description' | translate\"\n ></vdr-rich-text-editor>\n <vdr-form-field [label]=\"'marketing.starts-at' | translate\" for=\"startsAt\">\n <vdr-datetime-picker formControlName=\"startsAt\"></vdr-datetime-picker>\n </vdr-form-field>\n <vdr-form-field [label]=\"'marketing.ends-at' | translate\" for=\"endsAt\">\n <vdr-datetime-picker formControlName=\"endsAt\"></vdr-datetime-picker>\n </vdr-form-field>\n <vdr-form-field [label]=\"'marketing.coupon-code' | translate\" for=\"couponCode\">\n <input\n id=\"couponCode\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"text\"\n formControlName=\"couponCode\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'marketing.per-customer-limit' | translate\"\n [tooltip]=\"'marketing.per-customer-limit-tooltip' | translate\"\n for=\"perCustomerUsageLimit\"\n >\n <input\n id=\"perCustomerUsageLimit\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"number\"\n min=\"1\"\n max=\"999\"\n formControlName=\"perCustomerUsageLimit\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'marketing.usage-limit' | translate\"\n [tooltip]=\"'marketing.usage-limit-tooltip' | translate\"\n for=\"usageLimit\"\n >\n <input\n id=\"usageLimit\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"number\"\n min=\"1\"\n max=\"9999999\"\n formControlName=\"usageLimit\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n [title]=\"'common.custom-fields' | translate\"\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Promotion\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"promotion-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n\n <vdr-card [title]=\"'marketing.conditions' | translate\" formArrayName=\"conditions\">\n <div *ngFor=\"let condition of conditions; index as i\">\n <vdr-configurable-input\n (remove)=\"removeCondition($event)\"\n [position]=\"i\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n [operation]=\"condition\"\n [operationDefinition]=\"getConditionDefinition(condition)\"\n [formControlName]=\"i\"\n ></vdr-configurable-input>\n </div>\n <div>\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'marketing.add-condition' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let condition of getAvailableConditions()\"\n type=\"button\"\n vdrDropdownItem\n class=\"item-wrap\"\n (click)=\"addCondition(condition)\"\n >\n {{ condition.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'marketing.actions' | translate\" formArrayName=\"actions\">\n <div *ngFor=\"let action of actions; index as i\">\n <vdr-configurable-input\n (remove)=\"removeAction($event)\"\n [position]=\"i\"\n [operation]=\"action\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n [operationDefinition]=\"getActionDefinition(action)\"\n [formControlName]=\"i\"\n ></vdr-configurable-input>\n </div>\n <div>\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'marketing.add-action' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let action of getAvailableActions()\"\n type=\"button\"\n vdrDropdownItem\n class=\"item-wrap\"\n (click)=\"addAction(action)\"\n >\n {{ action.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n", styles: [".item-wrap{white-space:normal}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { 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.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ConfigurableInputComponent, selector: "vdr-configurable-input", inputs: ["operation", "operationDefinition", "readonly", "removable", "position", "hideDescription"], outputs: ["remove"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "component", type: i1.RichTextEditorComponent, selector: "vdr-rich-text-editor", inputs: ["label", "readonly"] }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.DatetimePickerComponent, selector: "vdr-datetime-picker", inputs: ["yearRange", "weekStartDay", "timeGranularityInterval", "min", "max", "readonly"] }, { 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.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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
268
268
  }
269
269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PromotionDetailComponent, decorators: [{
270
270
  type: Component,
271
- args: [{ selector: 'vdr-promotion-detail', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"promotion-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdatePromotion'\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"promotion-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <clr-toggle-wrapper>\r\n <input type=\"checkbox\" clrToggle name=\"enabled\" formControlName=\"enabled\" />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n class=\"form-grid-span\"\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'marketing.starts-at' | translate\" for=\"startsAt\">\r\n <vdr-datetime-picker formControlName=\"startsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.ends-at' | translate\" for=\"endsAt\">\r\n <vdr-datetime-picker formControlName=\"endsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.coupon-code' | translate\" for=\"couponCode\">\r\n <input\r\n id=\"couponCode\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"couponCode\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'marketing.per-customer-limit' | translate\"\r\n [tooltip]=\"'marketing.per-customer-limit-tooltip' | translate\"\r\n for=\"perCustomerUsageLimit\"\r\n >\r\n <input\r\n id=\"perCustomerUsageLimit\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"999\"\r\n formControlName=\"perCustomerUsageLimit\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'marketing.usage-limit' | translate\"\r\n [tooltip]=\"'marketing.usage-limit-tooltip' | translate\"\r\n for=\"usageLimit\"\r\n >\r\n <input\r\n id=\"usageLimit\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"9999999\"\r\n formControlName=\"usageLimit\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n [title]=\"'common.custom-fields' | translate\"\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Promotion\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"promotion-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-card [title]=\"'marketing.conditions' | translate\" formArrayName=\"conditions\">\r\n <div *ngFor=\"let condition of conditions; index as i\">\r\n <vdr-configurable-input\r\n (remove)=\"removeCondition($event)\"\r\n [position]=\"i\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operation]=\"condition\"\r\n [operationDefinition]=\"getConditionDefinition(condition)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n </div>\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-condition' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let condition of getAvailableConditions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n class=\"item-wrap\"\r\n (click)=\"addCondition(condition)\"\r\n >\r\n {{ condition.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'marketing.actions' | translate\" formArrayName=\"actions\">\r\n <div *ngFor=\"let action of actions; index as i\">\r\n <vdr-configurable-input\r\n (remove)=\"removeAction($event)\"\r\n [position]=\"i\"\r\n [operation]=\"action\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operationDefinition]=\"getActionDefinition(action)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n </div>\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-action' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let action of getAvailableActions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n class=\"item-wrap\"\r\n (click)=\"addAction(action)\"\r\n >\r\n {{ action.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n", styles: [".item-wrap{white-space:normal}\n"] }]
271
+ args: [{ selector: 'vdr-promotion-detail', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <div class=\"flex clr-align-items-center\">\n <vdr-language-selector\n [disabled]=\"isNew$ | async\"\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"languageCode$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n ></vdr-language-selector>\n </div>\n </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"promotion-detail\" />\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n *vdrIfPermissions=\"'UpdatePromotion'\"\n [disabled]=\"!saveButtonEnabled()\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"promotion-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *vdrIfPermissions=\"'UpdatePromotion'\">\n <clr-toggle-wrapper>\n <input type=\"checkbox\" clrToggle name=\"enabled\" formControlName=\"enabled\" />\n <label>{{ 'common.enabled' | translate }}</label>\n </clr-toggle-wrapper>\n </vdr-card>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"text\"\n formControlName=\"name\"\n />\n </vdr-form-field>\n <vdr-rich-text-editor\n class=\"form-grid-span\"\n formControlName=\"description\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n [label]=\"'common.description' | translate\"\n ></vdr-rich-text-editor>\n <vdr-form-field [label]=\"'marketing.starts-at' | translate\" for=\"startsAt\">\n <vdr-datetime-picker formControlName=\"startsAt\"></vdr-datetime-picker>\n </vdr-form-field>\n <vdr-form-field [label]=\"'marketing.ends-at' | translate\" for=\"endsAt\">\n <vdr-datetime-picker formControlName=\"endsAt\"></vdr-datetime-picker>\n </vdr-form-field>\n <vdr-form-field [label]=\"'marketing.coupon-code' | translate\" for=\"couponCode\">\n <input\n id=\"couponCode\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"text\"\n formControlName=\"couponCode\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'marketing.per-customer-limit' | translate\"\n [tooltip]=\"'marketing.per-customer-limit-tooltip' | translate\"\n for=\"perCustomerUsageLimit\"\n >\n <input\n id=\"perCustomerUsageLimit\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"number\"\n min=\"1\"\n max=\"999\"\n formControlName=\"perCustomerUsageLimit\"\n />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'marketing.usage-limit' | translate\"\n [tooltip]=\"'marketing.usage-limit-tooltip' | translate\"\n for=\"usageLimit\"\n >\n <input\n id=\"usageLimit\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n type=\"number\"\n min=\"1\"\n max=\"9999999\"\n formControlName=\"usageLimit\"\n />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n [title]=\"'common.custom-fields' | translate\"\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Promotion\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n\n <vdr-custom-detail-component-host\n locationId=\"promotion-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n\n <vdr-card [title]=\"'marketing.conditions' | translate\" formArrayName=\"conditions\">\n <div *ngFor=\"let condition of conditions; index as i\">\n <vdr-configurable-input\n (remove)=\"removeCondition($event)\"\n [position]=\"i\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n [operation]=\"condition\"\n [operationDefinition]=\"getConditionDefinition(condition)\"\n [formControlName]=\"i\"\n ></vdr-configurable-input>\n </div>\n <div>\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'marketing.add-condition' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let condition of getAvailableConditions()\"\n type=\"button\"\n vdrDropdownItem\n class=\"item-wrap\"\n (click)=\"addCondition(condition)\"\n >\n {{ condition.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n <vdr-card [title]=\"'marketing.actions' | translate\" formArrayName=\"actions\">\n <div *ngFor=\"let action of actions; index as i\">\n <vdr-configurable-input\n (remove)=\"removeAction($event)\"\n [position]=\"i\"\n [operation]=\"action\"\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\n [operationDefinition]=\"getActionDefinition(action)\"\n [formControlName]=\"i\"\n ></vdr-configurable-input>\n </div>\n <div>\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'marketing.add-action' | translate }}\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button\n *ngFor=\"let action of getAvailableActions()\"\n type=\"button\"\n vdrDropdownItem\n class=\"item-wrap\"\n (click)=\"addAction(action)\"\n >\n {{ action.description }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-card>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n", styles: [".item-wrap{white-space:normal}\n"] }]
272
272
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.DataService }, { type: i2.FormBuilder }, { type: i1.NotificationService }] });
273
273
 
274
- const ASSIGN_PROMOTIONS_TO_CHANNEL = gql `
275
- mutation AssignPromotionsToChannel($input: AssignPromotionsToChannelInput!) {
276
- assignPromotionsToChannel(input: $input) {
277
- id
278
- name
279
- }
280
- }
274
+ const ASSIGN_PROMOTIONS_TO_CHANNEL = gql `
275
+ mutation AssignPromotionsToChannel($input: AssignPromotionsToChannelInput!) {
276
+ assignPromotionsToChannel(input: $input) {
277
+ id
278
+ name
279
+ }
280
+ }
281
281
  `;
282
- const REMOVE_PROMOTIONS_FROM_CHANNEL = gql `
283
- mutation RemovePromotionsFromChannel($input: RemovePromotionsFromChannelInput!) {
284
- removePromotionsFromChannel(input: $input) {
285
- id
286
- name
287
- }
288
- }
282
+ const REMOVE_PROMOTIONS_FROM_CHANNEL = gql `
283
+ mutation RemovePromotionsFromChannel($input: RemovePromotionsFromChannelInput!) {
284
+ removePromotionsFromChannel(input: $input) {
285
+ id
286
+ name
287
+ }
288
+ }
289
289
  `;
290
290
  const deletePromotionsBulkAction = createBulkDeleteAction({
291
291
  location: 'promotion-list',
@@ -345,16 +345,16 @@ const duplicatePromotionsBulkAction = {
345
345
  },
346
346
  };
347
347
 
348
- const GET_PROMOTION_LIST = gql `
349
- query GetPromotionList($options: PromotionListOptions) {
350
- promotions(options: $options) {
351
- items {
352
- ...Promotion
353
- }
354
- totalItems
355
- }
356
- }
357
- ${PROMOTION_FRAGMENT}
348
+ const GET_PROMOTION_LIST = gql `
349
+ query GetPromotionList($options: PromotionListOptions) {
350
+ promotions(options: $options) {
351
+ items {
352
+ ...Promotion
353
+ }
354
+ totalItems
355
+ }
356
+ }
357
+ ${PROMOTION_FRAGMENT}
358
358
  `;
359
359
  class PromotionListComponent extends TypedBaseListComponent {
360
360
  constructor() {
@@ -457,11 +457,11 @@ class PromotionListComponent extends TypedBaseListComponent {
457
457
  };
458
458
  }
459
459
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PromotionListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
460
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: PromotionListComponent, isStandalone: false, selector: "vdr-promotion-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"promotion-list\" />\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreatePromotion'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.create-new-promotion' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"promotion-list\" />\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 [id]=\"dataTableListId\"\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 (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"promotion-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'marketing.search-by-name-or-coupon-code' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-promotion=\"item\">{{ promotion.id }}</ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.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 id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.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 id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', promotion.id]\"\r\n ><span> {{ promotion.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 [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-promotion=\"item\">\r\n <vdr-chip *ngIf=\"promotion.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!promotion.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.coupon-code' | translate\"\r\n id=\"coupon-code\"\r\n [sort]=\"sorts.get('couponCode')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.couponCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.starts-at' | translate\"\r\n id=\"starts-at\"\r\n [sort]=\"sorts.get('startsAt')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.startsAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'marketing.ends-at' | translate\" id=\"ends-at\" [sort]=\"sorts.get('endsAt')\">\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.endsAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.per-customer-limit' | translate\"\r\n id=\"per-customer-limit\"\r\n [sort]=\"sorts.get('perCustomerUsageLimit')\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.perCustomerUsageLimit }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.usage-limit' | translate\"\r\n id=\"usage-limit\"\r\n [sort]=\"sorts.get('usageLimit')\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.usageLimit }}\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 [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".search-form{padding:0}.search-input{margin:6px 8px 0 0;min-width:200px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "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.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { 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", "trackByPath"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { 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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
460
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: PromotionListComponent, isStandalone: false, selector: "vdr-promotion-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"promotion-list\" />\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreatePromotion'\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'marketing.create-new-promotion' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"promotion-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"promotion-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'marketing.search-by-name-or-coupon-code' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-promotion=\"item\">{{ promotion.id }}</ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\"\n id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\"\n id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-promotion=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', promotion.id]\"\n ><span> {{ promotion.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-promotion=\"item\">\n <vdr-chip *ngIf=\"promotion.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!promotion.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.coupon-code' | translate\"\n id=\"coupon-code\"\n [sort]=\"sorts.get('couponCode')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.couponCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.starts-at' | translate\"\n id=\"starts-at\"\n [sort]=\"sorts.get('startsAt')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.startsAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'marketing.ends-at' | translate\" id=\"ends-at\" [sort]=\"sorts.get('endsAt')\">\n <ng-template let-promotion=\"item\">\n {{ promotion.endsAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.per-customer-limit' | translate\"\n id=\"per-customer-limit\"\n [sort]=\"sorts.get('perCustomerUsageLimit')\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.perCustomerUsageLimit }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.usage-limit' | translate\"\n id=\"usage-limit\"\n [sort]=\"sorts.get('usageLimit')\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.usageLimit }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n", styles: [".search-form{padding:0}.search-input{margin:6px 8px 0 0;min-width:200px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "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.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { 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", "trackByPath"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { 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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
461
461
  }
462
462
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PromotionListComponent, decorators: [{
463
463
  type: Component,
464
- args: [{ selector: 'vdr-promotion-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"promotion-list\" />\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreatePromotion'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.create-new-promotion' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"promotion-list\" />\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 [id]=\"dataTableListId\"\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 (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"promotion-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'marketing.search-by-name-or-coupon-code' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-promotion=\"item\">{{ promotion.id }}</ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.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 id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.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 id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', promotion.id]\"\r\n ><span> {{ promotion.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 [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-promotion=\"item\">\r\n <vdr-chip *ngIf=\"promotion.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!promotion.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.coupon-code' | translate\"\r\n id=\"coupon-code\"\r\n [sort]=\"sorts.get('couponCode')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.couponCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.starts-at' | translate\"\r\n id=\"starts-at\"\r\n [sort]=\"sorts.get('startsAt')\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.startsAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'marketing.ends-at' | translate\" id=\"ends-at\" [sort]=\"sorts.get('endsAt')\">\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.endsAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.per-customer-limit' | translate\"\r\n id=\"per-customer-limit\"\r\n [sort]=\"sorts.get('perCustomerUsageLimit')\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.perCustomerUsageLimit }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'marketing.usage-limit' | translate\"\r\n id=\"usage-limit\"\r\n [sort]=\"sorts.get('usageLimit')\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-promotion=\"item\">\r\n {{ promotion.usageLimit }}\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 [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".search-form{padding:0}.search-input{margin:6px 8px 0 0;min-width:200px}\n"] }]
464
+ args: [{ selector: 'vdr-promotion-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left>\n <vdr-language-selector\n [availableLanguageCodes]=\"availableLanguages$ | async\"\n [currentLanguageCode]=\"contentLanguage$ | async\"\n (languageCodeChange)=\"setLanguage($event)\"\n />\n </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"promotion-list\" />\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreatePromotion'\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'marketing.create-new-promotion' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"promotion-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-data-table-2\n [id]=\"dataTableListId\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"promotion-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n />\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'marketing.search-by-name-or-coupon-code' | translate\"\n />\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-promotion=\"item\">{{ promotion.id }}</ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\"\n id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\"\n id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-promotion=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', promotion.id]\"\n ><span> {{ promotion.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\n <ng-template let-promotion=\"item\">\n <vdr-chip *ngIf=\"promotion.enabled\" colorType=\"success\">{{\n 'common.enabled' | translate\n }}</vdr-chip>\n <vdr-chip *ngIf=\"!promotion.enabled\" colorType=\"warning\">{{\n 'common.disabled' | translate\n }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.coupon-code' | translate\"\n id=\"coupon-code\"\n [sort]=\"sorts.get('couponCode')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.couponCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.starts-at' | translate\"\n id=\"starts-at\"\n [sort]=\"sorts.get('startsAt')\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.startsAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'marketing.ends-at' | translate\" id=\"ends-at\" [sort]=\"sorts.get('endsAt')\">\n <ng-template let-promotion=\"item\">\n {{ promotion.endsAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.per-customer-limit' | translate\"\n id=\"per-customer-limit\"\n [sort]=\"sorts.get('perCustomerUsageLimit')\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.perCustomerUsageLimit }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'marketing.usage-limit' | translate\"\n id=\"usage-limit\"\n [sort]=\"sorts.get('usageLimit')\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-promotion=\"item\">\n {{ promotion.usageLimit }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n [sorts]=\"sorts\"\n />\n</vdr-data-table-2>\n", styles: [".search-form{padding:0}.search-input{margin:6px 8px 0 0;min-width:200px}\n"] }]
465
465
  }], ctorParameters: () => [] });
466
466
 
467
467
  const createRoutes = (pageService) => [