react-science 0.37.0 → 1.0.1

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.
@@ -18,7 +18,7 @@ const defaultFilters = FilterXYSchema_json_1.default.anyOf.map(({ properties })
18
18
  };
19
19
  }
20
20
  return {
21
- name: properties.name.enum[0],
21
+ name: properties.name.const,
22
22
  options,
23
23
  };
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SignalProcessingPanel.js","sourceRoot":"","sources":["../../../src/app/panels/SignalProcessingPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignalProcessingPanel.js","sourceRoot":"","sources":["../../../src/app/panels/SignalProcessingPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,18 @@
1
1
  /// <reference types="react" />
2
2
  import { ItemRenderer } from '@blueprintjs/select';
3
- export declare function useSelect<T extends {
4
- label: string;
5
- }>(): {
3
+ type FilterType<SourceType, Type> = Pick<SourceType, {
4
+ [K in keyof SourceType]: SourceType[K] extends Type ? K : never;
5
+ }[keyof SourceType]>;
6
+ interface BaseOptions<T> {
7
+ itemTextKey: keyof FilterType<T, string>;
8
+ defaultSelectedItem?: T;
9
+ }
10
+ interface RenderOptions<T> {
11
+ getItemText: (item: T) => string;
12
+ defaultSelectedItem?: T;
13
+ }
14
+ type SelectOptions<T> = BaseOptions<T> | RenderOptions<T>;
15
+ export declare function useSelect<T>(options: SelectOptions<T>): {
6
16
  value: T | null;
7
17
  setValue: import("react").Dispatch<import("react").SetStateAction<T | null>>;
8
18
  itemRenderer: ItemRenderer<T>;
@@ -18,4 +28,5 @@ export declare function useSelect<T extends {
18
28
  itemPredicate: (query: string, item: T) => boolean;
19
29
  itemListPredicate: (query: string, items: T[]) => T[];
20
30
  };
31
+ export {};
21
32
  //# sourceMappingURL=useSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;yBAKhC,WAAW;;;;;;;2BAWA,MAAM,QAAQ,CAAC;+BAGX,MAAM,SAAS,CAAC,EAAE;EAerD"}
1
+ {"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,KAAK,UAAU,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CACtC,UAAU,EACV;KACG,CAAC,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK;CAChE,CAAC,MAAM,UAAU,CAAC,CACpB,CAAC;AAEF,UAAU,WAAW,CAAC,CAAC;IACrB,WAAW,EAAE,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,CAAC;CACzB;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,CAAC,CAAC;CACzB;AAED,KAAK,aAAa,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAsB1D,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;;;;;;yBAOjC,WAAW;;;;;;;2BAWA,MAAM,QAAQ,CAAC;+BAKX,MAAM,SAAS,CAAC,EAAE;EAiBrD"}
@@ -4,9 +4,23 @@ exports.useSelect = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const core_1 = require("@blueprintjs/core");
6
6
  const react_1 = require("react");
7
- function useSelect() {
8
- const [value, setValue] = (0, react_1.useState)(null);
9
- const itemRenderer = getItemRenderer(value);
7
+ function isAccessLabelByKey(options) {
8
+ return 'itemTextKey' in options;
9
+ }
10
+ function getLabel(item, options) {
11
+ const isAccessLByLabelKey = isAccessLabelByKey(options);
12
+ if (!item || (isAccessLByLabelKey && !options.itemTextKey)) {
13
+ return null;
14
+ }
15
+ if (isAccessLByLabelKey) {
16
+ return item[options.itemTextKey];
17
+ }
18
+ return options.getItemText(item);
19
+ }
20
+ function useSelect(options) {
21
+ const { defaultSelectedItem = null } = options;
22
+ const [value, setValue] = (0, react_1.useState)(defaultSelectedItem);
23
+ const itemRenderer = getItemRenderer(value, options);
10
24
  const onItemSelect = setValue;
11
25
  const popoverProps = {
12
26
  onOpened: (node) => {
@@ -21,10 +35,18 @@ function useSelect() {
21
35
  style: { display: 'inline-block' },
22
36
  };
23
37
  const itemPredicate = (query, item) => {
24
- return item.label.toLowerCase().includes(query.toLowerCase());
38
+ const label = getLabel(item, options);
39
+ if (!label)
40
+ return false;
41
+ return label.toLowerCase().includes(query.toLowerCase());
25
42
  };
26
43
  const itemListPredicate = (query, items) => {
27
- return items.filter((item) => item.label.toLowerCase().includes(query.toLowerCase()));
44
+ return items.filter((item) => {
45
+ const label = getLabel(item, options);
46
+ if (!label)
47
+ return false;
48
+ return label.toLowerCase().includes(query.toLowerCase());
49
+ });
28
50
  };
29
51
  return {
30
52
  value,
@@ -38,8 +60,12 @@ function useSelect() {
38
60
  };
39
61
  }
40
62
  exports.useSelect = useSelect;
41
- function getItemRenderer(value) {
42
- const render = ({ label }, { handleClick, handleFocus, modifiers, index }) => ((0, jsx_runtime_1.jsx)(core_1.MenuItem, { active: modifiers.active, disabled: modifiers.disabled, selected: value?.label === label, onClick: handleClick, onFocus: handleFocus, roleStructure: "listoption", text: label }, index));
63
+ function getItemRenderer(value, options) {
64
+ const selectedLabel = getLabel(value, options);
65
+ const render = (item, { handleClick, handleFocus, modifiers, index }) => {
66
+ const label = getLabel(item, options);
67
+ return ((0, jsx_runtime_1.jsx)(core_1.MenuItem, { active: modifiers.active, disabled: modifiers.disabled, selected: selectedLabel === label, onClick: handleClick, onFocus: handleFocus, roleStructure: "listoption", text: label }, index));
68
+ };
43
69
  return render;
44
70
  }
45
71
  //# sourceMappingURL=useSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.js","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":";;;;AAAA,4CAA6C;AAE7C,iCAAiC;AAEjC,SAAgB,SAAS;IACvB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAW,IAAI,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC;IAC9B,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,CAAC,IAAiB,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;KACF,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;KACnC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAAO,EAAE,EAAE;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,KAAU,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;QACL,KAAK;QACL,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAlCD,8BAkCC;AAED,SAAS,eAAe,CAA8B,KAAe;IACnE,MAAM,MAAM,GAAoB,CAC9B,EAAE,KAAK,EAAE,EACT,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAC9C,EAAE,CAAC,CACH,uBAAC,eAAQ,IACP,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,EAEhC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,aAAa,EAAC,YAAY,EAC1B,IAAI,EAAE,KAAK,IAJN,KAAK,CAKV,CACH,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"useSelect.js","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ const defaultFilters = filterXY.anyOf.map(({ properties }) => {
12
12
  };
13
13
  }
14
14
  return {
15
- name: properties.name.enum[0],
15
+ name: properties.name.const,
16
16
  options,
17
17
  };
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SignalProcessingPanel.js","sourceRoot":"","sources":["../../../src/app/panels/SignalProcessingPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignalProcessingPanel.js","sourceRoot":"","sources":["../../../src/app/panels/SignalProcessingPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,18 @@
1
1
  /// <reference types="react" />
2
2
  import { ItemRenderer } from '@blueprintjs/select';
3
- export declare function useSelect<T extends {
4
- label: string;
5
- }>(): {
3
+ type FilterType<SourceType, Type> = Pick<SourceType, {
4
+ [K in keyof SourceType]: SourceType[K] extends Type ? K : never;
5
+ }[keyof SourceType]>;
6
+ interface BaseOptions<T> {
7
+ itemTextKey: keyof FilterType<T, string>;
8
+ defaultSelectedItem?: T;
9
+ }
10
+ interface RenderOptions<T> {
11
+ getItemText: (item: T) => string;
12
+ defaultSelectedItem?: T;
13
+ }
14
+ type SelectOptions<T> = BaseOptions<T> | RenderOptions<T>;
15
+ export declare function useSelect<T>(options: SelectOptions<T>): {
6
16
  value: T | null;
7
17
  setValue: import("react").Dispatch<import("react").SetStateAction<T | null>>;
8
18
  itemRenderer: ItemRenderer<T>;
@@ -18,4 +28,5 @@ export declare function useSelect<T extends {
18
28
  itemPredicate: (query: string, item: T) => boolean;
19
29
  itemListPredicate: (query: string, items: T[]) => T[];
20
30
  };
31
+ export {};
21
32
  //# sourceMappingURL=useSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;yBAKhC,WAAW;;;;;;;2BAWA,MAAM,QAAQ,CAAC;+BAGX,MAAM,SAAS,CAAC,EAAE;EAerD"}
1
+ {"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,KAAK,UAAU,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CACtC,UAAU,EACV;KACG,CAAC,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK;CAChE,CAAC,MAAM,UAAU,CAAC,CACpB,CAAC;AAEF,UAAU,WAAW,CAAC,CAAC;IACrB,WAAW,EAAE,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,CAAC;CACzB;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,CAAC,CAAC;CACzB;AAED,KAAK,aAAa,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAsB1D,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;;;;;;yBAOjC,WAAW;;;;;;;2BAWA,MAAM,QAAQ,CAAC;+BAKX,MAAM,SAAS,CAAC,EAAE;EAiBrD"}
@@ -1,9 +1,23 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MenuItem } from '@blueprintjs/core';
3
3
  import { useState } from 'react';
4
- export function useSelect() {
5
- const [value, setValue] = useState(null);
6
- const itemRenderer = getItemRenderer(value);
4
+ function isAccessLabelByKey(options) {
5
+ return 'itemTextKey' in options;
6
+ }
7
+ function getLabel(item, options) {
8
+ const isAccessLByLabelKey = isAccessLabelByKey(options);
9
+ if (!item || (isAccessLByLabelKey && !options.itemTextKey)) {
10
+ return null;
11
+ }
12
+ if (isAccessLByLabelKey) {
13
+ return item[options.itemTextKey];
14
+ }
15
+ return options.getItemText(item);
16
+ }
17
+ export function useSelect(options) {
18
+ const { defaultSelectedItem = null } = options;
19
+ const [value, setValue] = useState(defaultSelectedItem);
20
+ const itemRenderer = getItemRenderer(value, options);
7
21
  const onItemSelect = setValue;
8
22
  const popoverProps = {
9
23
  onOpened: (node) => {
@@ -18,10 +32,18 @@ export function useSelect() {
18
32
  style: { display: 'inline-block' },
19
33
  };
20
34
  const itemPredicate = (query, item) => {
21
- return item.label.toLowerCase().includes(query.toLowerCase());
35
+ const label = getLabel(item, options);
36
+ if (!label)
37
+ return false;
38
+ return label.toLowerCase().includes(query.toLowerCase());
22
39
  };
23
40
  const itemListPredicate = (query, items) => {
24
- return items.filter((item) => item.label.toLowerCase().includes(query.toLowerCase()));
41
+ return items.filter((item) => {
42
+ const label = getLabel(item, options);
43
+ if (!label)
44
+ return false;
45
+ return label.toLowerCase().includes(query.toLowerCase());
46
+ });
25
47
  };
26
48
  return {
27
49
  value,
@@ -34,8 +56,12 @@ export function useSelect() {
34
56
  itemListPredicate,
35
57
  };
36
58
  }
37
- function getItemRenderer(value) {
38
- const render = ({ label }, { handleClick, handleFocus, modifiers, index }) => (_jsx(MenuItem, { active: modifiers.active, disabled: modifiers.disabled, selected: value?.label === label, onClick: handleClick, onFocus: handleFocus, roleStructure: "listoption", text: label }, index));
59
+ function getItemRenderer(value, options) {
60
+ const selectedLabel = getLabel(value, options);
61
+ const render = (item, { handleClick, handleFocus, modifiers, index }) => {
62
+ const label = getLabel(item, options);
63
+ return (_jsx(MenuItem, { active: modifiers.active, disabled: modifiers.disabled, selected: selectedLabel === label, onClick: handleClick, onFocus: handleFocus, roleStructure: "listoption", text: label }, index));
64
+ };
39
65
  return render;
40
66
  }
41
67
  //# sourceMappingURL=useSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.js","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,UAAU,SAAS;IACvB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC;IAC9B,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,CAAC,IAAiB,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;KACF,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;KACnC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAAO,EAAE,EAAE;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,KAAU,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;QACL,KAAK;QACL,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAA8B,KAAe;IACnE,MAAM,MAAM,GAAoB,CAC9B,EAAE,KAAK,EAAE,EACT,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAC9C,EAAE,CAAC,CACH,KAAC,QAAQ,IACP,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,EAEhC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,aAAa,EAAC,YAAY,EAC1B,IAAI,EAAE,KAAK,IAJN,KAAK,CAKV,CACH,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"useSelect.js","sourceRoot":"","sources":["../../../src/components/hooks/useSelect.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.37.0",
3
+ "version": "1.0.1",
4
4
  "description": "React components to build scientific applications UI",
5
5
  "exports": {
6
6
  "./app": {
@@ -64,8 +64,8 @@
64
64
  "react-dom": ">=18.0.0"
65
65
  },
66
66
  "dependencies": {
67
- "@blueprintjs/select": "^5.1.1",
68
- "@emotion/react": "^11.11.3",
67
+ "@blueprintjs/select": "^5.1.2",
68
+ "@emotion/react": "^11.11.4",
69
69
  "@emotion/styled": "^11.11.0",
70
70
  "@headlessui/react": "^1.7.18",
71
71
  "@lukeed/uuid": "^2.0.1",
@@ -73,42 +73,42 @@
73
73
  "@radix-ui/react-checkbox": "^1.0.4",
74
74
  "@radix-ui/react-radio-group": "^1.1.3",
75
75
  "@radix-ui/react-select": "^2.0.0",
76
- "@tanstack/react-query": "^5.21.7",
77
- "@tanstack/react-table": "^8.12.0",
76
+ "@tanstack/react-query": "^5.28.4",
77
+ "@tanstack/react-table": "^8.13.2",
78
78
  "biologic-converter": "^0.6.0",
79
- "cheminfo-types": "^1.7.2",
80
- "d3-scale-chromatic": "^3.0.0",
79
+ "cheminfo-types": "^1.7.3",
80
+ "d3-scale-chromatic": "^3.1.0",
81
81
  "filelist-utils": "^1.11.0",
82
- "immer": "^10.0.3",
83
- "jcampconverter": "^9.6.1",
82
+ "immer": "^10.0.4",
83
+ "jcampconverter": "^9.6.3",
84
84
  "lodash": "^4.17.21",
85
- "ml-gsd": "^12.1.3",
85
+ "ml-gsd": "^12.1.6",
86
86
  "ml-peak-shape-generator": "^4.1.2",
87
- "ml-signal-processing": "^1.0.3",
88
- "ml-spectra-processing": "^12.10.2",
89
- "ms-spectrum": "^3.4.2",
87
+ "ml-signal-processing": "^1.0.4",
88
+ "ml-spectra-processing": "^14.2.2",
89
+ "ms-spectrum": "^3.4.3",
90
90
  "netcdfjs": "^3.0.0",
91
91
  "react-d3-utils": "^1.0.0",
92
92
  "react-dropzone": "^14.2.3",
93
- "react-error-boundary": "^4.0.12",
93
+ "react-error-boundary": "^4.0.13",
94
94
  "react-icons": "^5.0.1",
95
95
  "react-inspector": "^6.0.2",
96
96
  "react-kbs": "^2.1.1",
97
97
  "react-plot": "^1.4.2",
98
98
  "react-popper": "^2.3.0",
99
- "spc-parser": "^0.7.3",
99
+ "spc-parser": "^1.0.0",
100
100
  "tinycolor2": "^1.6.0",
101
101
  "use-resize-observer": "^9.1.0",
102
102
  "wdf-parser": "^0.3.0"
103
103
  },
104
104
  "devDependencies": {
105
- "@babel/core": "^7.23.9",
105
+ "@babel/core": "^7.24.0",
106
106
  "@babel/eslint-parser": "^7.23.10",
107
107
  "@babel/preset-react": "^7.23.3",
108
- "@blueprintjs/core": "^5.9.1",
109
- "@blueprintjs/icons": "^5.7.1",
110
- "@playwright/experimental-ct-react": "^1.41.2",
111
- "@playwright/test": "^1.41.2",
108
+ "@blueprintjs/core": "^5.10.0",
109
+ "@blueprintjs/icons": "^5.8.0",
110
+ "@playwright/experimental-ct-react": "~1.41.0",
111
+ "@playwright/test": "~1.41.0",
112
112
  "@storybook/addon-essentials": "7.6.16",
113
113
  "@storybook/addon-storysource": "7.6.16",
114
114
  "@storybook/blocks": "7.6.16",
@@ -116,16 +116,16 @@
116
116
  "@storybook/react-vite": "7.6.16",
117
117
  "@types/babel__core": "^7.20.5",
118
118
  "@types/d3-scale-chromatic": "^3.0.3",
119
- "@types/lodash": "^4.14.202",
120
- "@types/react": "^18.2.56",
121
- "@types/react-dom": "^18.2.19",
119
+ "@types/lodash": "^4.17.0",
120
+ "@types/react": "^18.2.66",
121
+ "@types/react-dom": "^18.2.22",
122
122
  "@types/react-inspector": "^4.0.6",
123
123
  "@types/tinycolor2": "^1.4.6",
124
124
  "@vitejs/plugin-react": "^4.2.1",
125
- "@vitest/coverage-v8": "^1.3.0",
125
+ "@vitest/coverage-v8": "^1.4.0",
126
126
  "cheminfo-font": "^1.13.0",
127
127
  "cross-env": "^7.0.3",
128
- "eslint": "^8.56.0",
128
+ "eslint": "^8.57.0",
129
129
  "eslint-config-zakodium": "^8.1.0",
130
130
  "eslint-plugin-storybook": "^0.8.0",
131
131
  "prettier": "^3.2.5",
@@ -134,9 +134,9 @@
134
134
  "react-ocl": "^6.1.0",
135
135
  "rimraf": "^5.0.5",
136
136
  "storybook": "7.6.16",
137
- "typescript": "^5.3.3",
138
- "vite": "^5.1.3",
139
- "vitest": "^1.3.0"
137
+ "typescript": "^5.4.2",
138
+ "vite": "^5.1.6",
139
+ "vitest": "^1.4.0"
140
140
  },
141
141
  "repository": {
142
142
  "type": "git",
@@ -31,7 +31,7 @@ const defaultFilters = filterXY.anyOf.map(({ properties }) => {
31
31
  }
32
32
 
33
33
  return {
34
- name: properties.name.enum[0] as FilterXYType['name'],
34
+ name: properties.name.const as FilterXYType['name'],
35
35
  options,
36
36
  };
37
37
  });
@@ -2,9 +2,50 @@ import { MenuItem } from '@blueprintjs/core';
2
2
  import { ItemRenderer } from '@blueprintjs/select';
3
3
  import { useState } from 'react';
4
4
 
5
- export function useSelect<T extends { label: string }>() {
6
- const [value, setValue] = useState<T | null>(null);
7
- const itemRenderer = getItemRenderer(value);
5
+ type FilterType<SourceType, Type> = Pick<
6
+ SourceType,
7
+ {
8
+ [K in keyof SourceType]: SourceType[K] extends Type ? K : never;
9
+ }[keyof SourceType]
10
+ >;
11
+
12
+ interface BaseOptions<T> {
13
+ itemTextKey: keyof FilterType<T, string>;
14
+ defaultSelectedItem?: T;
15
+ }
16
+
17
+ interface RenderOptions<T> {
18
+ getItemText: (item: T) => string;
19
+ defaultSelectedItem?: T;
20
+ }
21
+
22
+ type SelectOptions<T> = BaseOptions<T> | RenderOptions<T>;
23
+
24
+ function isAccessLabelByKey<T>(
25
+ options: SelectOptions<T>,
26
+ ): options is BaseOptions<T> {
27
+ return 'itemTextKey' in options;
28
+ }
29
+
30
+ function getLabel<T>(item: T, options: SelectOptions<T>) {
31
+ const isAccessLByLabelKey = isAccessLabelByKey(options);
32
+
33
+ if (!item || (isAccessLByLabelKey && !options.itemTextKey)) {
34
+ return null;
35
+ }
36
+
37
+ if (isAccessLByLabelKey) {
38
+ return item[options.itemTextKey] as string;
39
+ }
40
+
41
+ return options.getItemText(item);
42
+ }
43
+
44
+ export function useSelect<T>(options: SelectOptions<T>) {
45
+ const { defaultSelectedItem = null } = options;
46
+
47
+ const [value, setValue] = useState<T | null>(defaultSelectedItem);
48
+ const itemRenderer = getItemRenderer(value as T, options);
8
49
  const onItemSelect = setValue;
9
50
  const popoverProps = {
10
51
  onOpened: (node: HTMLElement) => {
@@ -19,12 +60,16 @@ export function useSelect<T extends { label: string }>() {
19
60
  style: { display: 'inline-block' },
20
61
  };
21
62
  const itemPredicate = (query: string, item: T) => {
22
- return item.label.toLowerCase().includes(query.toLowerCase());
63
+ const label = getLabel(item, options);
64
+ if (!label) return false;
65
+ return label.toLowerCase().includes(query.toLowerCase());
23
66
  };
24
67
  const itemListPredicate = (query: string, items: T[]) => {
25
- return items.filter((item) =>
26
- item.label.toLowerCase().includes(query.toLowerCase()),
27
- );
68
+ return items.filter((item) => {
69
+ const label = getLabel(item, options);
70
+ if (!label) return false;
71
+ return label.toLowerCase().includes(query.toLowerCase());
72
+ });
28
73
  };
29
74
  return {
30
75
  value,
@@ -38,21 +83,27 @@ export function useSelect<T extends { label: string }>() {
38
83
  };
39
84
  }
40
85
 
41
- function getItemRenderer<T extends { label: string }>(value: T | null) {
86
+ function getItemRenderer<T>(value: T, options: SelectOptions<T>) {
87
+ const selectedLabel = getLabel(value, options);
88
+
42
89
  const render: ItemRenderer<T> = (
43
- { label },
90
+ item,
44
91
  { handleClick, handleFocus, modifiers, index },
45
- ) => (
46
- <MenuItem
47
- active={modifiers.active}
48
- disabled={modifiers.disabled}
49
- selected={value?.label === label}
50
- key={index}
51
- onClick={handleClick}
52
- onFocus={handleFocus}
53
- roleStructure="listoption"
54
- text={label}
55
- />
56
- );
92
+ ) => {
93
+ const label = getLabel(item, options);
94
+ return (
95
+ <MenuItem
96
+ active={modifiers.active}
97
+ disabled={modifiers.disabled}
98
+ selected={selectedLabel === label}
99
+ key={index}
100
+ onClick={handleClick}
101
+ onFocus={handleFocus}
102
+ roleStructure="listoption"
103
+ text={label}
104
+ />
105
+ );
106
+ };
107
+
57
108
  return render;
58
109
  }