{"version":3,"file":"Row.mjs","sources":["../../../../../../packages/components/grid/src/Row.tsx"],"sourcesContent":["import type { Breakpoint, ScreenMap } from '@antdv/types';\nimport type { CSSProperties } from 'vue';\nimport type { Gap } from './interface';\nimport { responsiveArray } from '@antdv/constants';\nimport { useFlexGapSupport, useResponsiveObserver } from '@antdv/hooks';\nimport { classNames } from '@antdv/utils';\nimport { computed, defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { useRowStyle } from '../style';\nimport useProvideRow from './context';\nimport { rowProps } from './props';\n\nexport interface rowContextState {\n  gutter?: [number, number]\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ARow',\n  inheritAttrs: false,\n  props: rowProps(),\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction } = useConfigInject('row', props);\n    const [wrapSSR, hashId] = useRowStyle(prefixCls);\n\n    let token: number;\n\n    const responsiveObserve = useResponsiveObserver();\n\n    const screens = ref<ScreenMap>({\n      xs: true,\n      sm: true,\n      md: true,\n      lg: true,\n      xl: true,\n      xxl: true,\n    });\n\n    const curScreens = ref<ScreenMap>({\n      xs: false,\n      sm: false,\n      md: false,\n      lg: false,\n      xl: false,\n      xxl: false,\n    });\n\n    const mergePropsByScreen = (oriProp: 'align' | 'justify') => {\n      return computed(() => {\n        if (typeof props[oriProp] === 'string')\n          return props[oriProp];\n\n        if (typeof props[oriProp] !== 'object')\n          return '';\n\n        for (let i = 0; i < responsiveArray.length; i++) {\n          const breakpoint: Breakpoint = responsiveArray[i];\n          // if do not match, do nothing\n          if (!curScreens.value[breakpoint]) continue;\n          const curVal = props[oriProp][breakpoint];\n          if (curVal !== undefined)\n            return curVal;\n        }\n        return '';\n      });\n    };\n\n    const mergeAlign = mergePropsByScreen('align');\n    const mergeJustify = mergePropsByScreen('justify');\n\n    const supportFlexGap = useFlexGapSupport();\n\n    onMounted(() => {\n      token = responsiveObserve.value.subscribe((screen) => {\n        curScreens.value = screen;\n        const currentGutter = props.gutter || 0;\n        if (\n          (!Array.isArray(currentGutter) && typeof currentGutter === 'object')\n          || (Array.isArray(currentGutter)\n            && (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object'))\n        ) {\n          screens.value = screen;\n        }\n      });\n    });\n\n    onBeforeUnmount(() => {\n      responsiveObserve.value.unsubscribe(token);\n    });\n\n    const getGutter = computed(() => {\n      const results: [Gap, Gap] = [undefined, undefined];\n      const { gutter = 0 } = props;\n      const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n      normalizedGutter.forEach((g, index) => {\n        if (typeof g === 'object') {\n          for (let i = 0; i < responsiveArray.length; i++) {\n            const breakpoint: Breakpoint = responsiveArray[i];\n            if (screens.value[breakpoint] && g[breakpoint] !== undefined) {\n              results[index] = g[breakpoint] as number;\n              break;\n            }\n          }\n        } else {\n          results[index] = g;\n        }\n      });\n      return results;\n    });\n\n    useProvideRow({\n      gutter: getGutter,\n      supportFlexGap,\n      wrap: computed(() => props.wrap),\n    });\n\n    const classes = computed(() =>\n      classNames(\n        prefixCls.value,\n        {\n          [`${prefixCls.value}-no-wrap`]: props.wrap === false,\n          [`${prefixCls.value}-${mergeJustify.value}`]: mergeJustify.value,\n          [`${prefixCls.value}-${mergeAlign.value}`]: mergeAlign.value,\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        },\n        attrs.class,\n        hashId.value,\n      ),\n    );\n\n    const rowStyle = computed(() => {\n      const gt = getGutter.value;\n      // Add gutter related style\n      const style: CSSProperties = {};\n      const horizontalGutter = gt[0] != null && gt[0] > 0 ? `${gt[0] / -2}px` : undefined;\n      const verticalGutter = gt[1] != null && gt[1] > 0 ? `${gt[1] / -2}px` : undefined;\n\n      if (horizontalGutter) {\n        style.marginLeft = horizontalGutter;\n        style.marginRight = horizontalGutter;\n      }\n\n      if (supportFlexGap.value) {\n        // Set gap direct if flex gap support\n        style.rowGap = `${gt[1]}px`;\n      } else if (verticalGutter) {\n        style.marginTop = verticalGutter;\n        style.marginBottom = verticalGutter;\n      }\n      return style;\n    });\n\n    return () =>\n      wrapSSR(\n        <div\n          {...attrs}\n          class={classes.value}\n          style={{ ...rowStyle.value, ...(attrs.style as CSSProperties) }}\n        >\n          {slots.default?.()}\n        </div>,\n      );\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","rowProps","setup","slots","attrs","prefixCls","direction","useConfigInject","wrapSSR","hashId","useRowStyle","token","responsiveObserve","useResponsiveObserver","screens","ref","xs","sm","md","lg","xl","xxl","curScreens","mergePropsByScreen","oriProp","computed","i","responsiveArray","length","breakpoint","value","curVal","undefined","mergeAlign","mergeJustify","supportFlexGap","useFlexGapSupport","onMounted","subscribe","screen","currentGutter","gutter","Array","isArray","onBeforeUnmount","unsubscribe","getGutter","results","normalizedGutter","forEach","g","index","useProvideRow","wrap","classes","classNames","class","rowStyle","gt","style","horizontalGutter","verticalGutter","marginLeft","marginRight","rowGap","marginTop","marginBottom","_createVNode","default"],"mappings":"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"}