{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts"],"names":["breakpoints","ALIGNMENT","makeProps","props","prefix","def","alignValidator","str","alignProps","type","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","justify","alignContent","classMap","breakpointClass","className","val","breakpoint","prop","cache","name","functional","tag","dense","noGutters","render","children","cacheKey","String","classList","value","h","data","staticClass","class"],"mappings":"4SAOMA,EAAc,CAAC,KAAM,KAAM,KAAjC,MAEMC,EAAY,CAAC,QAAS,MAA5B,UAEA,SAASC,EAAT,KACE,OAAOF,EAAA,QAAmB,cAExB,OADAG,EAAMC,EAAS,eAAf,IAAkCC,IAClC,IAFF,IAMF,IAAMC,EAAkB,SAAAC,GAAD,MAAc,6CAArC,IACMC,EAAaN,EAAU,SAAS,iBAAO,CAC3CO,KAD2C,OAE3CC,QAF2C,KAG3CC,UAAWL,MAGPM,EAAoB,SAAAL,GAAD,MAAc,uDAAvC,IACMM,EAAeX,EAAU,WAAW,iBAAO,CAC/CO,KAD+C,OAE/CC,QAF+C,KAG/CC,UAAWC,MAGPE,EAAyB,SAAAP,GAAD,MAAc,iEAA5C,IACMQ,EAAoBb,EAAU,gBAAgB,iBAAO,CACzDO,KADyD,OAEzDC,QAFyD,KAGzDC,UAAWG,MAGPE,EAAU,CACdC,MAAOC,OAAA,KADO,GAEdC,QAASD,OAAA,KAFK,GAGdE,aAAcF,OAAA,SAGVG,EAAW,CACfJ,MADe,QAEfE,QAFe,UAGfC,aAAc,iBAGhB,SAASE,EAAT,OACE,IAAIC,EAAYF,EAAhB,GACA,SAAIG,EAAJ,CAGA,KAAU,CAER,IAAMC,EAAaC,EAAA,UAAnB,IACAH,GAAa,IAAJ,OAAT,GAIF,OADAA,GAAa,IAAJ,OAAT,GACOA,EAAP,eAGF,IAAMI,EAAQ,IAAd,IAEe,2BAAW,CACxBC,KADwB,QAExBC,YAFwB,EAGxB1B,MAAO,8CACL2B,IAAK,CACHrB,KADG,OAEHC,QAAS,OAEXqB,MALK,QAMLC,UANK,QAOLf,MAAO,CACLR,KADK,OAELC,QAFK,KAGLC,UAAWL,IAVR,GAAF,IAaHa,QAAS,CACPV,KADO,OAEPC,QAFO,KAGPC,UAAWC,IAhBR,GAAF,IAmBHQ,aAAc,CACZX,KADY,OAEZC,QAFY,KAGZC,UAAWG,IAEVC,GAELkB,OA7BwB,SA6BlB,EA7BkB,GA6BY,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAeC,EAAU,EAAVA,SAEpBC,EAAJ,GACA,IAAK,IAAL,OACEA,GAAYC,OAAQjC,EAApB,IAEF,IAAIkC,EAAYV,EAAA,IAAhB,GAyBA,OAvBA,GAAgB,iBAGd,EACA,SAHAU,EADc,GAId,EACErB,EAAA,YAAsB,SAAAU,GACpB,IAAMY,EAAiBnC,EAAvB,GACMoB,EAAYD,EAAgBb,EAAMiB,EAAxC,GACA,GAAeW,EAAA,WAInBA,EAAA,SACE,aAAclC,EADD,UAEb,aAAcA,EAFD,OAAf,iCAGYA,EAAV,OAA0BA,EAHb,OAAf,mCAIcA,EAAZ,SAA8BA,EAJjB,SAAf,yCAKoBA,EAAlB,cAAyCA,EAAMiB,cALjD,IAQAO,EAAA,SApBc,GAuBTY,EACLpC,EADM,IAEN,eAAUqC,EAAM,CACdC,YADc,MAEdC,MAAOL,IAJX,O","file":"js/chunk-64ab7b04.e296f454.js","sourcesContent":["import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n"],"sourceRoot":""}