tdesign-react
Version:
TDesign Component for React
190 lines (186 loc) • 6.27 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../../_chunks/dep-48805ab8.js';
import { isNumber, cloneDeep, isFunction } from 'lodash-es';
import { getFullPathLabel, getTreeValue } from './helper.js';
import '../../_chunks/dep-026a4c6b.js';
import '../../_chunks/dep-eca3a3de.js';
function expendClickEffect(propsTrigger, trigger, node, cascaderContext) {
var checkStrictly = cascaderContext.checkStrictly,
multiple = cascaderContext.multiple,
treeStore = cascaderContext.treeStore,
setVisible = cascaderContext.setVisible,
setValue = cascaderContext.setValue,
setTreeNodes = cascaderContext.setTreeNodes,
setExpend = cascaderContext.setExpend,
value = cascaderContext.value,
max = cascaderContext.max,
valueType = cascaderContext.valueType;
var isDisabled = node.disabled || multiple && value.length >= max && max !== 0;
if (isDisabled) return;
if (propsTrigger === trigger && node.children !== null) {
var expanded = node.setExpanded(true);
treeStore.refreshNodes();
treeStore.replaceExpanded(expanded);
var nodes = treeStore.getNodes().filter(function (node2) {
return node2.visible;
});
setTreeNodes(nodes);
if (multiple) {
setExpend(expanded);
}
}
if (!multiple && (node.isLeaf() || checkStrictly) && trigger === "click") {
treeStore.resetChecked();
var checked = node.setChecked(!node.checked);
var _checked = _slicedToArray(checked, 1),
value2 = _checked[0];
setValue(valueType === "single" ? value2 : node.getPath().map(function (item) {
return item.value;
}), "check", node.getModel());
if (!checkStrictly || propsTrigger === "hover") {
setVisible(false, {});
}
}
}
function valueChangeEffect(node, cascaderContext) {
var disabled = cascaderContext.disabled,
max = cascaderContext.max,
inputVal = cascaderContext.inputVal,
multiple = cascaderContext.multiple,
setVisible = cascaderContext.setVisible,
setValue = cascaderContext.setValue,
treeNodes = cascaderContext.treeNodes,
treeStore = cascaderContext.treeStore,
valueType = cascaderContext.valueType;
if (!node || disabled || node.disabled) {
return;
}
var checked = node.setChecked(!node.isChecked());
if (isNumber(max) && max < 0) {
console.warn("TDesign Warn:", "max should > 0");
}
if (checked.length > max && isNumber(max) && max > 0) {
return;
}
if (checked.length === 0) {
var expanded = treeStore.getExpanded();
setTimeout(function () {
treeStore.replaceExpanded(expanded);
treeStore.refreshNodes();
}, 0);
}
if (!multiple) {
setVisible(false, {});
}
var isSelectAll = treeNodes.every(function (item) {
return checked.indexOf(item.value) > -1;
});
if (inputVal && isSelectAll) {
setVisible(false, {});
}
var resValue = valueType === "single" ? checked : checked.map(function (val) {
return treeStore.getNode(val).getPath().map(function (item) {
return item.value;
});
});
setValue(resValue, node.checked ? "uncheck" : "check", node.getModel());
}
function closeIconClickEffect(cascaderContext) {
var setVisible = cascaderContext.setVisible,
multiple = cascaderContext.multiple,
setExpend = cascaderContext.setExpend,
setValue = cascaderContext.setValue,
treeStore = cascaderContext.treeStore;
var expanded = treeStore.getExpanded();
setTimeout(function () {
treeStore.replaceExpanded(expanded);
treeStore.refreshNodes();
}, 0);
setVisible(false, {});
if (multiple) {
setExpend([]);
}
setValue(multiple ? [] : "", "clear");
}
function handleRemoveTagEffect(cascaderContext, index, onRemove) {
var disabled = cascaderContext.disabled,
setValue = cascaderContext.setValue,
value = cascaderContext.value,
valueType = cascaderContext.valueType,
treeStore = cascaderContext.treeStore;
if (disabled) return;
var newValue = cloneDeep(value);
var res = newValue.splice(index, 1);
var node = treeStore.getNodes(res[0])[0];
var checked = node.setChecked(!node.isChecked());
if (valueType === "single") {
setValue(newValue, "uncheck", node.getModel());
} else {
var resValue = checked.map(function (val) {
return treeStore.getNode(val).getPath().map(function (item) {
return item.value;
});
});
setValue(resValue, "uncheck", node.getModel());
}
if (isFunction(onRemove)) {
onRemove({
value: checked,
node: node
});
}
}
var treeNodesEffect = function treeNodesEffect(inputVal, treeStore, setTreeNodes, filter, checkStrictly) {
if (!treeStore) return;
var nodes = [];
if (inputVal) {
var filterMethods = function filterMethods(node) {
if (!checkStrictly && !node.isLeaf()) return;
if (isFunction(filter)) {
return filter("".concat(inputVal), node);
}
var fullPathLabel = getFullPathLabel(node, "");
return fullPathLabel.indexOf("".concat(inputVal)) > -1;
};
nodes = treeStore.nodes.filter(filterMethods);
} else {
nodes = treeStore.getNodes().filter(function (node) {
return node.visible;
});
}
setTreeNodes(nodes);
};
var treeStoreExpendEffect = function treeStoreExpendEffect(treeStore, value, expend) {
var treeValue = getTreeValue(value);
if (!treeStore) return;
if (Array.isArray(treeValue) && expend.length === 0) {
var expandedMap = /* @__PURE__ */new Map();
var _treeValue = _slicedToArray(treeValue, 1),
val = _treeValue[0];
if (val) {
expandedMap.set(val, true);
var node = treeStore.getNode(val);
if (!node) {
treeStore.refreshNodes();
return;
}
node.getParents().forEach(function (tn) {
expandedMap.set(tn.value, true);
});
var expandedArr = Array.from(expandedMap.keys());
treeStore.replaceExpanded(expandedArr);
} else {
treeStore.resetExpanded();
}
}
if (treeStore.getExpanded() && expend.length) {
treeStore.replaceExpanded(expend);
}
treeStore.refreshNodes();
};
export { closeIconClickEffect, expendClickEffect, handleRemoveTagEffect, treeNodesEffect, treeStoreExpendEffect, valueChangeEffect };
//# sourceMappingURL=effect.js.map