taxtank-core 0.9.0 → 0.9.3

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 (36) hide show
  1. package/bundles/taxtank-core.umd.js +112 -141
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/transaction.collection.js +1 -8
  4. package/esm2015/lib/db/Models/transaction-base.js +12 -8
  5. package/esm2015/lib/interfaces/exportable.interface.js +2 -0
  6. package/esm2015/lib/interfaces/updatable.interface.js +2 -0
  7. package/esm2015/lib/models/chart-accounts/chart-accounts-categories.const.js +24 -3
  8. package/esm2015/lib/models/chart-accounts/chart-accounts.js +5 -1
  9. package/esm2015/lib/models/export/export-format.enum.js +6 -0
  10. package/esm2015/lib/models/transaction/transaction.js +6 -4
  11. package/esm2015/lib/services/http/transaction/messages.enum.js +7 -0
  12. package/esm2015/lib/services/http/transaction/transaction.service.js +17 -4
  13. package/esm2015/lib/services/pdf/pdf.service.js +2 -42
  14. package/esm2015/lib/services/toast/toast.service.js +32 -1
  15. package/esm2015/lib/services/xlsx/xlsx.service.js +13 -20
  16. package/esm2015/public-api.js +4 -3
  17. package/fesm2015/taxtank-core.js +112 -137
  18. package/fesm2015/taxtank-core.js.map +1 -1
  19. package/lib/collections/transaction.collection.d.ts +0 -6
  20. package/lib/db/Models/transaction-base.d.ts +4 -2
  21. package/lib/interfaces/exportable.interface.d.ts +9 -0
  22. package/lib/interfaces/updatable.interface.d.ts +8 -0
  23. package/lib/models/chart-accounts/chart-accounts-categories.const.d.ts +4 -0
  24. package/lib/models/chart-accounts/chart-accounts.d.ts +1 -0
  25. package/lib/models/export/export-format.enum.d.ts +4 -0
  26. package/lib/services/http/transaction/messages.enum.d.ts +5 -0
  27. package/lib/services/http/transaction/transaction.service.d.ts +7 -1
  28. package/lib/services/pdf/pdf.service.d.ts +1 -14
  29. package/lib/services/toast/toast.service.d.ts +4 -0
  30. package/lib/services/xlsx/xlsx.service.d.ts +4 -5
  31. package/package.json +1 -1
  32. package/public-api.d.ts +3 -2
  33. package/esm2015/lib/models/data-table/data-table-column.js +0 -13
  34. package/esm2015/lib/models/data-table/data-table.js +0 -42
  35. package/lib/models/data-table/data-table-column.d.ts +0 -20
  36. package/lib/models/data-table/data-table.d.ts +0 -24
@@ -1,7 +1,6 @@
1
1
  import { Collection } from './collection';
2
2
  import { Transaction } from '../models/transaction/transaction';
3
3
  import { TransactionAllocationCollection } from './transaction-allocation.collection';
4
- import { TankTypeEnum } from '../db/Enums/tank-type.enum';
5
4
  import { ChartAccountsCategoryEnum } from '../db/Enums/chart-accounts-category.enum';
6
5
  /**
7
6
  * Collection of transactions
@@ -21,11 +20,6 @@ export declare class TransactionCollection extends Collection<Transaction> {
21
20
  * Cash position is equal to Total Amount because income is positive and expense is negative,
22
21
  */
23
22
  get cashPosition(): number;
24
- /**
25
- * Get new collection of transactions filtered by tank type
26
- * @param tankType
27
- */
28
- getByTankType(tankType: TankTypeEnum): TransactionCollection;
29
23
  /**
30
24
  * get date of the last transaction
31
25
  */
@@ -1,6 +1,5 @@
1
1
  import { Property } from './property/property';
2
2
  import { ChartAccounts } from './chart-accounts';
3
- import { TankTypeEnum } from '../Enums/tank-type.enum';
4
3
  export declare class TransactionBase {
5
4
  id?: number;
6
5
  amount?: number;
@@ -10,7 +9,6 @@ export declare class TransactionBase {
10
9
  description?: string;
11
10
  file?: File;
12
11
  claimPercent?: number;
13
- tankType: TankTypeEnum;
14
12
  /**
15
13
  * Check if current tank is Property
16
14
  */
@@ -19,4 +17,8 @@ export declare class TransactionBase {
19
17
  * Check if current tank is Work
20
18
  */
21
19
  isWorkTank(): boolean;
20
+ /**
21
+ * Check if current tank is Sole
22
+ */
23
+ isSoleTank(): boolean;
22
24
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Interface for components that contains data to export (download, print, e.t.c.)
3
+ */
4
+ export interface Exportable {
5
+ /**
6
+ * Title of the exportable file
7
+ */
8
+ exportFileTitle: string;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ /**
3
+ * Interface for implementation by components that use an update event emitters.
4
+ * Created to avoid using "change" event emitter name, because that name can cause unexpected events of Angular/JS
5
+ */
6
+ export interface Updatable<T> {
7
+ update: EventEmitter<T>;
8
+ }
@@ -1,4 +1,8 @@
1
1
  import { ChartAccountsCategoryEnum } from '../../db/Enums/chart-accounts-category.enum';
2
+ /**
3
+ * Grouped chart accounts categories for fast work
4
+ * @TODO Alex: Clean up and/or remove some groups
5
+ */
2
6
  export declare const CHART_ACCOUNTS_CATEGORIES: {
3
7
  [key: string]: ChartAccountsCategoryEnum[];
4
8
  };
@@ -48,6 +48,7 @@ export declare class ChartAccounts extends ChartAccountsBase {
48
48
  isIncome(): boolean;
49
49
  isProperty(): boolean;
50
50
  isWorkExpense(): boolean;
51
+ isSoleExpense(): boolean;
51
52
  /**
52
53
  * Check if chart accounts is property expense
53
54
  */
@@ -0,0 +1,4 @@
1
+ export declare enum ExportFormatEnum {
2
+ PDF = "PDF",
3
+ XLSX = "XLSX"
4
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum MessagesEnum {
2
+ DELETED_MESSAGE = "Transaction deleted",
3
+ UPDATED_MESSAGE = "Transaction updated",
4
+ CREATED_MESSAGE = "Transaction(s) created"
5
+ }
@@ -7,6 +7,7 @@ import { RestService } from '../rest/rest.service';
7
7
  import { Transaction } from '../../../models/transaction/transaction';
8
8
  import { ChartAccounts } from '../../../models/chart-accounts/chart-accounts';
9
9
  import { ChartAccountsTaxLabelsEnum } from '../../../models/chart-accounts/chart-accounts-tax-labels.enum';
10
+ import { ToastService } from '../../toast/toast.service';
10
11
  import * as i0 from "@angular/core";
11
12
  /**
12
13
  * Service for transactions business logic
@@ -15,10 +16,11 @@ export declare class TransactionService extends RestService<TransactionBase, Tra
15
16
  protected http: HttpClient;
16
17
  protected eventDispatcherService: EventDispatcherService;
17
18
  protected environment: any;
19
+ protected toastService: ToastService;
18
20
  url: string;
19
21
  modelClass: typeof Transaction;
20
22
  transactionDeleted: EventEmitter<Transaction>;
21
- constructor(http: HttpClient, eventDispatcherService: EventDispatcherService, environment: any);
23
+ constructor(http: HttpClient, eventDispatcherService: EventDispatcherService, environment: any, toastService: ToastService);
22
24
  /**
23
25
  * Listen events from Event Dispatcher services
24
26
  */
@@ -87,6 +89,10 @@ export declare class TransactionService extends RestService<TransactionBase, Tra
87
89
  * Listen to EventDispatcherService event related to Depreciation changing
88
90
  */
89
91
  private listenDepreciationChange;
92
+ /**
93
+ * Listen to EventDispatcherService event related to Property Share changing
94
+ */
95
+ private listenPropertyShareUpdate;
90
96
  static ɵfac: i0.ɵɵFactoryDeclaration<TransactionService, never>;
91
97
  static ɵprov: i0.ɵɵInjectableDeclaration<TransactionService>;
92
98
  }
@@ -1,25 +1,12 @@
1
- import { DataTable } from '../../models/data-table/data-table';
2
1
  import * as i0 from "@angular/core";
3
2
  export declare class PdfService {
4
3
  /**
5
- * Download generated PDF file
6
- */
7
- download(tables: DataTable<any>[], title: string, fileName: string): void;
8
- /**
9
- * @Todo rename when all DataTable dependent methods will be cleared-up
4
+ * Export file form provided HTML tables
10
5
  */
11
6
  exportTables(tables: NodeListOf<HTMLTableElement>, title: string, fileName: string): void;
12
- /**
13
- * @Todo rename when all DataTable dependent methods will be cleared-up
14
- */
15
7
  private generateFromTables;
16
8
  private setDocumentTitle;
17
9
  private setDocumentLogo;
18
- /**
19
- * @Todo remove/refactor when all DataTable dependent methods will be cleared-up
20
- * Generate PDF file from provided data
21
- */
22
- private generatePdfFile;
23
10
  static ɵfac: i0.ɵɵFactoryDeclaration<PdfService, never>;
24
11
  static ɵprov: i0.ɵɵInjectableDeclaration<PdfService>;
25
12
  }
@@ -8,6 +8,10 @@ export declare class ToastService {
8
8
  toast$: ReplaySubject<Toast>;
9
9
  get(): Observable<Toast>;
10
10
  add(toast: Toast): void;
11
+ success(message: string): void;
12
+ warning(message: string): void;
13
+ error(message: string): void;
14
+ info(message: string): void;
11
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
12
16
  static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
13
17
  }
@@ -1,11 +1,10 @@
1
- import { DataTable } from '../../models/data-table/data-table';
2
1
  import * as i0 from "@angular/core";
3
2
  export declare class XlsxService {
4
- /**s
5
- * Download generated Excel file
3
+ /**
4
+ * Export file form provided HTML tables
6
5
  */
7
- download(tables: DataTable<any>[], title: string, fileName: string): void;
8
- private generateFile;
6
+ exportTables(tables: NodeListOf<HTMLTableElement>, title: string, fileName: string): void;
7
+ private generateFromTables;
9
8
  static ɵfac: i0.ɵɵFactoryDeclaration<XlsxService, never>;
10
9
  static ɵprov: i0.ɵɵInjectableDeclaration<XlsxService>;
11
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taxtank-core",
3
- "version": "0.9.0",
3
+ "version": "0.9.3",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^12.2.3 || ~13.0.0",
package/public-api.d.ts CHANGED
@@ -154,8 +154,6 @@ export * from './lib/models/client/client-movement';
154
154
  export * from './lib/models/client/client-portfolio-chart-data';
155
155
  export * from './lib/models/client/client-portfolio-report';
156
156
  export * from './lib/models/color/alphabet-colors.enum';
157
- export * from './lib/models/data-table/data-table';
158
- export * from './lib/models/data-table/data-table-column';
159
157
  export * from './lib/models/depreciation/depreciation';
160
158
  export * from './lib/models/depreciation/depreciation-lvp-rate.enum';
161
159
  export * from './lib/models/depreciation/depreciation-capital-project';
@@ -175,6 +173,7 @@ export * from './lib/models/endpoint/endpoint';
175
173
  export * from './lib/models/endpoint/endpoints.const';
176
174
  export * from './lib/models/event/app-event';
177
175
  export * from './lib/models/event/app-event-type.enum';
176
+ export * from './lib/models/export/export-format.enum';
178
177
  export * from './lib/models/file/icons-file.enum';
179
178
  export * from './lib/models/financial-year/financial-year';
180
179
  export * from './lib/models/financial-year/month-name-short.enum';
@@ -336,8 +335,10 @@ export * from './lib/interfaces/event-listener.interface';
336
335
  export * from './lib/interfaces/income-source-forecast.interface';
337
336
  export * from './lib/interfaces/option.interface';
338
337
  export * from './lib/interfaces/photoable';
338
+ export * from './lib/interfaces/exportable.interface';
339
339
  export * from './lib/interfaces/receipt.interface';
340
340
  export * from './lib/interfaces/tank.interface';
341
+ export * from './lib/interfaces/updatable.interface';
341
342
  /**
342
343
  * Functions
343
344
  */
@@ -1,13 +0,0 @@
1
- export class DataTableColumn {
2
- constructor(name, key, total, pipe) {
3
- /**
4
- * Flag that shows should the column be in the total calculation or not
5
- */
6
- this.total = false;
7
- this.name = name;
8
- this.key = key;
9
- this.total = total;
10
- this.pipe = pipe;
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb2x1bW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGVBQWU7SUFrQjFCLFlBQ0UsSUFBWSxFQUNaLEdBQWdCLEVBQ2hCLEtBQWMsRUFDZCxJQUFtQjtRQWJyQjs7V0FFRztRQUNILFVBQUssR0FBWSxLQUFLLENBQUM7UUFZckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb2x1bW48TW9kZWw+IHtcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhlIGNvbHVtblxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRmllbGQgdGhhdCBlcXVhbHMgdG8gbW9kZWwga2V5XG4gICAqL1xuICBrZXk6IGtleW9mIE1vZGVsO1xuICAvKipcbiAgICogRmxhZyB0aGF0IHNob3dzIHNob3VsZCB0aGUgY29sdW1uIGJlIGluIHRoZSB0b3RhbCBjYWxjdWxhdGlvbiBvciBub3RcbiAgICovXG4gIHRvdGFsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBQcm92aWRlZCBwaXBlLCB3aGljaCBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgcm93IGRhdGFcbiAgICovXG4gIHBpcGU/OiBQaXBlVHJhbnNmb3JtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBrZXk6IGtleW9mIE1vZGVsLFxuICAgIHRvdGFsOiBib29sZWFuLFxuICAgIHBpcGU6IFBpcGVUcmFuc2Zvcm1cbiAgKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnRvdGFsID0gdG90YWw7XG4gICAgdGhpcy5waXBlID0gcGlwZTtcbiAgfVxufVxuIl19
@@ -1,42 +0,0 @@
1
- /**
2
- * Class to generate data-table structure based on provided collection.
3
- * Use to work with HTML/PDF/XLSX tables
4
- */
5
- export class DataTable {
6
- constructor(collection, columns, caption, footerCaption) {
7
- this.caption = caption;
8
- this.columns = columns;
9
- this.setRows(collection);
10
- if (footerCaption) {
11
- this.setFooterRow(collection, footerCaption);
12
- }
13
- }
14
- setRows(collection) {
15
- this.rows = collection.items.map((item) => {
16
- // parse table columns to return items based on column properties
17
- return this.columns.map((column) => {
18
- // if the pipe is provided - transform the return value
19
- if (column.pipe) {
20
- return column.pipe.transform(item[column.key]);
21
- }
22
- return (item[column.key] ? item[column.key] : '-').toString();
23
- });
24
- });
25
- }
26
- setFooterRow(collection, footerCaption) {
27
- this.footerRow = this.columns.map((column, index) => {
28
- if (index === 0) {
29
- return footerCaption.toString();
30
- }
31
- if (!column.total) {
32
- return '';
33
- }
34
- const totalValue = collection.items.reduce((sum, item) => {
35
- // check if current collection item has value. If not - don't add it to the sum
36
- return item[column.key] !== null ? sum + Number(item[column.key]) : sum;
37
- }, null);
38
- return (totalValue !== null && totalValue !== void 0 ? totalValue : '-').toString();
39
- });
40
- }
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBaUJwQixZQUNFLFVBQTZCLEVBQzdCLE9BQWlDLEVBQ2pDLE9BQWUsRUFDZixhQUFzQjtRQUV0QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVPLE9BQU8sQ0FBQyxVQUE2QjtRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUU7WUFDL0MsaUVBQWlFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUE4QixFQUFFLEVBQUU7Z0JBQ3pELHVEQUF1RDtnQkFDdkQsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO29CQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNoRDtnQkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsVUFBNkIsRUFBRSxhQUFxQjtRQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBOEIsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNsRixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQ2YsT0FBTyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDakM7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDakIsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELE1BQU0sVUFBVSxHQUFXLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLElBQVcsRUFBRSxFQUFFO2dCQUM5RSwrRUFBK0U7Z0JBQy9FLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7WUFDekUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRVQsT0FBTyxDQUFDLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhVGFibGVDb2x1bW59IGZyb20gXCIuL2RhdGEtdGFibGUtY29sdW1uXCI7XG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gXCIuLi8uLi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uXCI7XG5cbi8qKlxuICogQ2xhc3MgdG8gZ2VuZXJhdGUgZGF0YS10YWJsZSBzdHJ1Y3R1cmUgYmFzZWQgb24gcHJvdmlkZWQgY29sbGVjdGlvbi5cbiAqIFVzZSB0byB3b3JrIHdpdGggSFRNTC9QREYvWExTWCB0YWJsZXNcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFUYWJsZTxNb2RlbCBleHRlbmRzIG9iamVjdD4ge1xuICAvKipcbiAgICogQ2FwdGlvbiBvZiB0aGUgdGFibGVcbiAgICovXG4gIGNhcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHRhYmxlIGNvbHVtbnNcbiAgICovXG4gIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbjxNb2RlbD5bXTtcblxuICAvKipcbiAgICogVGFibGUgcm93cyB3aXRoIGRhdGFcbiAgICovXG4gIHJvd3M6IEFycmF5PHN0cmluZz5bXTtcbiAgZm9vdGVyUm93OiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPE1vZGVsPixcbiAgICBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW48TW9kZWw+W10sXG4gICAgY2FwdGlvbjogc3RyaW5nLFxuICAgIGZvb3RlckNhcHRpb24/OiBzdHJpbmcsXG4gICkge1xuICAgIHRoaXMuY2FwdGlvbiA9IGNhcHRpb247XG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICB0aGlzLnNldFJvd3MoY29sbGVjdGlvbik7XG4gICAgaWYgKGZvb3RlckNhcHRpb24pIHtcbiAgICAgIHRoaXMuc2V0Rm9vdGVyUm93KGNvbGxlY3Rpb24sIGZvb3RlckNhcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Um93cyhjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPE1vZGVsPik6IHZvaWQge1xuICAgIHRoaXMucm93cyA9IGNvbGxlY3Rpb24uaXRlbXMubWFwKChpdGVtOiBNb2RlbCkgPT4ge1xuICAgICAgLy8gcGFyc2UgdGFibGUgY29sdW1ucyB0byByZXR1cm4gaXRlbXMgYmFzZWQgb24gY29sdW1uIHByb3BlcnRpZXNcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW46IERhdGFUYWJsZUNvbHVtbjxNb2RlbD4pID0+IHtcbiAgICAgICAgLy8gaWYgdGhlIHBpcGUgaXMgcHJvdmlkZWQgLSB0cmFuc2Zvcm0gdGhlIHJldHVybiB2YWx1ZVxuICAgICAgICBpZiAoY29sdW1uLnBpcGUpIHtcbiAgICAgICAgICByZXR1cm4gY29sdW1uLnBpcGUudHJhbnNmb3JtKGl0ZW1bY29sdW1uLmtleV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChpdGVtW2NvbHVtbi5rZXldID8gaXRlbVtjb2x1bW4ua2V5XSA6ICctJykudG9TdHJpbmcoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb290ZXJSb3coY29sbGVjdGlvbjogQ29sbGVjdGlvbjxNb2RlbD4sIGZvb3RlckNhcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZm9vdGVyUm93ID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uOiBEYXRhVGFibGVDb2x1bW48TW9kZWw+LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZvb3RlckNhcHRpb24udG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjb2x1bW4udG90YWwpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0b3RhbFZhbHVlOiBudW1iZXIgPSBjb2xsZWN0aW9uLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IE1vZGVsKSA9PiB7XG4gICAgICAgIC8vIGNoZWNrIGlmIGN1cnJlbnQgY29sbGVjdGlvbiBpdGVtIGhhcyB2YWx1ZS4gSWYgbm90IC0gZG9uJ3QgYWRkIGl0IHRvIHRoZSBzdW1cbiAgICAgICAgcmV0dXJuIGl0ZW1bY29sdW1uLmtleV0gIT09IG51bGwgPyBzdW0gKyBOdW1iZXIoaXRlbVtjb2x1bW4ua2V5XSkgOiBzdW1cbiAgICAgIH0sIG51bGwpO1xuXG4gICAgICByZXR1cm4gKHRvdGFsVmFsdWUgPz8gJy0nKS50b1N0cmluZygpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { PipeTransform } from '@angular/core';
2
- export declare class DataTableColumn<Model> {
3
- /**
4
- * Human-readable name of the column
5
- */
6
- name: string;
7
- /**
8
- * Field that equals to model key
9
- */
10
- key: keyof Model;
11
- /**
12
- * Flag that shows should the column be in the total calculation or not
13
- */
14
- total: boolean;
15
- /**
16
- * Provided pipe, which should be applied to the row data
17
- */
18
- pipe?: PipeTransform;
19
- constructor(name: string, key: keyof Model, total: boolean, pipe: PipeTransform);
20
- }
@@ -1,24 +0,0 @@
1
- import { DataTableColumn } from "./data-table-column";
2
- import { Collection } from "../../collections/collection";
3
- /**
4
- * Class to generate data-table structure based on provided collection.
5
- * Use to work with HTML/PDF/XLSX tables
6
- */
7
- export declare class DataTable<Model extends object> {
8
- /**
9
- * Caption of the table
10
- */
11
- caption?: string;
12
- /**
13
- * Array of table columns
14
- */
15
- columns: DataTableColumn<Model>[];
16
- /**
17
- * Table rows with data
18
- */
19
- rows: Array<string>[];
20
- footerRow: string[];
21
- constructor(collection: Collection<Model>, columns: DataTableColumn<Model>[], caption: string, footerCaption?: string);
22
- private setRows;
23
- private setFooterRow;
24
- }