"use strict";define("compUtils/core/compFactory",["react","lodash","loggingUtils","utils"],function(e,t,n,i){function r(i){var r=p[i];if(!r){var h=t.get(s,[i,"def"]);if(!h)return void n.log.error("Component not implemented: ["+i+"]");var u=e.createClass({mixins:a[i].concat([h])});if(c[i]=u,r=e.createFactory(u),d[i]=r,t.get(s,[i,"isAPIComp"])){var m=o(i,u);p[i]=e.createFactory(m)}else p[i]=r}}var o,s={},a={},p={},d={},c={};return i.sessionFreezer.freeze(s),i.sessionFreezer.freeze(a),i.sessionFreezer.freeze(p),i.sessionFreezer.freeze(d),i.sessionFreezer.freeze(c),{getCompClass:function(e,t){return r(e),t?d[e]:p[e]},getCompReactClass:function(e){return this.getCompClass(e),c[e]},invalidate:function(e){delete p[e]},extend:function(e,i){s.hasOwnProperty(e)?a[e]=t.union(a[e].concat(i)):n.log.error("Trying to extend component ["+e+"] but the component is not defined")},register:function(e,t,n){return s[e]={def:t,isAPIComp:n},a[e]=[],this},registerMobxObserver:function(e){return o=e,this},keys:function(){return t.keys(s)}}}),define("compUtils/core/mobxObserverWrapper",["lodash","react","mobx-react","utils","coreUtils","compUtils/core/compFactory","santaProps"],function(e,t,n,i,r,o,s){function a(e,t){var n=e.getRootIdsWhichShouldBeRendered();return i.componentUtils.shouldBeRendered(n,t)}function p(e,t,n,i){h(e,t,n,i)}function d(e,t,n){h(e,[],t,n)}function c(e){return e&&(e.children||e.components)}function h(e,t,n,i){if(i&&t.length>0){var r=e.getSiteAspect("actionsAspect"),o=e.getSiteAspect("behaviorsAspect");r.registerBehaviors(i,n,t),o.setBehaviorsForActions(o.convertBehaviors(t,i),n,i)}}function u(e,t){e.registerReLayoutPending(t)}function m(e){e.reLayoutIfPending&&this.callAfterRenderDone(e.reLayoutIfPending)}function l(t,n){var r=e.get(t,["mobxObserverWrapperProps","activeModes",n.rootId]),o=e.get(n,["mobxObserverWrapperProps","activeModes",n.rootId]);return i.modes.getModeChanges(r,o)}function g(t,n,i,r){var o={};if(t.id===n)o.visibility="hidden",P(t.type)&&(o.width=i.getSiteWidth(),a(r,n)||(o.display="none"));else{var s=i.isPageLandingPage(i.getPrimaryPageId())&&"masterPage"===n,p=e.includes(U,t.componentType);s&&(p?r.isExperimentOpen("sv_partialReLayout")&&(o={top:0}):o={display:"none"})}return o}function f(t){var n=t?t.get():null;return e.omitBy(n,function(t,n){return e.isNil(t)||e.isUndefined(t)||"compBehaviors"===n&&e.isEmpty(t)})}function v(e){return"SITE_PAGES"===e}function P(t){return e.includes(["Page","Document"],t)}function C(t,n,i){var r=t.mobxObserverWrapperProps.siteAPI,o=r.getSiteData(),s=t.mobxObserverWrapperProps.viewerPrivateServices,p=L.getCompProps(t.structure,r,t.rootId,s);if(p.pageStub=P(t.structure.type)&&!a(r,t.rootId),t.mobxObserverWrapperProps.applyStyleOverrides){var d=g(t.structure,t.rootId,o,r);p.style=e.merge(p.style||{},d)}return v(t.structure.id)&&e.assign(p,t.mobxObserverWrapperProps.propsForSitePages),p.isAffectedByModeChanges=n,i&&(p.className=(p.className||"")+" transitioning-comp"),p}function A(e,t){return"SantaTypeObserver("+(e.displayName||e.name||t.split(".").pop())+")"}function y(e){return e&&o.getCompClass(e)||t.DOM.div}function b(t,n,i,r,o,s,a,p){var d=o&&R(t,r),c=n||d,h=c&&!!a,u=C(s,c,p===B.TRANSITION||h),m=T(t,i,u.pageStub);return u.childrenSet=e.zipObject(e.map(m,"id"),m),u}function I(t,n){var r;return!!e.includes(k,n.componentType)||(r=i.dataUtils.getChildrenData(n,t),e.some(r,I.bind(null,t)))}function T(t,n,r){var o=i.dataUtils.getChildrenData(t,n);return r&&(o=e.filter(o,I.bind(null,n))),o}function O(t){return!e.isEmpty(t)}function x(t,n,i,r){var o=c(n),s=e.map(o,function(e){var n=r&&R(e,i);return t||n});return e.zipObject(e.map(o,"id"),s)}function F(t,n,i){var r={},o=t.childrenSet||[],s=n.childrenSet;return e.forEach(s,function(e,t){!!o[t]||(r[t]=B.ENTER)}),e.forEach(o,function(e,t){!!s[t]?i[t]&&(r[t]=B.TRANSITION):r[t]=B.LEAVE}),r}function R(t,n){var i=[],r=e.get(t,"modes.definitions");if(r&&r.length){var o=e.map(r,"modeId"),s=e.keys(n);i=e.intersection(s,o)}return!e.isEmpty(i)}function S(t,n,i,r,o){if(!r)return{};var s=t.getSiteAspect("windowScrollEvent").getScrollPosition(),a=e.partial(e.isEqual,B.TRANSITION);return e(i).pickBy(a).mapValues(function(t,i){var a=r.shownInFixed[i]?r.absoluteLeft[i]-s.x:r.absoluteLeft[i]-o.getSiteX()-s.x;return{width:r.width[i],height:r.height[i],left:a,top:r.absoluteTop[i]-s.y,rotation:e.get(e.find(c(n.structure),{id:i}),"layout.rotationInDegrees")}}).value()}function E(e,t,n,i,r,o){t.getSiteAspect("actionsAspect").executeAction("modeChange",N.MODE_CHANGED_INIT,{modeChanges:n,componentAnimations:i,transitioningComponentsPrevLayout:r,pageId:e,onComplete:o})}function M(t,n){return e.filter(t,function(e){return n[e.id]})}function W(t,n,i,r){var o=t.childrenSet,s=n.childrenSet,a=M(i,r);return a=e.zipObject(e.map(a,"id"),a),e.assign(o,a,s)}function w(t,n,i,r){return e.values(W(t,n,i,r))}function D(e){e.getSiteAspect("actionsAspect").executeAction("modeChange",N.MODE_CHANGED_EXECUTE)}var U=["wysiwyg.viewer.components.PageGroup","wysiwyg.viewer.components.PagesContainer"],N=i.triggerTypesConsts,L=s.componentPropsBuilder,k=["wysiwyg.viewer.components.tpapps.TPAGluedWidget","wysiwyg.viewer.components.tpapps.TPASection","wysiwyg.viewer.components.tpapps.TPAMultiSection","wysiwyg.viewer.components.tpapps.TPAWidget"],B={ENTER:i.siteConstants.Animations.Modes.AnimationType.ENTER,LEAVE:i.siteConstants.Animations.Modes.AnimationType.LEAVE,TRANSITION:i.siteConstants.Animations.Modes.AnimationType.TRANSITION};return function(i,o){return n.observer(t.createClass({displayName:A(o,i),mixins:[r.renderDoneMixin],propTypes:{structure:t.PropTypes.object,rootId:t.PropTypes.string,key:t.PropTypes.string,ref:t.PropTypes.string,mobxObserverWrapperProps:t.PropTypes.object,applyStyleOverrides:t.PropTypes.bool},componentWillMount:function(){this.transitioningChildrenPrevLayout={},this.currentlyAnimatingChildren={},this.childrenAnimations={},this.prevCompProps={},this.renderedCompProps={},this.childrenToRender={},this.isTrackingComputedProps=!1,this.descendantsFinishedAnimationCount=0,this.modeChangesInPage={},this.componentIsActiveModeRoot=!1},componentWillUpdate:function(e){var t=l(this.props,e);this.modeChangesInPage=t},componentWillUnmount:function(){var e=this.props.mobxObserverWrapperProps.siteAPI;d(e,this.renderedCompProps.rootId,this.renderedCompProps.structure.id),e.cancelReLayoutPending(this.renderedCompProps.structure.id)},componentDidMount:function(){m.call(this,this.props.mobxObserverWrapperProps.siteAPI),this.renderedCompProps.isAffectedByModeChanges&&e.isEmpty(this.childrenToRender)&&this.reportAnimationDone()},componentDidUpdate:function(){var t=this.props.mobxObserverWrapperProps.siteAPI;O(this.childrenAnimations)?(E(this.props.rootId,t,this.modeChangesInPage,this.childrenAnimations,this.transitioningChildrenPrevLayout,this.handleModeChangeAnimationsFinished),D(t),this.childrenAnimations={},this.transitioningChildrenPrevLayout={}):this.renderedCompProps.isAffectedByModeChanges&&e.isEmpty(this.childrenToRender)&&this.reportAnimationDone(),m.call(this,t)},assignComputedProps:function(t){var n=f(t.computedProps);this.isTrackingComputedProps=!!t.computedProps;var i=e.omit(t,["computedProps","getObservableUpdateIndex","getLastFullRenderUpdateIndex"]);return n&&t.getObservableUpdateIndex&&t.getLastFullRenderUpdateIndex&&t.getObservableUpdateIndex()>=t.getLastFullRenderUpdateIndex()&&e.assign(i,n),i},updateRenderedCompPropsMap:function(t){var n=this.prevCompProps,i=t.mobxObserverWrapperProps.siteAPI,r=this.currentlyAnimatingChildren,o=!e.isEmpty(this.modeChangesInPage),s=b(t.structure,t.mobxObserverWrapperProps.anyChangeInParentActiveModes,i.getSiteData().isMobileView(),this.modeChangesInPage,o,t,n,t.mobxObserverWrapperProps.compAnimationType);if(s=this.assignComputedProps(s),o){this.componentIsActiveModeRoot=R(t.structure,this.modeChangesInPage);var a=x(s.isAffectedByModeChanges,t.structure,this.modeChangesInPage,o);this.childrenAnimations=F(n,s,a),this.transitioningChildrenPrevLayout=S(i,n,this.childrenAnimations,t.mobxObserverWrapperProps.measureMap,i.getSiteData()),e.assign(r,this.childrenAnimations),this.descendantsFinishedAnimationCount=e.keys(this.childrenAnimations).length,e.isEmpty(this.childrenAnimations)||E(t.rootId,i,this.modeChangesInPage,this.childrenAnimations,this.transitioningChildrenPrevLayout,this.handleModeChangeAnimationsFinished)}O(r)?this.childrenToRender=w(n,s,this.childrenToRender,r):this.childrenToRender=e.values(s.childrenSet),this.renderedCompProps=s,this.prevCompProps=s},compRefFunction:function(e){this.addRefFunction&&this.addRefFunction(e)},reportAnimationDone:function(){this.props.mobxObserverWrapperProps.descendantsFinishedAnimationCallback&&this.props.mobxObserverWrapperProps.descendantsFinishedAnimationCallback(),this.componentIsActiveModeRoot&&(this.componentIsActiveModeRoot=!1,this.forceUpdate())},allDescendantsAnimationsFinished:function(){return 0===this.descendantsFinishedAnimationCount},descendantsFinishedAnimationCallback:function(){this.descendantsFinishedAnimationCount--,!O(this.currentlyAnimatingChildren)&&this.allDescendantsAnimationsFinished()&&this.reportAnimationDone()},getChildProps:function(t){var n=e.assign({},this.props.mobxObserverWrapperProps,{anyChangeInParentActiveModes:this.renderedCompProps.isAffectedByModeChanges,compAnimationType:this.childrenAnimations[t.id],descendantsFinishedAnimationCallback:this.descendantsFinishedAnimationCallback});return{structure:t,rootId:this.props.rootId,mobxObserverWrapperProps:n,key:t.id,refInParent:t.id,pageStub:this.props.pageStub||this.renderedCompProps.pageStub}},getCompFinalProps:function(){this.addRefFunction=this.props.mobxObserverWrapperProps.addComponentRef,this.addRefFunction&&(this.addRefFunction=e.partialRight(this.addRefFunction,this.props.structure.id)),this.renderedCompProps.ref=this.compRefFunction;var t=e.assign({},this.renderedCompProps,this.props);return delete t.mobxObserverWrapperProps,t},render:function(){this.updateRenderedCompPropsMap(this.props),p(this.props.mobxObserverWrapperProps.siteAPI,this.renderedCompProps.compBehaviors,this.renderedCompProps.rootId,this.renderedCompProps.structure.id),this.isTrackingComputedProps&&u(this.props.mobxObserverWrapperProps.siteAPI,this.renderedCompProps.structure.id);var n=e.map(this.childrenToRender,function(e){return y(e.componentType)(this.getChildProps(e))}.bind(this)),i=this.getCompFinalProps();return t.createElement(o,i,n)},handleModeChangeAnimationsFinished:function(t){this.currentlyAnimatingChildren=e.omit(this.currentlyAnimatingChildren,e.keys(t)),!O(this.currentlyAnimatingChildren)&&this.allDescendantsAnimationsFinished()&&this.reportAnimationDone()}}))}}),define("compUtils",["compUtils/core/compFactory","compUtils/core/mobxObserverWrapper"],function(e,t){return{compFactory:e,mobxObserverWrapper:t}}); //# sourceMappingURL=compUtils.min.js.map