lib.common.js.map 6.63 KB
{"version":3,"file":"lib.common.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\";\n\nconst pattern = {\n  kebab: /-(\\w)/g,\n  styleProp: /:(.*)/,\n\tstyleList: /;(?![^(]*\\))/g,\n} as const;\n\nfunction camelReplace(_substr: string, match: string) {\n  return match ? match.toUpperCase() : \"\";\n}\n\nfunction camelCase(str: string) {\n  return str.replace(pattern.kebab, camelReplace);\n}\n\nfunction parseStyle(style: string) {\n  let styleMap: Record<string, any> = {};\n\n  for (let 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[camelCase(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 */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData;\nfunction mergeData(): VNodeData {\n  let mergeTarget: VNodeData & Record<string, any> = {};\n  let i: number = arguments.length;\n  let prop: string;\n  let event: 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 \"style\":\n        case \"directives\":\n          if (!Array.isArray(mergeTarget[prop])) {\n            mergeTarget[prop] = [];\n          }\n\n          if (prop === \"style\") {\n            let style: any[];\n            if (Array.isArray(arguments[i].style)) {\n              style = arguments[i].style;\n            } else {\n              style = [arguments[i].style];\n            }\n            for (let j = 0; j < style.length; j++) {\n              let s = style[j];\n              if (typeof s === \"string\") {\n                style[j] = parseStyle(s);\n              }\n            }\n            arguments[i].style = style;\n          }\n\n          // Repackaging in an array allows Vue runtime\n          // to merge class/style bindings regardless of type.\n          mergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop]);\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 (!mergeTarget[prop]) {\n            mergeTarget[prop] = {};\n          }\n          for (event of Object.keys(arguments[i][prop] || {})) {\n            // Concat function to array of functions if callback present.\n            if (mergeTarget[prop][event]) {\n              // Insert current iteration data in beginning of merged array.\n              mergeTarget[prop][event] = [].concat(\n                mergeTarget[prop][event],\n                arguments[i][prop][event]\n              );\n            } else {\n              // Straight assign.\n              mergeTarget[prop][event] = arguments[i][prop][event];\n            }\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 (!mergeTarget[prop]) {\n            mergeTarget[prop] = {};\n          }\n          mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] };\n          break;\n        // Reassignment strategy (no merge)\n        case \"slot\":\n        case \"key\":\n        case \"ref\":\n        case \"tag\":\n        case \"show\":\n        case \"keepAlive\":\n        default:\n          if (!mergeTarget[prop]) {\n            mergeTarget[prop] = arguments[i][prop];\n          }\n      }\n    }\n  }\n\n  return mergeTarget;\n}\n\nexport { mergeData };\n"],"names":["pattern","kebab","styleProp","styleList","camelReplace","_substr","match","toUpperCase","camelCase","str","replace","parseStyle","style","styleMap","_a","split","_i","_b","key","val","trim","mergeData","prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","j","s","concat","undefined","_c"],"mappings":"qSAEMA,QAAU,CACdC,MAAO,SACPC,UAAW,QACZC,UAAW,iBAGZ,SAASC,aAAaC,EAAiBC,GACrC,OAAOA,EAAQA,EAAMC,cAAgB,GAGvC,SAASC,UAAUC,GACjB,OAAOA,EAAIC,QAAQV,QAAQC,MAAOG,cAGpC,SAASO,WAAWC,GAGlB,IAFA,IAAIC,EAAgC,OAEtBC,EAAAF,EAAMG,MAAMf,QAAQG,WAApBa,WAAAA,IAAgC,CAAzC,IACCC,gCAACC,OAAKC,QACVD,EAAMA,EAAIE,UAKS,iBAARD,IACTA,EAAMA,EAAIC,QAEZP,EAASL,UAAUU,IAAQC,GAG7B,OAAON,EAST,SAASQ,YAOP,IANA,IAEIC,EACAC,EAHAC,EAA+C,GAC/CC,EAAYC,UAAUC,OAKnBF,KAGL,IAAa,QAAAX,EAAAc,OAAOC,KAAKH,UAAUD,IAAtBT,WAAAA,IACX,OADGM,QAGD,IAAK,QACL,IAAK,QACL,IAAK,aAKH,GAJKQ,MAAMC,QAAQP,EAAYF,MAC7BE,EAAYF,GAAQ,IAGT,UAATA,EAAkB,CACpB,IAAIV,SAEFA,EADEkB,MAAMC,QAAQL,UAAUD,GAAGb,OACrBc,UAAUD,GAAGb,MAEb,CAACc,UAAUD,GAAGb,OAExB,IAAK,IAAIoB,EAAI,EAAGA,EAAIpB,EAAMe,OAAQK,IAAK,CACrC,IAAIC,EAAIrB,EAAMoB,GACG,iBAANC,IACTrB,EAAMoB,GAAKrB,WAAWsB,IAG1BP,UAAUD,GAAGb,MAAQA,EAKvBY,EAAYF,GAAQE,EAAYF,GAAMY,OAAOR,UAAUD,GAAGH,IAC1D,MAEF,IAAK,cACH,IAAKI,UAAUD,GAAGH,GAChB,WAEwBa,IAAtBX,EAAYF,KACdE,EAAYF,GAAQ,IAElBE,EAAYF,KAEdE,EAAYF,IAAS,KAEvBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMF,OACxC,MAMF,IAAK,KACL,IAAK,WACEI,EAAYF,KACfE,EAAYF,GAAQ,IAEtB,IAAc,QAAAc,EAAAR,OAAOC,KAAKH,UAAUD,GAAGH,IAAS,IAAlCL,WAAAA,IAATM,OAECC,EAAYF,GAAMC,GAEpBC,EAAYF,GAAMC,GAAS,GAAGW,OAC5BV,EAAYF,GAAMC,GAClBG,UAAUD,GAAGH,GAAMC,IAIrBC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGlD,MAEF,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACEC,EAAYF,KACfE,EAAYF,GAAQ,IAEtBE,EAAYF,eAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAEF,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACOE,EAAYF,KACfE,EAAYF,GAAQI,UAAUD,GAAGH,IAM3C,OAAOE"}