ywana-core8 0.0.137 → 0.0.141

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/index.umd.js CHANGED
@@ -921,7 +921,9 @@
921
921
  _props$options = props.options,
922
922
  options = _props$options === void 0 ? [] : _props$options,
923
923
  value = props.value,
924
- onChange = props.onChange;
924
+ onChange = props.onChange,
925
+ _props$canFilter = props.canFilter,
926
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter;
925
927
 
926
928
  var _useState = React.useState(false),
927
929
  open = _useState[0],
@@ -940,6 +942,16 @@
940
942
  }
941
943
  }, [value]);
942
944
 
945
+ function change(id, value) {
946
+ console.log('dropdown change > canFilter:', canFilter, id, value);
947
+
948
+ if (canFilter) {
949
+ setLabel(value);
950
+ } else {
951
+ if (onChange) onChange(id, value);
952
+ }
953
+ }
954
+
943
955
  function toggle() {
944
956
  if (site) {
945
957
  site.changeFocus({
@@ -962,24 +974,40 @@
962
974
  setOpen(false);
963
975
  }
964
976
 
977
+ function renderOptions() {
978
+ var canShow = open == true && Array.isArray(options);
979
+
980
+ if (canShow) {
981
+ var filterActive = canFilter && label && label.length > 0;
982
+ var items = filterActive ? options.filter(function (option) {
983
+ return canFilter === false || label.toUpperCase().indexOf(option.label.toUpperCase()) >= 0;
984
+ }) : options;
985
+ var lis = items.map(function (option) {
986
+ return /*#__PURE__*/React__default["default"].createElement("li", {
987
+ key: option.value,
988
+ value: option.value
989
+ }, option.label);
990
+ });
991
+ return /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", {
992
+ onClick: select
993
+ }, lis));
994
+ } else {
995
+ return null;
996
+ }
997
+ }
998
+
965
999
  return /*#__PURE__*/React__default["default"].createElement("div", {
966
1000
  className: "dropdown"
967
1001
  }, /*#__PURE__*/React__default["default"].createElement(TextField, _extends({}, props, {
968
1002
  onClick: toggle,
969
- value: label
1003
+ value: label,
1004
+ onChange: change
970
1005
  })), /*#__PURE__*/React__default["default"].createElement(Icon, {
971
1006
  icon: "expand_more",
972
1007
  clickable: true,
973
1008
  size: "small",
974
1009
  action: toggle
975
- }), open == true ? /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", {
976
- onClick: select
977
- }, Array.isArray(options) ? options.map(function (option) {
978
- return /*#__PURE__*/React__default["default"].createElement("li", {
979
- key: option.value,
980
- value: option.value
981
- }, option.label);
982
- }) : null)) : null);
1010
+ }), renderOptions());
983
1011
  };
984
1012
 
985
1013
  var isFunction$1 = function isFunction(value) {
@@ -2942,7 +2970,8 @@
2942
2970
  value: value,
2943
2971
  onChange: change,
2944
2972
  options: buildOptions(),
2945
- readOnly: !editable
2973
+ readOnly: !editable,
2974
+ canFilter: true
2946
2975
  }) : /*#__PURE__*/React__default["default"].createElement(TextField, {
2947
2976
  outlined: outlined,
2948
2977
  id: id,