ywana-core8 0.0.136 → 0.0.140

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.cjs CHANGED
@@ -924,7 +924,9 @@ var DropDown = function DropDown(props) {
924
924
  _props$options = props.options,
925
925
  options = _props$options === void 0 ? [] : _props$options,
926
926
  value = props.value,
927
- onChange = props.onChange;
927
+ onChange = props.onChange,
928
+ _props$canFilter = props.canFilter,
929
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter;
928
930
 
929
931
  var _useState = React.useState(false),
930
932
  open = _useState[0],
@@ -934,6 +936,10 @@ var DropDown = function DropDown(props) {
934
936
  label = _useState2[0],
935
937
  setLabel = _useState2[1];
936
938
 
939
+ var _useState3 = React.useState(),
940
+ filter = _useState3[0],
941
+ setFilter = _useState3[1];
942
+
937
943
  React.useEffect(function () {
938
944
  if (Array.isArray(options)) {
939
945
  var option = options.find(function (option) {
@@ -943,6 +949,16 @@ var DropDown = function DropDown(props) {
943
949
  }
944
950
  }, [value]);
945
951
 
952
+ function change(id, value) {
953
+ console.log('dropdown change > canFilter:', canFilter, id, value);
954
+
955
+ if (canFilter) {
956
+ setFilter(value);
957
+ } else {
958
+ if (onChange) onChange(id, value);
959
+ }
960
+ }
961
+
946
962
  function toggle() {
947
963
  if (site) {
948
964
  site.changeFocus({
@@ -965,24 +981,40 @@ var DropDown = function DropDown(props) {
965
981
  setOpen(false);
966
982
  }
967
983
 
984
+ function renderOptions() {
985
+ var canShow = open == true && Array.isArray(options);
986
+
987
+ if (canShow) {
988
+ var filterActive = canFilter && label && label.length > 0;
989
+ var items = filterActive ? options.filter(function (option) {
990
+ return canFilter === false || filter.toUpperCase().indexOf(option.label.toUpperCase()) >= 0;
991
+ }) : options;
992
+ var lis = items.map(function (option) {
993
+ return /*#__PURE__*/React__default["default"].createElement("li", {
994
+ key: option.value,
995
+ value: option.value
996
+ }, option.label);
997
+ });
998
+ return /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", {
999
+ onClick: select
1000
+ }, lis));
1001
+ } else {
1002
+ return null;
1003
+ }
1004
+ }
1005
+
968
1006
  return /*#__PURE__*/React__default["default"].createElement("div", {
969
1007
  className: "dropdown"
970
1008
  }, /*#__PURE__*/React__default["default"].createElement(TextField, _extends({}, props, {
971
1009
  onClick: toggle,
972
- value: label
1010
+ value: label,
1011
+ onChange: change
973
1012
  })), /*#__PURE__*/React__default["default"].createElement(Icon, {
974
1013
  icon: "expand_more",
975
1014
  clickable: true,
976
1015
  size: "small",
977
1016
  action: toggle
978
- }), open == true ? /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", {
979
- onClick: select
980
- }, Array.isArray(options) ? options.map(function (option) {
981
- return /*#__PURE__*/React__default["default"].createElement("li", {
982
- key: option.value,
983
- value: option.value
984
- }, option.label);
985
- }) : null)) : null);
1017
+ }), renderOptions());
986
1018
  };
987
1019
 
988
1020
  var isFunction$1 = function isFunction(value) {
@@ -2945,7 +2977,8 @@ var StringEditor = function StringEditor(_ref6) {
2945
2977
  value: value,
2946
2978
  onChange: change,
2947
2979
  options: buildOptions(),
2948
- readOnly: !editable
2980
+ readOnly: !editable,
2981
+ canFilter: true
2949
2982
  }) : /*#__PURE__*/React__default["default"].createElement(TextField, {
2950
2983
  outlined: outlined,
2951
2984
  id: id,