@spartacus/cart
Version:
`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.
92 lines • 13 kB
JavaScript
import { Injectable } from '@angular/core';
import { combineLatest } from 'rxjs';
import { map, take } from 'rxjs/operators';
import { GlobalMessageType, } from '@spartacus/core';
import * as i0 from "@angular/core";
import * as i1 from "@spartacus/storefront";
import * as i2 from "@spartacus/cart/import-export/core";
import * as i3 from "@spartacus/core";
export class ExportOrderEntriesToCsvService {
constructor(exportCsvFileService, importExportConfig, globalMessageService, translationService) {
var _a, _b;
this.exportCsvFileService = exportCsvFileService;
this.importExportConfig = importExportConfig;
this.globalMessageService = globalMessageService;
this.translationService = translationService;
this.columns = [
{
name: {
key: 'code',
},
value: 'product.code',
},
{
name: {
key: 'quantity',
},
value: 'quantity',
},
...((_b = (_a = this.exportConfig) === null || _a === void 0 ? void 0 : _a.additionalColumns) !== null && _b !== void 0 ? _b : []),
];
}
get exportConfig() {
var _a;
return (_a = this.importExportConfig.cartImportExport) === null || _a === void 0 ? void 0 : _a.export;
}
get separator() {
var _a;
return (_a = this.importExportConfig.cartImportExport) === null || _a === void 0 ? void 0 : _a.file.separator;
}
downloadCsv(entries) {
this.getResolvedEntries(entries)
.pipe(take(1))
.subscribe((csvData) => this.download(csvData));
}
resolveValue(combinedKeys, entry) {
var _a, _b;
return ((_b = (_a = combinedKeys
.split('.')
.reduce((obj, key) => (obj ? obj[key] : ''), entry)) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '');
}
resolveValues(entries) {
return entries.map((entry) => this.columns.map((column) => this.resolveValue(column.value, entry)));
}
getTranslatedColumnHeaders() {
return combineLatest(this.columns.map((column) => this.translationService.translate(`exportEntries.columnNames.${column.name.key}`)));
}
displayExportMessage() {
this.globalMessageService.add({ key: 'exportEntries.exportMessage' }, GlobalMessageType.MSG_TYPE_INFO);
}
limitValues(data) {
var _a, _b;
return ((_a = this.exportConfig) === null || _a === void 0 ? void 0 : _a.maxEntries)
? data.splice(0, (_b = this.exportConfig) === null || _b === void 0 ? void 0 : _b.maxEntries)
: data;
}
getResolvedEntries(entries) {
const values = this.limitValues(this.resolveValues(entries));
return this.getTranslatedColumnHeaders().pipe(map((headers) => {
return [headers, ...values];
}));
}
download(entries) {
var _a, _b, _c;
if ((_a = this.exportConfig) === null || _a === void 0 ? void 0 : _a.messageEnabled) {
this.displayExportMessage();
}
setTimeout(() => {
if (this.exportConfig !== undefined && this.separator !== undefined) {
this.exportCsvFileService.download(entries, this.separator, this.exportConfig.fileOptions);
}
}, (_c = (_b = this.exportConfig) === null || _b === void 0 ? void 0 : _b.downloadDelay) !== null && _c !== void 0 ? _c : 0);
}
}
ExportOrderEntriesToCsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ExportOrderEntriesToCsvService, deps: [{ token: i1.ExportCsvFileService }, { token: i2.ImportExportConfig }, { token: i3.GlobalMessageService }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
ExportOrderEntriesToCsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ExportOrderEntriesToCsvService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ExportOrderEntriesToCsvService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.ExportCsvFileService }, { type: i2.ImportExportConfig }, { type: i3.GlobalMessageService }, { type: i3.TranslationService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LW9yZGVyLWVudHJpZXMtdG8tY3N2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9mZWF0dXJlLWxpYnMvY2FydC9pbXBvcnQtZXhwb3J0L2NvbXBvbmVudHMvZXhwb3J0LWVudHJpZXMvZXhwb3J0LW9yZGVyLWVudHJpZXMtdG8tY3N2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUVMLGlCQUFpQixHQUdsQixNQUFNLGlCQUFpQixDQUFDOzs7OztBQVd6QixNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQ1ksb0JBQTBDLEVBQzFDLGtCQUFzQyxFQUN0QyxvQkFBMEMsRUFDMUMsa0JBQXNDOztRQUh0Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBV3hDLFlBQU8sR0FBbUI7WUFDbEM7Z0JBQ0UsSUFBSSxFQUFFO29CQUNKLEdBQUcsRUFBRSxNQUFNO2lCQUNaO2dCQUNELEtBQUssRUFBRSxjQUFjO2FBQ3RCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFO29CQUNKLEdBQUcsRUFBRSxVQUFVO2lCQUNoQjtnQkFDRCxLQUFLLEVBQUUsVUFBVTthQUNsQjtZQUNELEdBQUcsQ0FBQyxNQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsaUJBQWlCLG1DQUFJLEVBQUUsQ0FBQztTQUNoRCxDQUFDO0lBeEJDLENBQUM7SUFFSixJQUFjLFlBQVk7O1FB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U0FBUyxFQUFFO2dCQUNuRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUNoQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDOUIsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxFQUFFLE1BQUEsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxhQUFhLG1DQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OzJIQWxHVSw4QkFBOEI7K0hBQTlCLDhCQUE4QixjQUY3QixNQUFNOzJGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBHbG9iYWxNZXNzYWdlU2VydmljZSxcbiAgR2xvYmFsTWVzc2FnZVR5cGUsXG4gIE9yZGVyRW50cnksXG4gIFRyYW5zbGF0aW9uU2VydmljZSxcbn0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcbmltcG9ydCB7IEV4cG9ydENzdkZpbGVTZXJ2aWNlIH0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcbmltcG9ydCB7XG4gIEV4cG9ydENvbHVtbixcbiAgRXhwb3J0Q29uZmlnLFxuICBJbXBvcnRFeHBvcnRDb25maWcsXG59IGZyb20gJ0BzcGFydGFjdXMvY2FydC9pbXBvcnQtZXhwb3J0L2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0T3JkZXJFbnRyaWVzVG9Dc3ZTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGV4cG9ydENzdkZpbGVTZXJ2aWNlOiBFeHBvcnRDc3ZGaWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgaW1wb3J0RXhwb3J0Q29uZmlnOiBJbXBvcnRFeHBvcnRDb25maWcsXG4gICAgcHJvdGVjdGVkIGdsb2JhbE1lc3NhZ2VTZXJ2aWNlOiBHbG9iYWxNZXNzYWdlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHByb3RlY3RlZCBnZXQgZXhwb3J0Q29uZmlnKCk6IEV4cG9ydENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0RXhwb3J0Q29uZmlnLmNhcnRJbXBvcnRFeHBvcnQ/LmV4cG9ydDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc2VwYXJhdG9yKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0RXhwb3J0Q29uZmlnLmNhcnRJbXBvcnRFeHBvcnQ/LmZpbGUuc2VwYXJhdG9yO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbHVtbnM6IEV4cG9ydENvbHVtbltdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6IHtcbiAgICAgICAga2V5OiAnY29kZScsXG4gICAgICB9LFxuICAgICAgdmFsdWU6ICdwcm9kdWN0LmNvZGUnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZToge1xuICAgICAgICBrZXk6ICdxdWFudGl0eScsXG4gICAgICB9LFxuICAgICAgdmFsdWU6ICdxdWFudGl0eScsXG4gICAgfSxcbiAgICAuLi4odGhpcy5leHBvcnRDb25maWc/LmFkZGl0aW9uYWxDb2x1bW5zID8/IFtdKSxcbiAgXTtcblxuICBkb3dubG9hZENzdihlbnRyaWVzOiBPcmRlckVudHJ5W10pOiB2b2lkIHtcbiAgICB0aGlzLmdldFJlc29sdmVkRW50cmllcyhlbnRyaWVzKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNzdkRhdGE6IHN0cmluZ1tdW10pID0+IHRoaXMuZG93bmxvYWQoY3N2RGF0YSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc29sdmVWYWx1ZShjb21iaW5lZEtleXM6IHN0cmluZywgZW50cnk6IE9yZGVyRW50cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBjb21iaW5lZEtleXNcbiAgICAgICAgLnNwbGl0KCcuJylcbiAgICAgICAgLnJlZHVjZSgob2JqLCBrZXkpID0+IChvYmogPyAob2JqIGFzIGFueSlba2V5XSA6ICcnKSwgZW50cnkpXG4gICAgICAgID8udG9TdHJpbmcoKSA/PyAnJ1xuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzb2x2ZVZhbHVlcyhlbnRyaWVzOiBPcmRlckVudHJ5W10pOiBzdHJpbmdbXVtdIHtcbiAgICByZXR1cm4gZW50cmllcy5tYXAoKGVudHJ5KSA9PlxuICAgICAgdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB0aGlzLnJlc29sdmVWYWx1ZShjb2x1bW4udmFsdWUsIGVudHJ5KSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zbGF0ZWRDb2x1bW5IZWFkZXJzKCk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgIHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT5cbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgICAgIGBleHBvcnRFbnRyaWVzLmNvbHVtbk5hbWVzLiR7Y29sdW1uLm5hbWUua2V5fWBcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGlzcGxheUV4cG9ydE1lc3NhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxNZXNzYWdlU2VydmljZS5hZGQoXG4gICAgICB7IGtleTogJ2V4cG9ydEVudHJpZXMuZXhwb3J0TWVzc2FnZScgfSxcbiAgICAgIEdsb2JhbE1lc3NhZ2VUeXBlLk1TR19UWVBFX0lORk9cbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxpbWl0VmFsdWVzKGRhdGE6IHN0cmluZ1tdW10pOiBzdHJpbmdbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5leHBvcnRDb25maWc/Lm1heEVudHJpZXNcbiAgICAgID8gZGF0YS5zcGxpY2UoMCwgdGhpcy5leHBvcnRDb25maWc/Lm1heEVudHJpZXMpXG4gICAgICA6IGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UmVzb2x2ZWRFbnRyaWVzKGVudHJpZXM6IE9yZGVyRW50cnlbXSk6IE9ic2VydmFibGU8c3RyaW5nW11bXT4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubGltaXRWYWx1ZXModGhpcy5yZXNvbHZlVmFsdWVzKGVudHJpZXMpKTtcbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkQ29sdW1uSGVhZGVycygpLnBpcGUoXG4gICAgICBtYXAoKGhlYWRlcnMpID0+IHtcbiAgICAgICAgcmV0dXJuIFtoZWFkZXJzLCAuLi52YWx1ZXNdO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRvd25sb2FkKGVudHJpZXM6IHN0cmluZ1tdW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leHBvcnRDb25maWc/Lm1lc3NhZ2VFbmFibGVkKSB7XG4gICAgICB0aGlzLmRpc3BsYXlFeHBvcnRNZXNzYWdlKCk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXhwb3J0Q29uZmlnICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZXBhcmF0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmV4cG9ydENzdkZpbGVTZXJ2aWNlLmRvd25sb2FkKFxuICAgICAgICAgIGVudHJpZXMsXG4gICAgICAgICAgdGhpcy5zZXBhcmF0b3IsXG4gICAgICAgICAgdGhpcy5leHBvcnRDb25maWcuZmlsZU9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCB0aGlzLmV4cG9ydENvbmZpZz8uZG93bmxvYWREZWxheSA/PyAwKTtcbiAgfVxufVxuIl19