@pallasoft/ps-table-components 1.22.1 → 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.
Files changed (79) hide show
  1. package/dist/components/ps-data-table.d.ts +2 -1
  2. package/dist/components/ps-data-table.js +47 -11
  3. package/dist/components/ps-table-bulk-bar.js +3 -2
  4. package/dist/components/ps-table-column-picker.js +2 -1
  5. package/dist/components/ps-table-export-button.js +1 -1
  6. package/dist/components/ps-table-group-header.js +1 -1
  7. package/dist/components/ps-table-pagination.js +2 -2
  8. package/dist/components/ps-table-reorder-frame.js +15 -2
  9. package/dist/components/ps-table-reorder-handle.js +1 -1
  10. package/dist/components/ps-table-sort-header.js +2 -2
  11. package/dist/components/ps-table-sortable-row.d.ts +5 -1
  12. package/dist/components/ps-table-sortable-row.js +12 -4
  13. package/dist/components/ps-table-toolbar.js +2 -2
  14. package/dist/constants/ps-table-control-classes.d.ts +9 -0
  15. package/dist/constants/ps-table-control-classes.js +12 -0
  16. package/dist/constants/ps-table-drop-classes.d.ts +2 -0
  17. package/dist/constants/ps-table-drop-classes.js +8 -0
  18. package/dist/constants/ps-table-drop-placement.d.ts +6 -0
  19. package/dist/constants/ps-table-drop-placement.js +8 -0
  20. package/dist/constants/ps-table-pin-classes.d.ts +16 -0
  21. package/dist/constants/ps-table-pin-classes.js +19 -0
  22. package/dist/constants/table-breakpoint.d.ts +7 -0
  23. package/dist/constants/table-breakpoint.js +13 -0
  24. package/dist/esm/components/ps-data-table.js +48 -12
  25. package/dist/esm/components/ps-table-bulk-bar.js +3 -2
  26. package/dist/esm/components/ps-table-column-picker.js +2 -1
  27. package/dist/esm/components/ps-table-export-button.js +1 -1
  28. package/dist/esm/components/ps-table-group-header.js +1 -1
  29. package/dist/esm/components/ps-table-pagination.js +2 -2
  30. package/dist/esm/components/ps-table-reorder-frame.js +15 -2
  31. package/dist/esm/components/ps-table-reorder-handle.js +1 -1
  32. package/dist/esm/components/ps-table-sort-header.js +2 -2
  33. package/dist/esm/components/ps-table-sortable-row.js +12 -4
  34. package/dist/esm/components/ps-table-toolbar.js +2 -2
  35. package/dist/esm/constants/ps-table-control-classes.js +9 -0
  36. package/dist/esm/constants/ps-table-drop-classes.js +5 -0
  37. package/dist/esm/constants/ps-table-drop-placement.js +5 -0
  38. package/dist/esm/constants/ps-table-pin-classes.js +16 -0
  39. package/dist/esm/constants/table-breakpoint.js +10 -0
  40. package/dist/esm/hooks/use-ps-table-overflow.js +19 -0
  41. package/dist/esm/hooks/use-ps-table-reorder.js +89 -15
  42. package/dist/esm/index.js +10 -0
  43. package/dist/esm/interfaces/table-drop.js +1 -0
  44. package/dist/esm/interfaces/table-nesting-announcements.js +1 -0
  45. package/dist/esm/interfaces/table-overflow-edges.js +1 -0
  46. package/dist/esm/interfaces/table-pin-classes.js +1 -0
  47. package/dist/esm/interfaces/table-reorder-nesting-binding.js +1 -0
  48. package/dist/esm/interfaces/table-reorder-nesting.js +1 -0
  49. package/dist/esm/services/ps-table-overflow-service.js +11 -0
  50. package/dist/esm/services/ps-table-pin-service.js +22 -0
  51. package/dist/esm/services/ps-table-reorder-service.js +38 -1
  52. package/dist/hooks/use-ps-table-overflow.d.ts +6 -0
  53. package/dist/hooks/use-ps-table-overflow.js +23 -0
  54. package/dist/hooks/use-ps-table-reorder.d.ts +6 -2
  55. package/dist/hooks/use-ps-table-reorder.js +87 -13
  56. package/dist/index.d.ts +10 -0
  57. package/dist/index.js +10 -0
  58. package/dist/interfaces/table-column.d.ts +3 -0
  59. package/dist/interfaces/table-drop.d.ts +5 -0
  60. package/dist/interfaces/table-drop.js +2 -0
  61. package/dist/interfaces/table-nesting-announcements.d.ts +5 -0
  62. package/dist/interfaces/table-nesting-announcements.js +2 -0
  63. package/dist/interfaces/table-overflow-edges.d.ts +4 -0
  64. package/dist/interfaces/table-overflow-edges.js +2 -0
  65. package/dist/interfaces/table-pin-classes.d.ts +5 -0
  66. package/dist/interfaces/table-pin-classes.js +2 -0
  67. package/dist/interfaces/table-reorder-nesting-binding.d.ts +8 -0
  68. package/dist/interfaces/table-reorder-nesting-binding.js +2 -0
  69. package/dist/interfaces/table-reorder-nesting.d.ts +8 -0
  70. package/dist/interfaces/table-reorder-nesting.js +2 -0
  71. package/dist/interfaces/table-reorder-row-props.d.ts +3 -0
  72. package/dist/interfaces/table-reorder.d.ts +4 -2
  73. package/dist/services/ps-table-overflow-service.d.ts +6 -0
  74. package/dist/services/ps-table-overflow-service.js +15 -0
  75. package/dist/services/ps-table-pin-service.d.ts +5 -0
  76. package/dist/services/ps-table-pin-service.js +26 -0
  77. package/dist/services/ps-table-reorder-service.d.ts +11 -0
  78. package/dist/services/ps-table-reorder-service.js +38 -1
  79. package/package.json +2 -2
@@ -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) => ({ handleLabel: '', hasHandle: false, isDisabled: true, 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 });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pallasoft/ps-table-components",
3
- "version": "1.22.1",
3
+ "version": "1.23.0",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -39,6 +39,7 @@
39
39
  "@commitlint/config-conventional": "^20.0.0",
40
40
  "@eslint/compat": "^2.0.0",
41
41
  "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
42
+ "@pallasoft/ps-design-system": "^1.14.0",
42
43
  "@semantic-release/changelog": "^6.0.3",
43
44
  "@semantic-release/commit-analyzer": "^13.0.0",
44
45
  "@semantic-release/git": "^10.0.1",
@@ -78,7 +79,6 @@
78
79
  "@dnd-kit/sortable": "^10.0.0",
79
80
  "@dnd-kit/utilities": "^3.2.2",
80
81
  "@pallasoft/ps-core-components": "^2.23.0",
81
- "@pallasoft/ps-design-system": "^1.5.0",
82
82
  "@pallasoft/ps-icons": "^1.5.4",
83
83
  "@pallasoft/ps-input-components": "^1.14.0 || ^2.0.0",
84
84
  "@pallasoft/ps-motion-components": "^1.2.0",