@mw-kit/mw-ui 1.7.82 → 1.7.85

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.
@@ -3,8 +3,8 @@ export interface SelectProps extends CommonProps {
3
3
  type: 'select';
4
4
  name?: string;
5
5
  setValue: (value: string, option: Option['data']) => void;
6
- onClear?: (value: string) => void;
7
- value: string;
6
+ onClear?: (value: '') => void;
7
+ value: string | Pick<Option, 'value' | 'data' | 'label'>;
8
8
  }
9
9
  export declare type ContextInterface = CommonContext<SelectProps>;
10
10
  export * from '../interfaces';
@@ -3,5 +3,6 @@ import { SelectOptionLabelProps, Option } from '../../interfaces';
3
3
  declare const Label: (props: {
4
4
  option: SelectOptionLabelProps;
5
5
  label: Option['label'];
6
+ value: Pick<Option, 'data' | 'value'>[];
6
7
  }) => JSX.Element;
7
8
  export default Label;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
- import { CommonContext, CommonProps } from '../interfaces';
2
+ import { CommonContext, CommonProps, Option } from '../interfaces';
3
3
  export interface SelectProps extends CommonProps {
4
4
  type: 'select-multiple';
5
- setValue: (value: string[]) => void;
6
- value: string[];
5
+ setValue: (value: string[], data: Option['data'][]) => void;
6
+ value: (Pick<Option, 'value' | 'data'> | string)[];
7
7
  selectAll?: boolean;
8
8
  }
9
9
  export interface ContextInterface extends CommonContext<SelectProps> {
10
- checked: [string[], React.Dispatch<React.SetStateAction<string[]>>];
10
+ checked: [Pick<Option, 'value' | 'data'>[], React.Dispatch<React.SetStateAction<Pick<Option, 'value' | 'data'>[]>>];
11
11
  }
12
12
  export * from '../interfaces';
package/dist/index.js CHANGED
@@ -14637,16 +14637,16 @@ var Header$1 = function Header() {
14637
14637
  }));
14638
14638
  };
14639
14639
 
14640
- var getOptions = function getOptions(props, options) {
14640
+ var getOptions = function getOptions(setValue, options, selected) {
14641
14641
  return options.map(function (option) {
14642
14642
  var value = option.value,
14643
14643
  onClick = option.onClick,
14644
14644
  rules = option.rules,
14645
14645
  disabled = option.disabled;
14646
- var selected = option.value === props.value;
14646
+ var isSelected = option.value === (selected === null || selected === void 0 ? void 0 : selected.value);
14647
14647
 
14648
14648
  var data = _extends({}, option.data, {
14649
- selected: selected,
14649
+ selected: isSelected,
14650
14650
  value: value
14651
14651
  });
14652
14652
 
@@ -14661,13 +14661,13 @@ var getOptions = function getOptions(props, options) {
14661
14661
  }));
14662
14662
  },
14663
14663
  onClick: onClick || function () {
14664
- props.setValue(selected ? '' : value, option.data);
14664
+ setValue(isSelected ? '' : value, option.data);
14665
14665
  },
14666
14666
  disabled: disabled,
14667
14667
  rules: rules,
14668
14668
  border: {
14669
14669
  left: {
14670
- color: selected ? 'blue' : 'transparent'
14670
+ color: isSelected ? 'blue' : 'transparent'
14671
14671
  }
14672
14672
  },
14673
14673
  data: data
@@ -14701,11 +14701,11 @@ var useSelect = function useSelect(props) {
14701
14701
  options = _useState[0],
14702
14702
  setOptions = _useState[1];
14703
14703
 
14704
- var parsedOptions = getOptions(props, options);
14704
+ var selectedOption = typeof props.value === 'string' ? getSelected(props.value, options) : props.value;
14705
+ var parsedOptions = getOptions(props.setValue, options, selectedOption);
14705
14706
 
14706
14707
  var onReset = function onReset() {};
14707
14708
 
14708
- var selectedOption = getSelected(props.value, options);
14709
14709
  var inputContent = selectedOption ? getInputContent(props, selectedOption) : props.value;
14710
14710
  var parsed = {
14711
14711
  parsedOptions: parsedOptions,
@@ -14748,12 +14748,18 @@ var Footer$1 = function Footer() {
14748
14748
  setOpen = context.setOpen;
14749
14749
 
14750
14750
  var onClick = function onClick() {
14751
- setValue([].concat(checked));
14751
+ var _checked$reduce = checked.reduce(function (r, e) {
14752
+ return [[].concat(r[0], [e.value]), [].concat(r[1], [e.data])];
14753
+ }, [[], []]),
14754
+ value = _checked$reduce[0],
14755
+ data = _checked$reduce[1];
14756
+
14757
+ setValue(value, data);
14752
14758
  setOpen(false);
14753
14759
  };
14754
14760
 
14755
14761
  var isDirty = checked.length !== value.length || checked.some(function (e) {
14756
- return !value.includes(e);
14762
+ return !value.includes(e.value);
14757
14763
  });
14758
14764
  return React__default.createElement(Button$1, {
14759
14765
  type: 'button',
@@ -14823,7 +14829,10 @@ var Header$2 = function Header() {
14823
14829
  var onClick = function onClick() {
14824
14830
  setChecked(function (prev) {
14825
14831
  return prev.length === options.length ? [] : options.map(function (o) {
14826
- return o.value;
14832
+ return {
14833
+ value: o.value,
14834
+ data: o.data
14835
+ };
14827
14836
  });
14828
14837
  });
14829
14838
  };
@@ -14861,7 +14870,7 @@ var Label$2 = function Label(props) {
14861
14870
  return React__default.createElement(Checkbox, {
14862
14871
  type: 'checkbox',
14863
14872
  checked: checked.findIndex(function (e) {
14864
- return e === value;
14873
+ return e.value === value;
14865
14874
  }) !== -1,
14866
14875
  label: typeof LabelComponent !== 'function' ? LabelComponent : React__default.createElement(LabelComponent, Object.assign({}, props.option)),
14867
14876
  disabled: disabled,
@@ -14869,9 +14878,19 @@ var Label$2 = function Label(props) {
14869
14878
  var isChecked = event.target.checked;
14870
14879
  setChecked(function (prev) {
14871
14880
  var newState = prev.filter(function (v) {
14872
- return v !== value;
14881
+ return v.value !== value;
14873
14882
  });
14874
- if (isChecked) newState.push(value);
14883
+
14884
+ if (isChecked) {
14885
+ var e = props.value.find(function (e) {
14886
+ return e.value === value;
14887
+ });
14888
+ newState.push(e || {
14889
+ data: props.option.data,
14890
+ value: value
14891
+ });
14892
+ }
14893
+
14875
14894
  return newState;
14876
14895
  });
14877
14896
  },
@@ -14885,14 +14904,13 @@ var Label$2 = function Label(props) {
14885
14904
  });
14886
14905
  };
14887
14906
 
14888
- var getOptions$1 = function getOptions(options) {
14907
+ var getOptions$1 = function getOptions(options, value) {
14889
14908
  return options.map(function (option) {
14890
14909
  var _label = option.label,
14891
- value = option.value,
14892
14910
  onClick = option.onClick;
14893
14911
  var data = {
14894
14912
  data: option.data,
14895
- value: value
14913
+ value: option.value
14896
14914
  };
14897
14915
  var parsed = {
14898
14916
  label: function label(option) {
@@ -14900,7 +14918,8 @@ var getOptions$1 = function getOptions(options) {
14900
14918
  option: _extends({}, data, {
14901
14919
  disabled: option.disabled
14902
14920
  }),
14903
- label: _label
14921
+ label: _label,
14922
+ value: value
14904
14923
  });
14905
14924
  },
14906
14925
  onClick: onClick,
@@ -14918,20 +14937,32 @@ var getInputContent$1 = function getInputContent(value) {
14918
14937
  return value.length > 1 ? "H\xE1 " + value.length + " sele\xE7\xF5es" : "H\xE1 " + value.length + " sele\xE7\xE3o";
14919
14938
  };
14920
14939
 
14940
+ var parseValue = function parseValue(value) {
14941
+ var parsed = value.map(function (value) {
14942
+ return typeof value === 'string' ? {
14943
+ value: value,
14944
+ data: {}
14945
+ } : value;
14946
+ });
14947
+ return parsed;
14948
+ };
14949
+
14921
14950
  var useSelectMultiple = function useSelectMultiple(props) {
14922
14951
  var _useState = React.useState([]),
14923
14952
  options = _useState[0],
14924
14953
  setOptions = _useState[1];
14925
14954
 
14926
- var _useState2 = React.useState([].concat(props.value)),
14955
+ var initial = parseValue(props.value);
14956
+
14957
+ var _useState2 = React.useState([].concat(initial)),
14927
14958
  checked = _useState2[0],
14928
14959
  setChecked = _useState2[1];
14929
14960
 
14930
- var parsedOptions = getOptions$1(options);
14961
+ var parsedOptions = getOptions$1(options, initial);
14931
14962
  var inputContent = getInputContent$1(props.value);
14932
14963
 
14933
14964
  var onReset = function onReset() {
14934
- setChecked([].concat(props.value));
14965
+ setChecked([].concat(initial));
14935
14966
  };
14936
14967
 
14937
14968
  var returnData = {
@@ -14958,7 +14989,7 @@ var useSelectMultiple = function useSelectMultiple(props) {
14958
14989
  }, children);
14959
14990
  },
14960
14991
  onClear: function onClear() {
14961
- return props.setValue([]);
14992
+ return props.setValue([], []);
14962
14993
  }
14963
14994
  };
14964
14995
  return returnData;
@@ -15020,7 +15051,7 @@ var Select = React__default.forwardRef(function (props, ref) {
15020
15051
  setPage(1);
15021
15052
  };
15022
15053
 
15023
- var inputProps = filterObject(props, ['type', 'onScrollEnd', 'position', 'value', 'onClear']);
15054
+ var inputProps = filterObject(props, ['type', 'onScrollEnd', 'position', 'value', 'onClear', 'placeholder']);
15024
15055
 
15025
15056
  var _onScrollEnd = props.onScrollEnd || function () {};
15026
15057
 
@@ -15091,6 +15122,7 @@ var Select = React__default.forwardRef(function (props, ref) {
15091
15122
  });
15092
15123
  };
15093
15124
 
15125
+ var isEmpty = (typeof props.value === 'string' || Array.isArray(props.value)) && props.value.length === 0;
15094
15126
  return getContext({
15095
15127
  setOpen: setOpen,
15096
15128
  search: [search, setSearch],
@@ -15117,9 +15149,12 @@ var Select = React__default.forwardRef(function (props, ref) {
15117
15149
  },
15118
15150
  onClick: onClick
15119
15151
  },
15120
- ref: ref,
15121
- clearable: props.value.length > 0 ? onClear : undefined,
15122
- placeholder: props.value.length === 0 ? props.placeholder : undefined,
15152
+ ref: ref
15153
+ }, isEmpty ? {
15154
+ placeholder: props.placeholder
15155
+ } : {
15156
+ clearable: onClear
15157
+ }, {
15123
15158
  children: loading ? '' : inputContent
15124
15159
  })), React__default.createElement(Menu, Object.assign({}, menuProps, {
15125
15160
  open: open,