{"version":3,"file":"utils.mjs","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"],"names":["ensureArray"],"mappings":";;;;;AAOA,MAAM,KAAA,GAAQ,QAAA;AAEP,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,sBAAA,GAAyB,GAAA,CAAc,EAAE,CAAA;AAE/C,EAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;AACpC,IAAA,IAAI,CAAC,sBAAA,CAAuB,KAAA,CAAM,MAAA,EAAQ,OAAO,GAAA;AACjD,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,uBAAuB,KAAK,CAAA;AACpD,IAAA,OAAO,GAAA,GAAM,CAAA,EAAG,GAAG,CAAA,EAAA,CAAA,GAAO,EAAA;AAAA,EAC5B,CAAC,CAAA;AAED,EAAA,SAAS,mBAAmB,KAAA,EAAe;AACzC,IAAA,MAAM,KAAA,GAAQ,sBAAA,CAAuB,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AACxD,IAAA,IAAI,KAAA,KAAU,EAAA,IAAM,cAAA,CAAe,KAAA,KAAU,GAAA,EAAK;AAChD,MAAA,SAAA,CAAU,KAAA,EAAO,CAAA,iBAAA,EAAoB,KAAK,CAAA,CAAE,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,SAAS,kBAAA,CAAmB,KAAa,MAAA,EAAgB;AACvD,IAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,MAAA,MAAM,KAAA,GAAQ,mBAAmB,MAAM,CAAA;AACvC,MAAA,sBAAA,CAAuB,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,CAAA,EAAG,GAAG,CAAA;AAAA,IACnD,WAAW,GAAA,EAAK;AACd,MAAA,sBAAA,CAAuB,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,IACvC;AAAA,EACF;AAEA,EAAA,SAAS,qBAAqB,GAAA,EAAa;AACzC,IAAA,MAAM,KAAA,GAAQ,mBAAmB,GAAG,CAAA;AACpC,IAAA,IAAI,QAAQ,EAAA,EAAI;AACd,MAAA,sBAAA,CAAuB,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,CAAC,CAAA;AAAA,IAC9C;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,MAAM,YAAA,GAAe,CAC1B,MAAA,EACA,KAAA,KACG;AACH,EAAA,MAAM,UAAA,GAAaA,SAAA,CAAY,KAAK,CAAA,CAAE,GAAA;AAAA,IAAI,CAAC,SACzC,OAAA,CAAQ,IAAI,IAAI,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,GAAI;AAAA,GACnC;AACA,EAAA,OAAO,UAAA,CAAW,MAAA,GAAS,CAAA,GACvB,MAAA,CAAO,MAAA;AAAA,IACL,CAAC,KAAA,KAAU,KAAA,CAAM,cAAc,UAAA,CAAW,QAAA,CAAS,MAAM,UAAU;AAAA,GACrE,GACA,MAAA;AACN;;;;"}