@vendure/admin-ui 1.7.3 → 1.7.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/bundles/vendure-admin-ui-catalog.umd.js +27 -17
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +2 -2
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js +2 -2
- package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +2 -2
- package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
- package/core/common/version.d.ts +1 -1
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +28 -18
- package/esm2015/core/common/utilities/configurable-operation-utils.js +2 -2
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +3 -3
- package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +1 -1
- package/fesm2015/vendure-admin-ui-catalog.js +27 -17
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +2 -2
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js +2 -2
- package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
- package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
- package/package.json +2 -2
|
@@ -2945,16 +2945,18 @@
|
|
|
2945
2945
|
});
|
|
2946
2946
|
}
|
|
2947
2947
|
};
|
|
2948
|
-
ProductVariantsEditorComponent.prototype.addOption = function (
|
|
2949
|
-
var
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2948
|
+
ProductVariantsEditorComponent.prototype.addOption = function (index, optionName) {
|
|
2949
|
+
var group = this.optionGroups[index];
|
|
2950
|
+
if (group) {
|
|
2951
|
+
group.values.push({ name: optionName, locked: false });
|
|
2952
|
+
this.generateVariants();
|
|
2953
|
+
this.optionsChanged = true;
|
|
2954
|
+
}
|
|
2953
2955
|
};
|
|
2954
|
-
ProductVariantsEditorComponent.prototype.removeOption = function (
|
|
2956
|
+
ProductVariantsEditorComponent.prototype.removeOption = function (index, _g) {
|
|
2955
2957
|
var _this = this;
|
|
2956
2958
|
var id = _g.id, name = _g.name;
|
|
2957
|
-
var optionGroup = this.optionGroups
|
|
2959
|
+
var optionGroup = this.optionGroups[index];
|
|
2958
2960
|
if (optionGroup) {
|
|
2959
2961
|
if (!id) {
|
|
2960
2962
|
optionGroup.values = optionGroup.values.filter(function (v) { return v.name !== name; });
|
|
@@ -3179,15 +3181,23 @@
|
|
|
3179
3181
|
.reduce(function (flat, o) { return __spreadArray(__spreadArray([], __read(flat)), __read(o)); }, []);
|
|
3180
3182
|
var variants = this.generatedVariants
|
|
3181
3183
|
.filter(function (v) { return v.enabled && !v.existing; })
|
|
3182
|
-
.map(function (v) {
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3184
|
+
.map(function (v) {
|
|
3185
|
+
var optionIds = groups.map(function (group, index) {
|
|
3186
|
+
var option = group.options.find(function (o) { return o.name === v.options[index].name; });
|
|
3187
|
+
if (option) {
|
|
3188
|
+
return option.id;
|
|
3189
|
+
}
|
|
3190
|
+
else {
|
|
3191
|
+
throw new Error("Could not find a matching option for group " + group.name);
|
|
3192
|
+
}
|
|
3193
|
+
});
|
|
3194
|
+
return {
|
|
3195
|
+
price: v.price,
|
|
3196
|
+
sku: v.sku,
|
|
3197
|
+
stock: v.stock,
|
|
3198
|
+
optionIds: optionIds,
|
|
3199
|
+
};
|
|
3200
|
+
});
|
|
3191
3201
|
return this.productDetailService.createProductVariants(this.product, variants, options, this.languageCode);
|
|
3192
3202
|
};
|
|
3193
3203
|
ProductVariantsEditorComponent.prototype.deleteObsoleteVariants = function (input) {
|
|
@@ -3260,7 +3270,7 @@
|
|
|
3260
3270
|
ProductVariantsEditorComponent.decorators = [
|
|
3261
3271
|
{ type: i0.Component, args: [{
|
|
3262
3272
|
selector: 'vdr-product-variants-editor',
|
|
3263
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"(!formValueChanged && !optionsChanged) || getVariantsToAdd().length === 0\"\r\n >\r\n {{ 'common.add-new-variants' | translate: { count: getVariantsToAdd().length } }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<div *ngFor=\"let group of optionGroups\" class=\"option-groups\">\r\n <div class=\"name\">\r\n <label>{{ 'catalog.option' | translate }}</label>\r\n <input clrInput [(ngModel)]=\"group.name\" name=\"name\" [readonly]=\"!group.isNew\" />\r\n </div>\r\n <div class=\"values\">\r\n <label>{{ 'catalog.option-values' | translate }}</label>\r\n <vdr-option-value-input\r\n #optionValueInputComponent\r\n [options]=\"group.values\"\r\n [groupName]=\"group.name\"\r\n [disabled]=\"group.name === ''\"\r\n (add)=\"addOption(
|
|
3273
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"(!formValueChanged && !optionsChanged) || getVariantsToAdd().length === 0\"\r\n >\r\n {{ 'common.add-new-variants' | translate: { count: getVariantsToAdd().length } }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<div *ngFor=\"let group of optionGroups; index as i\" class=\"option-groups\">\r\n <div class=\"name\">\r\n <label>{{ 'catalog.option' | translate }}</label>\r\n <input clrInput [(ngModel)]=\"group.name\" name=\"name\" [readonly]=\"!group.isNew\" />\r\n </div>\r\n <div class=\"values\">\r\n <label>{{ 'catalog.option-values' | translate }}</label>\r\n <vdr-option-value-input\r\n #optionValueInputComponent\r\n [options]=\"group.values\"\r\n [groupName]=\"group.name\"\r\n [disabled]=\"group.name === ''\"\r\n (add)=\"addOption(i, $event.name)\"\r\n (remove)=\"removeOption(i, $event)\"\r\n ></vdr-option-value-input>\r\n </div>\r\n <div>\r\n <button\r\n [disabled]=\"group.locked\"\r\n class=\"btn btn-icon btn-danger-outline mt5\" (click)=\"removeOptionGroup(group)\">\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<button class=\"btn btn-primary-outline btn-sm\" (click)=\"addOptionGroup()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.add-option' | translate }}\r\n</button>\r\n\r\n<div class=\"variants-preview\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'catalog.variant' | translate }}</th>\r\n <th>{{ 'catalog.sku' | translate }}</th>\r\n <th>{{ 'catalog.price' | translate }}</th>\r\n <th>{{ 'catalog.stock-on-hand' | translate }}</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let variant of generatedVariants\" [class.disabled]=\"!variant.enabled || variant.existing\">\r\n <td class=\"left\">\r\n <clr-checkbox-wrapper *ngIf=\"!variant.existing\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"variant.enabled\"\r\n name=\"enabled\"\r\n clrCheckbox\r\n (ngModelChange)=\"formValueChanged = true\"\r\n />\r\n <label>{{ 'common.create' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </td>\r\n <td>\r\n {{ getVariantName(variant) | translate }}\r\n </td>\r\n <td>\r\n <div class=\"flex center\">\r\n <clr-input-container *ngIf=\"!variant.existing\">\r\n <input\r\n clrInput\r\n type=\"text\"\r\n [(ngModel)]=\"variant.sku\"\r\n [placeholder]=\"'catalog.sku' | translate\"\r\n name=\"sku\"\r\n required\r\n (ngModelChange)=\"onFormChanged(variant)\"\r\n />\r\n </clr-input-container>\r\n <span *ngIf=\"variant.existing\">{{ variant.sku }}</span>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"flex center\">\r\n <clr-input-container *ngIf=\"!variant.existing\">\r\n <vdr-currency-input\r\n clrInput\r\n [(ngModel)]=\"variant.price\"\r\n name=\"price\"\r\n [currencyCode]=\"currencyCode\"\r\n (ngModelChange)=\"onFormChanged(variant)\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n <span *ngIf=\"variant.existing\">{{ variant.price | localeCurrency: currencyCode }}</span>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"flex center\">\r\n <clr-input-container *ngIf=\"!variant.existing\">\r\n <input\r\n clrInput\r\n type=\"number\"\r\n [(ngModel)]=\"variant.stock\"\r\n name=\"stock\"\r\n min=\"0\"\r\n step=\"1\"\r\n (ngModelChange)=\"onFormChanged(variant)\"\r\n />\r\n </clr-input-container>\r\n <span *ngIf=\"variant.existing\">{{ variant.stock }}</span>\r\n </div>\r\n </td>\r\n <td>\r\n <vdr-dropdown *ngIf=\"variant.productVariantId as productVariantId\">\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteVariant(productVariantId, variant.options)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>\r\n",
|
|
3264
3274
|
changeDetection: i0.ChangeDetectionStrategy.Default,
|
|
3265
3275
|
styles: [".option-groups{display:flex}.option-groups:first-of-type{margin-top:24px}.values{flex:1;margin:0 6px}.variants-preview tr.disabled td{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}\n"]
|
|
3266
3276
|
},] }
|