funda-ui 1.1.159 → 1.1.165

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.
Files changed (46) hide show
  1. package/Accordion/index.js +88 -5
  2. package/DropdownMenu/index.js +23 -0
  3. package/HorizontalScrollContent/index.js +86 -2
  4. package/LiveSearch/index.d.ts +2 -0
  5. package/LiveSearch/index.js +27 -21
  6. package/MultiFuncSelect/index.css +13 -1
  7. package/MultiFuncSelect/index.d.ts +5 -0
  8. package/MultiFuncSelect/index.js +47 -30
  9. package/MultipleCheckboxes/index.js +13 -13
  10. package/MultipleSelect/index.css +172 -0
  11. package/MultipleSelect/index.d.ts +39 -0
  12. package/MultipleSelect/index.js +750 -0
  13. package/README.md +1 -1
  14. package/all.d.ts +1 -0
  15. package/all.js +1 -0
  16. package/lib/cjs/Accordion/index.js +88 -5
  17. package/lib/cjs/DropdownMenu/index.js +23 -0
  18. package/lib/cjs/HorizontalScrollContent/index.js +86 -2
  19. package/lib/cjs/LiveSearch/index.d.ts +2 -0
  20. package/lib/cjs/LiveSearch/index.js +27 -21
  21. package/lib/cjs/MultiFuncSelect/index.d.ts +5 -0
  22. package/lib/cjs/MultiFuncSelect/index.js +47 -30
  23. package/lib/cjs/MultipleCheckboxes/index.js +13 -13
  24. package/lib/cjs/MultipleSelect/index.d.ts +39 -0
  25. package/lib/cjs/MultipleSelect/index.js +750 -0
  26. package/lib/cjs/index.d.ts +1 -0
  27. package/lib/cjs/index.js +1 -0
  28. package/lib/css/MultiFuncSelect/index.css +13 -1
  29. package/lib/css/MultipleSelect/index.css +172 -0
  30. package/lib/esm/Accordion/AccordionItem.tsx +18 -0
  31. package/lib/esm/Accordion/utils/performance.js +52 -0
  32. package/lib/esm/DropdownMenu/index.tsx +37 -2
  33. package/lib/esm/HorizontalScrollContent/index.tsx +17 -0
  34. package/lib/esm/HorizontalScrollContent/utils/performance.js +52 -0
  35. package/lib/esm/LiveSearch/index.tsx +23 -18
  36. package/lib/esm/MultiFuncSelect/index.scss +23 -1
  37. package/lib/esm/MultiFuncSelect/index.tsx +495 -433
  38. package/lib/esm/MultipleCheckboxes/index.tsx +11 -11
  39. package/lib/esm/MultipleSelect/index.scss +208 -0
  40. package/lib/esm/MultipleSelect/index.tsx +466 -0
  41. package/lib/esm/MultipleSelect/utils/convert.js +59 -0
  42. package/lib/esm/MultipleSelect/utils/extract.js +63 -0
  43. package/lib/esm/MultipleSelect/utils/tree.js +119 -0
  44. package/lib/esm/ScrollReveal/utils/performance.js +52 -0
  45. package/lib/esm/index.js +1 -0
  46. package/package.json +1 -1
@@ -876,7 +876,7 @@ var enableBodyScroll = function enableBodyScroll(targetElement) {
876
876
  // EXTERNAL MODULE: ./src/utils/tree.js
877
877
  var tree = __webpack_require__(602);
878
878
  ;// CONCATENATED MODULE: ./src/index.tsx
879
- var _excluded = ["wrapperClassName", "controlClassName", "multiSelect", "disabled", "required", "value", "label", "name", "readOnly", "placeholder", "id", "options", "lockBodyScroll", "hierarchical", "indentation", "doubleIndent", "style", "depth", "controlArrow", "winWidth", "tabIndex", "fetchTrigger", "fetchTriggerForDefaultData", "fetchNoneInfo", "fetchUpdate", "fetchFuncAsync", "fetchFuncMethod", "fetchFuncMethodParams", "data", "extractValueByBrackets", "fetchCallback", "onFetch", "onLoad", "onSelect", "onChange", "onBlur", "onFocus"];
879
+ var _excluded = ["wrapperClassName", "controlClassName", "multiSelect", "disabled", "required", "value", "label", "name", "readOnly", "placeholder", "id", "options", "cleanTrigger", "lockBodyScroll", "hierarchical", "indentation", "doubleIndent", "style", "depth", "controlArrow", "winWidth", "tabIndex", "fetchTrigger", "fetchTriggerForDefaultData", "fetchNoneInfo", "fetchUpdate", "fetchFuncAsync", "fetchFuncMethod", "fetchFuncMethodParams", "data", "extractValueByBrackets", "fetchCallback", "onFetch", "onLoad", "onSelect", "onChange", "onBlur", "onFocus"];
880
880
  function src_toConsumableArray(arr) { return src_arrayWithoutHoles(arr) || src_iterableToArray(arr) || src_unsupportedIterableToArray(arr) || src_nonIterableSpread(); }
881
881
  function src_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
882
882
  function src_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
@@ -922,6 +922,7 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
922
922
  placeholder = props.placeholder,
923
923
  id = props.id,
924
924
  options = props.options,
925
+ cleanTrigger = props.cleanTrigger,
925
926
  lockBodyScroll = props.lockBodyScroll,
926
927
  hierarchical = props.hierarchical,
927
928
  indentation = props.indentation,
@@ -1005,10 +1006,9 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1005
1006
  _useState16 = _slicedToArray(_useState15, 2),
1006
1007
  incomingData = _useState16[0],
1007
1008
  setIncomingData = _useState16[1];
1008
-
1009
- // Multiple selection
1010
1009
  var selectedSign = false;
1011
1010
  var MULTI_SEL_VALID = multiSelect ? multiSelect.valid : false;
1011
+ var MULTI_SEL_LABEL = multiSelect ? multiSelect.selectAllLabel : 'Select all options';
1012
1012
  var _useState17 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)({
1013
1013
  labels: [],
1014
1014
  values: []
@@ -1022,6 +1022,10 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1022
1022
  }).includes(val.toString());
1023
1023
  };
1024
1024
 
1025
+ // clean trigger
1026
+ var CLEAN_TRIGGER_VALID = typeof cleanTrigger === 'undefined' ? false : cleanTrigger ? cleanTrigger.valid : false;
1027
+ var CLEAN_TRIGGER_LABEL = cleanTrigger ? cleanTrigger.cleanValueLabel : 'Clean';
1028
+
1025
1029
  //performance
1026
1030
  var handleChangeFetchSafe = utils_useDebounce(function (val) {
1027
1031
  var _orginalData = [];
@@ -1603,6 +1607,8 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1603
1607
  });
1604
1608
  }
1605
1609
  });
1610
+
1611
+ // select all button
1606
1612
  var _btnSelectAll = listContentRef.current.querySelector('.mf-select-multi__control-option-item--select-all > span');
1607
1613
  if (_btnSelectAll !== null && typeof _btnSelectAll.dataset.ev === 'undefined') {
1608
1614
  _btnSelectAll.dataset.ev = 'true';
@@ -1610,6 +1616,15 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1610
1616
  handleSelectAll(e);
1611
1617
  });
1612
1618
  }
1619
+
1620
+ // clean button
1621
+ var _btnClean = listContentRef.current.querySelector('.mf-select-multi__control-option-item--clean > span');
1622
+ if (_btnClean !== null && typeof _btnClean.dataset.ev === 'undefined') {
1623
+ _btnClean.dataset.ev = 'true';
1624
+ _btnClean.addEventListener('pointerdown', function (e) {
1625
+ handleCleanValue(e);
1626
+ });
1627
+ }
1613
1628
  }
1614
1629
  function popwinFilterItems(val) {
1615
1630
  if (listContentRef.current === null) return;
@@ -1968,31 +1983,6 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
1968
1983
  }
1969
1984
  function handleSelectAll(event) {
1970
1985
  event.preventDefault();
1971
- var onChangeSelectAll = function onChangeSelectAll(labelsArr, valuesArr) {
1972
- if (typeof onChange === 'function') {
1973
- onChange === null || onChange === void 0 ? void 0 : onChange(selectInputRef.current, valueInputRef.current, {
1974
- labels: labelsArr.map(function (v) {
1975
- return v.toString();
1976
- }),
1977
- values: valuesArr.map(function (v) {
1978
- return v.toString();
1979
- }),
1980
- labelsOfString: VALUE_BY_BRACKETS ? (0,convert.convertArrToValByBrackets)(labelsArr.map(function (v) {
1981
- return v.toString();
1982
- })) : labelsArr.map(function (v) {
1983
- return v.toString();
1984
- }).join(','),
1985
- valuesOfString: VALUE_BY_BRACKETS ? (0,convert.convertArrToValByBrackets)(valuesArr.map(function (v) {
1986
- return v.toString();
1987
- })) : valuesArr.map(function (v) {
1988
- return v.toString();
1989
- }).join(',')
1990
- });
1991
-
1992
- //
1993
- selectInputRef.current.blur();
1994
- }
1995
- };
1996
1986
  var updateOptionCheckboxes = function updateOptionCheckboxes(type) {
1997
1987
  var _labels = [];
1998
1988
  var _values = [];
@@ -2041,6 +2031,23 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
2041
2031
  }
2042
2032
  selectedSign = !selectedSign;
2043
2033
  }
2034
+ function handleCleanValue(event) {
2035
+ event.preventDefault();
2036
+
2037
+ // It is valid when a single selection
2038
+ var emptyValue = {
2039
+ label: '',
2040
+ value: '',
2041
+ queryString: ''
2042
+ };
2043
+ handleSelect(null, JSON.stringify(emptyValue), [], []);
2044
+ if (typeof onChange === 'function') {
2045
+ onChange === null || onChange === void 0 ? void 0 : onChange(selectInputRef.current, valueInputRef.current, emptyValue);
2046
+ }
2047
+
2048
+ // update temporary value
2049
+ setControlTempValue('');
2050
+ }
2044
2051
  function handleMultiControlItemRemove(event) {
2045
2052
  event.preventDefault();
2046
2053
  var valueToRemove = String(event.currentTarget.dataset.item);
@@ -2582,9 +2589,19 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
2582
2589
  tabIndex: -1,
2583
2590
  className: "btn btn-secondary",
2584
2591
  dangerouslySetInnerHTML: {
2585
- __html: "".concat((multiSelect === null || multiSelect === void 0 ? void 0 : multiSelect.selectAllLabel) || 'Select all options')
2592
+ __html: "".concat(MULTI_SEL_LABEL)
2593
+ }
2594
+ }))) : null, !MULTI_SEL_VALID ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, CLEAN_TRIGGER_VALID ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
2595
+ tabIndex: -1,
2596
+ className: "list-group-item list-group-item-action border-start-0 border-end-0 text-secondary bg-light mf-select-multi__control-option-item--clean",
2597
+ role: "tab"
2598
+ }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
2599
+ tabIndex: -1,
2600
+ className: "btn btn-secondary",
2601
+ dangerouslySetInnerHTML: {
2602
+ __html: "".concat(CLEAN_TRIGGER_LABEL)
2586
2603
  }
2587
- }))) : null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("button", {
2604
+ }))) : null) : null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("button", {
2588
2605
  tabIndex: -1,
2589
2606
  type: "button",
2590
2607
  className: "list-group-item list-group-item-action no-match border-0 mf-select-multi__control-option-item--nomatch hide",
@@ -702,12 +702,12 @@ var MultipleCheckboxes = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forw
702
702
  var optionsRes = options ? isJSON(options) ? JSON.parse(options) : options : [];
703
703
  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
704
704
  _useState2 = _slicedToArray(_useState, 2),
705
- regTagData = _useState2[0],
706
- setRegTagData = _useState2[1];
705
+ valData = _useState2[0],
706
+ setValData = _useState2[1];
707
707
  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
708
708
  _useState4 = _slicedToArray(_useState3, 2),
709
- regTagSelected = _useState4[0],
710
- setRegTagSelected = _useState4[1];
709
+ valSelected = _useState4[0],
710
+ setValSelected = _useState4[1];
711
711
  var _inline = typeof inline === 'undefined' ? true : inline;
712
712
 
713
713
  // Determine whether it is in JSON format
@@ -733,15 +733,15 @@ var MultipleCheckboxes = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forw
733
733
  function initDefaultValue(defaultValue) {
734
734
  // change the value to trigger component rendering
735
735
  if (typeof defaultValue === 'undefined' || defaultValue === '') {
736
- setRegTagSelected([]);
736
+ setValSelected([]);
737
737
  } else {
738
738
  var _val = VALUE_BY_BRACKETS ? (0,_utils_extract__WEBPACK_IMPORTED_MODULE_2__.extractContentsOfBrackets)(defaultValue) : defaultValue.trim().replace(/^\,|\,$/g, '').split(',');
739
739
  if (Array.isArray(_val)) {
740
- setRegTagSelected(_val.filter(function (v) {
740
+ setValSelected(_val.filter(function (v) {
741
741
  return v !== '';
742
742
  }));
743
743
  } else {
744
- setRegTagSelected([]);
744
+ setValSelected([]);
745
745
  }
746
746
  }
747
747
  }
@@ -752,7 +752,7 @@ var MultipleCheckboxes = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forw
752
752
 
753
753
  // Initialize options
754
754
  //--------------
755
- setRegTagData(optionsRes);
755
+ setValData(optionsRes);
756
756
  }, [value, options]);
757
757
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
758
758
  className: wrapperClassName || wrapperClassName === '' ? "multiple-checkboxes__wrapper ".concat(wrapperClassName) : "multiple-checkboxes__wrapper mb-3 position-relative",
@@ -766,7 +766,7 @@ var MultipleCheckboxes = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forw
766
766
  })) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
767
767
  className: "multiple-checkboxes__control-wrapper",
768
768
  style: style
769
- }, regTagData ? regTagData.map(function (item, i) {
769
+ }, valData ? valData.map(function (item, i) {
770
770
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
771
771
  key: 'checkbox' + i,
772
772
  className: "multiple-checkboxes__control ".concat(_inline ? 'd-inline-block' : '', " pe-3"),
@@ -780,18 +780,18 @@ var MultipleCheckboxes = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forw
780
780
  value: item.value,
781
781
  disabled: disabled || null,
782
782
  onChange: function onChange(e, val) {
783
- setRegTagSelected(function (prevState) {
783
+ setValSelected(function (prevState) {
784
784
  var newData = JSON.parse(JSON.stringify(prevState));
785
785
  var index = newData.findIndex(function (item) {
786
786
  return item == e.target.value;
787
787
  });
788
788
  if (index !== -1) newData.splice(index, 1);
789
789
  var _res = val ? Array.from(new Set([e.target.value].concat(_toConsumableArray(newData)))) : newData;
790
- _onChange === null || _onChange === void 0 ? void 0 : _onChange(e, _res, VALUE_BY_BRACKETS ? (0,_utils_convert__WEBPACK_IMPORTED_MODULE_3__.convertArrToValByBrackets)(_res) : _res.join(','));
790
+ _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target, _res, VALUE_BY_BRACKETS ? (0,_utils_convert__WEBPACK_IMPORTED_MODULE_3__.convertArrToValByBrackets)(_res) : _res.join(','));
791
791
  return _res;
792
792
  });
793
793
  },
794
- checked: regTagSelected.includes(item.value)
794
+ checked: valSelected.includes(item.value)
795
795
  }));
796
796
  }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", _extends({
797
797
  ref: inputRef,
@@ -799,7 +799,7 @@ var MultipleCheckboxes = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forw
799
799
  type: "hidden",
800
800
  id: idRes,
801
801
  name: name,
802
- value: VALUE_BY_BRACKETS ? (0,_utils_convert__WEBPACK_IMPORTED_MODULE_3__.convertArrToValByBrackets)(regTagSelected) : regTagSelected.join(','),
802
+ value: VALUE_BY_BRACKETS ? (0,_utils_convert__WEBPACK_IMPORTED_MODULE_3__.convertArrToValByBrackets)(valSelected) : valSelected.join(','),
803
803
  required: required || null
804
804
  }, attributes))), required ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
805
805
  className: "position-absolute end-0 top-0 my-2 mx-2"
@@ -0,0 +1,172 @@
1
+ /* ======================================================
2
+ <!-- Multiple Select -->
3
+ /* ====================================================== */
4
+ .m-select__wrapper {
5
+ --m-select-scrollbar-color: rgba(0, 0, 0, 0.2);
6
+ --m-select-scrollbar-track: rgba(0, 0, 0, 0);
7
+ --m-select-scrollbar-w: 3px;
8
+ min-width: 350px;
9
+ min-height: 315px;
10
+ width: 100%;
11
+ height: 100%;
12
+ border: solid 1px #dee2e6;
13
+ border-radius: 0.35rem;
14
+ position: relative;
15
+ background: #fff;
16
+ /*-------- List --------*/
17
+ }
18
+ .m-select__wrapper .m-select-diving-line {
19
+ width: 1px;
20
+ background-color: #dee2e6;
21
+ left: 50%;
22
+ top: 0;
23
+ position: absolute;
24
+ height: 100%;
25
+ z-index: 1;
26
+ }
27
+ .m-select__wrapper .m-select-inner {
28
+ display: flex;
29
+ font-size: 0.8em;
30
+ height: 100%;
31
+ }
32
+ .m-select__wrapper .m-select-inner ul,
33
+ .m-select__wrapper .m-select-inner li {
34
+ margin: 0;
35
+ padding: 0;
36
+ list-style: none;
37
+ }
38
+ .m-select__wrapper .m-select-inner div.m-select__selected__container,
39
+ .m-select__wrapper .m-select-inner div.m-select__available__container {
40
+ position: relative;
41
+ flex: 1;
42
+ }
43
+ .m-select__wrapper .m-select-inner ul.m-select__selected,
44
+ .m-select__wrapper .m-select-inner ul.m-select__available {
45
+ position: relative;
46
+ overflow: auto;
47
+ overflow-x: hidden;
48
+ background: #fff;
49
+ border: none;
50
+ position: relative;
51
+ width: 100%;
52
+ }
53
+ .m-select__wrapper .m-select-inner ul {
54
+ user-select: none;
55
+ }
56
+ .m-select__wrapper .m-select-inner li {
57
+ cursor: default;
58
+ position: relative;
59
+ font-size: 0.75rem;
60
+ display: flex;
61
+ justify-content: space-between;
62
+ background: #f6f6f6;
63
+ border-bottom: 1px solid rgb(255, 255, 255);
64
+ }
65
+ .m-select__wrapper .m-select-inner li.disabled {
66
+ pointer-events: none;
67
+ opacity: 0.4;
68
+ }
69
+ .m-select__wrapper .m-select-inner li.hide {
70
+ display: none;
71
+ }
72
+ .m-select__wrapper .m-select-inner li:hover {
73
+ opacity: 0.8;
74
+ }
75
+ .m-select__wrapper .m-select-inner li.selected {
76
+ background: #0b5ed7;
77
+ color: #fff;
78
+ }
79
+ .m-select__wrapper .m-select-inner li.selected > i svg path {
80
+ fill: #fff;
81
+ }
82
+ .m-select__wrapper .m-select-inner li:last-child {
83
+ border-bottom: none;
84
+ }
85
+ .m-select__wrapper .m-select-inner li > span {
86
+ padding: 0.35rem 0.75rem;
87
+ display: inline-block;
88
+ max-width: 100%;
89
+ overflow: hidden;
90
+ text-overflow: ellipsis;
91
+ word-break: break-all;
92
+ }
93
+ .m-select__wrapper .m-select-inner li > i {
94
+ display: inline-block;
95
+ padding: 0.35rem 0.75rem;
96
+ cursor: pointer;
97
+ }
98
+ .m-select__wrapper .m-select-inner li a {
99
+ color: #999;
100
+ text-decoration: none;
101
+ padding: 0;
102
+ display: block;
103
+ cursor: pointer;
104
+ }
105
+ .m-select__wrapper .m-select-inner li a.m-select__item-action {
106
+ position: absolute;
107
+ right: 0.5rem;
108
+ top: 0.5rem;
109
+ }
110
+ .m-select__wrapper .m-select-inner div.m-select__selected__container .m-select__header {
111
+ border-radius: 0 0.35rem 0 0;
112
+ }
113
+ .m-select__wrapper .m-select-inner div.m-select__available__container .m-select__header {
114
+ border-radius: 0.35rem 0 0 0;
115
+ }
116
+ .m-select__wrapper .m-select-inner .m-select__header {
117
+ border: none;
118
+ font-size: 0.75rem;
119
+ margin-bottom: 1px;
120
+ background: #dee2e6;
121
+ display: flex;
122
+ justify-content: space-between;
123
+ align-items: center;
124
+ height: 1.625rem;
125
+ }
126
+ .m-select__wrapper .m-select-inner .m-select__btn--add-all {
127
+ padding: 0.2rem;
128
+ }
129
+ .m-select__wrapper .m-select-inner .m-select__btn--remove-all {
130
+ padding: 0.2rem;
131
+ }
132
+ .m-select__wrapper .m-select-inner .m-select__count {
133
+ padding: 0.2rem;
134
+ }
135
+ .m-select__wrapper .m-select-inner .m-select__title {
136
+ padding: 0.2rem;
137
+ font-weight: bold;
138
+ }
139
+ .m-select__wrapper .m-select-inner input.m-select__search {
140
+ height: 14px;
141
+ padding: 0.1rem 0.5rem;
142
+ opacity: 0.5;
143
+ margin: 4px;
144
+ width: 100px;
145
+ border-radius: 25px;
146
+ border: none;
147
+ outline: none;
148
+ box-shadow: none;
149
+ }
150
+ .m-select__wrapper .m-select__options-contentlist {
151
+ position: relative;
152
+ width: 100%;
153
+ overflow: hidden;
154
+ overflow-y: auto;
155
+ max-height: calc(315px - 1.75rem);
156
+ }
157
+ .m-select__wrapper .m-select__options-contentlist::-webkit-scrollbar {
158
+ width: var(--m-select-scrollbar-w);
159
+ }
160
+ .m-select__wrapper .m-select__options-contentlist::-webkit-scrollbar-thumb {
161
+ background: var(--m-select-scrollbar-color);
162
+ }
163
+ .m-select__wrapper .m-select__options-contentlist::-webkit-scrollbar-track {
164
+ background: var(--m-select-scrollbar-track);
165
+ }
166
+ .m-select__wrapper .m-select__options-contentlist.dragging {
167
+ cursor: grab;
168
+ }
169
+ .m-select__wrapper .m-select__options-contentlist--hide {
170
+ overflow: hidden;
171
+ height: auto;
172
+ }
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ interface OptionConfig {
3
+ [propName: string]: string | number | boolean;
4
+ }
5
+ declare type MultipleSelectProps = {
6
+ wrapperClassName?: string;
7
+ availableHeaderTitle?: string;
8
+ selectedHeaderTitle?: string;
9
+ selectedHeaderNote?: string;
10
+ removeAllBtnLabel?: string | React.ReactNode;
11
+ addAllBtnLabel?: string | React.ReactNode;
12
+ iconAdd?: React.ReactNode | string;
13
+ iconRemove?: React.ReactNode | string;
14
+ hierarchical?: boolean;
15
+ indentation?: string;
16
+ doubleIndent?: boolean;
17
+ value?: string;
18
+ label?: React.ReactNode | string;
19
+ name?: string;
20
+ options?: OptionConfig[] | string;
21
+ disabled?: any;
22
+ required?: any;
23
+ /** Whether to use square brackets to save result and initialize default value */
24
+ extractValueByBrackets?: boolean;
25
+ /** Incoming data, you can set the third parameter of `onFetch` */
26
+ data?: any;
27
+ /** -- */
28
+ id?: string;
29
+ style?: React.CSSProperties;
30
+ [key: `data-${string}`]: string | undefined;
31
+ fetchFuncAsync?: any;
32
+ fetchFuncMethod?: string;
33
+ fetchFuncMethodParams?: any[];
34
+ fetchCallback?: (data: any) => void;
35
+ onFetch?: (data: any) => void;
36
+ onChange?: (e: any, data: any, dataStr: any) => void;
37
+ };
38
+ declare const MultipleSelect: React.ForwardRefExoticComponent<MultipleSelectProps & React.RefAttributes<unknown>>;
39
+ export default MultipleSelect;