react-resizable-panels 2.0.13 → 2.0.14
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.
- package/CHANGELOG.md +4 -0
- package/dist/react-resizable-panels.browser.cjs.js +13 -12
- package/dist/react-resizable-panels.browser.development.cjs.js +13 -12
- package/dist/react-resizable-panels.browser.development.esm.js +13 -12
- package/dist/react-resizable-panels.browser.esm.js +13 -12
- package/dist/react-resizable-panels.cjs.js +13 -12
- package/dist/react-resizable-panels.development.cjs.js +13 -12
- package/dist/react-resizable-panels.development.esm.js +13 -12
- package/dist/react-resizable-panels.development.node.cjs.js +13 -12
- package/dist/react-resizable-panels.development.node.esm.js +13 -12
- package/dist/react-resizable-panels.esm.js +13 -12
- package/dist/react-resizable-panels.node.cjs.js +13 -12
- package/dist/react-resizable-panels.node.esm.js +13 -12
- package/package.json +9 -9
- package/src/Panel.test.tsx +49 -0
- package/src/PanelGroup.ts +16 -7
- package/src/utils/numbers/fuzzyCompareNumbers.ts +10 -6
- package/.parcel-cache/0e613961dce44a82 +0 -0
- package/.parcel-cache/13776de4870b0ae4.txt +0 -2
- package/.parcel-cache/35c20fb91e350b46 +0 -0
- package/.parcel-cache/data.mdb +0 -0
- package/.parcel-cache/lock.mdb +0 -0
- package/LICENSE +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -687,15 +687,15 @@ function assert(expectedCondition, message) {
|
|
|
687
687
|
const PRECISION = 10;
|
|
688
688
|
|
|
689
689
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
690
|
-
|
|
691
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
692
|
-
const delta = actual - expected;
|
|
693
|
-
if (delta === 0) {
|
|
690
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
694
691
|
return 0;
|
|
695
692
|
} else {
|
|
696
|
-
return
|
|
693
|
+
return actual > expected ? 1 : -1;
|
|
697
694
|
}
|
|
698
695
|
}
|
|
696
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
697
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
698
|
+
}
|
|
699
699
|
|
|
700
700
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
701
701
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1702,7 +1702,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1702
1702
|
pivotIndices
|
|
1703
1703
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1704
1704
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1705
|
-
if (panelSize
|
|
1705
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1706
1706
|
// Store size before collapse;
|
|
1707
1707
|
// This is the size that gets restored if the expand() API is used.
|
|
1708
1708
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1741,11 +1741,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1741
1741
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1742
1742
|
const {
|
|
1743
1743
|
collapsedSize = 0,
|
|
1744
|
-
panelSize,
|
|
1744
|
+
panelSize = 0,
|
|
1745
1745
|
minSize = 0,
|
|
1746
1746
|
pivotIndices
|
|
1747
1747
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1748
|
-
if (panelSize
|
|
1748
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1749
1749
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1750
1750
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1751
1751
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1810,7 +1810,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1810
1810
|
collapsible,
|
|
1811
1811
|
panelSize
|
|
1812
1812
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1813
|
-
|
|
1813
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1814
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1814
1815
|
}, []);
|
|
1815
1816
|
|
|
1816
1817
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1825,7 +1826,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1825
1826
|
panelSize
|
|
1826
1827
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1827
1828
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1828
|
-
return !collapsible || panelSize >
|
|
1829
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1829
1830
|
}, []);
|
|
1830
1831
|
const registerPanel = useCallback(panelData => {
|
|
1831
1832
|
const {
|
|
@@ -2034,8 +2035,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2034
2035
|
// It's possible that the panels in this group have changed since the last render
|
|
2035
2036
|
return;
|
|
2036
2037
|
}
|
|
2037
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2038
|
-
if (prevCollapsedSize
|
|
2038
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2039
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2039
2040
|
resizePanel(panelData, nextCollapsedSize);
|
|
2040
2041
|
}
|
|
2041
2042
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -693,15 +693,15 @@ function assert(expectedCondition, message) {
|
|
|
693
693
|
const PRECISION = 10;
|
|
694
694
|
|
|
695
695
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
696
|
-
|
|
697
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
698
|
-
const delta = actual - expected;
|
|
699
|
-
if (delta === 0) {
|
|
696
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
700
697
|
return 0;
|
|
701
698
|
} else {
|
|
702
|
-
return
|
|
699
|
+
return actual > expected ? 1 : -1;
|
|
703
700
|
}
|
|
704
701
|
}
|
|
702
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
703
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
704
|
+
}
|
|
705
705
|
|
|
706
706
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
707
707
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1808,7 +1808,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1808
1808
|
pivotIndices
|
|
1809
1809
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1810
1810
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1811
|
-
if (panelSize
|
|
1811
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1812
1812
|
// Store size before collapse;
|
|
1813
1813
|
// This is the size that gets restored if the expand() API is used.
|
|
1814
1814
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1847,11 +1847,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1847
1847
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1848
1848
|
const {
|
|
1849
1849
|
collapsedSize = 0,
|
|
1850
|
-
panelSize,
|
|
1850
|
+
panelSize = 0,
|
|
1851
1851
|
minSize = 0,
|
|
1852
1852
|
pivotIndices
|
|
1853
1853
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1854
|
-
if (panelSize
|
|
1854
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1855
1855
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1856
1856
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1857
1857
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1916,7 +1916,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1916
1916
|
collapsible,
|
|
1917
1917
|
panelSize
|
|
1918
1918
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1919
|
-
|
|
1919
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1920
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1920
1921
|
}, []);
|
|
1921
1922
|
|
|
1922
1923
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1931,7 +1932,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1931
1932
|
panelSize
|
|
1932
1933
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1933
1934
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1934
|
-
return !collapsible || panelSize >
|
|
1935
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1935
1936
|
}, []);
|
|
1936
1937
|
const registerPanel = useCallback(panelData => {
|
|
1937
1938
|
const {
|
|
@@ -2140,8 +2141,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2140
2141
|
// It's possible that the panels in this group have changed since the last render
|
|
2141
2142
|
return;
|
|
2142
2143
|
}
|
|
2143
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2144
|
-
if (prevCollapsedSize
|
|
2144
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2145
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2145
2146
|
resizePanel(panelData, nextCollapsedSize);
|
|
2146
2147
|
}
|
|
2147
2148
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -669,15 +669,15 @@ function assert(expectedCondition, message) {
|
|
|
669
669
|
const PRECISION = 10;
|
|
670
670
|
|
|
671
671
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
672
|
-
|
|
673
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
674
|
-
const delta = actual - expected;
|
|
675
|
-
if (delta === 0) {
|
|
672
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
676
673
|
return 0;
|
|
677
674
|
} else {
|
|
678
|
-
return
|
|
675
|
+
return actual > expected ? 1 : -1;
|
|
679
676
|
}
|
|
680
677
|
}
|
|
678
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
679
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
680
|
+
}
|
|
681
681
|
|
|
682
682
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
683
683
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1784,7 +1784,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1784
1784
|
pivotIndices
|
|
1785
1785
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1786
1786
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1787
|
-
if (panelSize
|
|
1787
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1788
1788
|
// Store size before collapse;
|
|
1789
1789
|
// This is the size that gets restored if the expand() API is used.
|
|
1790
1790
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1823,11 +1823,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1823
1823
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1824
1824
|
const {
|
|
1825
1825
|
collapsedSize = 0,
|
|
1826
|
-
panelSize,
|
|
1826
|
+
panelSize = 0,
|
|
1827
1827
|
minSize = 0,
|
|
1828
1828
|
pivotIndices
|
|
1829
1829
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1830
|
-
if (panelSize
|
|
1830
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1831
1831
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1832
1832
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1833
1833
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1892,7 +1892,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1892
1892
|
collapsible,
|
|
1893
1893
|
panelSize
|
|
1894
1894
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1895
|
-
|
|
1895
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1896
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1896
1897
|
}, []);
|
|
1897
1898
|
|
|
1898
1899
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1907,7 +1908,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1907
1908
|
panelSize
|
|
1908
1909
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1909
1910
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1910
|
-
return !collapsible || panelSize >
|
|
1911
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1911
1912
|
}, []);
|
|
1912
1913
|
const registerPanel = useCallback(panelData => {
|
|
1913
1914
|
const {
|
|
@@ -2116,8 +2117,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2116
2117
|
// It's possible that the panels in this group have changed since the last render
|
|
2117
2118
|
return;
|
|
2118
2119
|
}
|
|
2119
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2120
|
-
if (prevCollapsedSize
|
|
2120
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2121
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2121
2122
|
resizePanel(panelData, nextCollapsedSize);
|
|
2122
2123
|
}
|
|
2123
2124
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -663,15 +663,15 @@ function assert(expectedCondition, message) {
|
|
|
663
663
|
const PRECISION = 10;
|
|
664
664
|
|
|
665
665
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
666
|
-
|
|
667
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
668
|
-
const delta = actual - expected;
|
|
669
|
-
if (delta === 0) {
|
|
666
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
670
667
|
return 0;
|
|
671
668
|
} else {
|
|
672
|
-
return
|
|
669
|
+
return actual > expected ? 1 : -1;
|
|
673
670
|
}
|
|
674
671
|
}
|
|
672
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
673
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
674
|
+
}
|
|
675
675
|
|
|
676
676
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
677
677
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1678,7 +1678,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1678
1678
|
pivotIndices
|
|
1679
1679
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1680
1680
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1681
|
-
if (panelSize
|
|
1681
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1682
1682
|
// Store size before collapse;
|
|
1683
1683
|
// This is the size that gets restored if the expand() API is used.
|
|
1684
1684
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1717,11 +1717,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1717
1717
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1718
1718
|
const {
|
|
1719
1719
|
collapsedSize = 0,
|
|
1720
|
-
panelSize,
|
|
1720
|
+
panelSize = 0,
|
|
1721
1721
|
minSize = 0,
|
|
1722
1722
|
pivotIndices
|
|
1723
1723
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1724
|
-
if (panelSize
|
|
1724
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1725
1725
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1726
1726
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1727
1727
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1786,7 +1786,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1786
1786
|
collapsible,
|
|
1787
1787
|
panelSize
|
|
1788
1788
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1789
|
-
|
|
1789
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1790
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1790
1791
|
}, []);
|
|
1791
1792
|
|
|
1792
1793
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1801,7 +1802,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1801
1802
|
panelSize
|
|
1802
1803
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1803
1804
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1804
|
-
return !collapsible || panelSize >
|
|
1805
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1805
1806
|
}, []);
|
|
1806
1807
|
const registerPanel = useCallback(panelData => {
|
|
1807
1808
|
const {
|
|
@@ -2010,8 +2011,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2010
2011
|
// It's possible that the panels in this group have changed since the last render
|
|
2011
2012
|
return;
|
|
2012
2013
|
}
|
|
2013
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2014
|
-
if (prevCollapsedSize
|
|
2014
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2015
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2015
2016
|
resizePanel(panelData, nextCollapsedSize);
|
|
2016
2017
|
}
|
|
2017
2018
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -689,15 +689,15 @@ function assert(expectedCondition, message) {
|
|
|
689
689
|
const PRECISION = 10;
|
|
690
690
|
|
|
691
691
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
692
|
-
|
|
693
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
694
|
-
const delta = actual - expected;
|
|
695
|
-
if (delta === 0) {
|
|
692
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
696
693
|
return 0;
|
|
697
694
|
} else {
|
|
698
|
-
return
|
|
695
|
+
return actual > expected ? 1 : -1;
|
|
699
696
|
}
|
|
700
697
|
}
|
|
698
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
699
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
700
|
+
}
|
|
701
701
|
|
|
702
702
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
703
703
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1704,7 +1704,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1704
1704
|
pivotIndices
|
|
1705
1705
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1706
1706
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1707
|
-
if (panelSize
|
|
1707
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1708
1708
|
// Store size before collapse;
|
|
1709
1709
|
// This is the size that gets restored if the expand() API is used.
|
|
1710
1710
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1743,11 +1743,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1743
1743
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1744
1744
|
const {
|
|
1745
1745
|
collapsedSize = 0,
|
|
1746
|
-
panelSize,
|
|
1746
|
+
panelSize = 0,
|
|
1747
1747
|
minSize = 0,
|
|
1748
1748
|
pivotIndices
|
|
1749
1749
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1750
|
-
if (panelSize
|
|
1750
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1751
1751
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1752
1752
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1753
1753
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1812,7 +1812,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1812
1812
|
collapsible,
|
|
1813
1813
|
panelSize
|
|
1814
1814
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1815
|
-
|
|
1815
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1816
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1816
1817
|
}, []);
|
|
1817
1818
|
|
|
1818
1819
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1827,7 +1828,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1827
1828
|
panelSize
|
|
1828
1829
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1829
1830
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1830
|
-
return !collapsible || panelSize >
|
|
1831
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1831
1832
|
}, []);
|
|
1832
1833
|
const registerPanel = useCallback(panelData => {
|
|
1833
1834
|
const {
|
|
@@ -2036,8 +2037,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2036
2037
|
// It's possible that the panels in this group have changed since the last render
|
|
2037
2038
|
return;
|
|
2038
2039
|
}
|
|
2039
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2040
|
-
if (prevCollapsedSize
|
|
2040
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2041
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2041
2042
|
resizePanel(panelData, nextCollapsedSize);
|
|
2042
2043
|
}
|
|
2043
2044
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -700,15 +700,15 @@ function assert(expectedCondition, message) {
|
|
|
700
700
|
const PRECISION = 10;
|
|
701
701
|
|
|
702
702
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
703
|
-
|
|
704
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
705
|
-
const delta = actual - expected;
|
|
706
|
-
if (delta === 0) {
|
|
703
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
707
704
|
return 0;
|
|
708
705
|
} else {
|
|
709
|
-
return
|
|
706
|
+
return actual > expected ? 1 : -1;
|
|
710
707
|
}
|
|
711
708
|
}
|
|
709
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
710
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
711
|
+
}
|
|
712
712
|
|
|
713
713
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
714
714
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1815,7 +1815,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1815
1815
|
pivotIndices
|
|
1816
1816
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1817
1817
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1818
|
-
if (panelSize
|
|
1818
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1819
1819
|
// Store size before collapse;
|
|
1820
1820
|
// This is the size that gets restored if the expand() API is used.
|
|
1821
1821
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1854,11 +1854,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1854
1854
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1855
1855
|
const {
|
|
1856
1856
|
collapsedSize = 0,
|
|
1857
|
-
panelSize,
|
|
1857
|
+
panelSize = 0,
|
|
1858
1858
|
minSize = 0,
|
|
1859
1859
|
pivotIndices
|
|
1860
1860
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1861
|
-
if (panelSize
|
|
1861
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1862
1862
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1863
1863
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1864
1864
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1923,7 +1923,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1923
1923
|
collapsible,
|
|
1924
1924
|
panelSize
|
|
1925
1925
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1926
|
-
|
|
1926
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1927
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1927
1928
|
}, []);
|
|
1928
1929
|
|
|
1929
1930
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1938,7 +1939,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1938
1939
|
panelSize
|
|
1939
1940
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1940
1941
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1941
|
-
return !collapsible || panelSize >
|
|
1942
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1942
1943
|
}, []);
|
|
1943
1944
|
const registerPanel = useCallback(panelData => {
|
|
1944
1945
|
const {
|
|
@@ -2147,8 +2148,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2147
2148
|
// It's possible that the panels in this group have changed since the last render
|
|
2148
2149
|
return;
|
|
2149
2150
|
}
|
|
2150
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2151
|
-
if (prevCollapsedSize
|
|
2151
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2152
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2152
2153
|
resizePanel(panelData, nextCollapsedSize);
|
|
2153
2154
|
}
|
|
2154
2155
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -676,15 +676,15 @@ function assert(expectedCondition, message) {
|
|
|
676
676
|
const PRECISION = 10;
|
|
677
677
|
|
|
678
678
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
679
|
-
|
|
680
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
681
|
-
const delta = actual - expected;
|
|
682
|
-
if (delta === 0) {
|
|
679
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
683
680
|
return 0;
|
|
684
681
|
} else {
|
|
685
|
-
return
|
|
682
|
+
return actual > expected ? 1 : -1;
|
|
686
683
|
}
|
|
687
684
|
}
|
|
685
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
686
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
687
|
+
}
|
|
688
688
|
|
|
689
689
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
690
690
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1791,7 +1791,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1791
1791
|
pivotIndices
|
|
1792
1792
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1793
1793
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1794
|
-
if (panelSize
|
|
1794
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1795
1795
|
// Store size before collapse;
|
|
1796
1796
|
// This is the size that gets restored if the expand() API is used.
|
|
1797
1797
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1830,11 +1830,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1830
1830
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1831
1831
|
const {
|
|
1832
1832
|
collapsedSize = 0,
|
|
1833
|
-
panelSize,
|
|
1833
|
+
panelSize = 0,
|
|
1834
1834
|
minSize = 0,
|
|
1835
1835
|
pivotIndices
|
|
1836
1836
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1837
|
-
if (panelSize
|
|
1837
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1838
1838
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1839
1839
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1840
1840
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1899,7 +1899,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1899
1899
|
collapsible,
|
|
1900
1900
|
panelSize
|
|
1901
1901
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1902
|
-
|
|
1902
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1903
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1903
1904
|
}, []);
|
|
1904
1905
|
|
|
1905
1906
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1914,7 +1915,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1914
1915
|
panelSize
|
|
1915
1916
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1916
1917
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1917
|
-
return !collapsible || panelSize >
|
|
1918
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1918
1919
|
}, []);
|
|
1919
1920
|
const registerPanel = useCallback(panelData => {
|
|
1920
1921
|
const {
|
|
@@ -2123,8 +2124,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2123
2124
|
// It's possible that the panels in this group have changed since the last render
|
|
2124
2125
|
return;
|
|
2125
2126
|
}
|
|
2126
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2127
|
-
if (prevCollapsedSize
|
|
2127
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2128
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2128
2129
|
resizePanel(panelData, nextCollapsedSize);
|
|
2129
2130
|
}
|
|
2130
2131
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -662,15 +662,15 @@ function assert(expectedCondition, message) {
|
|
|
662
662
|
const PRECISION = 10;
|
|
663
663
|
|
|
664
664
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
665
|
-
|
|
666
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
667
|
-
const delta = actual - expected;
|
|
668
|
-
if (delta === 0) {
|
|
665
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
669
666
|
return 0;
|
|
670
667
|
} else {
|
|
671
|
-
return
|
|
668
|
+
return actual > expected ? 1 : -1;
|
|
672
669
|
}
|
|
673
670
|
}
|
|
671
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
672
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
673
|
+
}
|
|
674
674
|
|
|
675
675
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
676
676
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1639,7 +1639,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1639
1639
|
pivotIndices
|
|
1640
1640
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1641
1641
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1642
|
-
if (panelSize
|
|
1642
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1643
1643
|
// Store size before collapse;
|
|
1644
1644
|
// This is the size that gets restored if the expand() API is used.
|
|
1645
1645
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1678,11 +1678,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1678
1678
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1679
1679
|
const {
|
|
1680
1680
|
collapsedSize = 0,
|
|
1681
|
-
panelSize,
|
|
1681
|
+
panelSize = 0,
|
|
1682
1682
|
minSize = 0,
|
|
1683
1683
|
pivotIndices
|
|
1684
1684
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1685
|
-
if (panelSize
|
|
1685
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1686
1686
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1687
1687
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1688
1688
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1747,7 +1747,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1747
1747
|
collapsible,
|
|
1748
1748
|
panelSize
|
|
1749
1749
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1750
|
-
|
|
1750
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1751
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1751
1752
|
}, []);
|
|
1752
1753
|
|
|
1753
1754
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1762,7 +1763,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1762
1763
|
panelSize
|
|
1763
1764
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1764
1765
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1765
|
-
return !collapsible || panelSize >
|
|
1766
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1766
1767
|
}, []);
|
|
1767
1768
|
const registerPanel = useCallback(panelData => {
|
|
1768
1769
|
const {
|
|
@@ -1915,8 +1916,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1915
1916
|
// It's possible that the panels in this group have changed since the last render
|
|
1916
1917
|
return;
|
|
1917
1918
|
}
|
|
1918
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
1919
|
-
if (prevCollapsedSize
|
|
1919
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
1920
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
1920
1921
|
resizePanel(panelData, nextCollapsedSize);
|
|
1921
1922
|
}
|
|
1922
1923
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -638,15 +638,15 @@ function assert(expectedCondition, message) {
|
|
|
638
638
|
const PRECISION = 10;
|
|
639
639
|
|
|
640
640
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
641
|
-
|
|
642
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
643
|
-
const delta = actual - expected;
|
|
644
|
-
if (delta === 0) {
|
|
641
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
645
642
|
return 0;
|
|
646
643
|
} else {
|
|
647
|
-
return
|
|
644
|
+
return actual > expected ? 1 : -1;
|
|
648
645
|
}
|
|
649
646
|
}
|
|
647
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
648
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
649
|
+
}
|
|
650
650
|
|
|
651
651
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
652
652
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1615,7 +1615,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1615
1615
|
pivotIndices
|
|
1616
1616
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1617
1617
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1618
|
-
if (panelSize
|
|
1618
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1619
1619
|
// Store size before collapse;
|
|
1620
1620
|
// This is the size that gets restored if the expand() API is used.
|
|
1621
1621
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1654,11 +1654,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1654
1654
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1655
1655
|
const {
|
|
1656
1656
|
collapsedSize = 0,
|
|
1657
|
-
panelSize,
|
|
1657
|
+
panelSize = 0,
|
|
1658
1658
|
minSize = 0,
|
|
1659
1659
|
pivotIndices
|
|
1660
1660
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1661
|
-
if (panelSize
|
|
1661
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1662
1662
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1663
1663
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1664
1664
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1723,7 +1723,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1723
1723
|
collapsible,
|
|
1724
1724
|
panelSize
|
|
1725
1725
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1726
|
-
|
|
1726
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1727
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1727
1728
|
}, []);
|
|
1728
1729
|
|
|
1729
1730
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1738,7 +1739,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1738
1739
|
panelSize
|
|
1739
1740
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1740
1741
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1741
|
-
return !collapsible || panelSize >
|
|
1742
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1742
1743
|
}, []);
|
|
1743
1744
|
const registerPanel = useCallback(panelData => {
|
|
1744
1745
|
const {
|
|
@@ -1891,8 +1892,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1891
1892
|
// It's possible that the panels in this group have changed since the last render
|
|
1892
1893
|
return;
|
|
1893
1894
|
}
|
|
1894
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
1895
|
-
if (prevCollapsedSize
|
|
1895
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
1896
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
1896
1897
|
resizePanel(panelData, nextCollapsedSize);
|
|
1897
1898
|
}
|
|
1898
1899
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -665,15 +665,15 @@ function assert(expectedCondition, message) {
|
|
|
665
665
|
const PRECISION = 10;
|
|
666
666
|
|
|
667
667
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
668
|
-
|
|
669
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
670
|
-
const delta = actual - expected;
|
|
671
|
-
if (delta === 0) {
|
|
668
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
672
669
|
return 0;
|
|
673
670
|
} else {
|
|
674
|
-
return
|
|
671
|
+
return actual > expected ? 1 : -1;
|
|
675
672
|
}
|
|
676
673
|
}
|
|
674
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
675
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
676
|
+
}
|
|
677
677
|
|
|
678
678
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
679
679
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1680,7 +1680,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1680
1680
|
pivotIndices
|
|
1681
1681
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1682
1682
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1683
|
-
if (panelSize
|
|
1683
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1684
1684
|
// Store size before collapse;
|
|
1685
1685
|
// This is the size that gets restored if the expand() API is used.
|
|
1686
1686
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1719,11 +1719,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1719
1719
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1720
1720
|
const {
|
|
1721
1721
|
collapsedSize = 0,
|
|
1722
|
-
panelSize,
|
|
1722
|
+
panelSize = 0,
|
|
1723
1723
|
minSize = 0,
|
|
1724
1724
|
pivotIndices
|
|
1725
1725
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1726
|
-
if (panelSize
|
|
1726
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1727
1727
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1728
1728
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1729
1729
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1788,7 +1788,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1788
1788
|
collapsible,
|
|
1789
1789
|
panelSize
|
|
1790
1790
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1791
|
-
|
|
1791
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1792
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1792
1793
|
}, []);
|
|
1793
1794
|
|
|
1794
1795
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1803,7 +1804,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1803
1804
|
panelSize
|
|
1804
1805
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1805
1806
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1806
|
-
return !collapsible || panelSize >
|
|
1807
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1807
1808
|
}, []);
|
|
1808
1809
|
const registerPanel = useCallback(panelData => {
|
|
1809
1810
|
const {
|
|
@@ -2012,8 +2013,8 @@ function PanelGroupWithForwardedRef({
|
|
|
2012
2013
|
// It's possible that the panels in this group have changed since the last render
|
|
2013
2014
|
return;
|
|
2014
2015
|
}
|
|
2015
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
2016
|
-
if (prevCollapsedSize
|
|
2016
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
2017
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
2017
2018
|
resizePanel(panelData, nextCollapsedSize);
|
|
2018
2019
|
}
|
|
2019
2020
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -651,15 +651,15 @@ function assert(expectedCondition, message) {
|
|
|
651
651
|
const PRECISION = 10;
|
|
652
652
|
|
|
653
653
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
654
|
-
|
|
655
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
656
|
-
const delta = actual - expected;
|
|
657
|
-
if (delta === 0) {
|
|
654
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
658
655
|
return 0;
|
|
659
656
|
} else {
|
|
660
|
-
return
|
|
657
|
+
return actual > expected ? 1 : -1;
|
|
661
658
|
}
|
|
662
659
|
}
|
|
660
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
661
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
662
|
+
}
|
|
663
663
|
|
|
664
664
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
665
665
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1538,7 +1538,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1538
1538
|
pivotIndices
|
|
1539
1539
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1540
1540
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1541
|
-
if (panelSize
|
|
1541
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1542
1542
|
// Store size before collapse;
|
|
1543
1543
|
// This is the size that gets restored if the expand() API is used.
|
|
1544
1544
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1577,11 +1577,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1577
1577
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1578
1578
|
const {
|
|
1579
1579
|
collapsedSize = 0,
|
|
1580
|
-
panelSize,
|
|
1580
|
+
panelSize = 0,
|
|
1581
1581
|
minSize = 0,
|
|
1582
1582
|
pivotIndices
|
|
1583
1583
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1584
|
-
if (panelSize
|
|
1584
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1585
1585
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1586
1586
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1587
1587
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1646,7 +1646,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1646
1646
|
collapsible,
|
|
1647
1647
|
panelSize
|
|
1648
1648
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1649
|
-
|
|
1649
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1650
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1650
1651
|
}, []);
|
|
1651
1652
|
|
|
1652
1653
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1661,7 +1662,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1661
1662
|
panelSize
|
|
1662
1663
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1663
1664
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1664
|
-
return !collapsible || panelSize >
|
|
1665
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1665
1666
|
}, []);
|
|
1666
1667
|
const registerPanel = useCallback(panelData => {
|
|
1667
1668
|
const {
|
|
@@ -1814,8 +1815,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1814
1815
|
// It's possible that the panels in this group have changed since the last render
|
|
1815
1816
|
return;
|
|
1816
1817
|
}
|
|
1817
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
1818
|
-
if (prevCollapsedSize
|
|
1818
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
1819
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
1819
1820
|
resizePanel(panelData, nextCollapsedSize);
|
|
1820
1821
|
}
|
|
1821
1822
|
} else if (prevPanelSize < nextMinSize) {
|
|
@@ -627,15 +627,15 @@ function assert(expectedCondition, message) {
|
|
|
627
627
|
const PRECISION = 10;
|
|
628
628
|
|
|
629
629
|
function fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {
|
|
630
|
-
|
|
631
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
632
|
-
const delta = actual - expected;
|
|
633
|
-
if (delta === 0) {
|
|
630
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
634
631
|
return 0;
|
|
635
632
|
} else {
|
|
636
|
-
return
|
|
633
|
+
return actual > expected ? 1 : -1;
|
|
637
634
|
}
|
|
638
635
|
}
|
|
636
|
+
function fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {
|
|
637
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
638
|
+
}
|
|
639
639
|
|
|
640
640
|
function fuzzyNumbersEqual(actual, expected, fractionDigits) {
|
|
641
641
|
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
@@ -1514,7 +1514,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1514
1514
|
pivotIndices
|
|
1515
1515
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1516
1516
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1517
|
-
if (panelSize
|
|
1517
|
+
if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1518
1518
|
// Store size before collapse;
|
|
1519
1519
|
// This is the size that gets restored if the expand() API is used.
|
|
1520
1520
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -1553,11 +1553,11 @@ function PanelGroupWithForwardedRef({
|
|
|
1553
1553
|
const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);
|
|
1554
1554
|
const {
|
|
1555
1555
|
collapsedSize = 0,
|
|
1556
|
-
panelSize,
|
|
1556
|
+
panelSize = 0,
|
|
1557
1557
|
minSize = 0,
|
|
1558
1558
|
pivotIndices
|
|
1559
1559
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
1560
|
-
if (panelSize
|
|
1560
|
+
if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {
|
|
1561
1561
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
1562
1562
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);
|
|
1563
1563
|
const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;
|
|
@@ -1622,7 +1622,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1622
1622
|
collapsible,
|
|
1623
1623
|
panelSize
|
|
1624
1624
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1625
|
-
|
|
1625
|
+
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1626
|
+
return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);
|
|
1626
1627
|
}, []);
|
|
1627
1628
|
|
|
1628
1629
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -1637,7 +1638,7 @@ function PanelGroupWithForwardedRef({
|
|
|
1637
1638
|
panelSize
|
|
1638
1639
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
1639
1640
|
assert(panelSize != null, `Panel size not found for panel "${panelData.id}"`);
|
|
1640
|
-
return !collapsible || panelSize >
|
|
1641
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
1641
1642
|
}, []);
|
|
1642
1643
|
const registerPanel = useCallback(panelData => {
|
|
1643
1644
|
const {
|
|
@@ -1790,8 +1791,8 @@ function PanelGroupWithForwardedRef({
|
|
|
1790
1791
|
// It's possible that the panels in this group have changed since the last render
|
|
1791
1792
|
return;
|
|
1792
1793
|
}
|
|
1793
|
-
if (prevCollapsible && nextCollapsible && prevPanelSize
|
|
1794
|
-
if (prevCollapsedSize
|
|
1794
|
+
if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {
|
|
1795
|
+
if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {
|
|
1795
1796
|
resizePanel(panelData, nextCollapsedSize);
|
|
1796
1797
|
}
|
|
1797
1798
|
} else if (prevPanelSize < nextMinSize) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-resizable-panels",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.14",
|
|
4
4
|
"description": "React components for resizable panel groups/layouts",
|
|
5
5
|
"author": "Brian Vaughn <brian.david.vaughn@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,6 +60,12 @@
|
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
"types": "dist/react-resizable-panels.cjs.d.ts",
|
|
63
|
+
"scripts": {
|
|
64
|
+
"lint": "eslint \"src/**/*.{ts,tsx}\"",
|
|
65
|
+
"test": "jest --config=jest.config.js",
|
|
66
|
+
"test:watch": "jest --config=jest.config.js --watch",
|
|
67
|
+
"watch": "parcel watch --port=2345"
|
|
68
|
+
},
|
|
63
69
|
"devDependencies": {
|
|
64
70
|
"@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
|
|
65
71
|
"@babel/plugin-proposal-optional-chaining": "7.21.0",
|
|
@@ -77,11 +83,5 @@
|
|
|
77
83
|
},
|
|
78
84
|
"browserslist": [
|
|
79
85
|
"Chrome 79"
|
|
80
|
-
]
|
|
81
|
-
|
|
82
|
-
"lint": "eslint \"src/**/*.{ts,tsx}\"",
|
|
83
|
-
"test": "jest --config=jest.config.js",
|
|
84
|
-
"test:watch": "jest --config=jest.config.js --watch",
|
|
85
|
-
"watch": "parcel watch --port=2345"
|
|
86
|
-
}
|
|
87
|
-
}
|
|
86
|
+
]
|
|
87
|
+
}
|
package/src/Panel.test.tsx
CHANGED
|
@@ -144,6 +144,55 @@ describe("PanelGroup", () => {
|
|
|
144
144
|
});
|
|
145
145
|
verifyExpandedPanelGroupLayout(mostRecentLayout, [30, 70]);
|
|
146
146
|
});
|
|
147
|
+
|
|
148
|
+
it("should report the correct state with collapsedSizes that have many decimal places", () => {
|
|
149
|
+
act(() => {
|
|
150
|
+
root.render(
|
|
151
|
+
<PanelGroup direction="horizontal">
|
|
152
|
+
<Panel
|
|
153
|
+
collapsedSize={3.8764385221078133}
|
|
154
|
+
collapsible
|
|
155
|
+
defaultSize={50}
|
|
156
|
+
minSize={15}
|
|
157
|
+
ref={leftPanelRef}
|
|
158
|
+
/>
|
|
159
|
+
<PanelResizeHandle />
|
|
160
|
+
<Panel collapsible defaultSize={50} ref={rightPanelRef} />
|
|
161
|
+
</PanelGroup>
|
|
162
|
+
);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
act(() => {
|
|
166
|
+
leftPanelRef.current?.collapse();
|
|
167
|
+
});
|
|
168
|
+
expect(leftPanelRef.current?.isCollapsed()).toBe(true);
|
|
169
|
+
expect(leftPanelRef.current?.isExpanded()).toBe(false);
|
|
170
|
+
|
|
171
|
+
act(() => {
|
|
172
|
+
root.render(
|
|
173
|
+
<PanelGroup direction="horizontal">
|
|
174
|
+
<Panel
|
|
175
|
+
collapsedSize={3.8764385221078132}
|
|
176
|
+
collapsible
|
|
177
|
+
defaultSize={50}
|
|
178
|
+
minSize={15}
|
|
179
|
+
ref={leftPanelRef}
|
|
180
|
+
/>
|
|
181
|
+
<PanelResizeHandle />
|
|
182
|
+
<Panel collapsible defaultSize={50} ref={rightPanelRef} />
|
|
183
|
+
</PanelGroup>
|
|
184
|
+
);
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
expect(leftPanelRef.current?.isCollapsed()).toBe(true);
|
|
188
|
+
expect(leftPanelRef.current?.isExpanded()).toBe(false);
|
|
189
|
+
|
|
190
|
+
act(() => {
|
|
191
|
+
leftPanelRef.current?.expand();
|
|
192
|
+
});
|
|
193
|
+
expect(leftPanelRef.current?.isCollapsed()).toBe(false);
|
|
194
|
+
expect(leftPanelRef.current?.isExpanded()).toBe(true);
|
|
195
|
+
});
|
|
147
196
|
});
|
|
148
197
|
|
|
149
198
|
describe("resize", () => {
|
package/src/PanelGroup.ts
CHANGED
|
@@ -31,6 +31,10 @@ import { getResizeHandleElement } from "./utils/dom/getResizeHandleElement";
|
|
|
31
31
|
import { isKeyDown, isMouseEvent, isTouchEvent } from "./utils/events";
|
|
32
32
|
import { getResizeEventCursorPosition } from "./utils/events/getResizeEventCursorPosition";
|
|
33
33
|
import { initializeDefaultStorage } from "./utils/initializeDefaultStorage";
|
|
34
|
+
import {
|
|
35
|
+
fuzzyCompareNumbers,
|
|
36
|
+
fuzzyNumbersEqual,
|
|
37
|
+
} from "./utils/numbers/fuzzyCompareNumbers";
|
|
34
38
|
import {
|
|
35
39
|
loadPanelGroupState,
|
|
36
40
|
savePanelGroupState,
|
|
@@ -341,7 +345,7 @@ function PanelGroupWithForwardedRef({
|
|
|
341
345
|
`Panel size not found for panel "${panelData.id}"`
|
|
342
346
|
);
|
|
343
347
|
|
|
344
|
-
if (panelSize
|
|
348
|
+
if (!fuzzyNumbersEqual(panelSize, collapsedSize)) {
|
|
345
349
|
// Store size before collapse;
|
|
346
350
|
// This is the size that gets restored if the expand() API is used.
|
|
347
351
|
panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);
|
|
@@ -393,12 +397,12 @@ function PanelGroupWithForwardedRef({
|
|
|
393
397
|
|
|
394
398
|
const {
|
|
395
399
|
collapsedSize = 0,
|
|
396
|
-
panelSize,
|
|
400
|
+
panelSize = 0,
|
|
397
401
|
minSize = 0,
|
|
398
402
|
pivotIndices,
|
|
399
403
|
} = panelDataHelper(panelDataArray, panelData, prevLayout);
|
|
400
404
|
|
|
401
|
-
if (panelSize
|
|
405
|
+
if (fuzzyNumbersEqual(panelSize, collapsedSize)) {
|
|
402
406
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
403
407
|
const prevPanelSize = panelSizeBeforeCollapseRef.current.get(
|
|
404
408
|
panelData.id
|
|
@@ -484,7 +488,12 @@ function PanelGroupWithForwardedRef({
|
|
|
484
488
|
panelSize,
|
|
485
489
|
} = panelDataHelper(panelDataArray, panelData, layout);
|
|
486
490
|
|
|
487
|
-
|
|
491
|
+
assert(
|
|
492
|
+
panelSize != null,
|
|
493
|
+
`Panel size not found for panel "${panelData.id}"`
|
|
494
|
+
);
|
|
495
|
+
|
|
496
|
+
return collapsible === true && fuzzyNumbersEqual(panelSize, collapsedSize);
|
|
488
497
|
}, []);
|
|
489
498
|
|
|
490
499
|
// External APIs are safe to memoize via committed values ref
|
|
@@ -502,7 +511,7 @@ function PanelGroupWithForwardedRef({
|
|
|
502
511
|
`Panel size not found for panel "${panelData.id}"`
|
|
503
512
|
);
|
|
504
513
|
|
|
505
|
-
return !collapsible || panelSize >
|
|
514
|
+
return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;
|
|
506
515
|
}, []);
|
|
507
516
|
|
|
508
517
|
const registerPanel = useCallback((panelData: PanelData) => {
|
|
@@ -780,9 +789,9 @@ function PanelGroupWithForwardedRef({
|
|
|
780
789
|
if (
|
|
781
790
|
prevCollapsible &&
|
|
782
791
|
nextCollapsible &&
|
|
783
|
-
prevPanelSize
|
|
792
|
+
fuzzyNumbersEqual(prevPanelSize, prevCollapsedSize)
|
|
784
793
|
) {
|
|
785
|
-
if (prevCollapsedSize
|
|
794
|
+
if (!fuzzyNumbersEqual(prevCollapsedSize, nextCollapsedSize)) {
|
|
786
795
|
resizePanel(panelData, nextCollapsedSize);
|
|
787
796
|
} else {
|
|
788
797
|
// Stay collapsed
|
|
@@ -5,13 +5,17 @@ export function fuzzyCompareNumbers(
|
|
|
5
5
|
expected: number,
|
|
6
6
|
fractionDigits: number = PRECISION
|
|
7
7
|
): number {
|
|
8
|
-
|
|
9
|
-
expected = parseFloat(expected.toFixed(fractionDigits));
|
|
10
|
-
|
|
11
|
-
const delta = actual - expected;
|
|
12
|
-
if (delta === 0) {
|
|
8
|
+
if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {
|
|
13
9
|
return 0;
|
|
14
10
|
} else {
|
|
15
|
-
return
|
|
11
|
+
return actual > expected ? 1 : -1;
|
|
16
12
|
}
|
|
17
13
|
}
|
|
14
|
+
|
|
15
|
+
export function fuzzyNumbersEqual(
|
|
16
|
+
actual: number,
|
|
17
|
+
expected: number,
|
|
18
|
+
fractionDigits: number = PRECISION
|
|
19
|
+
): boolean {
|
|
20
|
+
return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;
|
|
21
|
+
}
|
|
Binary file
|
|
Binary file
|
package/.parcel-cache/data.mdb
DELETED
|
Binary file
|
package/.parcel-cache/lock.mdb
DELETED
|
Binary file
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023 Brian Vaughn
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|