@theseam/ui-common 0.2.8 → 0.2.12

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 (65) hide show
  1. package/bundles/theseam-ui-common-data-exporter.umd.js.map +1 -1
  2. package/bundles/theseam-ui-common-datatable.umd.js +54 -4
  3. package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
  4. package/bundles/theseam-ui-common-framework.umd.js +2 -2
  5. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  6. package/bundles/theseam-ui-common-table-cell-types.umd.js +245 -19
  7. package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
  8. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  9. package/data-exporter/data-exporter.d.ts +4 -0
  10. package/data-exporter/theseam-ui-common-data-exporter.metadata.json +1 -1
  11. package/datatable/datatable/datatable.component.d.ts +2 -0
  12. package/datatable/datatable-footer/datatable-footer-tpl.directive.d.ts +5 -0
  13. package/datatable/datatable-footer/datatable-footer.directive.d.ts +6 -0
  14. package/datatable/public-api.d.ts +2 -0
  15. package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
  16. package/esm2015/data-exporter/data-exporter.js +1 -1
  17. package/esm2015/datatable/datatable/datatable.component.js +5 -3
  18. package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +8 -3
  19. package/esm2015/datatable/datatable-footer/datatable-footer-tpl.directive.js +15 -0
  20. package/esm2015/datatable/datatable-footer/datatable-footer.directive.js +18 -0
  21. package/esm2015/datatable/datatable.module.js +7 -1
  22. package/esm2015/datatable/public-api.js +3 -1
  23. package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +3 -3
  24. package/esm2015/table-cell-types/public-api.js +8 -1
  25. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.js +2 -0
  26. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.js +74 -0
  27. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.js +2 -0
  28. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +1 -1
  29. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.js +73 -0
  30. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.js +2 -0
  31. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +1 -1
  32. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.js +71 -0
  33. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.js +2 -0
  34. package/esm2015/table-cell-types/table-cell-type-manifests.js +29 -17
  35. package/esm2015/table-cell-types/table-cell-types.module.js +9 -2
  36. package/esm2015/utils/router/is-empty-url-route.js +1 -1
  37. package/fesm2015/theseam-ui-common-data-exporter.js.map +1 -1
  38. package/fesm2015/theseam-ui-common-datatable.js +45 -5
  39. package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
  40. package/fesm2015/theseam-ui-common-framework.js +2 -2
  41. package/fesm2015/theseam-ui-common-framework.js.map +1 -1
  42. package/fesm2015/theseam-ui-common-table-cell-types.js +232 -20
  43. package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
  44. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  45. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +36 -9
  46. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  47. package/package.json +1 -1
  48. package/styles/common/_table.scss +0 -5
  49. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +478 -87
  50. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +174 -0
  51. package/styles/vendor/ngx-datatable/_themes/dark/_variables.scss +166 -0
  52. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +165 -0
  53. package/styles/vendor/ngx-datatable/_variables.scss +3 -0
  54. package/table-cell-types/public-api.d.ts +7 -0
  55. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +39 -0
  56. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +19 -0
  57. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +3 -0
  58. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +31 -1
  59. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +19 -0
  60. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +3 -0
  61. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +23 -1
  62. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +19 -0
  63. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +3 -0
  64. package/table-cell-types/table-cell-type-manifests.d.ts +2 -1
  65. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-data-exporter.umd.js","sources":["../../../projects/ui-common/data-exporter/data-exporter.ts","../../../projects/ui-common/data-exporter/exporters/csv-exporter.ts","../../../projects/ui-common/data-exporter/exporters/xlsx-exporter.ts","../../../projects/ui-common/data-exporter/data-exporter.module.ts","../../../projects/ui-common/data-exporter/theseam-ui-common-data-exporter.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { switchMap } from 'rxjs/operators'\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core'\n\nexport type IDataExporterFunction = <T>(data: T[]) => Observable<T[]>\n\nexport interface IDataExporter {\n /**\n * Name to identify the exporter.\n */\n readonly name: string\n\n /**\n * Label to use for exporter in user visible text.\n *\n * default: `name`\n */\n label?: string\n\n /**\n * Icon to represent exporter.\n */\n icon?: string | IconProp\n\n /**\n * Export the data based on the data to some format.\n */\n export<T>(data: T[]): Observable<boolean>\n}\n\nexport const THESEAM_DATA_EXPORTER = new InjectionToken<IDataExporter>('TheSeamDataExporter')\n\nexport function exportOperator<T>(exportFn: IDataExporterFunction) {\n return (source$: Observable<T[]>) =>\n source$.pipe(switchMap(exportFn))\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable } from 'rxjs'\nimport { mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport { faFileCsv } from '@fortawesome/free-solid-svg-icons'\nimport FileSaver from 'file-saver'\n\nimport { fileDataFromBuffer, wrapIntoObservable } from '@theseam/ui-common/utils'\n\nimport { IDataExporter } from '../data-exporter'\n\n@Injectable()\nexport class CSVDataExporter implements IDataExporter {\n\n public readonly name = 'exporter:csv'\n\n public label = 'CSV'\n\n public icon = faFileCsv\n\n public export<T>(data: T[]): Observable<boolean> {\n // TODO: Fix typing for the dynamic imports\n return wrapIntoObservable(import('xlsx')).pipe(\n switchMap((XLSX: any) => {\n const ws = XLSX.utils.json_to_sheet(data)\n\n const out = XLSX.utils.sheet_to_csv(ws)\n\n // NOTE: `out` should not be passed as a string, but the fileDataFromBuffer\n // function happens to works with a string. When the build issue about the\n // function argument is figured out then this should be fixed.\n return from(fileDataFromBuffer(out as any))\n // return from(fileDataFromBuffer(Buffer.from(out)))\n .pipe(\n tap(fileData => {\n FileSaver.saveAs(fileData.blob, `Export.csv`)\n }),\n mapTo(true)\n )\n })\n )\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable } from 'rxjs'\nimport { mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport { faFileExcel } from '@fortawesome/free-solid-svg-icons'\nimport { Buffer } from 'buffer/'\nimport FileSaver from 'file-saver'\n\nimport { fileDataFromBuffer, wrapIntoObservable } from '@theseam/ui-common/utils'\n\nimport { IDataExporter } from '../data-exporter'\n\n@Injectable()\nexport class XLSXDataExporter implements IDataExporter {\n\n public readonly name = 'exporter:xlsx'\n\n public label = 'XLSX'\n\n public icon = faFileExcel\n\n public export<T>(data: T[]): Observable<boolean> {\n // TODO: Fix typing for the dynamic imports\n return wrapIntoObservable(import('xlsx')).pipe(\n switchMap((XLSX: any) => {\n const ws = XLSX.utils.json_to_sheet(data)\n const wb = { Sheets: { 'data': ws }, SheetNames: ['data'] }\n const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' })\n\n return from(fileDataFromBuffer(Buffer.from(excelBuffer)))\n .pipe(\n tap(fileData => {\n FileSaver.saveAs(fileData.blob, `Export.xlsx`)\n }),\n mapTo(true)\n )\n })\n )\n }\n\n}\n","import { NgModule } from '@angular/core'\n\nimport { CSVDataExporter } from './exporters/csv-exporter'\nimport { XLSXDataExporter } from './exporters/xlsx-exporter'\n\nimport { THESEAM_DATA_EXPORTER } from './data-exporter'\n\n@NgModule({\n declarations: [],\n imports: [],\n providers: [\n { provide: THESEAM_DATA_EXPORTER, useClass: CSVDataExporter, multi: true },\n { provide: THESEAM_DATA_EXPORTER, useClass: XLSXDataExporter, multi: true }\n ]\n})\nexport class TheSeamDataExporterModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","switchMap","faFileCsv","wrapIntoObservable","from","fileDataFromBuffer","tap","FileSaver","mapTo","Injectable","faFileExcel","Buffer","NgModule"],"mappings":";;;;;;;;;;QAgCa,qBAAqB,GAAG,IAAIA,mBAAc,CAAgB,qBAAqB,EAAC;aAE7E,cAAc,CAAI,QAA+B;QAC/D,OAAO,UAAC,OAAwB,IAC9B,OAAA,OAAO,CAAC,IAAI,CAACC,mBAAS,CAAC,QAAQ,CAAC,CAAC,GAAA,CAAA;IACrC;;;QC1BA;YAGkB,SAAI,GAAG,cAAc,CAAA;YAE9B,UAAK,GAAG,KAAK,CAAA;YAEb,SAAI,GAAGC,2BAAS,CAAA;SAyBxB;QAvBQ,gCAAM,GAAN,UAAU,IAAS;;YAExB,OAAOC,wBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAC5CF,mBAAS,CAAC,UAAC,IAAS;gBAClB,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBAEzC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;;;;gBAKvC,OAAOG,SAAI,CAACC,wBAAkB,CAAC,GAAU,CAAC,CAAC;;qBAExC,IAAI,CACHC,aAAG,CAAC,UAAA,QAAQ;oBACVC,6BAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;iBAC9C,CAAC,EACFC,eAAK,CAAC,IAAI,CAAC,CACZ,CAAA;aACJ,CAAC,CACH,CAAA;SACF;;;;gBA9BFC,eAAU;;;;QCCX;YAGkB,SAAI,GAAG,eAAe,CAAA;YAE/B,UAAK,GAAG,MAAM,CAAA;YAEd,SAAI,GAAGC,6BAAW,CAAA;SAqB1B;QAnBQ,iCAAM,GAAN,UAAU,IAAS;;YAExB,OAAOP,wBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAC5CF,mBAAS,CAAC,UAAC,IAAS;gBAClB,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBACzC,IAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAA;gBAC3D,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEvE,OAAOG,SAAI,CAACC,wBAAkB,CAACM,QAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;qBACtD,IAAI,CACHL,aAAG,CAAC,UAAA,QAAQ;oBACVC,6BAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;iBAC/C,CAAC,EACFC,eAAK,CAAC,IAAI,CAAC,CACZ,CAAA;aACJ,CAAC,CACH,CAAA;SACF;;;;gBA1BFC,eAAU;;;;QCGX;;;;;gBARCG,aAAQ,SAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC1E,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;qBAC5E;iBACF;;;ICdD;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"theseam-ui-common-data-exporter.umd.js","sources":["../../../projects/ui-common/data-exporter/data-exporter.ts","../../../projects/ui-common/data-exporter/exporters/csv-exporter.ts","../../../projects/ui-common/data-exporter/exporters/xlsx-exporter.ts","../../../projects/ui-common/data-exporter/data-exporter.module.ts","../../../projects/ui-common/data-exporter/theseam-ui-common-data-exporter.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { switchMap } from 'rxjs/operators'\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core'\n\nexport type IDataExporterFunction = <T>(data: T[]) => Observable<T[]>\n\nexport interface IDataExporter {\n /**\n * Name to identify the exporter.\n */\n readonly name: string\n\n /**\n * Label to use for exporter in user visible text.\n *\n * default: `name`\n */\n label?: string\n\n /**\n * Icon to represent exporter.\n */\n icon?: string | IconProp\n\n /**\n * Pass the rows directly to the export function without any mapping.\n */\n skipDataMapping?: boolean\n\n /**\n * Export the data based on the data to some format.\n */\n export<T>(data: T[]): Observable<boolean>\n}\n\nexport const THESEAM_DATA_EXPORTER = new InjectionToken<IDataExporter>('TheSeamDataExporter')\n\nexport function exportOperator<T>(exportFn: IDataExporterFunction) {\n return (source$: Observable<T[]>) =>\n source$.pipe(switchMap(exportFn))\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable } from 'rxjs'\nimport { mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport { faFileCsv } from '@fortawesome/free-solid-svg-icons'\nimport FileSaver from 'file-saver'\n\nimport { fileDataFromBuffer, wrapIntoObservable } from '@theseam/ui-common/utils'\n\nimport { IDataExporter } from '../data-exporter'\n\n@Injectable()\nexport class CSVDataExporter implements IDataExporter {\n\n public readonly name = 'exporter:csv'\n\n public label = 'CSV'\n\n public icon = faFileCsv\n\n public export<T>(data: T[]): Observable<boolean> {\n // TODO: Fix typing for the dynamic imports\n return wrapIntoObservable(import('xlsx')).pipe(\n switchMap((XLSX: any) => {\n const ws = XLSX.utils.json_to_sheet(data)\n\n const out = XLSX.utils.sheet_to_csv(ws)\n\n // NOTE: `out` should not be passed as a string, but the fileDataFromBuffer\n // function happens to works with a string. When the build issue about the\n // function argument is figured out then this should be fixed.\n return from(fileDataFromBuffer(out as any))\n // return from(fileDataFromBuffer(Buffer.from(out)))\n .pipe(\n tap(fileData => {\n FileSaver.saveAs(fileData.blob, `Export.csv`)\n }),\n mapTo(true)\n )\n })\n )\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable } from 'rxjs'\nimport { mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport { faFileExcel } from '@fortawesome/free-solid-svg-icons'\nimport { Buffer } from 'buffer/'\nimport FileSaver from 'file-saver'\n\nimport { fileDataFromBuffer, wrapIntoObservable } from '@theseam/ui-common/utils'\n\nimport { IDataExporter } from '../data-exporter'\n\n@Injectable()\nexport class XLSXDataExporter implements IDataExporter {\n\n public readonly name = 'exporter:xlsx'\n\n public label = 'XLSX'\n\n public icon = faFileExcel\n\n public export<T>(data: T[]): Observable<boolean> {\n // TODO: Fix typing for the dynamic imports\n return wrapIntoObservable(import('xlsx')).pipe(\n switchMap((XLSX: any) => {\n const ws = XLSX.utils.json_to_sheet(data)\n const wb = { Sheets: { 'data': ws }, SheetNames: ['data'] }\n const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' })\n\n return from(fileDataFromBuffer(Buffer.from(excelBuffer)))\n .pipe(\n tap(fileData => {\n FileSaver.saveAs(fileData.blob, `Export.xlsx`)\n }),\n mapTo(true)\n )\n })\n )\n }\n\n}\n","import { NgModule } from '@angular/core'\n\nimport { CSVDataExporter } from './exporters/csv-exporter'\nimport { XLSXDataExporter } from './exporters/xlsx-exporter'\n\nimport { THESEAM_DATA_EXPORTER } from './data-exporter'\n\n@NgModule({\n declarations: [],\n imports: [],\n providers: [\n { provide: THESEAM_DATA_EXPORTER, useClass: CSVDataExporter, multi: true },\n { provide: THESEAM_DATA_EXPORTER, useClass: XLSXDataExporter, multi: true }\n ]\n})\nexport class TheSeamDataExporterModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","switchMap","faFileCsv","wrapIntoObservable","from","fileDataFromBuffer","tap","FileSaver","mapTo","Injectable","faFileExcel","Buffer","NgModule"],"mappings":";;;;;;;;;;QAqCa,qBAAqB,GAAG,IAAIA,mBAAc,CAAgB,qBAAqB,EAAC;aAE7E,cAAc,CAAI,QAA+B;QAC/D,OAAO,UAAC,OAAwB,IAC9B,OAAA,OAAO,CAAC,IAAI,CAACC,mBAAS,CAAC,QAAQ,CAAC,CAAC,GAAA,CAAA;IACrC;;;QC/BA;YAGkB,SAAI,GAAG,cAAc,CAAA;YAE9B,UAAK,GAAG,KAAK,CAAA;YAEb,SAAI,GAAGC,2BAAS,CAAA;SAyBxB;QAvBQ,gCAAM,GAAN,UAAU,IAAS;;YAExB,OAAOC,wBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAC5CF,mBAAS,CAAC,UAAC,IAAS;gBAClB,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBAEzC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;;;;gBAKvC,OAAOG,SAAI,CAACC,wBAAkB,CAAC,GAAU,CAAC,CAAC;;qBAExC,IAAI,CACHC,aAAG,CAAC,UAAA,QAAQ;oBACVC,6BAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;iBAC9C,CAAC,EACFC,eAAK,CAAC,IAAI,CAAC,CACZ,CAAA;aACJ,CAAC,CACH,CAAA;SACF;;;;gBA9BFC,eAAU;;;;QCCX;YAGkB,SAAI,GAAG,eAAe,CAAA;YAE/B,UAAK,GAAG,MAAM,CAAA;YAEd,SAAI,GAAGC,6BAAW,CAAA;SAqB1B;QAnBQ,iCAAM,GAAN,UAAU,IAAS;;YAExB,OAAOP,wBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAC5CF,mBAAS,CAAC,UAAC,IAAS;gBAClB,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBACzC,IAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAA;gBAC3D,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEvE,OAAOG,SAAI,CAACC,wBAAkB,CAACM,QAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;qBACtD,IAAI,CACHL,aAAG,CAAC,UAAA,QAAQ;oBACVC,6BAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;iBAC/C,CAAC,EACFC,eAAK,CAAC,IAAI,CAAC,CACZ,CAAA;aACJ,CAAC,CACH,CAAA;SACF;;;;gBA1BFC,eAAU;;;;QCGX;;;;;gBARCG,aAAQ,SAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC1E,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;qBAC5E;iBACF;;;ICdD;;;;;;;;;;;;;;;;"}
@@ -634,6 +634,44 @@
634
634
  _cellTemplateQuery: [{ type: i0.ContentChild, args: [DatatableCellTplDirective, { read: i0.TemplateRef, static: true },] }]
635
635
  };
636
636
 
637
+ var DatatableFooterTplDirective = /** @class */ (function () {
638
+ function DatatableFooterTplDirective(template) {
639
+ this.template = template;
640
+ }
641
+ return DatatableFooterTplDirective;
642
+ }());
643
+ DatatableFooterTplDirective.decorators = [
644
+ { type: i0.Directive, args: [{
645
+ selector: '[seamDatatableFooterTpl]'
646
+ },] }
647
+ ];
648
+ DatatableFooterTplDirective.ctorParameters = function () { return [
649
+ { type: i0.TemplateRef }
650
+ ]; };
651
+
652
+ var TheSeamDatatableFooterDirective = /** @class */ (function () {
653
+ function TheSeamDatatableFooterDirective() {
654
+ }
655
+ Object.defineProperty(TheSeamDatatableFooterDirective.prototype, "template", {
656
+ get: function () {
657
+ return this._templateInput || this._templateQuery;
658
+ },
659
+ enumerable: false,
660
+ configurable: true
661
+ });
662
+ return TheSeamDatatableFooterDirective;
663
+ }());
664
+ TheSeamDatatableFooterDirective.decorators = [
665
+ { type: i0.Directive, args: [{
666
+ // tslint:disable-next-line: directive-selector
667
+ selector: 'seam-datatable-footer'
668
+ },] }
669
+ ];
670
+ TheSeamDatatableFooterDirective.propDecorators = {
671
+ _templateInput: [{ type: i0.Input, args: ['template',] }],
672
+ _templateQuery: [{ type: i0.ContentChild, args: [DatatableFooterTplDirective, { read: i0.TemplateRef, static: true },] }]
673
+ };
674
+
637
675
  var DatatableFilterDirective = /** @class */ (function () {
638
676
  function DatatableFilterDirective(dataFilters) {
639
677
  if (dataFilters && dataFilters.length > 0) {
@@ -1455,7 +1493,7 @@
1455
1493
  DatatableComponent.decorators = [
1456
1494
  { type: i0.Component, args: [{
1457
1495
  selector: 'seam-datatable',
1458
- template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n class=\"bootstrap\"\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"sort.emit($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"reorder.emit($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\"></div>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n",
1496
+ template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"sort.emit($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"reorder.emit($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\"></div>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n",
1459
1497
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1460
1498
  animations: [
1461
1499
  animations.trigger('slideDown', [
@@ -1470,7 +1508,7 @@
1470
1508
  ])
1471
1509
  ],
1472
1510
  providers: [_THESEAM_DATATABLE, DatatableColumnChangesService, _THESEAM_DATATABLE_ACCESSOR],
1473
- styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute;top:0;left:0;right:0;bottom:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute;top:12px;bottom:12px;right:0;width:2px;background-color:#e1e3e6}.datatable-sort-target{cursor:pointer}"]
1511
+ styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;top:0;left:0;right:0;bottom:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}"]
1474
1512
  },] }
1475
1513
  ];
1476
1514
  DatatableComponent.ctorParameters = function () { return [
@@ -1535,6 +1573,7 @@
1535
1573
  actionMenu: [{ type: i0.ContentChild, args: [DatatableActionMenuComponent, { static: true },] }],
1536
1574
  rowActionItem: [{ type: i0.ContentChild, args: [DatatableRowActionItemDirective, { static: true },] }],
1537
1575
  rowDetail: [{ type: i0.ContentChild, args: [TheSeamDatatableRowDetailDirective, { static: true },] }],
1576
+ footer: [{ type: i0.ContentChild, args: [TheSeamDatatableFooterDirective, { static: true },] }],
1538
1577
  menuBarComponent: [{ type: i0.ContentChild, args: [DatatableMenuBarComponent,] }],
1539
1578
  ngxDatatable: [{ type: i0.ViewChild, args: [ngxDatatable.DatatableComponent,] }],
1540
1579
  ngxDatatableElement: [{ type: i0.ViewChild, args: [ngxDatatable.DatatableComponent, { read: i0.ElementRef },] }],
@@ -1691,7 +1730,12 @@
1691
1730
  this._toastr.error(msg, 'Data Export');
1692
1731
  }
1693
1732
  var export$ = this._datatable.rows$
1694
- .pipe(operators.take(1), operators.map(function (rows) { return _this._mapExportData(_this._datatable.columns || [], rows); }), operators.concatMap(function (data) { return exporter.export(data); }), operators.catchError(function (err) {
1733
+ .pipe(operators.take(1), operators.map(function (rows) {
1734
+ if (exporter.skipDataMapping) {
1735
+ return rows;
1736
+ }
1737
+ return _this._mapExportData(_this._datatable.columns || [], rows);
1738
+ }), operators.concatMap(function (data) { return exporter.export(data); }), operators.catchError(function (err) {
1695
1739
  console.error(err);
1696
1740
  return rxjs.of(false);
1697
1741
  }), operators.tap(function (success) {
@@ -1699,7 +1743,7 @@
1699
1743
  _this._toastr.success(exporter.label + " export complete.", 'Data Export');
1700
1744
  }
1701
1745
  else {
1702
- _this._toastr.success(exporter.label + " export failed.", 'Data Export');
1746
+ _this._toastr.error(exporter.label + " export failed.", 'Data Export');
1703
1747
  }
1704
1748
  }));
1705
1749
  this._loading.while(export$).subscribe();
@@ -2134,6 +2178,8 @@
2134
2178
  DatatableExportButtonComponent,
2135
2179
  TheSeamDatatableRowDetailDirective,
2136
2180
  DatatableRowDetailTplDirective,
2181
+ TheSeamDatatableFooterDirective,
2182
+ DatatableFooterTplDirective,
2137
2183
  DatatableColumnPreferencesComponent,
2138
2184
  DatatableColumnPreferencesButtonComponent,
2139
2185
  DatatableActionMenuItemDirective,
@@ -2176,6 +2222,8 @@
2176
2222
  DatatableExportButtonComponent,
2177
2223
  TheSeamDatatableRowDetailDirective,
2178
2224
  DatatableRowDetailTplDirective,
2225
+ TheSeamDatatableFooterDirective,
2226
+ DatatableFooterTplDirective,
2179
2227
  DatatableColumnPreferencesComponent,
2180
2228
  DatatableColumnPreferencesButtonComponent,
2181
2229
  DatatableActionMenuItemDirective,
@@ -2213,6 +2261,7 @@
2213
2261
  exports.DatatableDataSource = DatatableDataSource;
2214
2262
  exports.DatatableExportButtonComponent = DatatableExportButtonComponent;
2215
2263
  exports.DatatableFilterDirective = DatatableFilterDirective;
2264
+ exports.DatatableFooterTplDirective = DatatableFooterTplDirective;
2216
2265
  exports.DatatableGqlDataSource = DatatableGqlDataSource;
2217
2266
  exports.DatatableMenuBarColumnCenterComponent = DatatableMenuBarColumnCenterComponent;
2218
2267
  exports.DatatableMenuBarColumnLeftComponent = DatatableMenuBarColumnLeftComponent;
@@ -2226,6 +2275,7 @@
2226
2275
  exports.THESEAM_DATATABLE = THESEAM_DATATABLE;
2227
2276
  exports.THESEAM_DATATABLE_PREFERENCES_ACCESSOR = THESEAM_DATATABLE_PREFERENCES_ACCESSOR;
2228
2277
  exports.THESEAM_MENUBAR_ITEM_DATA = THESEAM_MENUBAR_ITEM_DATA;
2278
+ exports.TheSeamDatatableFooterDirective = TheSeamDatatableFooterDirective;
2229
2279
  exports.TheSeamDatatableModule = TheSeamDatatableModule;
2230
2280
  exports.TheSeamDatatableRowDetailDirective = TheSeamDatatableRowDetailDirective;
2231
2281
  exports.TheSeamDatatableScrollbarHelperService = TheSeamDatatableScrollbarHelperService;