{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/form/src/utils.ts"],"sourcesContent":["import { computed, ref } from 'vue'\r\nimport { debugWarn } from '@sgui-plus/utils'\r\nimport { castArray } from 'lodash'\r\nimport type { Arrayable } from '@sgui-plus/utils'\r\nimport type { FormItemContext } from './types'\r\nimport type { FormItemProp } from './form-item'\r\n\r\nconst SCOPE = 'ElForm'\r\n\r\nexport function useFormLabelWidth() {\r\n  const potentialLabelWidthArr = ref<number[]>([])\r\n\r\n  const autoLabelWidth = computed(() => {\r\n    if (!potentialLabelWidthArr.value.length) return '0'\r\n    const max = Math.max(...potentialLabelWidthArr.value)\r\n    return max ? `${max}px` : ''\r\n  })\r\n\r\n  function getLabelWidthIndex(width: number) {\r\n    const index = potentialLabelWidthArr.value.indexOf(width)\r\n    if (index === -1 && autoLabelWidth.value === '0') {\r\n      debugWarn(SCOPE, `unexpected width ${width}`)\r\n    }\r\n    return index\r\n  }\r\n\r\n  function registerLabelWidth(val: number, oldVal: number) {\r\n    if (val && oldVal) {\r\n      const index = getLabelWidthIndex(oldVal)\r\n      potentialLabelWidthArr.value.splice(index, 1, val)\r\n    } else if (val) {\r\n      potentialLabelWidthArr.value.push(val)\r\n    }\r\n  }\r\n\r\n  function deregisterLabelWidth(val: number) {\r\n    const index = getLabelWidthIndex(val)\r\n    if (index > -1) {\r\n      potentialLabelWidthArr.value.splice(index, 1)\r\n    }\r\n  }\r\n\r\n  return {\r\n    autoLabelWidth,\r\n    registerLabelWidth,\r\n    deregisterLabelWidth,\r\n  }\r\n}\r\n\r\nexport const filterFields = (\r\n  fields: FormItemContext[],\r\n  props: Arrayable<FormItemProp>\r\n) => {\r\n  const normalized = castArray(props)\r\n  return normalized.length > 0\r\n    ? fields.filter((field) => field.prop && normalized.includes(field.prop))\r\n    : fields\r\n}\r\n"],"names":[],"mappings":";;;;;AAGA,MAAM,KAAK,GAAG,QAAQ,CAAC;AAChB,SAAS,iBAAiB,GAAG;AACpC,EAAE,MAAM,sBAAsB,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AACzC,EAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;AACxC,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM;AAC5C,MAAM,OAAO,GAAG,CAAC;AACjB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAC1D,IAAI,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACrC,IAAI,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,KAAK,KAAK,GAAG,EAAE;AACtD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE;AAC3C,IAAI,IAAI,GAAG,IAAI,MAAM,EAAE;AACvB,MAAM,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACzD,KAAK,MAAM,IAAI,GAAG,EAAE;AACpB,MAAM,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,EAAE,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACrC,IAAI,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACpB,MAAM,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,GAAG;AACH,EAAE,OAAO;AACT,IAAI,cAAc;AAClB,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AACxB,GAAG,CAAC;AACJ,CAAC;AACW,MAAC,YAAY,GAAG,CAAC,MAAM,EAAE,KAAK,KAAK;AAC/C,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACtC,EAAE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAClH;;;;"}