@k2b/ui 0.48.0 → 0.50.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/dist/base.css +40 -2
- package/dist/browser/actions/ContextMenu.js +3 -0
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/CopyButton.js +26 -18
- package/dist/browser/actions/CopyButton.js.map +1 -1
- package/dist/browser/charts/core/area.js +190 -0
- package/dist/browser/charts/core/area.js.map +1 -0
- package/dist/browser/charts/core/calendar.js +186 -0
- package/dist/browser/charts/core/calendar.js.map +1 -0
- package/dist/browser/charts/core/chart-map-data.js +9 -0
- package/dist/browser/charts/core/chart-map-data.js.map +1 -0
- package/dist/browser/charts/core/index.js +12 -0
- package/dist/browser/charts/core/index.js.map +1 -0
- package/dist/browser/charts/core/inspection.js +9 -0
- package/dist/browser/charts/core/inspection.js.map +1 -0
- package/dist/browser/charts/core/registry.js +28 -0
- package/dist/browser/charts/core/registry.js.map +1 -0
- package/dist/browser/charts/core/render.js +103 -0
- package/dist/browser/charts/core/render.js.map +1 -0
- package/dist/browser/charts/core/snapshot.js +65 -0
- package/dist/browser/charts/core/snapshot.js.map +1 -0
- package/dist/browser/charts/core/svg.js +2542 -0
- package/dist/browser/charts/core/svg.js.map +1 -0
- package/dist/browser/charts/core/termination.test-fixture.js +162 -0
- package/dist/browser/charts/core/termination.test-fixture.js.map +1 -0
- package/dist/browser/charts/core/text.js +13 -0
- package/dist/browser/charts/core/text.js.map +1 -0
- package/dist/browser/charts/core/types.js +8 -0
- package/dist/browser/charts/core/types.js.map +1 -0
- package/dist/browser/charts.js +4 -2
- package/dist/browser/charts.js.map +1 -1
- package/dist/browser/content/BalanceSummary.js +106 -0
- package/dist/browser/content/BalanceSummary.js.map +1 -0
- package/dist/browser/content/Chart.js +134 -115
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +366 -122
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +16 -9
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/DataTable.js +676 -293
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/DataTableTools.js +119 -0
- package/dist/browser/content/DataTableTools.js.map +1 -0
- package/dist/browser/content/FlowAmount.js +82 -0
- package/dist/browser/content/FlowAmount.js.map +1 -0
- package/dist/browser/content/balance-summary-messages.js +26 -0
- package/dist/browser/content/balance-summary-messages.js.map +1 -0
- package/dist/browser/content/chart-bar.js +6 -6
- package/dist/browser/content/chart-bar.js.map +1 -1
- package/dist/browser/content/chart-calendar.js +43 -0
- package/dist/browser/content/chart-calendar.js.map +1 -0
- package/dist/browser/content/chart-inspection-core.js +164 -37
- package/dist/browser/content/chart-inspection-core.js.map +1 -1
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js +2 -2
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-map-viewport.js.map +1 -1
- package/dist/browser/content/chart-message-catalog.js +164 -0
- package/dist/browser/content/chart-message-catalog.js.map +1 -0
- package/dist/browser/content/chart-messages.js +2 -138
- package/dist/browser/content/chart-messages.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js +1 -62
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/chart-state-timeline.js +1 -1
- package/dist/browser/content/chart-state-timeline.js.map +1 -1
- package/dist/browser/content/chart-svg.js +2 -1
- package/dist/browser/content/chart-svg.js.map +1 -1
- package/dist/browser/content/chart-time-axis.js +139 -0
- package/dist/browser/content/chart-time-axis.js.map +1 -0
- package/dist/browser/content/data-table-columns.js +160 -0
- package/dist/browser/content/data-table-columns.js.map +1 -0
- package/dist/browser/content/data-table-messages.js +38 -2
- package/dist/browser/content/data-table-messages.js.map +1 -1
- package/dist/browser/content/flow-amount-messages.js +26 -0
- package/dist/browser/content/flow-amount-messages.js.map +1 -0
- package/dist/browser/content/index.js +4 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/prompt-confirm.js +7 -4
- package/dist/browser/feedback/prompt-confirm.js.map +1 -1
- package/dist/browser/feedback/prompts.js +3 -3
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/inputs/DatePicker.js +5 -4
- package/dist/browser/inputs/DatePicker.js.map +1 -1
- package/dist/browser/inputs/NumberInput.js +17 -5
- package/dist/browser/inputs/NumberInput.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js +50 -17
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/date-picker.js +13 -0
- package/dist/browser/inputs/date-picker.js.map +1 -1
- package/dist/browser/intl/Format.js +31 -8
- package/dist/browser/intl/Format.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +580 -522
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/MobileShell.js +26 -0
- package/dist/browser/layout/MobileShell.js.map +1 -1
- package/dist/browser/layout/index.js +1 -0
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/sheet-handle.js +155 -0
- package/dist/browser/layout/sheet-handle.js.map +1 -0
- package/dist/browser/surfaces/BudgetList.js +281 -0
- package/dist/browser/surfaces/BudgetList.js.map +1 -0
- package/dist/browser/surfaces/NoticeCard.js +48 -29
- package/dist/browser/surfaces/NoticeCard.js.map +1 -1
- package/dist/browser/surfaces/ProgressBar.js +134 -21
- package/dist/browser/surfaces/ProgressBar.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js +320 -144
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/StatGrid.js +75 -57
- package/dist/browser/surfaces/StatGrid.js.map +1 -1
- package/dist/browser/surfaces/budget-messages.js +64 -0
- package/dist/browser/surfaces/budget-messages.js.map +1 -0
- package/dist/browser/surfaces/delta-badge.js +65 -0
- package/dist/browser/surfaces/delta-badge.js.map +1 -0
- package/dist/browser/surfaces/index.js +2 -1
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/browser/surfaces/person-color.js +2 -2
- package/dist/browser/surfaces/person-color.js.map +1 -1
- package/dist/browser/surfaces/stat-cell-messages.js +41 -0
- package/dist/browser/surfaces/stat-cell-messages.js.map +1 -0
- package/dist/browser/widgets/Dashboard.js +137 -0
- package/dist/browser/widgets/Dashboard.js.map +1 -0
- package/dist/browser/widgets/index.js +1 -0
- package/dist/browser/widgets/index.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js +3 -0
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/CopyButton.js +13 -8
- package/dist/ssr/actions/CopyButton.js.map +1 -1
- package/dist/ssr/charts/core/area.js +190 -0
- package/dist/ssr/charts/core/area.js.map +1 -0
- package/dist/ssr/charts/core/calendar.js +186 -0
- package/dist/ssr/charts/core/calendar.js.map +1 -0
- package/dist/ssr/charts/core/chart-map-data.js +9 -0
- package/dist/ssr/charts/core/chart-map-data.js.map +1 -0
- package/dist/ssr/charts/core/index.js +12 -0
- package/dist/ssr/charts/core/index.js.map +1 -0
- package/dist/ssr/charts/core/inspection.js +9 -0
- package/dist/ssr/charts/core/inspection.js.map +1 -0
- package/dist/ssr/charts/core/registry.js +28 -0
- package/dist/ssr/charts/core/registry.js.map +1 -0
- package/dist/ssr/charts/core/render.js +103 -0
- package/dist/ssr/charts/core/render.js.map +1 -0
- package/dist/ssr/charts/core/snapshot.js +65 -0
- package/dist/ssr/charts/core/snapshot.js.map +1 -0
- package/dist/ssr/charts/core/svg.js +2542 -0
- package/dist/ssr/charts/core/svg.js.map +1 -0
- package/dist/ssr/charts/core/termination.test-fixture.js +162 -0
- package/dist/ssr/charts/core/termination.test-fixture.js.map +1 -0
- package/dist/ssr/charts/core/text.js +13 -0
- package/dist/ssr/charts/core/text.js.map +1 -0
- package/dist/ssr/charts/core/types.js +8 -0
- package/dist/ssr/charts/core/types.js.map +1 -0
- package/dist/ssr/charts.js +4 -2
- package/dist/ssr/charts.js.map +1 -1
- package/dist/ssr/content/BalanceSummary.js +75 -0
- package/dist/ssr/content/BalanceSummary.js.map +1 -0
- package/dist/ssr/content/Chart.js +90 -95
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +190 -46
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +5 -1
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/DataTable.js +287 -78
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/DataTableTools.js +106 -0
- package/dist/ssr/content/DataTableTools.js.map +1 -0
- package/dist/ssr/content/FlowAmount.js +58 -0
- package/dist/ssr/content/FlowAmount.js.map +1 -0
- package/dist/ssr/content/balance-summary-messages.js +26 -0
- package/dist/ssr/content/balance-summary-messages.js.map +1 -0
- package/dist/ssr/content/chart-bar.js +6 -6
- package/dist/ssr/content/chart-bar.js.map +1 -1
- package/dist/ssr/content/chart-calendar.js +43 -0
- package/dist/ssr/content/chart-calendar.js.map +1 -0
- package/dist/ssr/content/chart-inspection-core.js +164 -37
- package/dist/ssr/content/chart-inspection-core.js.map +1 -1
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js +2 -2
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-map-viewport.js.map +1 -1
- package/dist/ssr/content/chart-message-catalog.js +164 -0
- package/dist/ssr/content/chart-message-catalog.js.map +1 -0
- package/dist/ssr/content/chart-messages.js +2 -138
- package/dist/ssr/content/chart-messages.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js +1 -62
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/chart-state-timeline.js +1 -1
- package/dist/ssr/content/chart-state-timeline.js.map +1 -1
- package/dist/ssr/content/chart-svg.js +2 -1
- package/dist/ssr/content/chart-svg.js.map +1 -1
- package/dist/ssr/content/chart-time-axis.js +139 -0
- package/dist/ssr/content/chart-time-axis.js.map +1 -0
- package/dist/ssr/content/data-table-columns.js +160 -0
- package/dist/ssr/content/data-table-columns.js.map +1 -0
- package/dist/ssr/content/data-table-messages.js +38 -2
- package/dist/ssr/content/data-table-messages.js.map +1 -1
- package/dist/ssr/content/flow-amount-messages.js +26 -0
- package/dist/ssr/content/flow-amount-messages.js.map +1 -0
- package/dist/ssr/content/index.js +4 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/prompt-confirm.js +7 -4
- package/dist/ssr/feedback/prompt-confirm.js.map +1 -1
- package/dist/ssr/feedback/prompts.js +3 -3
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/inputs/DatePicker.js +5 -4
- package/dist/ssr/inputs/DatePicker.js.map +1 -1
- package/dist/ssr/inputs/NumberInput.js +17 -5
- package/dist/ssr/inputs/NumberInput.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +26 -9
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/date-picker.js +13 -0
- package/dist/ssr/inputs/date-picker.js.map +1 -1
- package/dist/ssr/intl/Format.js +22 -2
- package/dist/ssr/intl/Format.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +158 -114
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/MobileShell.js +26 -0
- package/dist/ssr/layout/MobileShell.js.map +1 -1
- package/dist/ssr/layout/index.js +1 -0
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/sheet-handle.js +155 -0
- package/dist/ssr/layout/sheet-handle.js.map +1 -0
- package/dist/ssr/surfaces/BudgetList.js +170 -0
- package/dist/ssr/surfaces/BudgetList.js.map +1 -0
- package/dist/ssr/surfaces/NoticeCard.js +25 -10
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
- package/dist/ssr/surfaces/ProgressBar.js +96 -5
- package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +157 -51
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/StatGrid.js +24 -35
- package/dist/ssr/surfaces/StatGrid.js.map +1 -1
- package/dist/ssr/surfaces/budget-messages.js +64 -0
- package/dist/ssr/surfaces/budget-messages.js.map +1 -0
- package/dist/ssr/surfaces/delta-badge.js +41 -0
- package/dist/ssr/surfaces/delta-badge.js.map +1 -0
- package/dist/ssr/surfaces/index.js +2 -1
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/ssr/surfaces/person-color.js +2 -2
- package/dist/ssr/surfaces/person-color.js.map +1 -1
- package/dist/ssr/surfaces/stat-cell-messages.js +41 -0
- package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -0
- package/dist/ssr/widgets/Dashboard.js +84 -0
- package/dist/ssr/widgets/Dashboard.js.map +1 -0
- package/dist/ssr/widgets/index.js +1 -0
- package/dist/ssr/widgets/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/charts/core/area.d.ts +62 -0
- package/dist/types/charts/core/calendar.d.ts +57 -0
- package/dist/types/charts/core/chart-map-data.d.ts +3 -0
- package/dist/types/charts/core/index.d.ts +11 -0
- package/dist/types/charts/core/inspection.d.ts +16 -0
- package/dist/types/charts/core/registry.d.ts +27 -0
- package/dist/types/charts/core/render.d.ts +40 -0
- package/dist/types/charts/core/snapshot.d.ts +27 -0
- package/dist/types/charts/core/svg.d.ts +714 -0
- package/dist/types/charts/core/termination.test-fixture.d.ts +1 -0
- package/dist/types/charts/core/text.d.ts +5 -0
- package/dist/types/charts/core/types.d.ts +31 -0
- package/dist/types/charts.d.ts +4 -2
- package/dist/types/content/BalanceSummary.d.ts +29 -0
- package/dist/types/content/Chart.d.ts +26 -36
- package/dist/types/content/ChartExplorer.d.ts +43 -2
- package/dist/types/content/ChartSnapshotView.d.ts +1 -0
- package/dist/types/content/DataTable.d.ts +28 -0
- package/dist/types/content/DataTableTools.d.ts +44 -0
- package/dist/types/content/FlowAmount.d.ts +28 -0
- package/dist/types/content/balance-summary-messages.d.ts +11 -0
- package/dist/types/content/chart-bar.d.ts +1 -1
- package/dist/types/content/chart-calendar.d.ts +4 -0
- package/dist/types/content/chart-inspection-core.d.ts +21 -16
- package/dist/types/content/chart-inspection.d.ts +5 -1
- package/dist/types/content/chart-map-viewport.d.ts +1 -1
- package/dist/types/content/chart-message-catalog.d.ts +84 -0
- package/dist/types/content/chart-messages.d.ts +2 -33
- package/dist/types/content/chart-snapshot.d.ts +1 -26
- package/dist/types/content/chart-svg.d.ts +1 -1
- package/dist/types/content/chart-time-axis.d.ts +26 -0
- package/dist/types/content/data-table-columns.d.ts +72 -0
- package/dist/types/content/data-table-messages.d.ts +18 -0
- package/dist/types/content/flow-amount-messages.d.ts +11 -0
- package/dist/types/content/index.d.ts +10 -2
- package/dist/types/feedback/prompt-confirm.d.ts +3 -1
- package/dist/types/feedback/prompts.d.ts +2 -2
- package/dist/types/inputs/NumberInput.d.ts +1 -1
- package/dist/types/inputs/SelectChip.d.ts +2 -0
- package/dist/types/inputs/date-picker.d.ts +6 -0
- package/dist/types/intl/Format.d.ts +5 -0
- package/dist/types/layout/AppWorkspace.d.ts +21 -1
- package/dist/types/layout/MobileShell.d.ts +5 -0
- package/dist/types/layout/index.d.ts +2 -1
- package/dist/types/layout/sheet-handle.d.ts +21 -0
- package/dist/types/surfaces/BudgetList.d.ts +42 -0
- package/dist/types/surfaces/NoticeCard.d.ts +5 -2
- package/dist/types/surfaces/ProgressBar.d.ts +38 -2
- package/dist/types/surfaces/StatCell.d.ts +35 -2
- package/dist/types/surfaces/StatGrid.d.ts +3 -1
- package/dist/types/surfaces/budget-messages.d.ts +30 -0
- package/dist/types/surfaces/delta-badge.d.ts +10 -0
- package/dist/types/surfaces/index.d.ts +4 -3
- package/dist/types/surfaces/person-color.d.ts +2 -2
- package/dist/types/surfaces/stat-cell-messages.d.ts +19 -0
- package/dist/types/widgets/Dashboard.d.ts +42 -0
- package/dist/types/widgets/index.d.ts +1 -0
- package/package.json +7 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ssrStyleProperty as _$ssrStyleProperty } from "solid-js/web";
|
|
2
1
|
import { memo as _$memo } from "solid-js/web";
|
|
2
|
+
import { ssrStyleProperty as _$ssrStyleProperty } from "solid-js/web";
|
|
3
3
|
import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
|
|
4
4
|
import { createComponent as _$createComponent } from "solid-js/web";
|
|
5
5
|
import { ssr as _$ssr } from "solid-js/web";
|
|
@@ -10,22 +10,37 @@ var _tmpl$ = ["<span class=\"k2b-data-table__header-title\">", "</span>"],
|
|
|
10
10
|
_tmpl$4 = ["<a", " class=\"k2b-data-table__header-content k2b-data-table__sort\"", ">", "</a>"],
|
|
11
11
|
_tmpl$5 = ["<button type=\"button\" class=\"k2b-data-table__header-content k2b-data-table__sort\"", ">", "</button>"],
|
|
12
12
|
_tmpl$6 = ["<div class=\"k2b-data-table__header-content\"", ">", "</div>"],
|
|
13
|
-
_tmpl$7 = ["<
|
|
14
|
-
_tmpl$8 = ["<
|
|
15
|
-
_tmpl$9 = "<
|
|
16
|
-
_tmpl$0 = ["<
|
|
17
|
-
_tmpl$1 = ["<
|
|
18
|
-
_tmpl$10 = ["<
|
|
19
|
-
_tmpl$11 = ["<
|
|
20
|
-
_tmpl$12 = ["<
|
|
21
|
-
_tmpl$13 =
|
|
22
|
-
_tmpl$14 = ["<
|
|
23
|
-
_tmpl$15 = ["<
|
|
24
|
-
_tmpl$16 = ["<td class=\"k2b-data-
|
|
25
|
-
_tmpl$17 = ["<
|
|
26
|
-
_tmpl$18 = ["<
|
|
27
|
-
_tmpl$19 = ["<
|
|
28
|
-
_tmpl$20 = ["<
|
|
13
|
+
_tmpl$7 = ["<span class=\"k2b-data-table__bar\">", "<span class=\"k2b-data-table__bar-track\" aria-hidden=\"true\"><span style=\"", "\"></span></span></span>"],
|
|
14
|
+
_tmpl$8 = ["<td class=\"k2b-data-table__details-toggle\"><button type=\"button\" class=\"k2b-data-table__details-button\"", "><i class=\"", "\" aria-hidden=\"true\"></i></button></td>"],
|
|
15
|
+
_tmpl$9 = ["<tr class=\"", "\"", ">", "", "</tr>"],
|
|
16
|
+
_tmpl$0 = ["<tr class=\"k2b-data-table__details\"", "", "><td", "><dl>", "</dl></td></tr>"],
|
|
17
|
+
_tmpl$1 = ["<td class=\"", "\"", "><div", ">", "</div></td>"],
|
|
18
|
+
_tmpl$10 = ["<div", "><dt>", "</dt><dd>", "</dd></div>"],
|
|
19
|
+
_tmpl$11 = ["<caption class=\"k2b-sr-only\">", "</caption>"],
|
|
20
|
+
_tmpl$12 = ["<th scope=\"col\" class=\"k2b-data-table__details-toggle\"><span class=\"k2b-sr-only\">", "</span></th>"],
|
|
21
|
+
_tmpl$13 = "<div class=\"k2b-data-table__sentinel\" aria-hidden=\"true\"></div>",
|
|
22
|
+
_tmpl$14 = ["<div role=\"region\"", " tabindex=\"0\" class=\"", "\"", "><table", ">", "<thead class=\"k2b-data-table__head\"", "><tr class=\"k2b-data-table__head-row\">", "", "</tr></thead>", "", "</table>", "</div>"],
|
|
23
|
+
_tmpl$15 = ["<th scope=\"col\" class=\"", "\"", ">", "</th>"],
|
|
24
|
+
_tmpl$16 = ["<tr aria-hidden=\"true\"><td class=\"k2b-data-table__fill\"", "></td></tr>"],
|
|
25
|
+
_tmpl$17 = ["<tbody>", "</tbody>"],
|
|
26
|
+
_tmpl$18 = ["<tr>", "</tr>"],
|
|
27
|
+
_tmpl$19 = ["<td class=\"k2b-data-table__empty\"", ">", "</td>"],
|
|
28
|
+
_tmpl$20 = ["<button type=\"button\" class=\"k2b-data-table__clear-query\">", "</button>"],
|
|
29
|
+
_tmpl$21 = ["<td class=\"k2b-data-table__no-match\"", ">", " ", "</td>"],
|
|
30
|
+
_tmpl$22 = "<td class=\"k2b-data-table__details-toggle\"></td>",
|
|
31
|
+
_tmpl$23 = ["<tr class=\"k2b-data-table__row\" data-loading=\"true\" aria-hidden=\"true\">", "", "</tr>"],
|
|
32
|
+
_tmpl$24 = ["<td", "><span class=\"k2b-data-table__skeleton\"></span></td>"],
|
|
33
|
+
_tmpl$25 = ["<tbody>", "", "</tbody>"],
|
|
34
|
+
_tmpl$26 = ["<tbody aria-hidden=\"true\"><tr><td class=\"k2b-data-table__fill\"", "></td></tr></tbody>"],
|
|
35
|
+
_tmpl$27 = ["<tbody class=\"k2b-data-table__group\"><tr class=\"k2b-data-table__group-row\"><th scope=\"rowgroup\"", ">", "<span class=\"k2b-data-table__group-count\"><span aria-hidden=\"true\">", "</span><span class=\"k2b-sr-only\">, ", "</span></span></th></tr>", "</tbody>"],
|
|
36
|
+
_tmpl$28 = "<td class=\"k2b-data-table__footer-cell k2b-data-table__details-toggle\"></td>",
|
|
37
|
+
_tmpl$29 = ["<tr class=\"k2b-data-table__details\" data-footer=\"true\"><td", "><dl>", "</dl></td></tr>"],
|
|
38
|
+
_tmpl$30 = ["<tfoot class=\"k2b-data-table__foot\" data-sticky=\"true\"><tr class=\"k2b-data-table__foot-row\">", "", "</tr>", "</tfoot>"],
|
|
39
|
+
_tmpl$31 = ["<td class=\"k2b-data-table__footer-cell\"", ">", "</td>"],
|
|
40
|
+
_tmpl$32 = ["<div class=\"k2b-data-table__scrollbar\"", " aria-hidden=\"true\"><span style=\"", "\"></span></div>"],
|
|
41
|
+
_tmpl$33 = ["<div class=\"", "\">", "</div>"],
|
|
42
|
+
_tmpl$34 = ["<span", ">", "</span>"],
|
|
43
|
+
_tmpl$35 = ["<footer class=\"", "\">", "</footer>"];
|
|
29
44
|
import { createContext, createEffect, createMemo, createSignal, createUniqueId, For, Match, on, onCleanup, onMount, Show, Switch, useContext } from "solid-js";
|
|
30
45
|
import { Dynamic } from "solid-js/web";
|
|
31
46
|
import { announce } from "../feedback/announce";
|
|
@@ -33,15 +48,20 @@ import { suppressTextSelection } from "../internal/text-selection";
|
|
|
33
48
|
import { useLocale } from "../intl/locale";
|
|
34
49
|
import { useUiMessages } from "../intl/messages";
|
|
35
50
|
import { PanelHeader } from "../layout/PanelHeader";
|
|
51
|
+
import { DeltaBadge } from "../surfaces/delta-badge";
|
|
36
52
|
import { Paper } from "../surfaces/Paper";
|
|
37
53
|
import Placeholder from "../surfaces/Placeholder";
|
|
54
|
+
import { StatusBadge } from "../surfaces/StatusBadge";
|
|
55
|
+
import { formatTableNumber, groupRows, isEmptyCell, isNumericColumnType, readTableValue, tableCellText } from "./data-table-columns";
|
|
38
56
|
import { useDataTableMessages } from "./data-table-messages";
|
|
57
|
+
import { FlowAmount } from "./FlowAmount";
|
|
39
58
|
const DataTablePanelContext = createContext();
|
|
40
|
-
const defaultRender = (value, locale, messages) => {
|
|
59
|
+
const defaultRender = (value, locale, numbers, messages) => {
|
|
41
60
|
if (value === null || value === undefined || value === "") return "—";
|
|
42
61
|
if (value instanceof Date) return value.toLocaleString(locale);
|
|
43
62
|
if (typeof value === "boolean") return value ? messages.yes : messages.no;
|
|
44
|
-
|
|
63
|
+
// Numbers read in the reader's language: grouping and decimal mark follow the locale, at most three decimals.
|
|
64
|
+
if (typeof value === "number" || typeof value === "bigint") return numbers.format(Object.is(value, -0) ? 0 : value);
|
|
45
65
|
if (typeof value === "string") return value;
|
|
46
66
|
return JSON.stringify(value);
|
|
47
67
|
};
|
|
@@ -190,17 +210,14 @@ function DataTableRoot(props) {
|
|
|
190
210
|
suppressTextSelection(event.pointerId);
|
|
191
211
|
scrollFromPointer(event, axis);
|
|
192
212
|
};
|
|
193
|
-
const valueOf = (row, col) =>
|
|
194
|
-
if (typeof col.value === "function") return col.value(row);
|
|
195
|
-
if (col.value) return row[col.value];
|
|
196
|
-
return undefined;
|
|
197
|
-
};
|
|
213
|
+
const valueOf = (row, col) => readTableValue(row, col);
|
|
198
214
|
const columnPresentation = createMemo(() => {
|
|
199
215
|
const presentation = new Map();
|
|
200
216
|
for (const col of props.columns) {
|
|
201
|
-
|
|
202
|
-
let
|
|
203
|
-
|
|
217
|
+
// A typed column says what it holds; only an untyped one is read from its first value.
|
|
218
|
+
let numeric = isNumericColumnType(col.type);
|
|
219
|
+
let date = col.type === "date";
|
|
220
|
+
if (!col.type && (col.align === undefined || col.nowrap === undefined)) {
|
|
204
221
|
for (const row of props.rows) {
|
|
205
222
|
const value = valueOf(row, col);
|
|
206
223
|
if (value === null || value === undefined || value === "") continue;
|
|
@@ -223,6 +240,44 @@ function DataTableRoot(props) {
|
|
|
223
240
|
return align === "left" ? undefined : align;
|
|
224
241
|
};
|
|
225
242
|
const nowrapAttr = col => columnPresentation().get(col.id)?.nowrap ? "true" : undefined;
|
|
243
|
+
/** Text columns wrap inside their cell; every other value keeps one line. */
|
|
244
|
+
const wrapAttr = col => col.type === "text" && col.nowrap !== true ? "true" : undefined;
|
|
245
|
+
const priorityAttr = col => col.priority === 2 || col.priority === 3 ? String(col.priority) : undefined;
|
|
246
|
+
/** The lowest priority present: 3 shows the details toggle below 560 px, 2 below 420 px. */
|
|
247
|
+
const detailsPriority = createMemo(() => {
|
|
248
|
+
const priorities = props.columns.map(col => col.priority ?? 1);
|
|
249
|
+
return priorities.includes(3) ? "3" : priorities.includes(2) ? "2" : undefined;
|
|
250
|
+
});
|
|
251
|
+
const hiddenColumns = () => props.columns.filter(col => priorityAttr(col));
|
|
252
|
+
const columnCount = () => props.columns.length + (detailsPriority() ? 1 : 0);
|
|
253
|
+
const [openDetails, setOpenDetails] = createSignal(new Set());
|
|
254
|
+
const toggleDetails = row => setOpenDetails(open => {
|
|
255
|
+
const next = new Set(open);
|
|
256
|
+
if (!next.delete(row)) next.add(row);
|
|
257
|
+
return next;
|
|
258
|
+
});
|
|
259
|
+
/** A bar column fills its track at `max`, or else at its largest value. */
|
|
260
|
+
const barMax = createMemo(() => {
|
|
261
|
+
const max = new Map();
|
|
262
|
+
for (const col of props.columns) {
|
|
263
|
+
if (col.type !== "bar") continue;
|
|
264
|
+
if (col.max !== undefined && col.max > 0) {
|
|
265
|
+
max.set(col.id, col.max);
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
let largest = 0;
|
|
269
|
+
for (const row of props.rows) {
|
|
270
|
+
const value = Number(valueOf(row, col));
|
|
271
|
+
if (Number.isFinite(value)) largest = Math.max(largest, Math.abs(value));
|
|
272
|
+
}
|
|
273
|
+
max.set(col.id, largest);
|
|
274
|
+
}
|
|
275
|
+
return max;
|
|
276
|
+
});
|
|
277
|
+
const groups = createMemo(() => {
|
|
278
|
+
const col = props.groupBy ? props.columns.find(entry => entry.id === props.groupBy) : undefined;
|
|
279
|
+
return col ? groupRows(props.rows, col, locale()) : null;
|
|
280
|
+
});
|
|
226
281
|
const sortKeyOf = col => col.sortable === true ? col.id : typeof col.sortable === "string" ? col.sortable : null;
|
|
227
282
|
|
|
228
283
|
/**
|
|
@@ -280,8 +335,51 @@ function DataTableRoot(props) {
|
|
|
280
335
|
}
|
|
281
336
|
});
|
|
282
337
|
};
|
|
283
|
-
const
|
|
284
|
-
const
|
|
338
|
+
const numberFormat = createMemo(() => new Intl.NumberFormat(locale()));
|
|
339
|
+
const renderValueDefault = value => defaultRender(value, locale(), numberFormat(), messages());
|
|
340
|
+
/** A typed column shows its value the way its type reads; an untyped one falls back to the plain rendering. */
|
|
341
|
+
const renderTypedValue = (col, value) => {
|
|
342
|
+
if (!col.type || isEmptyCell(value)) return renderValueDefault(value);
|
|
343
|
+
if (col.type === "status") {
|
|
344
|
+
const state = col.states?.[String(value)];
|
|
345
|
+
return state ? _$createComponent(StatusBadge, {
|
|
346
|
+
get tone() {
|
|
347
|
+
return state.tone;
|
|
348
|
+
},
|
|
349
|
+
get label() {
|
|
350
|
+
return state.label;
|
|
351
|
+
},
|
|
352
|
+
variant: "dot"
|
|
353
|
+
}) : String(value);
|
|
354
|
+
}
|
|
355
|
+
if (col.type === "flow" && col.format?.currency && Number.isFinite(Number(value))) return _$createComponent(FlowAmount, {
|
|
356
|
+
get value() {
|
|
357
|
+
return Number(value);
|
|
358
|
+
},
|
|
359
|
+
get currency() {
|
|
360
|
+
return col.format.currency;
|
|
361
|
+
},
|
|
362
|
+
get decimals() {
|
|
363
|
+
return col.format.decimals;
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
if (col.type === "delta" && Number.isFinite(Number(value))) return _$createComponent(DeltaBadge, {
|
|
367
|
+
get delta() {
|
|
368
|
+
return {
|
|
369
|
+
value: Number(value),
|
|
370
|
+
unit: col.delta?.unit,
|
|
371
|
+
better: col.delta?.better
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
if (col.type === "bar") {
|
|
376
|
+
const number = Number(value);
|
|
377
|
+
const max = barMax().get(col.id) ?? 0;
|
|
378
|
+
if (!Number.isFinite(number)) return String(value);
|
|
379
|
+
return _$ssr(_tmpl$7, _$escape(formatTableNumber(number, col, locale())), _$ssrStyleProperty("width:", `${max > 0 ? _$escape(Math.min(100, Math.abs(number) / max * 100), true) : 0}%`));
|
|
380
|
+
}
|
|
381
|
+
return tableCellText(value, col, locale());
|
|
382
|
+
};
|
|
285
383
|
const onRowKeyDown = (event, row) => {
|
|
286
384
|
if (!isInteractive()) return;
|
|
287
385
|
if (isNestedRowControl(event)) return;
|
|
@@ -305,6 +403,53 @@ function DataTableRoot(props) {
|
|
|
305
403
|
if (typeof props.rowClass === "function") return props.rowClass(row) ?? "";
|
|
306
404
|
return props.rowClass ?? "";
|
|
307
405
|
};
|
|
406
|
+
|
|
407
|
+
// A heading given as a JSX node lives in the head; each details line needs its own copy, so it takes text or a fresh call.
|
|
408
|
+
const detailLabel = col => typeof col.header === "function" ? col.header({
|
|
409
|
+
col
|
|
410
|
+
}) : typeof col.header === "string" || typeof col.header === "number" ? col.header : col.id;
|
|
411
|
+
const cellContent = (row, col, value) => props.renderCell ? props.renderCell({
|
|
412
|
+
row,
|
|
413
|
+
col,
|
|
414
|
+
value,
|
|
415
|
+
render: v => renderTypedValue(col, v)
|
|
416
|
+
}) : renderTypedValue(col, value);
|
|
417
|
+
|
|
418
|
+
/** `last` marks the final row of its body when details rows follow every row, so the frame keeps the only edge. */
|
|
419
|
+
const renderRow = (row, last) => {
|
|
420
|
+
const id = () => rowId(row);
|
|
421
|
+
const isSelected = () => props.selection ? props.selection.selected().has(id() ?? "") : props.selectedRowId && id() === props.selectedRowId;
|
|
422
|
+
const detailsId = `k2b-data-table-${createUniqueId()}-details`;
|
|
423
|
+
const open = () => openDetails().has(row);
|
|
424
|
+
return [_$ssr(_tmpl$9, `k2b-data-table__row ${_$escape(rowClass(row), true)}`, _$ssrAttribute("data-hover", shouldHoverRows() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-clickable", shouldHoverRows() && isInteractive() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-selected", isSelected() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-details-open", open() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-last", detailsPriority() && last() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("aria-selected", props.selection ? !!isSelected() : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", props.selection ? props.selection.focused() === id() ? 0 : -1 : isInteractive() ? 0 : _$escape(undefined, true), false), _$escape(_$createComponent(For, {
|
|
425
|
+
get each() {
|
|
426
|
+
return props.columns;
|
|
427
|
+
},
|
|
428
|
+
children: (col, index) => {
|
|
429
|
+
const value = () => valueOf(row, col);
|
|
430
|
+
return _$ssr(_tmpl$1, `${_$escape(col.cellClass ?? "", true)} ${_$escape(col.class ?? "", true)}`, _$ssrAttribute("data-nowrap", _$escape(nowrapAttr(col), true), false) + _$ssrAttribute("data-wrap", _$escape(wrapAttr(col), true), false) + _$ssrAttribute("data-align", _$escape(alignAttr(col), true), false) + _$ssrAttribute("data-priority", _$escape(priorityAttr(col), true), false) + _$ssrAttribute("data-valign", props.verticalAlign && props.verticalAlign !== "middle" ? _$escape(props.verticalAlign, true) : _$escape(undefined, true), false) + _$ssrAttribute("data-highlighted", _$escape(columnHighlighted(index()), true), false), _$ssrAttribute("class", _$escape(cellContentClass(), true), false), _$escape(cellContent(row, col, value())));
|
|
431
|
+
}
|
|
432
|
+
})), _$escape(_$createComponent(Show, {
|
|
433
|
+
get when() {
|
|
434
|
+
return detailsPriority();
|
|
435
|
+
},
|
|
436
|
+
get children() {
|
|
437
|
+
return _$ssr(_tmpl$8, _$ssrAttribute("aria-expanded", _$escape(open(), true), false) + _$ssrAttribute("aria-controls", _$escape(detailsId, true), false) + _$ssrAttribute("aria-label", _$escape(dataTableMessages().showDetails, true), false), `ti ${open() ? "ti-chevron-up" : "ti-chevron-down"}`);
|
|
438
|
+
}
|
|
439
|
+
}))), _$createComponent(Show, {
|
|
440
|
+
get when() {
|
|
441
|
+
return detailsPriority();
|
|
442
|
+
},
|
|
443
|
+
get children() {
|
|
444
|
+
return _$ssr(_tmpl$0, _$ssrAttribute("id", _$escape(detailsId, true), false), _$ssrAttribute("hidden", !open(), true), _$ssrAttribute("colspan", _$escape(columnCount(), true), false), _$escape(_$createComponent(For, {
|
|
445
|
+
get each() {
|
|
446
|
+
return hiddenColumns();
|
|
447
|
+
},
|
|
448
|
+
children: col => _$ssr(_tmpl$10, _$ssrAttribute("data-priority", _$escape(priorityAttr(col), true), false), _$escape(detailLabel(col)), _$escape(cellContent(row, col, valueOf(row, col))))
|
|
449
|
+
})));
|
|
450
|
+
}
|
|
451
|
+
})];
|
|
452
|
+
};
|
|
308
453
|
onMount(() => {
|
|
309
454
|
if (typeof IntersectionObserver === "undefined" || !loadMoreRef) return;
|
|
310
455
|
// The viewport root notices the end whichever element scrolls; `isNearBottom` decides.
|
|
@@ -372,6 +517,9 @@ function DataTableRoot(props) {
|
|
|
372
517
|
get ["data-has-footer"]() {
|
|
373
518
|
return props.footer ? "true" : undefined;
|
|
374
519
|
},
|
|
520
|
+
get ["data-priorities"]() {
|
|
521
|
+
return detailsPriority();
|
|
522
|
+
},
|
|
375
523
|
get ["data-overflow-x"]() {
|
|
376
524
|
return scrollbars().x.overflow ? "true" : undefined;
|
|
377
525
|
},
|
|
@@ -386,35 +534,59 @@ function DataTableRoot(props) {
|
|
|
386
534
|
},
|
|
387
535
|
onMouseLeave: () => setHoveredColumn(null),
|
|
388
536
|
get children() {
|
|
389
|
-
return [_$ssr(_tmpl$
|
|
537
|
+
return [_$ssr(_tmpl$14, _$ssrAttribute("aria-label", labelledBy() ? _$escape(undefined, true) : _$escape(props.ariaLabel ?? dataTableMessages().dataTable, true), false) + _$ssrAttribute("aria-labelledby", _$escape(labelledBy(), true), false) + _$ssrAttribute("aria-busy", props.loading ? "true" : _$escape(undefined, true), false), `k2b-table-wrap${props.scrollClass ? ` ${_$escape(props.scrollClass, true)}` : ""}`, _$ssrAttribute("data-density", props.density === "compact" ? "compact" : _$escape(undefined, true), false) + _$ssrAttribute("data-has-footer", props.footer ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-surface", _$escape(surface(), true), false) + _$ssrAttribute("data-scroll-preserve", _$escape(props.scrollPreserveKey || undefined, true), false), _$ssrAttribute("class", _$escape(tableClass(), true), false) + _$ssrAttribute("data-fill", props.fillHeight ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
390
538
|
get when() {
|
|
391
539
|
return props.loading;
|
|
392
540
|
},
|
|
393
541
|
get children() {
|
|
394
|
-
return _$ssr(_tmpl$
|
|
542
|
+
return _$ssr(_tmpl$11, _$escape(dataTableMessages().loadingRows));
|
|
395
543
|
}
|
|
396
544
|
})), _$ssrAttribute("data-sticky", props.stickyHeader === false ? _$escape(undefined, true) : "true", false), _$escape(_$createComponent(For, {
|
|
397
545
|
get each() {
|
|
398
546
|
return props.columns;
|
|
399
547
|
},
|
|
400
|
-
children: (col, index) => _$ssr(_tmpl$
|
|
548
|
+
children: (col, index) => _$ssr(_tmpl$15, `${_$escape(col.headerClass ?? "", true)} ${_$escape(col.class ?? "", true)}`, _$ssrAttribute("data-align", _$escape(alignAttr(col), true), false) + _$ssrAttribute("data-priority", _$escape(priorityAttr(col), true), false) + _$ssrAttribute("data-highlighted", _$escape(columnHighlighted(index()), true), false) + _$ssrAttribute("aria-sort", _$escape(ariaSortFor(col), true), false), props.renderHeader ? _$escape(props.renderHeader({
|
|
401
549
|
col,
|
|
402
550
|
render: () => renderHeaderDefault(col)
|
|
403
551
|
})) : _$escape(renderHeaderDefault(col)))
|
|
552
|
+
})), _$escape(_$createComponent(Show, {
|
|
553
|
+
get when() {
|
|
554
|
+
return detailsPriority();
|
|
555
|
+
},
|
|
556
|
+
get children() {
|
|
557
|
+
return _$ssr(_tmpl$12, _$escape(dataTableMessages().details));
|
|
558
|
+
}
|
|
404
559
|
})), _$escape(_$createComponent(Show, {
|
|
405
560
|
get when() {
|
|
406
561
|
return props.rows.length > 0;
|
|
407
562
|
},
|
|
408
563
|
get fallback() {
|
|
409
|
-
return _$createComponent(Show, {
|
|
564
|
+
return _$ssr(_tmpl$17, _$escape(_$createComponent(Show, {
|
|
410
565
|
get when() {
|
|
411
566
|
return props.loading;
|
|
412
567
|
},
|
|
413
568
|
get fallback() {
|
|
414
|
-
return _$ssr(_tmpl$
|
|
415
|
-
get
|
|
416
|
-
return props.
|
|
417
|
-
}
|
|
569
|
+
return _$ssr(_tmpl$18, _$escape(_$createComponent(Show, {
|
|
570
|
+
get when() {
|
|
571
|
+
return props.query?.trim();
|
|
572
|
+
},
|
|
573
|
+
get fallback() {
|
|
574
|
+
return _$ssr(_tmpl$19, _$ssrAttribute("colspan", _$escape(columnCount(), true), false), _$escape(_$createComponent(Placeholder, {
|
|
575
|
+
get description() {
|
|
576
|
+
return props.empty ?? dataTableMessages().noRecords;
|
|
577
|
+
}
|
|
578
|
+
})));
|
|
579
|
+
},
|
|
580
|
+
children: query => _$ssr(_tmpl$21, _$ssrAttribute("colspan", _$escape(columnCount(), true), false), _$escape(dataTableMessages().noMatch({
|
|
581
|
+
query: query()
|
|
582
|
+
})), _$escape(_$createComponent(Show, {
|
|
583
|
+
get when() {
|
|
584
|
+
return props.onClearQuery;
|
|
585
|
+
},
|
|
586
|
+
get children() {
|
|
587
|
+
return _$ssr(_tmpl$20, _$escape(dataTableMessages().clearSearch));
|
|
588
|
+
}
|
|
589
|
+
})))
|
|
418
590
|
})));
|
|
419
591
|
},
|
|
420
592
|
get children() {
|
|
@@ -424,73 +596,110 @@ function DataTableRoot(props) {
|
|
|
424
596
|
length: loadingRows()
|
|
425
597
|
});
|
|
426
598
|
},
|
|
427
|
-
children: () => _$ssr(_tmpl$
|
|
599
|
+
children: () => _$ssr(_tmpl$23, _$escape(_$createComponent(For, {
|
|
428
600
|
get each() {
|
|
429
601
|
return props.columns;
|
|
430
602
|
},
|
|
431
|
-
children: col => _$ssr(_tmpl$
|
|
603
|
+
children: col => _$ssr(_tmpl$24, _$ssrAttribute("data-align", _$escape(alignAttr(col), true), false) + _$ssrAttribute("data-priority", _$escape(priorityAttr(col), true), false))
|
|
604
|
+
})), _$escape(_$createComponent(Show, {
|
|
605
|
+
get when() {
|
|
606
|
+
return detailsPriority();
|
|
607
|
+
},
|
|
608
|
+
get children() {
|
|
609
|
+
return _$ssr(_tmpl$22);
|
|
610
|
+
}
|
|
432
611
|
})))
|
|
433
612
|
}), _$createComponent(Show, {
|
|
434
613
|
get when() {
|
|
435
614
|
return props.fillHeight;
|
|
436
615
|
},
|
|
437
616
|
get children() {
|
|
438
|
-
return _$ssr(_tmpl$
|
|
617
|
+
return _$ssr(_tmpl$16, _$ssrAttribute("colspan", _$escape(columnCount(), true), false));
|
|
439
618
|
}
|
|
440
619
|
})];
|
|
441
620
|
}
|
|
442
|
-
});
|
|
621
|
+
})));
|
|
443
622
|
},
|
|
444
623
|
get children() {
|
|
445
|
-
return
|
|
446
|
-
get
|
|
447
|
-
return
|
|
624
|
+
return _$createComponent(Show, {
|
|
625
|
+
get when() {
|
|
626
|
+
return groups();
|
|
448
627
|
},
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
const isSelected = () => props.selection ? props.selection.selected().has(id() ?? "") : props.selectedRowId && id() === props.selectedRowId;
|
|
452
|
-
return _$ssr(_tmpl$13, `k2b-data-table__row ${_$escape(rowClass(row), true)}`, _$ssrAttribute("data-hover", shouldHoverRows() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-clickable", shouldHoverRows() && isInteractive() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-selected", isSelected() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("aria-selected", props.selection ? !!isSelected() : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", props.selection ? props.selection.focused() === id() ? 0 : -1 : isInteractive() ? 0 : _$escape(undefined, true), false), _$escape(_$createComponent(For, {
|
|
628
|
+
get fallback() {
|
|
629
|
+
return _$ssr(_tmpl$25, _$escape(_$createComponent(For, {
|
|
453
630
|
get each() {
|
|
454
|
-
return props.
|
|
631
|
+
return props.rows;
|
|
632
|
+
},
|
|
633
|
+
children: (row, index) => renderRow(row, () => index() === props.rows.length - 1)
|
|
634
|
+
})), _$escape(_$createComponent(Show, {
|
|
635
|
+
get when() {
|
|
636
|
+
return props.fillHeight;
|
|
455
637
|
},
|
|
456
|
-
children
|
|
457
|
-
|
|
458
|
-
return _$ssr(_tmpl$14, `${_$escape(col.cellClass ?? "", true)} ${_$escape(col.class ?? "", true)}`, _$ssrAttribute("data-nowrap", _$escape(nowrapAttr(col), true), false) + _$ssrAttribute("data-align", _$escape(alignAttr(col), true), false) + _$ssrAttribute("data-valign", props.verticalAlign && props.verticalAlign !== "middle" ? _$escape(props.verticalAlign, true) : _$escape(undefined, true), false) + _$ssrAttribute("data-highlighted", _$escape(columnHighlighted(index()), true), false), _$ssrAttribute("class", _$escape(cellContentClass(), true), false), props.renderCell ? _$escape(props.renderCell({
|
|
459
|
-
row,
|
|
460
|
-
col,
|
|
461
|
-
value: value(),
|
|
462
|
-
render: v => renderCellDefault(row, {
|
|
463
|
-
...col,
|
|
464
|
-
value: () => v
|
|
465
|
-
})
|
|
466
|
-
})) : _$escape(renderValueDefault(value())));
|
|
638
|
+
get children() {
|
|
639
|
+
return _$ssr(_tmpl$16, _$ssrAttribute("colspan", _$escape(columnCount(), true), false));
|
|
467
640
|
}
|
|
468
641
|
})));
|
|
469
|
-
}
|
|
470
|
-
}), _$createComponent(Show, {
|
|
471
|
-
get when() {
|
|
472
|
-
return props.fillHeight;
|
|
473
642
|
},
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
643
|
+
children: list => [_$createComponent(For, {
|
|
644
|
+
get each() {
|
|
645
|
+
return list();
|
|
646
|
+
},
|
|
647
|
+
children: group => _$ssr(_tmpl$27, _$ssrAttribute("colspan", _$escape(columnCount(), true), false), _$escape(group.label || "—"), _$escape(group.rows.length), _$escape(dataTableMessages().rowCount({
|
|
648
|
+
count: group.rows.length
|
|
649
|
+
})), _$escape(_$createComponent(For, {
|
|
650
|
+
get each() {
|
|
651
|
+
return group.rows;
|
|
652
|
+
},
|
|
653
|
+
children: (row, index) => renderRow(row, () => index() === group.rows.length - 1)
|
|
654
|
+
})))
|
|
655
|
+
}), _$createComponent(Show, {
|
|
656
|
+
get when() {
|
|
657
|
+
return props.fillHeight;
|
|
658
|
+
},
|
|
659
|
+
get children() {
|
|
660
|
+
return _$ssr(_tmpl$26, _$ssrAttribute("colspan", _$escape(columnCount(), true), false));
|
|
661
|
+
}
|
|
662
|
+
})]
|
|
663
|
+
});
|
|
478
664
|
}
|
|
479
665
|
})), _$escape(_$createComponent(Show, {
|
|
480
666
|
get when() {
|
|
481
667
|
return props.footer;
|
|
482
668
|
},
|
|
483
|
-
children: footer => _$ssr(_tmpl$
|
|
669
|
+
children: footer => _$ssr(_tmpl$30, _$escape(_$createComponent(For, {
|
|
484
670
|
get each() {
|
|
485
671
|
return props.columns;
|
|
486
672
|
},
|
|
487
673
|
children: (col, index) => {
|
|
488
674
|
const value = () => footer().values?.[col.id];
|
|
489
|
-
return _$ssr(_tmpl$
|
|
675
|
+
return _$ssr(_tmpl$31, _$ssrAttribute("data-nowrap", _$escape(nowrapAttr(col), true), false) + _$ssrAttribute("data-align", _$escape(alignAttr(col), true), false) + _$ssrAttribute("data-priority", _$escape(priorityAttr(col), true), false) + _$ssrAttribute("data-highlighted", _$escape(columnHighlighted(index()), true), false), footer().renderCell ? _$escape(footer().renderCell({
|
|
490
676
|
col,
|
|
491
677
|
value: value(),
|
|
492
|
-
render:
|
|
493
|
-
})) : _$escape(
|
|
678
|
+
render: v => renderTypedValue(col, v)
|
|
679
|
+
})) : _$escape(renderTypedValue(col, value())));
|
|
680
|
+
}
|
|
681
|
+
})), _$escape(_$createComponent(Show, {
|
|
682
|
+
get when() {
|
|
683
|
+
return detailsPriority();
|
|
684
|
+
},
|
|
685
|
+
get children() {
|
|
686
|
+
return _$ssr(_tmpl$28);
|
|
687
|
+
}
|
|
688
|
+
})), _$escape(_$createComponent(Show, {
|
|
689
|
+
get when() {
|
|
690
|
+
return detailsPriority();
|
|
691
|
+
},
|
|
692
|
+
get children() {
|
|
693
|
+
return _$ssr(_tmpl$29, _$ssrAttribute("colspan", _$escape(columnCount(), true), false), _$escape(_$createComponent(For, {
|
|
694
|
+
get each() {
|
|
695
|
+
return hiddenColumns();
|
|
696
|
+
},
|
|
697
|
+
children: col => _$ssr(_tmpl$10, _$ssrAttribute("data-priority", _$escape(priorityAttr(col), true), false), _$escape(detailLabel(col)), footer().renderCell ? _$escape(footer().renderCell({
|
|
698
|
+
col,
|
|
699
|
+
value: footer().values?.[col.id],
|
|
700
|
+
render: v => renderTypedValue(col, v)
|
|
701
|
+
})) : _$escape(renderTypedValue(col, footer().values?.[col.id])))
|
|
702
|
+
})));
|
|
494
703
|
}
|
|
495
704
|
})))
|
|
496
705
|
})), _$escape(_$createComponent(Show, {
|
|
@@ -498,11 +707,11 @@ function DataTableRoot(props) {
|
|
|
498
707
|
return shouldRenderLoadMoreSentinel();
|
|
499
708
|
},
|
|
500
709
|
get children() {
|
|
501
|
-
return _$ssr(_tmpl$
|
|
710
|
+
return _$ssr(_tmpl$13);
|
|
502
711
|
}
|
|
503
712
|
}))), _$createComponent(For, {
|
|
504
713
|
each: ["y", "x"],
|
|
505
|
-
children: axis => _$ssr(_tmpl$
|
|
714
|
+
children: axis => _$ssr(_tmpl$32, _$ssrAttribute("data-axis", _$escape(axis, true), false) + _$ssrAttribute("data-overflow", scrollbars()[axis].overflow ? "true" : _$escape(undefined, true), false), _$ssrStyleProperty("--k2b-data-table-scroll-offset:", `${_$escape(scrollbars()[axis].offset, true)}px`) + _$ssrStyleProperty(";--k2b-data-table-scroll-size:", `${_$escape(scrollbars()[axis].size, true)}px`))
|
|
506
715
|
})];
|
|
507
716
|
}
|
|
508
717
|
});
|
|
@@ -535,9 +744,9 @@ const DataTablePanel = props => {
|
|
|
535
744
|
const DataTableHeader = props => {
|
|
536
745
|
const panel = useContext(DataTablePanelContext);
|
|
537
746
|
panel?.registerHeading();
|
|
538
|
-
return _$ssr(_tmpl$
|
|
747
|
+
return _$ssr(_tmpl$33, `k2b-data-panel__header ${_$escape(props.class ?? "", true)}`, _$escape(_$createComponent(PanelHeader, {
|
|
539
748
|
get title() {
|
|
540
|
-
return _$ssr(_tmpl$
|
|
749
|
+
return _$ssr(_tmpl$34, _$ssrAttribute("id", _$escape(panel?.headingId, true), false), _$escape(props.title));
|
|
541
750
|
},
|
|
542
751
|
get subtitle() {
|
|
543
752
|
return props.subtitle;
|
|
@@ -553,8 +762,8 @@ const DataTableHeader = props => {
|
|
|
553
762
|
}
|
|
554
763
|
})));
|
|
555
764
|
};
|
|
556
|
-
const DataTableControls = props => _$ssr(_tmpl$
|
|
557
|
-
const DataTablePanelFooter = props => _$ssr(_tmpl$
|
|
765
|
+
const DataTableControls = props => _$ssr(_tmpl$33, `k2b-data-panel__controls ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
|
|
766
|
+
const DataTablePanelFooter = props => _$ssr(_tmpl$35, `k2b-data-panel__footer ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
|
|
558
767
|
const DataTable = DataTableRoot;
|
|
559
768
|
DataTable.Panel = DataTablePanel;
|
|
560
769
|
DataTable.Header = DataTableHeader;
|