@chilibase/backend 0.6.1 → 0.7.0
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/lib/common/ExportImportParam.d.ts +13 -7
- package/lib/common/ExportImportParam.js +7 -6
- package/lib/common/ExportImportParam.js.map +1 -1
- package/lib/common/FindParam.d.ts +2 -2
- package/lib/common/UtilsCommon.d.ts +3 -3
- package/lib/common/UtilsConversions.d.ts +2 -2
- package/lib/common/UtilsMetadataCommon.d.ts +1 -1
- package/lib/common/auth-api.d.ts +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/lib-api.d.ts +1 -1
- package/lib/common/types.d.ts +2 -1
- package/lib/entity-metadata/NumberWidth.d.ts +3 -0
- package/lib/entity-metadata/NumberWidth.js +12 -0
- package/lib/entity-metadata/NumberWidth.js.map +1 -0
- package/lib/entity-metadata/entity-metadata.service.js +6 -2
- package/lib/entity-metadata/entity-metadata.service.js.map +1 -1
- package/lib/entity-metadata/index.d.ts +1 -0
- package/lib/entity-metadata/index.js +1 -0
- package/lib/entity-metadata/index.js.map +1 -1
- package/lib/export/export-csv.service.d.ts +2 -2
- package/lib/export/export-csv.service.js +9 -9
- package/lib/export/export-csv.service.js.map +1 -1
- package/lib/export/export-excel.service.d.ts +13 -2
- package/lib/export/export-excel.service.js +89 -7
- package/lib/export/export-excel.service.js.map +1 -1
- package/lib/export/export.service.d.ts +4 -2
- package/lib/export/export.service.js +6 -5
- package/lib/export/export.service.js.map +1 -1
- package/lib/locale/index.d.ts +2 -1
- package/lib/locale/index.js.map +1 -1
- package/lib/modules/administration/browse-meta.entity.js +3 -1
- package/lib/modules/administration/browse-meta.entity.js.map +1 -1
- package/lib/modules/administration/column-meta.entity.js +3 -1
- package/lib/modules/administration/column-meta.entity.js.map +1 -1
- package/lib/modules/files/file.controller.js.map +1 -1
- package/lib/persistence/lazy-data-table.service.js +16 -13
- package/lib/persistence/lazy-data-table.service.js.map +1 -1
- package/lib/persistence/persistence.controller.d.ts +11 -12
- package/lib/persistence/persistence.controller.js.map +1 -1
- package/lib/persistence/persistence.service.js +8 -4
- package/lib/persistence/persistence.service.js.map +1 -1
- package/package.json +40 -37
- package/lib/tsconfig.tsbuildinfo +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { DataTableSortMeta } from "./PrimeFilterSortMeta.js";
|
|
2
|
-
import { CustomFilterItem, ExtendedDataTableFilterMeta, FullTextSearch } from "./FindParam.js";
|
|
1
|
+
import type { DataTableSortMeta } from "./PrimeFilterSortMeta.js";
|
|
2
|
+
import type { CustomFilterItem, ExtendedDataTableFilterMeta, FullTextSearch } from "./FindParam.js";
|
|
3
|
+
import type { TextFormat } from "./types.js";
|
|
3
4
|
export declare enum ExportType {
|
|
4
5
|
Excel = "excel",
|
|
5
6
|
Csv = "csv",
|
|
@@ -8,7 +9,6 @@ export declare enum ExportType {
|
|
|
8
9
|
export interface ExportExcelParam {
|
|
9
10
|
queryParam: LazyDataTableQueryParam;
|
|
10
11
|
excelCsvParam: ExcelCsvParam;
|
|
11
|
-
widths: string[];
|
|
12
12
|
}
|
|
13
13
|
export interface ExportCsvParam {
|
|
14
14
|
queryParam: LazyDataTableQueryParam;
|
|
@@ -27,14 +27,20 @@ export interface LazyDataTableQueryParam {
|
|
|
27
27
|
fields: string[];
|
|
28
28
|
}
|
|
29
29
|
export interface ExcelCsvParam {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
columns: ExportColumnParam[];
|
|
31
|
+
createHeaders: boolean;
|
|
32
|
+
toManyAssocExportType: ToManyAssocExportType;
|
|
33
33
|
fieldsToDuplicateValues?: string[];
|
|
34
34
|
}
|
|
35
|
-
export
|
|
35
|
+
export interface ExportColumnParam {
|
|
36
|
+
header?: string;
|
|
37
|
+
width?: string;
|
|
38
|
+
textFormat?: TextFormat;
|
|
39
|
+
}
|
|
40
|
+
export declare enum ToManyAssocExportType {
|
|
36
41
|
Singleline = "singleline",
|
|
37
42
|
Multiline = "multiline",
|
|
43
|
+
Multirow = "multirow",
|
|
38
44
|
Off = "off"
|
|
39
45
|
}
|
|
40
46
|
export interface CsvParam {
|
|
@@ -4,12 +4,13 @@ export var ExportType;
|
|
|
4
4
|
ExportType["Csv"] = "csv";
|
|
5
5
|
ExportType["Json"] = "json";
|
|
6
6
|
})(ExportType || (ExportType = {}));
|
|
7
|
-
export var
|
|
8
|
-
(function (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export var ToManyAssocExportType;
|
|
8
|
+
(function (ToManyAssocExportType) {
|
|
9
|
+
ToManyAssocExportType["Singleline"] = "singleline";
|
|
10
|
+
ToManyAssocExportType["Multiline"] = "multiline";
|
|
11
|
+
ToManyAssocExportType["Multirow"] = "multirow";
|
|
12
|
+
ToManyAssocExportType["Off"] = "off";
|
|
13
|
+
})(ToManyAssocExportType || (ToManyAssocExportType = {}));
|
|
13
14
|
export var CsvSeparator;
|
|
14
15
|
(function (CsvSeparator) {
|
|
15
16
|
CsvSeparator["Semicolon"] = ";";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportImportParam.js","sourceRoot":"","sources":["../../src/common/ExportImportParam.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExportImportParam.js","sourceRoot":"","sources":["../../src/common/ExportImportParam.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,yBAAW,CAAA;IACX,2BAAa,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAyCD,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kDAAyB,CAAA;IACzB,gDAAuB,CAAA;IACvB,8CAAqB,CAAA;IACrB,oCAAW,CAAA;AACf,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAWD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,+BAAe,CAAA;IACf,2BAAW,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAGD,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAKD,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,6BAAc,CAAA;IACd,kCAAmB,CAAA;AACvB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAID,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,yBAAW,CAAA;IACX,2BAAa,CAAA;AACjB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataTableFilterMetaData, DataTableOperatorFilterMetaData, DataTableSortMeta } from "./PrimeFilterSortMeta.js";
|
|
2
|
-
import { Params } from "./UtilsCommon.js";
|
|
1
|
+
import type { DataTableFilterMetaData, DataTableOperatorFilterMetaData, DataTableSortMeta } from "./PrimeFilterSortMeta.js";
|
|
2
|
+
import type { Params } from "./UtilsCommon.js";
|
|
3
3
|
export declare enum ResultType {
|
|
4
4
|
OnlyRowCount = 0,
|
|
5
5
|
OnlyPagedRows = 1,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Entity, Field } from "./EntityMetadata.js";
|
|
2
|
-
import { CustomFilter, CustomFilterItem } from "./FindParam.js";
|
|
3
|
-
import { DataTableSortMeta } from "./PrimeFilterSortMeta.js";
|
|
1
|
+
import type { Entity, Field } from "./EntityMetadata.js";
|
|
2
|
+
import type { CustomFilter, CustomFilterItem } from "./FindParam.js";
|
|
3
|
+
import type { DataTableSortMeta } from "./PrimeFilterSortMeta.js";
|
|
4
4
|
export interface Params {
|
|
5
5
|
[key: string]: any;
|
|
6
6
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Field } from "./EntityMetadata.js";
|
|
2
|
-
import { IPostgresInterval } from "postgres-interval";
|
|
1
|
+
import type { Field } from "./EntityMetadata.js";
|
|
2
|
+
import type { IPostgresInterval } from "postgres-interval";
|
|
3
3
|
export declare function stringFromUI(stringValue: string): string | null;
|
|
4
4
|
export declare function stringAsUI(value: string | null): string;
|
|
5
5
|
export declare function stringAsDB(value: string | null): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Assoc, Entity, EntityMap, Field, RelationType } from "./EntityMetadata.js";
|
|
1
|
+
import type { Assoc, Entity, EntityMap, Field, RelationType } from "./EntityMetadata.js";
|
|
2
2
|
export declare class UtilsMetadataCommon {
|
|
3
3
|
private static entityMap;
|
|
4
4
|
static getEntityMap(): EntityMap | undefined;
|
package/lib/common/auth-api.d.ts
CHANGED
package/lib/common/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export type { Params as XParams } from "./UtilsCommon.js";
|
|
|
14
14
|
export type { DateScale as XDateScale, AsUIType as XAsUIType } from "./UtilsConversions.js";
|
|
15
15
|
export type { ResultType as XResultType, CustomFilterItem as XCustomFilterItem, CustomFilter as XCustomFilter, ExtendedFilterMatchMode as XFilterMatchMode, ExtendedDataTableFilterMetaData as XDataTableFilterMetaData, ExtendedDataTableFilterMeta as XDataTableFilterMeta, FullTextSearch as XFullTextSearch, AggregateFunction as XAggregateFunction, SimpleAggregateItem as XSimpleAggregateItem, FindParam as XFindParam, LazyAutoCompleteSuggestionsRequest as XLazyAutoCompleteSuggestionsRequest } from "./FindParam.js";
|
|
16
16
|
export type { AggregateValues as XAggregateValues, FindResult as XFindResult } from "./FindResult.js";
|
|
17
|
-
export type { ExportType as XExportType, ExportExcelParam as XExportExcelParam, ExportCsvParam as XExportCsvParam, ExportJsonParam as XExportJsonParam, LazyDataTableQueryParam as XLazyDataTableQueryParam, ExcelCsvParam as XExcelCsvParam,
|
|
17
|
+
export type { ExportType as XExportType, ExportExcelParam as XExportExcelParam, ExportCsvParam as XExportCsvParam, ExportJsonParam as XExportJsonParam, LazyDataTableQueryParam as XLazyDataTableQueryParam, ExcelCsvParam as XExcelCsvParam, CsvParam as XCsvParam, CsvSeparator as XCsvSeparator, CsvDecimalFormat as XCsvDecimalFormat, CsvEncoding as XCsvEncoding, ImportType as XImportType, ImportParam as XImportParam, ImportResponse as XImportResponse } from "./ExportImportParam.js";
|
|
18
18
|
export type { GetSequenceValueRequest as XGetSequenceValueRequest, GetSequenceValueResponse as XGetSequenceValueResponse, FindRowByIdRequest as XFindRowByIdRequest, FindRowByIdResponse as XFindRowByIdResponse, UnlockRowRequest as XUnlockRowRequest, RunDocTemplateRequest as XtRunDocTemplateRequest, FileJsonField as XFileJsonField } from "./lib-api.js";
|
|
19
19
|
export type { LocalAuthLoginRequest as XLocalAuthLoginRequest, LocalAuthLoginResponse as XLocalAuthLoginResponse, PostLoginRequest as XPostLoginRequest, PostLoginResponse as XPostLoginResponse } from "./auth-api.js";
|
|
20
20
|
export type { EntityRow as XObject } from "./types.js";
|
package/lib/common/lib-api.d.ts
CHANGED
package/lib/common/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BrowseMeta } from "../modules/administration/index.js";
|
|
1
|
+
import type { BrowseMeta } from "../modules/administration/index.js";
|
|
2
2
|
export type EntityRow = Record<string, any>;
|
|
3
3
|
export interface BrowseMetaMap {
|
|
4
4
|
[name: string]: BrowseMeta;
|
|
5
5
|
}
|
|
6
|
+
export type TextFormat = "multiline" | "html" | undefined;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
const NUMBER_WIDTH = Symbol("chilibase:numberWidth");
|
|
3
|
+
export function NumberWidth(width) {
|
|
4
|
+
return (target, propertyKey) => {
|
|
5
|
+
Reflect.defineMetadata(NUMBER_WIDTH, width, target, propertyKey);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function getNumberWidth(target, propertyName) {
|
|
9
|
+
const width = Reflect.getMetadata(NUMBER_WIDTH, target.prototype, propertyName);
|
|
10
|
+
return typeof width === "number" ? width : undefined;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=NumberWidth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberWidth.js","sourceRoot":"","sources":["../../src/entity-metadata/NumberWidth.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,MAAM,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAMrD,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAgB,EAAE,YAAoB;IACjE,MAAM,KAAK,GAAY,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC"}
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { Injectable } from '@nestjs/common';
|
|
11
11
|
import { DataSource } from "typeorm";
|
|
12
12
|
import { UtilsMetadataCommon } from "../common/UtilsMetadataCommon.js";
|
|
13
|
+
import { getNumberWidth } from "./NumberWidth.js";
|
|
13
14
|
let EntityMetadataService = class EntityMetadataService {
|
|
14
15
|
dataSource;
|
|
15
16
|
constructor(dataSource) {
|
|
@@ -32,7 +33,8 @@ let EntityMetadataService = class EntityMetadataService {
|
|
|
32
33
|
}
|
|
33
34
|
getEntityForEntityMetadata(entityMetadata) {
|
|
34
35
|
const fieldMap = {};
|
|
35
|
-
let columnMetadataList = entityMetadata.columns.filter((columnMetadata) => columnMetadata.relationMetadata
|
|
36
|
+
let columnMetadataList = entityMetadata.columns.filter((columnMetadata) => columnMetadata.relationMetadata === undefined
|
|
37
|
+
|| columnMetadata.relationMetadata.propertyName !== columnMetadata.propertyName);
|
|
36
38
|
for (const columnMetadata of columnMetadataList) {
|
|
37
39
|
const fieldName = columnMetadata.propertyName;
|
|
38
40
|
let type = "unknown";
|
|
@@ -62,7 +64,9 @@ let EntityMetadataService = class EntityMetadataService {
|
|
|
62
64
|
if (isNaN(length)) {
|
|
63
65
|
length = undefined;
|
|
64
66
|
}
|
|
65
|
-
let width = columnMetadata.
|
|
67
|
+
let width = typeof columnMetadata.target === "function"
|
|
68
|
+
? getNumberWidth(columnMetadata.target, fieldName)
|
|
69
|
+
: undefined;
|
|
66
70
|
if (type === "number" && width === undefined) {
|
|
67
71
|
width = 11;
|
|
68
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-metadata.service.js","sourceRoot":"","sources":["../../src/entity-metadata/entity-metadata.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAC,UAAU,EAAiB,MAAM,SAAS,CAAC;AAGnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-metadata.service.js","sourceRoot":"","sources":["../../src/entity-metadata/entity-metadata.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entity-metadata/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entity-metadata/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Response } from "express";
|
|
2
|
-
import { CsvEncoding, CsvParam, ExportCsvParam,
|
|
2
|
+
import { CsvEncoding, CsvParam, ExportCsvParam, ToManyAssocExportType } from "../common/ExportImportParam.js";
|
|
3
3
|
import { ExportColumn, ExportService } from "./export.service.js";
|
|
4
4
|
import { SelectQueryBuilder } from "typeorm";
|
|
5
5
|
export declare class CsvWriter {
|
|
@@ -15,7 +15,7 @@ export declare class CsvWriter {
|
|
|
15
15
|
}
|
|
16
16
|
export declare class ExportCsvService extends ExportService {
|
|
17
17
|
export(csvParam: CsvParam, columns: ExportColumn[], entity: string | undefined, rows: any[], res: Response): void;
|
|
18
|
-
exportBase(csvParam: CsvParam, columns: ExportColumn[], createHeaders: boolean,
|
|
18
|
+
exportBase(csvParam: CsvParam, columns: ExportColumn[], createHeaders: boolean, toManyAssocExportType: ToManyAssocExportType, fieldsToDuplicateValues: string[] | undefined, entity: string | undefined, rows: any[], res: Response): void;
|
|
19
19
|
exportUsingList(exportCsvParam: ExportCsvParam, columns: ExportColumn[], selectQueryBuilder: SelectQueryBuilder<unknown>, res: Response): Promise<void>;
|
|
20
20
|
exportUsingStream(exportCsvParam: ExportCsvParam, columns: ExportColumn[], selectQueryBuilder: SelectQueryBuilder<unknown>, res: Response): Promise<void>;
|
|
21
21
|
startExport(csvParam: CsvParam, columns: ExportColumn[], createHeaders: boolean, res: Response): CsvWriter;
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
var ExportCsvService_1;
|
|
8
8
|
import { HttpStatus, Injectable } from "@nestjs/common";
|
|
9
|
-
import { CsvDecimalFormat, CsvEncoding,
|
|
9
|
+
import { CsvDecimalFormat, CsvEncoding, ToManyAssocExportType } from "../common/ExportImportParam.js";
|
|
10
10
|
import { UtilsCommon } from "../common/UtilsCommon.js";
|
|
11
11
|
import { dateFormat, datetimeFormat, numberFromModel } from "../common/UtilsConversions.js";
|
|
12
12
|
import * as iconv from "iconv-lite";
|
|
@@ -90,28 +90,28 @@ export class CsvWriter {
|
|
|
90
90
|
}
|
|
91
91
|
let ExportCsvService = ExportCsvService_1 = class ExportCsvService extends ExportService {
|
|
92
92
|
export(csvParam, columns, entity, rows, res) {
|
|
93
|
-
this.exportBase(csvParam, columns, true,
|
|
93
|
+
this.exportBase(csvParam, columns, true, ToManyAssocExportType.Multiline, undefined, entity, rows, res);
|
|
94
94
|
}
|
|
95
|
-
exportBase(csvParam, columns, createHeaders,
|
|
95
|
+
exportBase(csvParam, columns, createHeaders, toManyAssocExportType, fieldsToDuplicateValues, entity, rows, res) {
|
|
96
96
|
const csvWriter = this.startExport(csvParam, columns, createHeaders, res);
|
|
97
97
|
const entityMetadata = entity ? UtilsMetadataCommon.getEntity(entity) : undefined;
|
|
98
98
|
for (const row of rows) {
|
|
99
|
-
this.exportRowToCsv(columns,
|
|
99
|
+
this.exportRowToCsv(columns, toManyAssocExportType, fieldsToDuplicateValues, entityMetadata, row, csvWriter);
|
|
100
100
|
}
|
|
101
101
|
csvWriter.end();
|
|
102
102
|
}
|
|
103
103
|
async exportUsingList(exportCsvParam, columns, selectQueryBuilder, res) {
|
|
104
104
|
const rowList = await selectQueryBuilder.getMany();
|
|
105
105
|
const excelCsvParam = exportCsvParam.excelCsvParam;
|
|
106
|
-
this.exportBase(exportCsvParam.csvParam, columns, excelCsvParam.
|
|
106
|
+
this.exportBase(exportCsvParam.csvParam, columns, excelCsvParam.createHeaders, excelCsvParam.toManyAssocExportType, excelCsvParam.fieldsToDuplicateValues, exportCsvParam.queryParam.entity, rowList, res);
|
|
107
107
|
}
|
|
108
108
|
async exportUsingStream(exportCsvParam, columns, selectQueryBuilder, res) {
|
|
109
|
-
const csvWriter = this.startExport(exportCsvParam.csvParam, columns, exportCsvParam.excelCsvParam.
|
|
109
|
+
const csvWriter = this.startExport(exportCsvParam.csvParam, columns, exportCsvParam.excelCsvParam.createHeaders, res);
|
|
110
110
|
const readStream = await selectQueryBuilder.stream();
|
|
111
111
|
const entityMetadata = UtilsMetadataCommon.getEntity(exportCsvParam.queryParam.entity);
|
|
112
112
|
readStream.on('data', data => {
|
|
113
113
|
const entityObj = this.transformToEntity(data, selectQueryBuilder);
|
|
114
|
-
this.exportRowToCsv(columns, exportCsvParam.excelCsvParam.
|
|
114
|
+
this.exportRowToCsv(columns, exportCsvParam.excelCsvParam.toManyAssocExportType, exportCsvParam.excelCsvParam.fieldsToDuplicateValues, entityMetadata, entityObj, csvWriter);
|
|
115
115
|
});
|
|
116
116
|
readStream.on('end', () => {
|
|
117
117
|
csvWriter.end();
|
|
@@ -141,8 +141,8 @@ let ExportCsvService = ExportCsvService_1 = class ExportCsvService extends Expor
|
|
|
141
141
|
}
|
|
142
142
|
return headerCharset;
|
|
143
143
|
}
|
|
144
|
-
exportRowToCsv(columns,
|
|
145
|
-
const resultRowList = this.exportRow(columns,
|
|
144
|
+
exportRowToCsv(columns, toManyAssocExportType, fieldsToDuplicateValues, entityMetadata, row, csvWriter) {
|
|
145
|
+
const resultRowList = this.exportRow(columns, toManyAssocExportType, fieldsToDuplicateValues, entityMetadata, row);
|
|
146
146
|
for (const resultRow of resultRowList) {
|
|
147
147
|
csvWriter.writeRow(...resultRow);
|
|
148
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-csv.service.js","sourceRoot":"","sources":["../../src/export/export-csv.service.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,gBAAgB,EAChB,WAAW,EAGX,
|
|
1
|
+
{"version":3,"file":"export-csv.service.js","sourceRoot":"","sources":["../../src/export/export-csv.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { StreamableFile } from "@nestjs/common";
|
|
2
2
|
import { ExportColumn, ExportService } from "./export.service.js";
|
|
3
|
-
import {
|
|
3
|
+
import { ToManyAssocExportType } from "../common/ExportImportParam.js";
|
|
4
4
|
import ExcelJS from "exceljs";
|
|
5
|
+
interface RichTextRun {
|
|
6
|
+
text: string;
|
|
7
|
+
font?: Partial<ExcelJS.Font>;
|
|
8
|
+
}
|
|
5
9
|
export declare class ExportExcelService extends ExportService {
|
|
6
10
|
export(worksheetName: string, columns: ExportColumn[], entity: string | undefined, rows: any[]): Promise<StreamableFile>;
|
|
7
|
-
exportBase(worksheetName: string, columns: ExportColumn[], createHeaders: boolean,
|
|
11
|
+
exportBase(worksheetName: string, columns: ExportColumn[], createHeaders: boolean, formatRow: (row: any, excelRow: ExcelJS.Row) => void | undefined, toManyAssocExportType: ToManyAssocExportType, fieldsToDuplicateValues: string[] | undefined, entity: string | undefined, rows: any[]): Promise<StreamableFile>;
|
|
8
12
|
createWorksheet(workbook: ExcelJS.Workbook, worksheetName: string, createFrozenRow?: boolean): ExcelJS.Worksheet;
|
|
9
13
|
highlightHeaderRow(worksheet: ExcelJS.Worksheet): void;
|
|
10
14
|
createStreamableFile(workbook: ExcelJS.Workbook): Promise<StreamableFile>;
|
|
11
15
|
private computeWidth;
|
|
16
|
+
static MDW: number;
|
|
17
|
+
static REM_TO_PX: number;
|
|
18
|
+
cssWidthToPixels(cssWidth: string): number;
|
|
19
|
+
pixelsToExcelWidth(pixels: number): number;
|
|
20
|
+
cssWidthToExcelWidth(cssWidth: string): number;
|
|
21
|
+
htmlToRichText(html: string): RichTextRun[];
|
|
12
22
|
}
|
|
23
|
+
export {};
|
|
@@ -4,27 +4,61 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var ExportExcelService_1;
|
|
7
8
|
import { Injectable, StreamableFile } from "@nestjs/common";
|
|
8
9
|
import { ExportService } from "./export.service.js";
|
|
9
10
|
import { Readable } from "stream";
|
|
10
|
-
import {
|
|
11
|
+
import { ToManyAssocExportType } from "../common/ExportImportParam.js";
|
|
11
12
|
import { UtilsMetadataCommon } from "../common/UtilsMetadataCommon.js";
|
|
12
13
|
import ExcelJS from "exceljs";
|
|
14
|
+
import * as cheerio from "cheerio";
|
|
13
15
|
let ExportExcelService = class ExportExcelService extends ExportService {
|
|
16
|
+
static { ExportExcelService_1 = this; }
|
|
14
17
|
export(worksheetName, columns, entity, rows) {
|
|
15
|
-
return this.exportBase(worksheetName, columns, true,
|
|
18
|
+
return this.exportBase(worksheetName, columns, true, undefined, ToManyAssocExportType.Multiline, undefined, entity, rows);
|
|
16
19
|
}
|
|
17
|
-
exportBase(worksheetName, columns, createHeaders,
|
|
20
|
+
exportBase(worksheetName, columns, createHeaders, formatRow, toManyAssocExportType, fieldsToDuplicateValues, entity, rows) {
|
|
21
|
+
const entityMetadata = entity ? UtilsMetadataCommon.getEntity(entity) : undefined;
|
|
22
|
+
if (entityMetadata && toManyAssocExportType === ToManyAssocExportType.Multiline) {
|
|
23
|
+
for (const column of columns) {
|
|
24
|
+
if (!column.textFormat
|
|
25
|
+
&& typeof column.field === 'string'
|
|
26
|
+
&& UtilsMetadataCommon.getFieldByPathBase(entityMetadata, column.field)
|
|
27
|
+
&& UtilsMetadataCommon.hasPathToManyAssoc(entityMetadata, column.field)) {
|
|
28
|
+
column.textFormat = "multiline";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
18
32
|
const workbook = new ExcelJS.Workbook();
|
|
19
33
|
const worksheet = this.createWorksheet(workbook, worksheetName, createHeaders);
|
|
20
34
|
if (createHeaders) {
|
|
21
35
|
worksheet.columns = columns.map((value) => { return { header: value.header, width: value.width ?? this.computeWidth(value.header) }; });
|
|
22
36
|
}
|
|
23
|
-
const entityMetadata = entity ? UtilsMetadataCommon.getEntity(entity) : undefined;
|
|
24
37
|
for (const row of rows) {
|
|
25
|
-
const resultRowList = this.exportRow(columns,
|
|
38
|
+
const resultRowList = this.exportRow(columns, toManyAssocExportType, fieldsToDuplicateValues, entityMetadata, row);
|
|
26
39
|
for (const resultRow of resultRowList) {
|
|
27
|
-
worksheet.addRow(resultRow);
|
|
40
|
+
const excelRow = worksheet.addRow(resultRow);
|
|
41
|
+
for (const [columnIndex, column] of columns.entries()) {
|
|
42
|
+
const excelColumnIndex = columnIndex + 1;
|
|
43
|
+
if (column.textFormat === "html") {
|
|
44
|
+
const cell = excelRow.getCell(excelColumnIndex);
|
|
45
|
+
if (cell.value !== null) {
|
|
46
|
+
cell.value = { richText: this.htmlToRichText(cell.value.toString()) };
|
|
47
|
+
cell.alignment = {
|
|
48
|
+
wrapText: true
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (column.textFormat === "multiline") {
|
|
53
|
+
const cell = excelRow.getCell(excelColumnIndex);
|
|
54
|
+
cell.alignment = {
|
|
55
|
+
wrapText: true
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (formatRow) {
|
|
60
|
+
formatRow(row, excelRow);
|
|
61
|
+
}
|
|
28
62
|
}
|
|
29
63
|
}
|
|
30
64
|
if (createHeaders) {
|
|
@@ -60,8 +94,56 @@ let ExportExcelService = class ExportExcelService extends ExportService {
|
|
|
60
94
|
}
|
|
61
95
|
return width;
|
|
62
96
|
}
|
|
97
|
+
static MDW = 7;
|
|
98
|
+
static REM_TO_PX = 14;
|
|
99
|
+
cssWidthToPixels(cssWidth) {
|
|
100
|
+
const trimmed = cssWidth.trim();
|
|
101
|
+
if (trimmed.endsWith('rem')) {
|
|
102
|
+
const rem = parseFloat(trimmed);
|
|
103
|
+
return rem * ExportExcelService_1.REM_TO_PX;
|
|
104
|
+
}
|
|
105
|
+
if (trimmed.endsWith('px')) {
|
|
106
|
+
return parseFloat(trimmed);
|
|
107
|
+
}
|
|
108
|
+
console.log(`warning - unsupported CSS unit in width: "${cssWidth}"`);
|
|
109
|
+
return parseFloat(trimmed);
|
|
110
|
+
}
|
|
111
|
+
pixelsToExcelWidth(pixels) {
|
|
112
|
+
const width = (pixels - 5) / ExportExcelService_1.MDW;
|
|
113
|
+
return Math.max(0, Math.round(width * 100) / 100);
|
|
114
|
+
}
|
|
115
|
+
cssWidthToExcelWidth(cssWidth) {
|
|
116
|
+
return this.pixelsToExcelWidth(this.cssWidthToPixels(cssWidth));
|
|
117
|
+
}
|
|
118
|
+
htmlToRichText(html) {
|
|
119
|
+
const $ = cheerio.load(html);
|
|
120
|
+
const runs = [];
|
|
121
|
+
$('body').children().each((i, el) => {
|
|
122
|
+
if (i > 0)
|
|
123
|
+
runs.push({ text: '\n' });
|
|
124
|
+
const walk = (node, font = {}) => {
|
|
125
|
+
$(node).contents().each((_, child) => {
|
|
126
|
+
if (child.type === 'text') {
|
|
127
|
+
const text = $(child).text();
|
|
128
|
+
if (text)
|
|
129
|
+
runs.push({ text, font: Object.keys(font).length ? font : undefined });
|
|
130
|
+
}
|
|
131
|
+
else if (child.type === 'tag') {
|
|
132
|
+
const newFont = { ...font };
|
|
133
|
+
if (child.tagName === 'strong' || child.tagName === 'b')
|
|
134
|
+
newFont.bold = true;
|
|
135
|
+
if (child.tagName === 'em' || child.tagName === 'i')
|
|
136
|
+
newFont.italic = true;
|
|
137
|
+
walk(child, newFont);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
walk(el);
|
|
142
|
+
});
|
|
143
|
+
return runs;
|
|
144
|
+
}
|
|
63
145
|
};
|
|
64
|
-
ExportExcelService = __decorate([
|
|
146
|
+
ExportExcelService = ExportExcelService_1 = __decorate([
|
|
65
147
|
Injectable()
|
|
66
148
|
], ExportExcelService);
|
|
67
149
|
export { ExportExcelService };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-excel.service.js","sourceRoot":"","sources":["../../src/export/export-excel.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"export-excel.service.js","sourceRoot":"","sources":["../../src/export/export-excel.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { MultilineExportType } from "../common/ExportImportParam.js";
|
|
2
1
|
import { Entity } from "../common/EntityMetadata.js";
|
|
3
2
|
import { SelectQueryBuilder } from "typeorm";
|
|
3
|
+
import { TextFormat } from "../common/types.js";
|
|
4
|
+
import { ToManyAssocExportType } from "../common/ExportImportParam.js";
|
|
4
5
|
export type FieldType = "string" | "decimal" | "date" | "datetime" | "interval" | "boolean";
|
|
5
6
|
export interface ExportColumn {
|
|
6
7
|
header: string;
|
|
7
8
|
field: string | ((row: any) => any);
|
|
8
9
|
type?: FieldType;
|
|
10
|
+
textFormat?: TextFormat;
|
|
9
11
|
width?: number;
|
|
10
12
|
}
|
|
11
13
|
export declare abstract class ExportService {
|
|
12
|
-
exportRow(columns: ExportColumn[],
|
|
14
|
+
exportRow(columns: ExportColumn[], toManyAssocExportType: ToManyAssocExportType, fieldsToDuplicateValues: string[] | undefined, entityMetadata: Entity | undefined, row: any): Array<Array<any>>;
|
|
13
15
|
protected transformToEntity(data: any, selectQueryBuilder: SelectQueryBuilder<unknown>): any;
|
|
14
16
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { MultilineExportType } from "../common/ExportImportParam.js";
|
|
2
1
|
import { UtilsMetadataCommon } from "../common/UtilsMetadataCommon.js";
|
|
3
2
|
import { UtilsCommon } from "../common/UtilsCommon.js";
|
|
4
3
|
import { AsUIType, convertValueBase } from "../common/UtilsConversions.js";
|
|
5
4
|
import { RawSqlResultsToEntityTransformer } from "typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js";
|
|
5
|
+
import { ToManyAssocExportType } from "../common/ExportImportParam.js";
|
|
6
6
|
export class ExportService {
|
|
7
|
-
exportRow(columns,
|
|
7
|
+
exportRow(columns, toManyAssocExportType, fieldsToDuplicateValues, entityMetadata, row) {
|
|
8
8
|
const columnList = new Array(columns.length);
|
|
9
9
|
let maxColumnLength = 1;
|
|
10
10
|
for (const [columnIndex, exportColumn] of columns.entries()) {
|
|
@@ -30,14 +30,15 @@ export class ExportService {
|
|
|
30
30
|
let columnValuesProcessed = false;
|
|
31
31
|
if (Array.isArray(value)) {
|
|
32
32
|
columnValues = value;
|
|
33
|
-
if (
|
|
33
|
+
if (toManyAssocExportType === ToManyAssocExportType.Singleline || toManyAssocExportType === ToManyAssocExportType.Multiline) {
|
|
34
34
|
if (fieldType) {
|
|
35
35
|
columnValues = columnValues.map((value) => convertValueBase(fieldType, scale, value, true, AsUIType.Text));
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
38
|
columnValues = columnValues.map((value) => (value !== null && value !== undefined) ? value.toString() : "");
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
const separator = toManyAssocExportType === ToManyAssocExportType.Singleline ? ", " : "\n";
|
|
41
|
+
columnValues = [columnValues.join(separator)];
|
|
41
42
|
columnValuesProcessed = true;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
@@ -82,7 +83,7 @@ export class ExportService {
|
|
|
82
83
|
return resultRowList;
|
|
83
84
|
}
|
|
84
85
|
transformToEntity(data, selectQueryBuilder) {
|
|
85
|
-
const transformer = new RawSqlResultsToEntityTransformer(selectQueryBuilder.expressionMap, selectQueryBuilder.connection.driver, []
|
|
86
|
+
const transformer = new RawSqlResultsToEntityTransformer(selectQueryBuilder.expressionMap, selectQueryBuilder.connection.driver, []);
|
|
86
87
|
const entityList = transformer.transform([data], selectQueryBuilder.expressionMap.mainAlias);
|
|
87
88
|
return entityList[0];
|
|
88
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.service.js","sourceRoot":"","sources":["../../src/export/export.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"export.service.js","sourceRoot":"","sources":["../../src/export/export.service.ts"],"names":[],"mappings":"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"}
|
package/lib/locale/index.d.ts
CHANGED
package/lib/locale/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC"}
|