/* eslint-disable @typescript-eslint/no-explicit-any */ import { get } from 'lodash-es'; import { TailwindPlayCommonParams } from '@/TailwindPlay/Fields/types.js'; import { noNulls } from '@/client/useHusar.js'; export const extractHusarData = ({ f, prefix = '', dataPrefix = '', index, ...commonParams }: TailwindPlayCommonParams) => { const { modelData } = commonParams; const key = `${prefix}${f.name}${typeof index === 'number' ? `[${index}]` : ''}`; const overrideKey = `${dataPrefix}${f.name}`; const v = get(modelData, key) as T; const { component, rules, ...attrs } = f.visual || {}; const renderAttrs = noNulls(attrs); const dataFieldName = key.replace(/\[\d+\]/g, '').replace(/^\./, ''); const attributes = { ...renderAttrs, ...commonParams.attributes?.[key]?.({ data: v, attrs: renderAttrs || {} }), 'data-field-name': dataFieldName, component, }; return { key, v, attributes, overrideKey, component, rules, }; };