{"version":3,"file":"row.mjs","sources":["../../../components/row/row.ts"],"sourcesContent":["import { computed, defineComponent, h, provide, reactive, toRef } from 'vue'\r\n\r\nimport { useNameHelper, useProps } from '@vexip-ui/config'\r\nimport { rowProps } from './props'\r\nimport { ROW_STATE } from './symbol'\r\n\r\nimport type { RowGridAlign, RowGridJustify, RowState } from './symbol'\r\n\r\nconst justifyList = Object.freeze<RowGridJustify[]>([\r\n  'start',\r\n  'end',\r\n  'center',\r\n  'space-around',\r\n  'space-between',\r\n  'space-evenly',\r\n])\r\nconst alignList = Object.freeze<RowGridAlign[]>(['top', 'middle', 'bottom', 'stretch'])\r\n\r\nexport default defineComponent({\r\n  name: 'Row',\r\n  props: rowProps,\r\n  setup(_props, { slots }) {\r\n    const props = useProps('row', _props, {\r\n      tag: 'div',\r\n      gap: 0,\r\n      justify: {\r\n        default: 'start',\r\n        validator: value => justifyList.includes(value),\r\n      },\r\n      align: {\r\n        default: 'top',\r\n        validator: value => alignList.includes(value),\r\n      },\r\n      columnFlex: false,\r\n    })\r\n\r\n    const nh = useNameHelper('row')\r\n\r\n    const className = computed(() => {\r\n      return [\r\n        nh.b(),\r\n        nh.bs('vars'),\r\n        nh.bm(props.justify),\r\n        nh.bm(props.align),\r\n        {\r\n          [nh.bm('inherit')]: props.inherit,\r\n        },\r\n      ]\r\n    })\r\n    const style = computed(() => {\r\n      if (!props.gap) return null\r\n\r\n      if (typeof props.gap === 'number') {\r\n        return {\r\n          [nh.cv('h-gap')]: `${props.gap}px`,\r\n        }\r\n      }\r\n\r\n      if (Array.isArray(props.gap)) {\r\n        const [horizontal, vertical] = props.gap\r\n\r\n        return {\r\n          [nh.cv('h-gap')]: `${horizontal}px`,\r\n          [nh.cv('v-gap')]: `${vertical}px`,\r\n        }\r\n      }\r\n\r\n      return null\r\n    })\r\n    const columnFlex = computed(() => {\r\n      if (props.columnFlex === true) {\r\n        return {\r\n          justify: 'start',\r\n          align: 'top',\r\n        }\r\n      } else if (props.columnFlex) {\r\n        return {\r\n          justify: 'start',\r\n          align: 'top',\r\n          ...props.columnFlex,\r\n        }\r\n      }\r\n\r\n      return false\r\n    })\r\n\r\n    provide(\r\n      ROW_STATE,\r\n      reactive({\r\n        columnFlex,\r\n        gap: toRef(props, 'gap'),\r\n      }) as RowState,\r\n    )\r\n\r\n    return () =>\r\n      h(\r\n        props.tag || 'div',\r\n        {\r\n          class: className.value,\r\n          style: style.value,\r\n        },\r\n        {\r\n          default: () => slots.default && slots.default(),\r\n        },\r\n      )\r\n  },\r\n})\r\n"],"names":["justifyList","alignList","Row","defineComponent","rowProps","_props","slots","props","useProps","value","nh","useNameHelper","className","computed","style","horizontal","vertical","columnFlex","provide","ROW_STATE","reactive","toRef","h"],"mappings":";;;;AAQA,MAAMA,IAAc,OAAO,OAAyB;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GACKC,IAAY,OAAO,OAAuB,CAAC,OAAO,UAAU,UAAU,SAAS,CAAC,GAEtFC,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAQ,EAAE,OAAAC,KAAS;AACjB,UAAAC,IAAQC,EAAS,OAAOH,GAAQ;AAAA,MACpC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW,CAAAI,MAAST,EAAY,SAASS,CAAK;AAAA,MAChD;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW,CAAAA,MAASR,EAAU,SAASQ,CAAK;AAAA,MAC9C;AAAA,MACA,YAAY;AAAA,IAAA,CACb,GAEKC,IAAKC,EAAc,KAAK,GAExBC,IAAYC,EAAS,MAClB;AAAA,MACLH,EAAG,EAAE;AAAA,MACLA,EAAG,GAAG,MAAM;AAAA,MACZA,EAAG,GAAGH,EAAM,OAAO;AAAA,MACnBG,EAAG,GAAGH,EAAM,KAAK;AAAA,MACjB;AAAA,QACE,CAACG,EAAG,GAAG,SAAS,CAAC,GAAGH,EAAM;AAAA,MAAA;AAAA,IAE9B,CACD,GACKO,IAAQD,EAAS,MAAM;AACvB,UAAA,CAACN,EAAM,IAAY,QAAA;AAEnB,UAAA,OAAOA,EAAM,OAAQ;AAChB,eAAA;AAAA,UACL,CAACG,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGH,EAAM,GAAG;AAAA,QAChC;AAGF,UAAI,MAAM,QAAQA,EAAM,GAAG,GAAG;AAC5B,cAAM,CAACQ,GAAYC,CAAQ,IAAIT,EAAM;AAE9B,eAAA;AAAA,UACL,CAACG,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGK,CAAU;AAAA,UAC/B,CAACL,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGM,CAAQ;AAAA,QAC/B;AAAA,MAAA;AAGK,aAAA;AAAA,IAAA,CACR,GACKC,IAAaJ,EAAS,MACtBN,EAAM,eAAe,KAChB;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,IACT,IACSA,EAAM,aACR;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,GAAGA,EAAM;AAAA,IACX,IAGK,EACR;AAED,WAAAW;AAAA,MACEC;AAAA,MACAC,EAAS;AAAA,QACP,YAAAH;AAAA,QACA,KAAKI,EAAMd,GAAO,KAAK;AAAA,MACxB,CAAA;AAAA,IACH,GAEO,MACLe;AAAA,MACEf,EAAM,OAAO;AAAA,MACb;AAAA,QACE,OAAOK,EAAU;AAAA,QACjB,OAAOE,EAAM;AAAA,MACf;AAAA,MACA;AAAA,QACE,SAAS,MAAMR,EAAM,WAAWA,EAAM,QAAQ;AAAA,MAAA;AAAA,IAElD;AAAA,EAAA;AAEN,CAAC;"}