@haniffalab/cherita-react 0.2.0-dev.2025-01-22.f523ac5e → 0.2.0-dev.2025-01-28.7a60aa67
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/README.md +5 -0
- package/dist/components/dotplot/Dotplot.js +19 -26
- package/dist/components/dotplot/DotplotControls.js +106 -147
- package/dist/components/full-page/FullPage.js +99 -148
- package/dist/components/heatmap/Heatmap.js +19 -26
- package/dist/components/heatmap/HeatmapControls.js +7 -13
- package/dist/components/matrixplot/Matrixplot.js +19 -26
- package/dist/components/matrixplot/MatrixplotControls.js +14 -35
- package/dist/components/obs-list/ObsItem.js +182 -239
- package/dist/components/obs-list/ObsList.js +40 -49
- package/dist/components/obs-list/ObsToolbar.js +44 -55
- package/dist/components/obsm-list/ObsmList.js +15 -23
- package/dist/components/offcanvas/index.js +45 -75
- package/dist/components/pseudospatial/Pseudospatial.js +26 -34
- package/dist/components/pseudospatial/PseudospatialControls.js +1 -2
- package/dist/components/pseudospatial/PseudospatialToolbar.js +37 -65
- package/dist/components/scatterplot/Scatterplot.js +74 -89
- package/dist/components/scatterplot/ScatterplotControls.js +28 -39
- package/dist/components/scatterplot/SpatialControls.js +94 -117
- package/dist/components/scatterplot/Toolbox.js +16 -24
- package/dist/components/search-bar/SearchBar.js +45 -54
- package/dist/components/search-bar/SearchResults.js +36 -49
- package/dist/components/var-list/VarItem.js +112 -160
- package/dist/components/var-list/VarList.js +81 -124
- package/dist/components/var-list/VarListToolbar.js +48 -59
- package/dist/components/var-list/VarSet.js +95 -120
- package/dist/components/violin/Violin.js +31 -46
- package/dist/components/violin/ViolinControls.js +8 -22
- package/dist/context/DatasetContext.js +17 -27
- package/dist/context/FilterContext.js +8 -12
- package/dist/context/ZarrDataContext.js +6 -9
- package/dist/helpers/color-helper.js +11 -12
- package/dist/helpers/map-helper.js +7 -8
- package/dist/helpers/zarr-helper.js +9 -15
- package/dist/utils/Histogram.js +34 -41
- package/dist/utils/ImageViewer.js +9 -14
- package/dist/utils/Legend.js +30 -40
- package/dist/utils/LoadingIndicators.js +16 -19
- package/dist/utils/VirtualizedList.js +32 -39
- package/dist/utils/requests.js +15 -25
- package/dist/utils/string.js +4 -9
- package/dist/utils/zarrData.js +2 -8
- package/package.json +40 -34
|
@@ -5,29 +5,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.LoadingSpinner = exports.LoadingLinear = void 0;
|
|
7
7
|
var _material = require("@mui/material");
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return /*#__PURE__*/
|
|
15
|
-
className: "loading-spinner"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
})]
|
|
22
|
-
});
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const LoadingSpinner = ({
|
|
11
|
+
text = null,
|
|
12
|
+
disableShrink = false
|
|
13
|
+
}) => {
|
|
14
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
15
|
+
className: "loading-spinner"
|
|
16
|
+
}, /*#__PURE__*/_react.default.createElement(_material.CircularProgress, {
|
|
17
|
+
disableShrink: disableShrink
|
|
18
|
+
}), text?.length && /*#__PURE__*/_react.default.createElement("span", {
|
|
19
|
+
className: "visually-hidden"
|
|
20
|
+
}, text));
|
|
23
21
|
};
|
|
24
22
|
exports.LoadingSpinner = LoadingSpinner;
|
|
25
23
|
const LoadingLinear = () => {
|
|
26
|
-
return /*#__PURE__*/
|
|
24
|
+
return /*#__PURE__*/_react.default.createElement(_material.Box, {
|
|
27
25
|
sx: {
|
|
28
26
|
width: "100%"
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
});
|
|
27
|
+
}
|
|
28
|
+
}, /*#__PURE__*/_react.default.createElement(_material.LinearProgress, null));
|
|
32
29
|
};
|
|
33
30
|
exports.LoadingLinear = LoadingLinear;
|
|
@@ -6,19 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.VirtualizedList = VirtualizedList;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactVirtual = require("@tanstack/react-virtual");
|
|
9
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
10
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
function VirtualizedList({
|
|
13
|
+
getDataAtIndex,
|
|
14
|
+
count,
|
|
15
|
+
ItemComponent,
|
|
16
|
+
estimateSize = 45,
|
|
17
|
+
overscan = 25,
|
|
18
|
+
maxHeight = "80vh",
|
|
19
|
+
...props
|
|
20
|
+
}) {
|
|
22
21
|
const [parentNode, setParentNode] = (0, _react.useState)(null);
|
|
23
22
|
const itemVirtualizer = (0, _reactVirtual.useVirtualizer)({
|
|
24
23
|
count: count,
|
|
@@ -33,36 +32,30 @@ function VirtualizedList(_ref) {
|
|
|
33
32
|
(0, _react.useEffect)(() => {
|
|
34
33
|
itemVirtualizer.measure();
|
|
35
34
|
}, [itemVirtualizer, parentNode?.clientHeight, getDataAtIndex]);
|
|
36
|
-
return /*#__PURE__*/
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
37
36
|
ref: refCallback,
|
|
38
37
|
style: {
|
|
39
38
|
overflowY: "auto",
|
|
40
39
|
maxHeight: maxHeight
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
...props
|
|
63
|
-
})
|
|
64
|
-
}, virtualItem.key))
|
|
65
|
-
})
|
|
66
|
-
})
|
|
67
|
-
});
|
|
40
|
+
}
|
|
41
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
42
|
+
style: {
|
|
43
|
+
height: `${itemVirtualizer.getTotalSize()}px`,
|
|
44
|
+
width: "100%",
|
|
45
|
+
position: "relative",
|
|
46
|
+
willChange: "transform"
|
|
47
|
+
}
|
|
48
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
49
|
+
style: {
|
|
50
|
+
position: "absolute",
|
|
51
|
+
top: 0,
|
|
52
|
+
left: 0,
|
|
53
|
+
width: "100%",
|
|
54
|
+
transform: `translateY(${virtualItems[0]?.start ?? 0}px)`
|
|
55
|
+
}
|
|
56
|
+
}, virtualItems.map(virtualItem => /*#__PURE__*/_react.default.createElement("div", {
|
|
57
|
+
key: virtualItem.key,
|
|
58
|
+
"data-index": virtualItem.index,
|
|
59
|
+
ref: itemVirtualizer.measureElement
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement(ItemComponent, _extends({}, getDataAtIndex(virtualItem.index), props)))))));
|
|
68
61
|
}
|
package/dist/utils/requests.js
CHANGED
|
@@ -10,10 +10,7 @@ var _usehooks = require("@uidotdev/usehooks");
|
|
|
10
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
11
|
var _errors = require("./errors");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
async function fetchData(endpoint, params) {
|
|
14
|
-
let signal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
15
|
-
let ms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 300000;
|
|
16
|
-
let apiUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
13
|
+
async function fetchData(endpoint, params, signal = null, ms = 300000, apiUrl = null) {
|
|
17
14
|
apiUrl = apiUrl || process.env.REACT_APP_API_URL;
|
|
18
15
|
const controller = new AbortController();
|
|
19
16
|
const timeout = setTimeout(() => {
|
|
@@ -41,12 +38,10 @@ async function fetchData(endpoint, params) {
|
|
|
41
38
|
}
|
|
42
39
|
return await response.json();
|
|
43
40
|
}
|
|
44
|
-
const useFetch =
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
};
|
|
49
|
-
let apiUrl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
41
|
+
const useFetch = (endpoint, params, opts = {
|
|
42
|
+
refetchOnMount: false,
|
|
43
|
+
refetchOnWindowFocus: false
|
|
44
|
+
}, apiUrl = null) => {
|
|
50
45
|
const {
|
|
51
46
|
enabled = true
|
|
52
47
|
} = opts;
|
|
@@ -56,10 +51,9 @@ const useFetch = function (endpoint, params) {
|
|
|
56
51
|
error: serverError = null
|
|
57
52
|
} = (0, _reactQuery.useQuery)({
|
|
58
53
|
queryKey: [endpoint, params],
|
|
59
|
-
queryFn:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
} = _ref;
|
|
54
|
+
queryFn: ({
|
|
55
|
+
signal
|
|
56
|
+
}) => {
|
|
63
57
|
if (enabled) {
|
|
64
58
|
return fetchData(endpoint, params, signal, apiUrl);
|
|
65
59
|
} else {
|
|
@@ -75,13 +69,10 @@ const useFetch = function (endpoint, params) {
|
|
|
75
69
|
};
|
|
76
70
|
};
|
|
77
71
|
exports.useFetch = useFetch;
|
|
78
|
-
const useDebouncedFetch =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
refetchOnWindowFocus: false
|
|
83
|
-
};
|
|
84
|
-
let apiUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
72
|
+
const useDebouncedFetch = (endpoint, params, delay = 500, opts = {
|
|
73
|
+
refetchOnMount: false,
|
|
74
|
+
refetchOnWindowFocus: false
|
|
75
|
+
}, apiUrl = null) => {
|
|
85
76
|
const {
|
|
86
77
|
enabled = true
|
|
87
78
|
} = opts;
|
|
@@ -92,10 +83,9 @@ const useDebouncedFetch = function (endpoint, params) {
|
|
|
92
83
|
error: serverError = null
|
|
93
84
|
} = (0, _reactQuery.useQuery)({
|
|
94
85
|
queryKey: [endpoint, debouncedParams],
|
|
95
|
-
queryFn:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
} = _ref2;
|
|
86
|
+
queryFn: ({
|
|
87
|
+
signal
|
|
88
|
+
}) => {
|
|
99
89
|
if (enabled) {
|
|
100
90
|
return fetchData(endpoint, debouncedParams, signal, apiUrl);
|
|
101
91
|
} else {
|
package/dist/utils/string.js
CHANGED
|
@@ -13,33 +13,28 @@ const FORMATS = exports.FORMATS = {
|
|
|
13
13
|
ABBREVIATION: "abbreviation",
|
|
14
14
|
THOUSAND: "thousand"
|
|
15
15
|
};
|
|
16
|
-
function formatThousand(n) {
|
|
17
|
-
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
|
|
16
|
+
function formatThousand(n, precision = 3) {
|
|
18
17
|
return (0, _numbro.default)(n).format({
|
|
19
18
|
thousandSeparated: true,
|
|
20
19
|
mantissa: precision,
|
|
21
20
|
trimMantissa: true
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
|
-
function formatExponential(n) {
|
|
25
|
-
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
|
|
23
|
+
function formatExponential(n, precision = 3) {
|
|
26
24
|
return (0, _numbro.default)(n).format({
|
|
27
25
|
exponential: true,
|
|
28
26
|
mantissa: precision,
|
|
29
27
|
trimMantissa: true
|
|
30
28
|
});
|
|
31
29
|
}
|
|
32
|
-
function formatAbbreviation(n) {
|
|
33
|
-
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
|
|
30
|
+
function formatAbbreviation(n, precision = 3) {
|
|
34
31
|
return (0, _numbro.default)(n).format({
|
|
35
32
|
average: true,
|
|
36
33
|
mantissa: precision,
|
|
37
34
|
trimMantissa: true
|
|
38
35
|
}).toUpperCase();
|
|
39
36
|
}
|
|
40
|
-
function formatNumerical(n) {
|
|
41
|
-
let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : FORMATS.THOUSAND;
|
|
42
|
-
let precision = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
|
|
37
|
+
function formatNumerical(n, format = FORMATS.THOUSAND, precision = 3) {
|
|
43
38
|
if (n === 0) {
|
|
44
39
|
return "0";
|
|
45
40
|
} else if (!n || n === undefined || isNaN(n)) {
|
package/dist/utils/zarrData.js
CHANGED
|
@@ -26,15 +26,9 @@ const useObsmData = () => {
|
|
|
26
26
|
};
|
|
27
27
|
exports.useObsmData = useObsmData;
|
|
28
28
|
const meanData = (_i, data) => {
|
|
29
|
-
return _lodash.default.zipWith(...data,
|
|
30
|
-
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
31
|
-
values[_key] = arguments[_key];
|
|
32
|
-
}
|
|
33
|
-
return _lodash.default.mean(values);
|
|
34
|
-
});
|
|
29
|
+
return _lodash.default.zipWith(...data, (...values) => _lodash.default.mean(values));
|
|
35
30
|
};
|
|
36
|
-
const useXData =
|
|
37
|
-
let agg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : meanData;
|
|
31
|
+
const useXData = (agg = meanData) => {
|
|
38
32
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
39
33
|
const [xParams, setXParams] = (0, _react.useState)(!dataset.selectedVar ? [] : !dataset.selectedVar?.isSet ? [{
|
|
40
34
|
url: dataset.url,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haniffalab/cherita-react",
|
|
3
|
-
"version": "0.2.0-dev.2025-01-
|
|
3
|
+
"version": "0.2.0-dev.2025-01-28.7a60aa67",
|
|
4
4
|
"author": "",
|
|
5
5
|
"license": "",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,30 +12,30 @@
|
|
|
12
12
|
"scss"
|
|
13
13
|
],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@emotion/react": "^11.
|
|
16
|
-
"@emotion/styled": "^11.
|
|
17
|
-
"@fortawesome/fontawesome-svg-core": "^6.
|
|
18
|
-
"@fortawesome/free-solid-svg-icons": "^6.
|
|
19
|
-
"@fortawesome/react-fontawesome": "^0.2.
|
|
20
|
-
"@mui/icons-material": "^
|
|
21
|
-
"@mui/material": "^
|
|
22
|
-
"@mui/x-charts": "^7.
|
|
15
|
+
"@emotion/react": "^11.14.0",
|
|
16
|
+
"@emotion/styled": "^11.14.0",
|
|
17
|
+
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
|
18
|
+
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
|
19
|
+
"@fortawesome/react-fontawesome": "^0.2.2",
|
|
20
|
+
"@mui/icons-material": "^6.4.1",
|
|
21
|
+
"@mui/material": "^6.4.1",
|
|
22
|
+
"@mui/x-charts": "^7.24.1",
|
|
23
23
|
"@nebula.gl/editor": "^1.0.4",
|
|
24
24
|
"@nebula.gl/layers": "^1.0.4",
|
|
25
|
-
"@tanstack/query-sync-storage-persister": "^
|
|
26
|
-
"@tanstack/react-query": "^
|
|
27
|
-
"@tanstack/react-query-persist-client": "^
|
|
28
|
-
"@tanstack/react-virtual": "^3.
|
|
29
|
-
"@turf/turf": "^7.
|
|
25
|
+
"@tanstack/query-sync-storage-persister": "^5.64.2",
|
|
26
|
+
"@tanstack/react-query": "^5.64.2",
|
|
27
|
+
"@tanstack/react-query-persist-client": "^5.64.2",
|
|
28
|
+
"@tanstack/react-virtual": "^3.11.2",
|
|
29
|
+
"@turf/turf": "^7.2.0",
|
|
30
30
|
"@uidotdev/usehooks": "^2.4.1",
|
|
31
|
-
"bootstrap": "^5.3.
|
|
32
|
-
"deck.gl": "^
|
|
33
|
-
"jquery": "^3.7.
|
|
31
|
+
"bootstrap": "^5.3.3",
|
|
32
|
+
"deck.gl": "^9.1.0",
|
|
33
|
+
"jquery": "^3.7.1",
|
|
34
34
|
"nebula.gl": "^1.0.4",
|
|
35
35
|
"numbro": "^2.5.0",
|
|
36
|
-
"plotly.js": "^2.
|
|
36
|
+
"plotly.js": "^2.35.3",
|
|
37
37
|
"popper.js": "^1.16.1",
|
|
38
|
-
"react-bootstrap": "^2.
|
|
38
|
+
"react-bootstrap": "^2.10.8",
|
|
39
39
|
"react-plotly.js": "^2.6.0",
|
|
40
40
|
"react-scripts": "^5.0.1",
|
|
41
41
|
"zarr": "^0.6.3"
|
|
@@ -45,30 +45,36 @@
|
|
|
45
45
|
"react-dom": "^18.2.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@babel/cli": "^7.
|
|
49
|
-
"@babel/core": "^7.
|
|
48
|
+
"@babel/cli": "^7.26.4",
|
|
49
|
+
"@babel/core": "^7.26.7",
|
|
50
50
|
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
51
|
-
"@babel/preset-env": "^7.
|
|
52
|
-
"@babel/preset-react": "^7.
|
|
51
|
+
"@babel/preset-env": "^7.26.7",
|
|
52
|
+
"@babel/preset-react": "^7.26.3",
|
|
53
|
+
"@testing-library/dom": "^10.4.0",
|
|
54
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
55
|
+
"@testing-library/react": "^16.2.0",
|
|
56
|
+
"babel-jest": "^29.7.0",
|
|
53
57
|
"cpx": "^1.5.0",
|
|
54
|
-
"eslint": "^
|
|
55
|
-
"eslint-config-prettier": "^
|
|
58
|
+
"eslint": "^9.18.0",
|
|
59
|
+
"eslint-config-prettier": "^10.0.1",
|
|
56
60
|
"eslint-config-react-app": "^7.0.1",
|
|
57
|
-
"eslint-plugin-import": "^2.
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
+
"eslint-plugin-import": "^2.31.0",
|
|
62
|
+
"jest": "^29.7.0",
|
|
63
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
64
|
+
"prettier": "^3.4.2",
|
|
65
|
+
"react": "^18.2.0",
|
|
66
|
+
"react-dom": "^18.2.0",
|
|
67
|
+
"sass": "^1.83.4",
|
|
68
|
+
"stylelint": "^16.13.2",
|
|
61
69
|
"stylelint-config-prettier": "^9.0.5",
|
|
62
|
-
"stylelint-config-standard-scss": "^
|
|
70
|
+
"stylelint-config-standard-scss": "^14.0.0"
|
|
63
71
|
},
|
|
64
72
|
"scripts": {
|
|
65
|
-
"start": "react-scripts start",
|
|
66
73
|
"build:babel": "babel src/lib --out-dir dist --copy-files",
|
|
67
74
|
"build:scss": "sass --load-path=node_modules src/scss/cherita-bootstrap.scss dist/css/cherita.css",
|
|
68
75
|
"copy:scss": "cpx src/scss/**/* scss",
|
|
69
76
|
"build": "npm run build:babel && npm run build:scss && npm run copy:scss",
|
|
70
|
-
"test": "
|
|
71
|
-
"eject": "react-scripts eject",
|
|
77
|
+
"test": "jest --watchAll",
|
|
72
78
|
"lint:scss": "stylelint 'src/**/*.scss' --fix",
|
|
73
79
|
"lint:js": "eslint 'src/**/*.js' --fix",
|
|
74
80
|
"lint": "npm run lint:scss && npm run lint:js",
|
|
@@ -101,5 +107,5 @@
|
|
|
101
107
|
"url": "https://github.com/haniffalab/cherita-react/issues"
|
|
102
108
|
},
|
|
103
109
|
"homepage": "https://github.com/haniffalab/cherita-react#readme",
|
|
104
|
-
"prereleaseSha": "
|
|
110
|
+
"prereleaseSha": "7a60aa672cb6fe8773e3f61c0ca1bb69268f1b2e"
|
|
105
111
|
}
|