{"version":3,"file":"space.vue2.mjs","sources":["../../../../../../packages/components/space/src/space.vue"],"sourcesContent":["<script lang=\"tsx\">\n  import type { PropType, CSSProperties } from 'vue'\n  import { defineComponent, computed, Fragment, Comment } from 'vue'\n  import { isNumber } from '../../../utils/is'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { getAllElements } from '../../../utils/vue-utils'\n\n  type SpaceSize = number | 'mini' | 'small' | 'medium' | 'large'\n\n  export default defineComponent({\n    name: getComponentNamespace('Space'),\n    props: {\n      direction: {\n        type: String as PropType<'horizontal' | 'vertical'>,\n        default: 'horizontal'\n      },\n      size: {\n        type: [Number, String] as PropType<number | 'mini' | 'small' | 'medium' | 'large'>,\n        default: 'small'\n      },\n      align: {\n        type: String as PropType<'start' | 'end' | 'center' | 'baseline'>,\n        default: 'center'\n      },\n      fill: {\n        type: Boolean,\n        default: false\n      }\n    },\n    setup(props, { slots }) {\n      const ns = getNamespace('space')\n\n      const cls = computed(() => [\n        ns,\n        `${ns}__${props.direction}`,\n        props.fill && `is-fill`,\n        `${ns}__${props.direction}-${props.align}`\n      ])\n\n      function getMargin(size: SpaceSize) {\n        if (isNumber(size)) {\n          return size\n        }\n        switch (size) {\n          case 'mini':\n            return 4\n          case 'small':\n            return 8\n          case 'medium':\n            return 16\n          case 'large':\n            return 24\n          default:\n            return 8\n        }\n      }\n\n      const getMarginStyle = (isLast: boolean): CSSProperties => {\n        const style: CSSProperties = {}\n        if (isLast) return style\n        const marginRight = `${getMargin(props.size)}px`\n        const marginBottom = `${getMargin(props.size)}px`\n\n        if (props.direction === 'horizontal') {\n          style.marginRight = marginRight\n        }\n        if (props.direction === 'vertical') {\n          style.marginBottom = marginBottom\n        }\n\n        return style\n      }\n\n      return () => {\n        const children = getAllElements(slots.default?.(), true).filter(\n          (item) => item.type !== Comment\n        )\n\n        return (\n          <div class={cls.value}>\n            {children.map((child, index) => {\n              const shouldRenderSplit = slots.split && index > 0\n              return (\n                <Fragment key={`space-item-${index}`}>\n                  {shouldRenderSplit && (\n                    <div class={`${ns}__split`} style={getMarginStyle(false)}>\n                      {slots.split?.()}\n                    </div>\n                  )}\n                  <div class={`${ns}__item`} style={getMarginStyle(index === children.length - 1)}>\n                    {child}\n                  </div>\n                </Fragment>\n              )\n            })}\n          </div>\n        )\n      }\n    }\n  })\n</script>\n"],"names":["name","getComponentNamespace","props","direction","type","String","default","size","Number","align","fill","Boolean","setup","slots","ns","getNamespace","cls","computed","getMargin","isNumber","getMarginStyle","isLast","style","marginRight","marginBottom","children","getAllElements","filter","item","Comment","_createVNode","value","map","child","index","_a","shouldRenderSplit","split","_Fragment","length"],"mappings":"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"}