akeneo-design-system 0.1.239 → 0.1.241

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 (50) hide show
  1. package/jest.unit.config.js +8 -7
  2. package/lib/components/Image/Image.d.ts +3 -1
  3. package/lib/components/Image/Image.js +8 -4
  4. package/lib/components/Image/Image.js.map +1 -1
  5. package/lib/components/Input/TableInput/TableInput.d.ts +2 -3
  6. package/lib/components/Input/TableInput/TableInput.js +3 -1
  7. package/lib/components/Input/TableInput/TableInput.js.map +1 -1
  8. package/lib/components/Input/TableInput/TableInputBody/TableInputBody.js +4 -6
  9. package/lib/components/Input/TableInput/TableInputBody/TableInputBody.js.map +1 -1
  10. package/lib/components/Input/TableInput/TableInputContext.d.ts +1 -1
  11. package/lib/components/Input/TableInput/TableInputRow/TableInputRow.d.ts +1 -5
  12. package/lib/components/Input/TableInput/TableInputRow/TableInputRow.js +7 -5
  13. package/lib/components/Input/TableInput/TableInputRow/TableInputRow.js.map +1 -1
  14. package/lib/components/ProgressIndicator/ProgressIndicator.d.ts +1 -1
  15. package/lib/components/Table/Table.d.ts +3 -4
  16. package/lib/components/Table/Table.js +3 -1
  17. package/lib/components/Table/Table.js.map +1 -1
  18. package/lib/components/Table/TableBody/TableBody.js +4 -6
  19. package/lib/components/Table/TableBody/TableBody.js.map +1 -1
  20. package/lib/components/Table/TableContext.d.ts +1 -1
  21. package/lib/components/Table/TableRow/TableRow.d.ts +1 -5
  22. package/lib/components/Table/TableRow/TableRow.js +7 -3
  23. package/lib/components/Table/TableRow/TableRow.js.map +1 -1
  24. package/lib/contexts/DraggedElementContext.d.ts +11 -0
  25. package/lib/contexts/DraggedElementContext.js +23 -0
  26. package/lib/contexts/DraggedElementContext.js.map +1 -0
  27. package/lib/hooks/useDrop.d.ts +1 -1
  28. package/lib/hooks/useDrop.js +6 -1
  29. package/lib/hooks/useDrop.js.map +1 -1
  30. package/lib/hooks/usePlaceholderPosition.js +6 -6
  31. package/lib/hooks/usePlaceholderPosition.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-image-background-correctly-1-snap.png +0 -0
  34. package/src/components/Image/Image.stories.mdx +18 -0
  35. package/src/components/Image/Image.tsx +27 -2
  36. package/src/components/Input/TableInput/TableInput.tsx +7 -3
  37. package/src/components/Input/TableInput/TableInput.unit.tsx +2 -2
  38. package/src/components/Input/TableInput/TableInputBody/TableInputBody.tsx +2 -4
  39. package/src/components/Input/TableInput/TableInputContext.ts +1 -1
  40. package/src/components/Input/TableInput/TableInputRow/TableInputRow.tsx +7 -15
  41. package/src/components/Table/Table.tsx +6 -2
  42. package/src/components/Table/Table.unit.tsx +1 -1
  43. package/src/components/Table/TableBody/TableBody.tsx +2 -4
  44. package/src/components/Table/TableContext.ts +1 -1
  45. package/src/components/Table/TableRow/TableRow.tsx +7 -24
  46. package/src/contexts/DraggedElementContext.tsx +27 -0
  47. package/src/hooks/useDrop.ts +6 -2
  48. package/src/hooks/useDrop.unit.tsx +39 -1
  49. package/src/hooks/usePlaceholderPosition.ts +6 -6
  50. package/src/hooks/usePlaceholderPosition.unit.ts +7 -1
@@ -3,7 +3,7 @@ module.exports = {
3
3
  moduleFileExtensions: ['js', 'ts', 'tsx'],
4
4
  moduleDirectories: ['node_modules', 'src'],
5
5
  moduleNameMapper: {
6
- "\\.(jpg|ico|jpeg|png|gif|svg|css)$": "<rootDir>/__mocks__/fileMock.js"
6
+ '\\.(jpg|ico|jpeg|png|gif|svg|css)$': '<rootDir>/__mocks__/fileMock.js',
7
7
  },
8
8
  roots: ['<rootDir>'],
9
9
  setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect'],
@@ -18,12 +18,13 @@ module.exports = {
18
18
  collectCoverageFrom: ['src/**/*.ts?(x)', '!**/*.visual.ts?(x)'],
19
19
  cacheDirectory: '/tmp/jest',
20
20
  coveragePathIgnorePatterns: [
21
- 'src/illustrations',
22
- 'src/icons',
23
- 'src/theme',
24
- 'src/storybook',
25
- 'generator',
26
- 'src/shared/PreviewGallery',
21
+ 'src/illustrations',
22
+ 'src/icons',
23
+ 'src/theme',
24
+ 'src/storybook',
25
+ 'generator',
26
+ 'src/shared/PreviewGallery',
27
+ 'src/contexts',
27
28
  ],
28
29
  coverageReporters: ['text-summary', 'html'],
29
30
  coverageDirectory: 'coverage',
@@ -1,11 +1,13 @@
1
1
  import React from 'react';
2
2
  declare type Fit = 'cover' | 'contain';
3
- declare const Image: React.ForwardRefExoticComponent<Omit<React.ImgHTMLAttributes<HTMLImageElement>, "height" | "width" | "alt" | "src" | "fit" | "isStacked"> & {
3
+ declare type Background = 'white' | 'checkerboard';
4
+ declare const Image: React.ForwardRefExoticComponent<Omit<React.ImgHTMLAttributes<HTMLImageElement>, "height" | "width" | "alt" | "src" | "fit" | "isStacked" | "background"> & {
4
5
  src: string | null;
5
6
  alt: string;
6
7
  width?: number | undefined;
7
8
  height?: number | undefined;
8
9
  fit?: Fit | undefined;
9
10
  isStacked?: boolean | undefined;
11
+ background?: Background | undefined;
10
12
  } & React.RefAttributes<HTMLImageElement>>;
11
13
  export { Image };
@@ -53,7 +53,7 @@ var react_1 = __importDefault(require("react"));
53
53
  var styled_components_1 = __importStar(require("styled-components"));
54
54
  var theme_1 = require("../../theme");
55
55
  var EMPTY_IMAGE = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>';
56
- var ImageContainer = styled_components_1.default.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background: ", ";\n border: 1px solid ", ";\n object-fit: ", ";\n box-sizing: border-box;\n\n ", "\n\n ", "\n"], ["\n background: ", ";\n border: 1px solid ", ";\n object-fit: ", ";\n box-sizing: border-box;\n\n ", "\n\n ", "\n"])), (0, theme_1.getColor)('white'), (0, theme_1.getColor)('grey', 80), function (_a) {
56
+ var ImageContainer = styled_components_1.default.img(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border: 1px solid ", ";\n object-fit: ", ";\n box-sizing: border-box;\n\n ", "\n\n ", "\n \n ", "\n"], ["\n border: 1px solid ", ";\n object-fit: ", ";\n box-sizing: border-box;\n\n ", "\n\n ", "\n \n ", "\n"])), (0, theme_1.getColor)('grey', 80), function (_a) {
57
57
  var fit = _a.fit;
58
58
  return fit;
59
59
  }, function (_a) {
@@ -62,11 +62,15 @@ var ImageContainer = styled_components_1.default.img(templateObject_2 || (templa
62
62
  }, function (_a) {
63
63
  var isLoading = _a.isLoading;
64
64
  return isLoading && theme_1.placeholderStyle;
65
+ }, function (_a) {
66
+ var background = _a.background;
67
+ return background === 'checkerboard'
68
+ ? (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-image: linear-gradient(45deg, ", " 25%, transparent 25%),\n linear-gradient(135deg, ", " 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, ", " 75%),\n linear-gradient(135deg, transparent 75%, ", " 75%);\n background-size: 25px 25px; /* Must be a square */\n background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px; /* Must be half of one side of the square */\n "], ["\n background-image: linear-gradient(45deg, ", " 25%, transparent 25%),\n linear-gradient(135deg, ", " 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, ", " 75%),\n linear-gradient(135deg, transparent 75%, ", " 75%);\n background-size: 25px 25px; /* Must be a square */\n background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px; /* Must be half of one side of the square */\n "])), (0, theme_1.getColor)('grey', 60), (0, theme_1.getColor)('grey', 60), (0, theme_1.getColor)('grey', 60), (0, theme_1.getColor)('grey', 60)) : (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n "], ["\n background: ", ";\n "])), (0, theme_1.getColor)(background));
65
69
  });
66
70
  var Image = react_1.default.forwardRef(function (_a, forwardedRef) {
67
- var _b = _a.fit, fit = _b === void 0 ? 'cover' : _b, _c = _a.isStacked, isStacked = _c === void 0 ? false : _c, src = _a.src, rest = __rest(_a, ["fit", "isStacked", "src"]);
68
- return (react_1.default.createElement(ImageContainer, __assign({ isLoading: null === src, src: src !== null && src !== void 0 ? src : EMPTY_IMAGE, ref: forwardedRef, fit: fit, isStacked: isStacked }, rest)));
71
+ var _b = _a.fit, fit = _b === void 0 ? 'cover' : _b, _c = _a.isStacked, isStacked = _c === void 0 ? false : _c, _d = _a.background, background = _d === void 0 ? 'white' : _d, src = _a.src, rest = __rest(_a, ["fit", "isStacked", "background", "src"]);
72
+ return (react_1.default.createElement(ImageContainer, __assign({ isLoading: null === src, src: src !== null && src !== void 0 ? src : EMPTY_IMAGE, ref: forwardedRef, fit: fit, isStacked: isStacked, background: background }, rest)));
69
73
  });
70
74
  exports.Image = Image;
71
- var templateObject_1, templateObject_2;
75
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
72
76
  //# sourceMappingURL=Image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/components/Image/Image.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAiC;AACjC,qEAA8C;AAC9C,qCAAuD;AAIvD,IAAM,WAAW,GAAG,8DAA8D,CAAC;AAInF,IAAM,cAAc,GAAG,2BAAM,CAAC,GAAG,2LAMhC,kBACe,EAAiB,yBACX,EAAoB,mBAC1B,EAAc,oCAG1B,EAKC,QAED,EAA8C,IACjD,KAbe,IAAA,gBAAQ,EAAC,OAAO,CAAC,EACX,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EAC1B,UAAC,EAAK;QAAJ,GAAG,SAAA;IAAM,OAAA,GAAG;AAAH,CAAG,EAG1B,UAAC,EAAW;QAAV,SAAS,eAAA;IACX,OAAA,SAAS,QACT,uBAAG,oLAAA,mCAC0B,EAAiB,iBAAkB,EAAoB,0BACjE,EAAiB,iBAAkB,EAAoB,SACzE,KAF4B,IAAA,gBAAQ,EAAC,OAAO,CAAC,EAAkB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EACjE,IAAA,gBAAQ,EAAC,OAAO,CAAC,EAAkB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,CACzE;AAJD,CAIC,EAED,UAAC,EAAW;QAAV,SAAS,eAAA;IAAM,OAAA,SAAS,IAAI,wBAAgB;AAA7B,CAA6B,CACjD,CAAC;AAwCF,IAAM,KAAK,GAAG,eAAK,CAAC,UAAU,CAC5B,UAAC,EAA4D,EAAE,YAAmC;IAAhG,IAAA,WAAa,EAAb,GAAG,mBAAG,OAAO,KAAA,EAAE,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EAAE,GAAG,SAAA,EAAK,IAAI,cAA/C,2BAAgD,CAAD;IAC9C,OAAO,CACL,8BAAC,cAAc,aACb,SAAS,EAAE,IAAI,KAAK,GAAG,EACvB,GAAG,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,WAAW,EACvB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,IAChB,IAAI,EACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEM,sBAAK"}
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/components/Image/Image.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAiC;AACjC,qEAA8C;AAC9C,qCAAuD;AAIvD,IAAM,WAAW,GAAG,8DAA8D,CAAC;AAMnF,IAAM,cAAc,GAAG,2BAAM,CAAC,GAAG,kLAOhC,wBACqB,EAAoB,mBAC1B,EAAc,oCAG1B,EAKC,QAED,EAA8C,UAE9C,EAYK,IACR,KA1BqB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EAC1B,UAAC,EAAK;QAAJ,GAAG,SAAA;IAAM,OAAA,GAAG;AAAH,CAAG,EAG1B,UAAC,EAAW;QAAV,SAAS,eAAA;IACX,OAAA,SAAS,QACT,uBAAG,oLAAA,mCAC0B,EAAiB,iBAAkB,EAAoB,0BACjE,EAAiB,iBAAkB,EAAoB,SACzE,KAF4B,IAAA,gBAAQ,EAAC,OAAO,CAAC,EAAkB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EACjE,IAAA,gBAAQ,EAAC,OAAO,CAAC,EAAkB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,CACzE;AAJD,CAIC,EAED,UAAC,EAAW;QAAV,SAAS,eAAA;IAAM,OAAA,SAAS,IAAI,wBAAgB;AAA7B,CAA6B,EAE9C,UAAC,EAAY;QAAX,UAAU,gBAAA;IACZ,OAAA,UAAU,KAAK,cAAc;QAC3B,CAAC,KAAC,uBAAG,whBAAA,uDAC0C,EAAoB,+DACnC,EAAoB,+EACJ,EAAoB,+DACnB,EAAoB,wMAGlE,KAN4C,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EACnC,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EACJ,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EACnB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EAIrE,CAAC,KAAC,uBAAG,6GAAA,0BACa,EAAoB,aACnC,KADe,IAAA,gBAAQ,EAAC,UAAU,CAAC,CACnC;AAXL,CAWK,CACR,CAAC;AA6CF,IAAM,KAAK,GAAG,eAAK,CAAC,UAAU,CAC5B,UACE,EAAkF,EAClF,YAAmC;IADlC,IAAA,WAAa,EAAb,GAAG,mBAAG,OAAO,KAAA,EAAE,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EAAE,kBAAoB,EAApB,UAAU,mBAAG,OAAO,KAAA,EAAE,GAAG,SAAA,EAAK,IAAI,cAArE,yCAAsE,CAAD;IAGrE,OAAO,CACL,8BAAC,cAAc,aACb,SAAS,EAAE,IAAI,KAAK,GAAG,EACvB,GAAG,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,WAAW,EACvB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,IAClB,IAAI,EACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEM,sBAAK"}
@@ -15,12 +15,10 @@ declare const TableInput: {
15
15
  Body: React.ForwardRefExoticComponent<{
16
16
  children?: React.ReactNode;
17
17
  } & React.RefAttributes<HTMLTableSectionElement>>;
18
- Row: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "onDragEnd" | "onDragStart" | "highlighted" | "rowIndex"> & {
18
+ Row: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "highlighted" | "rowIndex"> & {
19
19
  children?: React.ReactNode;
20
20
  highlighted?: boolean | undefined;
21
21
  rowIndex?: number | undefined;
22
- onDragStart?: ((rowIndex: number) => void) | undefined;
23
- onDragEnd?: (() => void) | undefined;
24
22
  } & React.RefAttributes<HTMLTableRowElement>>;
25
23
  Cell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
26
24
  CellContent: {
@@ -87,3 +85,4 @@ declare const TableInput: {
87
85
  }>;
88
86
  };
89
87
  export { TableInput };
88
+ export type { TableInputProps };
@@ -64,6 +64,7 @@ var TableInputSelect_1 = require("./TableInputSelect/TableInputSelect");
64
64
  var TableInputContext_1 = require("./TableInputContext");
65
65
  var TableInputCellContent_1 = require("./TableInputCellContent/TableInputCellContent");
66
66
  var TableInputMeasurement_1 = require("./TableInputMeasurement/TableInputMeasurement");
67
+ var DraggedElementContext_1 = require("../../../contexts/DraggedElementContext");
67
68
  var TableInputContainer = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n overflow: auto;\n"], ["\n width: 100%;\n overflow: auto;\n"])));
68
69
  var TableInputTable = styled_components_1.default.table(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border-spacing: 0;\n width: 100%;\n\n & th:first-child {\n transition: box-shadow 0.15s;\n }\n &.shadowed th:first-child {\n box-shadow: rgba(0, 0, 0, 0.2) 0px 7.5px 15px 0px;\n }\n\n ", "\n"], ["\n border-spacing: 0;\n width: 100%;\n\n & th:first-child {\n transition: box-shadow 0.15s;\n }\n &.shadowed th:first-child {\n box-shadow: rgba(0, 0, 0, 0.2) 0px 7.5px 15px 0px;\n }\n\n ", "\n"])), function (_a) {
69
70
  var isDragAndDroppable = _a.isDragAndDroppable;
@@ -78,7 +79,8 @@ var TableInput = function (_a) {
78
79
  };
79
80
  return (react_1.default.createElement(TableInputContext_1.TableInputContext.Provider, { value: { readOnly: readOnly, isDragAndDroppable: isDragAndDroppable, onReorder: onReorder } },
80
81
  react_1.default.createElement(TableInputContainer, __assign({ onScroll: handleScroll }, rest),
81
- react_1.default.createElement(TableInputTable, { className: shadowed ? 'shadowed' : '', isDragAndDroppable: isDragAndDroppable }, children))));
82
+ react_1.default.createElement(DraggedElementContext_1.DraggedElementProvider, null,
83
+ react_1.default.createElement(TableInputTable, { className: shadowed ? 'shadowed' : '', isDragAndDroppable: isDragAndDroppable }, children)))));
82
84
  };
83
85
  exports.TableInput = TableInput;
84
86
  TableInput.Header = TableInputHeader_1.TableInputHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"TableInput.js","sourceRoot":"","sources":["../../../../src/components/Input/TableInput/TableInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuC;AACvC,qEAA8C;AAE9C,wEAAqE;AACrE,oFAAiF;AACjF,kEAA+D;AAC/D,kEAA+D;AAC/D,+DAA4D;AAC5D,kEAA+D;AAC/D,kEAA+D;AAC/D,wEAAqE;AACrE,2EAAwE;AACxE,wEAAqE;AACrE,yDAAsD;AAEtD,uFAAoF;AACpF,uFAAoF;AAEpF,IAAM,mBAAmB,GAAG,2BAAM,CAAC,GAAG,0GAAA,uCAGrC,IAAA,CAAC;AAEF,IAAM,eAAe,GAAG,2BAAM,CAAC,KAAK,mRAAmD,0MAWnF,EAiBK,IACR,KAlBG,UAAC,EAAoB;QAAnB,kBAAkB,wBAAA;IACpB,OAAA,CAAC,kBAAkB;QACjB,CAAC,KAAC,uBAAG,mSAAA,+NAOF,KACH,CAAC,KAAC,uBAAG,qSAAA,iOAOF,IAAA;AAhBL,CAgBK,CACR,CAAC;AA+BF,IAAM,UAAU,GAAG,UAAC,EAA6F;IAA5F,IAAA,QAAQ,cAAA,EAAE,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAAE,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA3E,2DAA4E,CAAD;IACvF,IAAA,KAA0B,eAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,EAAvD,QAAQ,QAAA,EAAE,WAAW,QAAkC,CAAC;IAC/D,IAAM,YAAY,GAAG,UAAC,KAAiC;QACrD,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO,CACL,8BAAC,qCAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,QAAQ,UAAA,EAAE,kBAAkB,oBAAA,EAAE,SAAS,WAAA,EAAC;QAC1E,8BAAC,mBAAmB,aAAC,QAAQ,EAAE,YAAY,IAAM,IAAI;YACnD,8BAAC,eAAe,IAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,IAC3F,QAAQ,CACO,CACE,CACK,CAC9B,CAAC;AACJ,CAAC,CAAC;AAeM,gCAAU;AAblB,UAAU,CAAC,MAAM,GAAG,mCAAgB,CAAC;AACrC,UAAU,CAAC,UAAU,GAAG,2CAAoB,CAAC;AAC7C,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,GAAG,GAAG,6BAAa,CAAC;AAC/B,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,WAAW,GAAG,6CAAqB,CAAC;AAC/C,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,MAAM,GAAG,mCAAgB,CAAC;AACrC,UAAU,CAAC,OAAO,GAAG,qCAAiB,CAAC;AACvC,UAAU,CAAC,MAAM,GAAG,mCAAgB,CAAC;AACrC,UAAU,CAAC,WAAW,GAAG,6CAAqB,CAAC"}
1
+ {"version":3,"file":"TableInput.js","sourceRoot":"","sources":["../../../../src/components/Input/TableInput/TableInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuC;AACvC,qEAA8C;AAE9C,wEAAqE;AACrE,oFAAiF;AACjF,kEAA+D;AAC/D,kEAA+D;AAC/D,+DAA4D;AAC5D,kEAA+D;AAC/D,kEAA+D;AAC/D,wEAAqE;AACrE,2EAAwE;AACxE,wEAAqE;AACrE,yDAAsD;AAEtD,uFAAoF;AACpF,uFAAoF;AACpF,iFAA+E;AAE/E,IAAM,mBAAmB,GAAG,2BAAM,CAAC,GAAG,0GAAA,uCAGrC,IAAA,CAAC;AAEF,IAAM,eAAe,GAAG,2BAAM,CAAC,KAAK,mRAAmD,0MAWnF,EAiBK,IACR,KAlBG,UAAC,EAAoB;QAAnB,kBAAkB,wBAAA;IACpB,OAAA,CAAC,kBAAkB;QACjB,CAAC,KAAC,uBAAG,mSAAA,+NAOF,KACH,CAAC,KAAC,uBAAG,qSAAA,iOAOF,IAAA;AAhBL,CAgBK,CACR,CAAC;AA+BF,IAAM,UAAU,GAAG,UAAC,EAA6F;IAA5F,IAAA,QAAQ,cAAA,EAAE,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAAE,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA3E,2DAA4E,CAAD;IACvF,IAAA,KAA0B,eAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,EAAvD,QAAQ,QAAA,EAAE,WAAW,QAAkC,CAAC;IAC/D,IAAM,YAAY,GAAG,UAAC,KAAiC;QACrD,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO,CACL,8BAAC,qCAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,QAAQ,UAAA,EAAE,kBAAkB,oBAAA,EAAE,SAAS,WAAA,EAAC;QAC1E,8BAAC,mBAAmB,aAAC,QAAQ,EAAE,YAAY,IAAM,IAAI;YACnD,8BAAC,8CAAsB;gBACrB,8BAAC,eAAe,IAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,IAC3F,QAAQ,CACO,CACK,CACL,CACK,CAC9B,CAAC;AACJ,CAAC,CAAC;AAeM,gCAAU;AAblB,UAAU,CAAC,MAAM,GAAG,mCAAgB,CAAC;AACrC,UAAU,CAAC,UAAU,GAAG,2CAAoB,CAAC;AAC7C,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,GAAG,GAAG,6BAAa,CAAC;AAC/B,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,WAAW,GAAG,6CAAqB,CAAC;AAC/C,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,IAAI,GAAG,+BAAc,CAAC;AACjC,UAAU,CAAC,MAAM,GAAG,mCAAgB,CAAC;AACrC,UAAU,CAAC,OAAO,GAAG,qCAAiB,CAAC;AACvC,UAAU,CAAC,MAAM,GAAG,mCAAgB,CAAC;AACrC,UAAU,CAAC,WAAW,GAAG,6CAAqB,CAAC"}
@@ -44,12 +44,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
44
44
  exports.TableInputBody = void 0;
45
45
  var react_1 = __importStar(require("react"));
46
46
  var TableInputContext_1 = require("../TableInputContext");
47
- var useDragElementIndex_1 = require("../../../../hooks/useDragElementIndex");
48
47
  var useDrop_1 = require("../../../../hooks/useDrop");
48
+ var DraggedElementContext_1 = require("../../../../contexts/DraggedElementContext");
49
49
  var TableInputBody = react_1.default.forwardRef(function (_a, forwardedRef) {
50
50
  var children = _a.children, rest = __rest(_a, ["children"]);
51
- var _b = (0, useDragElementIndex_1.useDragElementIndex)(), draggedElementIndex = _b[0], onDragStart = _b[1], onDragEnd = _b[2];
52
- var _c = (0, react_1.useContext)(TableInputContext_1.TableInputContext), isDragAndDroppable = _c.isDragAndDroppable, onReorder = _c.onReorder;
51
+ var _b = (0, react_1.useContext)(TableInputContext_1.TableInputContext), isDragAndDroppable = _b.isDragAndDroppable, onReorder = _b.onReorder;
52
+ var draggedElementIndex = (0, react_1.useContext)(DraggedElementContext_1.DraggedElementContext).index;
53
53
  var decoratedChildren = react_1.Children.map(children, function (child, rowIndex) {
54
54
  if (!react_1.default.isValidElement(child)) {
55
55
  return null;
@@ -58,15 +58,13 @@ var TableInputBody = react_1.default.forwardRef(function (_a, forwardedRef) {
58
58
  ? (0, react_1.cloneElement)(child, {
59
59
  rowIndex: rowIndex,
60
60
  draggable: rowIndex === draggedElementIndex,
61
- onDragStart: onDragStart,
62
- onDragEnd: onDragEnd,
63
61
  })
64
62
  : (0, react_1.cloneElement)(child, {
65
63
  rowIndex: rowIndex,
66
64
  });
67
65
  });
68
66
  var rowCount = react_1.Children.count(decoratedChildren);
69
- var _d = (0, useDrop_1.useDrop)(rowCount, draggedElementIndex, onReorder), tableId = _d[0], onDrop = _d[1], onDragOver = _d[2];
67
+ var _c = (0, useDrop_1.useDrop)(rowCount, draggedElementIndex, onReorder), tableId = _c[0], onDrop = _c[1], onDragOver = _c[2];
70
68
  return (react_1.default.createElement("tbody", __assign({ "data-table-id": tableId, onDrop: onDrop, onDragOver: onDragOver, ref: forwardedRef }, rest), decoratedChildren));
71
69
  });
72
70
  exports.TableInputBody = TableInputBody;
@@ -1 +1 @@
1
- {"version":3,"file":"TableInputBody.js","sourceRoot":"","sources":["../../../../../src/components/Input/TableInput/TableInputBody/TableInputBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgF;AAChF,0DAAuD;AAEvD,6EAA0E;AAC1E,qDAAkD;AAMlD,IAAM,cAAc,GAAG,eAAK,CAAC,UAAU,CACrC,UAAC,EAAwC,EAAE,YAA0C;IAAnF,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAlB,YAAmB,CAAD;IACX,IAAA,KAAgD,IAAA,yCAAmB,GAAE,EAApE,mBAAmB,QAAA,EAAE,WAAW,QAAA,EAAE,SAAS,QAAyB,CAAC;IACtE,IAAA,KAAkC,IAAA,kBAAU,EAAC,qCAAiB,CAAC,EAA9D,kBAAkB,wBAAA,EAAE,SAAS,eAAiC,CAAC;IAEtE,IAAM,iBAAiB,GAAG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,QAAQ;QAC/D,IAAI,CAAC,eAAK,CAAC,cAAc,CAAqB,KAAK,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,kBAAkB;YACvB,CAAC,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE;gBAClB,QAAQ,UAAA;gBACR,SAAS,EAAE,QAAQ,KAAK,mBAAmB;gBAC3C,WAAW,aAAA;gBACX,SAAS,WAAA;aACV,CAAC;YACJ,CAAC,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE;gBAClB,QAAQ,UAAA;aACT,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,IAAM,QAAQ,GAAG,gBAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAA,KAAgC,IAAA,iBAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAhF,OAAO,QAAA,EAAE,MAAM,QAAA,EAAE,UAAU,QAAqD,CAAC;IAExF,OAAO,CACL,mEAAsB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,IAAM,IAAI,GAC/F,iBAAiB,CACZ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAIM,wCAAc;AAFtB,cAAc,CAAC,WAAW,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"TableInputBody.js","sourceRoot":"","sources":["../../../../../src/components/Input/TableInput/TableInputBody/TableInputBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgF;AAChF,0DAAuD;AAEvD,qDAAkD;AAClD,oFAAiF;AAMjF,IAAM,cAAc,GAAG,eAAK,CAAC,UAAU,CACrC,UAAC,EAAwC,EAAE,YAA0C;IAAnF,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAlB,YAAmB,CAAD;IACX,IAAA,KAAkC,IAAA,kBAAU,EAAC,qCAAiB,CAAC,EAA9D,kBAAkB,wBAAA,EAAE,SAAS,eAAiC,CAAC;IAC/D,IAAO,mBAAmB,GAAI,IAAA,kBAAU,EAAC,6CAAqB,CAAC,MAArC,CAAsC;IAEvE,IAAM,iBAAiB,GAAG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,QAAQ;QAC/D,IAAI,CAAC,eAAK,CAAC,cAAc,CAAqB,KAAK,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,kBAAkB;YACvB,CAAC,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE;gBAClB,QAAQ,UAAA;gBACR,SAAS,EAAE,QAAQ,KAAK,mBAAmB;aAC5C,CAAC;YACJ,CAAC,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE;gBAClB,QAAQ,UAAA;aACT,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,IAAM,QAAQ,GAAG,gBAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAA,KAAgC,IAAA,iBAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAhF,OAAO,QAAA,EAAE,MAAM,QAAA,EAAE,UAAU,QAAqD,CAAC;IAExF,OAAO,CACL,mEAAsB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,IAAM,IAAI,GAC/F,iBAAiB,CACZ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAIM,wCAAc;AAFtB,cAAc,CAAC,WAAW,GAAG,iBAAiB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  declare type TableInputContextType = {
2
2
  readOnly: boolean;
3
3
  isDragAndDroppable: boolean;
4
- onReorder: ((reorderedIndices: number[]) => void) | undefined;
4
+ onReorder: ((reorderedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void) | undefined;
5
5
  };
6
6
  declare const TableInputContext: import("react").Context<TableInputContextType>;
7
7
  export { TableInputContext };
@@ -4,14 +4,10 @@ export declare type TableInputRowProps = Override<HTMLAttributes<HTMLTableRowEle
4
4
  children?: ReactNode;
5
5
  highlighted?: boolean;
6
6
  rowIndex?: number;
7
- onDragStart?: (rowIndex: number) => void;
8
- onDragEnd?: () => void;
9
7
  }>;
10
- declare const TableInputRow: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "onDragEnd" | "onDragStart" | "highlighted" | "rowIndex"> & {
8
+ declare const TableInputRow: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "highlighted" | "rowIndex"> & {
11
9
  children?: ReactNode;
12
10
  highlighted?: boolean | undefined;
13
11
  rowIndex?: number | undefined;
14
- onDragStart?: ((rowIndex: number) => void) | undefined;
15
- onDragEnd?: (() => void) | undefined;
16
12
  } & React.RefAttributes<HTMLTableRowElement>>;
17
13
  export { TableInputRow };
@@ -53,6 +53,7 @@ var TableInputContext_1 = require("../TableInputContext");
53
53
  var icons_1 = require("../../../../icons");
54
54
  var TableInputCell_1 = require("../TableInputCell/TableInputCell");
55
55
  var usePlaceholderPosition_1 = require("../../../../hooks/usePlaceholderPosition");
56
+ var DraggedElementContext_1 = require("../../../../contexts/DraggedElementContext");
56
57
  var getZebraBackgroundColor = function (highlighted, rowIndex) {
57
58
  return highlighted ? (0, theme_1.getColor)('blue', 10) : rowIndex % 2 === 0 ? (0, theme_1.getColor)('white') : (0, theme_1.getColor)('grey', 20);
58
59
  };
@@ -74,17 +75,18 @@ var TableInputTr = styled_components_1.default.tr(templateObject_6 || (templateO
74
75
  });
75
76
  var DragAndDropCell = (0, styled_components_1.default)(TableInputCell_1.TableInputCell)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n max-width: 26px;\n min-width: 26px;\n width: 26px;\n color: ", ";\n text-align: right;\n cursor: grab;\n vertical-align: middle;\n line-height: 0px !important;\n & > div {\n height: 39px;\n vertical-align: middle;\n line-height: 44px;\n }\n"], ["\n max-width: 26px;\n min-width: 26px;\n width: 26px;\n color: ", ";\n text-align: right;\n cursor: grab;\n vertical-align: middle;\n line-height: 0px !important;\n & > div {\n height: 39px;\n vertical-align: middle;\n line-height: 44px;\n }\n"])), (0, theme_1.getColor)('grey', 100));
76
77
  var TableInputRow = (0, react_1.forwardRef)(function (_a, forwardedRef) {
77
- var children = _a.children, _b = _a.rowIndex, rowIndex = _b === void 0 ? 0 : _b, draggable = _a.draggable, _c = _a.highlighted, highlighted = _c === void 0 ? false : _c, onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, rest = __rest(_a, ["children", "rowIndex", "draggable", "highlighted", "onDragStart", "onDragEnd"]);
78
+ var children = _a.children, _b = _a.rowIndex, rowIndex = _b === void 0 ? 0 : _b, draggable = _a.draggable, _c = _a.highlighted, highlighted = _c === void 0 ? false : _c, rest = __rest(_a, ["children", "rowIndex", "draggable", "highlighted"]);
78
79
  var _d = (0, usePlaceholderPosition_1.usePlaceholderPosition)(rowIndex), placeholderPosition = _d[0], placeholderDragEnter = _d[1], placeholderDragLeave = _d[2], placeholderDragEnd = _d[3];
79
80
  var isDragAndDroppable = (0, react_1.useContext)(TableInputContext_1.TableInputContext).isDragAndDroppable;
80
- var handleDragEnter = function (event) {
81
- if (isDragAndDroppable) {
82
- placeholderDragEnter(parseInt(event.dataTransfer.getData('text')));
81
+ var _e = (0, react_1.useContext)(DraggedElementContext_1.DraggedElementContext), draggedElementIndex = _e.index, onDragStart = _e.onDragStart, onDragEnd = _e.onDragEnd;
82
+ var handleDragEnter = function () {
83
+ if (isDragAndDroppable && null !== draggedElementIndex) {
84
+ placeholderDragEnter(draggedElementIndex);
83
85
  }
84
86
  };
85
87
  var handleDragStart = function (event) {
86
88
  if (isDragAndDroppable) {
87
- event.dataTransfer.setData('text', rowIndex.toString());
89
+ event.dataTransfer.setData('text/plain', rowIndex.toString());
88
90
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(rowIndex);
89
91
  }
90
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TableInputRow.js","sourceRoot":"","sources":["../../../../../src/components/Input/TableInput/TableInputRow/TableInputRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableInputRow.js","sourceRoot":"","sources":["../../../../../src/components/Input/TableInput/TableInputRow/TableInputRow.tsx"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ declare type ProgressIndicatorProps = Override<HTMLAttributes<HTMLUListElement>,
6
6
  }>;
7
7
  declare const ProgressIndicator: {
8
8
  ({ children, ...rest }: ProgressIndicatorProps): React.JSX.Element;
9
- Step: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLLIElement>, "current" | "disabled" | "children" | "state" | "index"> & {
9
+ Step: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLLIElement>, "current" | "disabled" | "children" | "index" | "state"> & {
10
10
  current?: boolean | undefined;
11
11
  state?: StepState | undefined;
12
12
  disabled?: boolean | undefined;
@@ -11,7 +11,7 @@ declare type TableProps = Override<React.HTMLAttributes<HTMLTableElement>, {
11
11
  onReorder?: undefined;
12
12
  } | {
13
13
  isDragAndDroppable: boolean;
14
- onReorder: (updatedIndices: number[]) => void;
14
+ onReorder: (updatedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void;
15
15
  })>;
16
16
  declare const Table: {
17
17
  ({ isSelectable, hasWarningRows, hasLockedRows, displayCheckbox, isDragAndDroppable, onReorder, children, ...rest }: TableProps): React.JSX.Element;
@@ -23,15 +23,13 @@ declare const Table: {
23
23
  children?: React.ReactNode;
24
24
  } & React.RefAttributes<HTMLTableHeaderCellElement>>;
25
25
  Body: React.ForwardRefExoticComponent<import("./TableBody/TableBody").TableBodyProps & React.RefAttributes<HTMLTableSectionElement>>;
26
- Row: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "onClick" | "onDragEnd" | "onDragStart" | "level" | "isSelected" | "rowIndex" | "onSelectToggle"> & {
26
+ Row: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "onClick" | "level" | "isSelected" | "rowIndex" | "onSelectToggle"> & {
27
27
  children?: React.ReactNode;
28
28
  onSelectToggle?: ((isSelected: boolean) => void) | undefined;
29
29
  isSelected?: boolean | "mixed" | undefined;
30
30
  level?: ("tertiary" | "warning") | undefined;
31
31
  onClick?: ((event: React.MouseEvent<HTMLTableRowElement, MouseEvent>) => void) | undefined;
32
32
  rowIndex?: number | undefined;
33
- onDragStart?: ((rowIndex: number) => void) | undefined;
34
- onDragEnd?: (() => void) | undefined;
35
33
  } & React.RefAttributes<HTMLTableRowElement>>;
36
34
  Cell: React.ForwardRefExoticComponent<Omit<React.TdHTMLAttributes<HTMLTableCellElement>, "children" | "rowTitle"> & {
37
35
  children?: React.ReactNode;
@@ -42,3 +40,4 @@ declare const Table: {
42
40
  } & React.RefAttributes<HTMLTableCellElement>>;
43
41
  };
44
42
  export { Table };
43
+ export type { TableProps };
@@ -58,12 +58,14 @@ var TableActionCell_1 = require("./TableActionCell/TableActionCell");
58
58
  var TableRow_1 = require("./TableRow/TableRow");
59
59
  var TableContext_1 = require("./TableContext");
60
60
  var TableBody_1 = require("./TableBody/TableBody");
61
+ var DraggedElementContext_1 = require("../../contexts/DraggedElementContext");
61
62
  var TableContainer = styled_components_1.default.table(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-collapse: collapse;\n width: 100%;\n"], ["\n border-collapse: collapse;\n width: 100%;\n"])));
62
63
  var Table = function (_a) {
63
64
  var _b = _a.isSelectable, isSelectable = _b === void 0 ? false : _b, _c = _a.hasWarningRows, hasWarningRows = _c === void 0 ? false : _c, _d = _a.hasLockedRows, hasLockedRows = _d === void 0 ? false : _d, _e = _a.displayCheckbox, displayCheckbox = _e === void 0 ? false : _e, _f = _a.isDragAndDroppable, isDragAndDroppable = _f === void 0 ? false : _f, _g = _a.onReorder, onReorder = _g === void 0 ? undefined : _g, children = _a.children, rest = __rest(_a, ["isSelectable", "hasWarningRows", "hasLockedRows", "displayCheckbox", "isDragAndDroppable", "onReorder", "children"]);
64
65
  var providerValue = (0, react_1.useMemo)(function () { return ({ isSelectable: isSelectable, hasWarningRows: hasWarningRows, hasLockedRows: hasLockedRows, displayCheckbox: displayCheckbox, isDragAndDroppable: isDragAndDroppable, onReorder: onReorder }); }, [isSelectable, hasWarningRows, hasLockedRows, displayCheckbox, isDragAndDroppable, onReorder]);
65
66
  return (react_1.default.createElement(TableContext_1.TableContext.Provider, { value: providerValue },
66
- react_1.default.createElement(TableContainer, __assign({}, rest), children)));
67
+ react_1.default.createElement(DraggedElementContext_1.DraggedElementProvider, null,
68
+ react_1.default.createElement(TableContainer, __assign({}, rest), children))));
67
69
  };
68
70
  exports.Table = Table;
69
71
  TableHeader_1.TableHeader.displayName = 'Table.Header';
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgD;AAChD,wEAAuC;AACvC,mDAAgD;AAChD,yDAAsD;AACtD,qEAAkE;AAClE,qEAAkE;AAClE,gDAA6C;AAC7C,+CAA4C;AAC5C,mDAAgD;AAGhD,IAAM,cAAc,GAAG,2BAAM,CAAC,KAAK,qHAAA,kDAGlC,IAAA,CAAC;AAwDF,IAAM,KAAK,GAAG,UAAC,EASF;IARX,IAAA,oBAAoB,EAApB,YAAY,mBAAG,KAAK,KAAA,EACpB,sBAAsB,EAAtB,cAAc,mBAAG,KAAK,KAAA,EACtB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAuB,EAAvB,eAAe,mBAAG,KAAK,KAAA,EACvB,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAC1B,iBAAqB,EAArB,SAAS,mBAAG,SAAS,KAAA,EACrB,QAAQ,cAAA,EACL,IAAI,cARM,qHASd,CADQ;IAEP,IAAM,aAAa,GAAG,IAAA,eAAO,EAC3B,cAAM,OAAA,CAAC,EAAC,YAAY,cAAA,EAAE,cAAc,gBAAA,EAAE,aAAa,eAAA,EAAE,eAAe,iBAAA,EAAE,kBAAkB,oBAAA,EAAE,SAAS,WAAA,EAAC,CAAC,EAA/F,CAA+F,EACrG,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAC9F,CAAC;IAEF,OAAO,CACL,8BAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa;QACzC,8BAAC,cAAc,eAAK,IAAI,GAAG,QAAQ,CAAkB,CAC/B,CACzB,CAAC;AACJ,CAAC,CAAC;AAgBM,sBAAK;AAdb,yBAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AACzC,iCAAe,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACjD,qBAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AACrC,mBAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,qBAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AACrC,iCAAe,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAEjD,KAAK,CAAC,MAAM,GAAG,yBAAW,CAAC;AAC3B,KAAK,CAAC,UAAU,GAAG,iCAAe,CAAC;AACnC,KAAK,CAAC,IAAI,GAAG,qBAAS,CAAC;AACvB,KAAK,CAAC,GAAG,GAAG,mBAAQ,CAAC;AACrB,KAAK,CAAC,IAAI,GAAG,qBAAS,CAAC;AACvB,KAAK,CAAC,UAAU,GAAG,iCAAe,CAAC"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgD;AAChD,wEAAuC;AACvC,mDAAgD;AAChD,yDAAsD;AACtD,qEAAkE;AAClE,qEAAkE;AAClE,gDAA6C;AAC7C,+CAA4C;AAC5C,mDAAgD;AAEhD,8EAA4E;AAE5E,IAAM,cAAc,GAAG,2BAAM,CAAC,KAAK,qHAAA,kDAGlC,IAAA,CAAC;AAwDF,IAAM,KAAK,GAAG,UAAC,EASF;IARX,IAAA,oBAAoB,EAApB,YAAY,mBAAG,KAAK,KAAA,EACpB,sBAAsB,EAAtB,cAAc,mBAAG,KAAK,KAAA,EACtB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAuB,EAAvB,eAAe,mBAAG,KAAK,KAAA,EACvB,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAC1B,iBAAqB,EAArB,SAAS,mBAAG,SAAS,KAAA,EACrB,QAAQ,cAAA,EACL,IAAI,cARM,qHASd,CADQ;IAEP,IAAM,aAAa,GAAG,IAAA,eAAO,EAC3B,cAAM,OAAA,CAAC,EAAC,YAAY,cAAA,EAAE,cAAc,gBAAA,EAAE,aAAa,eAAA,EAAE,eAAe,iBAAA,EAAE,kBAAkB,oBAAA,EAAE,SAAS,WAAA,EAAC,CAAC,EAA/F,CAA+F,EACrG,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAC9F,CAAC;IAEF,OAAO,CACL,8BAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa;QACzC,8BAAC,8CAAsB;YACrB,8BAAC,cAAc,eAAK,IAAI,GAAG,QAAQ,CAAkB,CAC9B,CACH,CACzB,CAAC;AACJ,CAAC,CAAC;AAgBM,sBAAK;AAdb,yBAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AACzC,iCAAe,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACjD,qBAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AACrC,mBAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,qBAAS,CAAC,WAAW,GAAG,YAAY,CAAC;AACrC,iCAAe,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAEjD,KAAK,CAAC,MAAM,GAAG,yBAAW,CAAC;AAC3B,KAAK,CAAC,UAAU,GAAG,iCAAe,CAAC;AACnC,KAAK,CAAC,IAAI,GAAG,qBAAS,CAAC;AACvB,KAAK,CAAC,GAAG,GAAG,mBAAQ,CAAC;AACrB,KAAK,CAAC,IAAI,GAAG,qBAAS,CAAC;AACvB,KAAK,CAAC,UAAU,GAAG,iCAAe,CAAC"}
@@ -45,11 +45,11 @@ exports.TableBody = void 0;
45
45
  var react_1 = __importStar(require("react"));
46
46
  var TableContext_1 = require("../TableContext");
47
47
  var useDrop_1 = require("../../../hooks/useDrop");
48
- var useDragElementIndex_1 = require("../../../hooks/useDragElementIndex");
48
+ var DraggedElementContext_1 = require("../../../contexts/DraggedElementContext");
49
49
  var TableBody = react_1.default.forwardRef(function (_a, forwardedRef) {
50
50
  var children = _a.children, rest = __rest(_a, ["children"]);
51
- var _b = (0, useDragElementIndex_1.useDragElementIndex)(), draggedElementIndex = _b[0], onDragStart = _b[1], onDragEnd = _b[2];
52
- var _c = (0, react_1.useContext)(TableContext_1.TableContext), isDragAndDroppable = _c.isDragAndDroppable, onReorder = _c.onReorder;
51
+ var _b = (0, react_1.useContext)(TableContext_1.TableContext), isDragAndDroppable = _b.isDragAndDroppable, onReorder = _b.onReorder;
52
+ var draggedElementIndex = (0, react_1.useContext)(DraggedElementContext_1.DraggedElementContext).index;
53
53
  var decoratedChildren = isDragAndDroppable
54
54
  ? react_1.Children.map(children, function (child, rowIndex) {
55
55
  if (!react_1.default.isValidElement(child)) {
@@ -58,13 +58,11 @@ var TableBody = react_1.default.forwardRef(function (_a, forwardedRef) {
58
58
  return (0, react_1.cloneElement)(child, {
59
59
  rowIndex: rowIndex,
60
60
  draggable: rowIndex === draggedElementIndex,
61
- onDragStart: onDragStart,
62
- onDragEnd: onDragEnd,
63
61
  });
64
62
  })
65
63
  : children;
66
64
  var rowCount = react_1.Children.count(children);
67
- var _d = (0, useDrop_1.useDrop)(rowCount, draggedElementIndex, onReorder), tableId = _d[0], onDrop = _d[1], onDragOver = _d[2];
65
+ var _c = (0, useDrop_1.useDrop)(rowCount, draggedElementIndex, onReorder), tableId = _c[0], onDrop = _c[1], onDragOver = _c[2];
68
66
  return (react_1.default.createElement("tbody", __assign({ ref: forwardedRef, "data-table-id": tableId, onDrop: onDrop, onDragOver: onDragOver }, rest), decoratedChildren));
69
67
  });
70
68
  exports.TableBody = TableBody;
@@ -1 +1 @@
1
- {"version":3,"file":"TableBody.js","sourceRoot":"","sources":["../../../../src/components/Table/TableBody/TableBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmF;AAEnF,gDAA6C;AAC7C,kDAA+C;AAC/C,0EAAuE;AAWvE,IAAM,SAAS,GAAG,eAAK,CAAC,UAAU,CAChC,UAAC,EAAmC,EAAE,YAA0C;IAA9E,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAlB,YAAmB,CAAD;IACX,IAAA,KAAgD,IAAA,yCAAmB,GAAE,EAApE,mBAAmB,QAAA,EAAE,WAAW,QAAA,EAAE,SAAS,QAAyB,CAAC;IACtE,IAAA,KAAkC,IAAA,kBAAU,EAAC,2BAAY,CAAC,EAAzD,kBAAkB,wBAAA,EAAE,SAAS,eAA4B,CAAC;IACjE,IAAM,iBAAiB,GAAG,kBAAkB;QAC1C,CAAC,CAAC,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,QAAQ;YACrC,IAAI,CAAC,eAAK,CAAC,cAAc,CAAgB,KAAK,CAAC,EAAE;gBAC/C,OAAO,IAAI,CAAC;aACb;YAED,OAAO,IAAA,oBAAY,EAAC,KAAK,EAAE;gBACzB,QAAQ,UAAA;gBACR,SAAS,EAAE,QAAQ,KAAK,mBAAmB;gBAC3C,WAAW,aAAA;gBACX,SAAS,WAAA;aACV,CAAC,CAAC;QACL,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC;IAEb,IAAM,QAAQ,GAAG,gBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAA,KAAgC,IAAA,iBAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAhF,OAAO,QAAA,EAAE,MAAM,QAAA,EAAE,UAAU,QAAqD,CAAC;IAExF,OAAO,CACL,kDAAO,GAAG,EAAE,YAAY,mBAAiB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,IAAM,IAAI,GAC/F,iBAAiB,CACZ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEM,8BAAS"}
1
+ {"version":3,"file":"TableBody.js","sourceRoot":"","sources":["../../../../src/components/Table/TableBody/TableBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmF;AAEnF,gDAA6C;AAC7C,kDAA+C;AAC/C,iFAA8E;AAW9E,IAAM,SAAS,GAAG,eAAK,CAAC,UAAU,CAChC,UAAC,EAAmC,EAAE,YAA0C;IAA9E,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAlB,YAAmB,CAAD;IACX,IAAA,KAAkC,IAAA,kBAAU,EAAC,2BAAY,CAAC,EAAzD,kBAAkB,wBAAA,EAAE,SAAS,eAA4B,CAAC;IAC1D,IAAO,mBAAmB,GAAI,IAAA,kBAAU,EAAC,6CAAqB,CAAC,MAArC,CAAsC;IACvE,IAAM,iBAAiB,GAAG,kBAAkB;QAC1C,CAAC,CAAC,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,QAAQ;YACrC,IAAI,CAAC,eAAK,CAAC,cAAc,CAAgB,KAAK,CAAC,EAAE;gBAC/C,OAAO,IAAI,CAAC;aACb;YAED,OAAO,IAAA,oBAAY,EAAC,KAAK,EAAE;gBACzB,QAAQ,UAAA;gBACR,SAAS,EAAE,QAAQ,KAAK,mBAAmB;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC;IAEb,IAAM,QAAQ,GAAG,gBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAA,KAAgC,IAAA,iBAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAhF,OAAO,QAAA,EAAE,MAAM,QAAA,EAAE,UAAU,QAAqD,CAAC;IAExF,OAAO,CACL,kDAAO,GAAG,EAAE,YAAY,mBAAiB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,IAAM,IAAI,GAC/F,iBAAiB,CACZ,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEM,8BAAS"}
@@ -4,7 +4,7 @@ declare type TableContextType = {
4
4
  hasLockedRows: boolean;
5
5
  displayCheckbox: boolean;
6
6
  isDragAndDroppable: boolean;
7
- onReorder: ((reorderedIndices: number[]) => void) | undefined;
7
+ onReorder: ((reorderedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void) | undefined;
8
8
  };
9
9
  declare const TableContext: import("react").Context<TableContextType>;
10
10
  export { TableContext };
@@ -8,18 +8,14 @@ declare type TableRowProps = Override<HTMLAttributes<HTMLTableRowElement>, {
8
8
  level?: Level;
9
9
  onClick?: (event: MouseEvent<HTMLTableRowElement>) => void;
10
10
  rowIndex?: number;
11
- onDragStart?: (rowIndex: number) => void;
12
- onDragEnd?: () => void;
13
11
  }>;
14
- declare const TableRow: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "onClick" | "onDragEnd" | "onDragStart" | "level" | "isSelected" | "rowIndex" | "onSelectToggle"> & {
12
+ declare const TableRow: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLTableRowElement>, "children" | "onClick" | "level" | "isSelected" | "rowIndex" | "onSelectToggle"> & {
15
13
  children?: ReactNode;
16
14
  onSelectToggle?: ((isSelected: boolean) => void) | undefined;
17
15
  isSelected?: boolean | "mixed" | undefined;
18
16
  level?: Level | undefined;
19
17
  onClick?: ((event: MouseEvent<HTMLTableRowElement>) => void) | undefined;
20
18
  rowIndex?: number | undefined;
21
- onDragStart?: ((rowIndex: number) => void) | undefined;
22
- onDragEnd?: (() => void) | undefined;
23
19
  } & React.RefAttributes<HTMLTableRowElement>>;
24
20
  export { TableRow };
25
21
  export type { TableRowProps };
@@ -54,6 +54,7 @@ var TableContext_1 = require("../TableContext");
54
54
  var TableCell_1 = require("../TableCell/TableCell");
55
55
  var icons_1 = require("../../../icons");
56
56
  var usePlaceholderPosition_1 = require("../../../hooks/usePlaceholderPosition");
57
+ var DraggedElementContext_1 = require("../../../contexts/DraggedElementContext");
57
58
  var RowContainer = styled_components_1.default.tr(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n ", ";\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n &:hover > td {\n opacity: 1;\n ", "\n }\n\n &:hover > td > div {\n opacity: 1;\n }\n\n ", ";\n"], ["\n ", ";\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n &:hover > td {\n opacity: 1;\n ", "\n }\n\n &:hover > td > div {\n opacity: 1;\n }\n\n ", ";\n"])), function (_a) {
58
59
  var isSelected = _a.isSelected;
59
60
  return isSelected && (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n > td {\n background-color: ", ";\n }\n "], ["\n > td {\n background-color: ", ";\n }\n "])), (0, theme_1.getColor)('blue', 20));
@@ -92,18 +93,21 @@ var getIcon = function (level) {
92
93
  };
93
94
  var WarningIcon = (0, styled_components_1.default)(icons_1.DangerIcon)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n color: ", ";\n"], ["\n color: ", ";\n"])), (0, theme_1.getColor)('yellow', 120));
94
95
  var TableRow = (0, react_1.forwardRef)(function (_a, forwardedRef) {
95
- var _b = _a.rowIndex, rowIndex = _b === void 0 ? 0 : _b, _c = _a.isSelected, isSelected = _c === void 0 ? false : _c, level = _a.level, onSelectToggle = _a.onSelectToggle, onClick = _a.onClick, draggable = _a.draggable, onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, children = _a.children, rest = __rest(_a, ["rowIndex", "isSelected", "level", "onSelectToggle", "onClick", "draggable", "onDragStart", "onDragEnd", "children"]);
96
+ var _b = _a.rowIndex, rowIndex = _b === void 0 ? 0 : _b, _c = _a.isSelected, isSelected = _c === void 0 ? false : _c, level = _a.level, onSelectToggle = _a.onSelectToggle, onClick = _a.onClick, draggable = _a.draggable, children = _a.children, rest = __rest(_a, ["rowIndex", "isSelected", "level", "onSelectToggle", "onClick", "draggable", "children"]);
96
97
  var _d = (0, usePlaceholderPosition_1.usePlaceholderPosition)(rowIndex), placeholderPosition = _d[0], placeholderDragEnter = _d[1], placeholderDragLeave = _d[2], placeholderDragEnd = _d[3];
97
98
  var _e = (0, react_1.useContext)(TableContext_1.TableContext), isSelectable = _e.isSelectable, displayCheckbox = _e.displayCheckbox, isDragAndDroppable = _e.isDragAndDroppable, hasWarningRows = _e.hasWarningRows, hasLockedRows = _e.hasLockedRows;
98
99
  if (isSelectable && (undefined === isSelected || undefined === onSelectToggle)) {
99
100
  throw Error('A row in a selectable table should have the prop "isSelected" and "onSelectToggle"');
100
101
  }
102
+ var _f = (0, react_1.useContext)(DraggedElementContext_1.DraggedElementContext), draggedElementIndex = _f.index, onDragStart = _f.onDragStart, onDragEnd = _f.onDragEnd;
101
103
  var handleCheckboxChange = function (event) {
102
104
  event.stopPropagation();
103
105
  onSelectToggle === null || onSelectToggle === void 0 ? void 0 : onSelectToggle(!isSelected);
104
106
  };
105
- var handleDragEnter = function (event) {
106
- placeholderDragEnter(parseInt(event.dataTransfer.getData('text')));
107
+ var handleDragEnter = function () {
108
+ if (null !== draggedElementIndex) {
109
+ placeholderDragEnter(draggedElementIndex);
110
+ }
107
111
  };
108
112
  var handleDragStart = function (event) {
109
113
  event.dataTransfer.setData('text', rowIndex.toString());
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../../src/components/Table/TableRow/TableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CASe;AACf,qEAA8C;AAC9C,wCAA2D;AAC3D,kDAA6C;AAE7C,gDAA6C;AAC7C,oDAAiD;AACjD,wCAA6D;AAC7D,gFAAkG;AAIlG,IAAM,YAAY,GAAG,2BAAM,CAAC,EAAE,uOAQ7B,MACG,EAMC,SAED,EAMC,QAED,EAMC,QAED,EAIC,QAED,EAIC,6CAIC,EAIC,6DAOH,EAgBK,KACR,KAlEG,UAAC,EAAY;QAAX,UAAU,gBAAA;IACZ,OAAA,UAAU,QACV,uBAAG,oIAAA,4CAEqB,EAAoB,kBAE3C,KAFuB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,CAE3C;AALD,CAKC,EAED,UAAC,EAAa;QAAZ,WAAW,iBAAA;IACb,OAAA,WAAW,QACX,uBAAG,gIAAA,4DAIF,IAAA;AALD,CAKC,EAED,UAAC,EAAoB;QAAnB,kBAAkB,wBAAA;IACpB,OAAA,kBAAkB,QAClB,uBAAG,sIAAA,kEAIF,IAAA;AALD,CAKC,EAED,UAAC,EAAqB;QAApB,mBAAmB,yBAAA;IACrB,OAAA,mBAAmB,KAAK,KAAK,QAC7B,uBAAG,+IAAA,iDACwC,EAAoB,QAAS,EAAiB,cACxF,KAD0C,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EAAS,IAAA,gBAAQ,EAAC,OAAO,CAAC,CACxF;AAHD,CAGC,EAED,UAAC,EAAqB;QAApB,mBAAmB,yBAAA;IACrB,OAAA,mBAAmB,KAAK,QAAQ,QAChC,uBAAG,4IAAA,8CACqC,EAAoB,QAAS,EAAiB,cACrF,KADuC,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EAAS,IAAA,gBAAQ,EAAC,OAAO,CAAC,CACrF;AAHD,CAGC,EAIC,UAAC,EAAa;QAAZ,WAAW,iBAAA;IACb,OAAA,WAAW,QACX,uBAAG,+GAAA,8BACmB,EAAoB,WACzC,KADqB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,CACzC;AAHD,CAGC,EAOH,UAAC,EAAO;QAAN,KAAK,WAAA;IACP,OAAA,KAAK,KAAK,SAAS;QACjB,CAAC,KAAC,uBAAG,kOAAA,kIAKqB,EAAsB,0BAE7C,KAFuB,IAAA,gBAAQ,EAAC,QAAQ,EAAE,EAAE,CAAC,EAGhD,CAAC,CAAC,KAAK,KAAK,UAAU,QACpB,uBAAG,8KAAA,oDAEqB,EAAoB,wBAC/B,EAAqB,0BAEjC,KAHuB,IAAA,gBAAQ,EAAC,MAAM,EAAE,EAAE,CAAC,EAC/B,IAAA,gBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,CAEjC;AAfL,CAeK,CACR,CAAC;AAEF,IAAM,iBAAiB,GAAG,2BAAM,CAAC,EAAE,4LAAsB,+CAE5C,EAAoC,sEAMhD,KANY,UAAC,EAAW;QAAV,SAAS,eAAA;IAAM,OAAA,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAnB,CAAmB,CAMhD,CAAC;AAEF,IAAM,UAAU,GAAG,IAAA,2BAAM,EAAC,qBAAS,CAAC,qMAAA,gIAWnC,IAAA,CAAC;AAEF,IAAM,OAAO,GAAG,UAAC,KAAY;IAC3B,QAAQ,KAAK,EAAE;QACb,KAAK,SAAS;YACZ,OAAO,8BAAC,WAAW,OAAG,CAAC;QACzB,KAAK,UAAU;YACb,OAAO,8BAAC,gBAAQ,OAAG,CAAC;KACvB;AACH,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG,IAAA,2BAAM,EAAC,kBAAU,CAAC,yFAAA,aAC3B,EAAuB,KACjC,KADU,IAAA,gBAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CACjC,CAAC;AA+CF,IAAM,QAAQ,GAAG,IAAA,kBAAU,EACzB,UACE,EAWgB,EAChB,YAAsC;IAXpC,IAAA,gBAAY,EAAZ,QAAQ,mBAAG,CAAC,KAAA,EACZ,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,OAAO,aAAA,EACP,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,QAAQ,cAAA,EACL,IAAI,cAVT,qHAWC,CADQ;IAIH,IAAA,KACJ,IAAA,+CAAsB,EAAC,QAAQ,CAAC,EAD3B,mBAAmB,QAAA,EAAE,oBAAoB,QAAA,EAAE,oBAAoB,QAAA,EAAE,kBAAkB,QACxD,CAAC;IAE7B,IAAA,KAAqF,IAAA,kBAAU,EAAC,2BAAY,CAAC,EAA5G,YAAY,kBAAA,EAAE,eAAe,qBAAA,EAAE,kBAAkB,wBAAA,EAAE,cAAc,oBAAA,EAAE,aAAa,mBAA4B,CAAC;IACpH,IAAI,YAAY,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,cAAc,CAAC,EAAE;QAC9E,MAAM,KAAK,CAAC,oFAAoF,CAAC,CAAC;KACnG;IAED,IAAM,oBAAoB,GAAG,UAAC,KAAqB;QACjD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,KAAqC;QAC5D,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,KAAqC;QAC5D,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG;QACpB,kBAAkB,EAAE,CAAC;QACrB,SAAS,aAAT,SAAS,uBAAT,SAAS,EAAI,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACL,8BAAC,YAAY,aACX,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,SAAS,KAAK,OAAO,EAClC,UAAU,EAAE,CAAC,CAAC,UAAU,EACxB,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,EACtE,SAAS,EAAE,kBAAkB,IAAI,SAAS,0BACpB,QAAQ,EAC9B,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,oBAAoB,EACjC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,aAAa,IACpB,IAAI;QAEP,YAAY,IAAI,CACf,8BAAC,iBAAiB,mBACH,CAAC,eAAe,IAAI,CAAC,UAAU,EAC5C,SAAS,EAAE,eAAe,IAAI,CAAC,CAAC,UAAU,EAC1C,OAAO,EAAE,oBAAoB;YAE7B,8BAAC,qBAAQ,IACP,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,UAAC,MAAM,EAAE,CAAC;oBAClB,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC,GACD,CACgB,CACrB;QACA,kBAAkB,IAAI,CACrB,8BAAC,UAAU,IAAC,WAAW,EAAE,cAAM,OAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,QAAQ,CAAC,EAAvB,CAAuB,EAAE,SAAS,EAAE,SAAS,iBAAc,aAAa;YACrG,8BAAC,eAAO,IAAC,IAAI,EAAE,EAAE,GAAI,CACV,CACd;QACA,cAAc,IAAI,CACjB,8BAAC,qBAAS,QACP,KAAK,KAAK,SAAS,IAAI,eAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,cAAc,EAAC,CAAC,CAC3F,CACb;QACA,QAAQ;QACR,aAAa,IAAI,CAChB,8BAAC,qBAAS,QACP,KAAK,KAAK,UAAU,IAAI,eAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAC,CAAC,CACzF,CACb,CACY,CAChB,CAAC;AACJ,CAAC,CACF,CAAC;AAEM,4BAAQ"}
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../../src/components/Table/TableRow/TableRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import React from 'react';
3
+ import { TableProps, TableInputProps } from '../components';
4
+ declare type DraggedElementType = {
5
+ index: number | null;
6
+ onDragStart: (rowIndex: number) => void;
7
+ onDragEnd?: () => void;
8
+ };
9
+ declare const DraggedElementContext: React.Context<DraggedElementType>;
10
+ declare const DraggedElementProvider: ({ children }: PropsWithChildren<TableProps | TableInputProps>) => React.JSX.Element;
11
+ export { DraggedElementProvider, DraggedElementContext };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DraggedElementContext = exports.DraggedElementProvider = void 0;
7
+ var react_1 = require("react");
8
+ var react_2 = __importDefault(require("react"));
9
+ var DraggedElementContext = (0, react_1.createContext)({
10
+ index: null,
11
+ onDragStart: function () { return void 0; },
12
+ onDragEnd: function () { return void 0; },
13
+ });
14
+ exports.DraggedElementContext = DraggedElementContext;
15
+ var DraggedElementProvider = function (_a) {
16
+ var children = _a.children;
17
+ var _b = (0, react_1.useState)(null), index = _b[0], setDraggedElementIndex = _b[1];
18
+ var onDragStart = (0, react_1.useCallback)(function (index) { return setDraggedElementIndex(index); }, []);
19
+ var onDragEnd = (0, react_1.useCallback)(function () { return setDraggedElementIndex(null); }, []);
20
+ return (react_2.default.createElement(DraggedElementContext.Provider, { value: { index: index, onDragStart: onDragStart, onDragEnd: onDragEnd } }, children));
21
+ };
22
+ exports.DraggedElementProvider = DraggedElementProvider;
23
+ //# sourceMappingURL=DraggedElementContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DraggedElementContext.js","sourceRoot":"","sources":["../../src/contexts/DraggedElementContext.tsx"],"names":[],"mappings":";;;;;;AAAA,+BAA8E;AAC9E,gDAA0B;AAS1B,IAAM,qBAAqB,GAAG,IAAA,qBAAa,EAAqB;IAC9D,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,cAAM,OAAA,KAAK,CAAC,EAAN,CAAM;IACzB,SAAS,EAAE,cAAM,OAAA,KAAK,CAAC,EAAN,CAAM;CACxB,CAAC,CAAC;AAY6B,sDAAqB;AAVrD,IAAM,sBAAsB,GAAG,UAAC,EAA2D;QAA1D,QAAQ,cAAA;IACjC,IAAA,KAAkC,IAAA,gBAAQ,EAAgB,IAAI,CAAC,EAA9D,KAAK,QAAA,EAAE,sBAAsB,QAAiC,CAAC;IACtE,IAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,UAAC,KAAa,IAAK,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,EAAE,EAAE,CAAC,CAAC;IACtF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,cAAM,OAAA,sBAAsB,CAAC,IAAI,CAAC,EAA5B,CAA4B,EAAE,EAAE,CAAC,CAAC;IAEtE,OAAO,CACL,8BAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,KAAK,OAAA,EAAE,WAAW,aAAA,EAAE,SAAS,WAAA,EAAC,IAAG,QAAQ,CAAkC,CACpH,CAAC;AACJ,CAAC,CAAC;AAEM,wDAAsB"}
@@ -1,3 +1,3 @@
1
1
  import { DragEvent } from 'react';
2
- declare const useDrop: (tableSize: number, draggedElementIndex: number | null, onReorder: ((reorderedIndices: number[]) => void) | undefined) => readonly [string, (event: DragEvent<HTMLTableSectionElement>) => void, (event: DragEvent<HTMLTableSectionElement>) => void];
2
+ declare const useDrop: (tableSize: number, draggedElementIndex: number | null, onReorder: ((reorderedIndices: number[], draggedIndex?: number | undefined, droppedIndex?: number | undefined) => void) | undefined) => readonly [string, (event: DragEvent<HTMLTableSectionElement>) => void, (event: DragEvent<HTMLTableSectionElement>) => void];
3
3
  export { useDrop };
@@ -32,7 +32,12 @@ var useDrop = function (tableSize, draggedElementIndex, onReorder) {
32
32
  if (event.currentTarget.dataset.tableId === tableId && onReorder && null !== draggedElementIndex) {
33
33
  var droppedElementIndex = getDropRow(event.target);
34
34
  var newIndices = generateReorderedIndices(tableSize, draggedElementIndex, droppedElementIndex);
35
- onReorder(newIndices);
35
+ if (onReorder.length === 1) {
36
+ onReorder(newIndices);
37
+ }
38
+ else {
39
+ onReorder(newIndices, draggedElementIndex, droppedElementIndex);
40
+ }
36
41
  }
37
42
  };
38
43
  var handleDragOver = function (event) {
@@ -1 +1 @@
1
- {"version":3,"file":"useDrop.js","sourceRoot":"","sources":["../../src/hooks/useDrop.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA8B;AAM9B,IAAM,UAAU,GAAG,UAAC,OAA2B;IAC7C,IAAI,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAEpE,OAAO,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,cAAc;QACjD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,IAAM,wBAAwB,GAAG,UAAC,IAAY,EAAE,YAAoB,EAAE,YAAoB;IAExF,IAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAI,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,QAAE,IAAI,EAAE,CAAC,CAAC;IAGzE,IAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,YAAY,KAAK,KAAK,EAAtB,CAAsB,CAAC,CAAC;IAGtF,uBAAuB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE9D,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAEF,IAAM,OAAO,GAAG,UACd,SAAiB,EACjB,mBAAkC,EAClC,SAA6D;IAE7D,IAAM,OAAO,GAAG,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAC;IAEhC,IAAM,UAAU,GAAG,UAAC,KAAyC;QAC3D,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,SAAS,IAAI,IAAI,KAAK,mBAAmB,EAAE;YAChG,IAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;YACpE,IAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;YAEjG,SAAS,CAAC,UAAU,CAAC,CAAC;SACvB;IACH,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,KAAyC;QAE/D,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AACxD,CAAC,CAAC;AAEM,0BAAO"}
1
+ {"version":3,"file":"useDrop.js","sourceRoot":"","sources":["../../src/hooks/useDrop.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA8B;AAM9B,IAAM,UAAU,GAAG,UAAC,OAA2B;IAC7C,IAAI,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAEpE,OAAO,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,cAAc;QACjD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,IAAM,wBAAwB,GAAG,UAAC,IAAY,EAAE,YAAoB,EAAE,YAAoB;IAExF,IAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAI,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,QAAE,IAAI,EAAE,CAAC,CAAC;IAGzE,IAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,YAAY,KAAK,KAAK,EAAtB,CAAsB,CAAC,CAAC;IAGtF,uBAAuB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAE9D,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAEF,IAAM,OAAO,GAAG,UACd,SAAiB,EACjB,mBAAkC,EAClC,SAA2G;IAE3G,IAAM,OAAO,GAAG,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAC;IAEhC,IAAM,UAAU,GAAG,UAAC,KAAyC;QAC3D,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,SAAS,IAAI,IAAI,KAAK,mBAAmB,EAAE;YAChG,IAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;YACpE,IAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;YAEjG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,SAAS,CAAC,UAAU,CAAC,CAAC;aACvB;iBAAM;gBACL,SAAS,CAAC,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;aACjE;SACF;IACH,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,KAAyC;QAE/D,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AACxD,CAAC,CAAC;AAEM,0BAAO"}
@@ -3,22 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.usePlaceholderPosition = void 0;
4
4
  var react_1 = require("react");
5
5
  var usePlaceholderPosition = function (rowIndex) {
6
- var _a = (0, react_1.useState)(0), overingCount = _a[0], setOveringCount = _a[1];
6
+ var _a = (0, react_1.useState)(0), hoveringCount = _a[0], setHoveringCount = _a[1];
7
7
  var _b = (0, react_1.useState)('none'), placeholderPosition = _b[0], setPlaceholderPosition = _b[1];
8
8
  (0, react_1.useEffect)(function () {
9
- setOveringCount(0);
9
+ setHoveringCount(0);
10
10
  }, [rowIndex]);
11
11
  var dragEnter = (0, react_1.useCallback)(function (draggedElementIndex) {
12
- setOveringCount(function (count) { return count + 1; });
12
+ setHoveringCount(function (count) { return (draggedElementIndex === rowIndex ? count : count + 1); });
13
13
  setPlaceholderPosition(draggedElementIndex >= rowIndex ? 'top' : 'bottom');
14
14
  }, [rowIndex]);
15
15
  var dragLeave = (0, react_1.useCallback)(function () {
16
- setOveringCount(function (count) { return count - 1; });
16
+ setHoveringCount(function (count) { return count - 1; });
17
17
  }, []);
18
18
  var dragEnd = (0, react_1.useCallback)(function () {
19
- setOveringCount(0);
19
+ setHoveringCount(0);
20
20
  }, []);
21
- return [overingCount === 0 ? 'none' : placeholderPosition, dragEnter, dragLeave, dragEnd];
21
+ return [hoveringCount === 0 ? 'none' : placeholderPosition, dragEnter, dragLeave, dragEnd];
22
22
  };
23
23
  exports.usePlaceholderPosition = usePlaceholderPosition;
24
24
  //# sourceMappingURL=usePlaceholderPosition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePlaceholderPosition.js","sourceRoot":"","sources":["../../src/hooks/usePlaceholderPosition.ts"],"names":[],"mappings":";;;AAAA,+BAAuD;AAIvD,IAAM,sBAAsB,GAAG,UAAC,QAAgB;IACxC,IAAA,KAAkC,IAAA,gBAAQ,EAAS,CAAC,CAAC,EAApD,YAAY,QAAA,EAAE,eAAe,QAAuB,CAAC;IACtD,IAAA,KAAgD,IAAA,gBAAQ,EAAsB,MAAM,CAAC,EAApF,mBAAmB,QAAA,EAAE,sBAAsB,QAAyC,CAAC;IAE5F,IAAA,iBAAS,EAAC;QACR,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,mBAA2B;QAC1B,eAAe,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;QACpC,sBAAsB,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC;QAC5B,eAAe,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,OAAO,GAAG,IAAA,mBAAW,EAAC;QAC1B,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC;AACrG,CAAC,CAAC;AAEM,wDAAsB"}
1
+ {"version":3,"file":"usePlaceholderPosition.js","sourceRoot":"","sources":["../../src/hooks/usePlaceholderPosition.ts"],"names":[],"mappings":";;;AAAA,+BAAuD;AAIvD,IAAM,sBAAsB,GAAG,UAAC,QAAgB;IACxC,IAAA,KAAoC,IAAA,gBAAQ,EAAS,CAAC,CAAC,EAAtD,aAAa,QAAA,EAAE,gBAAgB,QAAuB,CAAC;IACxD,IAAA,KAAgD,IAAA,gBAAQ,EAAsB,MAAM,CAAC,EAApF,mBAAmB,QAAA,EAAE,sBAAsB,QAAyC,CAAC;IAE5F,IAAA,iBAAS,EAAC;QACR,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,mBAA2B;QAC1B,gBAAgB,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAtD,CAAsD,CAAC,CAAC;QAClF,sBAAsB,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC;QAC5B,gBAAgB,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,OAAO,GAAG,IAAA,mBAAW,EAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC;AACtG,CAAC,CAAC;AAEM,wDAAsB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akeneo-design-system",
3
- "version": "0.1.239",
3
+ "version": "0.1.241",
4
4
  "description": "Akeneo design system",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -71,3 +71,21 @@ When the `src` prop is set to `null`, the Image will display itself as loading.
71
71
  }}
72
72
  </Story>
73
73
  </Canvas>
74
+
75
+ ## Variation on background
76
+
77
+ When the `background` prop is set to `checkerboard`, the Image will display a checkerboard background behind the transparent image.
78
+ The background will be white otherwise.
79
+
80
+ <Canvas>
81
+ <Story name="Background">
82
+ {args => {
83
+ return (
84
+ <>
85
+ <Image {...args} background="white" src="https://doodleipsum.com/200x140/outline?i=63527485e69dea481bb541d7f1da73fe" />
86
+ <Image {...args} background="checkerboard" src="https://doodleipsum.com/200x140/outline?i=63527485e69dea481bb541d7f1da73fe" />
87
+ </>
88
+ );
89
+ }}
90
+ </Story>
91
+ </Canvas>
@@ -8,14 +8,16 @@ const EMPTY_IMAGE = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/
8
8
 
9
9
  type Fit = 'cover' | 'contain';
10
10
 
11
+ type Background = 'white' | 'checkerboard';
12
+
11
13
  const ImageContainer = styled.img<
12
14
  {
13
15
  fit: Fit;
14
16
  isStacked: boolean;
15
17
  isLoading: boolean;
18
+ background: Background;
16
19
  } & AkeneoThemedProps
17
20
  >`
18
- background: ${getColor('white')};
19
21
  border: 1px solid ${getColor('grey', 80)};
20
22
  object-fit: ${({fit}) => fit};
21
23
  box-sizing: border-box;
@@ -28,6 +30,20 @@ const ImageContainer = styled.img<
28
30
  `}
29
31
 
30
32
  ${({isLoading}) => isLoading && placeholderStyle}
33
+
34
+ ${({background}) =>
35
+ background === 'checkerboard'
36
+ ? css`
37
+ background-image: linear-gradient(45deg, ${getColor('grey', 60)} 25%, transparent 25%),
38
+ linear-gradient(135deg, ${getColor('grey', 60)} 25%, transparent 25%),
39
+ linear-gradient(45deg, transparent 75%, ${getColor('grey', 60)} 75%),
40
+ linear-gradient(135deg, transparent 75%, ${getColor('grey', 60)} 75%);
41
+ background-size: 25px 25px; /* Must be a square */
42
+ background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px; /* Must be half of one side of the square */
43
+ `
44
+ : css`
45
+ background: ${getColor(background)};
46
+ `}
31
47
  `;
32
48
 
33
49
  type ImageProps = Override<
@@ -62,6 +78,11 @@ type ImageProps = Override<
62
78
  * Should the image appear as a stack of multiple images.
63
79
  */
64
80
  isStacked?: boolean;
81
+
82
+ /**
83
+ * Should the image appear with a background or not
84
+ */
85
+ background?: Background;
65
86
  }
66
87
  >;
67
88
 
@@ -69,7 +90,10 @@ type ImageProps = Override<
69
90
  * Image allow to embed an image in a page.
70
91
  */
71
92
  const Image = React.forwardRef<HTMLImageElement, ImageProps>(
72
- ({fit = 'cover', isStacked = false, src, ...rest}: ImageProps, forwardedRef: Ref<HTMLImageElement>) => {
93
+ (
94
+ {fit = 'cover', isStacked = false, background = 'white', src, ...rest}: ImageProps,
95
+ forwardedRef: Ref<HTMLImageElement>
96
+ ) => {
73
97
  return (
74
98
  <ImageContainer
75
99
  isLoading={null === src}
@@ -77,6 +101,7 @@ const Image = React.forwardRef<HTMLImageElement, ImageProps>(
77
101
  ref={forwardedRef}
78
102
  fit={fit}
79
103
  isStacked={isStacked}
104
+ background={background}
80
105
  {...rest}
81
106
  />
82
107
  );
@@ -15,6 +15,7 @@ import {TableInputContext} from './TableInputContext';
15
15
  import {AkeneoThemedProps} from '../../../theme';
16
16
  import {TableInputCellContent} from './TableInputCellContent/TableInputCellContent';
17
17
  import {TableInputMeasurement} from './TableInputMeasurement/TableInputMeasurement';
18
+ import {DraggedElementProvider} from '../../../contexts/DraggedElementContext';
18
19
 
19
20
  const TableInputContainer = styled.div`
20
21
  width: 100%;
@@ -90,9 +91,11 @@ const TableInput = ({children, readOnly = false, isDragAndDroppable = false, onR
90
91
  return (
91
92
  <TableInputContext.Provider value={{readOnly, isDragAndDroppable, onReorder}}>
92
93
  <TableInputContainer onScroll={handleScroll} {...rest}>
93
- <TableInputTable className={shadowed ? 'shadowed' : ''} isDragAndDroppable={isDragAndDroppable}>
94
- {children}
95
- </TableInputTable>
94
+ <DraggedElementProvider>
95
+ <TableInputTable className={shadowed ? 'shadowed' : ''} isDragAndDroppable={isDragAndDroppable}>
96
+ {children}
97
+ </TableInputTable>
98
+ </DraggedElementProvider>
96
99
  </TableInputContainer>
97
100
  </TableInputContext.Provider>
98
101
  );
@@ -112,3 +115,4 @@ TableInput.Select = TableInputSelect;
112
115
  TableInput.Measurement = TableInputMeasurement;
113
116
 
114
117
  export {TableInput};
118
+ export type {TableInputProps};
@@ -37,7 +37,7 @@ test('it can drag and drop', () => {
37
37
  render(
38
38
  <TableInput isDragAndDroppable={true} onReorder={handleReorder}>
39
39
  <TableInput.Header>
40
- <TableInput.HeaderCell>An header</TableInput.HeaderCell>
40
+ <TableInput.HeaderCell>A header</TableInput.HeaderCell>
41
41
  <TableInput.HeaderCell>Another header</TableInput.HeaderCell>
42
42
  </TableInput.Header>
43
43
  <TableInput.Body>
@@ -76,7 +76,7 @@ test('it can drag and drop', () => {
76
76
  fireEvent.drop(screen.getAllByRole('row')[3], {dataTransfer});
77
77
  fireEvent.dragEnd(screen.getAllByRole('row')[1], {dataTransfer});
78
78
 
79
- expect(handleReorder).toHaveBeenCalledWith([1, 2, 0]);
79
+ expect(handleReorder).toHaveBeenCalledWith([1, 2, 0], 0, 2);
80
80
  });
81
81
 
82
82
  test('TableInput supports ...rest props', () => {
@@ -1,8 +1,8 @@
1
1
  import React, {Children, cloneElement, ReactNode, Ref, useContext} from 'react';
2
2
  import {TableInputContext} from '../TableInputContext';
3
3
  import {TableInputRowProps} from '../TableInputRow/TableInputRow';
4
- import {useDragElementIndex} from '../../../../hooks/useDragElementIndex';
5
4
  import {useDrop} from '../../../../hooks/useDrop';
5
+ import {DraggedElementContext} from '../../../../contexts/DraggedElementContext';
6
6
 
7
7
  type TableInputBodyProps = {
8
8
  children?: ReactNode;
@@ -10,8 +10,8 @@ type TableInputBodyProps = {
10
10
 
11
11
  const TableInputBody = React.forwardRef<HTMLTableSectionElement, TableInputBodyProps>(
12
12
  ({children, ...rest}: TableInputBodyProps, forwardedRef: Ref<HTMLTableSectionElement>) => {
13
- const [draggedElementIndex, onDragStart, onDragEnd] = useDragElementIndex();
14
13
  const {isDragAndDroppable, onReorder} = useContext(TableInputContext);
14
+ const {index: draggedElementIndex} = useContext(DraggedElementContext);
15
15
 
16
16
  const decoratedChildren = Children.map(children, (child, rowIndex) => {
17
17
  if (!React.isValidElement<TableInputRowProps>(child)) {
@@ -22,8 +22,6 @@ const TableInputBody = React.forwardRef<HTMLTableSectionElement, TableInputBodyP
22
22
  ? cloneElement(child, {
23
23
  rowIndex,
24
24
  draggable: rowIndex === draggedElementIndex,
25
- onDragStart,
26
- onDragEnd,
27
25
  })
28
26
  : cloneElement(child, {
29
27
  rowIndex,
@@ -3,7 +3,7 @@ import {createContext} from 'react';
3
3
  type TableInputContextType = {
4
4
  readOnly: boolean;
5
5
  isDragAndDroppable: boolean;
6
- onReorder: ((reorderedIndices: number[]) => void) | undefined;
6
+ onReorder: ((reorderedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void) | undefined;
7
7
  };
8
8
 
9
9
  const TableInputContext = createContext<TableInputContextType>({
@@ -6,6 +6,7 @@ import {TableInputContext} from '../TableInputContext';
6
6
  import {RowIcon} from '../../../../icons';
7
7
  import {TableInputCell} from '../TableInputCell/TableInputCell';
8
8
  import {PlaceholderPosition, usePlaceholderPosition} from '../../../../hooks/usePlaceholderPosition';
9
+ import {DraggedElementContext} from '../../../../contexts/DraggedElementContext';
9
10
 
10
11
  const getZebraBackgroundColor: (highlighted: boolean, rowIndex: number) => (props: AkeneoThemedProps) => string = (
11
12
  highlighted,
@@ -138,38 +139,29 @@ export type TableInputRowProps = Override<
138
139
  * @private
139
140
  */
140
141
  rowIndex?: number;
141
-
142
- /**
143
- * @private
144
- */
145
- onDragStart?: (rowIndex: number) => void;
146
-
147
- /**
148
- * @private
149
- */
150
- onDragEnd?: () => void;
151
142
  }
152
143
  >;
153
144
 
154
145
  const TableInputRow = forwardRef<HTMLTableRowElement, TableInputRowProps>(
155
146
  (
156
- {children, rowIndex = 0, draggable, highlighted = false, onDragStart, onDragEnd, ...rest}: TableInputRowProps,
147
+ {children, rowIndex = 0, draggable, highlighted = false, ...rest}: TableInputRowProps,
157
148
  forwardedRef: Ref<HTMLTableRowElement>
158
149
  ) => {
159
150
  const [placeholderPosition, placeholderDragEnter, placeholderDragLeave, placeholderDragEnd] =
160
151
  usePlaceholderPosition(rowIndex);
161
152
 
162
153
  const {isDragAndDroppable} = useContext(TableInputContext);
154
+ const {index: draggedElementIndex, onDragStart, onDragEnd} = useContext(DraggedElementContext);
163
155
 
164
- const handleDragEnter = (event: DragEvent<HTMLTableRowElement>) => {
165
- if (isDragAndDroppable) {
166
- placeholderDragEnter(parseInt(event.dataTransfer.getData('text')));
156
+ const handleDragEnter = () => {
157
+ if (isDragAndDroppable && null !== draggedElementIndex) {
158
+ placeholderDragEnter(draggedElementIndex);
167
159
  }
168
160
  };
169
161
 
170
162
  const handleDragStart = (event: DragEvent<HTMLTableRowElement>) => {
171
163
  if (isDragAndDroppable) {
172
- event.dataTransfer.setData('text', rowIndex.toString());
164
+ event.dataTransfer.setData('text/plain', rowIndex.toString());
173
165
  onDragStart?.(rowIndex);
174
166
  }
175
167
  };
@@ -8,6 +8,7 @@ import {TableRow} from './TableRow/TableRow';
8
8
  import {TableContext} from './TableContext';
9
9
  import {TableBody} from './TableBody/TableBody';
10
10
  import {Override} from '../../shared';
11
+ import {DraggedElementProvider} from '../../contexts/DraggedElementContext';
11
12
 
12
13
  const TableContainer = styled.table`
13
14
  border-collapse: collapse;
@@ -60,7 +61,7 @@ type TableProps = Override<
60
61
  /**
61
62
  * Called when an element has been dragged and dropped on the table.
62
63
  */
63
- onReorder: (updatedIndices: number[]) => void;
64
+ onReorder: (updatedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void;
64
65
  }
65
66
  )
66
67
  >;
@@ -85,7 +86,9 @@ const Table = ({
85
86
 
86
87
  return (
87
88
  <TableContext.Provider value={providerValue}>
88
- <TableContainer {...rest}>{children}</TableContainer>
89
+ <DraggedElementProvider>
90
+ <TableContainer {...rest}>{children}</TableContainer>
91
+ </DraggedElementProvider>
89
92
  </TableContext.Provider>
90
93
  );
91
94
  };
@@ -105,3 +108,4 @@ Table.Cell = TableCell;
105
108
  Table.ActionCell = TableActionCell;
106
109
 
107
110
  export {Table};
111
+ export type {TableProps};
@@ -132,7 +132,7 @@ test('it renders table with drag and drop', () => {
132
132
  fireEvent.drop(screen.getAllByRole('row')[3], {dataTransfer});
133
133
  fireEvent.dragEnd(screen.getAllByRole('row')[1], {dataTransfer});
134
134
 
135
- expect(handleReorder).toHaveBeenCalledWith([1, 2, 0]);
135
+ expect(handleReorder).toHaveBeenCalledWith([1, 2, 0], 0, 2);
136
136
  });
137
137
 
138
138
  test('Table supports ...rest props', () => {
@@ -2,7 +2,7 @@ import React, {Ref, cloneElement, Children, useContext, ReactElement} from 'reac
2
2
  import {TableRowProps} from '../TableRow/TableRow';
3
3
  import {TableContext} from '../TableContext';
4
4
  import {useDrop} from '../../../hooks/useDrop';
5
- import {useDragElementIndex} from '../../../hooks/useDragElementIndex';
5
+ import {DraggedElementContext} from '../../../contexts/DraggedElementContext';
6
6
 
7
7
  type TableBodyChild = TableBodyChild[] | ReactElement<TableRowProps> | boolean | undefined;
8
8
 
@@ -15,8 +15,8 @@ type TableBodyProps = {
15
15
 
16
16
  const TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(
17
17
  ({children, ...rest}: TableBodyProps, forwardedRef: Ref<HTMLTableSectionElement>) => {
18
- const [draggedElementIndex, onDragStart, onDragEnd] = useDragElementIndex();
19
18
  const {isDragAndDroppable, onReorder} = useContext(TableContext);
19
+ const {index: draggedElementIndex} = useContext(DraggedElementContext);
20
20
  const decoratedChildren = isDragAndDroppable
21
21
  ? Children.map(children, (child, rowIndex) => {
22
22
  if (!React.isValidElement<TableRowProps>(child)) {
@@ -26,8 +26,6 @@ const TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(
26
26
  return cloneElement(child, {
27
27
  rowIndex,
28
28
  draggable: rowIndex === draggedElementIndex,
29
- onDragStart,
30
- onDragEnd,
31
29
  });
32
30
  })
33
31
  : children;
@@ -6,7 +6,7 @@ type TableContextType = {
6
6
  hasLockedRows: boolean;
7
7
  displayCheckbox: boolean;
8
8
  isDragAndDroppable: boolean;
9
- onReorder: ((reorderedIndices: number[]) => void) | undefined;
9
+ onReorder: ((reorderedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void) | undefined;
10
10
  };
11
11
 
12
12
  const TableContext = createContext<TableContextType>({
@@ -16,6 +16,7 @@ import {TableContext} from '../TableContext';
16
16
  import {TableCell} from '../TableCell/TableCell';
17
17
  import {RowIcon, DangerIcon, LockIcon} from '../../../icons';
18
18
  import {PlaceholderPosition, usePlaceholderPosition} from '../../../hooks/usePlaceholderPosition';
19
+ import {DraggedElementContext} from '../../../contexts/DraggedElementContext';
19
20
 
20
21
  type Level = 'warning' | 'tertiary';
21
22
 
@@ -164,33 +165,12 @@ type TableRowProps = Override<
164
165
  * @private
165
166
  */
166
167
  rowIndex?: number;
167
-
168
- /**
169
- * @private
170
- */
171
- onDragStart?: (rowIndex: number) => void;
172
-
173
- /**
174
- * @private
175
- */
176
- onDragEnd?: () => void;
177
168
  }
178
169
  >;
179
170
 
180
171
  const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(
181
172
  (
182
- {
183
- rowIndex = 0,
184
- isSelected = false,
185
- level,
186
- onSelectToggle,
187
- onClick,
188
- draggable,
189
- onDragStart,
190
- onDragEnd,
191
- children,
192
- ...rest
193
- }: TableRowProps,
173
+ {rowIndex = 0, isSelected = false, level, onSelectToggle, onClick, draggable, children, ...rest}: TableRowProps,
194
174
  forwardedRef: Ref<HTMLTableRowElement>
195
175
  ) => {
196
176
  const [placeholderPosition, placeholderDragEnter, placeholderDragLeave, placeholderDragEnd] =
@@ -200,14 +180,17 @@ const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(
200
180
  if (isSelectable && (undefined === isSelected || undefined === onSelectToggle)) {
201
181
  throw Error('A row in a selectable table should have the prop "isSelected" and "onSelectToggle"');
202
182
  }
183
+ const {index: draggedElementIndex, onDragStart, onDragEnd} = useContext(DraggedElementContext);
203
184
 
204
185
  const handleCheckboxChange = (event: SyntheticEvent) => {
205
186
  event.stopPropagation();
206
187
  onSelectToggle?.(!isSelected);
207
188
  };
208
189
 
209
- const handleDragEnter = (event: DragEvent<HTMLTableRowElement>) => {
210
- placeholderDragEnter(parseInt(event.dataTransfer.getData('text')));
190
+ const handleDragEnter = () => {
191
+ if (null !== draggedElementIndex) {
192
+ placeholderDragEnter(draggedElementIndex);
193
+ }
211
194
  };
212
195
 
213
196
  const handleDragStart = (event: DragEvent<HTMLTableRowElement>) => {
@@ -0,0 +1,27 @@
1
+ import {createContext, PropsWithChildren, useCallback, useState} from 'react';
2
+ import React from 'react';
3
+ import {TableProps, TableInputProps} from '../components';
4
+
5
+ type DraggedElementType = {
6
+ index: number | null;
7
+ onDragStart: (rowIndex: number) => void;
8
+ onDragEnd?: () => void;
9
+ };
10
+
11
+ const DraggedElementContext = createContext<DraggedElementType>({
12
+ index: null,
13
+ onDragStart: () => void 0,
14
+ onDragEnd: () => void 0,
15
+ });
16
+
17
+ const DraggedElementProvider = ({children}: PropsWithChildren<TableProps | TableInputProps>) => {
18
+ const [index, setDraggedElementIndex] = useState<number | null>(null);
19
+ const onDragStart = useCallback((index: number) => setDraggedElementIndex(index), []);
20
+ const onDragEnd = useCallback(() => setDraggedElementIndex(null), []);
21
+
22
+ return (
23
+ <DraggedElementContext.Provider value={{index, onDragStart, onDragEnd}}>{children}</DraggedElementContext.Provider>
24
+ );
25
+ };
26
+
27
+ export {DraggedElementProvider, DraggedElementContext};
@@ -28,7 +28,7 @@ const generateReorderedIndices = (size: number, draggedIndex: number, droppedInd
28
28
  const useDrop = (
29
29
  tableSize: number,
30
30
  draggedElementIndex: number | null,
31
- onReorder: ((reorderedIndices: number[]) => void) | undefined
31
+ onReorder: ((reorderedIndices: number[], draggedIndex?: number, droppedIndex?: number) => void) | undefined
32
32
  ) => {
33
33
  const tableId = useId('table_');
34
34
 
@@ -40,7 +40,11 @@ const useDrop = (
40
40
  const droppedElementIndex = getDropRow(event.target as HTMLElement);
41
41
  const newIndices = generateReorderedIndices(tableSize, draggedElementIndex, droppedElementIndex);
42
42
 
43
- onReorder(newIndices);
43
+ if (onReorder.length === 1) {
44
+ onReorder(newIndices); // backwards compatibility
45
+ } else {
46
+ onReorder(newIndices, draggedElementIndex, droppedElementIndex);
47
+ }
44
48
  }
45
49
  };
46
50
 
@@ -60,7 +60,45 @@ test('it does not on reorder callback when user drag and drop', () => {
60
60
  // @ts-ignore
61
61
  handleDrop(event);
62
62
 
63
- expect(onReorder).toHaveBeenCalledWith([0, 2, 1, 3]);
63
+ expect(onReorder).toHaveBeenCalledWith([0, 2, 1, 3], 1, 2);
64
+ expect(stopPropagation).toHaveBeenCalled();
65
+ expect(preventDefault).toHaveBeenCalled();
66
+ });
67
+
68
+ test('it does on reorder callback with only one argument', () => {
69
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
70
+ // @ts-ignore
71
+ const onReorderWithOneArgument = jest.fn((newIndices: number[]) => {
72
+ newIndices.map(x => x);
73
+ });
74
+ const stopPropagation = jest.fn();
75
+ const preventDefault = jest.fn();
76
+ const {result} = renderHook(() => useDrop(4, 1, onReorderWithOneArgument));
77
+
78
+ const [tableId, handleDrop] = result.current;
79
+ const event = {
80
+ currentTarget: {
81
+ dataset: {
82
+ tableId,
83
+ },
84
+ },
85
+ target: {
86
+ dataset: {},
87
+ parentElement: {
88
+ dataset: {
89
+ draggableIndex: '2',
90
+ },
91
+ },
92
+ },
93
+ stopPropagation,
94
+ preventDefault,
95
+ };
96
+
97
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
98
+ // @ts-ignore
99
+ handleDrop(event);
100
+
101
+ expect(onReorderWithOneArgument).toHaveBeenCalledWith([0, 2, 1, 3]);
64
102
  expect(stopPropagation).toHaveBeenCalled();
65
103
  expect(preventDefault).toHaveBeenCalled();
66
104
  });
@@ -3,30 +3,30 @@ import {useCallback, useEffect, useState} from 'react';
3
3
  type PlaceholderPosition = 'top' | 'bottom' | 'none';
4
4
 
5
5
  const usePlaceholderPosition = (rowIndex: number) => {
6
- const [overingCount, setOveringCount] = useState<number>(0);
6
+ const [hoveringCount, setHoveringCount] = useState<number>(0);
7
7
  const [placeholderPosition, setPlaceholderPosition] = useState<PlaceholderPosition>('none');
8
8
 
9
9
  useEffect(() => {
10
- setOveringCount(0);
10
+ setHoveringCount(0);
11
11
  }, [rowIndex]);
12
12
 
13
13
  const dragEnter = useCallback(
14
14
  (draggedElementIndex: number) => {
15
- setOveringCount(count => count + 1);
15
+ setHoveringCount(count => (draggedElementIndex === rowIndex ? count : count + 1));
16
16
  setPlaceholderPosition(draggedElementIndex >= rowIndex ? 'top' : 'bottom');
17
17
  },
18
18
  [rowIndex]
19
19
  );
20
20
 
21
21
  const dragLeave = useCallback(() => {
22
- setOveringCount(count => count - 1);
22
+ setHoveringCount(count => count - 1);
23
23
  }, []);
24
24
 
25
25
  const dragEnd = useCallback(() => {
26
- setOveringCount(0);
26
+ setHoveringCount(0);
27
27
  }, []);
28
28
 
29
- return [overingCount === 0 ? 'none' : placeholderPosition, dragEnter, dragLeave, dragEnd] as const;
29
+ return [hoveringCount === 0 ? 'none' : placeholderPosition, dragEnter, dragLeave, dragEnd] as const;
30
30
  };
31
31
 
32
32
  export {usePlaceholderPosition};
@@ -41,5 +41,11 @@ test('it does not give placeholder when dragged element is the same than the dro
41
41
  dragEnter(2);
42
42
  });
43
43
 
44
- expect(result.current[0]).toBe('top');
44
+ expect(result.current[0]).toBe('none');
45
+
46
+ void act(() => {
47
+ dragEnter(1);
48
+ });
49
+
50
+ expect(result.current[0]).toBe('bottom');
45
51
  });