ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
31 lines • 1.61 kB
JavaScript
import { SHOW_CHILD } from './commonUtil';
export function formatStrategyValues(pathKeys, keyPathEntities, showCheckedStrategy) {
const valueSet = new Set(pathKeys);
return pathKeys.filter(key => {
const entity = keyPathEntities[key];
const parent = entity ? entity.parent : null;
const children = entity ? entity.children : null;
return showCheckedStrategy === SHOW_CHILD ? !(children && children.some(child => child.key && valueSet.has(child.key))) : !(parent && !parent.node.disabled && valueSet.has(parent.key));
});
}
export function toPathOptions(valueCells, options, fieldNames) {
let stringMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
var _a;
let currentList = options;
const valueOptions = [];
for (let i = 0; i < valueCells.length; i += 1) {
const valueCell = valueCells[i];
const foundIndex = currentList === null || currentList === void 0 ? void 0 : currentList.findIndex(option => {
const val = option[fieldNames.value];
return stringMode ? String(val) === String(valueCell) : val === valueCell;
});
const foundOption = foundIndex !== -1 ? currentList === null || currentList === void 0 ? void 0 : currentList[foundIndex] : null;
valueOptions.push({
value: (_a = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.value]) !== null && _a !== void 0 ? _a : valueCell,
index: foundIndex,
option: foundOption
});
currentList = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.children];
}
return valueOptions;
}