@senntyou/mint-ui
Version:
mint-ui extensions
80 lines (79 loc) • 1.99 kB
JavaScript
/* eslint-disable import/prefer-default-export */
/**
* make slots for picker
* @param items
* @param divider
* @param firstValue
* @param secondValue
* @returns {*}
*/
export var makePickerSlots = function makePickerSlots(_ref) {
var items = _ref.items,
divider = _ref.divider,
firstValue = _ref.firstValue,
secondValue = _ref.secondValue;
var slots = [];
var valuesCollection = [];
var initResult = [];
if (!items || !items.length) return {
slots: slots,
valuesCollection: valuesCollection,
initResult: initResult
};
var firstValues = items.map(function (i) {
return i.value;
});
slots.push({
flex: 1,
values: firstValues
});
valuesCollection.push(firstValues);
initResult.push(firstValues[0]);
var secondItems = firstValue ? items.find(function (i) {
return i.value === firstValue;
}).children : items[0].children;
if (!secondItems || !secondItems.length) return {
slots: slots,
valuesCollection: valuesCollection,
initResult: initResult
};
if (divider) slots.push({
divider: true,
content: '-'
});
var secondValues = secondItems.map(function (i) {
return i.value;
});
slots.push({
flex: 1,
values: secondValues
});
valuesCollection.push(secondValues);
initResult.push(secondValues[0]);
var thirdItems = secondValue ? secondItems.find(function (i) {
return i.value === secondValue;
}).children : secondItems[0].children;
if (!thirdItems || !thirdItems.length) return {
slots: slots,
valuesCollection: valuesCollection,
initResult: initResult
};
if (divider) slots.push({
divider: true,
content: '-'
});
var thirdValues = thirdItems.map(function (i) {
return i.value;
});
slots.push({
flex: 1,
values: thirdValues
});
valuesCollection.push(thirdValues);
initResult.push(thirdValues[0]);
return {
slots: slots,
valuesCollection: valuesCollection,
initResult: initResult
};
};