UNPKG

3.21 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/index.js"],"names":["DefaultProvider","props","children","link","Provider","Component","scope","element","attrs","update","vTree","render","refresh","context","$watch","$on","window","angular","remove","createDirective","app","componentName","directive","restrict","createDirectives","components","toDirective","key"],"mappings":";;;;AAAA;;;;AACA;;;;AACA;;;;;;AAEA,MAAMA,kBAAkBC,SAASA,MAAMC,QAAvC;;AAEA,MAAMC,OAAO,CAACC,QAAD,EAAWC,SAAX,KAAyB,CAACC,KAAD,EAAQC,OAAR,EAAiBC,KAAjB,KAA2B;AAC/D,QAAMC,SAASC,SAAS;AACtB,uBAASC,MAAT,CAAgBD,KAAhB,EAAuBH,QAAQ,CAAR,CAAvB;AACD,GAFD;;AAIA,QAAMK,UAAU,CAACC,UAAU,EAAX,EAAeZ,QAAQ,EAAvB,KAA8B;AAC5C,UAAMS,QACJ;AAAC,cAAD;AAAcG,aAAd;AACE,oCAAC,SAAD,EAAeZ,KAAf;AADF,KADF;;AAMAQ,WAAOC,KAAP;AACD,GARD;;AAUAJ,QAAMQ,MAAN,CAAa,SAAb,EAAwB,MAAMF,QAAQN,MAAMO,OAAd,EAAuBP,MAAML,KAA7B,CAA9B,EAAmE,IAAnE;AACAK,QAAMQ,MAAN,CAAa,OAAb,EAAsB,MAAMF,QAAQN,MAAMO,OAAd,EAAuBP,MAAML,KAA7B,CAA5B,EAAiE,IAAjE;;AAEAK,QAAMS,GAAN,CAAU,UAAV,EAAsB,MAAMC,OAAOC,OAAP,CAAeV,OAAf,CAAuBA,OAAvB,EAAgCW,MAAhC,EAA5B;AACD,CAnBD;;AAqBA,MAAMC,kBAAkB,CAACC,GAAD,EAAMC,aAAN,EAAqBjB,QAArB,EAA+BC,SAA/B,KAA6C;AACnE,QAAMiB,YAAY,MAAM;AACtB,WAAO;AACLC,gBAAU,GADL;AAELpB,YAAMA,KAAKC,QAAL,EAAeC,SAAf,CAFD;AAGLC,aAAO;AACLL,eAAO,GADF;AAELY,iBAAS;AAFJ;AAHF,KAAP;AAQD,GATD;;AAWAO,MAAIE,SAAJ,CAAcD,aAAd,EAA6B,CAACC,SAAD,CAA7B;AACD,CAbD;;AAeA;;;;;AAKA,MAAME,mBAAmB,CAACJ,GAAD,EAAMhB,QAAN,EAAgBqB,UAAhB,KAA+B;AACtD,QAAMC,cAAcC,OAAO;AACzB,UAAMN,gBAAiB,QAAOM,GAAI,EAAlC;AACA,UAAMtB,YAAYoB,WAAWE,GAAX,CAAlB;AACAR,oBAAgBC,GAAhB,EAAqBC,aAArB,EAAoCjB,YAAYJ,eAAhD,EAAiEK,SAAjE;AACD,GAJD;;AAMA,SAAO,uBAAQqB,WAAR,EAAqBD,UAArB,CAAP;AACD,CARD;;kBAUeD,gB","file":"index.js","sourcesContent":["import mapKeys from 'lodash/fp/mapKeys';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst DefaultProvider = props => props.children;\n\nconst link = (Provider, Component) => (scope, element, attrs) => {\n const update = vTree => {\n ReactDOM.render(vTree, element[0]);\n };\n\n const refresh = (context = {}, props = {}) => {\n const vTree = (\n <Provider {...context}>\n <Component {...props} />\n </Provider>\n );\n\n update(vTree);\n };\n\n scope.$watch('context', () => refresh(scope.context, scope.props), true);\n scope.$watch('props', () => refresh(scope.context, scope.props), true);\n\n scope.$on('$destroy', () => window.angular.element(element).remove());\n};\n\nconst createDirective = (app, componentName, Provider, Component) => {\n const directive = () => {\n return {\n restrict: 'E',\n link: link(Provider, Component),\n scope: {\n props: '=',\n context: '='\n }\n };\n };\n\n app.directive(componentName, [directive]);\n};\n\n/**\n * examples :\n * <slide value=\"slideContent\"></slide>\n * <module-bubble value=\"modData()\"></module-bubble>\n */\nconst createDirectives = (app, Provider, components) => {\n const toDirective = key => {\n const componentName = `coorp${key}`;\n const Component = components[key];\n createDirective(app, componentName, Provider || DefaultProvider, Component);\n };\n\n return mapKeys(toDirective, components);\n};\n\nexport default createDirectives;\n"]}
\No newline at end of file