@seniorsistemas/angular-components 17.27.1-feature-sds-110-174b0744 → 17.27.1-feature-sds-110-660dd566

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 (89) hide show
  1. package/button/lib/button/button.component.d.ts +3 -3
  2. package/button/lib/button/button.module.d.ts +1 -6
  3. package/confirm-dialog/README.md +226 -0
  4. package/confirm-dialog/index.d.ts +5 -0
  5. package/confirm-dialog/lib/confirm-dialog.model.d.ts +8 -0
  6. package/confirm-dialog/lib/confirm-dialog.service.d.ts +8 -0
  7. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +7 -0
  8. package/confirm-dialog/package.json +3 -0
  9. package/confirm-dialog/public-api.d.ts +2 -0
  10. package/dialog/index.d.ts +5 -0
  11. package/dialog/lib/src/dialog/dialog.component.d.ts +29 -0
  12. package/dialog/lib/src/dialog/models/active-dialog.d.ts +11 -0
  13. package/dialog/lib/src/dialog/models/dialog-models.d.ts +18 -0
  14. package/dialog/lib/src/dialog/services/dialog.service.d.ts +24 -0
  15. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +10 -0
  16. package/dialog/package.json +3 -0
  17. package/dialog/public-api.d.ts +4 -0
  18. package/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.d.ts +2 -2
  19. package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +2 -2
  20. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +1 -1
  21. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  22. package/fesm2022/seniorsistemas-angular-components-button.mjs +16 -25
  23. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  24. package/fesm2022/seniorsistemas-angular-components-chips.mjs +1 -1
  25. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  26. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +54 -0
  27. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -0
  28. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +221 -0
  29. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -0
  30. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +83 -78
  31. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  32. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +11 -7
  33. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  34. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +1 -1
  35. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  36. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +15 -10
  37. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  38. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +1 -1
  39. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  40. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +1 -1
  41. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  42. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +1 -0
  43. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  44. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +1 -1
  45. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  46. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +3 -3
  47. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  48. package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
  49. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  50. package/fesm2022/seniorsistemas-angular-components-shared.mjs +1 -1
  51. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  52. package/fesm2022/seniorsistemas-angular-components-slider.mjs +1 -1
  53. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +1 -1
  55. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-steps.mjs +1 -1
  57. package/fesm2022/seniorsistemas-angular-components-steps.mjs.map +1 -1
  58. package/fesm2022/seniorsistemas-angular-components-structure.mjs +5 -15
  59. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
  61. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +91 -0
  63. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -0
  64. package/fesm2022/seniorsistemas-angular-components-template.mjs +8 -11
  65. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  66. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs +22 -15
  67. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs.map +1 -1
  68. package/fesm2022/seniorsistemas-angular-components-tile.mjs +1 -1
  69. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  70. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +2 -2
  71. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  72. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +16 -6
  73. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  74. package/fieldset/lib/fieldset/fieldset.component.d.ts +7 -5
  75. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +2 -0
  76. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +6 -5
  77. package/package.json +23 -2
  78. package/structure/lib/structure/header.component.d.ts +0 -2
  79. package/tabs/index.d.ts +5 -0
  80. package/tabs/lib/tab-item/tab-item.component.d.ts +18 -0
  81. package/tabs/lib/tabs/tabs.component.d.ts +16 -0
  82. package/tabs/package.json +3 -0
  83. package/tabs/public-api.d.ts +2 -0
  84. package/tailwind.css +135 -2
  85. package/template/lib/template/template.directive.d.ts +2 -3
  86. package/template/lib/template/template.module.d.ts +3 -3
  87. package/text-area-ia/lib/text-area-ia/text-area-ia.module.d.ts +7 -6
  88. package/tooltip/lib/tooltip/tooltip.directive.d.ts +4 -2
  89. package/tooltip/lib/tooltip/tooltip.module.d.ts +3 -3
@@ -1,28 +1,18 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewChild, NgModule } from '@angular/core';
3
+ import { Component, NgModule } from '@angular/core';
4
4
 
5
5
  class HeaderComponent {
6
- template;
7
6
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "s-header", viewQueries: [{ propertyName: "template", first: true, predicate: ["headerTemplate"], descendants: true, static: true }], ngImport: i0, template: `
9
- <ng-template #headerTemplate>
10
- <ng-content></ng-content>
11
- </ng-template>`, isInline: true });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "s-header", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
12
8
  }
13
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, decorators: [{
14
10
  type: Component,
15
11
  args: [{
16
12
  selector: "s-header",
17
- template: `
18
- <ng-template #headerTemplate>
19
- <ng-content></ng-content>
20
- </ng-template>`,
13
+ template: `<ng-content></ng-content>`,
21
14
  }]
22
- }], propDecorators: { template: [{
23
- type: ViewChild,
24
- args: ['headerTemplate', { static: true }]
25
- }] } });
15
+ }] });
26
16
 
27
17
  class FooterComponent {
28
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -44,8 +34,8 @@ class StructureModule {
44
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StructureModule, decorators: [{
45
35
  type: NgModule,
46
36
  args: [{
47
- imports: [CommonModule],
48
37
  declarations: [HeaderComponent, FooterComponent],
38
+ imports: [CommonModule],
49
39
  exports: [HeaderComponent, FooterComponent],
50
40
  }]
51
41
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-structure.mjs","sources":["../../projects/angular-components/structure/src/lib/structure/header.component.ts","../../projects/angular-components/structure/src/lib/structure/footer.component.ts","../../projects/angular-components/structure/src/lib/structure/structure.module.ts","../../projects/angular-components/structure/src/seniorsistemas-angular-components-structure.ts"],"sourcesContent":["import { Component, TemplateRef, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `\n <ng-template #headerTemplate>\n <ng-content></ng-content>\n </ng-template>`,\n})\nexport class HeaderComponent {\n @ViewChild('headerTemplate', { static: true })\n public readonly template: TemplateRef<any> | undefined;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n template: '<ng-content></ng-content>',\n})\nexport class FooterComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header.component';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MASa,eAAe,CAAA;AAER,IAAA,QAAQ,CAA+B;wGAF9C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EALd,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGS,sBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAEV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAAA;;;AAGS,sBAAA,CAAA;AACtB,iBAAA,CAAA;8BAGmB,QAAQ,EAAA,CAAA;sBADvB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCJpC,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCMY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CAHT,eAAe,EAAE,eAAe,aADrC,YAAY,CAAA,EAAA,OAAA,EAAA,CAEZ,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJd,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAIb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC9C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-structure.mjs","sources":["../../projects/angular-components/structure/src/lib/structure/header.component.ts","../../projects/angular-components/structure/src/lib/structure/footer.component.ts","../../projects/angular-components/structure/src/lib/structure/structure.module.ts","../../projects/angular-components/structure/src/seniorsistemas-angular-components-structure.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n template: '<ng-content></ng-content>',\n})\nexport class FooterComponent { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header.component';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n declarations: [HeaderComponent, FooterComponent],\n imports: [CommonModule],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACxC,iBAAA,CAAA;;;MCCY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCMY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CAJT,eAAe,EAAE,eAAe,aACrC,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;oBAChD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC9C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
@@ -488,7 +488,7 @@ class TableColumnsComponent {
488
488
  return columns.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));
489
489
  }
490
490
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableColumnsComponent, deps: [{ token: i1$1.LocaleService }, { token: i0.ViewContainerRef }, { token: i2.TranslateService }, { token: i3.NumericService }, { token: HostProjectConfigsInjectionToken }], target: i0.ɵɵFactoryTarget.Component });
491
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TableColumnsComponent, selector: "s-table-columns", inputs: { columns: "columns", rowValue: "rowValue", locale: "locale" }, viewQueries: [{ propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n", styles: [":host{display:none}.compact-column{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.column-cell-red{color:#c13018}.column-cell-orange{color:#f8931f}.column-cell-yellow{color:#fcbf10}.column-cell-green{color:#0c9348}.column-cell-blue{color:#428bca}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef"] }, { kind: "component", type: i6.TokenListComponent, selector: "s-token-list", inputs: ["id", "tokens", "removableTokens", "hidePointerEvents"], outputs: ["tokenSelected", "tokenRemoved"] }, { kind: "directive", type: i7.InfoSignDirective, selector: "[sInfoSign]", inputs: ["sInfoSign", "sInfoSignDisplayTime", "sInfoSignFocusedInputRef", "sInfoSignUseFocusedInputRef"] }, { kind: "component", type: i8.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign"], outputs: ["selected"] }] });
491
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TableColumnsComponent, selector: "s-table-columns", inputs: { columns: "columns", rowValue: "rowValue", locale: "locale" }, viewQueries: [{ propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n", styles: [":host{display:none}.compact-column{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.column-cell-red{color:#c13018}.column-cell-orange{color:#f8931f}.column-cell-yellow{color:#fcbf10}.column-cell-green{color:#0c9348}.column-cell-blue{color:#428bca}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: i6.TokenListComponent, selector: "s-token-list", inputs: ["id", "tokens", "removableTokens", "hidePointerEvents"], outputs: ["tokenSelected", "tokenRemoved"] }, { kind: "directive", type: i7.InfoSignDirective, selector: "[sInfoSign]", inputs: ["sInfoSign", "sInfoSignDisplayTime", "sInfoSignFocusedInputRef", "sInfoSignUseFocusedInputRef"] }, { kind: "component", type: i8.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign"], outputs: ["selected"] }] });
492
492
  }
493
493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableColumnsComponent, decorators: [{
494
494
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-table.mjs","sources":["../../projects/angular-components/table/src/lib/table/navigation/navigation.directive.ts","../../projects/angular-components/table/src/lib/table/row-toggler/row-toggler.directive.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-column-field-type.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-badge-colors.ts","../../projects/angular-components/table/src/lib/locale-utils.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.html","../../projects/angular-components/table/src/lib/table/export-utils.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.html","../../projects/angular-components/table/src/lib/table/table.module.ts","../../projects/angular-components/table/src/seniorsistemas-angular-components-table.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({ selector: '[sNavigation]' })\nexport class NavigationDirective {\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Right': // IE 11\n case 'ArrowRight':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Left': // IE 11\n case 'ArrowLeft':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Up': // IE 11\n case 'ArrowUp':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Down': // IE 11\n case 'ArrowDown':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private _focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private _focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private _focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this._setNextRowFocus(currentRow);\n }\n }\n\n private _focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private _setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const prevRow = this._findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const nextRow = this._findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this._findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private _setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private _isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'tr';\n }\n\n private _isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'td';\n }\n\n private _findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n return prevRow ?? null;\n }\n\n private _findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n return nextRow ?? null;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { RowToggler, Table } from 'primeng/table';\n\n@Directive({ selector: '[sRowToggler]' })\nexport class RowTogllerDirective extends RowToggler {\n @Input({ alias: 'sRowToggler', required: true })\n public override data: any = null;\n\n constructor(public override readonly dt: Table) {\n super(dt);\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case 'Enter':\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","export enum EnumColumnFieldType {\n STRING = 'STRING',\n NUMBER = 'NUMBER',\n BOOLEAN = 'BOOLEAN',\n DATE = 'DATE',\n CURRENCY = 'CURRENCY',\n ENUM = 'ENUM',\n LOOKUP = 'LOOKUP',\n LINK = 'LINK',\n TOKENS = 'TOKENS'\n}\n","export enum EnumBadgeColors {\n RED = 'red',\n ORANGE = 'orange',\n YELLOW = 'yellow',\n GREEN = 'green',\n BLUE = 'blue',\n GRAY = 'gray',\n}\n","export const convertToMomentDateFormat = (format: string): string => {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n}","import {\n Component,\n Inject,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumericService } from '@seniorsistemas/angular-components/numeric';\nimport { IToken } from '@seniorsistemas/angular-components/token-list';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { MaskConfig, applyMask } from '@seniorsistemas/ng2-currency-mask';\nimport BigNumber from 'bignumber.js';\nimport moment from 'moment';\nimport { convertToMomentDateFormat } from '../../locale-utils';\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from './models';\n\n@Component({\n templateUrl: './table-columns.component.html',\n styleUrls: ['./table-columns.component.scss'],\n selector: 's-table-columns',\n})\nexport class TableColumnsComponent implements OnChanges {\n @ViewChild('columnsTemplate', { static: true })\n public columnsTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public columns: Column[] = [];\n\n @Input()\n public rowValue!: any;\n\n @Input()\n public locale: TableColumnLocaleOptions | null = null;\n\n cellsData: (CellData | null)[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n private readonly numericService: NumericService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n ) {\n this.locale = {\n calendar: {\n ...this.localeService.getLocaleOptions()?.calendar,\n dateFormat: convertToMomentDateFormat(this.localeService.getLocaleOptions()?.calendar.dateFormat ?? ''),\n },\n number: {\n ...this.localeService.getLocaleOptions()?.number,\n scale: 0,\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n\n if (changes['columns'] && changes['columns'].currentValue !== changes['columns'].previousValue) {\n this.columns = this.sortColumnsBySequence(changes['columns'].currentValue);\n }\n this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getTokensByColumn(column: ColumnValues) {\n return column.columnValue as IToken[];\n }\n\n private getCellData(column: ColumnValues): CellData | null {\n const { columnValue, separator, uninformed } = column;\n\n if (typeof columnValue === 'string') {\n const splittedString = columnValue.split(separator);\n\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : null,\n };\n });\n }\n\n return null;\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!this.columns && !changes['columns']?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!this.rowValue && !changes['rowValue']?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes['columns']?.currentValue || this.columns;\n const rowValue: object = changes['rowValue']?.currentValue || this.rowValue;\n const locale: TableColumnLocaleOptions = changes['locale']?.currentValue || this.locale;\n\n this.formattedColumns = columns.map((column) => this.getColumnValue(column, rowValue, locale));\n\n this.cellsData = this.formattedColumns.map((column) => this.getCellData(column));\n\n if (!isNullOrUndefined(this.columnsTemplate)) {\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : ' - ';\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return (\n attributeValue === null ||\n attributeValue === undefined ||\n (attributeValue?.options?.numberFormatOptions && isNullOrUndefined(attributeValue?.value)) ||\n (this.isArray(attributeValue) && !attributeValue.length) ||\n (typeof attributeValue === 'string' && attributeValue.trim() === '')\n );\n }\n\n private getFormattedColumnValue(\n column: Column,\n columnValue: any[],\n unifiedColumnValues: string,\n uninformedText: string,\n uninformedNumber: number,\n ) {\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply(\n [],\n columnValue.filter((values) => values !== uninformedText),\n );\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: any) {\n let attributeValue!: any;\n\n attribute.split(\"/\").forEach((value: string) => {\n if (!attributeValue) {\n value.split(\".\").forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column): MaskConfig {\n return {\n ...this.locale?.number,\n scale:\n column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : this.locale?.number.scale,\n prefix: `${this.locale?.number.currencySymbol} `,\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: any, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + \"empty_label\");\n const style = column.style;\n\n const columnValue = column.attributes.map((attribute: string | number | symbol) => {\n const attributeValue = this.getAttributeValue(attribute as string, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY: {\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? \"yes\" : \"no\";\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER: {\n numberConfigs.prefix = \"\";\n\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues.split(separator).filter((value) => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(column, columnValue, unifiedColumnValues, uninformed, uninformedNumber);\n\n return {\n style,\n columnValue: formattedColumnValue,\n separator,\n uninformed,\n badgeConfigs: column?.badgeConfigs?.find(\n (badgeConfig) => badgeConfig.enumValue === rowValue[column.attributes[0] ?? column.field]\n ),\n color: column.color?.(rowValue),\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick,\n compact: column.compact,\n };\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === 'function') {\n return scale(this.rowValue);\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign?: string | ((rowValue: any) => string | null)): string | null {\n if (!isNullOrUndefined(infoSign)) {\n if (typeof infoSign === 'function') {\n return infoSign(this.rowValue);\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip?: string | ((rowValue: any) => string)): string {\n if (!isNullOrUndefined(tooltip)) {\n if (typeof tooltip === 'function') {\n return tooltip(this.rowValue);\n }\n return tooltip;\n }\n return '';\n }\n\n private isNumber(value: any): boolean {\n return !new BigNumber(value).isNaN();\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error('To use tokens an array must be informed');\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\n 'Not a valid token array. Must be a primitive values array or an objects with label attribute array',\n );\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === 'symbol' ? value.toString() : `${value}`;\n return {\n label,\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter((value) => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter((value) => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n private sortColumnsBySequence(columns: Column[]): Column[] {\n return columns.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string | null }[];\n","<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n","import { ElementRef } from '@angular/core';\nimport { Column } from '../table/table-column/models/column.interface';\nimport { EnumColumnFieldType } from '../table/table-column/models/enum-column-field-type';\n\ndeclare global {\n interface Navigator {\n msSaveOrOpenBlob(blob: Blob, name: string): void;\n }\n}\n\nexport abstract class ExportUtils {\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, '');\n }\n }\n\n public static exportCSV(\n columns: Partial<Column>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download',\n ) {\n let csv = '\\ufeff';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += '\\n';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) =>\n this._resolveFieldData(record, col, column),\n );\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this._resolveFieldData(record, column.field, column);\n }\n\n if (cellData !== null) cellData = String(cellData).replace(/\"/g, '\"\"');\n else cellData = '';\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;',\n });\n\n if (typeof window.navigator.msSaveOrOpenBlob === 'function') {\n navigator.msSaveOrOpenBlob(blob, documentName + '.csv');\n } else {\n const link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', documentName + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static _resolveFieldData(data: any, field: any, column: Column): string | null {\n if (!data && !field) {\n return null;\n }\n const needSplitValues = field.includes('.');\n if (this._isFunction(field)) {\n return field(data);\n } else if (!needSplitValues) {\n return data[field];\n } else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value === null || value === undefined) {\n return null;\n }\n value = value[fields[i]];\n }\n return ExportUtils._extractData(value, column);\n }\n }\n\n private static _isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n private static _extractData(data: any, column: Column) {\n const _data = Array.isArray(data) ? data : [data];\n switch (column.type) {\n case EnumColumnFieldType.TOKENS:\n return _data.map((d: any) => ExportUtils._parseToken(d));\n default:\n return data;\n }\n }\n\n private static _parseToken(data: any) {\n if (isObject(data)) {\n return data['label'];\n } else {\n return data;\n }\n }\n}\n\nconst isObject = (obj: any) => obj !== null && typeof obj === 'object';\n","import { Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Table } from 'primeng/table';\nimport { CustomAction } from './models';\nimport { Column } from '../table-column/models';\nimport { ExportUtils } from '../export-utils';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\n\ntype RowValueFormatOption = {\n\tvalue?: number;\n\toptions?: {\n\t\tnumberFormatOptions?: Intl.NumberFormatOptions;\n\t};\n}\n\n@Component({\n\ttemplateUrl: './table-paging.component.html',\n\tstyleUrls: ['./table-paging.component.scss'],\n\tselector: 's-table-paging',\n})\nexport class TablePagingComponent implements OnChanges {\n\t@Input()\n\tpublic totalRecords!: number;\n\n\t@Input()\n\tpublic exportFileName?: string;\n\n\t@Input()\n\tpublic table!: Table;\n\n\t@Input()\n\tpublic exportable = true;\n\n\t@Input()\n\tpublic enableExportSelectedRecords = true;\n\n\t@Input()\n\tpublic customActions?: CustomAction[];\n\n\t@Input()\n\tpublic loadAllRecords?: () => Promise<any[]>;\n\n\t@Input()\n\tpublic loadCurrentPageRecords?: () => any[];\n\n\t@Input()\n\tpublic loadSelectedRecords?: () => any[];\n\n\tpublic totalRecordsText = '';\n\n\tprivate readonly localeService: LocaleService = Inject(LocaleService)\n\n\tconstructor(\n\t\tprivate readonly translate: TranslateService,\n\t\t@Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n\t) { }\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['totalRecords']?.currentValue) {\n\t\t\tthis.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n\t\t\t\tvalue: changes['totalRecords'].currentValue,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getTranslatePrefix() {\n\t\treturn `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n\t}\n\n\tpublic getTooltipText() {\n\t\treturn this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n\t}\n\n\tpublic getActions(): TieredMenuItemData[] {\n\t\tconst actions: TieredMenuItemData[] = [\n\t\t\t{\n\t\t\t\tdataKey: 'exportCurrentPage',\n\t\t\t\tlabel: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n\t\t\t\tcommand: () => this.exportCurrentPage(),\n\t\t\t},\n\t\t];\n\n\t\tif (this.enableExportSelectedRecords) {\n\t\t\tactions.push({\n\t\t\t\tdataKey: 'exportSelected',\n\t\t\t\tlabel: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n\t\t\t\tcommand: () => this.exportSelectedRecords(),\n\t\t\t});\n\t\t}\n\n\t\tif (this.loadAllRecords) {\n\t\t\tactions.push({\n\t\t\t\tdataKey: 'exportAll',\n\t\t\t\tlabel: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n\t\t\t\tcommand: () => this.exportAllRecords(),\n\t\t\t});\n\t\t}\n\n\t\tif (this.customActions?.length) {\n\t\t\tconst customMenus = this.customActions.map((p, $index) => ({\n\t\t\t\tdataKey: `customAction_${$index}`,\n\t\t\t\tlabel: p.label,\n\t\t\t\tcommand: p.command,\n\t\t\t}));\n\t\t\tactions.push(...customMenus);\n\t\t}\n\n\t\treturn actions;\n\t}\n\n\tprivate validateComponent() {\n\t\tif (!this.table) {\n\t\t\tthrow new Error('Table component not defined');\n\t\t}\n\t}\n\n\tpublic getColumnsToExport() {\n\t\treturn [...(this.table.columns ?? [])].map((column) => {\n\t\t\tconst exportColumn = {\n\t\t\t\t...column,\n\t\t\t\theader: column.header,\n\t\t\t\texportable: true,\n\t\t\t\tfield: column.field,\n\t\t\t\tseparator: column.separator ?? ' - ',\n\t\t\t\tenumPrefix: column.enumPrefix,\n\t\t\t\tcustomExport: column.customExport,\n\t\t\t};\n\n\t\t\tif (column.exportable === false) {\n\t\t\t\texportColumn.exportable = false;\n\t\t\t}\n\n\t\t\tif (column.attributes && column.attributes.length) {\n\t\t\t\tif (column.attributes.length === 1) {\n\t\t\t\t\texportColumn.field = column.attributes[0];\n\t\t\t\t} else {\n\t\t\t\t\texportColumn.field = column.attributes;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn exportColumn;\n\t\t});\n\t}\n\n\tprivate getCurrentPageRowsToExport(columns: any[]) {\n\t\tlet tableData = this.table.value;\n\t\tif (this.loadCurrentPageRecords) {\n\t\t\ttableData = this.loadCurrentPageRecords();\n\t\t}\n\n\t\ttableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\t\treturn this.mapColumnsTranslations(columns, tableData);\n\t}\n\n\tprivate getSelectedRowsToExport(columns: any[]) {\n\t\tlet tableData = this.table.selection;\n\t\tif (this.loadSelectedRecords) {\n\t\t\ttableData = this.loadSelectedRecords();\n\t\t}\n\n\t\ttableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\t\treturn this.mapColumnsTranslations(columns, tableData);\n\t}\n\n\tprivate getPropertyValue(obj: any, path: string) {\n\t\treturn path\n\t\t\t.split('.')\n\t\t\t.reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n\t}\n\n\tprivate setPropertyValue(obj: any, path: string, value: any) {\n\t\tthis.recursionSetValue(obj, path.split('.'), value);\n\t}\n\n\tprivate recursionSetValue(obj: any, keysList: string[], value: any): any {\n\t\tconst key = keysList[0];\n\t\tif (keysList.length === 1) {\n\t\t\tobj[key] = value;\n\t\t\treturn obj;\n\t\t}\n\t\tobj[key] = this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value);\n\t\treturn obj;\n\t}\n\n\tpublic mapColumnsTranslations(columns: any[], rows: any[]) {\n\t\tconst enumColumns = columns.filter((p) => p.enumPrefix);\n\t\tif (!enumColumns.length) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn [...rows].map((row) => {\n\t\t\tconst newRow = { ...row };\n\t\t\tenumColumns.forEach((column) => {\n\t\t\t\tconst fields = !Array.isArray(column.field) ? [column.field] : column.field;\n\t\t\t\tfields.forEach((fieldName: string) => {\n\t\t\t\t\tconst columnData = this.getPropertyValue(row, fieldName);\n\t\t\t\t\tif (columnData === null || columnData === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newValue = this.translateValue(column, columnData);\n\t\t\t\t\tthis.setPropertyValue(newRow, fieldName, newValue);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn newRow;\n\t\t});\n\t}\n\n\tpublic mapCustomExport(columns: any[], rows: any[]) {\n\t\tconst customColumns = columns.filter((p) => p.customExport);\n\t\tif (!customColumns.length) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn [...rows].map((row) => {\n\t\t\tconst newRow = { ...row };\n\t\t\tcustomColumns.forEach((column) => {\n\t\t\t\tconst fields = !Array.isArray(column.field) ? [column.field] : column.field;\n\t\t\t\tfields.forEach((fieldName: string) => {\n\t\t\t\t\tconst columnData = this.getPropertyValue(row, fieldName);\n\t\t\t\t\tif (columnData === null || columnData === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst newValue = column.customExport(columnData);\n\t\t\t\t\tthis.setPropertyValue(newRow, fieldName, newValue);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn newRow;\n\t\t});\n\t}\n\n\tprivate translateValue(column: any, columnData: any) {\n\t\t// Default usage: ENUM_VALUE -> domain.service.enum_value\n\t\tconst enumValue = columnData.toString().toLowerCase();\n\t\tlet translationKey = column.enumPrefix + enumValue;\n\t\tlet translatedValue = this.translate.instant(translationKey);\n\n\t\t// Custom usage 1: V9 -> domain.service.v_9\n\t\tif (translationKey === translatedValue && enumValue.length > 1) {\n\t\t\ttranslationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n\t\t\ttranslatedValue = this.translate.instant(translationKey);\n\t\t}\n\n\t\t// Custom usage 2: EnumValue -> domain.service.enum_value\n\t\tif (translationKey === translatedValue) {\n\t\t\tconst enumKey = this.convertToSnakeCase(columnData.toString());\n\t\t\ttranslationKey = `${column.enumPrefix}${enumKey}`;\n\t\t\ttranslatedValue = this.translate.instant(translationKey);\n\t\t}\n\n\t\treturn translatedValue;\n\t}\n\n\tprivate convertToSnakeCase(str: string) {\n\t\treturn str.replace(/([A-Z])/g, (_match, group) => `_${group.toLowerCase()}`).replace(/^_/, \"\");\n\t}\n\n\tprivate getExportFileName() {\n\t\tconst lang = this.translate.currentLang ?? 'pt-BR';\n\t\tconst date = new Date();\n\n\t\tconst fileName = this.exportFileName ?? 'download';\n\t\tconst formattedDate = date.toLocaleDateString(lang).replace('_', '-');\n\t\tconst formattedTime = date.toLocaleTimeString(lang).replace(' ', '-');\n\n\t\treturn `${fileName}_${formattedDate}_${formattedTime}`;\n\t}\n\n\tpublic exportCurrentPage() {\n\t\tthis.validateComponent();\n\t\tconst columns = this.getColumnsToExport();\n\t\tconst dataToExport = this.getCurrentPageRowsToExport(columns);\n\t\tExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n\t}\n\n\tpublic exportSelectedRecords() {\n\t\tthis.validateComponent();\n\t\tconst columns = this.getColumnsToExport();\n\t\tconst dataToExport = this.getSelectedRowsToExport(columns);\n\t\tExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n\t}\n\n\tpublic async exportAllRecords() {\n\t\tthis.validateComponent();\n\n\t\tif (!this.loadAllRecords) {\n\t\t\treturn;\n\t\t}\n\t\tlet serverData = await this.loadAllRecords();\n\n\t\tconst columns = this.getColumnsToExport();\n\n\t\tserverData = this.mapCustomExport(columns, serverData);\n\n\t\tserverData = this.mapNumberFormatOptionsExport(columns, serverData);\n\n\t\tconst dataToExport = this.mapColumnsTranslations(columns, serverData);\n\n\t\tExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n\t}\n\n\t/**\n\t * The purpose of this method is to map values\n\t * from the TableColumnsComponent, which uses the numberFormatOptions\n\t * field, along with rows that have a custom numberFormatOptions,\n\t * to ensure the correct values are exported by the TablePagingComponent.\n\t *\n\t * @returns Returns the correctly mapped tableData.\n\t */\n\tpublic mapNumberFormatOptionsExport(\n\t\tcolumns: Partial<Column>[],\n\t\ttableData: {\n\t\t\t[key: string]: RowValueFormatOption | number | string | null | undefined;\n\t\t}[]\n\t) {\n\t\tconst hasNumberFormatOptionsColumns = columns.some((column) => column.numberFormatOptions);\n\t\tconst hasNumberFormatOptionsRows = tableData.some((rowData) =>\n\t\t\tObject.keys(rowData).some((key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions)\n\t\t);\n\n\t\tif (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows) return tableData;\n\n\t\tif (hasNumberFormatOptionsColumns) {\n\t\t\ttableData = tableData.map((rowData) => {\n\t\t\t\tconst columnsWithNumberFormatOptions = columns.filter((column) => column.numberFormatOptions);\n\n\t\t\t\tfor (const column of columnsWithNumberFormatOptions) {\n\t\t\t\t\tconst attributes = column.attributes;\n\n\t\t\t\t\tconst numberFormatOptions =\n\t\t\t\t\t\ttypeof column.numberFormatOptions === \"function\"\n\t\t\t\t\t\t\t? column.numberFormatOptions({\n\t\t\t\t\t\t\t\trowData,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t: column.numberFormatOptions;\n\n\t\t\t\t\tfor (const attribute of attributes!) {\n\t\t\t\t\t\tif (isNullOrUndefined(rowData[attribute as string])) continue;\n\n\t\t\t\t\t\tif ((rowData[attribute as string] as RowValueFormatOption).options?.numberFormatOptions) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst value = rowData[attribute as string] as string | number;\n\n\t\t\t\t\t\tconst mappedValue =\n\t\t\t\t\t\t\tnumberFormatOptions?.style === \"percent\" ? new BigNumber(value).times(100) : new BigNumber(value);\n\n\t\t\t\t\t\tconst numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n\t\t\t\t\t\t\t...numberFormatOptions,\n\t\t\t\t\t\t\tstyle: \"decimal\",\n\t\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\t\troundingMode: \"trunc\",\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\trowData[attribute as string] = numberFormat.format(mappedValue.toNumber());\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn rowData;\n\t\t\t});\n\t\t}\n\n\t\tif (hasNumberFormatOptionsRows) {\n\t\t\ttableData = tableData.map((rowData) => {\n\t\t\t\tconst keysWithNumberFormatOptions = Object.keys(rowData).filter(\n\t\t\t\t\t(key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions\n\t\t\t\t);\n\n\t\t\t\tfor (const key of keysWithNumberFormatOptions) {\n\t\t\t\t\tconst value = (rowData[key] as RowValueFormatOption).value;\n\n\t\t\t\t\tconst numberFormatOptions = (rowData[key] as RowValueFormatOption).options?.numberFormatOptions;\n\n\t\t\t\t\tconst mappedValue = numberFormatOptions?.style === \"percent\" ? new BigNumber(value!).times(100) : new BigNumber(value!);\n\n\t\t\t\t\tconst numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n\t\t\t\t\t\t...numberFormatOptions,\n\t\t\t\t\t\tstyle: \"decimal\",\n\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\troundingMode: \"trunc\",\n\t\t\t\t\t} as any);\n\n\t\t\t\t\t(rowData[key] as string | number) = numberFormat.format(mappedValue.toNumber());\n\t\t\t\t}\n\n\t\t\t\treturn rowData;\n\t\t\t});\n\t\t}\n\n\t\treturn tableData;\n\t}\n\n}\n","<div class=\"paging-container\">\n <span class=\"total-records\">\n {{ totalRecordsText }}\n </span>\n @if (exportable) {\n <s-button\n class=\"export-button\"\n priority=\"default\"\n iconClass=\"fa fa-fw fa-file-export\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n [tooltip]=\"getTooltipText()\"\n [menuOptions]=\"getActions()\"\n >\n </s-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NavigationDirective } from './navigation/navigation.directive';\nimport { RowTogllerDirective } from './row-toggler/row-toggler.directive';\nimport { TableColumnsComponent } from './table-column/table-columns.component';\nimport { TablePagingComponent } from './table-paging/table-paging.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, TokenListModule, TranslateModule, ButtonModule, InfoSignModule, BadgeModule],\n exports: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n declarations: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BigNumber","i2"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-table.mjs","sources":["../../projects/angular-components/table/src/lib/table/navigation/navigation.directive.ts","../../projects/angular-components/table/src/lib/table/row-toggler/row-toggler.directive.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-column-field-type.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-badge-colors.ts","../../projects/angular-components/table/src/lib/locale-utils.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.html","../../projects/angular-components/table/src/lib/table/export-utils.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.html","../../projects/angular-components/table/src/lib/table/table.module.ts","../../projects/angular-components/table/src/seniorsistemas-angular-components-table.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({ selector: '[sNavigation]' })\nexport class NavigationDirective {\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Right': // IE 11\n case 'ArrowRight':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Left': // IE 11\n case 'ArrowLeft':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Up': // IE 11\n case 'ArrowUp':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Down': // IE 11\n case 'ArrowDown':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private _focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private _focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private _focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this._setNextRowFocus(currentRow);\n }\n }\n\n private _focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private _setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const prevRow = this._findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const nextRow = this._findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this._findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private _setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private _isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'tr';\n }\n\n private _isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'td';\n }\n\n private _findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n return prevRow ?? null;\n }\n\n private _findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n return nextRow ?? null;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { RowToggler, Table } from 'primeng/table';\n\n@Directive({ selector: '[sRowToggler]' })\nexport class RowTogllerDirective extends RowToggler {\n @Input({ alias: 'sRowToggler', required: true })\n public override data: any = null;\n\n constructor(public override readonly dt: Table) {\n super(dt);\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case 'Enter':\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","export enum EnumColumnFieldType {\n STRING = 'STRING',\n NUMBER = 'NUMBER',\n BOOLEAN = 'BOOLEAN',\n DATE = 'DATE',\n CURRENCY = 'CURRENCY',\n ENUM = 'ENUM',\n LOOKUP = 'LOOKUP',\n LINK = 'LINK',\n TOKENS = 'TOKENS'\n}\n","export enum EnumBadgeColors {\n RED = 'red',\n ORANGE = 'orange',\n YELLOW = 'yellow',\n GREEN = 'green',\n BLUE = 'blue',\n GRAY = 'gray',\n}\n","export const convertToMomentDateFormat = (format: string): string => {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n}","import {\n Component,\n Inject,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumericService } from '@seniorsistemas/angular-components/numeric';\nimport { IToken } from '@seniorsistemas/angular-components/token-list';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { MaskConfig, applyMask } from '@seniorsistemas/ng2-currency-mask';\nimport BigNumber from 'bignumber.js';\nimport moment from 'moment';\nimport { convertToMomentDateFormat } from '../../locale-utils';\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from './models';\n\n@Component({\n templateUrl: './table-columns.component.html',\n styleUrls: ['./table-columns.component.scss'],\n selector: 's-table-columns',\n})\nexport class TableColumnsComponent implements OnChanges {\n @ViewChild('columnsTemplate', { static: true })\n public columnsTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public columns: Column[] = [];\n\n @Input()\n public rowValue!: any;\n\n @Input()\n public locale: TableColumnLocaleOptions | null = null;\n\n cellsData: (CellData | null)[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n private readonly numericService: NumericService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n ) {\n this.locale = {\n calendar: {\n ...this.localeService.getLocaleOptions()?.calendar,\n dateFormat: convertToMomentDateFormat(this.localeService.getLocaleOptions()?.calendar.dateFormat ?? ''),\n },\n number: {\n ...this.localeService.getLocaleOptions()?.number,\n scale: 0,\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n\n if (changes['columns'] && changes['columns'].currentValue !== changes['columns'].previousValue) {\n this.columns = this.sortColumnsBySequence(changes['columns'].currentValue);\n }\n this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getTokensByColumn(column: ColumnValues) {\n return column.columnValue as IToken[];\n }\n\n private getCellData(column: ColumnValues): CellData | null {\n const { columnValue, separator, uninformed } = column;\n\n if (typeof columnValue === 'string') {\n const splittedString = columnValue.split(separator);\n\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : null,\n };\n });\n }\n\n return null;\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!this.columns && !changes['columns']?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!this.rowValue && !changes['rowValue']?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes['columns']?.currentValue || this.columns;\n const rowValue: object = changes['rowValue']?.currentValue || this.rowValue;\n const locale: TableColumnLocaleOptions = changes['locale']?.currentValue || this.locale;\n\n this.formattedColumns = columns.map((column) => this.getColumnValue(column, rowValue, locale));\n\n this.cellsData = this.formattedColumns.map((column) => this.getCellData(column));\n\n if (!isNullOrUndefined(this.columnsTemplate)) {\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : ' - ';\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return (\n attributeValue === null ||\n attributeValue === undefined ||\n (attributeValue?.options?.numberFormatOptions && isNullOrUndefined(attributeValue?.value)) ||\n (this.isArray(attributeValue) && !attributeValue.length) ||\n (typeof attributeValue === 'string' && attributeValue.trim() === '')\n );\n }\n\n private getFormattedColumnValue(\n column: Column,\n columnValue: any[],\n unifiedColumnValues: string,\n uninformedText: string,\n uninformedNumber: number,\n ) {\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply(\n [],\n columnValue.filter((values) => values !== uninformedText),\n );\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: any) {\n let attributeValue!: any;\n\n attribute.split(\"/\").forEach((value: string) => {\n if (!attributeValue) {\n value.split(\".\").forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column): MaskConfig {\n return {\n ...this.locale?.number,\n scale:\n column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : this.locale?.number.scale,\n prefix: `${this.locale?.number.currencySymbol} `,\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: any, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + \"empty_label\");\n const style = column.style;\n\n const columnValue = column.attributes.map((attribute: string | number | symbol) => {\n const attributeValue = this.getAttributeValue(attribute as string, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY: {\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? \"yes\" : \"no\";\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER: {\n numberConfigs.prefix = \"\";\n\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues.split(separator).filter((value) => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(column, columnValue, unifiedColumnValues, uninformed, uninformedNumber);\n\n return {\n style,\n columnValue: formattedColumnValue,\n separator,\n uninformed,\n badgeConfigs: column?.badgeConfigs?.find(\n (badgeConfig) => badgeConfig.enumValue === rowValue[column.attributes[0] ?? column.field]\n ),\n color: column.color?.(rowValue),\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick,\n compact: column.compact,\n };\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === 'function') {\n return scale(this.rowValue);\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign?: string | ((rowValue: any) => string | null)): string | null {\n if (!isNullOrUndefined(infoSign)) {\n if (typeof infoSign === 'function') {\n return infoSign(this.rowValue);\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip?: string | ((rowValue: any) => string)): string {\n if (!isNullOrUndefined(tooltip)) {\n if (typeof tooltip === 'function') {\n return tooltip(this.rowValue);\n }\n return tooltip;\n }\n return '';\n }\n\n private isNumber(value: any): boolean {\n return !new BigNumber(value).isNaN();\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error('To use tokens an array must be informed');\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\n 'Not a valid token array. Must be a primitive values array or an objects with label attribute array',\n );\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === 'symbol' ? value.toString() : `${value}`;\n return {\n label,\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter((value) => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter((value) => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n private sortColumnsBySequence(columns: Column[]): Column[] {\n return columns.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string | null }[];\n","<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n","import { ElementRef } from '@angular/core';\nimport { Column } from '../table/table-column/models/column.interface';\nimport { EnumColumnFieldType } from '../table/table-column/models/enum-column-field-type';\n\ndeclare global {\n interface Navigator {\n msSaveOrOpenBlob(blob: Blob, name: string): void;\n }\n}\n\nexport abstract class ExportUtils {\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, '');\n }\n }\n\n public static exportCSV(\n columns: Partial<Column>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download',\n ) {\n let csv = '\\ufeff';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += '\\n';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) =>\n this._resolveFieldData(record, col, column),\n );\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this._resolveFieldData(record, column.field, column);\n }\n\n if (cellData !== null) cellData = String(cellData).replace(/\"/g, '\"\"');\n else cellData = '';\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;',\n });\n\n if (typeof window.navigator.msSaveOrOpenBlob === 'function') {\n navigator.msSaveOrOpenBlob(blob, documentName + '.csv');\n } else {\n const link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', documentName + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static _resolveFieldData(data: any, field: any, column: Column): string | null {\n if (!data && !field) {\n return null;\n }\n const needSplitValues = field.includes('.');\n if (this._isFunction(field)) {\n return field(data);\n } else if (!needSplitValues) {\n return data[field];\n } else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value === null || value === undefined) {\n return null;\n }\n value = value[fields[i]];\n }\n return ExportUtils._extractData(value, column);\n }\n }\n\n private static _isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n private static _extractData(data: any, column: Column) {\n const _data = Array.isArray(data) ? data : [data];\n switch (column.type) {\n case EnumColumnFieldType.TOKENS:\n return _data.map((d: any) => ExportUtils._parseToken(d));\n default:\n return data;\n }\n }\n\n private static _parseToken(data: any) {\n if (isObject(data)) {\n return data['label'];\n } else {\n return data;\n }\n }\n}\n\nconst isObject = (obj: any) => obj !== null && typeof obj === 'object';\n","import { Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Table } from 'primeng/table';\nimport { CustomAction } from './models';\nimport { Column } from '../table-column/models';\nimport { ExportUtils } from '../export-utils';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\n\ntype RowValueFormatOption = {\n\tvalue?: number;\n\toptions?: {\n\t\tnumberFormatOptions?: Intl.NumberFormatOptions;\n\t};\n}\n\n@Component({\n\ttemplateUrl: './table-paging.component.html',\n\tstyleUrls: ['./table-paging.component.scss'],\n\tselector: 's-table-paging',\n})\nexport class TablePagingComponent implements OnChanges {\n\t@Input()\n\tpublic totalRecords!: number;\n\n\t@Input()\n\tpublic exportFileName?: string;\n\n\t@Input()\n\tpublic table!: Table;\n\n\t@Input()\n\tpublic exportable = true;\n\n\t@Input()\n\tpublic enableExportSelectedRecords = true;\n\n\t@Input()\n\tpublic customActions?: CustomAction[];\n\n\t@Input()\n\tpublic loadAllRecords?: () => Promise<any[]>;\n\n\t@Input()\n\tpublic loadCurrentPageRecords?: () => any[];\n\n\t@Input()\n\tpublic loadSelectedRecords?: () => any[];\n\n\tpublic totalRecordsText = '';\n\n\tprivate readonly localeService: LocaleService = Inject(LocaleService)\n\n\tconstructor(\n\t\tprivate readonly translate: TranslateService,\n\t\t@Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n\t) { }\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['totalRecords']?.currentValue) {\n\t\t\tthis.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n\t\t\t\tvalue: changes['totalRecords'].currentValue,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getTranslatePrefix() {\n\t\treturn `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n\t}\n\n\tpublic getTooltipText() {\n\t\treturn this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n\t}\n\n\tpublic getActions(): TieredMenuItemData[] {\n\t\tconst actions: TieredMenuItemData[] = [\n\t\t\t{\n\t\t\t\tdataKey: 'exportCurrentPage',\n\t\t\t\tlabel: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n\t\t\t\tcommand: () => this.exportCurrentPage(),\n\t\t\t},\n\t\t];\n\n\t\tif (this.enableExportSelectedRecords) {\n\t\t\tactions.push({\n\t\t\t\tdataKey: 'exportSelected',\n\t\t\t\tlabel: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n\t\t\t\tcommand: () => this.exportSelectedRecords(),\n\t\t\t});\n\t\t}\n\n\t\tif (this.loadAllRecords) {\n\t\t\tactions.push({\n\t\t\t\tdataKey: 'exportAll',\n\t\t\t\tlabel: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n\t\t\t\tcommand: () => this.exportAllRecords(),\n\t\t\t});\n\t\t}\n\n\t\tif (this.customActions?.length) {\n\t\t\tconst customMenus = this.customActions.map((p, $index) => ({\n\t\t\t\tdataKey: `customAction_${$index}`,\n\t\t\t\tlabel: p.label,\n\t\t\t\tcommand: p.command,\n\t\t\t}));\n\t\t\tactions.push(...customMenus);\n\t\t}\n\n\t\treturn actions;\n\t}\n\n\tprivate validateComponent() {\n\t\tif (!this.table) {\n\t\t\tthrow new Error('Table component not defined');\n\t\t}\n\t}\n\n\tpublic getColumnsToExport() {\n\t\treturn [...(this.table.columns ?? [])].map((column) => {\n\t\t\tconst exportColumn = {\n\t\t\t\t...column,\n\t\t\t\theader: column.header,\n\t\t\t\texportable: true,\n\t\t\t\tfield: column.field,\n\t\t\t\tseparator: column.separator ?? ' - ',\n\t\t\t\tenumPrefix: column.enumPrefix,\n\t\t\t\tcustomExport: column.customExport,\n\t\t\t};\n\n\t\t\tif (column.exportable === false) {\n\t\t\t\texportColumn.exportable = false;\n\t\t\t}\n\n\t\t\tif (column.attributes && column.attributes.length) {\n\t\t\t\tif (column.attributes.length === 1) {\n\t\t\t\t\texportColumn.field = column.attributes[0];\n\t\t\t\t} else {\n\t\t\t\t\texportColumn.field = column.attributes;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn exportColumn;\n\t\t});\n\t}\n\n\tprivate getCurrentPageRowsToExport(columns: any[]) {\n\t\tlet tableData = this.table.value;\n\t\tif (this.loadCurrentPageRecords) {\n\t\t\ttableData = this.loadCurrentPageRecords();\n\t\t}\n\n\t\ttableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\t\treturn this.mapColumnsTranslations(columns, tableData);\n\t}\n\n\tprivate getSelectedRowsToExport(columns: any[]) {\n\t\tlet tableData = this.table.selection;\n\t\tif (this.loadSelectedRecords) {\n\t\t\ttableData = this.loadSelectedRecords();\n\t\t}\n\n\t\ttableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\t\treturn this.mapColumnsTranslations(columns, tableData);\n\t}\n\n\tprivate getPropertyValue(obj: any, path: string) {\n\t\treturn path\n\t\t\t.split('.')\n\t\t\t.reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n\t}\n\n\tprivate setPropertyValue(obj: any, path: string, value: any) {\n\t\tthis.recursionSetValue(obj, path.split('.'), value);\n\t}\n\n\tprivate recursionSetValue(obj: any, keysList: string[], value: any): any {\n\t\tconst key = keysList[0];\n\t\tif (keysList.length === 1) {\n\t\t\tobj[key] = value;\n\t\t\treturn obj;\n\t\t}\n\t\tobj[key] = this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value);\n\t\treturn obj;\n\t}\n\n\tpublic mapColumnsTranslations(columns: any[], rows: any[]) {\n\t\tconst enumColumns = columns.filter((p) => p.enumPrefix);\n\t\tif (!enumColumns.length) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn [...rows].map((row) => {\n\t\t\tconst newRow = { ...row };\n\t\t\tenumColumns.forEach((column) => {\n\t\t\t\tconst fields = !Array.isArray(column.field) ? [column.field] : column.field;\n\t\t\t\tfields.forEach((fieldName: string) => {\n\t\t\t\t\tconst columnData = this.getPropertyValue(row, fieldName);\n\t\t\t\t\tif (columnData === null || columnData === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newValue = this.translateValue(column, columnData);\n\t\t\t\t\tthis.setPropertyValue(newRow, fieldName, newValue);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn newRow;\n\t\t});\n\t}\n\n\tpublic mapCustomExport(columns: any[], rows: any[]) {\n\t\tconst customColumns = columns.filter((p) => p.customExport);\n\t\tif (!customColumns.length) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn [...rows].map((row) => {\n\t\t\tconst newRow = { ...row };\n\t\t\tcustomColumns.forEach((column) => {\n\t\t\t\tconst fields = !Array.isArray(column.field) ? [column.field] : column.field;\n\t\t\t\tfields.forEach((fieldName: string) => {\n\t\t\t\t\tconst columnData = this.getPropertyValue(row, fieldName);\n\t\t\t\t\tif (columnData === null || columnData === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst newValue = column.customExport(columnData);\n\t\t\t\t\tthis.setPropertyValue(newRow, fieldName, newValue);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn newRow;\n\t\t});\n\t}\n\n\tprivate translateValue(column: any, columnData: any) {\n\t\t// Default usage: ENUM_VALUE -> domain.service.enum_value\n\t\tconst enumValue = columnData.toString().toLowerCase();\n\t\tlet translationKey = column.enumPrefix + enumValue;\n\t\tlet translatedValue = this.translate.instant(translationKey);\n\n\t\t// Custom usage 1: V9 -> domain.service.v_9\n\t\tif (translationKey === translatedValue && enumValue.length > 1) {\n\t\t\ttranslationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n\t\t\ttranslatedValue = this.translate.instant(translationKey);\n\t\t}\n\n\t\t// Custom usage 2: EnumValue -> domain.service.enum_value\n\t\tif (translationKey === translatedValue) {\n\t\t\tconst enumKey = this.convertToSnakeCase(columnData.toString());\n\t\t\ttranslationKey = `${column.enumPrefix}${enumKey}`;\n\t\t\ttranslatedValue = this.translate.instant(translationKey);\n\t\t}\n\n\t\treturn translatedValue;\n\t}\n\n\tprivate convertToSnakeCase(str: string) {\n\t\treturn str.replace(/([A-Z])/g, (_match, group) => `_${group.toLowerCase()}`).replace(/^_/, \"\");\n\t}\n\n\tprivate getExportFileName() {\n\t\tconst lang = this.translate.currentLang ?? 'pt-BR';\n\t\tconst date = new Date();\n\n\t\tconst fileName = this.exportFileName ?? 'download';\n\t\tconst formattedDate = date.toLocaleDateString(lang).replace('_', '-');\n\t\tconst formattedTime = date.toLocaleTimeString(lang).replace(' ', '-');\n\n\t\treturn `${fileName}_${formattedDate}_${formattedTime}`;\n\t}\n\n\tpublic exportCurrentPage() {\n\t\tthis.validateComponent();\n\t\tconst columns = this.getColumnsToExport();\n\t\tconst dataToExport = this.getCurrentPageRowsToExport(columns);\n\t\tExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n\t}\n\n\tpublic exportSelectedRecords() {\n\t\tthis.validateComponent();\n\t\tconst columns = this.getColumnsToExport();\n\t\tconst dataToExport = this.getSelectedRowsToExport(columns);\n\t\tExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n\t}\n\n\tpublic async exportAllRecords() {\n\t\tthis.validateComponent();\n\n\t\tif (!this.loadAllRecords) {\n\t\t\treturn;\n\t\t}\n\t\tlet serverData = await this.loadAllRecords();\n\n\t\tconst columns = this.getColumnsToExport();\n\n\t\tserverData = this.mapCustomExport(columns, serverData);\n\n\t\tserverData = this.mapNumberFormatOptionsExport(columns, serverData);\n\n\t\tconst dataToExport = this.mapColumnsTranslations(columns, serverData);\n\n\t\tExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n\t}\n\n\t/**\n\t * The purpose of this method is to map values\n\t * from the TableColumnsComponent, which uses the numberFormatOptions\n\t * field, along with rows that have a custom numberFormatOptions,\n\t * to ensure the correct values are exported by the TablePagingComponent.\n\t *\n\t * @returns Returns the correctly mapped tableData.\n\t */\n\tpublic mapNumberFormatOptionsExport(\n\t\tcolumns: Partial<Column>[],\n\t\ttableData: {\n\t\t\t[key: string]: RowValueFormatOption | number | string | null | undefined;\n\t\t}[]\n\t) {\n\t\tconst hasNumberFormatOptionsColumns = columns.some((column) => column.numberFormatOptions);\n\t\tconst hasNumberFormatOptionsRows = tableData.some((rowData) =>\n\t\t\tObject.keys(rowData).some((key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions)\n\t\t);\n\n\t\tif (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows) return tableData;\n\n\t\tif (hasNumberFormatOptionsColumns) {\n\t\t\ttableData = tableData.map((rowData) => {\n\t\t\t\tconst columnsWithNumberFormatOptions = columns.filter((column) => column.numberFormatOptions);\n\n\t\t\t\tfor (const column of columnsWithNumberFormatOptions) {\n\t\t\t\t\tconst attributes = column.attributes;\n\n\t\t\t\t\tconst numberFormatOptions =\n\t\t\t\t\t\ttypeof column.numberFormatOptions === \"function\"\n\t\t\t\t\t\t\t? column.numberFormatOptions({\n\t\t\t\t\t\t\t\trowData,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t: column.numberFormatOptions;\n\n\t\t\t\t\tfor (const attribute of attributes!) {\n\t\t\t\t\t\tif (isNullOrUndefined(rowData[attribute as string])) continue;\n\n\t\t\t\t\t\tif ((rowData[attribute as string] as RowValueFormatOption).options?.numberFormatOptions) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst value = rowData[attribute as string] as string | number;\n\n\t\t\t\t\t\tconst mappedValue =\n\t\t\t\t\t\t\tnumberFormatOptions?.style === \"percent\" ? new BigNumber(value).times(100) : new BigNumber(value);\n\n\t\t\t\t\t\tconst numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n\t\t\t\t\t\t\t...numberFormatOptions,\n\t\t\t\t\t\t\tstyle: \"decimal\",\n\t\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\t\troundingMode: \"trunc\",\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\trowData[attribute as string] = numberFormat.format(mappedValue.toNumber());\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn rowData;\n\t\t\t});\n\t\t}\n\n\t\tif (hasNumberFormatOptionsRows) {\n\t\t\ttableData = tableData.map((rowData) => {\n\t\t\t\tconst keysWithNumberFormatOptions = Object.keys(rowData).filter(\n\t\t\t\t\t(key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions\n\t\t\t\t);\n\n\t\t\t\tfor (const key of keysWithNumberFormatOptions) {\n\t\t\t\t\tconst value = (rowData[key] as RowValueFormatOption).value;\n\n\t\t\t\t\tconst numberFormatOptions = (rowData[key] as RowValueFormatOption).options?.numberFormatOptions;\n\n\t\t\t\t\tconst mappedValue = numberFormatOptions?.style === \"percent\" ? new BigNumber(value!).times(100) : new BigNumber(value!);\n\n\t\t\t\t\tconst numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n\t\t\t\t\t\t...numberFormatOptions,\n\t\t\t\t\t\tstyle: \"decimal\",\n\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\troundingMode: \"trunc\",\n\t\t\t\t\t} as any);\n\n\t\t\t\t\t(rowData[key] as string | number) = numberFormat.format(mappedValue.toNumber());\n\t\t\t\t}\n\n\t\t\t\treturn rowData;\n\t\t\t});\n\t\t}\n\n\t\treturn tableData;\n\t}\n\n}\n","<div class=\"paging-container\">\n <span class=\"total-records\">\n {{ totalRecordsText }}\n </span>\n @if (exportable) {\n <s-button\n class=\"export-button\"\n priority=\"default\"\n iconClass=\"fa fa-fw fa-file-export\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n [tooltip]=\"getTooltipText()\"\n [menuOptions]=\"getActions()\"\n >\n </s-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NavigationDirective } from './navigation/navigation.directive';\nimport { RowTogllerDirective } from './row-toggler/row-toggler.directive';\nimport { TableColumnsComponent } from './table-column/table-columns.component';\nimport { TablePagingComponent } from './table-paging/table-paging.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, TokenListModule, TranslateModule, ButtonModule, InfoSignModule, BadgeModule],\n exports: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n declarations: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BigNumber","i2"],"mappings":"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"}