react-science 20.6.2 → 20.7.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.
@@ -8,7 +8,7 @@ export interface SelectOptionType {
8
8
  /**
9
9
  * Props for `form.Select` component
10
10
  */
11
- export interface SelectProps extends Omit<FormGroupInputProps, 'placeholder'>, Pick<RealSelectProps<SelectOptionType, SelectId>, 'disabled' | 'filterable' | 'renderButton'> {
11
+ export interface SelectProps extends Omit<FormGroupInputProps, 'placeholder'>, Pick<RealSelectProps<SelectOptionType, SelectId>, 'disabled' | 'filterable' | 'renderButton' | 'itemDisabled'> {
12
12
  items: SelectOptionType[];
13
13
  }
14
14
  export declare function Select(props: SelectProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/components/input/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WACf,SACE,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,EACxC,IAAI,CACF,eAAe,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAC3C,UAAU,GAAG,YAAY,GAAG,cAAc,CAC3C;IACH,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BAiDxC"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/components/input/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WACf,SACE,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,EACxC,IAAI,CACF,eAAe,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAC3C,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAC5D;IACH,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BAmDxC"}
@@ -4,7 +4,7 @@ import { getIntent } from '../../utils/use_intent.js';
4
4
  import { FormGroup } from '../input_groups/form_group.js';
5
5
  import { Select as SelectInput } from '../input_groups/select.js';
6
6
  export function Select(props) {
7
- const { label, items, required, helpText, layout, fullWidth, disabled, filterable, renderButton, } = props;
7
+ const { label, items, itemDisabled, required, helpText, layout, fullWidth, disabled, filterable, renderButton, } = props;
8
8
  const field = useFieldContext();
9
9
  const error = field
10
10
  .getMeta()
@@ -14,6 +14,6 @@ export function Select(props) {
14
14
  function onItemSelect(selected) {
15
15
  return field.handleChange(selected);
16
16
  }
17
- return (_jsx(FormGroup, { name: field.name, required: required, label: label, intent: intent, helpText: helpText, error: error, layout: layout, fullWidth: fullWidth, children: _jsx(SelectInput, { onBlur: field.handleBlur, items: items, selected: field.state.value, onChange: onItemSelect, intent: intent, name: field.name, disabled: disabled, filterable: filterable, renderButton: renderButton }) }));
17
+ return (_jsx(FormGroup, { name: field.name, required: required, label: label, intent: intent, helpText: helpText, error: error, layout: layout, fullWidth: fullWidth, children: _jsx(SelectInput, { onBlur: field.handleBlur, items: items, itemDisabled: itemDisabled, selected: field.state.value, onChange: onItemSelect, intent: intent, name: field.name, disabled: disabled, filterable: filterable, renderButton: renderButton }) }));
18
18
  }
19
19
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../src/components/form/components/input/select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAqBlE,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,eAAe,EAAwB,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK;SAChB,OAAO,EAAE;SACT,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC;IAET,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,SAAS,YAAY,CAAC,QAA8B;QAClD,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,YAEpB,KAAC,WAAW,IACV,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAC3B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,GAC1B,GACQ,CACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../src/components/form/components/input/select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAqBlE,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EACJ,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,eAAe,EAAwB,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK;SAChB,OAAO,EAAE;SACT,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC;IAET,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,SAAS,YAAY,CAAC,QAA8B;QAClD,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,YAEpB,KAAC,WAAW,IACV,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAC3B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,GAC1B,GACQ,CACb,CAAC;AACJ,CAAC"}
@@ -40,7 +40,7 @@ export type SelectProps<OptionType, ID extends SelectId> = FieldGroupProps & Pic
40
40
  * @param props
41
41
  * @constructor
42
42
  */
43
- export interface RealSelectProps<OptionType, ID extends SelectId> extends Pick<BPSelectProps<OptionType>, 'filterable' | 'items'> {
43
+ export interface RealSelectProps<OptionType, ID extends SelectId> extends Pick<BPSelectProps<OptionType>, 'filterable' | 'items' | 'itemDisabled'> {
44
44
  onBlur: () => void;
45
45
  renderButton?: (state: SelectPropsRenderButtonState<OptionType>, onBlur: () => void) => ReactNode;
46
46
  disabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/components/input_groups/select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/components/input_groups/select.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Select as BPSelect } from '@blueprintjs/select';
3
- import { useCallback, useMemo } from 'react';
3
+ import { useCallback, useMemo, useState } from 'react';
4
4
  import { Button } from '../../../button/index.js';
5
5
  import { getItemRenderer, getSelectLabel, getSelectValue, } from '../util/select.js';
6
6
  export function Select(props) {
7
7
  const { renderButton, disabled, selected, getLabel: _getLabel, getValue: _getValue, intent,
8
8
  // Weirdly, setting the filterable prop on BP's Select component activates the filter input
9
- filterable = false, items, onChange, onBlur, name = null, } = props;
9
+ filterable = false, items, itemDisabled, onChange, onBlur, name = null, } = props;
10
10
  const getValue = _getValue ?? getSelectValue;
11
11
  const getLabel = _getLabel ?? getSelectLabel;
12
12
  const selectedOption = useMemo(() => items.find((item) => getValue(item) === selected), [getValue, items, selected]);
13
+ const [activeItem, setActiveItem] = useState(selectedOption ?? null);
13
14
  const itemRenderer = useMemo(() => {
14
15
  return getItemRenderer({
15
16
  selected,
@@ -21,6 +22,10 @@ export function Select(props) {
21
22
  const value = getValue(option);
22
23
  onChange?.(value, option);
23
24
  }, [getValue, onChange]);
24
- return (_jsx(BPSelect, { filterable: filterable, items: items, onItemSelect: onItemSelect, itemRenderer: itemRenderer, disabled: disabled, children: renderButton ? (renderButton({ selectedOption, error: undefined }, onBlur)) : (_jsx(Button, { id: name || undefined, text: getLabel(selectedOption) || 'Select ...', endIcon: "double-caret-vertical", variant: "outlined", intent: intent, disabled: disabled, style: { minWidth: 180 }, onBlur: onBlur })) }));
25
+ return (_jsx(BPSelect, { filterable: filterable, items: items, itemDisabled: itemDisabled, onItemSelect: onItemSelect, itemRenderer: itemRenderer, disabled: disabled, activeItem: activeItem, onActiveItemChange: setActiveItem, popoverProps: {
26
+ onOpening: () => {
27
+ setActiveItem(selectedOption ?? null);
28
+ },
29
+ }, children: renderButton ? (renderButton({ selectedOption, error: undefined }, onBlur)) : (_jsx(Button, { id: name || undefined, text: getLabel(selectedOption) || 'Select ...', endIcon: "double-caret-vertical", variant: "outlined", intent: intent, disabled: disabled, style: { minWidth: 180 }, onBlur: onBlur })) }));
25
30
  }
26
31
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../src/components/form/components/input_groups/select.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAQlD,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AA2F3B,MAAM,UAAU,MAAM,CAGpB,KAAsC;IACtC,MAAM,EACJ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,MAAM;IACN,2FAA2F;IAC3F,UAAU,GAAG,KAAK,EAClB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,GAAG,IAAI,GACZ,GAAG,KAAK,CAAC;IAEV,MAAM,QAAQ,GAAmC,SAAS,IAAI,cAAc,CAAC;IAC7E,MAAM,QAAQ,GAA+B,SAAS,IAAI,cAAc,CAAC;IAEzE,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,EACvD,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC5B,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO,eAAe,CAAiB;YACrC,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,MAA8B,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IAEF,OAAO,CACL,KAAC,QAAQ,IACP,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,YAEjB,YAAY,CAAC,CAAC,CAAC,CACd,YAAY,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAC3D,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IACL,EAAE,EAAE,IAAI,IAAI,SAAS,EACrB,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,YAAY,EAC9C,OAAO,EAAC,uBAAuB,EAC/B,OAAO,EAAC,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EACxB,MAAM,EAAE,MAAM,GACd,CACH,GACQ,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../src/components/form/components/input_groups/select.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAQlD,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AA2F3B,MAAM,UAAU,MAAM,CAGpB,KAAsC;IACtC,MAAM,EACJ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,MAAM;IACN,2FAA2F;IAC3F,UAAU,GAAG,KAAK,EAClB,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,IAAI,GAAG,IAAI,GACZ,GAAG,KAAK,CAAC;IAEV,MAAM,QAAQ,GAAmC,SAAS,IAAI,cAAc,CAAC;IAC7E,MAAM,QAAQ,GAA+B,SAAS,IAAI,cAAc,CAAC;IAEzE,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,EACvD,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC5B,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAC1C,cAAc,IAAI,IAAI,CACvB,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO,eAAe,CAAiB;YACrC,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,MAA8B,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IAEF,OAAO,CACL,KAAC,QAAQ,IACP,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,aAAa,EACjC,YAAY,EAAE;YACZ,SAAS,EAAE,GAAG,EAAE;gBACd,aAAa,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;YACxC,CAAC;SACF,YAEA,YAAY,CAAC,CAAC,CAAC,CACd,YAAY,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAC3D,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IACL,EAAE,EAAE,IAAI,IAAI,SAAS,EACrB,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,YAAY,EAC9C,OAAO,EAAC,uBAAuB,EAC/B,OAAO,EAAC,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EACxB,MAAM,EAAE,MAAM,GACd,CACH,GACQ,CACZ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/components/util/select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9C,MAAM,MAAM,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,IAAI,CAC5D,MAAM,EAAE,UAAU,GAAG,SAAS,KAC3B,EAAE,GAAG,SAAS,CAAC;AACpB,MAAM,MAAM,cAAc,CAAC,UAAU,IAAI,CACvC,MAAM,EAAE,UAAU,GAAG,SAAS,KAC3B,SAAS,CAAC;AAEf,MAAM,WAAW,sBAAsB,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ;IACrE,QAAQ,EAAE,EAAE,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CACtC;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,EAC7D,OAAO,EAAE,sBAAsB,CAAC,UAAU,EAAE,EAAE,CAAC,4BA0BhD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACpC,MAAM,GAAG,SAAS,CAEpB;AAED,MAAM,WAAW,YAAY,CAAC,EAAE,CAAE,SAAQ,iBAAiB;IACzD,KAAK,EAAE,EAAE,CAAC;CACX;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACjE,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAE7B"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/components/util/select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9C,MAAM,MAAM,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,IAAI,CAC5D,MAAM,EAAE,UAAU,GAAG,SAAS,KAC3B,EAAE,GAAG,SAAS,CAAC;AACpB,MAAM,MAAM,cAAc,CAAC,UAAU,IAAI,CACvC,MAAM,EAAE,UAAU,GAAG,SAAS,KAC3B,SAAS,CAAC;AAEf,MAAM,WAAW,sBAAsB,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ;IACrE,QAAQ,EAAE,EAAE,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CACtC;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,EAC7D,OAAO,EAAE,sBAAsB,CAAC,UAAU,EAAE,EAAE,CAAC,4BA2BhD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACpC,MAAM,GAAG,SAAS,CAEpB;AAED,MAAM,WAAW,YAAY,CAAC,EAAE,CAAE,SAAQ,iBAAiB;IACzD,KAAK,EAAE,EAAE,CAAC;CACX;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACjE,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../src/components/form/components/util/select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAmB7C,MAAM,UAAU,eAAe,CAC7B,OAA+C;IAE/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEjD,MAAM,MAAM,GAA6B,CACvC,IAAI,EACJ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAC9C,EAAE;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QACzD,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,CACL,KAAC,QAAQ,IACP,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,EAErC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,aAAa,EAAC,YAAY,EAC1B,IAAI,EAAE,KAAK,IAJN,KAAK,CAKV,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,MAAqC;IAErC,OAAO,MAAM,EAAE,KAAK,CAAC;AACvB,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,MAA0B;IAE1B,OAAO,MAAM,EAAE,KAAK,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../src/components/form/components/util/select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAmB7C,MAAM,UAAU,eAAe,CAC7B,OAA+C;IAE/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEjD,MAAM,MAAM,GAA6B,CACvC,IAAI,EACJ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,EAC9C,EAAE;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QACzD,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC;QAEnC,OAAO,CACL,KAAC,QAAQ,IACP,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,EAErC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,aAAa,EAAC,YAAY,EAC1B,IAAI,EAAE,KAAK,IAJN,KAAK,CAKV,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,MAAqC;IAErC,OAAO,MAAM,EAAE,KAAK,CAAC;AACvB,CAAC;AAMD,MAAM,UAAU,cAAc,CAC5B,MAA0B;IAE1B,OAAO,MAAM,EAAE,KAAK,CAAC;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "20.6.2",
3
+ "version": "20.7.0",
4
4
  "description": "React components to build scientific applications UI",
5
5
  "type": "module",
6
6
  "exports": {
@@ -19,7 +19,7 @@ export interface SelectProps
19
19
  Omit<FormGroupInputProps, 'placeholder'>,
20
20
  Pick<
21
21
  RealSelectProps<SelectOptionType, SelectId>,
22
- 'disabled' | 'filterable' | 'renderButton'
22
+ 'disabled' | 'filterable' | 'renderButton' | 'itemDisabled'
23
23
  > {
24
24
  items: SelectOptionType[];
25
25
  }
@@ -28,6 +28,7 @@ export function Select(props: SelectProps) {
28
28
  const {
29
29
  label,
30
30
  items,
31
+ itemDisabled,
31
32
  required,
32
33
  helpText,
33
34
  layout,
@@ -63,6 +64,7 @@ export function Select(props: SelectProps) {
63
64
  <SelectInput
64
65
  onBlur={field.handleBlur}
65
66
  items={items}
67
+ itemDisabled={itemDisabled}
66
68
  selected={field.state.value}
67
69
  onChange={onItemSelect}
68
70
  intent={intent}
@@ -2,7 +2,7 @@ import type { FormGroup, FormGroupProps } from '@blueprintjs/core';
2
2
  import type { SelectProps as BPSelectProps } from '@blueprintjs/select';
3
3
  import { Select as BPSelect } from '@blueprintjs/select';
4
4
  import type { ComponentProps, ReactElement, ReactNode } from 'react';
5
- import { useCallback, useMemo } from 'react';
5
+ import { useCallback, useMemo, useState } from 'react';
6
6
 
7
7
  import { Button } from '../../../button/index.js';
8
8
  import type {
@@ -91,7 +91,7 @@ export type SelectProps<OptionType, ID extends SelectId> = FieldGroupProps &
91
91
 
92
92
  export interface RealSelectProps<OptionType, ID extends SelectId> extends Pick<
93
93
  BPSelectProps<OptionType>,
94
- 'filterable' | 'items'
94
+ 'filterable' | 'items' | 'itemDisabled'
95
95
  > {
96
96
  onBlur: () => void;
97
97
  renderButton?: (
@@ -121,6 +121,7 @@ export function Select<
121
121
  // Weirdly, setting the filterable prop on BP's Select component activates the filter input
122
122
  filterable = false,
123
123
  items,
124
+ itemDisabled,
124
125
  onChange,
125
126
  onBlur,
126
127
  name = null,
@@ -134,6 +135,10 @@ export function Select<
134
135
  [getValue, items, selected],
135
136
  );
136
137
 
138
+ const [activeItem, setActiveItem] = useState<OptionType | null>(
139
+ selectedOption ?? null,
140
+ );
141
+
137
142
  const itemRenderer = useMemo(() => {
138
143
  return getItemRenderer<OptionType, ID>({
139
144
  selected,
@@ -154,9 +159,17 @@ export function Select<
154
159
  <BPSelect<OptionType>
155
160
  filterable={filterable}
156
161
  items={items}
162
+ itemDisabled={itemDisabled}
157
163
  onItemSelect={onItemSelect}
158
164
  itemRenderer={itemRenderer}
159
165
  disabled={disabled}
166
+ activeItem={activeItem}
167
+ onActiveItemChange={setActiveItem}
168
+ popoverProps={{
169
+ onOpening: () => {
170
+ setActiveItem(selectedOption ?? null);
171
+ },
172
+ }}
160
173
  >
161
174
  {renderButton ? (
162
175
  renderButton({ selectedOption, error: undefined }, onBlur)
@@ -29,6 +29,7 @@ export function getItemRenderer<OptionType, ID extends SelectId>(
29
29
  const label = getLabel(item);
30
30
  const { active, disabled, matchesPredicate } = modifiers;
31
31
  if (!matchesPredicate) return null;
32
+
32
33
  return (
33
34
  <MenuItem
34
35
  active={active}