@join-x5/react-data-grid-settings 1.0.0-rc

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 (57) hide show
  1. package/dist/Area/index.d.ts +11 -0
  2. package/dist/Area/index.es.js +140 -0
  3. package/dist/Area/index.es.js.map +1 -0
  4. package/dist/AreaItem/AreaItem.d.ts +14 -0
  5. package/dist/AreaItem/AreaItem.es.js +78 -0
  6. package/dist/AreaItem/AreaItem.es.js.map +1 -0
  7. package/dist/AreaItem/Content.d.ts +6 -0
  8. package/dist/AreaItem/Content.es.js +26 -0
  9. package/dist/AreaItem/Content.es.js.map +1 -0
  10. package/dist/AreaItem/Handle.d.ts +4 -0
  11. package/dist/AreaItem/Handle.es.js +20 -0
  12. package/dist/AreaItem/Handle.es.js.map +1 -0
  13. package/dist/AreaItem/ItemContent.d.ts +10 -0
  14. package/dist/AreaItem/ItemContent.es.js +44 -0
  15. package/dist/AreaItem/ItemContent.es.js.map +1 -0
  16. package/dist/AreaItem/Visibility.d.ts +4 -0
  17. package/dist/AreaItem/Visibility.es.js +29 -0
  18. package/dist/AreaItem/Visibility.es.js.map +1 -0
  19. package/dist/AreaItem/index.d.ts +7 -0
  20. package/dist/AreaItem/index.es.js +48 -0
  21. package/dist/AreaItem/index.es.js.map +1 -0
  22. package/dist/Columns/hook.d.ts +13 -0
  23. package/dist/Columns/hook.es.js +66 -0
  24. package/dist/Columns/hook.es.js.map +1 -0
  25. package/dist/Columns/index.d.ts +1 -0
  26. package/dist/Columns/index.es.js +61 -0
  27. package/dist/Columns/index.es.js.map +1 -0
  28. package/dist/Columns/utils.d.ts +11 -0
  29. package/dist/Columns/utils.es.js +72 -0
  30. package/dist/Columns/utils.es.js.map +1 -0
  31. package/dist/DataGridSettings.d.ts +2 -0
  32. package/dist/DataGridSettings.es.js +51 -0
  33. package/dist/DataGridSettings.es.js.map +1 -0
  34. package/dist/DataGridSettingsContext.d.ts +12 -0
  35. package/dist/DataGridSettingsContext.es.js +22 -0
  36. package/dist/DataGridSettingsContext.es.js.map +1 -0
  37. package/dist/Footer/LeftButtons.d.ts +1 -0
  38. package/dist/Footer/LeftButtons.es.js +67 -0
  39. package/dist/Footer/LeftButtons.es.js.map +1 -0
  40. package/dist/Footer/index.d.ts +1 -0
  41. package/dist/Footer/index.es.js +30 -0
  42. package/dist/Footer/index.es.js.map +1 -0
  43. package/dist/Search/index.d.ts +1 -0
  44. package/dist/Search/index.es.js +43 -0
  45. package/dist/Search/index.es.js.map +1 -0
  46. package/dist/index.cjs +15 -0
  47. package/dist/index.cjs.map +1 -0
  48. package/dist/index.d.ts +3 -0
  49. package/dist/index.es.js +7 -0
  50. package/dist/index.es.js.map +1 -0
  51. package/dist/types.d.ts +65 -0
  52. package/dist/types.es.js +5 -0
  53. package/dist/types.es.js.map +1 -0
  54. package/dist/utils.d.ts +7 -0
  55. package/dist/utils.es.js +53 -0
  56. package/dist/utils.es.js.map +1 -0
  57. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.es.js","sources":["../src/utils.ts"],"sourcesContent":["import {SizeTokenValue} from '@join-x5/react-theme';\n\nimport {ColumnArea} from './types';\n\nimport type {ColumnData, ColumnItem, ItemsById} from './types';\n\nexport const getColumnsData = (items: ColumnItem[], areas: ColumnArea[]) => {\n const columns: ColumnData[] = [];\n const itemsById: ItemsById = new Map();\n\n const areaFactor = {\n [ColumnArea.Default]: 0,\n [ColumnArea.FixedLeft]: -1,\n [ColumnArea.FixedRight]: 1,\n };\n\n const sortedItems = [...items].sort((a, b) => {\n const aSort = a.sort + items.length * areaFactor[a.area];\n const bSort = b.sort + items.length * areaFactor[b.area];\n\n return aSort - bSort;\n });\n\n const withFixedLeft = areas.includes(ColumnArea.FixedLeft);\n const withFixedRight = areas.includes(ColumnArea.FixedRight);\n\n const itemsInColumn = (() => {\n const ITEMS_IN_COLUMN = 15;\n const COLUMNS_MAX = 4;\n\n const rem = Math.ceil(items.length / ITEMS_IN_COLUMN);\n const columnsCount = rem > COLUMNS_MAX ? COLUMNS_MAX : rem;\n\n const result = Math.ceil(items.length / columnsCount);\n\n return (result > ITEMS_IN_COLUMN ? result : ITEMS_IN_COLUMN) + (withFixedLeft || withFixedRight ? 1 : 0);\n })();\n\n while (sortedItems.length > 0) {\n const isFirstColumn = columns.length === 0;\n\n const hasFixedLeftArea = isFirstColumn && withFixedLeft;\n const hasFixedLeftItems = sortedItems[0]?.area === ColumnArea.FixedLeft;\n\n const newItemsInColumn = itemsInColumn - (hasFixedLeftArea ? 2 - +hasFixedLeftItems : 0);\n const columnItems = sortedItems.splice(0, newItemsInColumn);\n\n const hasFixedRightArea = sortedItems.length === 0 && withFixedRight;\n const hasFixedRightItems = columnItems.findIndex(item => item.area === ColumnArea.FixedRight) !== -1;\n\n const column: ColumnData = new Map();\n\n if (hasFixedLeftArea || hasFixedLeftItems) {\n column.set(ColumnArea.FixedLeft, []);\n }\n\n column.set(ColumnArea.Default, []);\n\n if (hasFixedRightArea || hasFixedRightItems) {\n column.set(ColumnArea.FixedRight, []);\n }\n\n for (const columnItem of columnItems) {\n const area = column.get(columnItem.area);\n if (!area) {\n continue;\n }\n\n itemsById.set(columnItem.id, columnItem);\n area.push(columnItem.id);\n }\n\n const defaultAreaIsEmpty = column.get(ColumnArea.Default)?.length === 0;\n\n if (defaultAreaIsEmpty) {\n column.delete(ColumnArea.Default);\n }\n\n columns.push(column);\n }\n\n const noDefaultColumnAdded = columns.findIndex(column => column.has(ColumnArea.Default)) === -1;\n if (noDefaultColumnAdded && columns.length) {\n const fixedRightIndex = columns.findIndex(column => column.has(ColumnArea.FixedRight));\n\n if (fixedRightIndex !== -1) {\n const columnAreas = columns[fixedRightIndex];\n const rightItems = columnAreas.get(ColumnArea.FixedRight);\n\n if (rightItems) {\n columnAreas.delete(ColumnArea.FixedRight);\n columnAreas.set(ColumnArea.Default, []);\n columnAreas.set(ColumnArea.FixedRight, rightItems);\n } else {\n columnAreas.set(ColumnArea.Default, []);\n }\n } else {\n columns[columns.length - 1].set(ColumnArea.Default, []);\n }\n }\n\n const size = ((): SizeTokenValue => {\n switch (columns.length) {\n case 1:\n return SizeTokenValue.Small;\n case 2:\n return SizeTokenValue.Medium;\n case 3:\n return SizeTokenValue.Large;\n }\n\n return SizeTokenValue.XLarge;\n })();\n\n return {columns, itemsById, size};\n};\n"],"names":["getColumnsData","items","areas","columns","itemsById","Map","areaFactor","ColumnArea","Default","FixedLeft","FixedRight","sortedItems","sort","a","b","aSort","length","area","bSort","withFixedLeft","includes","withFixedRight","itemsInColumn","rem","Math","ceil","ITEMS_IN_COLUMN","columnsCount","COLUMNS_MAX","result","hasFixedLeftArea","hasFixedLeftItems","newItemsInColumn","columnItems","splice","hasFixedRightArea","hasFixedRightItems","findIndex","item","column","set","columnItem","get","id","push","delete","noDefaultColumnAdded","has","fixedRightIndex","columnAreas","rightItems","size","SizeTokenValue","Small","Medium","Large","XLarge"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@join-x5/react-data-grid-settings",
3
+ "version": "1.0.0-rc",
4
+ "private": false,
5
+ "homepage": "https://www.figma.com/design/c0xn3Ib5FZSfPcnfsOIrmy4i/Join-Web%3A-component",
6
+ "type": "module",
7
+ "main": "dist/index.cjs",
8
+ "module": "dist/index.es.js",
9
+ "types": "dist/index.d.ts",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc --noEmit && vite build",
15
+ "lint": "eslint src --ignore-pattern \"**/*.stories.tsx\""
16
+ },
17
+ "devDependencies": {
18
+ "@emotion/babel-plugin": "^11.13.5",
19
+ "@eslint/js": "^9.3.0",
20
+ "@laynezh/vite-plugin-lib-assets": "^0.5.24",
21
+ "@types/react": "^18.3.11",
22
+ "@types/react-dom": "^18.3.0",
23
+ "@types/react-window": "^1.8.8",
24
+ "@vitejs/plugin-react": "^4.3.2",
25
+ "eslint": "^8.57.0",
26
+ "eslint-config-prettier": "^9.1.0",
27
+ "eslint-import-resolver-typescript": "^3.6.3",
28
+ "eslint-plugin-import": "^2.31.0",
29
+ "eslint-plugin-prettier": "^5.2.1",
30
+ "eslint-plugin-react": "^7.34.1",
31
+ "eslint-plugin-react-hooks": "^4.6.2",
32
+ "eslint-plugin-workspaces": "^0.10.1",
33
+ "jsdom": "^25.0.1",
34
+ "prettier": "3.3.3",
35
+ "react": "^18.3.1",
36
+ "react-dom": "^18.3.1",
37
+ "rollup-plugin-peer-deps-external": "^2.2.4",
38
+ "rollup-plugin-preserve-directives": "^0.4.0",
39
+ "typescript": "^5.4.5",
40
+ "typescript-eslint": "^7.10.0",
41
+ "vite": "^5.4.8",
42
+ "vite-plugin-dts": "^4.2.4",
43
+ "vite-tsconfig-paths": "^5.0.1"
44
+ },
45
+ "dependencies": {
46
+ "@join-x5/react": "1.0.0-rc",
47
+ "@join-x5/react-theme": "1.0.0-rc",
48
+ "@join-x5/react-icons": "1.0.0-rc",
49
+ "@emotion/react": "^11.11.4",
50
+ "@emotion/styled": "^11.11.5",
51
+ "@dnd-kit/core": "^6.2.0",
52
+ "@dnd-kit/sortable": "^9.0.0"
53
+ },
54
+ "peerDependencies": {
55
+ "@join-x5/react": "1.0.0-rc",
56
+ "@join-x5/react-theme": "1.0.0-rc",
57
+ "@join-x5/react-icons": "1.0.0-rc",
58
+ "@emotion/react": "^11.11.4",
59
+ "@emotion/styled": "^11.11.5",
60
+ "@dnd-kit/core": "^6.2.0",
61
+ "@dnd-kit/sortable": "^9.0.0",
62
+ "react": ">=17.0.0",
63
+ "react-dom": ">=17.0.0"
64
+ }
65
+ }