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.
- package/lib/components/form/components/input/select.d.ts +1 -1
- package/lib/components/form/components/input/select.d.ts.map +1 -1
- package/lib/components/form/components/input/select.js +2 -2
- package/lib/components/form/components/input/select.js.map +1 -1
- package/lib/components/form/components/input_groups/select.d.ts +1 -1
- package/lib/components/form/components/input_groups/select.d.ts.map +1 -1
- package/lib/components/form/components/input_groups/select.js +8 -3
- package/lib/components/form/components/input_groups/select.js.map +1 -1
- package/lib/components/form/components/util/select.d.ts.map +1 -1
- package/lib/components/form/components/util/select.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/components/input/select.tsx +3 -1
- package/src/components/form/components/input_groups/select.tsx +15 -2
- package/src/components/form/components/util/select.tsx +1 -0
|
@@ -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,
|
|
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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAO3B,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;AAEhE,MAAM,WAAW,4BAA4B,CAAC,UAAU;IACtD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;CACxC;AAED,UAAU,iBAAiB,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;IAC9E,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,EAAE,CAAC;IAEd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,KAAK,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,IAAI;IACrD;;;OAGG;IACH,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF,KAAK,mBAAmB,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,IACtD,UAAU,SAAS,YAAY,CAAC,EAAE,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GACvC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAGrC,KAAK,cAAc,CAAC,UAAU,IAAI;IAChC;;;OAGG;IACH,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,mBAAmB,CAAC,UAAU,IAAI,UAAU,SAAS,iBAAiB,GACvE,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GACnC,cAAc,CAAC,UAAU,CAAC,CAAC;AAE/B,MAAM,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,IAAI,eAAe,GACxE,IAAI,CACF,aAAa,CAAC,UAAU,CAAC,EACvB,aAAa,GACb,OAAO,GACP,WAAW,GACX,UAAU,GACV,cAAc,GACd,YAAY,GACZ,cAAc,GACd,mBAAmB,GACnB,cAAc,CACjB,GACD,IAAI,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,GAC/D,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,GACjC,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,GACnC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAElC;;;;;;;;GAQG;AAEH,MAAM,WAAW,eAAe,CAAC,UAAU,EAAE,EAAE,SAAS,QAAQ,CAAE,SAAQ,IAAI,CAC5E,aAAa,CAAC,UAAU,CAAC,EACzB,YAAY,GAAG,OAAO,
|
|
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,
|
|
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;
|
|
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,
|
|
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;
|
|
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
|
@@ -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)
|