@pie-lib/graphing-solution-set 4.1.0-beta.9 → 5.0.0-next.36

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 (233) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/autosize-input.d.ts +10 -0
  3. package/dist/autosize-input.js +66 -0
  4. package/dist/axis/arrow.d.ts +13 -0
  5. package/dist/axis/arrow.js +34 -0
  6. package/dist/axis/axes.d.ts +132 -0
  7. package/dist/axis/axes.js +214 -0
  8. package/dist/axis/index.d.ts +10 -0
  9. package/dist/bg.d.ts +51 -0
  10. package/dist/bg.js +44 -0
  11. package/dist/container/actions.d.ts +15 -0
  12. package/dist/container/actions.js +7 -0
  13. package/dist/container/index.d.ts +58 -0
  14. package/dist/container/index.js +48 -0
  15. package/dist/container/marks.d.ts +10 -0
  16. package/dist/container/marks.js +11 -0
  17. package/dist/container/middleware.d.ts +10 -0
  18. package/dist/container/middleware.js +4 -0
  19. package/dist/container/reducer.d.ts +14 -0
  20. package/dist/container/reducer.js +7 -0
  21. package/dist/coordinates-label.d.ts +50 -0
  22. package/dist/coordinates-label.js +46 -0
  23. package/dist/graph-with-controls.d.ts +85 -0
  24. package/dist/graph-with-controls.js +155 -0
  25. package/dist/graph.d.ts +119 -0
  26. package/dist/graph.js +221 -0
  27. package/dist/grid-setup.d.ts +27 -0
  28. package/dist/grid-setup.js +307 -0
  29. package/dist/grid.d.ts +43 -0
  30. package/dist/grid.js +59 -0
  31. package/dist/index.d.ts +14 -0
  32. package/dist/index.js +6 -0
  33. package/dist/labels.d.ts +73 -0
  34. package/dist/labels.js +134 -0
  35. package/dist/mark-label.d.ts +50 -0
  36. package/dist/mark-label.js +84 -0
  37. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Axis.js +67 -0
  38. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +66 -0
  39. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Ticks.js +39 -0
  40. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  41. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  42. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +13 -0
  43. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  44. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  45. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickPosition.js +14 -0
  46. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/Grid.js +43 -0
  47. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridColumns.js +46 -0
  48. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridRows.js +46 -0
  49. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  50. package/dist/node_modules/.bun/@visx_group@4.0.0_d84c32d47042070f/node_modules/@visx/group/esm/Group.js +17 -0
  51. package/dist/node_modules/.bun/@visx_point@4.0.0/node_modules/@visx/point/esm/Point.js +20 -0
  52. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  53. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/getTicks.js +7 -0
  54. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  55. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/Line.js +27 -0
  56. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/Text.js +27 -0
  57. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/hooks/useText.js +68 -0
  58. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/getStringWidth.js +19 -0
  59. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/memoize.js +13 -0
  60. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +32 -0
  61. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +33 -0
  62. package/dist/node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js +32 -0
  63. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  64. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  65. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  66. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  67. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  68. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  69. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  70. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  71. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  72. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  73. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +198 -0
  74. package/dist/toggle-bar.d.ts +40 -0
  75. package/dist/tool-menu.d.ts +21 -0
  76. package/dist/tool-menu.js +188 -0
  77. package/dist/tools/index.d.ts +17 -0
  78. package/dist/tools/index.js +12 -0
  79. package/dist/tools/line/component.d.ts +113 -0
  80. package/dist/tools/line/component.js +58 -0
  81. package/dist/tools/line/index.d.ts +13 -0
  82. package/dist/tools/line/index.js +6 -0
  83. package/dist/tools/polygon/component.d.ts +117 -0
  84. package/dist/tools/polygon/component.js +194 -0
  85. package/dist/tools/polygon/index.d.ts +19 -0
  86. package/dist/tools/polygon/index.js +55 -0
  87. package/dist/tools/polygon/line.d.ts +125 -0
  88. package/dist/tools/polygon/polygon.d.ts +122 -0
  89. package/dist/tools/polygon/polygon.js +62 -0
  90. package/dist/tools/shared/arrow-head.d.ts +43 -0
  91. package/dist/tools/shared/arrow-head.js +37 -0
  92. package/dist/tools/shared/line/index.d.ts +240 -0
  93. package/dist/tools/shared/line/index.js +320 -0
  94. package/dist/tools/shared/line/line-path.d.ts +57 -0
  95. package/dist/tools/shared/line/with-root-edge.d.ts +143 -0
  96. package/dist/tools/shared/point/arrow-point.d.ts +57 -0
  97. package/dist/tools/shared/point/arrow-point.js +47 -0
  98. package/dist/tools/shared/point/arrow.d.ts +46 -0
  99. package/dist/tools/shared/point/arrow.js +36 -0
  100. package/dist/tools/shared/point/base-point.d.ts +50 -0
  101. package/dist/tools/shared/point/base-point.js +88 -0
  102. package/dist/tools/shared/point/index.d.ts +217 -0
  103. package/dist/tools/shared/point/index.js +51 -0
  104. package/dist/tools/shared/styles.d.ts +24 -0
  105. package/dist/tools/shared/styles.js +17 -0
  106. package/dist/tools/shared/types.d.ts +15 -0
  107. package/dist/tools/shared/types.js +10 -0
  108. package/dist/undo-redo.d.ts +20 -0
  109. package/dist/undo-redo.js +33 -0
  110. package/dist/use-debounce.d.ts +9 -0
  111. package/dist/use-debounce.js +13 -0
  112. package/dist/utils.d.ts +58 -0
  113. package/dist/utils.js +72 -0
  114. package/package.json +52 -42
  115. package/CHANGELOG.json +0 -1
  116. package/CHANGELOG.md +0 -449
  117. package/lib/axis/arrow.js +0 -79
  118. package/lib/axis/arrow.js.map +0 -1
  119. package/lib/axis/axes.js +0 -327
  120. package/lib/axis/axes.js.map +0 -1
  121. package/lib/axis/index.js +0 -21
  122. package/lib/axis/index.js.map +0 -1
  123. package/lib/bg.js +0 -114
  124. package/lib/bg.js.map +0 -1
  125. package/lib/container/actions.js +0 -18
  126. package/lib/container/actions.js.map +0 -1
  127. package/lib/container/index.js +0 -129
  128. package/lib/container/index.js.map +0 -1
  129. package/lib/container/marks.js +0 -22
  130. package/lib/container/marks.js.map +0 -1
  131. package/lib/container/middleware.js +0 -19
  132. package/lib/container/middleware.js.map +0 -1
  133. package/lib/container/reducer.js +0 -18
  134. package/lib/container/reducer.js.map +0 -1
  135. package/lib/coordinates-label.js +0 -77
  136. package/lib/coordinates-label.js.map +0 -1
  137. package/lib/graph-with-controls.js +0 -297
  138. package/lib/graph-with-controls.js.map +0 -1
  139. package/lib/graph.js +0 -353
  140. package/lib/graph.js.map +0 -1
  141. package/lib/grid-setup.js +0 -414
  142. package/lib/grid-setup.js.map +0 -1
  143. package/lib/grid.js +0 -131
  144. package/lib/grid.js.map +0 -1
  145. package/lib/index.js +0 -40
  146. package/lib/index.js.map +0 -1
  147. package/lib/labels.js +0 -199
  148. package/lib/labels.js.map +0 -1
  149. package/lib/mark-label.js +0 -159
  150. package/lib/mark-label.js.map +0 -1
  151. package/lib/toggle-bar.js +0 -248
  152. package/lib/toggle-bar.js.map +0 -1
  153. package/lib/tool-menu.js +0 -218
  154. package/lib/tool-menu.js.map +0 -1
  155. package/lib/tools/index.js +0 -24
  156. package/lib/tools/index.js.map +0 -1
  157. package/lib/tools/line/component.js +0 -92
  158. package/lib/tools/line/component.js.map +0 -1
  159. package/lib/tools/line/index.js +0 -11
  160. package/lib/tools/line/index.js.map +0 -1
  161. package/lib/tools/polygon/component.js +0 -358
  162. package/lib/tools/polygon/component.js.map +0 -1
  163. package/lib/tools/polygon/index.js +0 -89
  164. package/lib/tools/polygon/index.js.map +0 -1
  165. package/lib/tools/polygon/line.js +0 -114
  166. package/lib/tools/polygon/line.js.map +0 -1
  167. package/lib/tools/polygon/polygon.js +0 -128
  168. package/lib/tools/polygon/polygon.js.map +0 -1
  169. package/lib/tools/shared/arrow-head.js +0 -62
  170. package/lib/tools/shared/arrow-head.js.map +0 -1
  171. package/lib/tools/shared/line/index.js +0 -539
  172. package/lib/tools/shared/line/index.js.map +0 -1
  173. package/lib/tools/shared/line/line-path.js +0 -121
  174. package/lib/tools/shared/line/line-path.js.map +0 -1
  175. package/lib/tools/shared/line/with-root-edge.js +0 -121
  176. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  177. package/lib/tools/shared/point/arrow-point.js +0 -86
  178. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  179. package/lib/tools/shared/point/arrow.js +0 -70
  180. package/lib/tools/shared/point/arrow.js.map +0 -1
  181. package/lib/tools/shared/point/base-point.js +0 -137
  182. package/lib/tools/shared/point/base-point.js.map +0 -1
  183. package/lib/tools/shared/point/index.js +0 -80
  184. package/lib/tools/shared/point/index.js.map +0 -1
  185. package/lib/tools/shared/styles.js +0 -26
  186. package/lib/tools/shared/styles.js.map +0 -1
  187. package/lib/tools/shared/types.js +0 -15
  188. package/lib/tools/shared/types.js.map +0 -1
  189. package/lib/undo-redo.js +0 -67
  190. package/lib/undo-redo.js.map +0 -1
  191. package/lib/use-debounce.js +0 -25
  192. package/lib/use-debounce.js.map +0 -1
  193. package/lib/utils.js +0 -235
  194. package/lib/utils.js.map +0 -1
  195. package/src/axis/arrow.jsx +0 -57
  196. package/src/axis/axes.jsx +0 -284
  197. package/src/axis/index.js +0 -3
  198. package/src/bg.jsx +0 -96
  199. package/src/container/actions.js +0 -8
  200. package/src/container/index.jsx +0 -93
  201. package/src/container/marks.js +0 -14
  202. package/src/container/middleware.js +0 -7
  203. package/src/container/reducer.js +0 -5
  204. package/src/coordinates-label.jsx +0 -62
  205. package/src/graph-with-controls.jsx +0 -242
  206. package/src/graph.jsx +0 -333
  207. package/src/grid-setup.jsx +0 -432
  208. package/src/grid.jsx +0 -133
  209. package/src/index.js +0 -7
  210. package/src/labels.jsx +0 -173
  211. package/src/mark-label.jsx +0 -125
  212. package/src/toggle-bar.jsx +0 -221
  213. package/src/tool-menu.jsx +0 -235
  214. package/src/tools/index.js +0 -8
  215. package/src/tools/line/component.jsx +0 -77
  216. package/src/tools/line/index.js +0 -4
  217. package/src/tools/polygon/component.jsx +0 -324
  218. package/src/tools/polygon/index.js +0 -52
  219. package/src/tools/polygon/line.jsx +0 -80
  220. package/src/tools/polygon/polygon.jsx +0 -93
  221. package/src/tools/shared/arrow-head.jsx +0 -46
  222. package/src/tools/shared/line/index.jsx +0 -471
  223. package/src/tools/shared/line/line-path.jsx +0 -85
  224. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  225. package/src/tools/shared/point/arrow-point.jsx +0 -60
  226. package/src/tools/shared/point/arrow.jsx +0 -40
  227. package/src/tools/shared/point/base-point.jsx +0 -113
  228. package/src/tools/shared/point/index.jsx +0 -58
  229. package/src/tools/shared/styles.js +0 -20
  230. package/src/tools/shared/types.js +0 -8
  231. package/src/undo-redo.jsx +0 -37
  232. package/src/use-debounce.js +0 -13
  233. package/src/utils.js +0 -230
package/src/utils.js DELETED
@@ -1,230 +0,0 @@
1
- import { cloneDeep, head, isEmpty, isEqual, tail } from 'lodash-es';
2
- import { utils } from '@pie-lib/plot';
3
- import invariant from 'invariant';
4
-
5
- export const bounds = utils.bounds;
6
- export const point = utils.point;
7
-
8
- //TODO: This can be removed?
9
- export const getAngleDeg = () => 0;
10
- //TODO: This can be removed?
11
- export const arrowDimensions = () => 0;
12
-
13
- export const getTickValues = (prop) => {
14
- const tickValues = [];
15
- let tickVal = 0;
16
-
17
- while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {
18
- tickValues.push(tickVal);
19
- tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;
20
- }
21
-
22
- tickVal = Math.round(prop.step * 10000) / 10000;
23
-
24
- while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {
25
- tickValues.push(tickVal);
26
- tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
27
- }
28
-
29
- // return only ticks that are inside the min-max interval
30
- if (tickValues) {
31
- return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);
32
- }
33
-
34
- return [];
35
- };
36
-
37
- export const countWords = (label) => {
38
- if (label == null || isEmpty(label)) {
39
- return 1;
40
- }
41
-
42
- const words = label.split(' ');
43
- return words.length;
44
- };
45
-
46
- // findLongestWord is also used in plot
47
- export const findLongestWord = (label) => {
48
- let longestWord = (label || '')
49
- .replace(/<[^>]+>/g, '')
50
- .split(' ')
51
- .sort((a, b) => b.length - a.length);
52
-
53
- return longestWord[0].length;
54
- };
55
-
56
- // amountToIncreaseWidth is also used in plot
57
- export const amountToIncreaseWidth = (longestWord) => {
58
- if (!longestWord) {
59
- return 0;
60
- }
61
-
62
- return longestWord * 10;
63
- };
64
-
65
- export const polygonToArea = (points) => {
66
- const h = head(points);
67
- const area = {
68
- left: h.x,
69
- top: h.y,
70
- bottom: h.y,
71
- right: h.x,
72
- };
73
- return tail(points).reduce((a, p) => {
74
- a.left = Math.min(a.left, p.x);
75
- a.top = Math.max(a.top, p.y);
76
- a.bottom = Math.min(a.bottom, p.y);
77
- a.right = Math.max(a.right, p.x);
78
- return a;
79
- }, area);
80
- };
81
-
82
- export const lineToArea = (from, to) => pointsToArea(from, to);
83
-
84
- export const pointsToArea = (a, b) => {
85
- invariant(!!a && !!b, 'a or b is undefined');
86
- const left = Math.min(a.x, b.x);
87
- const top = Math.max(a.y, b.y);
88
- const bottom = Math.min(a.y, b.y);
89
- const right = Math.max(a.x, b.x);
90
- return { left, top, bottom, right };
91
- };
92
-
93
- export const getRightestPoints = (points) => {
94
- const sortedPoints = cloneDeep(points);
95
- sortedPoints.sort((a, b) => b.x - a.x);
96
-
97
- return { a: sortedPoints[0], b: sortedPoints[1] };
98
- };
99
-
100
- export const getMiddleOfTwoPoints = (a, b) => ({
101
- x: (a.x + b.x) / 2,
102
- y: (a.y + b.y) / 2,
103
- });
104
-
105
- export const roundNumber = (number) => parseFloat(number.toFixed(4));
106
-
107
- export const sameAxes = (p1, p2) =>
108
- p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));
109
-
110
- export const equalPoints = (p1, p2) =>
111
- p1 &&
112
- p2 &&
113
- isEqual(
114
- {
115
- x: roundNumber(p1.x),
116
- y: roundNumber(p1.y),
117
- },
118
- {
119
- x: roundNumber(p2.x),
120
- y: roundNumber(p2.y),
121
- },
122
- );
123
-
124
- const getDistanceBetweenTicks = (axis, size) => {
125
- const { min, max, step } = axis;
126
- const nbOfTicks = (max - min) / step;
127
-
128
- return size / nbOfTicks;
129
- };
130
-
131
- export const thinnerShapesNeeded = (graphProps) => {
132
- const {
133
- domain,
134
- range,
135
- size: { width, height },
136
- } = graphProps;
137
-
138
- // 14 is the default width of a point
139
- return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;
140
- };
141
-
142
- export const getAdjustedGraphLimits = (graphProps) => {
143
- const {
144
- domain,
145
- range,
146
- size: { width, height },
147
- } = graphProps;
148
- const domainTicksDistance = getDistanceBetweenTicks(domain, width);
149
- const rangeTicksDistance = getDistanceBetweenTicks(range, height);
150
-
151
- // 15 is the distance required for the arrow to extend the graph
152
- const domainPadding = domain.step / (domainTicksDistance / 15);
153
- const rangePadding = range.step / (rangeTicksDistance / 15);
154
-
155
- return {
156
- domain: {
157
- min: domain.min - domainPadding,
158
- max: domain.max + domainPadding,
159
- },
160
- range: {
161
- min: range.min - rangePadding,
162
- max: range.max + rangePadding,
163
- },
164
- };
165
- };
166
-
167
- const sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);
168
-
169
- // check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)
170
- const checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);
171
-
172
- // 2 lines are overlapping if all 4 points are collinear
173
- const isSameLine = (markA, markB) =>
174
- checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);
175
-
176
- export const isDuplicatedMark = (mark, marks, oldMark) => {
177
- const { type, building } = mark;
178
-
179
- if (building) {
180
- return false;
181
- }
182
-
183
- const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);
184
- const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));
185
-
186
- if (index !== -1) {
187
- filteredMarks.splice(index, 1);
188
- }
189
-
190
- const duplicated = filteredMarks.find((m) => {
191
- if (type === 'line') {
192
- const { from, to } = mark;
193
- return (
194
- (equalPoints(from, m.from) && equalPoints(to, m.to)) ||
195
- (equalPoints(from, m.to) && equalPoints(to, m.from)) ||
196
- (type === 'line' && isSameLine(m, mark))
197
- );
198
- } else if (type === 'polygon') {
199
- return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));
200
- }
201
- });
202
-
203
- return !!duplicated;
204
- };
205
-
206
- export const areArraysOfObjectsEqual = (array1, array2) => {
207
- // Check if both arrays have the same length
208
- if (array1.length !== array2.length) {
209
- return false;
210
- }
211
- // Iterate through each object in the arrays
212
- for (let i = 0; i < array1.length; i++) {
213
- // Get the current objects in both arrays
214
- const obj1 = array1[i];
215
- const obj2 = array2[i];
216
- // Check if the objects have the same number of properties
217
- if (Object.keys(obj1).length !== Object.keys(obj2).length) {
218
- return false;
219
- }
220
- // Iterate through each property in the objects
221
- for (const key in obj1) {
222
- // Check if the properties and their values are equal
223
- if (obj1[key] !== obj2[key]) {
224
- return false;
225
- }
226
- }
227
- }
228
- // If all objects are equal, the arrays are the same
229
- return true;
230
- };