@vendure/admin-ui 2.1.2 → 2.1.4
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/catalog.module.d.ts +1 -0
- package/core/common/generated-types.d.ts +2 -1
- package/core/common/version.d.ts +1 -1
- package/core/extension/add-nav-menu-item.d.ts +5 -1
- package/core/providers/nav-builder/nav-builder-types.d.ts +27 -1
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/customer/customer.module.d.ts +1 -2
- package/esm2022/catalog/catalog.module.mjs +6 -1
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +2 -2
- package/esm2022/core/common/generated-types.mjs +1 -1
- package/esm2022/core/common/utilities/configurable-operation-utils.mjs +10 -2
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/data/utils/add-custom-fields.mjs +5 -1
- package/esm2022/core/extension/add-nav-menu-item.mjs +6 -2
- package/esm2022/core/providers/nav-builder/nav-builder-types.mjs +1 -1
- package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +2 -2
- package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +1 -1
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +3 -3
- package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +2 -2
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +11 -11
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +2 -2
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +2 -2
- package/esm2022/customer/customer.module.mjs +6 -3
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +9 -9
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +3 -3
- package/esm2022/marketing/marketing.module.mjs +6 -2
- package/esm2022/order/order.module.mjs +6 -2
- package/esm2022/settings/components/channel-list/channel-list-bulk-actions.mjs +11 -4
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +9 -9
- package/esm2022/settings/settings.module.mjs +6 -2
- package/esm2022/system/system.module.mjs +1 -1
- package/fesm2022/vendure-admin-ui-catalog.mjs +6 -1
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +38 -22
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +5 -2
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +15 -11
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +5 -1
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +21 -10
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/marketing.module.d.ts +1 -1
- package/order/order.module.d.ts +1 -1
- package/package.json +18 -18
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -1
- package/settings/settings.module.d.ts +1 -1
- package/static/styles/theme/dark.scss +2 -1
- package/static/theme.min.css +1 -1
|
@@ -5994,6 +5994,10 @@ function addCustomFields(documentNode, customFields) {
|
|
|
5994
5994
|
// so we treat it as an alias
|
|
5995
5995
|
entityType = 'Address';
|
|
5996
5996
|
}
|
|
5997
|
+
if (entityType === 'Country') {
|
|
5998
|
+
// Country is an alias of Region
|
|
5999
|
+
entityType = 'Region';
|
|
6000
|
+
}
|
|
5997
6001
|
const customFieldsForType = customFields[entityType];
|
|
5998
6002
|
if (customFieldsForType && customFieldsForType.length) {
|
|
5999
6003
|
fragmentDef.selectionSet.selections.push({
|
|
@@ -7143,7 +7147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
7143
7147
|
}], ctorParameters: function () { return [{ type: AlertsService }]; } });
|
|
7144
7148
|
|
|
7145
7149
|
// Auto-generated by the set-version.js script.
|
|
7146
|
-
const ADMIN_UI_VERSION = '2.1.
|
|
7150
|
+
const ADMIN_UI_VERSION = '2.1.4';
|
|
7147
7151
|
|
|
7148
7152
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
7149
7153
|
class FormFieldControlDirective {
|
|
@@ -7323,11 +7327,11 @@ class ModalDialogComponent {
|
|
|
7323
7327
|
}
|
|
7324
7328
|
}
|
|
7325
7329
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ModalDialogComponent, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7326
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ModalDialogComponent, selector: "vdr-modal-dialog", ngImport: i0, template: "<div [dir]=\"direction$ | async\">\r\n <clr-modal [clrModalOpen]=\"true\" (clrModalOpenChange)=\"modalOpenChange($event)\"\r\n [clrModalClosable]=\"options?.closable\" [clrModalSize]=\"options?.size\"\r\n [ngClass]=\"'modal-valign-' + (options?.verticalAlign || 'center')\">\r\n <h3 class=\"modal-title\"><ng-container *ngTemplateOutlet=\"(titleTemplateRef$ | async)\"></ng-container></h3>\r\n <div class=\"modal-body\">\r\n <vdr-dialog-component-outlet [component]=\"childComponentType\"\r\n (create)=\"onCreate($event)\"></vdr-dialog-component-outlet>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"(buttonsTemplateRef$ | async)\"></ng-container>\r\n </div>\r\n </clr-modal>\r\n</div>", styles: ["::ng-deep clr-modal.modal-valign-top .modal{justify-content:flex-start}::ng-deep clr-modal.modal-valign-bottom .modal{justify-content:flex-end}.modal-body{display:flex;flex-direction:column;container-type:inline-size}\n"], dependencies: [{ kind: "component", type: i1$3.ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalCloseButtonAriaLabel", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalPreventClose", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { kind: "directive", type: i1$3.ClrModalBody, selector: ".modal-body" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: DialogComponentOutletComponent, selector: "vdr-dialog-component-outlet", inputs: ["component"], outputs: ["create"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
7330
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ModalDialogComponent, selector: "vdr-modal-dialog", ngImport: i0, template: "<div [dir]=\"direction$ | async\">\r\n <clr-modal [clrModalOpen]=\"true\" (clrModalOpenChange)=\"modalOpenChange($event)\"\r\n [clrModalClosable]=\"options?.closable\" [clrModalSize]=\"options?.size\"\r\n [ngClass]=\"'modal-valign-' + (options?.verticalAlign || 'center')\">\r\n <h3 class=\"modal-title\"><ng-container *ngTemplateOutlet=\"(titleTemplateRef$ | async)\"></ng-container></h3>\r\n <div class=\"modal-body\">\r\n <vdr-dialog-component-outlet [component]=\"childComponentType\"\r\n (create)=\"onCreate($event)\"></vdr-dialog-component-outlet>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"(buttonsTemplateRef$ | async)\"></ng-container>\r\n </div>\r\n </clr-modal>\r\n</div>", styles: ["::ng-deep clr-modal.modal-valign-top .modal{justify-content:flex-start}::ng-deep clr-modal.modal-valign-bottom .modal{justify-content:flex-end}::ng-deep clr-modal .modal-dialog{display:flex}::ng-deep clr-modal .modal-content-wrapper{flex:1;display:flex}::ng-deep clr-modal .modal-dialog .modal-content{flex:1;display:flex;flex-direction:column}@media screen and (max-height: 700px){::ng-deep clr-modal .modal-dialog .modal-content{padding:.8rem}::ng-deep clr-modal .modal-header,::ng-deep clr-modal .modal-header--accessible{padding-bottom:.8rem}::ng-deep clr-modal .modal-footer{padding-top:.8rem}}.modal-body{display:flex;flex-direction:column;container-type:inline-size}\n"], dependencies: [{ kind: "component", type: i1$3.ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalCloseButtonAriaLabel", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalPreventClose", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { kind: "directive", type: i1$3.ClrModalBody, selector: ".modal-body" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: DialogComponentOutletComponent, selector: "vdr-dialog-component-outlet", inputs: ["component"], outputs: ["create"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
7327
7331
|
}
|
|
7328
7332
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ModalDialogComponent, decorators: [{
|
|
7329
7333
|
type: Component,
|
|
7330
|
-
args: [{ selector: 'vdr-modal-dialog', template: "<div [dir]=\"direction$ | async\">\r\n <clr-modal [clrModalOpen]=\"true\" (clrModalOpenChange)=\"modalOpenChange($event)\"\r\n [clrModalClosable]=\"options?.closable\" [clrModalSize]=\"options?.size\"\r\n [ngClass]=\"'modal-valign-' + (options?.verticalAlign || 'center')\">\r\n <h3 class=\"modal-title\"><ng-container *ngTemplateOutlet=\"(titleTemplateRef$ | async)\"></ng-container></h3>\r\n <div class=\"modal-body\">\r\n <vdr-dialog-component-outlet [component]=\"childComponentType\"\r\n (create)=\"onCreate($event)\"></vdr-dialog-component-outlet>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"(buttonsTemplateRef$ | async)\"></ng-container>\r\n </div>\r\n </clr-modal>\r\n</div>", styles: ["::ng-deep clr-modal.modal-valign-top .modal{justify-content:flex-start}::ng-deep clr-modal.modal-valign-bottom .modal{justify-content:flex-end}.modal-body{display:flex;flex-direction:column;container-type:inline-size}\n"] }]
|
|
7334
|
+
args: [{ selector: 'vdr-modal-dialog', template: "<div [dir]=\"direction$ | async\">\r\n <clr-modal [clrModalOpen]=\"true\" (clrModalOpenChange)=\"modalOpenChange($event)\"\r\n [clrModalClosable]=\"options?.closable\" [clrModalSize]=\"options?.size\"\r\n [ngClass]=\"'modal-valign-' + (options?.verticalAlign || 'center')\">\r\n <h3 class=\"modal-title\"><ng-container *ngTemplateOutlet=\"(titleTemplateRef$ | async)\"></ng-container></h3>\r\n <div class=\"modal-body\">\r\n <vdr-dialog-component-outlet [component]=\"childComponentType\"\r\n (create)=\"onCreate($event)\"></vdr-dialog-component-outlet>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"(buttonsTemplateRef$ | async)\"></ng-container>\r\n </div>\r\n </clr-modal>\r\n</div>", styles: ["::ng-deep clr-modal.modal-valign-top .modal{justify-content:flex-start}::ng-deep clr-modal.modal-valign-bottom .modal{justify-content:flex-end}::ng-deep clr-modal .modal-dialog{display:flex}::ng-deep clr-modal .modal-content-wrapper{flex:1;display:flex}::ng-deep clr-modal .modal-dialog .modal-content{flex:1;display:flex;flex-direction:column}@media screen and (max-height: 700px){::ng-deep clr-modal .modal-dialog .modal-content{padding:.8rem}::ng-deep clr-modal .modal-header,::ng-deep clr-modal .modal-header--accessible{padding-bottom:.8rem}::ng-deep clr-modal .modal-footer{padding-top:.8rem}}.modal-body{display:flex;flex-direction:column;container-type:inline-size}\n"] }]
|
|
7331
7335
|
}], ctorParameters: function () { return [{ type: LocalizationService }]; } });
|
|
7332
7336
|
|
|
7333
7337
|
/**
|
|
@@ -9177,8 +9181,8 @@ export default [
|
|
|
9177
9181
|
id: 'my-button',
|
|
9178
9182
|
label: 'My Action',
|
|
9179
9183
|
locationId: '${locationId}',
|
|
9180
|
-
})
|
|
9181
|
-
]
|
|
9184
|
+
}),
|
|
9185
|
+
];`,
|
|
9182
9186
|
navMenu: locationId => `
|
|
9183
9187
|
import { addNavMenuSection } from '@vendure/admin-ui/core';
|
|
9184
9188
|
|
|
@@ -9187,10 +9191,10 @@ export default [
|
|
|
9187
9191
|
id: 'my-menu-item',
|
|
9188
9192
|
label: 'My Menu Item',
|
|
9189
9193
|
routerLink: ['/extensions/my-plugin'],
|
|
9190
|
-
}
|
|
9191
|
-
'${locationId}'
|
|
9192
|
-
)
|
|
9193
|
-
]
|
|
9194
|
+
},
|
|
9195
|
+
'${locationId}',
|
|
9196
|
+
),
|
|
9197
|
+
];`,
|
|
9194
9198
|
detailComponent: locationId => `
|
|
9195
9199
|
import { registerCustomDetailComponent } from '@vendure/admin-ui/core';
|
|
9196
9200
|
|
|
@@ -9198,8 +9202,8 @@ export default [
|
|
|
9198
9202
|
registerCustomDetailComponent({
|
|
9199
9203
|
locationId: '${locationId}',
|
|
9200
9204
|
component: MyCustomComponent,
|
|
9201
|
-
})
|
|
9202
|
-
]
|
|
9205
|
+
}),
|
|
9206
|
+
];`,
|
|
9203
9207
|
dataTable: (locationId, metadata) => `
|
|
9204
9208
|
import { registerDataTableComponent } from '@vendure/admin-ui/core';
|
|
9205
9209
|
|
|
@@ -9208,8 +9212,8 @@ export default [
|
|
|
9208
9212
|
tableId: '${locationId}',
|
|
9209
9213
|
columnId: '${metadata}',
|
|
9210
9214
|
component: MyCustomComponent,
|
|
9211
|
-
})
|
|
9212
|
-
]
|
|
9215
|
+
}),
|
|
9216
|
+
];`,
|
|
9213
9217
|
};
|
|
9214
9218
|
|
|
9215
9219
|
class MainNavComponent extends BaseNavComponent {
|
|
@@ -10883,11 +10887,11 @@ class HtmlEditorFormInputComponent extends BaseCodeEditorFormInputComponent {
|
|
|
10883
10887
|
return html.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
10884
10888
|
}
|
|
10885
10889
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HtmlEditorFormInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10886
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: HtmlEditorFormInputComponent, selector: "vdr-html-editor-form-input", usesInheritance: true, ngImport: i0, template: "<div #editor class=\"code-editor html-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-
|
|
10890
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: HtmlEditorFormInputComponent, selector: "vdr-html-editor-form-input", usesInheritance: true, ngImport: i0, template: "<div #editor class=\"code-editor html-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-weight-200);border-radius:3px;padding:6px;tab-size:4;font-family:Source Code Pro,Lucida Console,Monaco,monospace;font-size:14px;font-weight:400;height:340px;letter-spacing:normal;line-height:20px;resize:both;text-align:initial;min-width:200px}.code-editor:focus{border-color:var(--color-primary-500)}.code-editor.invalid{border-color:var(--clr-forms-invalid-color)}.error-message{min-height:1rem;color:var(--color-json-editor-error)}.code-editor ::ng-deep .he-tag{color:var(--color-json-editor-key)}.code-editor ::ng-deep .he-attr{color:var(--color-json-editor-number)}.code-editor ::ng-deep .he-error{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--color-json-editor-error)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10887
10891
|
}
|
|
10888
10892
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HtmlEditorFormInputComponent, decorators: [{
|
|
10889
10893
|
type: Component,
|
|
10890
|
-
args: [{ selector: 'vdr-html-editor-form-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #editor class=\"code-editor html-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-
|
|
10894
|
+
args: [{ selector: 'vdr-html-editor-form-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #editor class=\"code-editor html-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-weight-200);border-radius:3px;padding:6px;tab-size:4;font-family:Source Code Pro,Lucida Console,Monaco,monospace;font-size:14px;font-weight:400;height:340px;letter-spacing:normal;line-height:20px;resize:both;text-align:initial;min-width:200px}.code-editor:focus{border-color:var(--color-primary-500)}.code-editor.invalid{border-color:var(--clr-forms-invalid-color)}.error-message{min-height:1rem;color:var(--color-json-editor-error)}.code-editor ::ng-deep .he-tag{color:var(--color-json-editor-key)}.code-editor ::ng-deep .he-attr{color:var(--color-json-editor-number)}.code-editor ::ng-deep .he-error{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--color-json-editor-error)}\n"] }]
|
|
10891
10895
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
10892
10896
|
|
|
10893
10897
|
function jsonValidator() {
|
|
@@ -10964,11 +10968,11 @@ class JsonEditorFormInputComponent extends BaseCodeEditorFormInputComponent {
|
|
|
10964
10968
|
});
|
|
10965
10969
|
}
|
|
10966
10970
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: JsonEditorFormInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10967
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: JsonEditorFormInputComponent, selector: "vdr-json-editor-form-input", usesInheritance: true, ngImport: i0, template: "<div #editor class=\"code-editor json-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-
|
|
10971
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: JsonEditorFormInputComponent, selector: "vdr-json-editor-form-input", usesInheritance: true, ngImport: i0, template: "<div #editor class=\"code-editor json-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-weight-200);border-radius:3px;padding:6px;tab-size:4;font-family:Source Code Pro,Lucida Console,Monaco,monospace;font-size:14px;font-weight:400;height:340px;letter-spacing:normal;line-height:20px;resize:both;text-align:initial;min-width:200px}.code-editor:focus{border-color:var(--color-primary-500)}.code-editor.invalid{border-color:var(--clr-forms-invalid-color)}.error-message{min-height:1rem;color:var(--color-json-editor-error)}.code-editor ::ng-deep .je-string{color:var(--color-json-editor-string)}.code-editor ::ng-deep .je-number{color:var(--color-json-editor-number)}.code-editor ::ng-deep .je-boolean{color:var(--color-json-editor-boolean)}.code-editor ::ng-deep .je-null{color:var(--color-json-editor-null)}.code-editor ::ng-deep .je-key{color:var(--color-json-editor-key)}.code-editor ::ng-deep .je-error{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--color-json-editor-error)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10968
10972
|
}
|
|
10969
10973
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: JsonEditorFormInputComponent, decorators: [{
|
|
10970
10974
|
type: Component,
|
|
10971
|
-
args: [{ selector: 'vdr-json-editor-form-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #editor class=\"code-editor json-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-
|
|
10975
|
+
args: [{ selector: 'vdr-json-editor-form-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #editor class=\"code-editor json-editor\" [class.invalid]=\"!isValid\" [style.height]=\"height || '300px'\"></div>\r\n<div class=\"error-message\">\r\n <span *ngIf=\"errorMessage\">{{ errorMessage }}</span>\r\n</div>\r\n", styles: [".code-editor{min-height:6rem;background-color:var(--color-json-editor-background-color);color:var(--color-json-editor-text);border:1px solid var(--color-weight-200);border-radius:3px;padding:6px;tab-size:4;font-family:Source Code Pro,Lucida Console,Monaco,monospace;font-size:14px;font-weight:400;height:340px;letter-spacing:normal;line-height:20px;resize:both;text-align:initial;min-width:200px}.code-editor:focus{border-color:var(--color-primary-500)}.code-editor.invalid{border-color:var(--clr-forms-invalid-color)}.error-message{min-height:1rem;color:var(--color-json-editor-error)}.code-editor ::ng-deep .je-string{color:var(--color-json-editor-string)}.code-editor ::ng-deep .je-number{color:var(--color-json-editor-number)}.code-editor ::ng-deep .je-boolean{color:var(--color-json-editor-boolean)}.code-editor ::ng-deep .je-null{color:var(--color-json-editor-null)}.code-editor ::ng-deep .je-key{color:var(--color-json-editor-key)}.code-editor ::ng-deep .je-error{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--color-json-editor-error)}\n"] }]
|
|
10972
10976
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
10973
10977
|
|
|
10974
10978
|
/**
|
|
@@ -10978,7 +10982,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
10978
10982
|
*/
|
|
10979
10983
|
function getConfigArgValue(value) {
|
|
10980
10984
|
try {
|
|
10981
|
-
|
|
10985
|
+
const result = value != null ? JSON.parse(value) : undefined;
|
|
10986
|
+
if (result && typeof result === 'object' && !Array.isArray(result)) {
|
|
10987
|
+
// There is an edge-case where the value is a valid JSON-encoded string and
|
|
10988
|
+
// will get parsed as an object, but we actually want it to be a string.
|
|
10989
|
+
return JSON.stringify(result);
|
|
10990
|
+
}
|
|
10991
|
+
else {
|
|
10992
|
+
return result;
|
|
10993
|
+
}
|
|
10982
10994
|
}
|
|
10983
10995
|
catch (e) {
|
|
10984
10996
|
return value;
|
|
@@ -11874,7 +11886,7 @@ class DatetimePickerService {
|
|
|
11874
11886
|
this.min = null;
|
|
11875
11887
|
this.max = null;
|
|
11876
11888
|
this.jumping = false;
|
|
11877
|
-
this.selected$ = this.selectedDatetime$.pipe(map(value => value && value.toDate()));
|
|
11889
|
+
this.selected$ = this.selectedDatetime$.pipe(map(value => value && value.toDate()), distinctUntilChanged((a, b) => a?.getTime() === b?.getTime()));
|
|
11878
11890
|
this.viewing$ = this.viewingDatetime$.pipe(map(value => value.toDate()));
|
|
11879
11891
|
this.weekStartDayIndex = dayOfWeekIndex['mon'];
|
|
11880
11892
|
this.calendarView$ = combineLatest(this.viewingDatetime$, this.selectedDatetime$).pipe(map(([viewing, selected]) => this.generateCalendarView(viewing, selected)));
|
|
@@ -14392,11 +14404,11 @@ class AssetPickerDialogComponent {
|
|
|
14392
14404
|
});
|
|
14393
14405
|
}
|
|
14394
14406
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AssetPickerDialogComponent, deps: [{ token: DataService }, { token: NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14395
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AssetPickerDialogComponent, selector: "vdr-asset-picker-dialog", viewQueries: [{ propertyName: "assetSearchInputComponent", first: true, predicate: ["assetSearchInputComponent"], descendants: true }, { propertyName: "assetGalleryComponent", first: true, predicate: ["assetGalleryComponent"], descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;
|
|
14407
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AssetPickerDialogComponent, selector: "vdr-asset-picker-dialog", viewQueries: [{ propertyName: "assetSearchInputComponent", first: true, predicate: ["assetSearchInputComponent"], descendants: true }, { propertyName: "assetGalleryComponent", first: true, predicate: ["assetGalleryComponent"], descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"], dependencies: [{ kind: "component", type: AssetSearchInputComponent, selector: "vdr-asset-search-input", inputs: ["tags"], outputs: ["searchTermChange", "tagsChange"] }, { kind: "component", type: ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: AssetFileInputComponent, selector: "vdr-asset-file-input", inputs: ["dropZoneTarget", "uploading"], outputs: ["selectFiles"] }, { kind: "component", type: AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: ["assets", "multiSelect", "canDelete"], outputs: ["selectionChange", "deleteAssets", "editAssetClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14396
14408
|
}
|
|
14397
14409
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AssetPickerDialogComponent, decorators: [{
|
|
14398
14410
|
type: Component,
|
|
14399
|
-
args: [{ selector: 'vdr-asset-picker-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;
|
|
14411
|
+
args: [{ selector: 'vdr-asset-picker-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"] }]
|
|
14400
14412
|
}], ctorParameters: function () { return [{ type: DataService }, { type: NotificationService }]; }, propDecorators: { assetSearchInputComponent: [{
|
|
14401
14413
|
type: ViewChild,
|
|
14402
14414
|
args: ['assetSearchInputComponent']
|
|
@@ -21529,6 +21541,8 @@ function addActionBarItem(config) {
|
|
|
21529
21541
|
*
|
|
21530
21542
|
* @example
|
|
21531
21543
|
* ```ts title="providers.ts"
|
|
21544
|
+
* import { addNavMenuSection } from '\@vendure/admin-ui/core';
|
|
21545
|
+
*
|
|
21532
21546
|
* export default [
|
|
21533
21547
|
* addNavMenuSection({
|
|
21534
21548
|
* id: 'reports',
|
|
@@ -21564,6 +21578,8 @@ function addNavMenuSection(config, before) {
|
|
|
21564
21578
|
*
|
|
21565
21579
|
* @example
|
|
21566
21580
|
* ```ts title="providers.ts"
|
|
21581
|
+
* import { addNavMenuItem } from '\@vendure/admin-ui/core';
|
|
21582
|
+
*
|
|
21567
21583
|
* export default [
|
|
21568
21584
|
* addNavMenuItem({
|
|
21569
21585
|
* id: 'reviews',
|
|
@@ -21573,7 +21589,7 @@ function addNavMenuSection(config, before) {
|
|
|
21573
21589
|
* },
|
|
21574
21590
|
* 'marketing'),
|
|
21575
21591
|
* ];
|
|
21576
|
-
*
|
|
21592
|
+
* ```
|
|
21577
21593
|
*
|
|
21578
21594
|
* @docsCategory nav-menu
|
|
21579
21595
|
*/
|