funda-ui 1.1.157 → 1.1.162
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/LiveSearch/index.js +4 -3
- package/MultiFuncSelect/index.css +13 -1
- package/MultiFuncSelect/index.d.ts +6 -0
- package/MultiFuncSelect/index.js +57 -38
- package/lib/cjs/LiveSearch/index.js +4 -3
- package/lib/cjs/MultiFuncSelect/index.d.ts +6 -0
- package/lib/cjs/MultiFuncSelect/index.js +57 -38
- package/lib/css/MultiFuncSelect/index.css +13 -1
- package/lib/esm/LiveSearch/index.tsx +5 -4
- package/lib/esm/MultiFuncSelect/index.scss +23 -1
- package/lib/esm/MultiFuncSelect/index.tsx +507 -443
- package/package.json +1 -1
package/LiveSearch/index.js
CHANGED
|
@@ -804,11 +804,12 @@ var LiveSearch = function LiveSearch(props) {
|
|
|
804
804
|
return data.filter(function (item) {
|
|
805
805
|
// Avoid fatal errors causing page crashes
|
|
806
806
|
var _queryString = typeof item.queryString !== 'undefined' && item.queryString !== null ? item.queryString : '';
|
|
807
|
+
var _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
807
808
|
if ((_queryString.split(',').some(function (l) {
|
|
808
|
-
return l.charAt(0) ===
|
|
809
|
+
return l.charAt(0) === _val.toLowerCase();
|
|
809
810
|
}) || _queryString.split(',').some(function (l) {
|
|
810
|
-
return l.replace(/ /g, '').indexOf(
|
|
811
|
-
}) || item.label.toLowerCase().indexOf(
|
|
811
|
+
return l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0;
|
|
812
|
+
}) || item.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0) && _val != '') {
|
|
812
813
|
return true;
|
|
813
814
|
} else {
|
|
814
815
|
return false;
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
--mf-sel-removebtn-hover-fill: #f00;
|
|
17
17
|
/*------ Placeholder for input ------*/
|
|
18
18
|
/*------ Arrow ------*/
|
|
19
|
+
/*------ Clean ------*/
|
|
19
20
|
/*------ Input ------*/
|
|
20
21
|
/*------ Blinking cursor ------*/
|
|
21
22
|
/*------ Single selection ------*/
|
|
@@ -29,6 +30,9 @@
|
|
|
29
30
|
.mf-select__wrapper .arrow svg .arrow-fill-g {
|
|
30
31
|
fill: var(--mf-sel-arrow-fill);
|
|
31
32
|
}
|
|
33
|
+
.mf-select__wrapper .clean svg .clean-fill-g {
|
|
34
|
+
fill: var(--mf-sel-arrow-fill);
|
|
35
|
+
}
|
|
32
36
|
.mf-select__wrapper [data-select]:focus {
|
|
33
37
|
box-shadow: none;
|
|
34
38
|
border-color: transparent;
|
|
@@ -211,7 +215,8 @@
|
|
|
211
215
|
display: none;
|
|
212
216
|
min-width: var(--mf-sel-listgroup-popwin-min-width);
|
|
213
217
|
z-index: 1055; /* --bs-modal-zindex */
|
|
214
|
-
/*------ Multiple selection ------*/
|
|
218
|
+
/*------ Extended buttons of Multiple selection ------*/
|
|
219
|
+
/*------ Extended buttons of Single selection ------*/
|
|
215
220
|
}
|
|
216
221
|
.mf-select__options-wrapper.active {
|
|
217
222
|
display: block;
|
|
@@ -270,3 +275,10 @@
|
|
|
270
275
|
font-size: 0.75rem;
|
|
271
276
|
padding: 0.1rem 0.5rem;
|
|
272
277
|
}
|
|
278
|
+
.mf-select__options-wrapper .mf-select-multi__control-option-item--clean.hide {
|
|
279
|
+
display: none !important;
|
|
280
|
+
}
|
|
281
|
+
.mf-select__options-wrapper .mf-select-multi__control-option-item--clean .btn {
|
|
282
|
+
font-size: 0.75rem;
|
|
283
|
+
padding: 0.1rem 0.5rem;
|
|
284
|
+
}
|
|
@@ -13,6 +13,7 @@ interface MultiSelectDataConfig {
|
|
|
13
13
|
interface OptionConfig {
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
label: any;
|
|
16
|
+
listItemLabel?: any;
|
|
16
17
|
value: any;
|
|
17
18
|
queryString: string | number;
|
|
18
19
|
}
|
|
@@ -22,10 +23,15 @@ interface MultiSelectConfig {
|
|
|
22
23
|
selectAllLabel?: string;
|
|
23
24
|
data: MultiSelectDataConfig | null;
|
|
24
25
|
}
|
|
26
|
+
interface CleanTriggerConfig {
|
|
27
|
+
valid: boolean;
|
|
28
|
+
cleanValueLabel?: string;
|
|
29
|
+
}
|
|
25
30
|
declare type MultiFuncSelectProps = {
|
|
26
31
|
wrapperClassName?: string;
|
|
27
32
|
controlClassName?: string;
|
|
28
33
|
multiSelect?: MultiSelectConfig;
|
|
34
|
+
cleanTrigger?: CleanTriggerConfig;
|
|
29
35
|
value?: string;
|
|
30
36
|
label?: React.ReactNode | string;
|
|
31
37
|
name?: string;
|
package/MultiFuncSelect/index.js
CHANGED
|
@@ -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 = [];
|
|
@@ -1030,11 +1034,12 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1030
1034
|
return inputData.filter(function (item) {
|
|
1031
1035
|
// Avoid fatal errors causing page crashes
|
|
1032
1036
|
var _queryString = typeof item.queryString !== 'undefined' && item.queryString !== null ? item.queryString : '';
|
|
1037
|
+
var _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
1033
1038
|
if ((_queryString.split(',').some(function (l) {
|
|
1034
|
-
return l.charAt(0) ===
|
|
1039
|
+
return l.charAt(0) === _val.toLowerCase();
|
|
1035
1040
|
}) || _queryString.split(',').some(function (l) {
|
|
1036
|
-
return l.replace(/ /g, '').indexOf(
|
|
1037
|
-
}) || item.label.toLowerCase().indexOf(
|
|
1041
|
+
return l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0;
|
|
1042
|
+
}) || item.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0) && _val != '') {
|
|
1038
1043
|
return true;
|
|
1039
1044
|
} else {
|
|
1040
1045
|
return false;
|
|
@@ -1602,6 +1607,8 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1602
1607
|
});
|
|
1603
1608
|
}
|
|
1604
1609
|
});
|
|
1610
|
+
|
|
1611
|
+
// select all button
|
|
1605
1612
|
var _btnSelectAll = listContentRef.current.querySelector('.mf-select-multi__control-option-item--select-all > span');
|
|
1606
1613
|
if (_btnSelectAll !== null && typeof _btnSelectAll.dataset.ev === 'undefined') {
|
|
1607
1614
|
_btnSelectAll.dataset.ev = 'true';
|
|
@@ -1609,17 +1616,27 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1609
1616
|
handleSelectAll(e);
|
|
1610
1617
|
});
|
|
1611
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
|
+
}
|
|
1612
1628
|
}
|
|
1613
1629
|
function popwinFilterItems(val) {
|
|
1614
1630
|
if (listContentRef.current === null) return;
|
|
1615
1631
|
[].slice.call(listContentRef.current.querySelectorAll('.mf-select-multi__control-option-item')).forEach(function (node) {
|
|
1616
1632
|
// Avoid fatal errors causing page crashes
|
|
1617
1633
|
var _queryString = typeof node.dataset.querystring !== 'undefined' && node.dataset.querystring !== null ? node.dataset.querystring : '';
|
|
1634
|
+
var _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
1618
1635
|
if ((_queryString.split(',').some(function (l) {
|
|
1619
|
-
return l.charAt(0) ===
|
|
1636
|
+
return l.charAt(0) === _val.toLowerCase();
|
|
1620
1637
|
}) || _queryString.split(',').some(function (l) {
|
|
1621
|
-
return l.replace(/ /g, '').indexOf(
|
|
1622
|
-
}) || node.dataset.label.toLowerCase().indexOf(
|
|
1638
|
+
return l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0;
|
|
1639
|
+
}) || node.dataset.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0) && _val != '') {
|
|
1623
1640
|
node.classList.remove('hide');
|
|
1624
1641
|
} else {
|
|
1625
1642
|
node.classList.add('hide');
|
|
@@ -1966,31 +1983,6 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1966
1983
|
}
|
|
1967
1984
|
function handleSelectAll(event) {
|
|
1968
1985
|
event.preventDefault();
|
|
1969
|
-
var onChangeSelectAll = function onChangeSelectAll(labelsArr, valuesArr) {
|
|
1970
|
-
if (typeof onChange === 'function') {
|
|
1971
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(selectInputRef.current, valueInputRef.current, {
|
|
1972
|
-
labels: labelsArr.map(function (v) {
|
|
1973
|
-
return v.toString();
|
|
1974
|
-
}),
|
|
1975
|
-
values: valuesArr.map(function (v) {
|
|
1976
|
-
return v.toString();
|
|
1977
|
-
}),
|
|
1978
|
-
labelsOfString: VALUE_BY_BRACKETS ? (0,convert.convertArrToValByBrackets)(labelsArr.map(function (v) {
|
|
1979
|
-
return v.toString();
|
|
1980
|
-
})) : labelsArr.map(function (v) {
|
|
1981
|
-
return v.toString();
|
|
1982
|
-
}).join(','),
|
|
1983
|
-
valuesOfString: VALUE_BY_BRACKETS ? (0,convert.convertArrToValByBrackets)(valuesArr.map(function (v) {
|
|
1984
|
-
return v.toString();
|
|
1985
|
-
})) : valuesArr.map(function (v) {
|
|
1986
|
-
return v.toString();
|
|
1987
|
-
}).join(',')
|
|
1988
|
-
});
|
|
1989
|
-
|
|
1990
|
-
//
|
|
1991
|
-
selectInputRef.current.blur();
|
|
1992
|
-
}
|
|
1993
|
-
};
|
|
1994
1986
|
var updateOptionCheckboxes = function updateOptionCheckboxes(type) {
|
|
1995
1987
|
var _labels = [];
|
|
1996
1988
|
var _values = [];
|
|
@@ -2039,6 +2031,23 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2039
2031
|
}
|
|
2040
2032
|
selectedSign = !selectedSign;
|
|
2041
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
|
+
}
|
|
2042
2051
|
function handleMultiControlItemRemove(event) {
|
|
2043
2052
|
event.preventDefault();
|
|
2044
2053
|
var valueToRemove = String(event.currentTarget.dataset.item);
|
|
@@ -2580,9 +2589,19 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2580
2589
|
tabIndex: -1,
|
|
2581
2590
|
className: "btn btn-secondary",
|
|
2582
2591
|
dangerouslySetInnerHTML: {
|
|
2583
|
-
__html: "".concat(
|
|
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)
|
|
2584
2603
|
}
|
|
2585
|
-
}))) : 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", {
|
|
2586
2605
|
tabIndex: -1,
|
|
2587
2606
|
type: "button",
|
|
2588
2607
|
className: "list-group-item list-group-item-action no-match border-0 mf-select-multi__control-option-item--nomatch hide",
|
|
@@ -2606,7 +2625,7 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2606
2625
|
"data-itemdata": JSON.stringify(item),
|
|
2607
2626
|
role: "tab",
|
|
2608
2627
|
dangerouslySetInnerHTML: {
|
|
2609
|
-
__html: item.label
|
|
2628
|
+
__html: typeof item.listItemLabel === 'undefined' ? item.label : item.listItemLabel
|
|
2610
2629
|
}
|
|
2611
2630
|
});
|
|
2612
2631
|
} else {
|
|
@@ -2646,7 +2665,7 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2646
2665
|
d: "M4 7.2002V16.8002C4 17.9203 4 18.4801 4.21799 18.9079C4.40973 19.2842 4.71547 19.5905 5.0918 19.7822C5.5192 20 6.07899 20 7.19691 20H16.8031C17.921 20 18.48 20 18.9074 19.7822C19.2837 19.5905 19.5905 19.2842 19.7822 18.9079C20 18.4805 20 17.9215 20 16.8036V7.19691C20 6.07899 20 5.5192 19.7822 5.0918C19.5905 4.71547 19.2837 4.40973 18.9074 4.21799C18.4796 4 17.9203 4 16.8002 4H7.2002C6.08009 4 5.51962 4 5.0918 4.21799C4.71547 4.40973 4.40973 4.71547 4.21799 5.0918C4 5.51962 4 6.08009 4 7.2002Z"
|
|
2647
2666
|
}))), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
|
|
2648
2667
|
dangerouslySetInnerHTML: {
|
|
2649
|
-
__html: item.label
|
|
2668
|
+
__html: typeof item.listItemLabel === 'undefined' ? item.label : item.listItemLabel
|
|
2650
2669
|
}
|
|
2651
2670
|
}));
|
|
2652
2671
|
}
|
|
@@ -804,11 +804,12 @@ var LiveSearch = function LiveSearch(props) {
|
|
|
804
804
|
return data.filter(function (item) {
|
|
805
805
|
// Avoid fatal errors causing page crashes
|
|
806
806
|
var _queryString = typeof item.queryString !== 'undefined' && item.queryString !== null ? item.queryString : '';
|
|
807
|
+
var _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
807
808
|
if ((_queryString.split(',').some(function (l) {
|
|
808
|
-
return l.charAt(0) ===
|
|
809
|
+
return l.charAt(0) === _val.toLowerCase();
|
|
809
810
|
}) || _queryString.split(',').some(function (l) {
|
|
810
|
-
return l.replace(/ /g, '').indexOf(
|
|
811
|
-
}) || item.label.toLowerCase().indexOf(
|
|
811
|
+
return l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0;
|
|
812
|
+
}) || item.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0) && _val != '') {
|
|
812
813
|
return true;
|
|
813
814
|
} else {
|
|
814
815
|
return false;
|
|
@@ -13,6 +13,7 @@ interface MultiSelectDataConfig {
|
|
|
13
13
|
interface OptionConfig {
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
label: any;
|
|
16
|
+
listItemLabel?: any;
|
|
16
17
|
value: any;
|
|
17
18
|
queryString: string | number;
|
|
18
19
|
}
|
|
@@ -22,10 +23,15 @@ interface MultiSelectConfig {
|
|
|
22
23
|
selectAllLabel?: string;
|
|
23
24
|
data: MultiSelectDataConfig | null;
|
|
24
25
|
}
|
|
26
|
+
interface CleanTriggerConfig {
|
|
27
|
+
valid: boolean;
|
|
28
|
+
cleanValueLabel?: string;
|
|
29
|
+
}
|
|
25
30
|
declare type MultiFuncSelectProps = {
|
|
26
31
|
wrapperClassName?: string;
|
|
27
32
|
controlClassName?: string;
|
|
28
33
|
multiSelect?: MultiSelectConfig;
|
|
34
|
+
cleanTrigger?: CleanTriggerConfig;
|
|
29
35
|
value?: string;
|
|
30
36
|
label?: React.ReactNode | string;
|
|
31
37
|
name?: string;
|
|
@@ -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 = [];
|
|
@@ -1030,11 +1034,12 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1030
1034
|
return inputData.filter(function (item) {
|
|
1031
1035
|
// Avoid fatal errors causing page crashes
|
|
1032
1036
|
var _queryString = typeof item.queryString !== 'undefined' && item.queryString !== null ? item.queryString : '';
|
|
1037
|
+
var _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
1033
1038
|
if ((_queryString.split(',').some(function (l) {
|
|
1034
|
-
return l.charAt(0) ===
|
|
1039
|
+
return l.charAt(0) === _val.toLowerCase();
|
|
1035
1040
|
}) || _queryString.split(',').some(function (l) {
|
|
1036
|
-
return l.replace(/ /g, '').indexOf(
|
|
1037
|
-
}) || item.label.toLowerCase().indexOf(
|
|
1041
|
+
return l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0;
|
|
1042
|
+
}) || item.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0) && _val != '') {
|
|
1038
1043
|
return true;
|
|
1039
1044
|
} else {
|
|
1040
1045
|
return false;
|
|
@@ -1602,6 +1607,8 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1602
1607
|
});
|
|
1603
1608
|
}
|
|
1604
1609
|
});
|
|
1610
|
+
|
|
1611
|
+
// select all button
|
|
1605
1612
|
var _btnSelectAll = listContentRef.current.querySelector('.mf-select-multi__control-option-item--select-all > span');
|
|
1606
1613
|
if (_btnSelectAll !== null && typeof _btnSelectAll.dataset.ev === 'undefined') {
|
|
1607
1614
|
_btnSelectAll.dataset.ev = 'true';
|
|
@@ -1609,17 +1616,27 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1609
1616
|
handleSelectAll(e);
|
|
1610
1617
|
});
|
|
1611
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
|
+
}
|
|
1612
1628
|
}
|
|
1613
1629
|
function popwinFilterItems(val) {
|
|
1614
1630
|
if (listContentRef.current === null) return;
|
|
1615
1631
|
[].slice.call(listContentRef.current.querySelectorAll('.mf-select-multi__control-option-item')).forEach(function (node) {
|
|
1616
1632
|
// Avoid fatal errors causing page crashes
|
|
1617
1633
|
var _queryString = typeof node.dataset.querystring !== 'undefined' && node.dataset.querystring !== null ? node.dataset.querystring : '';
|
|
1634
|
+
var _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
1618
1635
|
if ((_queryString.split(',').some(function (l) {
|
|
1619
|
-
return l.charAt(0) ===
|
|
1636
|
+
return l.charAt(0) === _val.toLowerCase();
|
|
1620
1637
|
}) || _queryString.split(',').some(function (l) {
|
|
1621
|
-
return l.replace(/ /g, '').indexOf(
|
|
1622
|
-
}) || node.dataset.label.toLowerCase().indexOf(
|
|
1638
|
+
return l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0;
|
|
1639
|
+
}) || node.dataset.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0) && _val != '') {
|
|
1623
1640
|
node.classList.remove('hide');
|
|
1624
1641
|
} else {
|
|
1625
1642
|
node.classList.add('hide');
|
|
@@ -1966,31 +1983,6 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
1966
1983
|
}
|
|
1967
1984
|
function handleSelectAll(event) {
|
|
1968
1985
|
event.preventDefault();
|
|
1969
|
-
var onChangeSelectAll = function onChangeSelectAll(labelsArr, valuesArr) {
|
|
1970
|
-
if (typeof onChange === 'function') {
|
|
1971
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(selectInputRef.current, valueInputRef.current, {
|
|
1972
|
-
labels: labelsArr.map(function (v) {
|
|
1973
|
-
return v.toString();
|
|
1974
|
-
}),
|
|
1975
|
-
values: valuesArr.map(function (v) {
|
|
1976
|
-
return v.toString();
|
|
1977
|
-
}),
|
|
1978
|
-
labelsOfString: VALUE_BY_BRACKETS ? (0,convert.convertArrToValByBrackets)(labelsArr.map(function (v) {
|
|
1979
|
-
return v.toString();
|
|
1980
|
-
})) : labelsArr.map(function (v) {
|
|
1981
|
-
return v.toString();
|
|
1982
|
-
}).join(','),
|
|
1983
|
-
valuesOfString: VALUE_BY_BRACKETS ? (0,convert.convertArrToValByBrackets)(valuesArr.map(function (v) {
|
|
1984
|
-
return v.toString();
|
|
1985
|
-
})) : valuesArr.map(function (v) {
|
|
1986
|
-
return v.toString();
|
|
1987
|
-
}).join(',')
|
|
1988
|
-
});
|
|
1989
|
-
|
|
1990
|
-
//
|
|
1991
|
-
selectInputRef.current.blur();
|
|
1992
|
-
}
|
|
1993
|
-
};
|
|
1994
1986
|
var updateOptionCheckboxes = function updateOptionCheckboxes(type) {
|
|
1995
1987
|
var _labels = [];
|
|
1996
1988
|
var _values = [];
|
|
@@ -2039,6 +2031,23 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2039
2031
|
}
|
|
2040
2032
|
selectedSign = !selectedSign;
|
|
2041
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
|
+
}
|
|
2042
2051
|
function handleMultiControlItemRemove(event) {
|
|
2043
2052
|
event.preventDefault();
|
|
2044
2053
|
var valueToRemove = String(event.currentTarget.dataset.item);
|
|
@@ -2580,9 +2589,19 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2580
2589
|
tabIndex: -1,
|
|
2581
2590
|
className: "btn btn-secondary",
|
|
2582
2591
|
dangerouslySetInnerHTML: {
|
|
2583
|
-
__html: "".concat(
|
|
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)
|
|
2584
2603
|
}
|
|
2585
|
-
}))) : 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", {
|
|
2586
2605
|
tabIndex: -1,
|
|
2587
2606
|
type: "button",
|
|
2588
2607
|
className: "list-group-item list-group-item-action no-match border-0 mf-select-multi__control-option-item--nomatch hide",
|
|
@@ -2606,7 +2625,7 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2606
2625
|
"data-itemdata": JSON.stringify(item),
|
|
2607
2626
|
role: "tab",
|
|
2608
2627
|
dangerouslySetInnerHTML: {
|
|
2609
|
-
__html: item.label
|
|
2628
|
+
__html: typeof item.listItemLabel === 'undefined' ? item.label : item.listItemLabel
|
|
2610
2629
|
}
|
|
2611
2630
|
});
|
|
2612
2631
|
} else {
|
|
@@ -2646,7 +2665,7 @@ var MultiFuncSelect = /*#__PURE__*/(0,external_root_React_commonjs2_react_common
|
|
|
2646
2665
|
d: "M4 7.2002V16.8002C4 17.9203 4 18.4801 4.21799 18.9079C4.40973 19.2842 4.71547 19.5905 5.0918 19.7822C5.5192 20 6.07899 20 7.19691 20H16.8031C17.921 20 18.48 20 18.9074 19.7822C19.2837 19.5905 19.5905 19.2842 19.7822 18.9079C20 18.4805 20 17.9215 20 16.8036V7.19691C20 6.07899 20 5.5192 19.7822 5.0918C19.5905 4.71547 19.2837 4.40973 18.9074 4.21799C18.4796 4 17.9203 4 16.8002 4H7.2002C6.08009 4 5.51962 4 5.0918 4.21799C4.71547 4.40973 4.40973 4.71547 4.21799 5.0918C4 5.51962 4 6.08009 4 7.2002Z"
|
|
2647
2666
|
}))), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
|
|
2648
2667
|
dangerouslySetInnerHTML: {
|
|
2649
|
-
__html: item.label
|
|
2668
|
+
__html: typeof item.listItemLabel === 'undefined' ? item.label : item.listItemLabel
|
|
2650
2669
|
}
|
|
2651
2670
|
}));
|
|
2652
2671
|
}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
--mf-sel-removebtn-hover-fill: #f00;
|
|
17
17
|
/*------ Placeholder for input ------*/
|
|
18
18
|
/*------ Arrow ------*/
|
|
19
|
+
/*------ Clean ------*/
|
|
19
20
|
/*------ Input ------*/
|
|
20
21
|
/*------ Blinking cursor ------*/
|
|
21
22
|
/*------ Single selection ------*/
|
|
@@ -29,6 +30,9 @@
|
|
|
29
30
|
.mf-select__wrapper .arrow svg .arrow-fill-g {
|
|
30
31
|
fill: var(--mf-sel-arrow-fill);
|
|
31
32
|
}
|
|
33
|
+
.mf-select__wrapper .clean svg .clean-fill-g {
|
|
34
|
+
fill: var(--mf-sel-arrow-fill);
|
|
35
|
+
}
|
|
32
36
|
.mf-select__wrapper [data-select]:focus {
|
|
33
37
|
box-shadow: none;
|
|
34
38
|
border-color: transparent;
|
|
@@ -211,7 +215,8 @@
|
|
|
211
215
|
display: none;
|
|
212
216
|
min-width: var(--mf-sel-listgroup-popwin-min-width);
|
|
213
217
|
z-index: 1055; /* --bs-modal-zindex */
|
|
214
|
-
/*------ Multiple selection ------*/
|
|
218
|
+
/*------ Extended buttons of Multiple selection ------*/
|
|
219
|
+
/*------ Extended buttons of Single selection ------*/
|
|
215
220
|
}
|
|
216
221
|
.mf-select__options-wrapper.active {
|
|
217
222
|
display: block;
|
|
@@ -270,3 +275,10 @@
|
|
|
270
275
|
font-size: 0.75rem;
|
|
271
276
|
padding: 0.1rem 0.5rem;
|
|
272
277
|
}
|
|
278
|
+
.mf-select__options-wrapper .mf-select-multi__control-option-item--clean.hide {
|
|
279
|
+
display: none !important;
|
|
280
|
+
}
|
|
281
|
+
.mf-select__options-wrapper .mf-select-multi__control-option-item--clean .btn {
|
|
282
|
+
font-size: 0.75rem;
|
|
283
|
+
padding: 0.1rem 0.5rem;
|
|
284
|
+
}
|
|
@@ -229,14 +229,15 @@ const LiveSearch = (props: LiveSearchProps) => {
|
|
|
229
229
|
|
|
230
230
|
// Avoid fatal errors causing page crashes
|
|
231
231
|
const _queryString = typeof item.queryString !== 'undefined' && item.queryString !== null ? item.queryString : '';
|
|
232
|
+
const _val = typeof val !== 'undefined' && val !== null ? val : '';
|
|
232
233
|
|
|
233
234
|
if (
|
|
234
235
|
(
|
|
235
|
-
_queryString.split(',').some((l: any) => l.charAt(0) ===
|
|
236
|
-
_queryString.split(',').some((l: any) => l.replace(/ /g, '').indexOf(
|
|
237
|
-
item.label.toLowerCase().indexOf(
|
|
236
|
+
_queryString.split(',').some((l: any) => l.charAt(0) === _val.toLowerCase()) ||
|
|
237
|
+
_queryString.split(',').some((l: any) => l.replace(/ /g, '').indexOf(_val.toLowerCase()) >= 0) ||
|
|
238
|
+
item.label.toLowerCase().indexOf(_val.toLowerCase()) >= 0
|
|
238
239
|
) &&
|
|
239
|
-
|
|
240
|
+
_val != ''
|
|
240
241
|
) {
|
|
241
242
|
return true;
|
|
242
243
|
} else {
|
|
@@ -33,6 +33,14 @@
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
/*------ Clean ------*/
|
|
37
|
+
.clean {
|
|
38
|
+
svg .clean-fill-g {
|
|
39
|
+
fill: var(--mf-sel-arrow-fill);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
36
44
|
|
|
37
45
|
/*------ Input ------*/
|
|
38
46
|
[data-select]:focus {
|
|
@@ -398,7 +406,7 @@
|
|
|
398
406
|
|
|
399
407
|
|
|
400
408
|
|
|
401
|
-
/*------ Multiple selection ------*/
|
|
409
|
+
/*------ Extended buttons of Multiple selection ------*/
|
|
402
410
|
.mf-select-multi__control-option-item--select-all {
|
|
403
411
|
|
|
404
412
|
&.hide {
|
|
@@ -411,6 +419,20 @@
|
|
|
411
419
|
}
|
|
412
420
|
}
|
|
413
421
|
|
|
422
|
+
/*------ Extended buttons of Single selection ------*/
|
|
423
|
+
.mf-select-multi__control-option-item--clean {
|
|
424
|
+
|
|
425
|
+
&.hide {
|
|
426
|
+
display: none !important;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.btn {
|
|
430
|
+
font-size: 0.75rem;
|
|
431
|
+
padding: 0.1rem 0.5rem;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
|
|
414
436
|
|
|
415
437
|
}
|
|
416
438
|
|