@cwncollab-org/mui-component-kit 0.12.4 → 0.13.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.
- package/dist/form/MultiSelect.d.ts +6 -6
- package/dist/form/MultiSelect.d.ts.map +1 -1
- package/dist/form/MultiSelect.js +11 -15
- package/dist/form/MultiSelect.js.map +1 -1
- package/dist/form/Select.d.ts.map +1 -1
- package/dist/form/Select.js +4 -17
- package/dist/form/Select.js.map +1 -1
- package/dist/form/utils.d.ts +5 -0
- package/dist/form/utils.d.ts.map +1 -1
- package/dist/form/utils.js +15 -0
- package/dist/form/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { FormControlProps as MuiFormControlProps, InputLabelProps as MuiInputLabelProps, SelectProps as MuiSelectProps, FormHelperTextProps as MuiFormHelperTextProps } from '@mui/material';
|
|
2
|
-
|
|
3
|
-
value: string;
|
|
4
|
-
label: string;
|
|
5
|
-
};
|
|
2
|
+
import { SelectOption } from './Select';
|
|
6
3
|
type SortBy = 'label' | 'value' | false;
|
|
7
|
-
export type MultiSelectProps = MuiFormControlProps & {
|
|
4
|
+
export type MultiSelectProps<TOption = SelectOption | string | any> = MuiFormControlProps & {
|
|
8
5
|
label?: string;
|
|
9
6
|
labelBehavior?: 'auto' | 'shrink' | 'static';
|
|
10
7
|
size?: 'small' | 'medium';
|
|
11
8
|
fullWidth?: boolean;
|
|
12
|
-
|
|
9
|
+
isLoading?: boolean;
|
|
10
|
+
options?: TOption[];
|
|
13
11
|
sortSelected?: SortBy;
|
|
14
12
|
slotProps?: {
|
|
15
13
|
inputLabel?: Omit<MuiInputLabelProps, 'id'>;
|
|
16
14
|
select?: Omit<MuiSelectProps, 'id' | 'labelId' | 'name' | 'value' | 'onChange' | 'defaultValue'>;
|
|
17
15
|
helperText?: MuiFormHelperTextProps;
|
|
18
16
|
};
|
|
17
|
+
getOptionLabel?: (option: TOption) => string;
|
|
18
|
+
getOptionValue?: (option: TOption) => string;
|
|
19
19
|
onChange?: MuiSelectProps['onChange'];
|
|
20
20
|
};
|
|
21
21
|
export declare function MultiSelect(props: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAK9C,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAK9C,MAAM,eAAe,CAAA;AAItB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,KAAK,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;AAEvC,MAAM,MAAM,gBAAgB,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,IAChE,mBAAmB,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAC5C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAC5C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAEH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA4IlD"}
|
package/dist/form/MultiSelect.js
CHANGED
|
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { FormControl as MuiFormControl, InputLabel as MuiInputLabel, Select as MuiSelect, FormHelperText as MuiFormHelperText, MenuItem, Checkbox, ListItemText, OutlinedInput, } from '@mui/material';
|
|
3
3
|
import { useFieldContext } from './formContext';
|
|
4
4
|
import { useId, useMemo } from 'react';
|
|
5
|
-
import { createSelectSlotProps } from './utils';
|
|
5
|
+
import { createSelectSlotProps, renderOptions } from './utils';
|
|
6
6
|
export function MultiSelect(props) {
|
|
7
7
|
const field = useFieldContext();
|
|
8
|
-
const { children, slotProps, options, labelBehavior = 'auto', size, fullWidth, sortSelected = false, onChange, ...rest } = props;
|
|
8
|
+
const { children, slotProps, options, labelBehavior = 'auto', size, fullWidth, isLoading, disabled, sortSelected = false, onChange, getOptionLabel, getOptionValue, ...rest } = props;
|
|
9
9
|
const id = useId();
|
|
10
10
|
const labelId = `${id}-label`;
|
|
11
11
|
const selectId = `${id}-select`;
|
|
@@ -14,16 +14,12 @@ export function MultiSelect(props) {
|
|
|
14
14
|
return null;
|
|
15
15
|
return field.state.meta.errors.map(error => error.message).join(', ');
|
|
16
16
|
}, [field.state.meta.errors]);
|
|
17
|
-
const renderedOptions = useMemo(() =>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
return [];
|
|
22
|
-
}, [options]);
|
|
23
|
-
const getSortedSelectedValues = useMemo(() => {
|
|
17
|
+
const renderedOptions = useMemo(() => renderOptions(options, getOptionLabel, getOptionValue), [options, getOptionLabel, getOptionValue]);
|
|
18
|
+
const sortedSelectedValues = useMemo(() => {
|
|
19
|
+
const currentValue = field.state.value ?? [];
|
|
24
20
|
if (!sortSelected)
|
|
25
|
-
return
|
|
26
|
-
const selectedOptions =
|
|
21
|
+
return currentValue;
|
|
22
|
+
const selectedOptions = currentValue.map(value => renderedOptions.find(opt => opt.value === value) ?? {
|
|
27
23
|
value,
|
|
28
24
|
label: value,
|
|
29
25
|
});
|
|
@@ -45,9 +41,9 @@ export function MultiSelect(props) {
|
|
|
45
41
|
...baseSelectProps,
|
|
46
42
|
input: _jsx(OutlinedInput, { label: props.label }),
|
|
47
43
|
renderValue: (selected) => {
|
|
48
|
-
const selectedValues = selected;
|
|
44
|
+
const selectedValues = (selected ?? []);
|
|
49
45
|
return selectedValues
|
|
50
|
-
.map(value => renderedOptions.find(opt => opt.value === value)?.label
|
|
46
|
+
.map(value => renderedOptions.find(opt => opt.value === value)?.label ?? value)
|
|
51
47
|
.join(', ');
|
|
52
48
|
},
|
|
53
49
|
};
|
|
@@ -59,11 +55,11 @@ export function MultiSelect(props) {
|
|
|
59
55
|
},
|
|
60
56
|
} }));
|
|
61
57
|
}
|
|
62
|
-
return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, "data-isdirty": field.state.meta.isDirty || undefined, "data-ispristine": field.state.meta.isPristine || undefined, "data-istouched": field.state.meta.isTouched || undefined, "data-isdefaultvalue": field.state.meta.isDefaultValue || undefined, "data-isvalid": field.state.meta.isValid || undefined, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...inputLabelProps, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, multiple: true, value:
|
|
58
|
+
return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, "data-isdirty": field.state.meta.isDirty || undefined, "data-ispristine": field.state.meta.isPristine || undefined, "data-istouched": field.state.meta.isTouched || undefined, "data-isdefaultvalue": field.state.meta.isDefaultValue || undefined, "data-isvalid": field.state.meta.isValid || undefined, disabled: isLoading || disabled, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...inputLabelProps, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, multiple: true, value: isLoading ? [] : sortedSelectedValues, onChange: (ev, child) => {
|
|
63
59
|
onChange?.(ev, child);
|
|
64
60
|
if (!ev.defaultPrevented) {
|
|
65
61
|
field.handleChange(ev.target.value);
|
|
66
62
|
}
|
|
67
|
-
}, ...selectProps, name: field.name, children: [children, renderedOptions.map(option => (_jsxs(MenuItem, { value: option.value, children: [_jsx(Checkbox, { checked: field.state.value.includes(option.value) }), _jsx(ListItemText, { primary: option.label })] }, option.value)))] }), Boolean(errorText) && (_jsx(MuiFormHelperText, { ...slotProps?.helperText, children: errorText }))] }));
|
|
63
|
+
}, ...selectProps, name: field.name, children: [children, renderedOptions.map(option => (_jsxs(MenuItem, { value: option.value, children: [_jsx(Checkbox, { checked: (field.state.value ?? []).includes(option.value) }), _jsx(ListItemText, { primary: option.label })] }, option.value)))] }), Boolean(errorText) && (_jsx(MuiFormHelperText, { ...slotProps?.helperText, children: errorText }))] }));
|
|
68
64
|
}
|
|
69
65
|
//# sourceMappingURL=MultiSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.js","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAE7B,UAAU,IAAI,aAAa,EAE3B,MAAM,IAAI,SAAS,EAEnB,cAAc,IAAI,iBAAiB,EAEnC,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"MultiSelect.js","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAE7B,UAAU,IAAI,aAAa,EAE3B,MAAM,IAAI,SAAS,EAEnB,cAAc,IAAI,iBAAiB,EAEnC,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AA2B9D,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,KAAK,GAAG,eAAe,EAAY,CAAA;IACzC,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,GAAG,MAAM,EACtB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,KAAK,EACpB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IAET,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,GAAG,EAAE,QAAQ,CAAA;IAC7B,MAAM,QAAQ,GAAG,GAAG,EAAE,SAAS,CAAA;IAE/B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACrD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAE7B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,EAC5D,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAC1C,CAAA;IAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;QAC5C,IAAI,CAAC,YAAY;YAAE,OAAO,YAAY,CAAA;QAEtC,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CACtC,KAAK,CAAC,EAAE,CACN,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI;YAClD,KAAK;YACL,KAAK,EAAE,KAAK;SACb,CACJ,CAAA;QAED,OAAO,eAAe;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACvC,CAAC;YACD,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAA;IAEtD,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,OAAO,CAC/D,GAAG,EAAE,CACH,qBAAqB,CAAC;QACpB,aAAa;QACb,SAAS;KACV,CAAC,EACJ,CAAC,aAAa,EAAE,SAAS,CAAC,CAC3B,CAAA;IAED,uDAAuD;IACvD,MAAM,WAAW,GAAG;QAClB,GAAG,eAAe;QAClB,KAAK,EAAE,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI;QAC5C,WAAW,EAAE,CAAC,QAAa,EAAE,EAAE;YAC7B,MAAM,cAAc,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAa,CAAA;YACnD,OAAO,cAAc;iBAClB,GAAG,CACF,KAAK,CAAC,EAAE,CACN,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CACnE;iBACA,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;KACF,CAAA;IAED,2CAA2C;IAC3C,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,WAAW,CAAC,KAAK,GAAG,CAClB,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,IAAI,EACb,EAAE,EAAE;gBACF,iBAAiB,EAAE;oBACjB,OAAO,EAAE,MAAM;iBAChB;aACF,GACD,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,MAAC,cAAc,IACb,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,kBACI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,qBAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,oBACzC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,yBAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,kBACnD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,EACnD,QAAQ,EAAE,SAAS,IAAI,QAAQ,KAC3B,IAAI,aAER,KAAC,aAAa,IAAC,EAAE,EAAE,OAAO,KAAM,eAAe,YAC5C,KAAK,CAAC,KAAK,GACE,EAChB,MAAC,SAAS,IACR,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,QACR,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAC5C,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;oBACtB,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;oBACrB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;wBACzB,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,KAAiB,CAAC,CAAA;oBACjD,CAAC;gBACH,CAAC,KACG,WAAW,EACf,IAAI,EAAE,KAAK,CAAC,IAAI,aAEf,QAAQ,EACR,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC7B,MAAC,QAAQ,IAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,aAC9C,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GACzD,EACF,KAAC,YAAY,IAAC,OAAO,EAAE,MAAM,CAAC,KAAK,GAAI,KAJ1B,MAAM,CAAC,KAAK,CAKhB,CACZ,CAAC,IACQ,EACX,OAAO,CAAC,SAAS,CAAC,IAAI,CACrB,KAAC,iBAAiB,OAAK,SAAS,EAAE,UAAU,YACzC,SAAS,GACQ,CACrB,IACc,CAClB,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAE9C,MAAM,eAAe,CAAA;AAKtB,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,IAC3D,mBAAmB,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAC5C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAC5C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAEH,wBAAgB,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,EAC1D,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAE9C,MAAM,eAAe,CAAA;AAKtB,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,IAC3D,mBAAmB,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAC5C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IAC5C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAEH,wBAAgB,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,EAC1D,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,2CAuF5B"}
|
package/dist/form/Select.js
CHANGED
|
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { FormControl as MuiFormControl, InputLabel as MuiInputLabel, Select as MuiSelect, FormHelperText as MuiFormHelperText, MenuItem, } from '@mui/material';
|
|
3
3
|
import { useFieldContext } from './formContext';
|
|
4
4
|
import { useId, useMemo } from 'react';
|
|
5
|
-
import { createSelectSlotProps } from './utils';
|
|
5
|
+
import { createSelectSlotProps, renderOptions } from './utils';
|
|
6
6
|
export function Select(props) {
|
|
7
7
|
const field = useFieldContext();
|
|
8
|
-
const { children, slotProps, options, multiple, labelBehavior = 'auto', size, fullWidth, isLoading, onChange, getOptionLabel, getOptionValue, ...rest } = props;
|
|
8
|
+
const { children, slotProps, options, multiple, labelBehavior = 'auto', size, fullWidth, isLoading, disabled, onChange, getOptionLabel, getOptionValue, ...rest } = props;
|
|
9
9
|
const id = useId();
|
|
10
10
|
const labelId = `${id}-label`;
|
|
11
11
|
const selectId = `${id}-select`;
|
|
@@ -14,25 +14,12 @@ export function Select(props) {
|
|
|
14
14
|
return null;
|
|
15
15
|
return field.state.meta.errors.map(error => error.message).join(', ');
|
|
16
16
|
}, [field.state.meta.errors]);
|
|
17
|
-
const renderedOptions = useMemo(() =>
|
|
18
|
-
if (!options || options.length === 0) {
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
if (getOptionLabel && getOptionValue) {
|
|
22
|
-
return options.map(option => ({
|
|
23
|
-
value: getOptionValue(option),
|
|
24
|
-
label: getOptionLabel(option),
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
27
|
-
return options.map(option => typeof option === 'string'
|
|
28
|
-
? { value: option, label: option }
|
|
29
|
-
: option);
|
|
30
|
-
}, [options]);
|
|
17
|
+
const renderedOptions = useMemo(() => renderOptions(options, getOptionLabel, getOptionValue), [options, getOptionLabel, getOptionValue]);
|
|
31
18
|
const { inputLabelProps, selectProps } = useMemo(() => createSelectSlotProps({
|
|
32
19
|
labelBehavior,
|
|
33
20
|
slotProps,
|
|
34
21
|
}), [labelBehavior, slotProps]);
|
|
35
|
-
return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, "data-isdirty": field.state.meta.isDirty || undefined, "data-ispristine": field.state.meta.isPristine || undefined, "data-istouched": field.state.meta.isTouched || undefined, "data-isdefaultvalue": field.state.meta.isDefaultValue || undefined, "data-isvalid": field.state.meta.isValid || undefined, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...inputLabelProps, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, multiple: multiple, ...selectProps, label: props.label, name: field.name, value: isLoading ? '' : (field.state.value ?? ''), onChange: (ev, child) => {
|
|
22
|
+
return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, "data-isdirty": field.state.meta.isDirty || undefined, "data-ispristine": field.state.meta.isPristine || undefined, "data-istouched": field.state.meta.isTouched || undefined, "data-isdefaultvalue": field.state.meta.isDefaultValue || undefined, "data-isvalid": field.state.meta.isValid || undefined, disabled: isLoading || disabled, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...inputLabelProps, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, multiple: multiple, ...selectProps, label: props.label, name: field.name, value: isLoading ? '' : (field.state.value ?? ''), onChange: (ev, child) => {
|
|
36
23
|
onChange?.(ev, child);
|
|
37
24
|
if (!ev.defaultPrevented) {
|
|
38
25
|
field.handleChange(ev.target.value);
|
package/dist/form/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAE7B,UAAU,IAAI,aAAa,EAE3B,MAAM,IAAI,SAAS,EAEnB,cAAc,IAAI,iBAAiB,EAEnC,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"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"}
|
package/dist/form/utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { InputLabelProps, InputProps, TextFieldProps, SelectProps } from '@mui/material';
|
|
2
2
|
import { InputHTMLAttributes } from 'react';
|
|
3
3
|
import { PickersOutlinedInputProps } from '@mui/x-date-pickers';
|
|
4
|
+
import { SelectOption } from './Select';
|
|
4
5
|
export type CreateTextFieldSlotPropsOptions = {
|
|
5
6
|
slotProps?: TextFieldProps['slotProps'];
|
|
6
7
|
labelBehavior?: 'auto' | 'shrink' | 'static';
|
|
@@ -35,4 +36,8 @@ export type SelectSlotProps = {
|
|
|
35
36
|
export declare function createTextFieldSlotProps(opts?: CreateTextFieldSlotPropsOptions): TextFieldSlotProps;
|
|
36
37
|
export declare function createPickerSlotProps(opts?: CreatePickerSlotPropsOptions): PickerSlotProps;
|
|
37
38
|
export declare function createSelectSlotProps(opts?: CreateSelectSlotPropsOptions): SelectSlotProps;
|
|
39
|
+
export declare function renderOptions<TOption = SelectOption | string | any>(options: TOption[] | undefined, getOptionLabel?: (option: TOption) => string, getOptionValue?: (option: TOption) => string): {
|
|
40
|
+
value: any;
|
|
41
|
+
label: any;
|
|
42
|
+
}[];
|
|
38
43
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/form/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/form/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/form/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,+BAA+B,GAAG;IAC5C,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAA;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,GAAG,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,GAAG,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,SAAS,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAA;IAC9D,OAAO,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAA;CAC3D,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,UAAU,CAAA;IACjB,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,EAAE,CAAC,EAAE,GAAG,CAAA;CACT,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAC9C,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;KAC9B,CAAA;IACD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAClC,CAAA;AAED,wBAAgB,wBAAwB,CACtC,IAAI,CAAC,EAAE,+BAA+B,GACrC,kBAAkB,CAwDpB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,CAAC,EAAE,4BAA4B,GAClC,eAAe,CAqCjB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,CAAC,EAAE,4BAA4B,GAClC,eAAe,CAuCjB;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,EACjE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,EAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,EAC5C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM;;;IAkB7C"}
|
package/dist/form/utils.js
CHANGED
|
@@ -116,4 +116,19 @@ export function createSelectSlotProps(opts) {
|
|
|
116
116
|
selectProps,
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
|
+
export function renderOptions(options, getOptionLabel, getOptionValue) {
|
|
120
|
+
if (!options || options.length === 0) {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
return options.map(option => typeof option === 'string'
|
|
124
|
+
? { value: option, label: option }
|
|
125
|
+
: {
|
|
126
|
+
value: getOptionValue
|
|
127
|
+
? getOptionValue(option)
|
|
128
|
+
: option.value,
|
|
129
|
+
label: getOptionLabel
|
|
130
|
+
? getOptionLabel(option)
|
|
131
|
+
: option.label,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
119
134
|
//# sourceMappingURL=utils.js.map
|
package/dist/form/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/form/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/form/utils.ts"],"names":[],"mappings":"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"}
|