taxtank-core 0.33.69 → 0.33.71

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.
@@ -39,15 +39,8 @@ export class XlsxService {
39
39
  // add caption for the current table
40
40
  xlsx.utils.sheet_add_aoa(worksheet, [[data.caption?.innerText]], { origin: -1 });
41
41
  // Prepare to add table data to the worksheet, processing each cell
42
- const rows = Array.from(data.rows).map((row) => Array.from(row.cells).map((cell) => {
43
- const cellValue = cell.innerText;
44
- // Convert currency strings like "$0.00" to numbers
45
- if (/^-?\$/.test(cellValue)) {
46
- // @TODO vik fix
47
- // cellValue = parseFloat(cellValue.replace('$', ''));
48
- }
49
- return cellValue;
50
- }));
42
+ const rows = Array.from(data.rows)
43
+ .map((row) => Array.from(row.cells).map(cell => this.htmlToXlsCell(cell)));
51
44
  // Add the processed table data to the worksheet
52
45
  xlsx.utils.sheet_add_aoa(worksheet, rows, { origin: -1 });
53
46
  // set empty row after current table
@@ -56,6 +49,21 @@ export class XlsxService {
56
49
  xlsx.utils.book_append_sheet(workbook, worksheet);
57
50
  return xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
58
51
  }
52
+ htmlToXlsCell(cell) {
53
+ const cellValue = cell.innerText;
54
+ // regex to check currency value
55
+ return /^-?\$/.test(cellValue) ? this.currencyToNumber(cellValue) : cellValue;
56
+ }
57
+ /**
58
+ * function which reconverts values from customCurrencyPipe
59
+ * @param cellValue - string with $ and possibly comma. $123,123.03
60
+ * @returns value without $ and comma. like 123123.03
61
+ */
62
+ currencyToNumber(cellValue) {
63
+ // remove dollar sign and comma
64
+ cellValue = cellValue.replace(/[$,]/g, '');
65
+ return parseFloat(cellValue);
66
+ }
59
67
  /**
60
68
  * @TODO vik/artem work with ExportDataTable instead of ExportableCollection
61
69
  * @TODO vik/artem why so much code? here is 6 rows solution https://stackoverflow.com/questions/64939994/how-to-export-array-of-objects-to-an-excel-in-angular-8
@@ -91,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
99
  providedIn: 'root'
92
100
  }]
93
101
  }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gveGxzeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7O0FBSXhDLE1BQU0sVUFBVSxHQUFXLGlGQUFpRixDQUFBO0FBTTVHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUFxREUsZ0JBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPO2dCQUNMLFNBQVM7Z0JBQ1QsUUFBUTthQUNULENBQUM7UUFDSixDQUFDLENBQUM7S0FnQ0g7SUFwRkM7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBb0MsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxTQUFTLEdBQWEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBb0MsRUFBRSxLQUFjO1FBQzdFLHNCQUFzQjtRQUN0QixNQUFNLFFBQVEsR0FBa0IsSUFBSSxDQUFDLEtB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QUUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV0RixNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQXBGVSxXQUFXO21IQUFYLFdBQVcsY0FOVixNQUFNOzs0RkFNUCxXQUFXO2tCQVB2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIHhsc3ggZnJvbSAneGxzeCc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBFeHBvcnRhYmxlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEV4cG9ydERhdGFUYWJsZSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGUnO1xuXG5jb25zdCBFWENFTF9UWVBFOiBzdHJpbmcgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggWExTWCAoZ2VuZXJhdGUsIGRvd25sb2FkLCBlLnQuYy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBYbHN4U2VydmljZSB7XG4gIC8qKlxuICAgKiBFeHBvcnQgZmlsZSBmb3JtIHByb3ZpZGVkIEhUTUwgdGFibGVzXG4gICAqL1xuICBleHBvcnRUYWJsZXModGFibGVzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUVsZW1lbnQ+LCB0aXRsZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhjZWxGaWxlOiBCbG9iUGFydCA9IHRoaXMuZ2VuZXJhdGVGcm9tVGFibGVzKHRhYmxlcywgdGl0bGUpO1xuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbZXhjZWxGaWxlXSwge1xuICAgICAgdHlwZTogRVhDRUxfVFlQRVxuICAgIH0pO1xuXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBgJHtmaWxlTmFtZX0ueGxzeGApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUZyb21UYWJsZXModGFibGVzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUVsZW1lbnQ+LCB0aXRsZT86IHN0cmluZyk6IEJsb2JQYXJ0IHtcbiAgICAvLyBjcmVhdGUgbmV3IHdvcmtib29rXG4gICAgY29uc3Qgd29ya2Jvb2s6IHhsc3guV29ya0Jvb2sgPSB4bHN4LnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgLy8gY3JlYXRlIGVtcHR5IHdvcmtzaGVldFxuICAgIGNvbnN0IHdvcmtzaGVldDogeGxzeC5Xb3JrU2hlZXQgPSB7XG4gICAgICBTaGVldE5hbWVzOiBbXSxcbiAgICAgIFNoZWV0czoge31cbiAgICB9O1xuXG4gICAgdGFibGVzLmZvckVhY2goKGRhdGE6IEhUTUxUYWJsZUVsZW1lbnQpID0+IHtcbiAgICAgIC8vIGFkZCBjYXB0aW9uIGZvciB0aGUgY3VycmVudCB0YWJsZVxuICAgICAgeGxzeC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgW1tkYXRhLmNhcHRpb24/LmlubmVyVGV4dF1dLCB7IG9yaWdpbjogLTEgfSk7XG4gICAgICAvLyBQcmVwYXJlIHRvIGFkZCB0YWJsZSBkYXRhIHRvIHRoZSB3b3Jrc2hlZXQsIHByb2Nlc3NpbmcgZWFjaCBjZWxsXG4gICAgICBjb25zdCByb3dzID0gQXJyYXkuZnJvbShkYXRhLnJvd3MpLm1hcCgocm93OiBIVE1MVGFibGVSb3dFbGVtZW50KSA9PiBBcnJheS5mcm9tKHJvdy5jZWxscykubWFwKChjZWxsOiBIVE1MVGFibGVDZWxsRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBjZWxsVmFsdWU6IHN0cmluZyB8IG51bWJlciA9IGNlbGwuaW5uZXJUZXh0O1xuICAgICAgICAvLyBDb252ZXJ0IGN1cnJlbmN5IHN0cmluZ3MgbGlrZSBcIiQwLjAwXCIgdG8gbnVtYmVyc1xuICAgICAgICBpZiAoL14tP1xcJC8udGVzdChjZWxsVmFsdWUpKSB7XG4gICAgICAgICAgLy8gQFRPRE8gdmlrIGZpeFxuICAgICAgICAgIC8vIGNlbGxWYWx1ZSA9IHBhcnNlRmxvYXQoY2VsbFZhbHVlLnJlcGxhY2UoJyQnLCAnJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZTtcbiAgICAgIH0pKTtcbiAgICAgIC8vIEFkZCB0aGUgcHJvY2Vzc2VkIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldFxuICAgICAgeGxzeC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgcm93cywgeyBvcmlnaW46IC0xIH0pO1xuICAgICAgLy8gc2V0IGVtcHR5IHJvdyBhZnRlciBjdXJyZW50IHRhYmxlXG4gICAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbXSwgeyBvcmlnaW46IC0xIH0pO1xuICAgIH0pO1xuXG4gICAgeGxzeC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3b3JrYm9vaywgd29ya3NoZWV0KTtcbiAgICByZXR1cm4geGxzeC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xuICB9XG5cbiAgZ2V0RmlsZU5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc2hlZXROYW1lID0gbmFtZSB8fCAnRXhwb3J0UmVzdWx0JztcbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke3NoZWV0TmFtZX1gO1xuICAgIHJldHVybiB7XG4gICAgICBzaGVldE5hbWUsXG4gICAgICBmaWxlTmFtZVxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpay9hcnRlbSB3b3JrIHdpdGggRXhwb3J0RGF0YVRhYmxlIGluc3RlYWQgb2YgRXhwb3J0YWJsZUNvbGxlY3Rpb25cbiAgICogQFRPRE8gdmlrL2FydGVtIHdoeSBzbyBtdWNoIGNvZGU/IGhlcmUgaXMgNiByb3dzIHNvbHV0aW9uIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY0OTM5OTk0L2hvdy10by1leHBvcnQtYXJyYXktb2Ytb2JqZWN0cy10by1hbi1leGNlbC1pbi1hbmd1bGFyLThcbiAgICovXG4gIGV4cG9ydEFycmF5VG9FeGNlbChleHBvcnRhYmxlQ29sbGVjdGlvbjogRXhwb3J0YWJsZUNvbGxlY3Rpb248YW55PiwgbmFtZT86IHN0cmluZywgcGFyYW1zPyA6IGFueSkge1xuICAgIGNvbnN0IHdvcmtib29rOiB4bHN4LldvcmtCb29rID0geGxzeC51dGlscy5ib29rX25ldygpO1xuICAgIC8vIGNyZWF0ZSBlbXB0eSB3b3Jrc2hlZXRcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IHhsc3guV29ya1NoZWV0ID0ge1xuICAgICAgU2hlZXROYW1lczogW10sXG4gICAgICBTaGVldHM6IHt9XG4gICAgfTtcblxuICAgIGNvbnN0IGV4cG9ydERhdGE6IEV4cG9ydERhdGFUYWJsZSA9IGV4cG9ydGFibGVDb2xsZWN0aW9uLmV4cG9ydChwYXJhbXMpXG4gICAgY29uc3QgZXhwb3J0QW9hID0gZXhwb3J0YWJsZUNvbGxlY3Rpb24uZ2V0Qm9keUFvYShleHBvcnREYXRhKTtcbiAgICBjb25zdCB7IHNoZWV0TmFtZSwgZmlsZU5hbWUgfSA9IHRoaXMuZ2V0RmlsZU5hbWUobmFtZSk7XG5cbiAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbZXhwb3J0RGF0YS5oZWFkZXJdLCB7IG9yaWdpbjogLTEgfSk7XG4gICAgLy8gYWRkIHRhYmxlIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldFxuICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIGV4cG9ydEFvYSwgeyBvcmlnaW46IC0xIH0pO1xuICAgIC8vIHNldCBlbXB0eSByb3cgYWZ0ZXIgY3VycmVudCB0YWJsZVxuICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIFtdLCB7IG9yaWdpbjogLTEgfSk7XG5cbiAgICB4bHN4LnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdvcmtib29rLCB3b3Jrc2hlZXQpO1xuICAgIGNvbnN0IGV4Y2VsRmlsZTogQmxvYlBhcnQgPSB4bHN4LndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XG5cbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2V4Y2VsRmlsZV0sIHtcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcbiAgICB9KTtcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGAke2ZpbGVOYW1lfS54bHN4YCk7XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gveGxzeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7O0FBSXhDLE1BQU0sVUFBVSxHQUFXLGlGQUFpRixDQUFBO0FBTTVHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUErREUsZ0JBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPO2dCQUNMLFNBQVM7Z0JBQ1QsUUFBUTthQUNULENBQUM7UUFDSixDQUFDLENBQUM7S0FnQ0g7SUE5RkM7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBb0MsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxTQUFTLEdBQWEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBb0MsRUFBRSxLQUFjO1FBQzdFLHNCQUFzQjtRQUN0QixNQUFNLFFBQVEsR0FBa0IsSUFBSSxDQUFDLEtB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QUUsQ0FBQyxDQUFDO1FBQ3pFLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXRGLE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBOUZVLFdBQVc7bUhBQVgsV0FBVyxjQU5WLE1BQU07OzRGQU1QLFdBQVc7a0JBUHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgeGxzeCBmcm9tICd4bHN4JztcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRXhwb3J0RGF0YVRhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtZGF0YS10YWJsZSc7XG5cbmNvbnN0IEVYQ0VMX1RZUEU6IHN0cmluZyA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04J1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHdvcmsgd2l0aCBYTFNYIChnZW5lcmF0ZSwgZG93bmxvYWQsIGUudC5jLilcbiAqL1xuZXhwb3J0IGNsYXNzIFhsc3hTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEV4cG9ydCBmaWxlIGZvcm0gcHJvdmlkZWQgSFRNTCB0YWJsZXNcbiAgICovXG4gIGV4cG9ydFRhYmxlcyh0YWJsZXM6IE5vZGVMaXN0T2Y8SFRNTFRhYmxlRWxlbWVudD4sIHRpdGxlOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBleGNlbEZpbGU6IEJsb2JQYXJ0ID0gdGhpcy5nZW5lcmF0ZUZyb21UYWJsZXModGFibGVzLCB0aXRsZSk7XG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtleGNlbEZpbGVdLCB7XG4gICAgICB0eXBlOiBFWENFTF9UWVBFXG4gICAgfSk7XG5cbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGAke2ZpbGVOYW1lfS54bHN4YCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRnJvbVRhYmxlcyh0YWJsZXM6IE5vZGVMaXN0T2Y8SFRNTFRhYmxlRWxlbWVudD4sIHRpdGxlPzogc3RyaW5nKTogQmxvYlBhcnQge1xuICAgIC8vIGNyZWF0ZSBuZXcgd29ya2Jvb2tcbiAgICBjb25zdCB3b3JrYm9vazogeGxzeC5Xb3JrQm9vayA9IHhsc3gudXRpbHMuYm9va19uZXcoKTtcbiAgICAvLyBjcmVhdGUgZW1wdHkgd29ya3NoZWV0XG4gICAgY29uc3Qgd29ya3NoZWV0OiB4bHN4LldvcmtTaGVldCA9IHtcbiAgICAgIFNoZWV0TmFtZXM6IFtdLFxuICAgICAgU2hlZXRzOiB7fVxuICAgIH07XG5cbiAgICB0YWJsZXMuZm9yRWFjaCgoZGF0YTogSFRNTFRhYmxlRWxlbWVudCkgPT4ge1xuICAgICAgLy8gYWRkIGNhcHRpb24gZm9yIHRoZSBjdXJyZW50IHRhYmxlXG4gICAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbW2RhdGEuY2FwdGlvbj8uaW5uZXJUZXh0XV0sIHsgb3JpZ2luOiAtMSB9KTtcbiAgICAgIC8vIFByZXBhcmUgdG8gYWRkIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldCwgcHJvY2Vzc2luZyBlYWNoIGNlbGxcbiAgICAgIGNvbnN0IHJvd3MgPSBBcnJheS5mcm9tKGRhdGEucm93cylcbiAgICAgICAgLm1hcCgocm93OiBIVE1MVGFibGVSb3dFbGVtZW50KSA9PiBBcnJheS5mcm9tKHJvdy5jZWxscykubWFwKGNlbGwgPT4gdGhpcy5odG1sVG9YbHNDZWxsKGNlbGwpKSk7XG4gICAgICAvLyBBZGQgdGhlIHByb2Nlc3NlZCB0YWJsZSBkYXRhIHRvIHRoZSB3b3Jrc2hlZXRcbiAgICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIHJvd3MsIHsgb3JpZ2luOiAtMSB9KTtcbiAgICAgIC8vIHNldCBlbXB0eSByb3cgYWZ0ZXIgY3VycmVudCB0YWJsZVxuICAgICAgeGxzeC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgW10sIHsgb3JpZ2luOiAtMSB9KTtcbiAgICB9KTtcblxuICAgIHhsc3gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod29ya2Jvb2ssIHdvcmtzaGVldCk7XG4gICAgcmV0dXJuIHhsc3gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcbiAgfVxuXG4gIGh0bWxUb1hsc0NlbGwoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIGNvbnN0IGNlbGxWYWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gY2VsbC5pbm5lclRleHQ7XG4gICAgLy8gcmVnZXggdG8gY2hlY2sgY3VycmVuY3kgdmFsdWVcbiAgICByZXR1cm4gL14tP1xcJC8udGVzdChjZWxsVmFsdWUpID8gdGhpcy5jdXJyZW5jeVRvTnVtYmVyKGNlbGxWYWx1ZSkgOiBjZWxsVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogZnVuY3Rpb24gd2hpY2ggcmVjb252ZXJ0cyB2YWx1ZXMgZnJvbSBjdXN0b21DdXJyZW5jeVBpcGVcbiAgICogQHBhcmFtIGNlbGxWYWx1ZSAtIHN0cmluZyB3aXRoICQgYW5kIHBvc3NpYmx5IGNvbW1hLiAgJDEyMywxMjMuMDNcbiAgICogQHJldHVybnMgdmFsdWUgd2l0aG91dCAkIGFuZCBjb21tYS4gbGlrZSAxMjMxMjMuMDNcbiAgICovXG4gIGN1cnJlbmN5VG9OdW1iZXIoY2VsbFZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIC8vIHJlbW92ZSBkb2xsYXIgc2lnbiBhbmQgY29tbWFcbiAgICBjZWxsVmFsdWUgPSBjZWxsVmFsdWUucmVwbGFjZSgvWyQsXS9nLCAnJyk7XG5cbiAgICByZXR1cm4gcGFyc2VGbG9hdChjZWxsVmFsdWUpO1xuICB9XG5cbiAgZ2V0RmlsZU5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc2hlZXROYW1lID0gbmFtZSB8fCAnRXhwb3J0UmVzdWx0JztcbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke3NoZWV0TmFtZX1gO1xuICAgIHJldHVybiB7XG4gICAgICBzaGVldE5hbWUsXG4gICAgICBmaWxlTmFtZVxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpay9hcnRlbSB3b3JrIHdpdGggRXhwb3J0RGF0YVRhYmxlIGluc3RlYWQgb2YgRXhwb3J0YWJsZUNvbGxlY3Rpb25cbiAgICogQFRPRE8gdmlrL2FydGVtIHdoeSBzbyBtdWNoIGNvZGU/IGhlcmUgaXMgNiByb3dzIHNvbHV0aW9uIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY0OTM5OTk0L2hvdy10by1leHBvcnQtYXJyYXktb2Ytb2JqZWN0cy10by1hbi1leGNlbC1pbi1hbmd1bGFyLThcbiAgICovXG4gIGV4cG9ydEFycmF5VG9FeGNlbChleHBvcnRhYmxlQ29sbGVjdGlvbjogRXhwb3J0YWJsZUNvbGxlY3Rpb248YW55PiwgbmFtZT86IHN0cmluZywgcGFyYW1zPyA6IGFueSkge1xuICAgIGNvbnN0IHdvcmtib29rOiB4bHN4LldvcmtCb29rID0geGxzeC51dGlscy5ib29rX25ldygpO1xuICAgIC8vIGNyZWF0ZSBlbXB0eSB3b3Jrc2hlZXRcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IHhsc3guV29ya1NoZWV0ID0ge1xuICAgICAgU2hlZXROYW1lczogW10sXG4gICAgICBTaGVldHM6IHt9XG4gICAgfTtcblxuICAgIGNvbnN0IGV4cG9ydERhdGE6IEV4cG9ydERhdGFUYWJsZSA9IGV4cG9ydGFibGVDb2xsZWN0aW9uLmV4cG9ydChwYXJhbXMpXG4gICAgY29uc3QgZXhwb3J0QW9hID0gZXhwb3J0YWJsZUNvbGxlY3Rpb24uZ2V0Qm9keUFvYShleHBvcnREYXRhKTtcbiAgICBjb25zdCB7IHNoZWV0TmFtZSwgZmlsZU5hbWUgfSA9IHRoaXMuZ2V0RmlsZU5hbWUobmFtZSk7XG5cbiAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbZXhwb3J0RGF0YS5oZWFkZXJdLCB7IG9yaWdpbjogLTEgfSk7XG4gICAgLy8gYWRkIHRhYmxlIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldFxuICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIGV4cG9ydEFvYSwgeyBvcmlnaW46IC0xIH0pO1xuICAgIC8vIHNldCBlbXB0eSByb3cgYWZ0ZXIgY3VycmVudCB0YWJsZVxuICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIFtdLCB7IG9yaWdpbjogLTEgfSk7XG5cbiAgICB4bHN4LnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdvcmtib29rLCB3b3Jrc2hlZXQpO1xuICAgIGNvbnN0IGV4Y2VsRmlsZTogQmxvYlBhcnQgPSB4bHN4LndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XG5cbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2V4Y2VsRmlsZV0sIHtcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcbiAgICB9KTtcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGAke2ZpbGVOYW1lfS54bHN4YCk7XG4gIH1cbn1cbiJdfQ==
@@ -11279,8 +11279,8 @@ class DataService {
11279
11279
  createModelInstance(model) {
11280
11280
  return plainToClass(this.modelClass, model);
11281
11281
  }
11282
- createCollectionInstance(collectionClass, items) {
11283
- return new collectionClass(items);
11282
+ createCollectionInstance(collectionClass, data) {
11283
+ return new collectionClass(data.map((item) => this.createModelInstance(item)));
11284
11284
  }
11285
11285
  /**
11286
11286
  * never return cache directly to prevent update
@@ -11298,7 +11298,7 @@ class DataService {
11298
11298
  * @TODO vik any[] because of problems with base models extending abstractModel
11299
11299
  */
11300
11300
  setCache(data) {
11301
- this.cache = this.createCollectionInstance(this.collectionClass, data.map((item) => this.createModelInstance(item)));
11301
+ this.cache = this.createCollectionInstance(this.collectionClass, data);
11302
11302
  }
11303
11303
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11304
11304
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, providedIn: 'root' }); }
@@ -11388,13 +11388,17 @@ let RestService$1 = class RestService extends DataService {
11388
11388
  /**
11389
11389
  * Get data from backend and fill the cache
11390
11390
  */
11391
- fetch(path = this.apiUrl, cache = true) {
11392
- // Set cache as empty collection to avoid multiple requests before cache filled
11393
- this.setCache([]);
11394
- return this.http.get(path)
11391
+ fetch(path = this.apiUrl, cache = true, queryParams = {}) {
11392
+ if (cache) {
11393
+ // Set cache as empty collection to avoid multiple requests before cache filled
11394
+ this.setCache([]);
11395
+ }
11396
+ return this.http.get(path, queryParams)
11395
11397
  .pipe(map((response) => Array.isArray(response) ? response : toArray(response)), map((response) => {
11396
- this.setCache(response, true);
11397
- return this.cache;
11398
+ if (cache) {
11399
+ this.setCache(response, true);
11400
+ }
11401
+ return this.createCollectionInstance(this.collectionClass, response);
11398
11402
  }), catchError((error) => this.handleError(error)));
11399
11403
  }
11400
11404
  get(path = this.apiUrl) {
@@ -11555,8 +11559,8 @@ let RestService$1 = class RestService extends DataService {
11555
11559
  case 'delete':
11556
11560
  cache = this.cache.removeBy('id', items.map((item) => item.id));
11557
11561
  break;
11558
- case 'get':
11559
- cache = this.createCollectionInstance(this.collectionClass, items);
11562
+ // case 'get':
11563
+ // cache = this.createCollectionInstance(this.collectionClass, items);
11560
11564
  }
11561
11565
  this.setCache(cache.toArray(), true);
11562
11566
  }
@@ -11637,6 +11641,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
11637
11641
  args: ['environment']
11638
11642
  }] }] });
11639
11643
 
11644
+ var UserEventTypeTypeEnum;
11645
+ (function (UserEventTypeTypeEnum) {
11646
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["REGISTERED"] = 1000] = "REGISTERED";
11647
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PASSWORD_RESET_REQUEST"] = 1001] = "PASSWORD_RESET_REQUEST";
11648
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["APP_FEATURES"] = 1010] = "APP_FEATURES";
11649
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIBED"] = 2000] = "SUBSCRIBED";
11650
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["UNSUBSCRIBED"] = 2001] = "UNSUBSCRIBED";
11651
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIPTION_UPDATE"] = 2004] = "SUBSCRIPTION_UPDATE";
11652
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIPTION_TRIAL_UPDATE"] = 2005] = "SUBSCRIPTION_TRIAL_UPDATE";
11653
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIPTION_PAYMENT_FAILED"] = 2006] = "SUBSCRIPTION_PAYMENT_FAILED";
11654
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE"] = 2010] = "CLIENT_INVITE";
11655
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_TO_REGISTER"] = 2011] = "CLIENT_INVITE_TO_REGISTER";
11656
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_ACCEPTED"] = 2012] = "FIRM_INVITE_ACCEPTED";
11657
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_REJECTED"] = 2013] = "FIRM_INVITE_REJECTED";
11658
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_REGISTERED"] = 2014] = "FIRM_INVITE_REGISTERED";
11659
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE"] = 2020] = "PROPERTY_SHARE_INVITE";
11660
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_TO_REGISTER"] = 2021] = "PROPERTY_SHARE_INVITE_TO_REGISTER";
11661
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_ACCEPTED"] = 2022] = "PROPERTY_SHARE_INVITE_ACCEPTED";
11662
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_REJECTED"] = 2023] = "PROPERTY_SHARE_INVITE_REJECTED";
11663
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_REGISTERED"] = 2024] = "PROPERTY_SHARE_INVITE_REGISTERED";
11664
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_CHANGE_REQUESTED"] = 2025] = "PROPERTY_SHARE_CHANGE_REQUESTED";
11665
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_CHANGE_ACCEPTED"] = 2026] = "PROPERTY_SHARE_CHANGE_ACCEPTED";
11666
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_CHANGE_REJECTED"] = 2027] = "PROPERTY_SHARE_CHANGE_REJECTED";
11667
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["OWNER_SUBSCRIBED"] = 2028] = "OWNER_SUBSCRIBED";
11668
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["OWNER_UNSUBSCRIBED"] = 2029] = "OWNER_UNSUBSCRIBED";
11669
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["BASIQ_NEW_ACCOUNTS"] = 2030] = "BASIQ_NEW_ACCOUNTS";
11670
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["BASIQ_FIRST_IMPORT_COMPLETE"] = 2031] = "BASIQ_FIRST_IMPORT_COMPLETE";
11671
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["BASIQ_AUTHORIZATION_FAIL"] = 2032] = "BASIQ_AUTHORIZATION_FAIL";
11672
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["TRANSACTION_ALLOCATE_REMINDER"] = 2033] = "TRANSACTION_ALLOCATE_REMINDER";
11673
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["INVOICE_AUTO_ALLOCATED"] = 2035] = "INVOICE_AUTO_ALLOCATED";
11674
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["INVOICE_AUTO_PART_ALLOCATED"] = 2036] = "INVOICE_AUTO_PART_ALLOCATED";
11675
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["RULES_AUTO_ALLOCATED"] = 2037] = "RULES_AUTO_ALLOCATED";
11676
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["REGISTRATION_INVITE"] = 2040] = "REGISTRATION_INVITE";
11677
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["REGISTRATION_INVITE_ACCEPTED"] = 2041] = "REGISTRATION_INVITE_ACCEPTED";
11678
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_EMAIL_CONFIRMED"] = 2050] = "CLIENT_EMAIL_CONFIRMED";
11679
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["TAX_REVIEW_REQUESTED"] = 2060] = "TAX_REVIEW_REQUESTED";
11680
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_TO_REGISTER"] = 3000] = "FIRM_INVITE_TO_REGISTER";
11681
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE"] = 3001] = "FIRM_INVITE";
11682
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_ACCEPTED"] = 3002] = "CLIENT_INVITE_ACCEPTED";
11683
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_REJECTED"] = 3003] = "CLIENT_INVITE_REJECTED";
11684
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_REGISTERED"] = 3004] = "CLIENT_INVITE_REGISTERED";
11685
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_NEW_CLIENT"] = 3005] = "FIRM_NEW_CLIENT";
11686
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_LOST_CLIENT"] = 3006] = "FIRM_LOST_CLIENT";
11687
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_INVITE"] = 3010] = "EMPLOYEE_INVITE";
11688
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_LOST_CLIENT"] = 3011] = "EMPLOYEE_LOST_CLIENT";
11689
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_NEW_CLIENT"] = 3012] = "EMPLOYEE_NEW_CLIENT";
11690
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_INVITE_ACCEPTED"] = 3013] = "EMPLOYEE_INVITE_ACCEPTED";
11691
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_EMAIL_CONFIRMED"] = 3020] = "EMPLOYEE_EMAIL_CONFIRMED";
11692
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["TAX_REVIEW_RECEIVED"] = 3030] = "TAX_REVIEW_RECEIVED";
11693
+ UserEventTypeTypeEnum[UserEventTypeTypeEnum["SHARESIGHT_IMPORT"] = 2070] = "SHARESIGHT_IMPORT";
11694
+ })(UserEventTypeTypeEnum || (UserEventTypeTypeEnum = {}));
11695
+
11640
11696
  /**
11641
11697
  * Service that handling user's bank accounts logic
11642
11698
  */
@@ -11662,10 +11718,12 @@ class BankAccountService extends RestService$1 {
11662
11718
  */
11663
11719
  listenEvents() {
11664
11720
  this.listenToEventDispatcherChanges();
11721
+ // @TODO why?
11665
11722
  this.listenCSE(BankTransaction, this.refreshCache, ['post', 'delete']);
11666
11723
  this.listenCSE(PropertyShare, this.refreshCache, ['put']);
11667
11724
  this.listenCSE(BankConnection, this.refreshCache, ['post']);
11668
- this.listenConnections();
11725
+ this.listenNotifications();
11726
+ // this.listenConnections();
11669
11727
  }
11670
11728
  /**
11671
11729
  * Update bank account current balance
@@ -11699,6 +11757,19 @@ class BankAccountService extends RestService$1 {
11699
11757
  this.refreshCache();
11700
11758
  });
11701
11759
  }
11760
+ listenNotifications() {
11761
+ this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
11762
+ const events = [
11763
+ UserEventTypeTypeEnum.BASIQ_NEW_ACCOUNTS,
11764
+ UserEventTypeTypeEnum.BASIQ_FIRST_IMPORT_COMPLETE,
11765
+ UserEventTypeTypeEnum.BASIQ_AUTHORIZATION_FAIL,
11766
+ ];
11767
+ if (!notification.isRead && events.includes(notification.eventType)) {
11768
+ // @TODO TT-3826 move to unified mercure event
11769
+ this.refreshCache();
11770
+ }
11771
+ });
11772
+ }
11702
11773
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BankAccountService, deps: [{ token: i1.HttpClient }, { token: EventDispatcherService }, { token: SseService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11703
11774
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BankAccountService, providedIn: 'root' }); }
11704
11775
  }
@@ -11750,12 +11821,10 @@ class BankConnectionService extends RestService$1 {
11750
11821
  this.collectionClass = Collection;
11751
11822
  this.endpointUri = 'bank-connections';
11752
11823
  this.disabledMethods = ['postBatch', 'putBatch', 'delete', 'deleteBatch'];
11753
- this.mercureTopic = 'bankConnections';
11754
11824
  this.listenEvents();
11755
11825
  }
11756
11826
  listenEvents() {
11757
- // @TODO remove when TT-3826 is ready
11758
- this.listenSSE();
11827
+ this.listenNotifications();
11759
11828
  }
11760
11829
  /**
11761
11830
  * there is no put BankConnection method, we have to post to update
@@ -11798,6 +11867,19 @@ class BankConnectionService extends RestService$1 {
11798
11867
  deactivate(bankConnection) {
11799
11868
  return this.put(bankConnection, `${this.apiUrl}/${bankConnection.id}/deactivate`);
11800
11869
  }
11870
+ listenNotifications() {
11871
+ this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
11872
+ const events = [
11873
+ UserEventTypeTypeEnum.BASIQ_NEW_ACCOUNTS,
11874
+ UserEventTypeTypeEnum.BASIQ_FIRST_IMPORT_COMPLETE,
11875
+ UserEventTypeTypeEnum.BASIQ_AUTHORIZATION_FAIL,
11876
+ ];
11877
+ if (!notification.isRead && events.includes(notification.eventType)) {
11878
+ // @TODO TT-3826 move to unified mercure event
11879
+ this.refreshCache();
11880
+ }
11881
+ });
11882
+ }
11801
11883
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BankConnectionService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11802
11884
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BankConnectionService, providedIn: 'root' }); }
11803
11885
  }
@@ -11811,58 +11893,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
11811
11893
  args: ['environment']
11812
11894
  }] }] });
11813
11895
 
11814
- var UserEventTypeTypeEnum;
11815
- (function (UserEventTypeTypeEnum) {
11816
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["REGISTERED"] = 1000] = "REGISTERED";
11817
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PASSWORD_RESET_REQUEST"] = 1001] = "PASSWORD_RESET_REQUEST";
11818
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["APP_FEATURES"] = 1010] = "APP_FEATURES";
11819
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIBED"] = 2000] = "SUBSCRIBED";
11820
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["UNSUBSCRIBED"] = 2001] = "UNSUBSCRIBED";
11821
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIPTION_UPDATE"] = 2004] = "SUBSCRIPTION_UPDATE";
11822
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIPTION_TRIAL_UPDATE"] = 2005] = "SUBSCRIPTION_TRIAL_UPDATE";
11823
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["SUBSCRIPTION_PAYMENT_FAILED"] = 2006] = "SUBSCRIPTION_PAYMENT_FAILED";
11824
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE"] = 2010] = "CLIENT_INVITE";
11825
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_TO_REGISTER"] = 2011] = "CLIENT_INVITE_TO_REGISTER";
11826
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_ACCEPTED"] = 2012] = "FIRM_INVITE_ACCEPTED";
11827
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_REJECTED"] = 2013] = "FIRM_INVITE_REJECTED";
11828
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_REGISTERED"] = 2014] = "FIRM_INVITE_REGISTERED";
11829
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE"] = 2020] = "PROPERTY_SHARE_INVITE";
11830
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_TO_REGISTER"] = 2021] = "PROPERTY_SHARE_INVITE_TO_REGISTER";
11831
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_ACCEPTED"] = 2022] = "PROPERTY_SHARE_INVITE_ACCEPTED";
11832
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_REJECTED"] = 2023] = "PROPERTY_SHARE_INVITE_REJECTED";
11833
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_INVITE_REGISTERED"] = 2024] = "PROPERTY_SHARE_INVITE_REGISTERED";
11834
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_CHANGE_REQUESTED"] = 2025] = "PROPERTY_SHARE_CHANGE_REQUESTED";
11835
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_CHANGE_ACCEPTED"] = 2026] = "PROPERTY_SHARE_CHANGE_ACCEPTED";
11836
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["PROPERTY_SHARE_CHANGE_REJECTED"] = 2027] = "PROPERTY_SHARE_CHANGE_REJECTED";
11837
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["OWNER_SUBSCRIBED"] = 2028] = "OWNER_SUBSCRIBED";
11838
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["OWNER_UNSUBSCRIBED"] = 2029] = "OWNER_UNSUBSCRIBED";
11839
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["BASIQ_NEW_ACCOUNTS"] = 2030] = "BASIQ_NEW_ACCOUNTS";
11840
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["BASIQ_FIRST_IMPORT_COMPLETE"] = 2031] = "BASIQ_FIRST_IMPORT_COMPLETE";
11841
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["BASIQ_AUTHORIZATION_FAIL"] = 2032] = "BASIQ_AUTHORIZATION_FAIL";
11842
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["TRANSACTION_ALLOCATE_REMINDER"] = 2033] = "TRANSACTION_ALLOCATE_REMINDER";
11843
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["INVOICE_AUTO_ALLOCATED"] = 2035] = "INVOICE_AUTO_ALLOCATED";
11844
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["INVOICE_AUTO_PART_ALLOCATED"] = 2036] = "INVOICE_AUTO_PART_ALLOCATED";
11845
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["RULES_AUTO_ALLOCATED"] = 2037] = "RULES_AUTO_ALLOCATED";
11846
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["REGISTRATION_INVITE"] = 2040] = "REGISTRATION_INVITE";
11847
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["REGISTRATION_INVITE_ACCEPTED"] = 2041] = "REGISTRATION_INVITE_ACCEPTED";
11848
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_EMAIL_CONFIRMED"] = 2050] = "CLIENT_EMAIL_CONFIRMED";
11849
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["TAX_REVIEW_REQUESTED"] = 2060] = "TAX_REVIEW_REQUESTED";
11850
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE_TO_REGISTER"] = 3000] = "FIRM_INVITE_TO_REGISTER";
11851
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_INVITE"] = 3001] = "FIRM_INVITE";
11852
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_ACCEPTED"] = 3002] = "CLIENT_INVITE_ACCEPTED";
11853
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_REJECTED"] = 3003] = "CLIENT_INVITE_REJECTED";
11854
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["CLIENT_INVITE_REGISTERED"] = 3004] = "CLIENT_INVITE_REGISTERED";
11855
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_NEW_CLIENT"] = 3005] = "FIRM_NEW_CLIENT";
11856
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["FIRM_LOST_CLIENT"] = 3006] = "FIRM_LOST_CLIENT";
11857
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_INVITE"] = 3010] = "EMPLOYEE_INVITE";
11858
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_LOST_CLIENT"] = 3011] = "EMPLOYEE_LOST_CLIENT";
11859
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_NEW_CLIENT"] = 3012] = "EMPLOYEE_NEW_CLIENT";
11860
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_INVITE_ACCEPTED"] = 3013] = "EMPLOYEE_INVITE_ACCEPTED";
11861
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["EMPLOYEE_EMAIL_CONFIRMED"] = 3020] = "EMPLOYEE_EMAIL_CONFIRMED";
11862
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["TAX_REVIEW_RECEIVED"] = 3030] = "TAX_REVIEW_RECEIVED";
11863
- UserEventTypeTypeEnum[UserEventTypeTypeEnum["SHARESIGHT_IMPORT"] = 2070] = "SHARESIGHT_IMPORT";
11864
- })(UserEventTypeTypeEnum || (UserEventTypeTypeEnum = {}));
11865
-
11866
11896
  /**
11867
11897
  * Service for bank transactions business logic
11868
11898
  */
@@ -12908,6 +12938,7 @@ class ClientMovementService extends RestService$1 {
12908
12938
  this.collectionClass = ClientMovementCollection;
12909
12939
  this.modelClass = ClientMovement;
12910
12940
  this.disabledMethods = ['postBatch', 'delete', 'deleteBatch'];
12941
+ this.mercureTopic = 'clientMovements';
12911
12942
  this.listenEvents();
12912
12943
  }
12913
12944
  listenEvents() {
@@ -12915,7 +12946,8 @@ class ClientMovementService extends RestService$1 {
12915
12946
  this.eventDispatcherService.on([AppEventTypeEnum.CLIENT_INVITE_ACCEPTED]).subscribe(() => {
12916
12947
  this.refreshCache();
12917
12948
  });
12918
- this.listenNotifications();
12949
+ // @TODO remove when TT-3826 is ready
12950
+ this.listenSSE();
12919
12951
  }
12920
12952
  getActive() {
12921
12953
  return this.get().pipe(map((clientMovements) => clientMovements.active));
@@ -12963,21 +12995,6 @@ class ClientMovementService extends RestService$1 {
12963
12995
  // this.updateCache([clientMovement], 'delete');
12964
12996
  }));
12965
12997
  }
12966
- listenNotifications() {
12967
- this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
12968
- const events = [
12969
- UserEventTypeTypeEnum.FIRM_INVITE_ACCEPTED,
12970
- UserEventTypeTypeEnum.FIRM_INVITE_REJECTED,
12971
- UserEventTypeTypeEnum.CLIENT_INVITE_ACCEPTED,
12972
- UserEventTypeTypeEnum.CLIENT_INVITE_REJECTED,
12973
- UserEventTypeTypeEnum.CLIENT_INVITE_REGISTERED,
12974
- ];
12975
- if (!notification.isRead && events.includes(notification.eventType)) {
12976
- // @TODO TT-3826 move to unified mercure event
12977
- this.refreshCache();
12978
- }
12979
- });
12980
- }
12981
12998
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClientMovementService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
12982
12999
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClientMovementService, providedIn: 'root' }); }
12983
13000
  }
@@ -16436,15 +16453,15 @@ class HoldingTypeService extends RestService$1 {
16436
16453
  this.endpointUri = 'holding-types';
16437
16454
  this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
16438
16455
  this.roles = [UserRolesEnum.HOLDING_TANK];
16439
- // this.listenEvents();
16456
+ this.listenEvents();
16457
+ }
16458
+ search(query, category = null) {
16459
+ query = query.toLowerCase().trim();
16460
+ return this.fetch(`${this.apiUrl}`, false, { params: { query, category } });
16461
+ }
16462
+ getCurrent() {
16463
+ return this.get(`${this.apiUrl}/current`);
16440
16464
  }
16441
- // search(searchQuery: string, category: HoldingTypeCategoryEnum = null): Observable<HoldingType[]> {
16442
- // searchQuery = searchQuery.toLowerCase().trim();
16443
- //
16444
- // return this.http.get(`${this.apiUrl}`, { params: { searchQuery, category } }).pipe(
16445
- // map((userBase: UserBase) => this.createModelInstance(userBase))
16446
- // );
16447
- // }
16448
16465
  listenEvents() {
16449
16466
  this.listenCSE(BankTransaction, (trade) => this.hasInCache(trade.holdingType.id) ? this.updateCache([trade.holdingType], 'post') : '', ['post']);
16450
16467
  }
@@ -19873,15 +19890,8 @@ class XlsxService {
19873
19890
  // add caption for the current table
19874
19891
  xlsx.utils.sheet_add_aoa(worksheet, [[data.caption?.innerText]], { origin: -1 });
19875
19892
  // Prepare to add table data to the worksheet, processing each cell
19876
- const rows = Array.from(data.rows).map((row) => Array.from(row.cells).map((cell) => {
19877
- const cellValue = cell.innerText;
19878
- // Convert currency strings like "$0.00" to numbers
19879
- if (/^-?\$/.test(cellValue)) {
19880
- // @TODO vik fix
19881
- // cellValue = parseFloat(cellValue.replace('$', ''));
19882
- }
19883
- return cellValue;
19884
- }));
19893
+ const rows = Array.from(data.rows)
19894
+ .map((row) => Array.from(row.cells).map(cell => this.htmlToXlsCell(cell)));
19885
19895
  // Add the processed table data to the worksheet
19886
19896
  xlsx.utils.sheet_add_aoa(worksheet, rows, { origin: -1 });
19887
19897
  // set empty row after current table
@@ -19890,6 +19900,21 @@ class XlsxService {
19890
19900
  xlsx.utils.book_append_sheet(workbook, worksheet);
19891
19901
  return xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
19892
19902
  }
19903
+ htmlToXlsCell(cell) {
19904
+ const cellValue = cell.innerText;
19905
+ // regex to check currency value
19906
+ return /^-?\$/.test(cellValue) ? this.currencyToNumber(cellValue) : cellValue;
19907
+ }
19908
+ /**
19909
+ * function which reconverts values from customCurrencyPipe
19910
+ * @param cellValue - string with $ and possibly comma. $123,123.03
19911
+ * @returns value without $ and comma. like 123123.03
19912
+ */
19913
+ currencyToNumber(cellValue) {
19914
+ // remove dollar sign and comma
19915
+ cellValue = cellValue.replace(/[$,]/g, '');
19916
+ return parseFloat(cellValue);
19917
+ }
19893
19918
  /**
19894
19919
  * @TODO vik/artem work with ExportDataTable instead of ExportableCollection
19895
19920
  * @TODO vik/artem why so much code? here is 6 rows solution https://stackoverflow.com/questions/64939994/how-to-export-array-of-objects-to-an-excel-in-angular-8