tdesign-vue
Version:
189 lines (185 loc) • 6.22 kB
JavaScript
/**
* tdesign v1.14.1
* (c) 2025 tdesign
* @license MIT
*/
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import { isNumber, cloneDeep, isFunction } from 'lodash-es';
import { getFullPathLabel, getTreeValue } from './helper.js';
import '@babel/runtime/helpers/typeof';
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,
filterable = cascaderContext.filterable,
inputVal = cascaderContext.inputVal;
var isDisabled = node.disabled || multiple && value.length >= max && max !== 0;
var isFiltering = filterable && inputVal && multiple;
if (isDisabled || isFiltering) return;
if (propsTrigger === trigger) {
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;
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;
if (index !== void 0) {
var newValue = cloneDeep(value);
var res = newValue.splice(index, 1);
var node = treeStore.getNodes(res[0])[0];
var checked = node.setChecked(!node.isChecked());
var resValue = valueType === "single" ? checked : 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
});
}
} else if (isFunction(onRemove)) {
onRemove({
value: value,
node: void 0
});
}
}
var treeNodesEffect = function treeNodesEffect(inputVal, treeStore, setTreeNodes, filter) {
if (!treeStore) return;
var nodes = [];
if (inputVal) {
var filterMethods = function filterMethods(node) {
if (!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