@seniorsistemas/data-seniorx-core 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/core/constants/chips.const.d.ts +1 -0
  2. package/core/constants/combobox.const.d.ts +1 -1
  3. package/core/constants/fileupload.const.d.ts +9 -0
  4. package/core/constants/icon-picker.const.d.ts +1 -0
  5. package/core/constants/picklist.const.d.ts +1 -0
  6. package/core/constants/table.const.d.ts +43 -0
  7. package/core/types/button.type.d.ts +18 -2
  8. package/core/types/fileupload.type.d.ts +17 -0
  9. package/core/types/filters.type.d.ts +4 -0
  10. package/core/types/table-column.type.d.ts +31 -0
  11. package/core/types/table-options.type.d.ts +90 -0
  12. package/core/types/table-shared.type.d.ts +13 -0
  13. package/core/types/table-visual.type.d.ts +23 -0
  14. package/core/types/table.type.d.ts +4 -113
  15. package/core/utils/layout.util.d.ts +4 -0
  16. package/esm2022/core/constants/chips.const.mjs +2 -1
  17. package/esm2022/core/constants/combobox.const.mjs +2 -2
  18. package/esm2022/core/constants/fileupload.const.mjs +10 -0
  19. package/esm2022/core/constants/icon-picker.const.mjs +76 -1
  20. package/esm2022/core/constants/picklist.const.mjs +2 -1
  21. package/esm2022/core/constants/table.const.mjs +53 -6
  22. package/esm2022/core/types/button.type.mjs +1 -1
  23. package/esm2022/core/types/fileupload.type.mjs +2 -0
  24. package/esm2022/core/types/filters.type.mjs +1 -1
  25. package/esm2022/core/types/table-column.type.mjs +2 -0
  26. package/esm2022/core/types/table-options.type.mjs +2 -0
  27. package/esm2022/core/types/table-shared.type.mjs +2 -0
  28. package/esm2022/core/types/table-visual.type.mjs +2 -0
  29. package/esm2022/core/types/table.type.mjs +1 -1
  30. package/esm2022/core/utils/combobox.util.mjs +2 -2
  31. package/esm2022/core/utils/layout.util.mjs +21 -5
  32. package/esm2022/features/accordion/accordion-item.component.mjs +1 -1
  33. package/esm2022/features/badge/badge.component.mjs +1 -1
  34. package/esm2022/features/button/button.component.mjs +76 -11
  35. package/esm2022/features/button/components/button-menu.component.mjs +81 -0
  36. package/esm2022/features/card-list/card/card.component.mjs +3 -3
  37. package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
  38. package/esm2022/features/chips/chips.component.mjs +8 -5
  39. package/esm2022/features/color-picker/color-picker.component.mjs +1 -1
  40. package/esm2022/features/combobox/combobox.component.mjs +17 -4
  41. package/esm2022/features/fileupload/fileupload.component.mjs +311 -0
  42. package/esm2022/features/filters/filters.component.mjs +3 -3
  43. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  44. package/esm2022/features/icon-picker/icon-picker.component.mjs +34 -7
  45. package/esm2022/features/info-sign/info-sign.component.mjs +1 -1
  46. package/esm2022/features/mask/mask.component.mjs +1 -1
  47. package/esm2022/features/modal/modal.component.mjs +1 -1
  48. package/esm2022/features/number-input/number-input.component.mjs +1 -1
  49. package/esm2022/features/paginator/paginator.component.mjs +3 -3
  50. package/esm2022/features/picklist/picklist.component.mjs +33 -6
  51. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +3 -3
  52. package/esm2022/features/searchbox/searchbox.component.mjs +3 -3
  53. package/esm2022/features/stats-card/stats-card.component.mjs +1 -1
  54. package/esm2022/features/switch/switch.component.mjs +3 -2
  55. package/esm2022/features/table/components/table-actions-menu.component.mjs +86 -0
  56. package/esm2022/features/table/components/table-cell-content.component.mjs +124 -0
  57. package/esm2022/features/table/components/table-sort-indicator.component.mjs +65 -0
  58. package/esm2022/features/table/table.component.mjs +116 -319
  59. package/esm2022/features/table/utils/table-config.util.mjs +35 -0
  60. package/esm2022/features/table/utils/table-data.util.mjs +96 -0
  61. package/esm2022/features/table/utils/table-layout.util.mjs +25 -0
  62. package/esm2022/features/table/utils/table-truncate.pipe.mjs +19 -0
  63. package/esm2022/features/table/utils/table-visual.util.mjs +221 -0
  64. package/esm2022/features/textarea/textarea.component.mjs +1 -1
  65. package/esm2022/features/textbox/textbox.component.mjs +1 -1
  66. package/esm2022/features/tooltip/tooltip.component.mjs +12 -3
  67. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  68. package/esm2022/locales/en.json +194 -0
  69. package/esm2022/locales/es-CO.json +187 -1
  70. package/esm2022/locales/pt.json +194 -0
  71. package/esm2022/providers/features.provider.mjs +3 -1
  72. package/esm2022/public-api.mjs +3 -1
  73. package/features/button/button.component.d.ts +14 -7
  74. package/features/button/components/button-menu.component.d.ts +25 -0
  75. package/features/chips/chips.component.d.ts +1 -0
  76. package/features/combobox/combobox.component.d.ts +4 -1
  77. package/features/fileupload/fileupload.component.d.ts +66 -0
  78. package/features/icon-picker/icon-picker.component.d.ts +3 -0
  79. package/features/modal/modal.component.d.ts +1 -1
  80. package/features/picklist/picklist.component.d.ts +6 -1
  81. package/features/table/components/table-actions-menu.component.d.ts +12 -0
  82. package/features/table/components/table-cell-content.component.d.ts +41 -0
  83. package/features/table/components/table-sort-indicator.component.d.ts +11 -0
  84. package/features/table/table.component.d.ts +28 -44
  85. package/features/table/utils/table-config.util.d.ts +3 -0
  86. package/features/table/utils/table-data.util.d.ts +10 -0
  87. package/features/table/utils/table-layout.util.d.ts +4 -0
  88. package/features/table/utils/table-truncate.pipe.d.ts +12 -0
  89. package/features/table/utils/table-visual.util.d.ts +21 -0
  90. package/features/tooltip/tooltip.component.d.ts +3 -1
  91. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +3525 -1848
  92. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  93. package/package.json +1 -1
  94. package/public-api.d.ts +5 -2
  95. package/src/locales/en.json +194 -0
  96. package/src/locales/es-CO.json +187 -1
  97. package/src/locales/pt.json +194 -0
@@ -0,0 +1,86 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { IconRendererComponent } from '../../../core/components/icon-renderer/icon-renderer.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class TableActionsMenuComponent {
8
+ items = [];
9
+ left = 0;
10
+ top = 0;
11
+ width = 0;
12
+ select = new EventEmitter();
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableActionsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableActionsMenuComponent, isStandalone: true, selector: "sdc-table-actions-menu", inputs: { items: "items", left: "left", top: "top", width: "width" }, outputs: { select: "select" }, ngImport: i0, template: `
15
+ <div
16
+ class="sdc-actions-menu sdc-actions-menu--portal"
17
+ [style.top.px]="top"
18
+ [style.left.px]="left"
19
+ [style.min-width.px]="width"
20
+ role="menu"
21
+ (click)="$event.stopPropagation()"
22
+ >
23
+ @for (item of items; track item.key + '-' + $index) {
24
+ <button
25
+ type="button"
26
+ role="menuitem"
27
+ class="sdc-actions-item"
28
+ [disabled]="item.disabled"
29
+ [class.sdc-actions-item--disabled]="item.disabled"
30
+ [attr.aria-disabled]="item.disabled || null"
31
+ (click)="select.emit(item)"
32
+ >
33
+ <span class="sdc-actions-item__content">
34
+ @if (item.icon) {
35
+ <sdc-icon-renderer [icon]="item.icon" [size]="13"></sdc-icon-renderer>
36
+ }
37
+ <span>{{ item.label | translate }}</span>
38
+ </span>
39
+ </button>
40
+ }
41
+ </div>
42
+ `, isInline: true, styles: [".sdc-actions-menu{background:#fff;border:1px solid #d1d5db;border-radius:0;box-shadow:0 1px 2px #0f172a14;padding:0}.sdc-actions-menu--portal{position:fixed;z-index:2147483647}.sdc-actions-item{width:100%;display:flex;align-items:stretch;justify-content:flex-start;border:0;border-bottom:1px solid #e5e7eb;background:#fff;padding:0;text-align:left;cursor:pointer;font:inherit;color:#374151;min-height:2.25rem;transition:background-color .15s ease,color .15s ease}.sdc-actions-item:last-child{border-bottom:0}.sdc-actions-item__content{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem .875rem;width:100%;font-size:.8125rem;line-height:1.2}.sdc-actions-item:hover:not(:disabled),.sdc-actions-item:focus-visible:not(:disabled){background:#f9fafb;outline:none}.sdc-actions-item:disabled,.sdc-actions-item.sdc-actions-item--disabled,.sdc-actions-item[data-disabled=true]{color:#9ca3af;cursor:not-allowed;background:#fff;pointer-events:none}.sdc-actions-item:disabled .sdc-actions-item__content,.sdc-actions-item.sdc-actions-item--disabled .sdc-actions-item__content,.sdc-actions-item[data-disabled=true] .sdc-actions-item__content{opacity:.55}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableActionsMenuComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'sdc-table-actions-menu', standalone: true, imports: [CommonModule, TranslateModule, IconRendererComponent], template: `
47
+ <div
48
+ class="sdc-actions-menu sdc-actions-menu--portal"
49
+ [style.top.px]="top"
50
+ [style.left.px]="left"
51
+ [style.min-width.px]="width"
52
+ role="menu"
53
+ (click)="$event.stopPropagation()"
54
+ >
55
+ @for (item of items; track item.key + '-' + $index) {
56
+ <button
57
+ type="button"
58
+ role="menuitem"
59
+ class="sdc-actions-item"
60
+ [disabled]="item.disabled"
61
+ [class.sdc-actions-item--disabled]="item.disabled"
62
+ [attr.aria-disabled]="item.disabled || null"
63
+ (click)="select.emit(item)"
64
+ >
65
+ <span class="sdc-actions-item__content">
66
+ @if (item.icon) {
67
+ <sdc-icon-renderer [icon]="item.icon" [size]="13"></sdc-icon-renderer>
68
+ }
69
+ <span>{{ item.label | translate }}</span>
70
+ </span>
71
+ </button>
72
+ }
73
+ </div>
74
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".sdc-actions-menu{background:#fff;border:1px solid #d1d5db;border-radius:0;box-shadow:0 1px 2px #0f172a14;padding:0}.sdc-actions-menu--portal{position:fixed;z-index:2147483647}.sdc-actions-item{width:100%;display:flex;align-items:stretch;justify-content:flex-start;border:0;border-bottom:1px solid #e5e7eb;background:#fff;padding:0;text-align:left;cursor:pointer;font:inherit;color:#374151;min-height:2.25rem;transition:background-color .15s ease,color .15s ease}.sdc-actions-item:last-child{border-bottom:0}.sdc-actions-item__content{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem .875rem;width:100%;font-size:.8125rem;line-height:1.2}.sdc-actions-item:hover:not(:disabled),.sdc-actions-item:focus-visible:not(:disabled){background:#f9fafb;outline:none}.sdc-actions-item:disabled,.sdc-actions-item.sdc-actions-item--disabled,.sdc-actions-item[data-disabled=true]{color:#9ca3af;cursor:not-allowed;background:#fff;pointer-events:none}.sdc-actions-item:disabled .sdc-actions-item__content,.sdc-actions-item.sdc-actions-item--disabled .sdc-actions-item__content,.sdc-actions-item[data-disabled=true] .sdc-actions-item__content{opacity:.55}\n"] }]
75
+ }], propDecorators: { items: [{
76
+ type: Input
77
+ }], left: [{
78
+ type: Input
79
+ }], top: [{
80
+ type: Input
81
+ }], width: [{
82
+ type: Input
83
+ }], select: [{
84
+ type: Output
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9ucy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGFibGUvY29tcG9uZW50cy90YWJsZS1hY3Rpb25zLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7O0FBdUd2RyxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLEtBQUssR0FBMEIsRUFBRSxDQUFDO0lBQ2xDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1IsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVULE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQzt3R0FOaEQseUJBQXlCOzRGQUF6Qix5QkFBeUIsdUxBakcxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCw2c0NBN0JTLFlBQVksOEJBQUUsZUFBZSw0RkFBRSxxQkFBcUI7OzRGQWtHbkQseUJBQXlCO2tCQXJHckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQyxZQUNyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCxtQkFtRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBUYWJsZUFjdGlvbk1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy90YWJsZS50eXBlJztcbmltcG9ydCB7IEljb25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy9pY29uLXJlbmRlcmVyL2ljb24tcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXRhYmxlLWFjdGlvbnMtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgSWNvblJlbmRlcmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNkYy1hY3Rpb25zLW1lbnUgc2RjLWFjdGlvbnMtbWVudS0tcG9ydGFsXCJcbiAgICAgIFtzdHlsZS50b3AucHhdPVwidG9wXCJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImxlZnRcIlxuICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJ3aWR0aFwiXG4gICAgICByb2xlPVwibWVudVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICA+XG4gICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtLmtleSArICctJyArICRpbmRleCkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1hY3Rpb25zLWl0ZW1cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWFjdGlvbnMtaXRlbS0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3QuZW1pdChpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1hY3Rpb25zLWl0ZW1fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlciBbaWNvbl09XCJpdGVtLmljb25cIiBbc2l6ZV09XCIxM1wiPjwvc2RjLWljb24tcmVuZGVyZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAuc2RjLWFjdGlvbnMtbWVudSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnNkYy1hY3Rpb25zLW1lbnUtLXBvcnRhbCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xuICAgIH1cblxuICAgIC5zZGMtYWN0aW9ucy1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250OiBpbmhlcml0O1xuICAgICAgY29sb3I6ICMzNzQxNTE7XG4gICAgICBtaW4taGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlO1xuICAgIH1cblxuICAgIC5zZGMtYWN0aW9ucy1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuc2RjLWFjdGlvbnMtaXRlbV9fY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNjI1cmVtIDAuODc1cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgfVxuXG4gICAgLnNkYy1hY3Rpb25zLWl0ZW06aG92ZXI6bm90KDpkaXNhYmxlZCksXG4gICAgLnNkYy1hY3Rpb25zLWl0ZW06Zm9jdXMtdmlzaWJsZTpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAuc2RjLWFjdGlvbnMtaXRlbTpkaXNhYmxlZCxcbiAgICAuc2RjLWFjdGlvbnMtaXRlbS5zZGMtYWN0aW9ucy1pdGVtLS1kaXNhYmxlZCxcbiAgICAuc2RjLWFjdGlvbnMtaXRlbVtkYXRhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgICAgY29sb3I6ICM5Y2EzYWY7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zZGMtYWN0aW9ucy1pdGVtOmRpc2FibGVkIC5zZGMtYWN0aW9ucy1pdGVtX19jb250ZW50LFxuICAgIC5zZGMtYWN0aW9ucy1pdGVtLnNkYy1hY3Rpb25zLWl0ZW0tLWRpc2FibGVkIC5zZGMtYWN0aW9ucy1pdGVtX19jb250ZW50LFxuICAgIC5zZGMtYWN0aW9ucy1pdGVtW2RhdGEtZGlzYWJsZWQ9J3RydWUnXSAuc2RjLWFjdGlvbnMtaXRlbV9fY29udGVudCB7XG4gICAgICBvcGFjaXR5OiAwLjU1O1xuICAgIH1cbiAgYF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQWN0aW9uc01lbnVDb21wb25lbnQge1xuICBASW5wdXQoKSBpdGVtczogVGFibGVBY3Rpb25NZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGxlZnQgPSAwO1xuICBASW5wdXQoKSB0b3AgPSAwO1xuICBASW5wdXQoKSB3aWR0aCA9IDA7XG5cbiAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb25NZW51SXRlbT4oKTtcbn1cbiJdfQ==
@@ -0,0 +1,124 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { TABLE_ICON_RENDER_SIZE_PX, TABLE_TAG_ICON_RENDER_SIZE_PX, TABLE_TEXT_OVERFLOW_DEFAULT_MAX_CHARS } from '../../../core/constants/table.const';
5
+ import { normalizeTableColumnAlignment } from '../utils/table-layout.util';
6
+ import { formatTableCurrency, formatTableDate, toTableTextValue } from '../utils/table-data.util';
7
+ import { resolveTableButtonKey, resolveTableIconPresentation, resolveTableTagItems, resolveTableTitleIconPresentation } from '../utils/table-visual.util';
8
+ import { SdcTruncatePipe } from '../utils/table-truncate.pipe';
9
+ import { ButtonComponent } from '../../button/button.component';
10
+ import { IconRendererComponent } from '../../../core/components/icon-renderer/icon-renderer.component';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/common";
13
+ import * as i2 from "@ngx-translate/core";
14
+ export class TableCellContentComponent {
15
+ cellConfigs;
16
+ col;
17
+ resolveValue;
18
+ row;
19
+ actionsMenuOpen = false;
20
+ defaultTextOverflow;
21
+ rowCheckboxId = '';
22
+ rowLabel = 'item';
23
+ rowSelected = false;
24
+ toggleActionsMenu = new EventEmitter();
25
+ toggleRow = new EventEmitter();
26
+ triggerButtonAction = new EventEmitter();
27
+ iconSize = TABLE_ICON_RENDER_SIZE_PX;
28
+ tagIconSize = TABLE_TAG_ICON_RENDER_SIZE_PX;
29
+ get resolvedAlignment() {
30
+ return normalizeTableColumnAlignment(this.col?.align);
31
+ }
32
+ cellTextValue(field = this.col?.field) {
33
+ return toTableTextValue(this.resolveValue(this.row, field));
34
+ }
35
+ displayText(field = this.col?.field) {
36
+ const text = this.cellTextValue(field);
37
+ const mode = this.col?.textOverflow ?? this.defaultTextOverflow ?? 'break-line';
38
+ if (mode !== 'ellipsis') {
39
+ return text;
40
+ }
41
+ const max = this.col?.maxChars ?? TABLE_TEXT_OVERFLOW_DEFAULT_MAX_CHARS;
42
+ return text.length > max ? text.slice(0, max).trimEnd() + '…' : text;
43
+ }
44
+ isEllipsisMode() {
45
+ return (this.col?.textOverflow ?? this.defaultTextOverflow ?? 'break-line') === 'ellipsis';
46
+ }
47
+ ellipsisTitleText(displayText) {
48
+ const max = this.col?.maxChars ?? TABLE_TEXT_OVERFLOW_DEFAULT_MAX_CHARS;
49
+ return this.isEllipsisMode() && displayText.length > max ? displayText : null;
50
+ }
51
+ formatDate() {
52
+ return formatTableDate(this.resolveValue(this.row, this.col?.field));
53
+ }
54
+ formatCurrency() {
55
+ return formatTableCurrency(this.resolveValue(this.row, this.col?.field), this.col?.format ?? 'BRL');
56
+ }
57
+ getCheckedValue(event) {
58
+ return event.target.checked;
59
+ }
60
+ tagItems() {
61
+ return resolveTableTagItems(this.row, this.col, this.cellConfigs.tag, this.resolveValue);
62
+ }
63
+ iconPresentation() {
64
+ return resolveTableIconPresentation(this.row, this.col, this.cellConfigs.icon, this.resolveValue);
65
+ }
66
+ titleIconPresentation() {
67
+ return resolveTableTitleIconPresentation(this.row, this.col, this.cellConfigs['icon-title'], this.resolveValue);
68
+ }
69
+ buttonKey() {
70
+ return resolveTableButtonKey(this.row, this.col, this.cellConfigs.button, this.resolveValue);
71
+ }
72
+ buttonAriaLabel() {
73
+ return this.cellConfigs.button.label
74
+ ?? this.cellConfigs.button.tooltip
75
+ ?? 'platform.datacore.accessibility.action_button';
76
+ }
77
+ actionsButtonLabel() {
78
+ return this.cellConfigs.actions.buttonLabel ?? 'platform.datacore.accessibility.actions_menu';
79
+ }
80
+ onActionsClick(event, trigger) {
81
+ event.stopPropagation();
82
+ this.toggleActionsMenu.emit({ event, trigger });
83
+ }
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableCellContentComponent, isStandalone: true, selector: "sdc-table-cell-content", inputs: { cellConfigs: "cellConfigs", col: "col", resolveValue: "resolveValue", row: "row", actionsMenuOpen: "actionsMenuOpen", defaultTextOverflow: "defaultTextOverflow", rowCheckboxId: "rowCheckboxId", rowLabel: "rowLabel", rowSelected: "rowSelected" }, outputs: { toggleActionsMenu: "toggleActionsMenu", toggleRow: "toggleRow", triggerButtonAction: "triggerButtonAction" }, host: { properties: { "class.sdc-table-cell-content--align-left": "resolvedAlignment === 'left'", "class.sdc-table-cell-content--align-center": "resolvedAlignment === 'center'", "class.sdc-table-cell-content--align-right": "resolvedAlignment === 'right'", "class.sdc-table-cell-content--nowrap": "col?.textOverflow === 'none'" } }, ngImport: i0, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "pipe", type: SdcTruncatePipe, name: "sdcTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableCellContentComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'sdc-table-cell-content', standalone: true, imports: [CommonModule, TranslateModule, ButtonComponent, IconRendererComponent, SdcTruncatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
90
+ '[class.sdc-table-cell-content--align-left]': "resolvedAlignment === 'left'",
91
+ '[class.sdc-table-cell-content--align-center]': "resolvedAlignment === 'center'",
92
+ '[class.sdc-table-cell-content--align-right]': "resolvedAlignment === 'right'",
93
+ '[class.sdc-table-cell-content--nowrap]': "col?.textOverflow === 'none'"
94
+ }, template: "<div class=\"sdc-table-content\">\n @if (col.content?.length) {\n <div class=\"sdc-table-multi-content\">\n @for (item of col.content!; track $index) {\n @switch (item.type ?? 'text') {\n @case ('strong') {\n <strong\n [ngStyle]=\"item.style\"\n [class]=\"item.class ?? ''\"\n >{{ cellTextValue(item.field) | translate }}</strong>\n }\n @case ('code') {\n <code [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) }}</code>\n }\n @default {\n <span [ngStyle]=\"item.style\" [class]=\"item.class ?? ''\">{{ cellTextValue(item.field) | translate }}</span>\n }\n }\n }\n </div>\n } @else {\n @switch (col.type ?? 'text') {\n @case ('checkbox-selection') {\n <div class=\"sdc-table-checkbox\">\n <input\n type=\"checkbox\"\n [id]=\"rowCheckboxId\"\n [checked]=\"rowSelected\"\n (change)=\"toggleRow.emit(getCheckedValue($event))\"\n [attr.aria-label]=\"\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n \"\n [attr.aria-checked]=\"rowSelected\"\n />\n <label [attr.for]=\"rowCheckboxId\" class=\"sr-only\">\n {{\n 'platform.datacore.accessibility.select_row'\n | translate: { name: (rowLabel | translate) }\n }}\n </label>\n </div>\n }\n\n @case ('date') {\n <span class=\"sdc-table-text\" [attr.title]=\"ellipsisTitleText(formatDate())\">{{ formatDate() }}</span>\n }\n\n @case ('strong') {\n <span class=\"sdc-table-strong-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n\n @case ('code') {\n <code class=\"sdc-table-code-label\"\n [attr.title]=\"ellipsisTitleText(cellTextValue())\">{{ displayText() }}</code>\n }\n\n @case ('currency') {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(formatCurrency())\">{{ formatCurrency() }}</span>\n }\n\n @case ('tag') {\n <div class=\"sdc-table-tags\">\n @for (tagItem of tagItems(); track tagItem.label + '-' + $index) {\n <span\n class=\"sdc-table-tag\"\n [class.sdc-table-tag--enabled]=\"tagItem.tone === 'enabled'\"\n [class.sdc-table-tag--disabled]=\"tagItem.tone === 'disabled'\"\n [ngStyle]=\"tagItem.styles\"\n [attr.title]=\"tagItem.tooltip ? (tagItem.tooltip | translate) : null\"\n >\n @if (tagItem.icon) {\n <sdc-icon-renderer\n class=\"sdc-table-tag__icon\"\n [icon]=\"tagItem.icon\"\n [iconType]=\"tagItem.iconType\"\n [size]=\"tagIconSize\"\n ></sdc-icon-renderer>\n }\n {{ tagItem.label | translate }}\n </span>\n }\n </div>\n }\n\n @case ('button') {\n <div class=\"sdc-table-button\">\n <sdc-button\n class=\"sdc-table-action-button\"\n [size]=\"cellConfigs.button.size ?? 'default'\"\n [priority]=\"cellConfigs.button.priority || 'primary'\"\n [icon]=\"cellConfigs.button.icon\"\n [label]=\"cellConfigs.button.label ?? ''\"\n [disabled]=\"cellConfigs.button.disabled ?? false\"\n [title]=\"cellConfigs.button.tooltip\"\n [attr.size]=\"cellConfigs.button.size\"\n [attr.priority]=\"cellConfigs.button.priority || 'primary'\"\n [attr.severity]=\"cellConfigs.button.priority || 'primary'\"\n [attr.icon]=\"cellConfigs.button.icon\"\n [attr.label]=\"cellConfigs.button.label\"\n [attr.disabled]=\"cellConfigs.button.disabled ? '' : null\"\n [attr.title]=\"cellConfigs.button.tooltip || null\"\n [attr.aria-label]=\"\n (buttonAriaLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.data-key]=\"buttonKey()\"\n (click)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.enter)=\"cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n (keydown.space)=\"$event.preventDefault(); cellConfigs.button.disabled ? null : triggerButtonAction.emit()\"\n ></sdc-button>\n </div>\n }\n\n @case ('actions') {\n <div\n class=\"sdc-table-actions\"\n [class.sdc-table-actions--open]=\"actionsMenuOpen\"\n >\n <button\n #actionsTrigger\n type=\"button\"\n class=\"sdc-table-actions-trigger\"\n [class.sdc-table-actions-trigger--open]=\"actionsMenuOpen\"\n [attr.aria-label]=\"\n (actionsButtonLabel() | translate)\n + ' - '\n + (rowLabel | translate)\n \"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"actionsMenuOpen\"\n (click)=\"onActionsClick($event, actionsTrigger)\"\n >\n <span class=\"sdc-table-actions-trigger__label\">\n {{ actionsButtonLabel() | translate }}\n </span>\n <i class=\"fas fa-chevron-down sdc-table-actions-trigger__icon\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @case ('icon') {\n @if (iconPresentation(); as iconItem) {\n <span\n class=\"sdc-table-icon\"\n [ngStyle]=\"iconItem.colorStyle\"\n [attr.title]=\"iconItem.tooltip ? (iconItem.tooltip | translate) : null\"\n [attr.aria-label]=\"\n (iconItem.label || iconItem.tooltip)\n ? ((iconItem.label || iconItem.tooltip)! | translate)\n : null\n \"\n >\n @if (iconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"iconItem.icon\"\n [iconType]=\"iconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (iconItem.label) {\n <span class=\"sdc-table-icon__label\">{{ iconItem.label | translate }}</span>\n }\n </span>\n }\n }\n\n @case ('icon-title') {\n @if (titleIconPresentation(); as titleIconItem) {\n <span\n class=\"sdc-table-icon-title\"\n [ngStyle]=\"titleIconItem.colorStyle\"\n [attr.title]=\"titleIconItem.tooltip ? (titleIconItem.tooltip | translate) : null\"\n >\n @if (titleIconItem.icon) {\n <sdc-icon-renderer\n [icon]=\"titleIconItem.icon\"\n [iconType]=\"titleIconItem.iconType\"\n [size]=\"iconSize\"\n ></sdc-icon-renderer>\n }\n @if (titleIconItem.label) {\n <span [attr.title]=\"ellipsisTitleText(titleIconItem.label | translate)\">\n {{ titleIconItem.label | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n </span>\n }\n }\n\n @default {\n <span class=\"sdc-table-text\"\n [attr.title]=\"ellipsisTitleText(cellTextValue() | translate)\">\n {{ cellTextValue() | translate | sdcTruncate:col:defaultTextOverflow }}\n </span>\n }\n }\n }\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sdc-table-content{display:flex;align-items:center;width:100%;min-width:0}:host(.sdc-table-cell-content--align-left) .sdc-table-content{justify-content:flex-start;text-align:left}:host(.sdc-table-cell-content--align-center) .sdc-table-content{justify-content:center;text-align:center}:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-end;text-align:right}.sdc-table-multi-content{display:flex;flex-direction:column;gap:.25rem;min-width:0;max-width:100%}.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span,.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-table-strong-label{font-weight:500}.sdc-table-code-label{color:var(--sdc-tab-primary)}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;max-width:100%}.sdc-table-tag{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:fit-content;min-width:fit-content;max-width:100%;border-radius:9999px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid currentColor;box-sizing:border-box;font-size:.875rem;padding:.35rem .875rem}.sdc-table-tag__icon{flex:0 0 auto}.sdc-table-tag--enabled{background:#dcfce7;color:#16a34a;border-color:#16a34a}.sdc-table-tag--disabled{background:#fee2e2;color:#ef4444;border-color:#ef4444}.sdc-table-button{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;min-width:0}.sdc-table-button ::ng-deep sdc-button,.sdc-table-button ::ng-deep button{min-height:unset;min-width:unset;max-width:100%}.sdc-table-action-button{width:100%;max-width:100%;min-width:0}.sdc-table-icon,.sdc-table-icon-title{display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%}.sdc-table-icon__label,.sdc-table-icon-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-checkbox input[type=checkbox]{cursor:pointer}.sdc-table-actions{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0}.sdc-table-actions-trigger{appearance:none;border:1px solid #c9ced6;background:#fff;border-radius:999px;min-width:4.875rem;height:2rem;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font:inherit;font-size:.8125rem;color:#374151;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.sdc-table-actions-trigger:hover{background:#f9fafb}.sdc-table-actions-trigger:focus-visible,.sdc-table-actions-trigger--open{outline:none;border-color:#9ca3af;box-shadow:0 0 0 2px #1118270a}.sdc-table-actions-trigger__label{line-height:1;white-space:nowrap}.sdc-table-actions-trigger__icon{font-size:.625rem;line-height:1;color:#6b7280}@media (max-width: 768px){.sdc-table-multi-content strong,.sdc-table-multi-content code,.sdc-table-multi-content span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.sdc-table-tag{font-size:.8125rem;padding:.35rem .75rem}.sdc-table-actions-trigger{min-width:4.375rem;height:1.75rem;padding:0 .625rem;font-size:.75rem}.sdc-table-text,.sdc-table-strong-label,.sdc-table-code-label,.sdc-table-icon__label,.sdc-table-icon-title span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}:host(.sdc-table-cell-content--align-center) .sdc-table-content,:host(.sdc-table-cell-content--align-right) .sdc-table-content{justify-content:flex-start;text-align:left}}\n"] }]
95
+ }], propDecorators: { cellConfigs: [{
96
+ type: Input,
97
+ args: [{ required: true }]
98
+ }], col: [{
99
+ type: Input,
100
+ args: [{ required: true }]
101
+ }], resolveValue: [{
102
+ type: Input,
103
+ args: [{ required: true }]
104
+ }], row: [{
105
+ type: Input,
106
+ args: [{ required: true }]
107
+ }], actionsMenuOpen: [{
108
+ type: Input
109
+ }], defaultTextOverflow: [{
110
+ type: Input
111
+ }], rowCheckboxId: [{
112
+ type: Input
113
+ }], rowLabel: [{
114
+ type: Input
115
+ }], rowSelected: [{
116
+ type: Input
117
+ }], toggleActionsMenu: [{
118
+ type: Output
119
+ }], toggleRow: [{
120
+ type: Output
121
+ }], triggerButtonAction: [{
122
+ type: Output
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNlbGwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IscUNBQXFDLEVBQ3RDLE1BQU0scUNBQXFDLENBQUM7QUFPN0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2pCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsb0JBQW9CLEVBQ3BCLGlDQUFpQyxFQUNsQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7QUFnQnZHLE1BQU0sT0FBTyx5QkFBeUI7SUFDVCxXQUFXLENBQXlCO0lBQ3BDLEdB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QUFlLDRGQUFFLGVBQWUsOFNBQUUscUJBQXFCLCtGQUFFLGVBQWU7OzRGQVdyRix5QkFBeUI7a0JBZHJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxtQkFHaEYsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSiw0Q0FBNEMsRUFBRSw4QkFBOEI7d0JBQzVFLDhDQUE4QyxFQUFFLGdDQUFnQzt3QkFDaEYsNkNBQTZDLEVBQUUsK0JBQStCO3dCQUM5RSx3Q0FBd0MsRUFBRSw4QkFBOEI7cUJBQ3pFOzhCQUcwQixXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxZQUFZO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRBQkxFX0lDT05fUkVOREVSX1NJWkVfUFgsXG4gIFRBQkxFX1RBR19JQ09OX1JFTkRFUl9TSVpFX1BYLFxuICBUQUJMRV9URVhUX09WRVJGTE9XX0RFRkFVTFRfTUFYX0NIQVJTXG59IGZyb20gJy4uLy4uLy4uL2NvcmUvY29uc3RhbnRzL3RhYmxlLmNvbnN0JztcbmltcG9ydCB0eXBlIHtcbiAgUm93QmFzZSxcbiAgVGFibGVDZWxsQ29uZmlnTWFwLFxuICBUYWJsZUNvbHVtblxufSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3RhYmxlLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBUYWJsZVRleHRPdmVyZmxvdyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvdGFibGUtY29sdW1uLnR5cGUnO1xuaW1wb3J0IHsgbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQgfSBmcm9tICcuLi91dGlscy90YWJsZS1sYXlvdXQudXRpbCc7XG5pbXBvcnQge1xuICBmb3JtYXRUYWJsZUN1cnJlbmN5LFxuICBmb3JtYXRUYWJsZURhdGUsXG4gIHRvVGFibGVUZXh0VmFsdWVcbn0gZnJvbSAnLi4vdXRpbHMvdGFibGUtZGF0YS51dGlsJztcbmltcG9ydCB7XG4gIHJlc29sdmVUYWJsZUJ1dHRvbktleSxcbiAgcmVzb2x2ZVRhYmxlSWNvblByZXNlbnRhdGlvbixcbiAgcmVzb2x2ZVRhYmxlVGFnSXRlbXMsXG4gIHJlc29sdmVUYWJsZVRpdGxlSWNvblByZXNlbnRhdGlvblxufSBmcm9tICcuLi91dGlscy90YWJsZS12aXN1YWwudXRpbCc7XG5pbXBvcnQgeyBTZGNUcnVuY2F0ZVBpcGUgfSBmcm9tICcuLi91dGlscy90YWJsZS10cnVuY2F0ZS5waXBlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy9pY29uLXJlbmRlcmVyL2ljb24tcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXRhYmxlLWNlbGwtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBJY29uUmVuZGVyZXJDb21wb25lbnQsIFNkY1RydW5jYXRlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jZWxsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtY2VsbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLWFsaWduLWxlZnRdJzogXCJyZXNvbHZlZEFsaWdubWVudCA9PT0gJ2xlZnQnXCIsXG4gICAgJ1tjbGFzcy5zZGMtdGFibGUtY2VsbC1jb250ZW50LS1hbGlnbi1jZW50ZXJdJzogXCJyZXNvbHZlZEFsaWdubWVudCA9PT0gJ2NlbnRlcidcIixcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLWFsaWduLXJpZ2h0XSc6IFwicmVzb2x2ZWRBbGlnbm1lbnQgPT09ICdyaWdodCdcIixcbiAgICAnW2NsYXNzLnNkYy10YWJsZS1jZWxsLWNvbnRlbnQtLW5vd3JhcF0nOiBcImNvbD8udGV4dE92ZXJmbG93ID09PSAnbm9uZSdcIlxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbENvbnRlbnRDb21wb25lbnQ8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPiB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNlbGxDb25maWdzITogVGFibGVDZWxsQ29uZmlnTWFwPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2whOiBUYWJsZUNvbHVtbjxUPjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcmVzb2x2ZVZhbHVlITogKHJvdzogVCwgZmllbGQ/OiBzdHJpbmcpID0+IHVua25vd247XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHJvdyE6IFQ7XG5cbiAgQElucHV0KCkgYWN0aW9uc01lbnVPcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXh0T3ZlcmZsb3c/OiBUYWJsZVRleHRPdmVyZmxvdztcbiAgQElucHV0KCkgcm93Q2hlY2tib3hJZCA9ICcnO1xuICBASW5wdXQoKSByb3dMYWJlbCA9ICdpdGVtJztcbiAgQElucHV0KCkgcm93U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgdG9nZ2xlQWN0aW9uc01lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IEV2ZW50OyB0cmlnZ2VyOiBIVE1MRWxlbWVudCB9PigpO1xuICBAT3V0cHV0KCkgdG9nZ2xlUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgdHJpZ2dlckJ1dHRvbkFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvblNpemUgPSBUQUJMRV9JQ09OX1JFTkRFUl9TSVpFX1BYO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFnSWNvblNpemUgPSBUQUJMRV9UQUdfSUNPTl9SRU5ERVJfU0laRV9QWDtcblxuICBnZXQgcmVzb2x2ZWRBbGlnbm1lbnQoKTogUmV0dXJuVHlwZTx0eXBlb2Ygbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQ+IHtcbiAgICByZXR1cm4gbm9ybWFsaXplVGFibGVDb2x1bW5BbGlnbm1lbnQodGhpcy5jb2w/LmFsaWduKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsVGV4dFZhbHVlKGZpZWxkID0gdGhpcy5jb2w/LmZpZWxkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdG9UYWJsZVRleHRWYWx1ZSh0aGlzLnJlc29sdmVWYWx1ZSh0aGlzLnJvdywgZmllbGQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNwbGF5VGV4dChmaWVsZCA9IHRoaXMuY29sPy5maWVsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuY2VsbFRleHRWYWx1ZShmaWVsZCk7XG4gICAgY29uc3QgbW9kZTogVGFibGVUZXh0T3ZlcmZsb3cgPSB0aGlzLmNvbD8udGV4dE92ZXJmbG93ID8/IHRoaXMuZGVmYXVsdFRleHRPdmVyZmxvdyA/PyAnYnJlYWstbGluZSc7XG4gICAgaWYgKG1vZGUgIT09ICdlbGxpcHNpcycpIHsgcmV0dXJuIHRleHQ7IH1cbiAgICBjb25zdCBtYXggPSB0aGlzLmNvbD8ubWF4Q2hhcnMgPz8gVEFCTEVfVEVYVF9PVkVSRkxPV19ERUZBVUxUX01BWF9DSEFSUztcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiBtYXggPyB0ZXh0LnNsaWNlKDAsIG1heCkudHJpbUVuZCgpICsgJ+KApicgOiB0ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRWxsaXBzaXNNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5jb2w/LnRleHRPdmVyZmxvdyA/PyB0aGlzLmRlZmF1bHRUZXh0T3ZlcmZsb3cgPz8gJ2JyZWFrLWxpbmUnKSA9PT0gJ2VsbGlwc2lzJztcbiAgfVxuXG4gIHByb3RlY3RlZCBlbGxpcHNpc1RpdGxlVGV4dChkaXNwbGF5VGV4dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5jb2w/Lm1heENoYXJzID8/IFRBQkxFX1RFWFRfT1ZFUkZMT1dfREVGQVVMVF9NQVhfQ0hBUlM7XG4gICAgcmV0dXJuIHRoaXMuaXNFbGxpcHNpc01vZGUoKSAmJiBkaXNwbGF5VGV4dC5sZW5ndGggPiBtYXggPyBkaXNwbGF5VGV4dCA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZURhdGUodGhpcy5yZXNvbHZlVmFsdWUodGhpcy5yb3csIHRoaXMuY29sPy5maWVsZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZvcm1hdEN1cnJlbmN5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdFRhYmxlQ3VycmVuY3kodGhpcy5yZXNvbHZlVmFsdWUodGhpcy5yb3csIHRoaXMuY29sPy5maWVsZCksIHRoaXMuY29sPy5mb3JtYXQgPz8gJ0JSTCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENoZWNrZWRWYWx1ZShldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRhZ0l0ZW1zKCkge1xuICAgIHJldHVybiByZXNvbHZlVGFibGVUYWdJdGVtcyh0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MudGFnLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaWNvblByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRhYmxlSWNvblByZXNlbnRhdGlvbih0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MuaWNvbiwgdGhpcy5yZXNvbHZlVmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRpdGxlSWNvblByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRhYmxlVGl0bGVJY29uUHJlc2VudGF0aW9uKHRoaXMucm93LCB0aGlzLmNvbCwgdGhpcy5jZWxsQ29uZmlnc1snaWNvbi10aXRsZSddLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUYWJsZUJ1dHRvbktleSh0aGlzLnJvdywgdGhpcy5jb2wsIHRoaXMuY2VsbENvbmZpZ3MuYnV0dG9uLCB0aGlzLnJlc29sdmVWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbENvbmZpZ3MuYnV0dG9uLmxhYmVsXG4gICAgICA/PyB0aGlzLmNlbGxDb25maWdzLmJ1dHRvbi50b29sdGlwXG4gICAgICA/PyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5hY3Rpb25fYnV0dG9uJztcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25zQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jZWxsQ29uZmlncy5hY3Rpb25zLmJ1dHRvbkxhYmVsID8/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmFjdGlvbnNfbWVudSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BY3Rpb25zQ2xpY2soZXZlbnQ6IEV2ZW50LCB0cmlnZ2VyOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudG9nZ2xlQWN0aW9uc01lbnUuZW1pdCh7IGV2ZW50LCB0cmlnZ2VyIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLWNvbnRlbnRcIj5cbiAgQGlmIChjb2wuY29udGVudD8ubGVuZ3RoKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1tdWx0aS1jb250ZW50XCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGNvbC5jb250ZW50ITsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBzd2l0Y2ggKGl0ZW0udHlwZSA/PyAndGV4dCcpIHtcbiAgICAgICAgICBAY2FzZSAoJ3N0cm9uZycpIHtcbiAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiaXRlbS5zdHlsZVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzID8/ICcnXCJcbiAgICAgICAgICAgID57eyBjZWxsVGV4dFZhbHVlKGl0ZW0uZmllbGQpIHwgdHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnY29kZScpIHtcbiAgICAgICAgICAgIDxjb2RlIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIiBbY2xhc3NdPVwiaXRlbS5jbGFzcyA/PyAnJ1wiPnt7IGNlbGxUZXh0VmFsdWUoaXRlbS5maWVsZCkgfX08L2NvZGU+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIiBbY2xhc3NdPVwiaXRlbS5jbGFzcyA/PyAnJ1wiPnt7IGNlbGxUZXh0VmFsdWUoaXRlbS5maWVsZCkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIEBzd2l0Y2ggKGNvbC50eXBlID8/ICd0ZXh0Jykge1xuICAgIEBjYXNlICgnY2hlY2tib3gtc2VsZWN0aW9uJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1jaGVja2JveFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFtpZF09XCJyb3dDaGVja2JveElkXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJyb3dTZWxlY3RlZFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVSb3cuZW1pdChnZXRDaGVja2VkVmFsdWUoJGV2ZW50KSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3Rfcm93J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiAocm93TGFiZWwgfCB0cmFuc2xhdGUpIH1cbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJyb3dTZWxlY3RlZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicm93Q2hlY2tib3hJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3Rfcm93J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBuYW1lOiAocm93TGFiZWwgfCB0cmFuc2xhdGUpIH1cbiAgICAgICAgICB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdkYXRlJykge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFibGUtdGV4dFwiIFthdHRyLnRpdGxlXT1cImVsbGlwc2lzVGl0bGVUZXh0KGZvcm1hdERhdGUoKSlcIj57eyBmb3JtYXREYXRlKCkgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdzdHJvbmcnKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS1zdHJvbmctbGFiZWxcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJlbGxpcHNpc1RpdGxlVGV4dChjZWxsVGV4dFZhbHVlKCkgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgIHt7IGNlbGxUZXh0VmFsdWUoKSB8IHRyYW5zbGF0ZSB8IHNkY1RydW5jYXRlOmNvbDpkZWZhdWx0VGV4dE92ZXJmbG93IH19XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdjb2RlJykge1xuICAgICAgPGNvZGUgY2xhc3M9XCJzZGMtdGFibGUtY29kZS1sYWJlbFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImVsbGlwc2lzVGl0bGVUZXh0KGNlbGxUZXh0VmFsdWUoKSlcIj57eyBkaXNwbGF5VGV4dCgpIH19PC9jb2RlPlxuICAgIH1cblxuICAgIEBjYXNlICgnY3VycmVuY3knKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZWxsaXBzaXNUaXRsZVRleHQoZm9ybWF0Q3VycmVuY3koKSlcIj57eyBmb3JtYXRDdXJyZW5jeSgpIH19PC9zcGFuPlxuICAgIH1cblxuICAgIEBjYXNlICgndGFnJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10YWdzXCI+XG4gICAgICAgIEBmb3IgKHRhZ0l0ZW0gb2YgdGFnSXRlbXMoKTsgdHJhY2sgdGFnSXRlbS5sYWJlbCArICctJyArICRpbmRleCkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS10YWdcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10YWctLWVuYWJsZWRdPVwidGFnSXRlbS50b25lID09PSAnZW5hYmxlZCdcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10YWctLWRpc2FibGVkXT1cInRhZ0l0ZW0udG9uZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ0YWdJdGVtLnN0eWxlc1wiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJ0YWdJdGVtLnRvb2x0aXAgPyAodGFnSXRlbS50b29sdGlwIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAodGFnSXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLXRhZ19faWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidGFnSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvblR5cGVdPVwidGFnSXRlbS5pY29uVHlwZVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwidGFnSWNvblNpemVcIlxuICAgICAgICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IHRhZ0l0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBjYXNlICgnYnV0dG9uJykge1xuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1idXR0b25cIj5cbiAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbc2l6ZV09XCJjZWxsQ29uZmlncy5idXR0b24uc2l6ZSA/PyAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtwcmlvcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbaWNvbl09XCJjZWxsQ29uZmlncy5idXR0b24uaWNvblwiXG4gICAgICAgICAgW2xhYmVsXT1cImNlbGxDb25maWdzLmJ1dHRvbi5sYWJlbCA/PyAnJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNlbGxDb25maWdzLmJ1dHRvbi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgW3RpdGxlXT1cImNlbGxDb25maWdzLmJ1dHRvbi50b29sdGlwXCJcbiAgICAgICAgICBbYXR0ci5zaXplXT1cImNlbGxDb25maWdzLmJ1dHRvbi5zaXplXCJcbiAgICAgICAgICBbYXR0ci5wcmlvcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbYXR0ci5zZXZlcml0eV09XCJjZWxsQ29uZmlncy5idXR0b24ucHJpb3JpdHkgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbYXR0ci5pY29uXT1cImNlbGxDb25maWdzLmJ1dHRvbi5pY29uXCJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJjZWxsQ29uZmlncy5idXR0b24ubGFiZWxcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImNlbGxDb25maWdzLmJ1dHRvbi5kaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiY2VsbENvbmZpZ3MuYnV0dG9uLnRvb2x0aXAgfHwgbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChidXR0b25BcmlhTGFiZWwoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnIC0gJ1xuICAgICAgICAgICAgICArIChyb3dMYWJlbCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmRhdGEta2V5XT1cImJ1dHRvbktleSgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2VsbENvbmZpZ3MuYnV0dG9uLmRpc2FibGVkID8gbnVsbCA6IHRyaWdnZXJCdXR0b25BY3Rpb24uZW1pdCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjZWxsQ29uZmlncy5idXR0b24uZGlzYWJsZWQgPyBudWxsIDogdHJpZ2dlckJ1dHRvbkFjdGlvbi5lbWl0KClcIlxuICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBjZWxsQ29uZmlncy5idXR0b24uZGlzYWJsZWQgPyBudWxsIDogdHJpZ2dlckJ1dHRvbkFjdGlvbi5lbWl0KClcIlxuICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdhY3Rpb25zJykge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb25zXCJcbiAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1hY3Rpb25zLS1vcGVuXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAjYWN0aW9uc1RyaWdnZXJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS1hY3Rpb25zLXRyaWdnZXJcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtdGFibGUtYWN0aW9ucy10cmlnZ2VyLS1vcGVuXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChhY3Rpb25zQnV0dG9uTGFiZWwoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnIC0gJ1xuICAgICAgICAgICAgICArIChyb3dMYWJlbCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ21lbnUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFjdGlvbnNNZW51T3BlblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uc0NsaWNrKCRldmVudCwgYWN0aW9uc1RyaWdnZXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLWFjdGlvbnMtdHJpZ2dlcl9fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGFjdGlvbnNCdXR0b25MYWJlbCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBzZGMtdGFibGUtYWN0aW9ucy10cmlnZ2VyX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBjYXNlICgnaWNvbicpIHtcbiAgICAgIEBpZiAoaWNvblByZXNlbnRhdGlvbigpOyBhcyBpY29uSXRlbSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLWljb25cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImljb25JdGVtLmNvbG9yU3R5bGVcIlxuICAgICAgICAgIFthdHRyLnRpdGxlXT1cImljb25JdGVtLnRvb2x0aXAgPyAoaWNvbkl0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgKGljb25JdGVtLmxhYmVsIHx8IGljb25JdGVtLnRvb2x0aXApXG4gICAgICAgICAgICAgID8gKChpY29uSXRlbS5sYWJlbCB8fCBpY29uSXRlbS50b29sdGlwKSEgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGljb25JdGVtLmljb24pIHtcbiAgICAgICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgICAgICBbaWNvbl09XCJpY29uSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25UeXBlXT1cImljb25JdGVtLmljb25UeXBlXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgPjwvc2RjLWljb24tcmVuZGVyZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaWNvbkl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLWljb25fX2xhYmVsXCI+e3sgaWNvbkl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGNhc2UgKCdpY29uLXRpdGxlJykge1xuICAgICAgQGlmICh0aXRsZUljb25QcmVzZW50YXRpb24oKTsgYXMgdGl0bGVJY29uSXRlbSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLWljb24tdGl0bGVcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInRpdGxlSWNvbkl0ZW0uY29sb3JTdHlsZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwidGl0bGVJY29uSXRlbS50b29sdGlwID8gKHRpdGxlSWNvbkl0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodGl0bGVJY29uSXRlbS5pY29uKSB7XG4gICAgICAgICAgICA8c2RjLWljb24tcmVuZGVyZXJcbiAgICAgICAgICAgICAgW2ljb25dPVwidGl0bGVJY29uSXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25UeXBlXT1cInRpdGxlSWNvbkl0ZW0uaWNvblR5cGVcIlxuICAgICAgICAgICAgICBbc2l6ZV09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmICh0aXRsZUljb25JdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICA8c3BhbiBbYXR0ci50aXRsZV09XCJlbGxpcHNpc1RpdGxlVGV4dCh0aXRsZUljb25JdGVtLmxhYmVsIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICB7eyB0aXRsZUljb25JdGVtLmxhYmVsIHwgdHJhbnNsYXRlIHwgc2RjVHJ1bmNhdGU6Y29sOmRlZmF1bHRUZXh0T3ZlcmZsb3cgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZGVmYXVsdCB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZWxsaXBzaXNUaXRsZVRleHQoY2VsbFRleHRWYWx1ZSgpIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICB7eyBjZWxsVGV4dFZhbHVlKCkgfCB0cmFuc2xhdGUgfCBzZGNUcnVuY2F0ZTpjb2w6ZGVmYXVsdFRleHRPdmVyZmxvdyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,65 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class TableSortIndicatorComponent {
5
+ columnField = null;
6
+ columnType;
7
+ sortField = null;
8
+ sortOrder = 0;
9
+ sortable = true;
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableSortIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableSortIndicatorComponent, isStandalone: true, selector: "sdc-table-sort-indicator", inputs: { columnField: "columnField", columnType: "columnType", sortField: "sortField", sortOrder: "sortOrder", sortable: "sortable" }, ngImport: i0, template: `
12
+ @if (sortable && columnType !== 'checkbox-selection' && columnField) {
13
+ <span class="sdc-table-sort-indicator" aria-hidden="true">
14
+ @if (sortField !== columnField) {
15
+ <i class="fas fa-sort-alt sdc-table-sort-neutral" aria-hidden="true"></i>
16
+ }
17
+ @if (sortField === columnField && sortOrder === 1) {
18
+ <i class="fas fa-sort-amount-up-alt sdc-table-sort-active" aria-hidden="true"></i>
19
+ }
20
+ @if (sortField === columnField && sortOrder === -1) {
21
+ <i class="fas fa-sort-amount-down sdc-table-sort-active" aria-hidden="true"></i>
22
+ }
23
+ </span>
24
+ } @else {
25
+ <span
26
+ class="sdc-table-sort-indicator sdc-table-sort-indicator-placeholder"
27
+ aria-hidden="true"
28
+ ></span>
29
+ }
30
+ `, isInline: true, styles: [".sdc-table-sort-indicator{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:1.7rem;flex:0 0 auto}.sdc-table-sort-indicator i{width:.75rem;text-align:center;font-size:inherit;transition:color var(--sdc-table-transition-fast),transform var(--sdc-table-transition-fast),opacity var(--sdc-table-transition-fast)}.sdc-table-sort-indicator-placeholder{width:1.4rem;height:1rem;display:inline-block}.sdc-table-sort-neutral{color:var(--sdc-table-sort-neutral)}.sdc-table-sort-active{color:var(--sdc-table-sort-active)}@media (max-width: 768px){.sdc-table-sort-indicator{gap:.15rem;min-width:1.2rem}.sdc-table-sort-indicator i{width:.65rem;font-size:.75rem}.sdc-table-sort-indicator-placeholder{display:none!important;width:0!important;height:0!important;min-width:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableSortIndicatorComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'sdc-table-sort-indicator', standalone: true, imports: [CommonModule], template: `
35
+ @if (sortable && columnType !== 'checkbox-selection' && columnField) {
36
+ <span class="sdc-table-sort-indicator" aria-hidden="true">
37
+ @if (sortField !== columnField) {
38
+ <i class="fas fa-sort-alt sdc-table-sort-neutral" aria-hidden="true"></i>
39
+ }
40
+ @if (sortField === columnField && sortOrder === 1) {
41
+ <i class="fas fa-sort-amount-up-alt sdc-table-sort-active" aria-hidden="true"></i>
42
+ }
43
+ @if (sortField === columnField && sortOrder === -1) {
44
+ <i class="fas fa-sort-amount-down sdc-table-sort-active" aria-hidden="true"></i>
45
+ }
46
+ </span>
47
+ } @else {
48
+ <span
49
+ class="sdc-table-sort-indicator sdc-table-sort-indicator-placeholder"
50
+ aria-hidden="true"
51
+ ></span>
52
+ }
53
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".sdc-table-sort-indicator{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:1.7rem;flex:0 0 auto}.sdc-table-sort-indicator i{width:.75rem;text-align:center;font-size:inherit;transition:color var(--sdc-table-transition-fast),transform var(--sdc-table-transition-fast),opacity var(--sdc-table-transition-fast)}.sdc-table-sort-indicator-placeholder{width:1.4rem;height:1rem;display:inline-block}.sdc-table-sort-neutral{color:var(--sdc-table-sort-neutral)}.sdc-table-sort-active{color:var(--sdc-table-sort-active)}@media (max-width: 768px){.sdc-table-sort-indicator{gap:.15rem;min-width:1.2rem}.sdc-table-sort-indicator i{width:.65rem;font-size:.75rem}.sdc-table-sort-indicator-placeholder{display:none!important;width:0!important;height:0!important;min-width:0!important}}\n"] }]
54
+ }], propDecorators: { columnField: [{
55
+ type: Input
56
+ }], columnType: [{
57
+ type: Input
58
+ }], sortField: [{
59
+ type: Input
60
+ }], sortOrder: [{
61
+ type: Input
62
+ }], sortable: [{
63
+ type: Input
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc29ydC1pbmRpY2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS9jb21wb25lbnRzL3RhYmxlLXNvcnQtaW5kaWNhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZ0YxRSxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBQ2xDLFVBQVUsQ0FBOEI7SUFDeEMsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDaEMsU0FBUyxHQUFjLENBQUMsQ0FBQztJQUN6QixRQUFRLEdBQUcsSUFBSSxDQUFDO3dHQUxkLDJCQUEyQjs0RkFBM0IsMkJBQTJCLDROQXhFNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQsNjJCQXBCUyxZQUFZOzs0RkF5RVgsMkJBQTJCO2tCQTVFdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQsbUJBbURnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBTb3J0T3JkZXIsIFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvdGFibGUudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy10YWJsZS1zb3J0LWluZGljYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc29ydGFibGUgJiYgY29sdW1uVHlwZSAhPT0gJ2NoZWNrYm94LXNlbGVjdGlvbicgJiYgY29sdW1uRmllbGQpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLXNvcnQtaW5kaWNhdG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIEBpZiAoc29ydEZpZWxkICE9PSBjb2x1bW5GaWVsZCkge1xuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNvcnQtYWx0IHNkYy10YWJsZS1zb3J0LW5ldXRyYWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzb3J0RmllbGQgPT09IGNvbHVtbkZpZWxkICYmIHNvcnRPcmRlciA9PT0gMSkge1xuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNvcnQtYW1vdW50LXVwLWFsdCBzZGMtdGFibGUtc29ydC1hY3RpdmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzb3J0RmllbGQgPT09IGNvbHVtbkZpZWxkICYmIHNvcnRPcmRlciA9PT0gLTEpIHtcbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1zb3J0LWFtb3VudC1kb3duIHNkYy10YWJsZS1zb3J0LWFjdGl2ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgfVxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJzZGMtdGFibGUtc29ydC1pbmRpY2F0b3Igc2RjLXRhYmxlLXNvcnQtaW5kaWNhdG9yLXBsYWNlaG9sZGVyXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L3NwYW4+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLnNkYy10YWJsZS1zb3J0LWluZGljYXRvciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgIG1pbi13aWR0aDogMS43cmVtO1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLnNkYy10YWJsZS1zb3J0LWluZGljYXRvciBpIHtcbiAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tc2RjLXRhYmxlLXRyYW5zaXRpb24tZmFzdCksIHRyYW5zZm9ybSB2YXIoLS1zZGMtdGFibGUtdHJhbnNpdGlvbi1mYXN0KSwgb3BhY2l0eSB2YXIoLS1zZGMtdGFibGUtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICB9XG5cbiAgICAuc2RjLXRhYmxlLXNvcnQtaW5kaWNhdG9yLXBsYWNlaG9sZGVyIHtcbiAgICAgIHdpZHRoOiAxLjRyZW07XG4gICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLnNkYy10YWJsZS1zb3J0LW5ldXRyYWwge1xuICAgICAgY29sb3I6IHZhcigtLXNkYy10YWJsZS1zb3J0LW5ldXRyYWwpO1xuICAgIH1cblxuICAgIC5zZGMtdGFibGUtc29ydC1hY3RpdmUge1xuICAgICAgY29sb3I6IHZhcigtLXNkYy10YWJsZS1zb3J0LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAuc2RjLXRhYmxlLXNvcnQtaW5kaWNhdG9yIHtcbiAgICAgICAgZ2FwOiAwLjE1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDEuMnJlbTtcbiAgICAgIH1cblxuICAgICAgLnNkYy10YWJsZS1zb3J0LWluZGljYXRvciBpIHtcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLnNkYy10YWJsZS1zb3J0LWluZGljYXRvci1wbGFjZWhvbGRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgYF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlU29ydEluZGljYXRvckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbHVtbkZpZWxkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzb3J0RmllbGQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzb3J0T3JkZXI6IFNvcnRPcmRlciA9IDA7XG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcbn1cbiJdfQ==