@pallasoft/ps-table-components 1.22.2 → 1.23.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/components/ps-data-table.d.ts +2 -1
- package/dist/components/ps-data-table.js +45 -10
- package/dist/components/ps-table-reorder-frame.js +15 -2
- package/dist/components/ps-table-reorder-handle.js +1 -1
- package/dist/components/ps-table-sort-header.js +1 -1
- package/dist/components/ps-table-sortable-row.d.ts +5 -1
- package/dist/components/ps-table-sortable-row.js +12 -4
- package/dist/constants/ps-table-drop-classes.d.ts +2 -0
- package/dist/constants/ps-table-drop-classes.js +8 -0
- package/dist/constants/ps-table-drop-placement.d.ts +6 -0
- package/dist/constants/ps-table-drop-placement.js +8 -0
- package/dist/constants/ps-table-pin-classes.d.ts +16 -0
- package/dist/constants/ps-table-pin-classes.js +19 -0
- package/dist/constants/table-breakpoint.d.ts +7 -0
- package/dist/constants/table-breakpoint.js +13 -0
- package/dist/esm/components/ps-data-table.js +46 -11
- package/dist/esm/components/ps-table-reorder-frame.js +15 -2
- package/dist/esm/components/ps-table-reorder-handle.js +1 -1
- package/dist/esm/components/ps-table-sort-header.js +1 -1
- package/dist/esm/components/ps-table-sortable-row.js +12 -4
- package/dist/esm/constants/ps-table-drop-classes.js +5 -0
- package/dist/esm/constants/ps-table-drop-placement.js +5 -0
- package/dist/esm/constants/ps-table-pin-classes.js +16 -0
- package/dist/esm/constants/table-breakpoint.js +10 -0
- package/dist/esm/hooks/use-ps-table-overflow.js +19 -0
- package/dist/esm/hooks/use-ps-table-reorder.js +89 -15
- package/dist/esm/index.js +10 -0
- package/dist/esm/interfaces/table-drop.js +1 -0
- package/dist/esm/interfaces/table-nesting-announcements.js +1 -0
- package/dist/esm/interfaces/table-overflow-edges.js +1 -0
- package/dist/esm/interfaces/table-pin-classes.js +1 -0
- package/dist/esm/interfaces/table-reorder-nesting-binding.js +1 -0
- package/dist/esm/interfaces/table-reorder-nesting.js +1 -0
- package/dist/esm/services/ps-table-overflow-service.js +11 -0
- package/dist/esm/services/ps-table-pin-service.js +22 -0
- package/dist/esm/services/ps-table-reorder-service.js +38 -1
- package/dist/hooks/use-ps-table-overflow.d.ts +6 -0
- package/dist/hooks/use-ps-table-overflow.js +23 -0
- package/dist/hooks/use-ps-table-reorder.d.ts +6 -2
- package/dist/hooks/use-ps-table-reorder.js +87 -13
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/interfaces/table-column.d.ts +3 -0
- package/dist/interfaces/table-drop.d.ts +5 -0
- package/dist/interfaces/table-drop.js +2 -0
- package/dist/interfaces/table-nesting-announcements.d.ts +5 -0
- package/dist/interfaces/table-nesting-announcements.js +2 -0
- package/dist/interfaces/table-overflow-edges.d.ts +4 -0
- package/dist/interfaces/table-overflow-edges.js +2 -0
- package/dist/interfaces/table-pin-classes.d.ts +5 -0
- package/dist/interfaces/table-pin-classes.js +2 -0
- package/dist/interfaces/table-reorder-nesting-binding.d.ts +8 -0
- package/dist/interfaces/table-reorder-nesting-binding.js +2 -0
- package/dist/interfaces/table-reorder-nesting.d.ts +8 -0
- package/dist/interfaces/table-reorder-nesting.js +2 -0
- package/dist/interfaces/table-reorder-row-props.d.ts +3 -0
- package/dist/interfaces/table-reorder.d.ts +4 -2
- package/dist/services/ps-table-overflow-service.d.ts +6 -0
- package/dist/services/ps-table-overflow-service.js +15 -0
- package/dist/services/ps-table-pin-service.d.ts +5 -0
- package/dist/services/ps-table-pin-service.js +26 -0
- package/dist/services/ps-table-reorder-service.d.ts +11 -0
- package/dist/services/ps-table-reorder-service.js +38 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -19,7 +19,9 @@ __exportStar(require("./components/ps-streamed-rows"), exports);
|
|
|
19
19
|
__exportStar(require("./components/ps-table-stream-status"), exports);
|
|
20
20
|
__exportStar(require("./components/ps-table-group-header"), exports);
|
|
21
21
|
__exportStar(require("./components/ps-table-pagination"), exports);
|
|
22
|
+
__exportStar(require("./constants/table-breakpoint"), exports);
|
|
22
23
|
__exportStar(require("./constants/table-card-role"), exports);
|
|
24
|
+
__exportStar(require("./constants/ps-table-pin-classes"), exports);
|
|
23
25
|
__exportStar(require("./constants/table-column-size"), exports);
|
|
24
26
|
__exportStar(require("./constants/table-filter-kind"), exports);
|
|
25
27
|
__exportStar(require("./interfaces/table-column"), exports);
|
|
@@ -43,6 +45,11 @@ __exportStar(require("./services/ps-table-group-service"), exports);
|
|
|
43
45
|
__exportStar(require("./services/ps-table-query-service"), exports);
|
|
44
46
|
__exportStar(require("./services/ps-table-search-service"), exports);
|
|
45
47
|
__exportStar(require("./services/ps-table-scroll-service"), exports);
|
|
48
|
+
__exportStar(require("./services/ps-table-pin-service"), exports);
|
|
49
|
+
__exportStar(require("./services/ps-table-overflow-service"), exports);
|
|
50
|
+
__exportStar(require("./hooks/use-ps-table-overflow"), exports);
|
|
51
|
+
__exportStar(require("./interfaces/table-pin-classes"), exports);
|
|
52
|
+
__exportStar(require("./interfaces/table-overflow-edges"), exports);
|
|
46
53
|
__exportStar(require("./services/ps-table-stream-service"), exports);
|
|
47
54
|
__exportStar(require("./components/ps-table-export-button"), exports);
|
|
48
55
|
__exportStar(require("./constants/ps-table-download-config"), exports);
|
|
@@ -52,4 +59,7 @@ __exportStar(require("./hooks/use-ps-table-page"), exports);
|
|
|
52
59
|
__exportStar(require("./interfaces/ps-table-page-state"), exports);
|
|
53
60
|
__exportStar(require("./interfaces/table-reorder"), exports);
|
|
54
61
|
__exportStar(require("./interfaces/table-reorder-announcements"), exports);
|
|
62
|
+
__exportStar(require("./interfaces/table-reorder-nesting"), exports);
|
|
63
|
+
__exportStar(require("./interfaces/table-nesting-announcements"), exports);
|
|
64
|
+
__exportStar(require("./constants/ps-table-drop-placement"), exports);
|
|
55
65
|
__exportStar(require("./services/ps-table-reorder-service"), exports);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import type { PsTableBreakpoint } from '../constants/table-breakpoint';
|
|
2
3
|
import type { PsTableCardRole } from '../constants/table-card-role';
|
|
3
4
|
import type { PsTableColumnSize } from '../constants/table-column-size';
|
|
4
5
|
import type { PsTableColumnFilter } from './table-column-filter';
|
|
@@ -9,10 +10,12 @@ export interface PsTableColumn<RowData> {
|
|
|
9
10
|
cardRole?: PsTableCardRole;
|
|
10
11
|
filter?: PsTableColumnFilter<RowData>;
|
|
11
12
|
footer?: ReactNode;
|
|
13
|
+
hideBelow?: PsTableBreakpoint;
|
|
12
14
|
hideOnCards?: boolean;
|
|
13
15
|
id: string;
|
|
14
16
|
label: string;
|
|
15
17
|
minWidth?: string;
|
|
18
|
+
pinEnd?: boolean;
|
|
16
19
|
render: (row: RowData) => ReactNode;
|
|
17
20
|
size?: PsTableColumnSize;
|
|
18
21
|
sortValue?: (row: RowData) => string | number | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PsTableDropPlacement } from '../constants/ps-table-drop-placement';
|
|
2
|
+
import type { PsTableNestingAnnouncements } from './table-nesting-announcements';
|
|
3
|
+
export interface PsTableReorderNestingBinding {
|
|
4
|
+
announcements: PsTableNestingAnnouncements;
|
|
5
|
+
canDrag: (id: string) => boolean;
|
|
6
|
+
canDrop: (activeId: string, targetId: string, placement: PsTableDropPlacement) => boolean;
|
|
7
|
+
onMove: (activeId: string, targetId: string, placement: PsTableDropPlacement) => void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PsTableDropPlacement } from '../constants/ps-table-drop-placement';
|
|
2
|
+
import type { PsTableNestingAnnouncements } from './table-nesting-announcements';
|
|
3
|
+
export interface PsTableReorderNesting<RowData> {
|
|
4
|
+
announcements: PsTableNestingAnnouncements;
|
|
5
|
+
canDrag: (row: RowData) => boolean;
|
|
6
|
+
canDrop: (active: RowData, target: RowData, placement: PsTableDropPlacement) => boolean;
|
|
7
|
+
onMove: (active: RowData, target: RowData, placement: PsTableDropPlacement) => void;
|
|
8
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { PsTableDropPlacement } from '../constants/ps-table-drop-placement';
|
|
1
2
|
export interface PsTableReorderRowProps {
|
|
3
|
+
dropPlacement: PsTableDropPlacement | null;
|
|
2
4
|
handleLabel: string;
|
|
3
5
|
hasHandle: boolean;
|
|
4
6
|
isDisabled: boolean;
|
|
7
|
+
isDropTarget: boolean;
|
|
5
8
|
rowId: string;
|
|
6
9
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PsTableReorderAnnouncements } from './table-reorder-announcements';
|
|
2
|
+
import type { PsTableReorderNesting } from './table-reorder-nesting';
|
|
2
3
|
export interface PsTableReorder<RowData> {
|
|
3
4
|
announcements: PsTableReorderAnnouncements;
|
|
4
5
|
cardsReason?: string;
|
|
@@ -6,7 +7,8 @@ export interface PsTableReorder<RowData> {
|
|
|
6
7
|
disabledReason?: string;
|
|
7
8
|
enabled: boolean;
|
|
8
9
|
getHandleLabel: (rowLabel: string) => string;
|
|
9
|
-
groupKey
|
|
10
|
+
groupKey?: (row: RowData) => string;
|
|
10
11
|
instructions: string;
|
|
11
|
-
|
|
12
|
+
nesting?: PsTableReorderNesting<RowData>;
|
|
13
|
+
onReorder?: (groupKey: string, orderedIds: string[]) => void;
|
|
12
14
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PsTableOverflowEdges } from '../interfaces/table-overflow-edges';
|
|
2
|
+
export declare class PsTableOverflowService {
|
|
3
|
+
static readonly none: PsTableOverflowEdges;
|
|
4
|
+
static edges(scrollLeft: number, clientWidth: number, scrollWidth: number): PsTableOverflowEdges;
|
|
5
|
+
static isSame(current: PsTableOverflowEdges, next: PsTableOverflowEdges): boolean;
|
|
6
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PsTableOverflowService = void 0;
|
|
4
|
+
class PsTableOverflowService {
|
|
5
|
+
static edges(scrollLeft, clientWidth, scrollWidth) {
|
|
6
|
+
const start = Math.abs(scrollLeft) > 0.5;
|
|
7
|
+
const end = scrollWidth - clientWidth - Math.abs(scrollLeft) > 0.5;
|
|
8
|
+
return { end, start };
|
|
9
|
+
}
|
|
10
|
+
static isSame(current, next) {
|
|
11
|
+
return current.end === next.end && current.start === next.start;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.PsTableOverflowService = PsTableOverflowService;
|
|
15
|
+
PsTableOverflowService.none = { end: false, start: false };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PsTableLeadingPinClasses } from '../interfaces/table-pin-classes';
|
|
2
|
+
export declare class PsTablePinService {
|
|
3
|
+
static leading(isPinned: boolean, hasReorder: boolean, isSelectable: boolean): PsTableLeadingPinClasses;
|
|
4
|
+
static end(isPinned: boolean): string;
|
|
5
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PsTablePinService = void 0;
|
|
4
|
+
const ps_table_pin_classes_1 = require("../constants/ps-table-pin-classes");
|
|
5
|
+
class PsTablePinService {
|
|
6
|
+
static leading(isPinned, hasReorder, isSelectable) {
|
|
7
|
+
if (!isPinned)
|
|
8
|
+
return { first: '', reorder: '', select: '' };
|
|
9
|
+
const firstOffset = hasReorder && isSelectable
|
|
10
|
+
? ps_table_pin_classes_1.PsTablePinClasses.first.both
|
|
11
|
+
: hasReorder
|
|
12
|
+
? ps_table_pin_classes_1.PsTablePinClasses.first.reorder
|
|
13
|
+
: isSelectable
|
|
14
|
+
? ps_table_pin_classes_1.PsTablePinClasses.first.select
|
|
15
|
+
: ps_table_pin_classes_1.PsTablePinClasses.first.none;
|
|
16
|
+
return {
|
|
17
|
+
first: `${ps_table_pin_classes_1.PsTablePinClasses.cell} ${ps_table_pin_classes_1.PsTablePinClasses.edge} ${firstOffset}`,
|
|
18
|
+
reorder: `${ps_table_pin_classes_1.PsTablePinClasses.cell} ${ps_table_pin_classes_1.PsTablePinClasses.reorder}`,
|
|
19
|
+
select: `${ps_table_pin_classes_1.PsTablePinClasses.cell} ${hasReorder ? ps_table_pin_classes_1.PsTablePinClasses.select.withReorder : ps_table_pin_classes_1.PsTablePinClasses.select.alone}`,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static end(isPinned) {
|
|
23
|
+
return isPinned ? ps_table_pin_classes_1.PsTablePinClasses.end : '';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.PsTablePinService = PsTablePinService;
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import type { Modifier } from '@dnd-kit/core';
|
|
2
|
+
import type { SortingStrategy } from '@dnd-kit/sortable';
|
|
3
|
+
import { PsTableDropPlacement } from '../constants/ps-table-drop-placement';
|
|
2
4
|
import type { PsTableReorderApi } from '../interfaces/table-reorder-api';
|
|
3
5
|
import type { PsTableReorderPlacement } from '../interfaces/table-reorder-placement';
|
|
4
6
|
import type { PsTableReorderRun } from '../interfaces/table-reorder-run';
|
|
5
7
|
export declare class PsTableReorderService {
|
|
8
|
+
static readonly edgeRatio = 0.25;
|
|
9
|
+
static readonly treeKey = "tree";
|
|
6
10
|
static readonly plain: PsTableReorderApi;
|
|
7
11
|
static runs<Item>(items: Item[], getKey: (item: Item) => string, getId: (item: Item) => string): PsTableReorderRun<Item>[];
|
|
8
12
|
static placements<Item>(runs: PsTableReorderRun<Item>[], getId: (item: Item) => string): Map<string, PsTableReorderPlacement>;
|
|
9
13
|
static move(ids: string[], activeId: string, overId: string): string[];
|
|
14
|
+
static pointerY(event: Event | null, deltaY: number): number | null;
|
|
15
|
+
static dropPlacement(pointerY: number | null, rect: {
|
|
16
|
+
height: number;
|
|
17
|
+
top: number;
|
|
18
|
+
}, fallback: PsTableDropPlacement, isAllowed: (placement: PsTableDropPlacement) => boolean): PsTableDropPlacement | null;
|
|
19
|
+
private static candidates;
|
|
20
|
+
static readonly still: SortingStrategy;
|
|
10
21
|
static readonly lockToVerticalAxis: Modifier;
|
|
11
22
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PsTableReorderService = void 0;
|
|
4
|
+
const ps_table_drop_placement_1 = require("../constants/ps-table-drop-placement");
|
|
4
5
|
class PsTableReorderService {
|
|
5
6
|
static runs(items, getKey, getId) {
|
|
6
7
|
const runs = [];
|
|
@@ -35,12 +36,48 @@ class PsTableReorderService {
|
|
|
35
36
|
next.splice(to, 0, moved);
|
|
36
37
|
return next;
|
|
37
38
|
}
|
|
39
|
+
static pointerY(event, deltaY) {
|
|
40
|
+
if (event instanceof MouseEvent)
|
|
41
|
+
return event.clientY + deltaY;
|
|
42
|
+
if (typeof TouchEvent !== 'undefined' &&
|
|
43
|
+
event instanceof TouchEvent &&
|
|
44
|
+
event.touches.length > 0)
|
|
45
|
+
return event.touches[0].clientY + deltaY;
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
static dropPlacement(pointerY, rect, fallback, isAllowed) {
|
|
49
|
+
const allowed = PsTableReorderService.candidates(pointerY, rect, fallback).find(isAllowed);
|
|
50
|
+
return allowed === undefined ? null : allowed;
|
|
51
|
+
}
|
|
52
|
+
static candidates(pointerY, rect, fallback) {
|
|
53
|
+
if (pointerY === null || rect.height <= 0)
|
|
54
|
+
return [fallback];
|
|
55
|
+
const ratio = (pointerY - rect.top) / rect.height;
|
|
56
|
+
if (ratio < PsTableReorderService.edgeRatio)
|
|
57
|
+
return [ps_table_drop_placement_1.PsTableDropPlacement.before, ps_table_drop_placement_1.PsTableDropPlacement.into];
|
|
58
|
+
if (ratio > 1 - PsTableReorderService.edgeRatio)
|
|
59
|
+
return [ps_table_drop_placement_1.PsTableDropPlacement.after, ps_table_drop_placement_1.PsTableDropPlacement.into];
|
|
60
|
+
return [
|
|
61
|
+
ps_table_drop_placement_1.PsTableDropPlacement.into,
|
|
62
|
+
ratio < 0.5 ? ps_table_drop_placement_1.PsTableDropPlacement.before : ps_table_drop_placement_1.PsTableDropPlacement.after,
|
|
63
|
+
];
|
|
64
|
+
}
|
|
38
65
|
}
|
|
39
66
|
exports.PsTableReorderService = PsTableReorderService;
|
|
67
|
+
PsTableReorderService.edgeRatio = 0.25;
|
|
68
|
+
PsTableReorderService.treeKey = 'tree';
|
|
40
69
|
PsTableReorderService.plain = {
|
|
41
70
|
Row: 'tr',
|
|
42
71
|
isActive: false,
|
|
43
|
-
rowProps: (rowId) => ({
|
|
72
|
+
rowProps: (rowId) => ({
|
|
73
|
+
dropPlacement: null,
|
|
74
|
+
handleLabel: '',
|
|
75
|
+
hasHandle: false,
|
|
76
|
+
isDisabled: true,
|
|
77
|
+
isDropTarget: false,
|
|
78
|
+
rowId,
|
|
79
|
+
}),
|
|
44
80
|
run: (_runId, _ids, children) => children,
|
|
45
81
|
};
|
|
82
|
+
PsTableReorderService.still = () => null;
|
|
46
83
|
PsTableReorderService.lockToVerticalAxis = ({ transform }) => ({ ...transform, x: 0 });
|