react-science 0.20.1 → 0.21.0

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.
@@ -16,7 +16,13 @@ function useLoadFileCollectionFromHash(onLoad) {
16
16
  if (!filelistUrl) {
17
17
  return null;
18
18
  }
19
- const fileCollection = await (0, filelist_utils_1.fileCollectionFromWebservice)(filelistUrl);
19
+ const request = await fetch(filelistUrl);
20
+ const data = await request.json();
21
+ let baseURL = filelistUrl.replace(/\/[^/]*$/, '/');
22
+ const fileCollection = await (0, filelist_utils_1.fileCollectionFromWebSource)({
23
+ entries: data,
24
+ baseURL,
25
+ });
20
26
  void onLoad(fileCollection, appDispatch);
21
27
  return true;
22
28
  },
@@ -17,14 +17,27 @@ function useSplitPaneContext() {
17
17
  }
18
18
  exports.useSplitPaneContext = useSplitPaneContext;
19
19
  function SplitPane(props) {
20
- const { direction = 'horizontal', controlledSide = 'start', initialSize = '50%', initialClosed = false, onResize, onToggle, children, } = props;
21
- const minimumSize = typeof initialClosed === 'number' ? initialClosed : null;
20
+ const { direction = 'horizontal', controlledSide = 'start', size = '50%', closed = false, onResize, onToggle, children, } = props;
21
+ const minimumSize = typeof closed === 'number' ? closed : null;
22
22
  // Whether the pane is explicitly closed. If the value is `false`, the pane
23
23
  // may still be currently closed because it is smaller than the minimum size.
24
- const [isPaneClosed, closePane, openPane] = (0, useOnOff_1.useOnOff)(typeof initialClosed === 'boolean' ? initialClosed : false);
24
+ const [isPaneClosed, closePane, openPane] = (0, useOnOff_1.useOnOff)(typeof closed === 'boolean' ? closed : false);
25
25
  // Whether the user has already interacted with the pane.
26
26
  const [hasTouched, touch] = (0, react_2.useReducer)(() => true, false);
27
- const [[size, sizeType], setSize] = (0, react_2.useState)(() => parseSize(initialSize));
27
+ const [[splitSize, sizeType], setSize] = (0, react_2.useState)(() => parseSize(size));
28
+ (0, react_2.useEffect)(() => {
29
+ setSize(parseSize(size));
30
+ }, [size]);
31
+ (0, react_2.useEffect)(() => {
32
+ if (typeof closed === 'boolean') {
33
+ if (closed) {
34
+ closePane();
35
+ }
36
+ else {
37
+ openPane();
38
+ }
39
+ }
40
+ }, [closePane, closed, openPane]);
28
41
  const splitterRef = (0, react_2.useRef)(null);
29
42
  const { onMouseDown } = (0, useSplitPaneSize_1.useSplitPaneSize)({
30
43
  controlledSide,
@@ -67,7 +80,7 @@ function SplitPane(props) {
67
80
  }
68
81
  }
69
82
  function getSplitSideStyle(side) {
70
- return getItemStyle(isFinalClosed, controlledSide === side, direction, size, sizeType);
83
+ return getItemStyle(isFinalClosed, controlledSide === side, direction, splitSize, sizeType);
71
84
  }
72
85
  return ((0, jsx_runtime_1.jsxs)("div", { ref: rootSize.ref, style: {
73
86
  display: 'flex',
@@ -85,9 +98,11 @@ function SplitSide(props) {
85
98
  const { style, children } = props;
86
99
  return (0, jsx_runtime_1.jsx)("div", { style: style, children: children });
87
100
  }
88
- function parseSize(initialSize) {
89
- const [, value, type] = /(?<value>^\d+)(?<type>.+)$/.exec(initialSize);
90
- return [Number(value), type];
101
+ function parseSize(size) {
102
+ const value = Number.parseFloat(size);
103
+ // remove numbers and dots from the string
104
+ const type = size.replace(/[\d .]/g, '');
105
+ return [value, type];
91
106
  }
92
107
  const flexBase = 100;
93
108
  function percentToFlex(percent) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-loading.d.ts","sourceRoot":"","sources":["../../../src/app/hooks/file-loading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAgC,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,KAAK,MAAM,GAAG,CACZ,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,EAC9B,QAAQ,EAAE,WAAW,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,wEAgB3D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAG/B,IAAI,EAAE,UAMjB"}
1
+ {"version":3,"file":"file-loading.d.ts","sourceRoot":"","sources":["../../../src/app/hooks/file-loading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA+B,MAAM,gBAAgB,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,KAAK,MAAM,GAAG,CACZ,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,EAC9B,QAAQ,EAAE,WAAW,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,wEAsB3D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAG/B,IAAI,EAAE,UAMjB"}
@@ -1,5 +1,5 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import { fileCollectionFromWebservice } from 'filelist-utils';
2
+ import { fileCollectionFromWebSource } from 'filelist-utils';
3
3
  import { useCallback } from 'react';
4
4
  import { useAppDispatch } from '../../app-data/index';
5
5
  import { useHashSearchParams } from '../../components/index';
@@ -13,7 +13,13 @@ export function useLoadFileCollectionFromHash(onLoad) {
13
13
  if (!filelistUrl) {
14
14
  return null;
15
15
  }
16
- const fileCollection = await fileCollectionFromWebservice(filelistUrl);
16
+ const request = await fetch(filelistUrl);
17
+ const data = await request.json();
18
+ let baseURL = filelistUrl.replace(/\/[^/]*$/, '/');
19
+ const fileCollection = await fileCollectionFromWebSource({
20
+ entries: data,
21
+ baseURL,
22
+ });
17
23
  void onLoad(fileCollection, appDispatch);
18
24
  return true;
19
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"file-loading.js","sourceRoot":"","sources":["../../../src/app/hooks/file-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAkB,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAe,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAO7D,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QACnC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,cAAc,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;YACvE,KAAK,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,KAAa,EAAE,EAAE;QAChB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"file-loading.js","sourceRoot":"","sources":["../../../src/app/hooks/file-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAkB,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAe,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAO7D,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QACnC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC;gBACvD,OAAO,EAAE,IAAI;gBACb,OAAO;aACR,CAAC,CAAC;YACH,KAAK,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,KAAa,EAAE,EAAE;QAChB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -11,8 +11,8 @@ export declare function getMeasurementInfoFromFile({ name, relativePath, lastMod
11
11
  file: {
12
12
  name: string;
13
13
  path: string;
14
- lastModified: number;
15
- size: number;
14
+ lastModified: number | undefined;
15
+ size: number | undefined;
16
16
  };
17
17
  };
18
18
  };
@@ -18,10 +18,10 @@ export interface SplitPaneProps {
18
18
  */
19
19
  controlledSide?: SplitPaneSide;
20
20
  /**
21
- * Initial size of the controlled side. Unit can be either '%' or 'px'.
21
+ * size of the controlled side. Unit can be either '%' or 'px'.
22
22
  * @default '50%'
23
23
  */
24
- initialSize?: SplitPaneSize;
24
+ size?: SplitPaneSize;
25
25
  /**
26
26
  * Defines whether the pane is initially closed.
27
27
  * A value of `true` means the pane is always initially closed.
@@ -33,7 +33,7 @@ export interface SplitPaneProps {
33
33
  * no longer open or close automatically.
34
34
  * @default false
35
35
  */
36
- initialClosed?: boolean | number;
36
+ closed?: boolean | number;
37
37
  /**
38
38
  * Called whenever the user finishes resizing the pane.
39
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SplitPane.d.ts","sourceRoot":"","sources":["../../../src/components/split-pane/SplitPane.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,SAAS,EAMV,MAAM,OAAO,CAAC;AAOf,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,CAAC;AAC5C,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CAClC;AAID,wBAAgB,mBAAmB,YAElC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,oDAsG9C"}
1
+ {"version":3,"file":"SplitPane.d.ts","sourceRoot":"","sources":["../../../src/components/split-pane/SplitPane.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,SAAS,EAOV,MAAM,OAAO,CAAC;AAOf,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,CAAC;AAC5C,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CAClC;AAID,wBAAgB,mBAAmB,YAElC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,oDAoH9C"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
2
  /** @jsxImportSource @emotion/react */
3
3
  import { css } from '@emotion/react';
4
- import { createContext, useContext, useRef, useState, useReducer, } from 'react';
4
+ import { createContext, useContext, useRef, useState, useReducer, useEffect, } from 'react';
5
5
  import useResizeObserver from 'use-resize-observer';
6
6
  import { useOnOff } from '../hooks/useOnOff';
7
7
  import { useSplitPaneSize } from './useSplitPaneSize';
@@ -10,14 +10,27 @@ export function useSplitPaneContext() {
10
10
  return useContext(splitPaneContext);
11
11
  }
12
12
  export function SplitPane(props) {
13
- const { direction = 'horizontal', controlledSide = 'start', initialSize = '50%', initialClosed = false, onResize, onToggle, children, } = props;
14
- const minimumSize = typeof initialClosed === 'number' ? initialClosed : null;
13
+ const { direction = 'horizontal', controlledSide = 'start', size = '50%', closed = false, onResize, onToggle, children, } = props;
14
+ const minimumSize = typeof closed === 'number' ? closed : null;
15
15
  // Whether the pane is explicitly closed. If the value is `false`, the pane
16
16
  // may still be currently closed because it is smaller than the minimum size.
17
- const [isPaneClosed, closePane, openPane] = useOnOff(typeof initialClosed === 'boolean' ? initialClosed : false);
17
+ const [isPaneClosed, closePane, openPane] = useOnOff(typeof closed === 'boolean' ? closed : false);
18
18
  // Whether the user has already interacted with the pane.
19
19
  const [hasTouched, touch] = useReducer(() => true, false);
20
- const [[size, sizeType], setSize] = useState(() => parseSize(initialSize));
20
+ const [[splitSize, sizeType], setSize] = useState(() => parseSize(size));
21
+ useEffect(() => {
22
+ setSize(parseSize(size));
23
+ }, [size]);
24
+ useEffect(() => {
25
+ if (typeof closed === 'boolean') {
26
+ if (closed) {
27
+ closePane();
28
+ }
29
+ else {
30
+ openPane();
31
+ }
32
+ }
33
+ }, [closePane, closed, openPane]);
21
34
  const splitterRef = useRef(null);
22
35
  const { onMouseDown } = useSplitPaneSize({
23
36
  controlledSide,
@@ -60,7 +73,7 @@ export function SplitPane(props) {
60
73
  }
61
74
  }
62
75
  function getSplitSideStyle(side) {
63
- return getItemStyle(isFinalClosed, controlledSide === side, direction, size, sizeType);
76
+ return getItemStyle(isFinalClosed, controlledSide === side, direction, splitSize, sizeType);
64
77
  }
65
78
  return (_jsxs("div", { ref: rootSize.ref, style: {
66
79
  display: 'flex',
@@ -77,9 +90,11 @@ function SplitSide(props) {
77
90
  const { style, children } = props;
78
91
  return _jsx("div", { style: style, children: children });
79
92
  }
80
- function parseSize(initialSize) {
81
- const [, value, type] = /(?<value>^\d+)(?<type>.+)$/.exec(initialSize);
82
- return [Number(value), type];
93
+ function parseSize(size) {
94
+ const value = Number.parseFloat(size);
95
+ // remove numbers and dots from the string
96
+ const type = size.replace(/[\d .]/g, '');
97
+ return [value, type];
83
98
  }
84
99
  const flexBase = 100;
85
100
  function percentToFlex(percent) {
@@ -1 +1 @@
1
- {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../src/components/split-pane/SplitPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../src/components/split-pane/SplitPane.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "0.20.1",
3
+ "version": "0.21.0",
4
4
  "description": "React components to build analysis UI",
5
5
  "exports": {
6
6
  "./app": {
@@ -50,7 +50,7 @@
50
50
  "test-only": "vitest run --coverage "
51
51
  },
52
52
  "volta": {
53
- "node": "16.18.1"
53
+ "node": "18.14.2"
54
54
  },
55
55
  "overrides": {
56
56
  "react": "^18.2.0",
@@ -61,66 +61,66 @@
61
61
  "react-dom": ">=18.0.0"
62
62
  },
63
63
  "dependencies": {
64
- "@emotion/react": "^11.10.5",
65
- "@emotion/styled": "^11.10.5",
66
- "@headlessui/react": "^1.7.4",
64
+ "@emotion/react": "^11.10.6",
65
+ "@emotion/styled": "^11.10.6",
66
+ "@headlessui/react": "^1.7.13",
67
67
  "@lukeed/uuid": "^2.0.0",
68
68
  "@popperjs/core": "^2.11.6",
69
- "@tanstack/react-query": "^4.19.1",
70
- "@tanstack/react-table": "^8.7.0",
69
+ "@tanstack/react-query": "^4.24.10",
70
+ "@tanstack/react-table": "^8.7.9",
71
71
  "biologic-converter": "^0.6.0",
72
72
  "cheminfo-types": "^1.4.0",
73
73
  "d3-scale-chromatic": "^3.0.0",
74
- "filelist-utils": "^1.4.0",
75
- "immer": "^9.0.16",
76
- "jcampconverter": "^9.0.5",
74
+ "filelist-utils": "^1.8.0",
75
+ "immer": "^9.0.19",
76
+ "jcampconverter": "^9.0.7",
77
77
  "lodash": "^4.17.21",
78
78
  "ml-gsd": "^12.1.2",
79
79
  "ml-peak-shape-generator": "^4.1.2",
80
80
  "ml-signal-processing": "^1.0.2",
81
- "ml-spectra-processing": "^11.14.0",
82
- "ms-spectrum": "^2.0.0",
81
+ "ml-spectra-processing": "^12.0.0",
82
+ "ms-spectrum": "^2.2.0",
83
83
  "netcdfjs": "^2.0.2",
84
84
  "react-d3-utils": "^1.0.0",
85
85
  "react-dropzone": "^14.2.3",
86
86
  "react-error-boundary": "^3.1.4",
87
- "react-icons": "^4.7.1",
87
+ "react-icons": "^4.8.0",
88
88
  "react-inspector": "^6.0.1",
89
- "react-kbs": "^2.1.0",
89
+ "react-kbs": "^2.1.1",
90
90
  "react-plot": "^1.4.2",
91
91
  "react-popper": "^2.3.0",
92
- "react-shadow": "^19.0.3",
92
+ "react-shadow": "^20.0.0",
93
93
  "spc-parser": "^0.7.1",
94
- "tinycolor2": "^1.4.2",
94
+ "tinycolor2": "^1.6.0",
95
95
  "use-resize-observer": "^9.1.0",
96
96
  "wdf-parser": "^0.3.0"
97
97
  },
98
98
  "devDependencies": {
99
- "@babel/core": "^7.20.5",
99
+ "@babel/core": "^7.21.0",
100
100
  "@babel/eslint-parser": "^7.19.1",
101
- "@ladle/react": "^2.4.5",
102
- "@playwright/experimental-ct-react": "^1.28.1",
103
- "@playwright/test": "^1.28.1",
104
- "@types/babel__core": "^7.1.20",
101
+ "@ladle/react": "^2.9.0",
102
+ "@playwright/experimental-ct-react": "^1.31.2",
103
+ "@playwright/test": "^1.31.2",
104
+ "@types/babel__core": "^7.20.0",
105
105
  "@types/d3-scale-chromatic": "^3.0.0",
106
106
  "@types/lodash": "^4.14.191",
107
- "@types/react": "^18.0.26",
108
- "@types/react-dom": "^18.0.9",
107
+ "@types/react": "^18.0.28",
108
+ "@types/react-dom": "^18.0.11",
109
109
  "@types/react-inspector": "^4.0.2",
110
- "@vitejs/plugin-react": "^2.2.0",
111
- "@vitest/coverage-c8": "^0.25.5",
110
+ "@vitejs/plugin-react": "^3.1.0",
111
+ "@vitest/coverage-c8": "^0.29.2",
112
112
  "cheminfo-font": "^1.9.0",
113
113
  "cross-env": "^7.0.3",
114
- "eslint": "^8.29.0",
114
+ "eslint": "^8.35.0",
115
115
  "eslint-config-zakodium": "^7.0.0",
116
- "prettier": "^2.8.0",
116
+ "prettier": "^2.8.4",
117
117
  "react": "^18.2.0",
118
118
  "react-dom": "^18.2.0",
119
119
  "react-ocl": "^5.0.0",
120
- "rimraf": "^3.0.2",
121
- "typescript": "^4.9.3",
122
- "vite": "^3.2.5",
123
- "vitest": "^0.25.5"
120
+ "rimraf": "^4.3.0",
121
+ "typescript": "^4.9.5",
122
+ "vite": "^4.1.4",
123
+ "vitest": "^0.29.2"
124
124
  },
125
125
  "repository": {
126
126
  "type": "git",
@@ -1,5 +1,5 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import { FileCollection, fileCollectionFromWebservice } from 'filelist-utils';
2
+ import { FileCollection, fileCollectionFromWebSource } from 'filelist-utils';
3
3
  import { useCallback } from 'react';
4
4
 
5
5
  import { AppDispatch, useAppDispatch } from '../../app-data/index';
@@ -20,7 +20,13 @@ export function useLoadFileCollectionFromHash(onLoad: LoadFn) {
20
20
  if (!filelistUrl) {
21
21
  return null;
22
22
  }
23
- const fileCollection = await fileCollectionFromWebservice(filelistUrl);
23
+ const request = await fetch(filelistUrl);
24
+ const data = await request.json();
25
+ let baseURL = filelistUrl.replace(/\/[^/]*$/, '/');
26
+ const fileCollection = await fileCollectionFromWebSource({
27
+ entries: data,
28
+ baseURL,
29
+ });
24
30
  void onLoad(fileCollection, appDispatch);
25
31
  return true;
26
32
  },
@@ -10,6 +10,7 @@ import {
10
10
  useState,
11
11
  RefObject,
12
12
  useReducer,
13
+ useEffect,
13
14
  } from 'react';
14
15
  import useResizeObserver from 'use-resize-observer';
15
16
 
@@ -37,10 +38,10 @@ export interface SplitPaneProps {
37
38
  */
38
39
  controlledSide?: SplitPaneSide;
39
40
  /**
40
- * Initial size of the controlled side. Unit can be either '%' or 'px'.
41
+ * size of the controlled side. Unit can be either '%' or 'px'.
41
42
  * @default '50%'
42
43
  */
43
- initialSize?: SplitPaneSize;
44
+ size?: SplitPaneSize;
44
45
  /**
45
46
  * Defines whether the pane is initially closed.
46
47
  * A value of `true` means the pane is always initially closed.
@@ -52,7 +53,7 @@ export interface SplitPaneProps {
52
53
  * no longer open or close automatically.
53
54
  * @default false
54
55
  */
55
- initialClosed?: boolean | number;
56
+ closed?: boolean | number;
56
57
  /**
57
58
  * Called whenever the user finishes resizing the pane.
58
59
  */
@@ -78,25 +79,39 @@ export function SplitPane(props: SplitPaneProps) {
78
79
  const {
79
80
  direction = 'horizontal',
80
81
  controlledSide = 'start',
81
- initialSize = '50%',
82
- initialClosed = false,
82
+ size = '50%',
83
+ closed = false,
83
84
  onResize,
84
85
  onToggle,
85
86
  children,
86
87
  } = props;
87
88
 
88
- const minimumSize = typeof initialClosed === 'number' ? initialClosed : null;
89
+ const minimumSize = typeof closed === 'number' ? closed : null;
89
90
 
90
91
  // Whether the pane is explicitly closed. If the value is `false`, the pane
91
92
  // may still be currently closed because it is smaller than the minimum size.
92
93
  const [isPaneClosed, closePane, openPane] = useOnOff(
93
- typeof initialClosed === 'boolean' ? initialClosed : false,
94
+ typeof closed === 'boolean' ? closed : false,
94
95
  );
95
96
 
96
97
  // Whether the user has already interacted with the pane.
97
98
  const [hasTouched, touch] = useReducer(() => true, false);
98
99
 
99
- const [[size, sizeType], setSize] = useState(() => parseSize(initialSize));
100
+ const [[splitSize, sizeType], setSize] = useState(() => parseSize(size));
101
+
102
+ useEffect(() => {
103
+ setSize(parseSize(size));
104
+ }, [size]);
105
+
106
+ useEffect(() => {
107
+ if (typeof closed === 'boolean') {
108
+ if (closed) {
109
+ closePane();
110
+ } else {
111
+ openPane();
112
+ }
113
+ }
114
+ }, [closePane, closed, openPane]);
100
115
 
101
116
  const splitterRef = useRef<HTMLDivElement>(null);
102
117
  const { onMouseDown } = useSplitPaneSize({
@@ -148,7 +163,7 @@ export function SplitPane(props: SplitPaneProps) {
148
163
  isFinalClosed,
149
164
  controlledSide === side,
150
165
  direction,
151
- size,
166
+ splitSize,
152
167
  sizeType,
153
168
  );
154
169
  }
@@ -214,12 +229,12 @@ function SplitSide(props: SplitSideProps) {
214
229
  return <div style={style}>{children}</div>;
215
230
  }
216
231
 
217
- function parseSize(initialSize: string): [number, SplitPaneType] {
218
- const [, value, type] = /(?<value>^\d+)(?<type>.+)$/.exec(
219
- initialSize,
220
- ) as unknown as [string, string, SplitPaneType];
232
+ function parseSize(size: string): [number, SplitPaneType] {
233
+ const value = Number.parseFloat(size);
234
+ // remove numbers and dots from the string
235
+ const type = size.replace(/[\d .]/g, '') as SplitPaneType;
221
236
 
222
- return [Number(value), type];
237
+ return [value, type];
223
238
  }
224
239
 
225
240
  const flexBase = 100;