@pie-lib/graphing-solution-set 3.1.0-next.0 → 3.1.0-next.4

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 (104) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/package.json +9 -9
  3. package/lib/__tests__/graph-with-controls.test.js +0 -199
  4. package/lib/__tests__/graph.test.js +0 -114
  5. package/lib/__tests__/grid.test.js +0 -29
  6. package/lib/__tests__/labels.test.js +0 -45
  7. package/lib/__tests__/mark-label.test.js +0 -133
  8. package/lib/__tests__/toggle-bar.test.js +0 -89
  9. package/lib/__tests__/tool-menu.test.js +0 -41
  10. package/lib/__tests__/undo-redo.test.js +0 -31
  11. package/lib/__tests__/use-debounce.test.js +0 -24
  12. package/lib/__tests__/utils.js +0 -70
  13. package/lib/__tests__/utils.test.js +0 -123
  14. package/lib/axis/__tests__/arrow.test.js +0 -60
  15. package/lib/axis/__tests__/axes.test.js +0 -162
  16. package/lib/axis/arrow.js +0 -79
  17. package/lib/axis/arrow.js.map +0 -1
  18. package/lib/axis/axes.js +0 -325
  19. package/lib/axis/axes.js.map +0 -1
  20. package/lib/axis/index.js +0 -21
  21. package/lib/axis/index.js.map +0 -1
  22. package/lib/bg.js +0 -111
  23. package/lib/bg.js.map +0 -1
  24. package/lib/container/actions.js +0 -18
  25. package/lib/container/actions.js.map +0 -1
  26. package/lib/container/index.js +0 -120
  27. package/lib/container/index.js.map +0 -1
  28. package/lib/container/marks.js +0 -22
  29. package/lib/container/marks.js.map +0 -1
  30. package/lib/container/middleware.js +0 -19
  31. package/lib/container/middleware.js.map +0 -1
  32. package/lib/container/reducer.js +0 -18
  33. package/lib/container/reducer.js.map +0 -1
  34. package/lib/coordinates-label.js +0 -77
  35. package/lib/coordinates-label.js.map +0 -1
  36. package/lib/graph-with-controls.js +0 -298
  37. package/lib/graph-with-controls.js.map +0 -1
  38. package/lib/graph.js +0 -354
  39. package/lib/graph.js.map +0 -1
  40. package/lib/grid-setup.js +0 -406
  41. package/lib/grid-setup.js.map +0 -1
  42. package/lib/grid.js +0 -131
  43. package/lib/grid.js.map +0 -1
  44. package/lib/index.js +0 -40
  45. package/lib/index.js.map +0 -1
  46. package/lib/labels.js +0 -199
  47. package/lib/labels.js.map +0 -1
  48. package/lib/mark-label.js +0 -159
  49. package/lib/mark-label.js.map +0 -1
  50. package/lib/toggle-bar.js +0 -248
  51. package/lib/toggle-bar.js.map +0 -1
  52. package/lib/tool-menu.js +0 -218
  53. package/lib/tool-menu.js.map +0 -1
  54. package/lib/tools/index.js +0 -24
  55. package/lib/tools/index.js.map +0 -1
  56. package/lib/tools/line/__tests__/component.test.js +0 -45
  57. package/lib/tools/line/component.js +0 -92
  58. package/lib/tools/line/component.js.map +0 -1
  59. package/lib/tools/line/index.js +0 -11
  60. package/lib/tools/line/index.js.map +0 -1
  61. package/lib/tools/polygon/__tests__/component.test.js +0 -81
  62. package/lib/tools/polygon/__tests__/index.test.js +0 -92
  63. package/lib/tools/polygon/__tests__/line.test.js +0 -30
  64. package/lib/tools/polygon/__tests__/polygon.test.js +0 -61
  65. package/lib/tools/polygon/component.js +0 -360
  66. package/lib/tools/polygon/component.js.map +0 -1
  67. package/lib/tools/polygon/index.js +0 -89
  68. package/lib/tools/polygon/index.js.map +0 -1
  69. package/lib/tools/polygon/line.js +0 -114
  70. package/lib/tools/polygon/line.js.map +0 -1
  71. package/lib/tools/polygon/polygon.js +0 -131
  72. package/lib/tools/polygon/polygon.js.map +0 -1
  73. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -45
  74. package/lib/tools/shared/arrow-head.js +0 -62
  75. package/lib/tools/shared/arrow-head.js.map +0 -1
  76. package/lib/tools/shared/line/__tests__/index.test.js +0 -129
  77. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -64
  78. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -83
  79. package/lib/tools/shared/line/index.js +0 -541
  80. package/lib/tools/shared/line/index.js.map +0 -1
  81. package/lib/tools/shared/line/line-path.js +0 -121
  82. package/lib/tools/shared/line/line-path.js.map +0 -1
  83. package/lib/tools/shared/line/with-root-edge.js +0 -121
  84. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  85. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -127
  86. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -122
  87. package/lib/tools/shared/point/arrow-point.js +0 -86
  88. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  89. package/lib/tools/shared/point/arrow.js +0 -70
  90. package/lib/tools/shared/point/arrow.js.map +0 -1
  91. package/lib/tools/shared/point/base-point.js +0 -137
  92. package/lib/tools/shared/point/base-point.js.map +0 -1
  93. package/lib/tools/shared/point/index.js +0 -80
  94. package/lib/tools/shared/point/index.js.map +0 -1
  95. package/lib/tools/shared/styles.js +0 -26
  96. package/lib/tools/shared/styles.js.map +0 -1
  97. package/lib/tools/shared/types.js +0 -15
  98. package/lib/tools/shared/types.js.map +0 -1
  99. package/lib/undo-redo.js +0 -67
  100. package/lib/undo-redo.js.map +0 -1
  101. package/lib/use-debounce.js +0 -25
  102. package/lib/use-debounce.js.map +0 -1
  103. package/lib/utils.js +0 -239
  104. package/lib/utils.js.map +0 -1
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["_head","_interopRequireDefault","require","_tail","_plot","_invariant","_isEqual","_isEmpty","_cloneDeep","bounds","exports","utils","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","x","top","y","bottom","right","tail","reduce","p","lineToArea","from","to","pointsToArea","invariant","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","isEqual","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","graphProps","domain","range","_graphProps$size","width","height","getAdjustedGraphLimits","_graphProps$size2","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find","areArraysOfObjectsEqual","array1","array2","i","obj1","obj2","Object","keys","key"],"sources":["../src/utils.js"],"sourcesContent":["import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'line') {\n const { from, to } = mark;\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n }\n });\n\n return !!duplicated;\n};\n\nexport const areArraysOfObjectsEqual = (array1, array2) => {\n // Check if both arrays have the same length\n if (array1.length !== array2.length) {\n return false;\n }\n // Iterate through each object in the arrays\n for (let i = 0; i < array1.length; i++) {\n // Get the current objects in both arrays\n const obj1 = array1[i];\n const obj2 = array2[i];\n // Check if the objects have the same number of properties\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n // Iterate through each property in the objects\n for (const key in obj1) {\n // Check if the properties and their values are equal\n if (obj1[key] !== obj2[key]) {\n return false;\n }\n }\n }\n // If all objects are equal, the arrays are the same\n return true;\n};\n"],"mappings":"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","ignoreList":[]}