/*
YUI 3.10.3 (build 2fb5187)
Copyright 2013 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
if (!__coverage__['build/app-content/app-content.js']) {
__coverage__['build/app-content/app-content.js'] = {"path":"build/app-content/app-content.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0,0],"7":[0,0],"8":[0,0],"9":[0,0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":23},"end":{"line":1,"column":42}}},"2":{"name":"AppContent","line":57,"loc":{"start":{"line":57,"column":0},"end":{"line":57,"column":22}}},"3":{"name":"(anonymous_3)","line":116,"loc":{"start":{"line":116,"column":17},"end":{"line":116,"column":55}}},"4":{"name":"(anonymous_4)","line":196,"loc":{"start":{"line":196,"column":19},"end":{"line":196,"column":45}}},"5":{"name":"(anonymous_5)","line":207,"loc":{"start":{"line":207,"column":66},"end":{"line":207,"column":78}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":234,"column":57}},"2":{"start":{"line":11,"column":0},"end":{"line":11,"column":32}},"3":{"start":{"line":57,"column":0},"end":{"line":59,"column":1}},"4":{"start":{"line":58,"column":4},"end":{"line":58,"column":39}},"5":{"start":{"line":72,"column":0},"end":{"line":72,"column":52}},"6":{"start":{"line":74,"column":0},"end":{"line":221,"column":2}},"7":{"start":{"line":118,"column":8},"end":{"line":118,"column":33}},"8":{"start":{"line":121,"column":8},"end":{"line":124,"column":9}},"9":{"start":{"line":122,"column":12},"end":{"line":122,"column":43}},"10":{"start":{"line":123,"column":12},"end":{"line":123,"column":28}},"11":{"start":{"line":129,"column":8},"end":{"line":129,"column":52}},"12":{"start":{"line":131,"column":8},"end":{"line":135,"column":55}},"13":{"start":{"line":139,"column":8},"end":{"line":139,"column":28}},"14":{"start":{"line":144,"column":8},"end":{"line":148,"column":9}},"15":{"start":{"line":147,"column":12},"end":{"line":147,"column":48}},"16":{"start":{"line":153,"column":8},"end":{"line":170,"column":9}},"17":{"start":{"line":154,"column":12},"end":{"line":154,"column":32}},"18":{"start":{"line":156,"column":12},"end":{"line":156,"column":57}},"19":{"start":{"line":159,"column":12},"end":{"line":160,"column":65}},"20":{"start":{"line":163,"column":12},"end":{"line":163,"column":68}},"21":{"start":{"line":164,"column":12},"end":{"line":164,"column":48}},"22":{"start":{"line":169,"column":12},"end":{"line":169,"column":38}},"23":{"start":{"line":173,"column":8},"end":{"line":173,"column":65}},"24":{"start":{"line":177,"column":8},"end":{"line":177,"column":70}},"25":{"start":{"line":197,"column":8},"end":{"line":199,"column":29}},"26":{"start":{"line":202,"column":8},"end":{"line":202,"column":58}},"27":{"start":{"line":202,"column":42},"end":{"line":202,"column":56}},"28":{"start":{"line":204,"column":8},"end":{"line":210,"column":9}},"29":{"start":{"line":207,"column":12},"end":{"line":209,"column":15}},"30":{"start":{"line":208,"column":16},"end":{"line":208,"column":42}},"31":{"start":{"line":212,"column":8},"end":{"line":212,"column":39}},"32":{"start":{"line":215,"column":8},"end":{"line":217,"column":9}},"33":{"start":{"line":216,"column":12},"end":{"line":216,"column":38}},"34":{"start":{"line":219,"column":8},"end":{"line":219,"column":15}},"35":{"start":{"line":224,"column":0},"end":{"line":224,"column":63}},"36":{"start":{"line":227,"column":0},"end":{"line":227,"column":47}},"37":{"start":{"line":230,"column":0},"end":{"line":230,"column":27}},"38":{"start":{"line":231,"column":0},"end":{"line":231,"column":32}}},"branchMap":{"1":{"line":121,"type":"if","locations":[{"start":{"line":121,"column":8},"end":{"line":121,"column":8}},{"start":{"line":121,"column":8},"end":{"line":121,"column":8}}]},"2":{"line":131,"type":"binary-expr","locations":[{"start":{"line":131,"column":25},"end":{"line":131,"column":37}},{"start":{"line":131,"column":41},"end":{"line":131,"column":43}}]},"3":{"line":132,"type":"cond-expr","locations":[{"start":{"line":132,"column":52},"end":{"line":132,"column":56}},{"start":{"line":132,"column":59},"end":{"line":132,"column":68}}]},"4":{"line":133,"type":"cond-expr","locations":[{"start":{"line":133,"column":52},"end":{"line":133,"column":63}},{"start":{"line":133,"column":66},"end":{"line":133,"column":68}}]},"5":{"line":144,"type":"if","locations":[{"start":{"line":144,"column":8},"end":{"line":144,"column":8}},{"start":{"line":144,"column":8},"end":{"line":144,"column":8}}]},"6":{"line":144,"type":"binary-expr","locations":[{"start":{"line":144,"column":12},"end":{"line":144,"column":19}},{"start":{"line":144,"column":23},"end":{"line":144,"column":43}},{"start":{"line":145,"column":16},"end":{"line":145,"column":54}}]},"7":{"line":153,"type":"if","locations":[{"start":{"line":153,"column":8},"end":{"line":153,"column":8}},{"start":{"line":153,"column":8},"end":{"line":153,"column":8}}]},"8":{"line":153,"type":"binary-expr","locations":[{"start":{"line":153,"column":12},"end":{"line":153,"column":19}},{"start":{"line":153,"column":23},"end":{"line":153,"column":52}}]},"9":{"line":156,"type":"binary-expr","locations":[{"start":{"line":156,"column":20},"end":{"line":156,"column":28}},{"start":{"line":156,"column":32},"end":{"line":156,"column":45}},{"start":{"line":156,"column":50},"end":{"line":156,"column":56}}]},"10":{"line":159,"type":"cond-expr","locations":[{"start":{"line":160,"column":20},"end":{"line":160,"column":57}},{"start":{"line":160,"column":60},"end":{"line":160,"column":64}}]},"11":{"line":202,"type":"if","locations":[{"start":{"line":202,"column":8},"end":{"line":202,"column":8}},{"start":{"line":202,"column":8},"end":{"line":202,"column":8}}]},"12":{"line":202,"type":"binary-expr","locations":[{"start":{"line":202,"column":14},"end":{"line":202,"column":21}},{"start":{"line":202,"column":25},"end":{"line":202,"column":37}}]},"13":{"line":204,"type":"if","locations":[{"start":{"line":204,"column":8},"end":{"line":204,"column":8}},{"start":{"line":204,"column":8},"end":{"line":204,"column":8}}]},"14":{"line":204,"type":"binary-expr","locations":[{"start":{"line":204,"column":12},"end":{"line":204,"column":25}},{"start":{"line":204,"column":29},"end":{"line":204,"column":32}}]},"15":{"line":215,"type":"if","locations":[{"start":{"line":215,"column":8},"end":{"line":215,"column":8}},{"start":{"line":215,"column":8},"end":{"line":215,"column":8}}]}},"code":["(function () { YUI.add('app-content', function (Y, NAME) {","","/**","`Y.App` extension that provides pjax-style content fetching and handling.","","@module app","@submodule app-content","@since 3.7.0","**/","","var PjaxContent = Y.PjaxContent;","","/**","`Y.App` extension that provides pjax-style content fetching and handling.","","This makes it easy to fetch server rendered content for URLs using Ajax. The","HTML content returned from the server will be view-ified and set as the app's","main content, making it seamless to use a mixture of server and client rendered","views.","","When the `\"app-content\"` module is used, it will automatically mix itself into","`Y.App`, and it provides three main features:",""," - **`Y.App.Content.route`**: A stack of middleware which forms a pjax-style"," content route.",""," - **`loadContent()`**: Route middleware which load content from a server. This"," makes an Ajax request for the requested URL, parses the returned content and"," puts it on the route's response object.",""," - **`showContent()`**: Method which provides an easy way to view-ify HTML"," content which should be shown as an app's active/visible view.","","The following is an example of how these features can be used:",""," // Creates a new app and registers the `\"post\"` view."," var app = new Y.App({"," views: {"," post: {type: Y.PostView}"," }"," });",""," // Uses a simple server rendered content route for the About page."," app.route('/about/', Y.App.Content.route);",""," // Uses the `loadContent()` middleware to fetch the contents of the post"," // from the server and shows that content in a `\"post\"` view."," app.route('/posts/:id/', 'loadContent', function (req, res, next) {"," this.showContent(res.content.node, {view: 'post'});"," });","","@class App.Content","@uses PjaxContent","@extensionfor App","@since 3.7.0","**/","function AppContent() {"," PjaxContent.apply(this, arguments);","}","","/**","A stack of middleware which forms a pjax-style content route.","","This route will load the rendered HTML content from the server, then create and","show a new view using those contents.","","@property route","@type Array","@static","@since 3.7.0","**/","AppContent.route = ['loadContent', '_contentRoute'];","","AppContent.prototype = {"," // -- Public Methods -------------------------------------------------------",""," /**"," Sets this app's `activeView` attribute using the specified `content`.",""," This provides an easy way to view-ify HTML content which should be shown as"," this app's active/visible view. This method will determine the appropriate"," view `container` node based on the specified `content`. By default, a new"," `Y.View` instance will be created unless `options.view` is specified.",""," Under the hood, this method calls the `showView()` method, so refer to its"," docs for more information.",""," @method showContent"," @param {HTMLElement|Node|String} content The content to show, it may be"," provided as a selector string, a DOM element, or a `Y.Node` instance."," @param {Object} [options] Optional objects containing any of the following"," properties in addition to any `showView()` options:",""," @param {Object|String} [options.view] The name of a view defined in this"," app's `views`, or an object with the following properties:",""," @param {String} options.view.name The name of a view defined in this"," app's `views`."," @param {Object} [options.view.config] Optional configuration to use when"," creating the new view instance. This config object can also be used"," to update an existing or preserved view's attributes when"," `options.update` is `true`. **Note:** If a `container` is specified,"," it will be overridden by the `content` specified in the first"," argument.",""," @param {Function} [callback] Optional callback function to call after the"," new `activeView` is ready to use. **Note:** this will override"," `options.callback` and it can be specified as either the second or third"," argument. The function will be passed the following:",""," @param {View} callback.view A reference to the new `activeView`.",""," @since 3.7.0"," @see App.showView()"," **/"," showContent: function (content, options, callback) {"," // Makes sure we have a node instance, and will query selector strings."," content = Y.one(content);",""," // Support the callback function being either the second or third arg."," if (typeof options === 'function') {"," options = {callback: options};"," callback = null;"," }",""," // Mix in default option to *not* render the view because presumably we"," // have pre-rendered content here. This also creates a copy so we can"," // modify the object."," options = Y.merge({render: false}, options);",""," var view = options.view || '',"," viewName = typeof view === 'string' ? view : view.name,"," viewConfig = typeof view !== 'string' ? view.config : {},"," viewInfo = this.getViewInfo(viewName),"," container, template, type, ViewConstructor;",""," // Remove `view` from the `options` which will be passed along to the"," // `showView()` method."," delete options.view;",""," // When the specified `content` is a document fragment, we want to see"," // if it only contains a single node, and use that as the content. This"," // checks `childNodes` which will include text nodes."," if (content && content.isFragment() &&"," content.get('childNodes').size() === 1) {",""," content = content.get('firstChild');"," }",""," // When the `content` is an element node (`nodeType` 1), we can use it"," // as-is for the `container`. Otherwise, we'll construct a new container"," // based on the `options.view`'s `containerTemplate`."," if (content && content.get('nodeType') === 1) {"," container = content;"," } else {"," type = (viewInfo && viewInfo.type) || Y.View;",""," // Looks for a namespaced constructor function on `Y`."," ViewConstructor = typeof type === 'string' ?"," Y.Object.getValue(Y, type.split('.')) : type;",""," // Find the correct node template for the view."," template = ViewConstructor.prototype.containerTemplate;"," container = Y.Node.create(template);",""," // Append the document fragment to the newly created `container`"," // node. This is the worst case where we have to create a wrapper"," // node around the `content`."," container.append(content);"," }",""," // Makes sure the view is created using _our_ `container` node."," viewConfig = Y.merge(viewConfig, {container: container});",""," // Finally switch to the new `activeView`. We want to make sure `view`"," // is a string if it's falsy, that way a new view will be created."," return this.showView(viewName, viewConfig, options, callback);"," },",""," // -- Protected Methods ----------------------------------------------------",""," /**"," Provides a default content route which will show a server rendered view.",""," **Note:** This route callback assumes that it's called after the"," `loadContent()` middleware.",""," @method _contentRoute"," @param {Object} req Request object."," @param {Object} res Response Object."," @param {Function} next Function to pass control to the next route callback."," @protected"," @since 3.7.0"," @see Y.App.Content.route"," **/"," _contentRoute: function (req, res, next) {"," var content = res.content,"," doc = Y.config.doc,"," activeViewHandle;",""," // We must have some content to work with."," if (!(content && content.node)) { return next(); }",""," if (content.title && doc) {"," // Make sure the `activeView` does actually change before we go"," // messing with the page title."," activeViewHandle = this.onceAfter('activeViewChange', function () {"," doc.title = content.title;"," });"," }",""," this.showContent(content.node);",""," // Detach the handle just in case."," if (activeViewHandle) {"," activeViewHandle.detach();"," }",""," next();"," }","};","","// Mix statics.","AppContent.ATTRS = Y.Attribute.protectAttrs(PjaxContent.ATTRS);","","// Mix prototype.","Y.mix(AppContent, PjaxContent, false, null, 1);","","// -- Namespace ----------------------------------------------------------------","Y.App.Content = AppContent;","Y.Base.mix(Y.App, [AppContent]);","","","}, '3.10.3', {\"requires\": [\"app-base\", \"pjax-content\"]});","","}());"]};
}
var __cov_4SilcYFgT6mhCgmPkPbZAw = __coverage__['build/app-content/app-content.js'];
__cov_4SilcYFgT6mhCgmPkPbZAw.s['1']++;YUI.add('app-content',function(Y,NAME){__cov_4SilcYFgT6mhCgmPkPbZAw.f['1']++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['2']++;var PjaxContent=Y.PjaxContent;__cov_4SilcYFgT6mhCgmPkPbZAw.s['3']++;function AppContent(){__cov_4SilcYFgT6mhCgmPkPbZAw.f['2']++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['4']++;PjaxContent.apply(this,arguments);}__cov_4SilcYFgT6mhCgmPkPbZAw.s['5']++;AppContent.route=['loadContent','_contentRoute'];__cov_4SilcYFgT6mhCgmPkPbZAw.s['6']++;AppContent.prototype={showContent:function(content,options,callback){__cov_4SilcYFgT6mhCgmPkPbZAw.f['3']++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['7']++;content=Y.one(content);__cov_4SilcYFgT6mhCgmPkPbZAw.s['8']++;if(typeof options==='function'){__cov_4SilcYFgT6mhCgmPkPbZAw.b['1'][0]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['9']++;options={callback:options};__cov_4SilcYFgT6mhCgmPkPbZAw.s['10']++;callback=null;}else{__cov_4SilcYFgT6mhCgmPkPbZAw.b['1'][1]++;}__cov_4SilcYFgT6mhCgmPkPbZAw.s['11']++;options=Y.merge({render:false},options);__cov_4SilcYFgT6mhCgmPkPbZAw.s['12']++;var view=(__cov_4SilcYFgT6mhCgmPkPbZAw.b['2'][0]++,options.view)||(__cov_4SilcYFgT6mhCgmPkPbZAw.b['2'][1]++,''),viewName=typeof view==='string'?(__cov_4SilcYFgT6mhCgmPkPbZAw.b['3'][0]++,view):(__cov_4SilcYFgT6mhCgmPkPbZAw.b['3'][1]++,view.name),viewConfig=typeof view!=='string'?(__cov_4SilcYFgT6mhCgmPkPbZAw.b['4'][0]++,view.config):(__cov_4SilcYFgT6mhCgmPkPbZAw.b['4'][1]++,{}),viewInfo=this.getViewInfo(viewName),container,template,type,ViewConstructor;__cov_4SilcYFgT6mhCgmPkPbZAw.s['13']++;delete options.view;__cov_4SilcYFgT6mhCgmPkPbZAw.s['14']++;if((__cov_4SilcYFgT6mhCgmPkPbZAw.b['6'][0]++,content)&&(__cov_4SilcYFgT6mhCgmPkPbZAw.b['6'][1]++,content.isFragment())&&(__cov_4SilcYFgT6mhCgmPkPbZAw.b['6'][2]++,content.get('childNodes').size()===1)){__cov_4SilcYFgT6mhCgmPkPbZAw.b['5'][0]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['15']++;content=content.get('firstChild');}else{__cov_4SilcYFgT6mhCgmPkPbZAw.b['5'][1]++;}__cov_4SilcYFgT6mhCgmPkPbZAw.s['16']++;if((__cov_4SilcYFgT6mhCgmPkPbZAw.b['8'][0]++,content)&&(__cov_4SilcYFgT6mhCgmPkPbZAw.b['8'][1]++,content.get('nodeType')===1)){__cov_4SilcYFgT6mhCgmPkPbZAw.b['7'][0]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['17']++;container=content;}else{__cov_4SilcYFgT6mhCgmPkPbZAw.b['7'][1]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['18']++;type=(__cov_4SilcYFgT6mhCgmPkPbZAw.b['9'][0]++,viewInfo)&&(__cov_4SilcYFgT6mhCgmPkPbZAw.b['9'][1]++,viewInfo.type)||(__cov_4SilcYFgT6mhCgmPkPbZAw.b['9'][2]++,Y.View);__cov_4SilcYFgT6mhCgmPkPbZAw.s['19']++;ViewConstructor=typeof type==='string'?(__cov_4SilcYFgT6mhCgmPkPbZAw.b['10'][0]++,Y.Object.getValue(Y,type.split('.'))):(__cov_4SilcYFgT6mhCgmPkPbZAw.b['10'][1]++,type);__cov_4SilcYFgT6mhCgmPkPbZAw.s['20']++;template=ViewConstructor.prototype.containerTemplate;__cov_4SilcYFgT6mhCgmPkPbZAw.s['21']++;container=Y.Node.create(template);__cov_4SilcYFgT6mhCgmPkPbZAw.s['22']++;container.append(content);}__cov_4SilcYFgT6mhCgmPkPbZAw.s['23']++;viewConfig=Y.merge(viewConfig,{container:container});__cov_4SilcYFgT6mhCgmPkPbZAw.s['24']++;return this.showView(viewName,viewConfig,options,callback);},_contentRoute:function(req,res,next){__cov_4SilcYFgT6mhCgmPkPbZAw.f['4']++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['25']++;var content=res.content,doc=Y.config.doc,activeViewHandle;__cov_4SilcYFgT6mhCgmPkPbZAw.s['26']++;if(!((__cov_4SilcYFgT6mhCgmPkPbZAw.b['12'][0]++,content)&&(__cov_4SilcYFgT6mhCgmPkPbZAw.b['12'][1]++,content.node))){__cov_4SilcYFgT6mhCgmPkPbZAw.b['11'][0]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['27']++;return next();}else{__cov_4SilcYFgT6mhCgmPkPbZAw.b['11'][1]++;}__cov_4SilcYFgT6mhCgmPkPbZAw.s['28']++;if((__cov_4SilcYFgT6mhCgmPkPbZAw.b['14'][0]++,content.title)&&(__cov_4SilcYFgT6mhCgmPkPbZAw.b['14'][1]++,doc)){__cov_4SilcYFgT6mhCgmPkPbZAw.b['13'][0]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['29']++;activeViewHandle=this.onceAfter('activeViewChange',function(){__cov_4SilcYFgT6mhCgmPkPbZAw.f['5']++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['30']++;doc.title=content.title;});}else{__cov_4SilcYFgT6mhCgmPkPbZAw.b['13'][1]++;}__cov_4SilcYFgT6mhCgmPkPbZAw.s['31']++;this.showContent(content.node);__cov_4SilcYFgT6mhCgmPkPbZAw.s['32']++;if(activeViewHandle){__cov_4SilcYFgT6mhCgmPkPbZAw.b['15'][0]++;__cov_4SilcYFgT6mhCgmPkPbZAw.s['33']++;activeViewHandle.detach();}else{__cov_4SilcYFgT6mhCgmPkPbZAw.b['15'][1]++;}__cov_4SilcYFgT6mhCgmPkPbZAw.s['34']++;next();}};__cov_4SilcYFgT6mhCgmPkPbZAw.s['35']++;AppContent.ATTRS=Y.Attribute.protectAttrs(PjaxContent.ATTRS);__cov_4SilcYFgT6mhCgmPkPbZAw.s['36']++;Y.mix(AppContent,PjaxContent,false,null,1);__cov_4SilcYFgT6mhCgmPkPbZAw.s['37']++;Y.App.Content=AppContent;__cov_4SilcYFgT6mhCgmPkPbZAw.s['38']++;Y.Base.mix(Y.App,[AppContent]);},'3.10.3',{'requires':['app-base','pjax-content']});