{"version":3,"sources":["webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../src/util/mergeData.ts"],"names":["VGrid","name","Vue","extend","functional","props","id","String","tag","type","default","render","h","data","children","staticClass","trim","attrs","classes","Object","keys","filter","key","value","startsWith","length","join","domProps","Grid","fluid","Boolean","mergeData","class","Array","concat","pattern","styleList","styleProp","parseStyle","style","styleMap","s","split","val","camelize","mergeTarget","prop","i","arguments","mergeClasses","mergeStyles","undefined","mergeListeners","target","source","wrapInArray","args","dest","arg","event"],"mappings":"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","file":"js/chunk-7be23e57.bd2b837c.js","sourcesContent":["// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n"],"sourceRoot":""}