{"version":3,"file":"utils.mjs","names":[],"sources":["../../../../../../packages/components/form/src/utils.ts"],"sourcesContent":["import { computed, ref } from 'vue'\nimport { debugWarn, ensureArray, isArray } from '@element-plus/utils'\n\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormItemContext } from './types'\nimport type { FormItemProp } from './form-item'\n\nconst SCOPE = 'ElForm'\n\nexport function useFormLabelWidth() {\n  const potentialLabelWidthArr = ref<number[]>([])\n\n  const autoLabelWidth = computed(() => {\n    if (!potentialLabelWidthArr.value.length) return '0'\n    const max = Math.max(...potentialLabelWidthArr.value)\n    return max ? `${max}px` : ''\n  })\n\n  function getLabelWidthIndex(width: number) {\n    const index = potentialLabelWidthArr.value.indexOf(width)\n    if (index === -1 && autoLabelWidth.value === '0') {\n      debugWarn(SCOPE, `unexpected width ${width}`)\n    }\n    return index\n  }\n\n  function registerLabelWidth(val: number, oldVal: number) {\n    if (val && oldVal) {\n      const index = getLabelWidthIndex(oldVal)\n      potentialLabelWidthArr.value.splice(index, 1, val)\n    } else if (val) {\n      potentialLabelWidthArr.value.push(val)\n    }\n  }\n\n  function deregisterLabelWidth(val: number) {\n    const index = getLabelWidthIndex(val)\n    if (index > -1) {\n      potentialLabelWidthArr.value.splice(index, 1)\n    }\n  }\n\n  return {\n    autoLabelWidth,\n    registerLabelWidth,\n    deregisterLabelWidth,\n  }\n}\n\nexport const filterFields = (\n  fields: FormItemContext[],\n  props: Arrayable<FormItemProp>\n) => {\n  const normalized = ensureArray(props).map((prop) =>\n    isArray(prop) ? prop.join('.') : prop\n  )\n  return normalized.length > 0\n    ? fields.filter(\n        (field) => field.propString && normalized.includes(field.propString)\n      )\n    : fields\n}\n"],"mappings":";;;;;;AAOA,MAAM,QAAQ;AAEd,SAAgB,oBAAoB;CAClC,MAAM,yBAAyB,IAAc,EAAE,CAAC;CAEhD,MAAM,iBAAiB,eAAe;AACpC,MAAI,CAAC,uBAAuB,MAAM,OAAQ,QAAO;EACjD,MAAM,MAAM,KAAK,IAAI,GAAG,uBAAuB,MAAM;AACrD,SAAO,MAAM,GAAG,IAAI,MAAM;GAC1B;CAEF,SAAS,mBAAmB,OAAe;EACzC,MAAM,QAAQ,uBAAuB,MAAM,QAAQ,MAAM;AACzD,MAAI,UAAU,MAAM,eAAe,UAAU,IAC3C,WAAU,OAAO,oBAAoB,QAAQ;AAE/C,SAAO;;CAGT,SAAS,mBAAmB,KAAa,QAAgB;AACvD,MAAI,OAAO,QAAQ;GACjB,MAAM,QAAQ,mBAAmB,OAAO;AACxC,0BAAuB,MAAM,OAAO,OAAO,GAAG,IAAI;aACzC,IACT,wBAAuB,MAAM,KAAK,IAAI;;CAI1C,SAAS,qBAAqB,KAAa;EACzC,MAAM,QAAQ,mBAAmB,IAAI;AACrC,MAAI,QAAQ,GACV,wBAAuB,MAAM,OAAO,OAAO,EAAE;;AAIjD,QAAO;EACL;EACA;EACA;EACD;;AAGH,MAAa,gBACX,QACA,UACG;CACH,MAAM,aAAa,YAAY,MAAM,CAAC,KAAK,SACzC,QAAQ,KAAK,GAAG,KAAK,KAAK,IAAI,GAAG,KAClC;AACD,QAAO,WAAW,SAAS,IACvB,OAAO,QACJ,UAAU,MAAM,cAAc,WAAW,SAAS,MAAM,WAAW,CACrE,GACD"}