123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
- import { conductCheck } from "rc-tree/es/utils/conductUtil";
- import { toPathKey, toPathKeys } from "../utils/commonUtil";
- import { formatStrategyValues } from "../utils/treeUtil";
- export default function useSelect(multiple, triggerChange, checkedValues, halfCheckedValues, missingCheckedValues, getPathKeyEntities, getValueByKeyPath, showCheckedStrategy) {
- return function (valuePath) {
- if (!multiple) {
- triggerChange(valuePath);
- } else {
- // Prepare conduct required info
- var pathKey = toPathKey(valuePath);
- var checkedPathKeys = toPathKeys(checkedValues);
- var halfCheckedPathKeys = toPathKeys(halfCheckedValues);
- var existInChecked = checkedPathKeys.includes(pathKey);
- var existInMissing = missingCheckedValues.some(function (valueCells) {
- return toPathKey(valueCells) === pathKey;
- });
- // Do update
- var nextCheckedValues = checkedValues;
- var nextMissingValues = missingCheckedValues;
- if (existInMissing && !existInChecked) {
- // Missing value only do filter
- nextMissingValues = missingCheckedValues.filter(function (valueCells) {
- return toPathKey(valueCells) !== pathKey;
- });
- } else {
- // Update checked key first
- var nextRawCheckedKeys = existInChecked ? checkedPathKeys.filter(function (key) {
- return key !== pathKey;
- }) : [].concat(_toConsumableArray(checkedPathKeys), [pathKey]);
- var pathKeyEntities = getPathKeyEntities();
- // Conduction by selected or not
- var checkedKeys;
- if (existInChecked) {
- var _conductCheck = conductCheck(nextRawCheckedKeys, {
- checked: false,
- halfCheckedKeys: halfCheckedPathKeys
- }, pathKeyEntities);
- checkedKeys = _conductCheck.checkedKeys;
- } else {
- var _conductCheck2 = conductCheck(nextRawCheckedKeys, true, pathKeyEntities);
- checkedKeys = _conductCheck2.checkedKeys;
- }
- // Roll up to parent level keys
- var deDuplicatedKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);
- nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);
- }
- triggerChange([].concat(_toConsumableArray(nextMissingValues), _toConsumableArray(nextCheckedValues)));
- }
- };
- }
|