"use strict";
var __webpack_require__ = {};
(()=>{
    __webpack_require__.d = function(exports1, definition) {
        for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
            enumerable: true,
            get: definition[key]
        });
    };
})();
(()=>{
    __webpack_require__.o = function(obj, prop) {
        return Object.prototype.hasOwnProperty.call(obj, prop);
    };
})();
(()=>{
    __webpack_require__.r = function(exports1) {
        if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
            value: 'Module'
        });
        Object.defineProperty(exports1, '__esModule', {
            value: true
        });
    };
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
    getCurrentOptions: ()=>getCurrentOptions,
    defaultFieldNames: ()=>defaultFieldNames
});
const client_namespaceObject = require("@tachybase/utils/client");
const external_lodash_namespaceObject = require("lodash");
const defaultFieldNames = {
    label: 'label',
    value: 'value',
    color: 'color',
    options: 'children'
};
function flatData(data, fieldNames) {
    const newArr = [];
    if (!Array.isArray(data)) return newArr;
    for(let i = 0; i < data.length; i++){
        const children = data[i][fieldNames.options];
        if (Array.isArray(children)) newArr.push(...flatData(children, fieldNames));
        newArr.push({
            ...data[i]
        });
    }
    return newArr;
}
function getCurrentOptions(values, dataSource, fieldNames) {
    const result = flatData(dataSource, fieldNames);
    const arrValues = (0, external_lodash_namespaceObject.castArray)(values).filter((item)=>null != item).map((val)=>(0, client_namespaceObject.isPlainObject)(val) ? val[fieldNames.value] : val);
    function findOptions(options) {
        if (!options) return [];
        const current = [];
        for (const value of arrValues){
            const option = options.find((v)=>v[fieldNames.value] == value) || {
                value,
                label: value ? value.toString() : value
            };
            current.push(option);
        }
        return current;
    }
    return findOptions(result);
}
var __webpack_export_target__ = exports;
for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
    value: true
});
