@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.
- package/core/constants/chips.const.d.ts +1 -0
- package/core/constants/combobox.const.d.ts +1 -1
- package/core/constants/fileupload.const.d.ts +9 -0
- package/core/constants/icon-picker.const.d.ts +1 -0
- package/core/constants/picklist.const.d.ts +1 -0
- package/core/constants/table.const.d.ts +43 -0
- package/core/types/button.type.d.ts +18 -2
- package/core/types/fileupload.type.d.ts +17 -0
- package/core/types/filters.type.d.ts +4 -0
- package/core/types/table-column.type.d.ts +31 -0
- package/core/types/table-options.type.d.ts +90 -0
- package/core/types/table-shared.type.d.ts +13 -0
- package/core/types/table-visual.type.d.ts +23 -0
- package/core/types/table.type.d.ts +4 -113
- package/core/utils/layout.util.d.ts +4 -0
- package/esm2022/core/constants/chips.const.mjs +2 -1
- package/esm2022/core/constants/combobox.const.mjs +2 -2
- package/esm2022/core/constants/fileupload.const.mjs +10 -0
- package/esm2022/core/constants/icon-picker.const.mjs +76 -1
- package/esm2022/core/constants/picklist.const.mjs +2 -1
- package/esm2022/core/constants/table.const.mjs +53 -6
- package/esm2022/core/types/button.type.mjs +1 -1
- package/esm2022/core/types/fileupload.type.mjs +2 -0
- package/esm2022/core/types/filters.type.mjs +1 -1
- package/esm2022/core/types/table-column.type.mjs +2 -0
- package/esm2022/core/types/table-options.type.mjs +2 -0
- package/esm2022/core/types/table-shared.type.mjs +2 -0
- package/esm2022/core/types/table-visual.type.mjs +2 -0
- package/esm2022/core/types/table.type.mjs +1 -1
- package/esm2022/core/utils/combobox.util.mjs +2 -2
- package/esm2022/core/utils/layout.util.mjs +21 -5
- package/esm2022/features/accordion/accordion-item.component.mjs +1 -1
- package/esm2022/features/badge/badge.component.mjs +1 -1
- package/esm2022/features/button/button.component.mjs +76 -11
- package/esm2022/features/button/components/button-menu.component.mjs +81 -0
- package/esm2022/features/card-list/card/card.component.mjs +3 -3
- package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/features/chips/chips.component.mjs +8 -5
- package/esm2022/features/color-picker/color-picker.component.mjs +1 -1
- package/esm2022/features/combobox/combobox.component.mjs +17 -4
- package/esm2022/features/fileupload/fileupload.component.mjs +311 -0
- package/esm2022/features/filters/filters.component.mjs +3 -3
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +34 -7
- package/esm2022/features/info-sign/info-sign.component.mjs +1 -1
- package/esm2022/features/mask/mask.component.mjs +1 -1
- package/esm2022/features/modal/modal.component.mjs +1 -1
- package/esm2022/features/number-input/number-input.component.mjs +1 -1
- package/esm2022/features/paginator/paginator.component.mjs +3 -3
- package/esm2022/features/picklist/picklist.component.mjs +33 -6
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +3 -3
- package/esm2022/features/stats-card/stats-card.component.mjs +1 -1
- package/esm2022/features/switch/switch.component.mjs +3 -2
- package/esm2022/features/table/components/table-actions-menu.component.mjs +86 -0
- package/esm2022/features/table/components/table-cell-content.component.mjs +124 -0
- package/esm2022/features/table/components/table-sort-indicator.component.mjs +65 -0
- package/esm2022/features/table/table.component.mjs +116 -319
- package/esm2022/features/table/utils/table-config.util.mjs +35 -0
- package/esm2022/features/table/utils/table-data.util.mjs +96 -0
- package/esm2022/features/table/utils/table-layout.util.mjs +25 -0
- package/esm2022/features/table/utils/table-truncate.pipe.mjs +19 -0
- package/esm2022/features/table/utils/table-visual.util.mjs +221 -0
- package/esm2022/features/textarea/textarea.component.mjs +1 -1
- package/esm2022/features/textbox/textbox.component.mjs +1 -1
- package/esm2022/features/tooltip/tooltip.component.mjs +12 -3
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +194 -0
- package/esm2022/locales/es-CO.json +187 -1
- package/esm2022/locales/pt.json +194 -0
- package/esm2022/providers/features.provider.mjs +3 -1
- package/esm2022/public-api.mjs +3 -1
- package/features/button/button.component.d.ts +14 -7
- package/features/button/components/button-menu.component.d.ts +25 -0
- package/features/chips/chips.component.d.ts +1 -0
- package/features/combobox/combobox.component.d.ts +4 -1
- package/features/fileupload/fileupload.component.d.ts +66 -0
- package/features/icon-picker/icon-picker.component.d.ts +3 -0
- package/features/modal/modal.component.d.ts +1 -1
- package/features/picklist/picklist.component.d.ts +6 -1
- package/features/table/components/table-actions-menu.component.d.ts +12 -0
- package/features/table/components/table-cell-content.component.d.ts +41 -0
- package/features/table/components/table-sort-indicator.component.d.ts +11 -0
- package/features/table/table.component.d.ts +28 -44
- package/features/table/utils/table-config.util.d.ts +3 -0
- package/features/table/utils/table-data.util.d.ts +10 -0
- package/features/table/utils/table-layout.util.d.ts +4 -0
- package/features/table/utils/table-truncate.pipe.d.ts +12 -0
- package/features/table/utils/table-visual.util.d.ts +21 -0
- package/features/tooltip/tooltip.component.d.ts +3 -1
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +3525 -1848
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -2
- package/src/locales/en.json +194 -0
- package/src/locales/es-CO.json +187 -1
- 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==
|