forked from ngReact/ngReact
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ngReact.min.js
1 lines (1 loc) · 2.09 KB
/
ngReact.min.js
1
(function(n,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("react"),require("angular")):"function"==typeof define&&define.amd?define(["react","angular"],function(e,angular){return n.ngReact=t(e,angular)}):n.ngReact=t(n.React,n.angular)})(this,function(React,angular){"use strict";function n(n,t){if(angular.isFunction(n))return n;if(!n)throw Error("ReactComponent name attribute must be specified");var e;try{e=t.get(n)}catch(r){}if(!e)try{e=n.split(".").reduce(function(n,t){return n[t]},window)}catch(r){}if(!e)throw Error("Cannot find react component "+n);return e}function t(n,t){if(n.wrappedInApply)return n;var e=function(){var e=arguments;return t.$apply(function(){return n.apply(null,e)})};return e.wrappedInApply=!0,e}function e(n,e){return Object.keys(n||{}).reduce(function(r,o){var c=n[o];return r[o]=angular.isFunction(c)?t(c,e):c,r},{})}function r(n,t,e,r){"collection"===n&&angular.isFunction(t.$watchCollection)?e.forEach(function(n){t.$watchCollection(n,r)}):"reference"===n?angular.isFunction(t.$watchGroup)?t.$watchGroup(e,r):e.forEach(function(n){t.$watch(n,r)}):e.forEach(function(n){t.$watch(n,r,!0)})}function o(n,t,e,r,o,c,i){e(function(){var e=React.render(React.createElement(n,t),r[0]);i&&c(e.getDOMNode())(o)})}var c=function(t,c,i){return{restrict:"E",replace:!0,link:function(u,a,f){var p,l=n(f.name,c),d=function(){var n=!0;p&&(n=!1);var r=u.$eval(f.props),c=e(r,u);p=u,o(l,c,t,a,p,i,n)};f.props?r(f.watchDepth,u,[f.props],d):d(),u.$on("$destroy",function(){React.unmountComponentAtNode(a[0])})}}},i=function(t,c,i){return function(u,a,f){var p={restrict:"E",replace:!0,terminal:!0,link:function(f,p,l){var d,m=n(u,c);a=a||Object.keys(m.propTypes||{});var s=function(){var n=!0;d&&(n=!1);var r={};a.forEach(function(n){r[n]=f.$eval(l[n])}),d=f,o(m,e(r,d),t,p,d,i,n)},h=a.map(function(n){return l[n]});r(l.watchDepth,f,h,s),s(),f.$on("$destroy",function(){React.unmountComponentAtNode(p[0])})}};return angular.extend(p,f)}};return angular.module("react",[]).directive("reactComponent",["$timeout","$injector","$compile",c]).factory("reactDirective",["$timeout","$injector","$compile",i])});