{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-consistent-prop/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject } from 'vue'\nimport { formItemContextKey, formContextKey } from '@hongluan-ui/tokens'\nimport { useGlobalConfig } from '../use-global-config'\n\nimport type { FormContext, FormItemContext } from '@hongluan-ui/tokens'\nimport type { ComponentSize, ComponentType } from '@hongluan-ui/constants'\n\nexport interface IConsistentProp {\n  size?: ComponentSize\n  disabled?: boolean\n  type?: ComponentType\n  fill?: boolean\n}\n/**\n * Searching order:\n * 1) component self prop value;\n * 2) Group component prop value;\n * 3) FormItem/Form component prop value;\n * 4) ConfigProvider props\n * @returns \\{ size, disabled, type, fill \\}\n */\nfunction useConsistentProp() {\n  const { proxy } = getCurrentInstance()!\n\n  const $props = proxy!.$props as IConsistentProp\n  const $parentProps = proxy!.$parent!.$props as IConsistentProp\n  const $parentOpts = proxy!.$parent!.$options\n\n  const formItem = inject(formItemContextKey, {} as FormItemContext)\n  const form = inject(formContextKey, {} as FormContext)\n\n  const size = computed<ComponentSize>(() => {\n    const configProviderSize = useGlobalConfig('size')\n    return $props.size\n      || $parentOpts.name === 'Group' && $parentProps.size\n      || formItem?.size\n      || configProviderSize.value\n  })\n\n  const disabled = computed(() => {\n    return $props.disabled\n      || $parentOpts.name === 'Group' && $parentProps.disabled\n      || form?.disabled\n      || false\n  })\n\n  const type = computed(() => {\n    return $props.type\n      || $parentOpts.name === 'Group' && $parentProps.type\n  })\n\n  const fill = computed(() => {\n    return $props.fill\n      || form?.fill\n      || $parentOpts.name === 'Group' && $parentProps.fill\n      || false\n  })\n\n  return {\n    size,\n    disabled,\n    type,\n    fill,\n  }\n}\n\nexport { useConsistentProp }\n"],"names":[],"mappings":";;;;;AAGA,SAAS,iBAAiB,GAAG;AAC7B,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,EAAE,CAAC;AACzC,EAAE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9B,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5C,EAAE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAClD,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAC1C,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC9B,IAAI,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AACvD,IAAI,OAAO,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC;AACvJ,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAClC,IAAI,OAAO,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;AACxI,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC9B,IAAI,OAAO,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC;AAC5E,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC9B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC;AAC5H,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,IAAI;AACR,GAAG,CAAC;AACJ;;;;"}