{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/form-layout/src/index.ts"],"sourcesContent":["import {\n  provide,\n  inject,\n  InjectionKey,\n  defineComponent,\n  Ref,\n  ref,\n  watch,\n  SetupContext,\n  ExtractPropTypes,\n  PropType\n} from \"vue\";\nimport { h } from \"@formily/vue\";\nimport { stylePrefix } from \"../../__builtins__\";\nimport { useResponsiveFormLayout } from \"./useResponsiveFormLayout\";\nimport { buildProps } from \"element-plus/es/utils/vue/props/runtime\";\n\nexport const formLayoutProps = buildProps({\n  className: {\n    type: String\n  },\n  colon: {\n    type: Boolean,\n    default: true\n  },\n  labelAlign: {\n    type: [String, Array] as PropType<\"right\" | \"left\" | (\"right\" | \"left\")[]>\n  },\n  wrapperAlign: {\n    type: [String, Array] as PropType<\"right\" | \"left\" | (\"right\" | \"left\")[]>\n  },\n  labelWrap: {\n    type: Boolean,\n    default: false\n  },\n  labelWidth: {\n    type: Number\n  },\n  wrapperWidth: {\n    type: Number\n  },\n  wrapperWrap: {\n    type: Boolean,\n    default: false\n  },\n  labelCol: {\n    type: [Number, Array] as PropType<number | number[]>\n  },\n  wrapperCol: {\n    type: [Number, Array] as PropType<number | number[]>\n  },\n  fullness: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: String as PropType<\"small\" | \"default\" | \"large\">,\n    default: \"default\"\n  },\n  layout: {\n    type: [Array, String] as PropType<\n      \"vertical\" | \"horizontal\" | \"inline\" | (\"vertical\" | \"horizontal\" | \"inline\")[]\n    >,\n    default: \"horizontal\"\n  },\n  direction: {\n    type: String as PropType<\"rtl\" | \"ltr\">,\n    default: \"ltr\"\n  },\n  shallow: {\n    type: Boolean,\n    default: true\n  },\n  feedbackLayout: {\n    type: String as PropType<\"loose\" | \"terse\" | \"popover\">\n  },\n  tooltipLayout: {\n    type: String as PropType<\"icon\" | \"text\">\n  },\n  bordered: {\n    type: Boolean,\n    default: true\n  },\n  inset: {\n    type: Boolean,\n    default: false\n  },\n  breakpoints: {\n    type: Array as PropType<number[]>\n  },\n  spaceGap: {\n    type: Number\n  },\n  gridColumnGap: {\n    type: Number\n  },\n  gridRowGap: {\n    type: Number\n  }\n});\n\nexport type FormLayoutProps = ExtractPropTypes<typeof formLayoutProps>;\n\nexport const FormLayoutDeepContext: InjectionKey<Ref<FormLayoutProps>> =\n  Symbol(\"FormLayoutDeepContext\");\n\nexport const FormLayoutShallowContext: InjectionKey<Ref<FormLayoutProps>> = Symbol(\n  \"FormLayoutShallowContext\"\n);\n\nexport const useFormDeepLayout = (): Ref<FormLayoutProps> =>\n  inject(FormLayoutDeepContext, ref({} as FormLayoutProps));\n\nexport const useFormShallowLayout = (): Ref<FormLayoutProps> =>\n  inject(FormLayoutShallowContext, ref({} as FormLayoutProps));\n\nexport const useFormLayout = (): Ref<FormLayoutProps> => {\n  const shallowLayout = useFormShallowLayout();\n  const deepLayout = useFormDeepLayout();\n  const formLayout = ref({\n    ...deepLayout.value,\n    ...shallowLayout.value\n  });\n\n  watch(\n    [shallowLayout, deepLayout],\n    () => {\n      formLayout.value = {\n        ...deepLayout.value,\n        ...shallowLayout.value\n      };\n    },\n    {\n      deep: true\n    }\n  );\n  return formLayout;\n};\n\nexport const FormLayout = defineComponent({\n  name: \"FFormLayout\",\n  inheritAttrs: false,\n  props: formLayoutProps,\n  setup(customProps: any, { slots }: SetupContext) {\n    const { props }: any = useResponsiveFormLayout(customProps as any);\n\n    const deepLayout = useFormDeepLayout();\n    const newDeepLayout = ref({\n      ...deepLayout.value\n    });\n    const shallowProps = ref({});\n    watch(\n      [props, deepLayout],\n      () => {\n        shallowProps.value = props.value.shallow ? props.value : undefined;\n        if (!props.value.shallow) {\n          Object.assign(newDeepLayout.value, props.value);\n        } else {\n          if (props.value.size) {\n            newDeepLayout.value.size = props.value.size;\n          }\n          if (props.value.colon) {\n            newDeepLayout.value.colon = props.value.colon;\n          }\n        }\n      },\n      { deep: true, immediate: true }\n    );\n\n    provide(FormLayoutDeepContext, newDeepLayout);\n    provide(FormLayoutShallowContext, shallowProps as Ref<FormLayoutProps>);\n\n    const formPrefixCls = `${stylePrefix}-form`;\n    return () => {\n      const classNames = {\n        [`${formPrefixCls}-${props?.value.layout}`]: true,\n        [`${formPrefixCls}-rtl`]: props?.value.direction === \"rtl\",\n        [`${formPrefixCls}-${props?.value.size}`]: props?.value.size !== undefined,\n        [`${props?.value.className}`]: props?.value.className !== undefined\n      };\n      return h(\n        \"div\",\n        {\n          ref: \"root\",\n          class: classNames\n        },\n        slots\n      );\n    };\n  }\n});\n\nexport default FormLayout;\n"],"names":[],"mappings":"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"}