UNPKG

3.92 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/createHOC.js"],"names":["defaultStrategy","parent","child","normalizeProps","props","Array","isArray","obj","forEach","key","Object","assign","createHOC","Component","options","renderOptions","hoc","mixins","name","render","keys","strategy","config","optionMergeStrategies","push","created","$createElement","$parent","curried","createHOCc"],"mappings":";;;;;;;AASA;;;;AACA;;AACA;;;;;;AAEA,IAAMA,kBAAkB,SAAlBA,eAAkB,CAACC,MAAD,EAASC,KAAT;AAAA,SAAmBA,KAAnB;AAAA,CAAxB;;AAEA,IAAMC,iBAAiB,SAAjBA,cAAiB,CAACC,KAAD,EAA0C;AAC/D,MAAI,CAACA,KAAL,EAAW;AACT,WAAO,EAAP;AACD;AACD,MAAIC,MAAMC,OAAN,CAAcF,KAAd,CAAJ,EAAyB;AACvB,QAAMG,MAAM,EAAZ;AACAH,UAAMI,OAAN,CAAc,UAACC,GAAD,EAAS;AACrB,UAAI,OAAOA,GAAP,KAAe,QAAnB,EAA4B;AAC1BF,YAAIE,GAAJ,IAAW,EAAX;AACD;AACF,KAJD;AAKA,WAAOF,GAAP;AACD;AACD,SAAOG,OAAOC,MAAP,CAAc,EAAd,EAAkBP,KAAlB,CAAP;AACD,CAdD;;AAgBO,IAAMQ,gCAAuB,SAAvBA,SAAuB,CAACC,SAAD,EAAYC,OAAZ,EAAqBC,aAArB,EAAuC;AACzE,MAAMC,MAAY;AAChBZ,WAAOD,eAAgB,OAAOU,SAAP,KAAqB,UAAtB,GAClBA,UAAUC,OAAV,CAAkBV,KADA,GAElBS,UAAUT,KAFP,CADS;AAIhBa,YAAQ,EAJQ;AAKhBC,WAASL,UAAUK,IAAV,IAAkB,WAA3B,SALgB;AAMhBC,YAAQ,qCAAgBJ,aAAhB;AANQ,GAAlB;AAQA,MAAID,OAAJ,EAAY;AACVJ,WAAOU,IAAP,CAAYN,OAAZ,EAAqBN,OAArB,CAA6B,UAACC,GAAD,EAAS;AACpC,UAAMP,QAAQY,WAAWA,QAAQL,GAAR,CAAzB;AACA,UAAMR,SAASe,IAAIP,GAAJ,CAAf;AACA,UAAMY,WAAqB,cAAIC,MAAJ,CAAWC,qBAAX,CAAiCd,GAAjC,KAAyCT,eAApE;;AAEA,UAAIS,QAAQ,OAAZ,EAAoB;;AAElB;AACAO,YAAIP,GAAJ,IAAWY,SAASpB,MAAT,EAAiBE,eAAeD,KAAf,CAAjB,CAAX;AACD,OAJD,MAIK;AACHc,YAAIP,GAAJ,IAAWY,SAASpB,MAAT,EAAiBC,KAAjB,CAAX;AACD;AACF,KAZD;AAaD;;AAEDc,MAAIC,MAAJ,IAAcD,IAAIC,MAAJ,CAAWO,IAAX,CAAgB;AAC5BC,WAD4B,qBACnB;AACP,WAAKC,cAAL,GAAsB,KAAKC,OAAL,CAAaD,cAAnC;AACD;AAH2B,GAAhB,CAAd;;AAMA,MAAIV,IAAIG,MAAJ,IAAcH,IAAIG,MAAJ,CAAWS,OAA7B,EAAqC;AACnCZ,QAAIG,MAAJ,GAAaH,IAAIG,MAAJ,CAAWN,SAAX,CAAb;AACD;;AAED,SAAOG,GAAP;AACD,CApCM;;AAsCA,IAAMa,kCAAyB,uBAAQ,CAAR,EAAW,UAC/Cf,OAD+C,EAE/CC,aAF+C,EAG/CF,SAH+C,EAI5C;AACH,SAAOD,UAAUC,SAAV,EAAqBC,OAArB,EAA8BC,aAA9B,CAAP;AACD,CANqC,CAA/B;;kBAQQH,S","file":"createHOC.js","sourcesContent":["// @flow\nimport type {\n Ctor,\n CreateRenderFnOptions,\n CreateHOCOptions,\n CreateHOC,\n CreateHOCc,\n} from './annotations';\n\nimport courier from './courier';\nimport {createRenderFnc} from './createRenderFn';\nimport Vue from 'vue';\n\nconst defaultStrategy = (parent, child) => child;\n\nconst normalizeProps = (props: Object | Array<string> | void) => {\n if (!props){\n return {};\n }\n if (Array.isArray(props)){\n const obj = {};\n props.forEach((key) => {\n if (typeof key === 'string'){\n obj[key] = {};\n }\n });\n return obj;\n }\n return Object.assign({}, props);\n};\n\nexport const createHOC: CreateHOC = (Component, options, renderOptions) => {\n const hoc: Ctor = {\n props: normalizeProps((typeof Component === 'function')\n ? Component.options.props\n : Component.props),\n mixins: [],\n name: `${Component.name || 'Anonymous'}HOC`,\n render: createRenderFnc(renderOptions),\n };\n if (options){\n Object.keys(options).forEach((key) => {\n const child = options && options[key];\n const parent = hoc[key];\n const strategy: Function = Vue.config.optionMergeStrategies[key] || defaultStrategy;\n\n if (key === 'props'){\n\n // $FlowFixMe\n hoc[key] = strategy(parent, normalizeProps(child));\n }else{\n hoc[key] = strategy(parent, child);\n }\n });\n }\n\n hoc.mixins && hoc.mixins.push({\n created(){\n this.$createElement = this.$parent.$createElement;\n }\n });\n\n if (hoc.render && hoc.render.curried){\n hoc.render = hoc.render(Component);\n }\n\n return hoc;\n};\n\nexport const createHOCc: CreateHOCc = courier(3, (\n options: CreateHOCOptions,\n renderOptions: CreateRenderFnOptions,\n Component: Ctor\n) => {\n return createHOC(Component, options, renderOptions);\n});\n\nexport default createHOC;\n"]}
\No newline at end of file