@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.
Files changed (43) hide show
  1. package/lib/common/ExportImportParam.d.ts +13 -7
  2. package/lib/common/ExportImportParam.js +7 -6
  3. package/lib/common/ExportImportParam.js.map +1 -1
  4. package/lib/common/FindParam.d.ts +2 -2
  5. package/lib/common/UtilsCommon.d.ts +3 -3
  6. package/lib/common/UtilsConversions.d.ts +2 -2
  7. package/lib/common/UtilsMetadataCommon.d.ts +1 -1
  8. package/lib/common/auth-api.d.ts +1 -1
  9. package/lib/common/index.d.ts +1 -1
  10. package/lib/common/lib-api.d.ts +1 -1
  11. package/lib/common/types.d.ts +2 -1
  12. package/lib/entity-metadata/NumberWidth.d.ts +3 -0
  13. package/lib/entity-metadata/NumberWidth.js +12 -0
  14. package/lib/entity-metadata/NumberWidth.js.map +1 -0
  15. package/lib/entity-metadata/entity-metadata.service.js +6 -2
  16. package/lib/entity-metadata/entity-metadata.service.js.map +1 -1
  17. package/lib/entity-metadata/index.d.ts +1 -0
  18. package/lib/entity-metadata/index.js +1 -0
  19. package/lib/entity-metadata/index.js.map +1 -1
  20. package/lib/export/export-csv.service.d.ts +2 -2
  21. package/lib/export/export-csv.service.js +9 -9
  22. package/lib/export/export-csv.service.js.map +1 -1
  23. package/lib/export/export-excel.service.d.ts +13 -2
  24. package/lib/export/export-excel.service.js +89 -7
  25. package/lib/export/export-excel.service.js.map +1 -1
  26. package/lib/export/export.service.d.ts +4 -2
  27. package/lib/export/export.service.js +6 -5
  28. package/lib/export/export.service.js.map +1 -1
  29. package/lib/locale/index.d.ts +2 -1
  30. package/lib/locale/index.js.map +1 -1
  31. package/lib/modules/administration/browse-meta.entity.js +3 -1
  32. package/lib/modules/administration/browse-meta.entity.js.map +1 -1
  33. package/lib/modules/administration/column-meta.entity.js +3 -1
  34. package/lib/modules/administration/column-meta.entity.js.map +1 -1
  35. package/lib/modules/files/file.controller.js.map +1 -1
  36. package/lib/persistence/lazy-data-table.service.js +16 -13
  37. package/lib/persistence/lazy-data-table.service.js.map +1 -1
  38. package/lib/persistence/persistence.controller.d.ts +11 -12
  39. package/lib/persistence/persistence.controller.js.map +1 -1
  40. package/lib/persistence/persistence.service.js +8 -4
  41. package/lib/persistence/persistence.service.js.map +1 -1
  42. package/package.json +40 -37
  43. 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
- headers?: string[];
31
- toManyAssocExport: MultilineExportType;
32
- multilineTextExport: MultilineExportType;
30
+ columns: ExportColumnParam[];
31
+ createHeaders: boolean;
32
+ toManyAssocExportType: ToManyAssocExportType;
33
33
  fieldsToDuplicateValues?: string[];
34
34
  }
35
- export declare enum MultilineExportType {
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 MultilineExportType;
8
- (function (MultilineExportType) {
9
- MultilineExportType["Singleline"] = "singleline";
10
- MultilineExportType["Multiline"] = "multiline";
11
- MultilineExportType["Off"] = "off";
12
- })(MultilineExportType || (MultilineExportType = {}));
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":"AAOA,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,yBAAW,CAAA;IACX,2BAAa,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAoCD,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,gDAAyB,CAAA;IACzB,8CAAuB,CAAA;IACvB,kCAAW,CAAA;AACf,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;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
+ {"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;
@@ -1,4 +1,4 @@
1
- import { User } from "../modules/administration/user.entity.js";
1
+ import type { User } from "../modules/administration/user.entity.js";
2
2
  export interface LocalAuthLoginRequest {
3
3
  username: string;
4
4
  password: string;
@@ -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, MultilineExportType as XMultilineExportType, CsvParam as XCsvParam, CsvSeparator as XCsvSeparator, CsvDecimalFormat as XCsvDecimalFormat, CsvEncoding as XCsvEncoding, ImportType as XImportType, ImportParam as XImportParam, ImportResponse as XImportResponse } from "./ExportImportParam.js";
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";
@@ -1,4 +1,4 @@
1
- import { User } from "../modules/administration/user.entity.js";
1
+ import type { User } from "../modules/administration/user.entity.js";
2
2
  export interface GetSequenceValueRequest {
3
3
  name: string;
4
4
  }
@@ -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,3 @@
1
+ import "reflect-metadata";
2
+ export declare function NumberWidth(width: number): PropertyDecorator;
3
+ export declare function getNumberWidth(target: Function, propertyName: string): number | 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?.relationType === undefined);
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.width;
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":"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"}
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,2 @@
1
1
  export * from "./entity-metadata.service.js";
2
+ export { NumberWidth } from "./NumberWidth.js";
@@ -1,2 +1,3 @@
1
1
  export * from "./entity-metadata.service.js";
2
+ export { NumberWidth } from "./NumberWidth.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -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, MultilineExportType } from "../common/ExportImportParam.js";
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, multilineExportType: MultilineExportType, fieldsToDuplicateValues: string[] | undefined, entity: string | undefined, rows: any[], res: Response): void;
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, MultilineExportType } from "../common/ExportImportParam.js";
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, MultilineExportType.Multiline, undefined, entity, rows, res);
93
+ this.exportBase(csvParam, columns, true, ToManyAssocExportType.Multiline, undefined, entity, rows, res);
94
94
  }
95
- exportBase(csvParam, columns, createHeaders, multilineExportType, fieldsToDuplicateValues, entity, rows, res) {
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, multilineExportType, fieldsToDuplicateValues, entityMetadata, row, csvWriter);
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.headers !== undefined, excelCsvParam.toManyAssocExport, excelCsvParam.fieldsToDuplicateValues, exportCsvParam.queryParam.entity, rowList, res);
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.headers !== undefined, res);
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.toManyAssocExport, exportCsvParam.excelCsvParam.fieldsToDuplicateValues, entityMetadata, entityObj, csvWriter);
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, multilineExportType, fieldsToDuplicateValues, entityMetadata, row, csvWriter) {
145
- const resultRowList = this.exportRow(columns, multilineExportType, fieldsToDuplicateValues, entityMetadata, row);
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":"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"}
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 { MultilineExportType } from "../common/ExportImportParam.js";
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, multilineExportType: MultilineExportType, fieldsToDuplicateValues: string[] | undefined, entity: string | undefined, rows: any[]): Promise<StreamableFile>;
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 { MultilineExportType } from "../common/ExportImportParam.js";
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, MultilineExportType.Singleline, undefined, entity, rows);
18
+ return this.exportBase(worksheetName, columns, true, undefined, ToManyAssocExportType.Multiline, undefined, entity, rows);
16
19
  }
17
- exportBase(worksheetName, columns, createHeaders, multilineExportType, fieldsToDuplicateValues, entity, rows) {
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, multilineExportType, fieldsToDuplicateValues, entityMetadata, row);
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":"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"}
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[], multilineExportType: MultilineExportType, fieldsToDuplicateValues: string[] | undefined, entityMetadata: Entity | undefined, row: any): Array<Array<any>>;
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, multilineExportType, fieldsToDuplicateValues, entityMetadata, row) {
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 (multilineExportType === MultilineExportType.Singleline) {
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
- columnValues = [columnValues.join(", ")];
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, [], [], undefined);
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":"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"}
1
+ {"version":3,"file":"export.service.js","sourceRoot":"","sources":["../../src/export/export.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export { LocaleOptions, localeOption } from "./Locale.js";
1
+ export type { LocaleOptions } from "./Locale.js";
2
+ export { localeOption } from "./Locale.js";
2
3
  export { localeEn } from "./x-en.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAC,MAAM,aAAa,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC"}
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"}