{"version":3,"file":"mura.min.js","mappings":"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","sources":["webpack://Mura/webpack/universalModuleDefinition","webpack://Mura/./src/core/cache.js","webpack://Mura/./src/core/content.js","webpack://Mura/./src/core/core.js","webpack://Mura/./src/core/domselection.js","webpack://Mura/./src/core/entity.js","webpack://Mura/./src/core/entitycollection.js","webpack://Mura/./src/core/factory.js","webpack://Mura/./src/core/feed.js","webpack://Mura/./src/core/loader.js","webpack://Mura/./src/core/object.js","webpack://Mura/./src/core/polyfill-browser.js","webpack://Mura/./src/core/req-context.js","webpack://Mura/./src/core/req-instance.js","webpack://Mura/./src/core/stylemap.js","webpack://Mura/./src/core/templates-handlebars.js","webpack://Mura/./src/core/templates.js","webpack://Mura/./src/core/ui.collection.js","webpack://Mura/./src/core/ui.container.js","webpack://Mura/./src/core/ui.embed.js","webpack://Mura/./src/core/ui.form.js","webpack://Mura/./src/core/ui.hr.js","webpack://Mura/./src/core/ui.image.js","webpack://Mura/./src/core/ui.js","webpack://Mura/./src/core/ui.text.js","webpack://Mura/./src/core/user.js","webpack://Mura/./src/index.js","webpack://Mura/./node_modules/cross-fetch/dist/browser-polyfill.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack://Mura/./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack://Mura/webpack/bootstrap","webpack://Mura/webpack/runtime/global","webpack://Mura/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Mura\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Mura\"] = factory();\n\telse\n\t\troot[\"Mura\"] = factory();\n})(self, function() {\nreturn ","\n/**\n * Creates a new Mura.Cache\n * @name Mura.Cache\n * @class\n * @extends Mura.Core\n * @memberof\tMura\n * @return {Mura.Cache}\n */\n\nfunction attach(Mura){\n\n\tMura.Cache=Mura.Core.extend(\n\t\t/** @lends Mura.Cache.prototype */\n\t\t{\n\t\tinit(){\n\t\t\tthis.cache={};\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * getKey - Returns Key value associated with key Name\n\t\t *\n\t\t * @param\t{string} keyName Key Name\n\t\t * @return {*}\t\t\t\t Key Value\n\t\t */\n\t\tgetKey(keyName){\n\t\t\treturn Mura.hashCode(keyName);\n\t\t},\n\n\t\t/**\n\t\t * get - Returns the value associated with key name\n\t\t *\n\t\t * @param\t{string} keyName\tdescription\n\t\t * @param\t{*} keyValue Default Value\n\t\t * @return {*}\n\t\t */\n\t\tget(keyName,keyValue){\n\t\t\tvar key=this.getKey(keyName);\n\t\t\tif(typeof this.cache[key] != 'undefined'){\n\t\t\t\treturn this.cache[key].keyValue;\n\t\t\t} else if (typeof keyValue != 'undefined') {\n\t\t\t\tthis.set(keyName,keyValue,key);\n\t\t\t\treturn this.cache[key].keyValue;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * set - Sets and returns key value\n\t\t *\n\t\t * @param\t{string} keyName\tKey Name\n\t\t * @param\t{*} keyValue Key Value\n\t\t * @param\t{string} key\t\t\tKey\n\t\t * @return {*}\n\t\t */\n\t\tset(keyName,keyValue,key){\n\t\t\tkey=key || this.getKey(keyName);\n\t\t\tthis.cache[key]={name:keyName,value:keyValue};\n\t\t\treturn keyValue;\n\t\t},\n\n\t\t/**\n\t\t * has - Returns if the key name has a value in the cache\n\t\t *\n\t\t * @param\t{string} keyName Key Name\n\t\t * @return {boolean}\n\t\t */\n\t\thas(keyName){\n\t\t\treturn typeof this.cache[getKey(keyName)] != 'undefined';\n\t\t},\n\n\t\t/**\n\t\t * getAll - Returns object containing all key and key values\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tgetAll(){\n\t\t\treturn this.cache;\n\t\t},\n\n\t\t/**\n\t\t * purgeAll - Purges all key/value pairs from cache\n\t\t *\n\t\t * @return {object}\tSelf\n\t\t */\n\t\tpurgeAll(){\n\t\t\tthis.cache={};\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * purge - Purges specific key name from cache\n\t\t *\n\t\t * @param\t{string} keyName Key Name\n\t\t * @return {object}\t\t\t\t Self\n\t\t */\n\t\tpurge(keyName){\n\t\t\tvar key=this.getKey(keyName)\n\t\t\tif( typeof this.cache[key] != 'undefined')\n\t\t\tdelete this.cache[key];\n\t\t\treturn this;\n\t\t}\n\t});\n\n\tMura.datacache=new Mura.Cache();\n\n}\n\nmodule.exports=attach;\n","/**\n* Creates a new Mura.entities.Content\n* @name Mura.entities.Content\n* @class\n* @extends Mura.Entity\n* @memberof Mura\n* @param\t{object} properties Object containing values to set into object\n* @return {Mura.entities.Content}\n*/\n\nfunction attach(Mura){\n\n\tMura.entities.Content = Mura.Entity.extend(\n\t/** @lends Mura.entities.Content.prototype */\n\t{\n\t\t/**\n\t\t * hasParent - Returns true if content has a parent.\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasParent(){\n\t\t\tvar parentid=this.get('parentid');\n\t\t\treturn !(!parentid || ['00000000000000000000000000000000END','00000000000000000000000000000000003','00000000000000000000000000000000004','00000000000000000000000000000000099'].find(function(value){return value===parentid}));\n\t\t},\n\n\t\t/**\n\t\t * updateFromDom - Updates editable data from what's in the DOM.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tupdateFromDom(){\n\t\t\tvar regions = this.get('displayregions');\n\t\t\t\n\t\t\tif(regions && typeof regions === 'object'){\n\t\t\t\tObject.keys(regions).forEach(key => {\n\t\t\t\t\tvar region = regions[key];\n\t\t\t\t\n\t\t\t\t\tif(region){\n\t\t\t\t\t\tvar items=[];\n\n\t\t\t\t\t\tMura('.mura-region-local[data-regionid=\"' + region.regionid +'\"]').forEach(function(){\n\t\t\t\t\t\t\tMura(this).children('.mura-object[data-object]').forEach(function(){\n\t\t\t\t\t\t\t\tvar obj=Mura(this);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif(typeof Mura.displayObjectInstances[obj.data('instanceid')] != 'undefined'){\n\t\t\t\t\t\t\t\t\tMura.displayObjectInstances[obj.data('instanceid')].reset(obj,false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\titems.push(Mura.cleanModuleProps(obj.data()));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tregion.local.items=items;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar self=this;\n\n\t\t\tMura('div.mura-object[data-targetattr]').each(function(){\n\t\t\t\tvar obj=Mura(this);\n\t\t\t\t\n\t\t\t\tif(typeof Mura.displayObjectInstances[obj.data('instanceid')] != 'undefined'){\n\t\t\t\t\tMura.displayObjectInstances[obj.data('instanceid')].reset(obj,false);\n\t\t\t\t}\n\n\t\t\t\tself.set(obj.data('targetattr'),Mura.cleanModuleProps(Mura(this).data()));\n\t\t\t});\n\n\t\t\tMura('.mura-editable-attribute.inline').forEach(function(){\n\t\t\t\tvar editable=Mura(this);\n\t\t\t\tvar attributeName=editable.data('attribute');\n\t\t\t\tself.set(attributeName,editable.html());\n\t\t\t})\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * renderDisplayRegion - Returns a string with display region markup.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\trenderDisplayRegion(region){\n\t\t\treturn Mura.buildDisplayRegion(this.get('displayregions')[region])\n\t\t},\n\n\t\t/**\n\t\t * dspRegion - Appends a display region to a element.\n\t\t *\n\t\t * @return {self}\n\t\t */\n\t\tdspRegion(selector,region,label){\n\t\t\tif(Mura.isNumeric(region) && region <= this.get('displayregionnames').length){\n\t\t\t\tregion=this.get('displayregionnames')[region-1];\n\t\t\t}\n\t\t\tMura(selector).processDisplayRegion(this.get('displayregions')[region],label);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * getRelatedContent - Gets related content sets by name\n\t\t *\n\t\t * @param\t{string} relatedContentSetName\n\t\t * @param\t{object} params\n\t\t * @return {Mura.EntityCollection}\n\t\t */\n\t\tgetRelatedContent(relatedContentSetName,params){\n\t\t\tvar self=this;\n\n\t\t\trelatedContentSetName=relatedContentSetName || '';\n\n\t\t\treturn new Promise(function(resolve,reject) {\n\t\t\t\tvar query = [];\n\t\t\t\tparams = params || {};\n\t\t\t\tparams.siteid = self.get('siteid') || Mura.siteid;\n\t\t\t\tif(self.has('contenthistid') && self.get('contenthistid')){\n\t\t\t\t\tparams.contenthistid=self.get('contenthistid');\n\t\t\t\t}\n\t\t\t\tfor (var key in params) {\n\t\t\t\t\tif (key != 'entityname' && key != 'filename' && key != 'siteid' && key != 'method') {\n\t\t\t\t\t\tquery.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tself._requestcontext.request({\n\t\t\t\t\ttype: 'get',\n\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() +\n\t\t\t\t\t\t'/content/' + self.get('contentid') + '/relatedcontent/' + relatedContentSetName + '?' +\n\t\t\t\t\t\tquery.join('&'),\n\t\t\t\t\tparams: params,\n\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\tif(typeof resp.data.items != 'undefined'){\n\t\t\t\t\t\t\tvar returnObj = new Mura.EntityCollection(resp.data,self._requestcontext);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar returnObj = new Mura.Entity({siteid:Mura.siteid},self._requestcontext);\n\t\t\t\t\t\t\tfor(var p in resp.data){\n\t\t\t\t\t\t\t\tif(resp.data.hasOwnProperty(p)){\n\t\t\t\t\t\t\t\t\treturnObj.set(p,new Mura.EntityCollection(resp.data[p],self._requestcontext));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof resolve == 'function') {\n\t\t\t\t\t\t\tresolve(returnObj);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: reject\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t});\n}\n\nmodule.exports=attach;\n","function attach(Mura){\n\t'use strict'\n\n\t/**\n\t * login - Logs user in\n\t *\n\t * @param\t{string} username Username\n\t * @param\t{string} password Password\n\t * @param\t{string} siteid Siteid\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction login(username, password, siteid) {\n\t\treturn Mura.getRequestContext().login(username, password, siteid);\n\t}\n\n\t/**\n\t * logout - Logs user out\n\t *\n\t * @param\t{string} siteid Siteid\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction logout(siteid) {\n\t\treturn Mura.getRequestContext().logout(siteid);\n\t}\n\n\t/**\n\t * trackEvent - This is for Mura Experience Platform. It has no use with Mura standard\n\t *\n\t * @param\t{object} data event data\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction trackEvent(data) {\n\t\t//This all needs to be cleaned up\n\n\t\t//Turn off metric when editing content, perhaps should be removed\n\t\tif(typeof Mura.editing != 'undefined' && Mura.editing){\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tresolve = resolve || function() {};\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\n\t\tvar isMXP=(typeof Mura.trackingVars != 'undefined');\n\t\tvar instanceVars = {\n\t\t\tga:{\n\t\t\t\ttrackingvars:{}\n\t\t\t}\n\t\t};\n\t\tvar gaFound = false;\n\t\tvar trackingComplete = false;\n\t\tvar attempt=0;\n\t\tvar eventData={};\n\t\t\n\t\teventData.category = data.event_category || data.eventCategory || data.category || '';\n\t\teventData.name = data.event_action || data.eventAction || data.action || data.eventName || data.name || '';\n\t\teventData.label = data.event_label || data.eventLabel || data.label || '';\n\t\teventData.type =\tdata.hit_type || data.hitType || data.type || 'event';\n\t\teventData.value = data.event_value || data.eventValue || data.value || undefined;\n\n\t\tif (typeof data.nonInteraction == 'undefined') {\n\t\t\teventData.nonInteraction = false;\n\t\t} else {\n\t\t\teventData.nonInteraction = data.nonInteraction;\n\t\t}\n\n\t\teventData.contentid = data.contentid || Mura.contentid;\n\t\teventData.objectid = data.objectid || '';\n\n\t\tfunction track() {\n\t\t\t//Only happen the first time to coral data announce tracking event\n\t\t\t//Subsequent calls are ignored, as the tracking is already complete\n\t\t\tif(!attempt){\n\t\t\t\n\t\t\t\tinstanceVars.ga.trackingvars.eventCategory = eventData.category;\n\t\t\t\tinstanceVars.ga.trackingvars.eventAction = eventData.name;\n\t\t\t\tinstanceVars.ga.trackingvars.nonInteraction = eventData.nonInteraction;\n\t\t\t\tinstanceVars.ga.trackingvars.hitType = eventData.type;\n\n\t\t\t\tif (typeof eventData.value != 'undefined' && Mura.isNumeric(eventData.value)) {\n\t\t\t\t\tinstanceVars.ga.trackingvars.eventValue = eventData.value;\n\t\t\t\t}\n\n\t\t\t\tif (eventData.label) {\n\t\t\t\t\tinstanceVars.ga.trackingvars.eventLabel = eventData.label;\n\t\t\t\t} else if(isMXP) {\n\t\t\t\t\tif(typeof instanceVars.object != 'undefined'){\n\t\t\t\t\t\tinstanceVars.ga.trackingvars.eventLabel = instanceVars.object.title;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinstanceVars.ga.trackingvars.eventLabel = instanceVars.content.title;\n\t\t\t\t\t}\n\n\t\t\t\t\teventData.label=instanceVars.ga.trackingvars.eventLabel;\n\t\t\t\t}\n\n\t\t\t\tMura(document).trigger('muraTrackEvent',instanceVars);\n\t\t\t\tMura(document).trigger('muraRecordEvent',instanceVars);\n\n\t\t\t}\n\n\t\t\t//The method will keep trying to track until ga, gtag are found\n\t\t\tif (typeof gtag != 'undefined') {\n\t\t\t\t//swap out ga for gtag variables\n\t\t\t\tinstanceVars.ga.trackingvars.event_category = instanceVars.ga.trackingvars.eventCategory;\n\t\t\t\tinstanceVars.ga.trackingvars.event_action = instanceVars.ga.trackingvars.eventAction;\n\t\t\t\tinstanceVars.ga.trackingvars.non_interaction = instanceVars.ga.trackingvars.nonInteraction;\n\t\t\t\tinstanceVars.ga.trackingvars.hit_type = instanceVars.ga.trackingvars.hitType;\n\t\t\t\tinstanceVars.ga.trackingvars.event_value = instanceVars.ga.trackingvars.eventValue;\n\t\t\t\tinstanceVars.ga.trackingvars.event_label = instanceVars.ga.trackingvars.eventLabel;\n\n\t\t\t\tdelete instanceVars.ga.trackingvars.eventCategory;\n\t\t\t\tdelete instanceVars.ga.trackingvars.eventAction;\n\t\t\t\tdelete instanceVars.ga.trackingvars.eventName;\n\t\t\t\tdelete instanceVars.ga.trackingvars.nonInteraction;\n\t\t\t\tdelete instanceVars.ga.trackingvars.hitType;\n\t\t\t\tdelete instanceVars.ga.trackingvars.eventValue;\n\t\t\t\tdelete instanceVars.ga.trackingvars.eventLabel;\n\n\t\t\t\tif(typeof Mura.trackingVars != 'undefined'){\n\t\t\t\t\tif(Mura.trackingVars.ga.trackingid){\n\t\t\t\t\t\tinstanceVars.ga.trackingvars.send_to=Mura.trackingVars.ga.trackingid;\n\t\t\t\t\t\tgtag('event', instanceVars.ga.trackingvars.event_action, instanceVars.ga.trackingvars);\n\t\t\t\t\t} else if (Mura.trackingVars.ga.measurementid) {\n\t\t\t\t\t\tinstanceVars.ga.trackingvars.send_to=Mura.trackingVars.ga.measurementid\n\t\t\t\t\t\tinstanceVars.ga.trackingvars.event_name=instanceVars.ga.trackingvars.event_action;\n\t\t\t\t\t\tdelete instanceVars.ga.trackingvars.event_action;\n\t\t\t\t\t\tgtag('event', instanceVars.ga.trackingvars.event_name, instanceVars.ga.trackingvars);\t\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tinstanceVars.ga.trackingvars.event_name=instanceVars.ga.trackingvars.event_action;\n\t\t\t\t\tgtag('event', instanceVars.ga.trackingvars.event_name, instanceVars.ga.trackingvars);\t\n\t\t\t\t}\n\t\t\t\tgaFound = true;\n\t\t\t\ttrackingComplete = true;\n\t\t\t} else if (typeof ga != 'undefined') {\n\t\t\t\tif(isMXP){\n\t\t\t\t\tga('mxpGATracker.send', eventData.type, instanceVars.ga.trackingvars);\n\t\t\t\t} else {\n\t\t\t\t\tga('send', eventData.type, instanceVars.ga.trackingvars);\n\t\t\t\t}\n\n\t\t\t\tgaFound = true;\n\t\t\t\ttrackingComplete = true;\n\t\t\t}\n\n\t\t\tattempt++;\n\n\t\t\tif (!gaFound && attempt <250) {\n\t\t\t\tsetTimeout(track, 1);\n\t\t\t} else {\n\t\t\t\ttrackingComplete = true;\n\t\t\t}\n\n\t\t}\n\n\t\tif(isMXP){\n\t\t\tvar trackingID = data.contentid + data.objectid;\n\n\t\t\tif(typeof Mura.trackingMetadata[trackingID] != 'undefined'){\n\t\t\t\tMura.deepExtend(instanceVars,Mura.trackingMetadata[trackingID]);\n\t\t\t\tinstanceVars.eventData=eventData;\n\t\t\t\ttrack();\n\t\t\t} else {\n\t\t\t\tMura.get(Mura.getAPIEndpoint(), {\n\t\t\t\t\tmethod: 'findTrackingProps',\n\t\t\t\t\tsiteid: Mura.siteid,\n\t\t\t\t\tcontentid: eventData.contentid,\n\t\t\t\t\tobjectid: eventData.objectid\n\t\t\t\t}).then(function(response) {\n\t\t\t\t\tMura.deepExtend(instanceVars,response.data);\n\t\t\t\t\tinstanceVars.eventData=data;\n\n\t\t\t\t\tfor(var p in instanceVars.ga.trackingvars){\n\t\t\t\t\t\tif(instanceVars.ga.trackingvars.hasOwnProperty(p) && p.substring(0,1)=='d' && typeof instanceVars.ga.trackingvars[p] != 'string'){\n\t\t\t\t\t\t\tinstanceVars.ga.trackingvars[p]=new String( instanceVars.ga.trackingvars[p]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tMura.trackingMetadata[trackingID]={};\n\t\t\t\t\tMura.deepExtend(Mura.trackingMetadata[trackingID],response.data);\n\t\t\t\t\ttrack();\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\ttrack();\n\t\t}\n\n\t\treturn new Promise(function(resolve, reject) {\n\n\t\t\tresolve = resolve || function() {};\n\n\t\t\tfunction checkComplete() {\n\t\t\t\tif (trackingComplete) {\n\t\t\t\t\tresolve();\n\t\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(checkComplete, 1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcheckComplete();\n\n\t\t\t});\n\n\t\t}\n\n\t/**\n\t* renderFilename - Returns \"Rendered\" JSON object of content\n\t*\n\t* @param\t{type} filename Mura content filename\n\t* @param\t{type} params Object\n\t* @return {Promise}\n\t* @memberof Mura\n\t*/\n\tfunction renderFilename(filename, params) {\n\t\treturn Mura.getRequestContext().renderFilename(filename, params);\n\t}\n\n\t/**\n\t * declareEntity - Declare Entity with in service factory\n\t *\n\t * @param\t{object} entityConfig Entity config object\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction declareEntity(entityConfig) {\n\t\treturn Mura.getRequestContext().declareEntity(entityConfig);\n\t}\n\n\t/**\n\t * undeclareEntity - Deletes entity class from Mura\n\t *\n\t * @param\t{object} entityName\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction undeclareEntity(entityName,deleteSchema) {\n\t\tdeleteSchema=deleteSchema || false;\n\t\treturn Mura.getRequestContext().undeclareEntity(entityName,deleteSchema);\n\t}\n\n\t/**\n\t * openGate - Open's content gate when using MXP\n\t *\n\t * @param\t{string} contentid Optional: default's to Mura.contentid\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction openGate(contentid) {\n\t\treturn Mura.getRequestContext().openGate(contentid);\n\t}\n\n\t/**\n\t * getEntity - Returns Mura.Entity instance\n\t * @example\n\t * const content= Mura.getEntity('content')\n\t * \n\t * await content.loadBy('contentid','1234');\n\t * \n\t * await content.set({\n\t * \t\tsummary:'This is my summary',\n\t * \t\tapproved:1\n\t * ).save();\n\t * \n\t * const kids= await content.get('kids');\n\t * \n\t * kids.forEach(function(kid){\n\t * console.log(kid.getAll());\n\t * });\n\t * \n\t * @param\t{string} entityname Entity Name\n\t * @param\t{string} siteid\t\t Siteid\n\t * @return {Mura.Entity}\n\t * @memberof Mura\n\t */\n\tfunction getEntity(entityname, siteid) {\n\t\tsiteid=siteid || Mura.siteid;\n\t\treturn Mura.getRequestContext().getEntity(entityname, siteid);\n\t}\n\n\t/**\n\t * getFeed - Return new instance of Mura.Feed\n\t * @example\n\t * const collection= await Mura\n\t * \t.getFeed('content')\n\t * \t.where()\n\t * \t.prop('title').containsValue('test')\n\t * \t.orOpenGrouping()\n\t * \t.prop('title').isEQ('about')\n\t * \t.orProp('title').isEQ('contact')\n\t * \t.closeGrouping()\n\t * \t.sort('title','asc')\n\t * \t.maxItems(10)\n\t * \t.itemPerPage(5)\n\t * \t.cacheKey('mycachekey')\n\t * \t.cacheWithin(60)\n\t * \t.expand('kids')\n\t * \t.fields('title,summary,url')\n\t * \t.getQuery({\t\n\t * \t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t},\n\t *\t\tcache:'cache',\n\t *\t\tnext: { revalidate: 10 } \n\t * \t}\n\t * );\n\t * \n\t * collection.forEach(function(item){\t\n\t * \tconsole.log(item.get('title'));\n\t * });\n\t * @param\t{type} entityname Entity name\n\t * @return {Mura.Feed}\n\t * @memberof Mura\n\t */\n\tfunction getFeed(entityname,siteid) {\n\t\tsiteid=siteid || Mura.siteid;\n\t\treturn Mura.getRequestContext().getFeed(entityname,siteid);\n\t}\n\n\t/**\n\t * getCurrentUser - Return Mura.Entity for current user\n\t *\n\t * @param\t{object} params Load parameters, fields:list of fields\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction getCurrentUser(params) {\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\tif(Mura.currentUser){\n\t\t\t\treturn resolve(Mura.currentUser);\n\t\t\t} else {\n\t\t\t\tMura.getRequestContext().getCurrentUser(params).then(\n\t\t\t\t\tfunction(currentUser){\n\t\t\t\t\t\tMura.currentUser=currentUser;\n\t\t\t\t\t\tresolve(Mura.currentUser);\n\t\t\t\t\t},\n\t\t\t\t\tfunction(currentUser){\n\t\t\t\t\t\tMura.currentUser=currentUser;\n\t\t\t\t\t\tresolve(Mura.currentUser);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * findText - Return Mura.Collection for content with text\n\t *\n\t * @param\t{object} params Load parameters\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction findText(text,params) {\n\t\treturn Mura.getRequestContext().findText(text,params);\n\t}\n\n\t/**\n\t * findQuery - Returns Mura.EntityCollection with properties that match params\n\t *\n\t * @param\t{object} params Object of matching params\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction findQuery(params) {\n\t\treturn Mura.getRequestContext().findQuery(params);\n\t}\n\n\tfunction evalScripts(el) {\n\t\tif (typeof el == 'string') {\n\t\t\t\tel = parseHTML(el);\n\t\t}\n\n\t\tvar scripts = [];\n\t\tvar ret = el.childNodes;\n\n\t\tfor (var i = 0; ret[i]; i++) {\n\t\t\tif (scripts && nodeName(ret[i], \"script\") && (!ret[i].type || ret[i].type.toLowerCase() === \"text/javascript\")) {\n\t\t\t\tif (ret[i].src) {\n\t\t\t\t\tscripts.push(ret[i]);\n\t\t\t\t} else {\n\t\t\t\t\tscripts.push(ret[i].parentNode ? ret[i].parentNode.removeChild(ret[i]) : ret[i]);\n\t\t\t\t}\n\t\t\t} else if (ret[i].nodeType == 1 || ret[i].nodeType == 9 ||\n\t\t\t\tret[i].nodeType == 11) {\n\t\t\t\tevalScripts(ret[i]);\n\t\t\t}\n\t\t}\n\n\t\tfor (var $script in scripts) {\n\t\t\tevalScript(scripts[$script]);\n\t\t}\n\t}\n\n\tfunction evalScript(el) {\n\t\tif (el.src) {\n\t\t\tMura.loader().load(el.src);\n\t\t\tMura(el).remove();\n\t\t} else {\n\t\t\tvar data = (el.text || el.textContent || el.innerHTML || \"\");\n\n\t\t\tvar head = document.getElementsByTagName(\"head\")[0] ||\n\t\t\t\tdocument.documentElement,\n\t\t\t\tscript = document.createElement(\"script\");\n\t\t\tscript.type = \"text/javascript\";\n\t\t\t//script.appendChild( document.createTextNode( data ) );\n\t\t\tscript.text = data;\n\t\t\thead.insertBefore(script, head.firstChild);\n\t\t\thead.removeChild(script);\n\n\t\t\tif (el.parentNode) {\n\t\t\t\tel.parentNode.removeChild(el);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction nodeName(el, name) {\n\t\treturn el.nodeName && el.nodeName.toUpperCase() === name.toUpperCase();\n\t}\n\n\tfunction changeElementType(el, to) {\n\t\tvar newEl = document.createElement(to);\n\n\t\t// Try to copy attributes across\n\t\tfor (var i = 0, a = el.attributes, n = a.length; i < n; ++i)\n\t\t\tel.setAttribute(a[i].name, a[i].value);\n\n\t\t// Try to move children across\n\t\twhile (el.hasChildNodes())\n\t\t\tnewEl.appendChild(el.firstChild);\n\n\t\t// Replace the old element with the new one\n\t\tel.parentNode.replaceChild(newEl, el);\n\n\t\t// Return the new element, for good measure.\n\t\treturn newEl;\n\t}\n\n\t/*\n\tDefaults to holdReady is true so that everything\n\tis queued up until the DOMContentLoaded is fired\n\t*/\n\tvar holdingReady = true;\n\tvar holdingReadyAltered = false;\n\tvar holdingQueueReleased = false;\n\tvar holdingQueue = [];\n\tvar holdingPreInitQueue =[];\n\n\t/*\n\tif(typeof jQuery != 'undefined' && typeof jQuery.holdReady != 'undefined'){\n\t\t\tjQuery.holdReady(true);\n\t}\n\t*/\n\n\t/*\n\tWhen DOMContentLoaded is fired check to see it the\n\tholdingReady has been altered by custom code.\n\tIf it hasn't then fire holding functions.\n\t*/\n\tfunction initReadyQueue() {\n\t\tif (!holdingReadyAltered) {\n\t\t\t/*\n\t\t\tif(typeof jQuery != 'undefined' && typeof jQuery.holdReady != 'undefined'){\n\t\t\t\t\tjQuery.holdReady(false);\n\t\t\t}\n\t\t\t*/\n\t\t\treleaseReadyQueue();\n\t\t}\n\t};\n\n\tfunction releaseReadyQueue() {\n\t\tholdingQueueReleased = true;\n\t\tholdingReady = false;\n\n\t\tholdingQueue.forEach(function(fn) {\n\t\t\treadyInternal(fn);\n\t\t});\n\n\t\tholdingQueue=[];\n\t}\n\n\tfunction holdReady(hold) {\n\t\tif (!holdingQueueReleased) {\n\t\t\tholdingReady = hold;\n\t\t\tholdingReadyAltered = true;\n\n\t\t\t/*\n\t\t\tif(typeof jQuery != 'undefined' && typeof jQuery.holdReady != 'undefined'){\n\t\t\t\t\tjQuery.holdReady(hold);\n\t\t\t}\n\t\t\t*/\n\n\t\t\tif (!holdingReady) {\n\t\t\t\treleaseReadyQueue();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction ready(fn) {\n\t\tif (!holdingQueueReleased) {\n\t\t\tholdingQueue.push(fn);\n\t\t} else {\n\t\t\treadyInternal(fn);\n\t\t}\n\t}\n\n\n\tfunction readyInternal(fn) {\n\t\tif(typeof document != 'undefined'){\n\t\tif (document.readyState != 'loading') {\n\t\t\t//IE set the readyState to interative too early\n\t\t\tsetTimeout(function() {\n\t\t\t\tfn(Mura);\n\t\t\t}, 1);\n\t\t} else {\n\t\t\tdocument.addEventListener('DOMContentLoaded', function() {\n\t\t\t\tfn(Mura);\n\t\t\t});\n\t\t}\n\t\t} else {\n\t\t\tfn(Mura);\n\t\t}\n\t}\n\n\t/**\n\t * get - Make GET request\n\t * @example\t \n\t * const data = await Mura.get(\n\t *\tMura.getAPIEndpoint() + '/custom/endpoint?myvar=1',\n\t *\t{\n\t *\t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t},\n\t *\t\tcache:'cache',\n\t *\t\tnext: { revalidate: 10 } \n\t *\t}\n\t * );\n\t * @param\t{url} url\tURL\n\t * @param\t{object} data Data to send to url\n\t * @param\t{object} config request config \n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction get(url, data, config) {\n\t\treturn Mura.getRequestContext().get(url, data, config);\n\t}\n\n\t/**\n\t * post - Make POST request\n\t * @example\n\t * const data = await Mura.update(\n\t * Mura.getAPIEndpoint() + '/custom/endpoint',\n\t *\t{\n\t *\t\tdata:{\n\t *\t\t\tmyvar:'123'\n\t *\t\t},\n\t *\t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t}\n\t *\t}\n\t * );\n\t * @param\t{url} url\tURL\n\t * @param\t{object} data Data to send to url\n\t * @param\t{object} config request config \n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction post(url, data, config) {\n\t\treturn Mura.getRequestContext().post(url, data, config);\n\t}\n\n\t/**\n\t * put - Make PUT request\n\t * @example \n\t * const data = await Mura.put(\n\t *\tMura.getAPIEndpoint() + '/custom/endpoint?myvar=1',\n\t *\t{\n\t *\t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t}\n\t *\t}\n\t * );\n\t * @param\t{url} url\tURL\n\t * @param\t{object} data Data to send to url\n\t * @param\t{object} config request config \n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction put(url, data, config) {\n\t\treturn Mura.getRequestContext().put(url, data, config);\n\t}\n\n\t/**\n\t * update - Make UPDATE request\n\t * @example \n\t * const data = await Mura.update(\n\t *\tMura.getAPIEndpoint() + '/custom/endpoint',\n\t *\t{\n\t *\t\tdata:{\n\t *\t\t\tmyvar:'123'\n\t *\t\t},\n\t *\t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t}\n\t *\t}\n\t * );\n\t * @param\t{url} url\tURL\n\t * @param\t{object} data Data to send to url\n\t * @param\t{object} config request config \n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction patch(url, data, config) {\n\t\treturn Mura.getRequestContext().patch(url, data, config);\n\t}\n\n\t/**\n\t * delete - Make Delete request\n\t * @example \n\t * const data = await Mura.delete(\n\t *\tMura.getAPIEndpoint() + '/custom/endpoint?myvar=1',\n\t *\t{\n\t *\t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t}\n\t *\t}\n\t * );\n\t * @name delete\n\t * @param\t{url} url\tURL\n\t * @param\t{object} data Data to send to url\n\t * @param\t{object} config request config \n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction deleteReq(url, data, config) {\n\t\treturn Mura.getRequestContext().delete(url, data, config)\n\t}\n\n\t/**\n\t * ajax - Make http request\n\t * @example\n\t * const data = await Mura.ajax({\n\t *\tmethod:'get',\n\t *\turl:Mura.getAPIEndpoint() + '/custom/endpoint',\n\t *\tdata:{\n\t *\t\tmyvar:'123'\n\t *\t},\n\t *\theaders:{\n\t *\t\t'X-My-Header':'123'\n\t *\t},\n\t *\tcache:'cache',\n\t *\tnext: { revalidate: 10 }\n\t *\tonSuccess:function(response){},\n\t *\tonError:function(response){},\n\t *\tonUploadProgress:function(response){},\n\t *\tonDownloadProgress:function(response){},\n\t *\tonAbort:function(response){}\n\t * });\n\t * @param\t{object} config\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction ajax(config) {\n\t\treturn Mura.getRequestContext().request(config);\n\t}\n\t\n\t/**\n\t * fetch - Make fetch request's that maintian Mura's state management and cookie proxying\n\t * @example \n\t * const resp = await Mura.fetch(\n\t * \tMura.getAPIEndpoint() + '/custom/endpoint?myvar=123',\n\t * \t{\n\t *\t\tmethod:'get',\n\t *\t\turl:Mura.getAPIEndpoint() + '/custom/endpoint',\n\t *\t\theaders:{\n\t *\t\t\t'X-My-Header':'123'\n\t *\t\t},\n\t *\t\tcache:'cache',\n\t *\t\tnext: { revalidate: 10 } \n\t * \t}\n\t * );\n\t * \n\t * const data = await resp.text();\n\t * @example\n\t * const resp = await Mura.fetch({\n\t *\tmethod:'post',\n\t *\turl:Mura.getAPIEndpoint() + '/custom/endpoint',\n\t *\tbody:JSON.stringify({\n\t *\t\tmyvar:'123'\n\t *\t}),\n\t *\theaders:{\n\t *\t\t'Content-Type':'application/json:utf-8;'\n\t *\t}\t\n\t * });\n\t *\t\n\t * const data = await resp.json();`\n\t * @name fetch\n\t * @param\t{string} resource\n\t * @param\t{object} options\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction customfetch(resource,options) {\n\t\treturn Mura.getRequestContext().fetch(resource,options);\n\t}\n\n\t/**\n\t * normalizeRequesConfig - Standardizes request handler objects\n\t *\n\t * @param\t{object} config\n\t * @memberof {object} config\n\t */\n\tfunction normalizeRequestConfig(config) {\n\t\t/* \n\t\t\tMoving to native fetch whenever possible for beter next support\n\t\t\tAt this point we still use axios for file uploads\n\t\t*/\n\t\tconfig.progress=config.progress || config.onProgress || config.onUploadProgress || false;\n\t\tconfig.download=config.download || config.onDownload || config.onDownloadProgress || false;\n\t\tconfig.abort=config.abort || config.onAbort|| function(){};\n\t\tconfig.success=config.success || config.onSuccess || function(){};\n\t\tconfig.error=config.error || config.onError || function(){};\n\t\tconfig.headers=config.headers || {};\n\t\tconfig.type=config.type || 'get';\n\t\tconfig.next=config.next || {};\n\t\tconfig.cache=config.cache || 'default';\n\n\t\tconst transformedHeaders = {};\n\t\n\t\tObject.entries(config.headers).forEach(([key, value]) => {\n\t\t\ttransformedHeaders[key.toLowerCase()] = value;\n\t\t});\n\n\t\tconfig.headers=transformedHeaders;\n\t\t\n\t\tif(typeof Mura.maxQueryStringLength != 'undefined'){\n\t\t\tconfig.maxQueryStringLength=config.maxQueryStringLength || Mura.maxQueryStringLength;\n\t\t}\n\n\t\treturn config;\n\t}\n\n\t/**\n\t * getRequestContext - Returns a new Mura.RequestContext;\n\t * @example\t\n\t * const requestContext = Mura.getRequestContext();\n\t * \t\t\n\t * requestContext.setHeader('X-My-Header','123');\n\t * \n\t * const resp = await requestContext.fetch({\n\t *\tmethod:'post',\n\t *\turl:Mura.getAPIEndpoint() + '/custom/endpoint',\n\t *\tbody:JSON.stringify({\n\t *\t\tmyvar:'123'\n\t * \t})\n\t * }; \n\t *\t\n\t * const data = await resp.json();\n\t *\t\n\t * @name getRequestContext\n\t * @param\t{object} request\t\t Siteid\n\t * @param\t{object} response Entity name\n\t * @return {Mura.RequestContext}\t Mura.RequestContext\n\t * @memberof Mura\n\t */\n\tfunction getRequestContext(request,response, headers, siteid, endpoint, mode, renderMode) {\n\t\t//Logic aded to support single config object arg\n\t\tif(typeof request==='object' \n\t\t\t&& typeof response === 'undefined'){\n\t\t\t\tvar config=request;\n\t\t\t\trequest=config.req;\n\t\t\t\tresponse=config.res;\n\t\t\t\theaders=config.headers;\n\t\t\t\tsiteid=config.siteid;\n\t\t\t\tendpoint=config.endpoint;\n\t\t\t\tmode=config.mode;\n\t\t\t\trenderMode=config.renderMode\n\t\t} else {\n\t\t\tif(typeof headers=='string'){\n\t\t\t\tvar originalSiteid=siteid;\n\t\t\t\tsiteid=headers;\n\t\t\t\tif(typeof originalSiteid==='object'){\n\t\t\t\t\theaders=originalSiteid;\n\t\t\t\t} else {\n\t\t\t\t\theaders={};\n\t\t\t\t}\t\n\t\t\t}\n\t\t}\n\n\t\tif(typeof headers==='object'){\n\t\t\tfor( let h in headers){\n\t\t\t\tif(headers.hasOwnProperty(h)){\n\t\t\t\t\theaders[h.toLowerCase()]= headers[h];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\trequest = request || Mura.request;\n\t\tresponse = response || Mura.response;\n\t\tendpoint = endpoint || Mura.getAPIEndpoint();\n\t\tmode = mode || Mura.getMode()\n\t\trenderMode = (typeof renderMode != 'undefined') ? renderMode : Mura.getRenderMode()\n\t\treturn new Mura.RequestContext(request,response, headers, siteid, endpoint, mode, renderMode);\n\t}\n\n\t/**\n\t * getDefaultRequestContext - Returns the default Mura.RequestContext;\n\t *\n\t * @name getDefaultRequestContext\n\t * @return {Mura.RequestContext}\t Mura.RequestContext\n\t * @memberof Mura\n\t */\n\tfunction getDefaultRequestContext() {\n\t\treturn\tMura.getRequestContext();\n\t}\n\n\t/**\n\t * generateOAuthToken - Generate Outh toke for REST API\n\t *\n\t * @param\t{string} grant_type\tGrant type (Use client_credentials)\n\t * @param\t{type} client_id\t\t Client ID\n\t * @param\t{type} client_secret Secret Key\n\t * @return {Promise}\n\t * @memberof Mura\n\t */\n\tfunction generateOAuthToken(grant_type, client_id, client_secret) {\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tget(Mura.getAPIEndpoint().replace('/json/', '/rest/') + 'oauth?grant_type=' +\n\t\t\t\t\tencodeURIComponent(grant_type) + '&client_id=' + encodeURIComponent(client_id) + '&client_secret=' +\n\t\t\t\t\tencodeURIComponent(client_secret),\n\t\t\t\t\t{\n\t\t\t\t\t\tcache: 'no-cache'\n\t\t\t\t\t}).then(\n\t\t\t\t\tfunction(resp) {\n\t\t\t\t\t\tif (resp.data != 'undefined') {\n\t\t\t\t\t\t\tresolve(resp.data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof resp.error != 'undefined' && typeof reject == 'function') {\n\t\t\t\t\t\t\t\treject(resp);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresolve(resp);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t});\n\t}\n\n\tfunction each(selector, fn) {\n\t\tselect(selector).each(fn);\n\t}\n\n\tfunction on(el, eventName, fn) {\n\t\tif (eventName == 'ready') {\n\t\t\tMura.ready(fn);\n\t\t} else {\n\t\t\tif (typeof el.addEventListener == 'function') {\n\t\t\t\tel.addEventListener(\n\t\t\t\t\teventName,\n\t\t\t\t\tfunction(event) {\n\t\t\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\t\t\tfn(event);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfn.call(el, event);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction trigger(el, eventName, eventDetail) {\n\t\tif(typeof document != 'undefined'){\n\t\t\tvar bubbles = eventName == \"change\" ? false : true;\n\t\t\tif (document.createEvent) {\n\t\t\t\tif(eventDetail && !isEmptyObject(eventDetail)){\n\t\t\t\t\tvar event = document.createEvent('CustomEvent');\n\t\t\t\t\tevent.initCustomEvent(eventName, bubbles, true,eventDetail);\n\t\t\t\t} else {\n\n\t\t\t\t\tvar eventClass = \"\";\n\n\t\t\t\t\tswitch (eventName) {\n\t\t\t\t\t\tcase \"click\":\n\t\t\t\t\t\tcase \"mousedown\":\n\t\t\t\t\t\tcase \"mouseup\":\n\t\t\t\t\t\t\teventClass = \"MouseEvents\";\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase \"focus\":\n\t\t\t\t\t\tcase \"change\":\n\t\t\t\t\t\tcase \"blur\":\n\t\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\t\teventClass = \"HTMLEvents\";\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\teventClass = \"Event\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar event = document.createEvent(eventClass);\n\t\t\t\t\tevent.initEvent(eventName, bubbles, true);\n\t\t\t\t}\n\n\t\t\t\tevent.synthetic = true;\n\t\t\t\tel.dispatchEvent(event);\n\n\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t\tdocument.fireEvent(\"on\" + eventName);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\t\t\"Event failed to fire due to legacy browser: on\" +\n\t\t\t\t\t\t\t\t\teventName);\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction off(el, eventName, fn) {\n\t\tel.removeEventListener(eventName, fn);\n\t}\n\n\tfunction parseSelection(selector) {\n\t\tif (typeof selector == 'object' && Array.isArray(selector)) {\n\t\t\tvar selection = selector;\n\t\t} else if (typeof selector == 'string') {\n\t\t\tvar selection = nodeListToArray(document.querySelectorAll(selector));\n\t\t} else {\n\t\t\tif ( (typeof StaticNodeList != 'undefined' && selector instanceof StaticNodeList) ||\n\t\t\t\t(typeof NodeList != 'undefined' && selector instanceof NodeList) || (typeof HTMLCollection != 'undefined' &&\tselector instanceof HTMLCollection)\n\t\t\t) {\n\t\t\t\tvar selection = nodeListToArray(selector);\n\t\t\t} else {\n\t\t\t\tvar selection = [selector];\n\t\t\t}\n\t\t}\n\n\t\tif (typeof selection.length == 'undefined') {\n\t\t\tselection = [];\n\t\t}\n\n\t\treturn selection;\n\t}\n\n\tfunction isEmptyObject(obj) {\n\t\treturn (typeof obj != 'object' || Object.keys(obj).length == 0);\n\t}\n\n\tfunction filter(selector, fn) {\n\t\treturn select(parseSelection(selector)).filter(fn);\n\t}\n\n\tfunction nodeListToArray(nodeList) {\n\t\tvar arr = [];\n\t\tfor (var i = nodeList.length; i--; arr.unshift(nodeList[i]));\n\t\treturn arr;\n\t}\n\n\tfunction select(selector) {\n\t\treturn new Mura.DOMSelection(parseSelection(selector),selector);\n\t}\n\n\tfunction escapeHTML(str) {\n\t\tif(typeof document != 'undefined'){\n\t\t\tvar div = document.createElement('div');\n\t\t\tdiv.appendChild(document.createTextNode(str));\n\t\t\treturn div.innerHTML;\n\t\t} else {\n\t\t\treturn Mura._escapeHTML(str);\n\t\t}\n\t};\n\n\t// UNSAFE with unsafe strings; only use on previously-escaped ones!\n\tfunction unescapeHTML(escapedStr) {\n\t\tvar div = document.createElement('div');\n\t\tdiv.innerHTML = escapedStr;\n\t\tvar child = div.childNodes[0];\n\t\treturn child ? child.nodeValue : '';\n\t};\n\n\tfunction parseHTML(str) {\n\t\tvar tmp = document.implementation.createHTMLDocument();\n\t\ttmp.body.innerHTML = str;\n\t\treturn tmp.body.children;\n\t};\n\n\tfunction parseStringAsTemplate(stringValue){\n\t\tconst errors={};\n\t\tlet parsedString=stringValue;\n\t\tlet doLoop=true;\n\n\t\tdo {\n\t\t\tconst finder=/(\\${)(.+?)(})/.exec(parsedString)\n\t\t\tif(finder){\n\t\t\t\tlet template;\n\t\t\t\ttry {\n\t\t\t\t\ttemplate=eval('`${' + finder[2] + '}`');\n\t\t\t\t} catch(e){\n\t\t\t\t\tconsole.log('error parsing string template: ' + '${' + finder[2] + '}',e);\n\t\t\t\t\ttemplate='[error]' + finder[2] + '[/error]';\n\t\t\t\t}\n\t\t\t\tparsedString=parsedString.replace(finder[0],template);\n\t\t\t} else {\n\t\t\t\tdoLoop=false;\n\t\t\t}\n\t\t} while (doLoop)\n\n\t\tparsedString=parsedString.replace('[error]','${');\n\t\tparsedString=parsedString.replace('[/error]','}');\n\n\t\treturn parsedString;\n\t}\n\n\tfunction getData(el) {\n\t\tvar data = {};\n\t\tArray.prototype.forEach.call(el.attributes, function(attr) {\n\t\t\tif (/^data-/.test(attr.name)) {\n\t\t\t\tdata[attr.name.substr(5)] = parseString(attr.value);\n\t\t\t}\n\t\t});\n\n\t\treturn data;\n\t}\n\n\tfunction getProps(el) {\n\t\treturn getData(el);\n\t}\n\n\n\t/**\n\t * isNumeric - Returns if the value is numeric\n\t *\n\t * @name isNumeric\n\t * @param\t{*} val description\n\t * @return {boolean}\n\t * @memberof Mura\n\t */\n\tfunction isNumeric(val) {\n\t\t\treturn Number(parseFloat(val)) == val;\n\t}\n\n\t/**\n\t* buildDisplayRegion - Renders display region data returned from Mura.renderFilename()\n\t*\n\t* @param\t{any} data Region data to build string from\n\t* @return {string}\n\t*/\n\tfunction buildDisplayRegion(data){\n\n\t\tif(typeof data == 'undefined'){\n\t\t\treturn '';\n\t\t}\n\n\t\tvar str = \"
\";\n\n\t\tfunction buildItemHeader(data){\n\t\t\tvar classes=data.class || '';\n\t\t\tvar header=\"
\";\n\t\t\treturn header;\n\t\t}\n\n\t\tfunction buildRegionSectionHeader(section,name,perm,regionid){\n\t\t\tif(name){ \n\t\t\t\tif(section=='inherited'){\n\t\t\t\t\treturn \"
\" + escapeHTML(name.toUpperCase()) + \": Inherited
\";\n\t\t\t\t} else {\n\t\t\t\t\treturn \"
\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn \"
\";\t\n\t\t\t}\n\t\t}\n\n\t\tif(data.inherited.items.length){\n\t\t\tif(data.inherited.header){\n\t\t\t\tstr += data.inherited.header;\n\t\t\t} else {\n\t\t\t\tstr += buildRegionSectionHeader('inherited',data.name,data.inherited.perm,data.regionid);\n\t\t\t}\n\t\t\t\n\t\t\tfor(var i in data.inherited.items){\n\t\t\t\tif(data.inherited.items[i].header){\n\t\t\t\t\tstr += data.inherited.items[i].header;\n\t\t\t\t} else {\n\t\t\t\t\tstr += buildItemHeader(data.inherited.items[i]);\n\t\t\t\t}\n\t\t\t\tif(typeof data.inherited.items[i].html != 'undefined' && data.inherited.items[i].html){\n\t\t\t\t\tstr += data.inherited.items[i].html;\n\t\t\t\t}\n\t\t\t\tif(data.inherited.items[i].footer){\n\t\t\t\t\tstr += data.inherited.items[i].footer;\n\t\t\t\t} else {\n\t\t\t\t\tstr += \"
\"\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t\tstr += \"
\";\n\t\t\t\n\t\t}\n\n\t\tif(data.local.header){\n\t\t\tstr += data.local.header;\n\t\t} else {\n\t\t\tstr += buildRegionSectionHeader('local',data.name,data.local.perm,data.regionid);\n\t\t}\n\n\t\tif(data.local.items.length){\n\t\t\tfor(var i in data.local.items){\n\t\t\t\tif(data.local.items[i].header){\n\t\t\t\t\tstr += data.local.items[i].header;\n\t\t\t\t} else {\n\t\t\t\t\tstr += buildItemHeader(data.local.items[i]);\n\t\t\t\t}\n\t\t\t\tif(typeof data.local.items[i].html != 'undefined' && data.local.items[i].html){\n\t\t\t\t\tstr += data.local.items[i].html;\n\t\t\t\t}\n\t\t\t\tif(data.local.items[i].footer){\n\t\t\t\t\tstr += data.local.items[i].footer;\n\t\t\t\t} else {\n\t\t\t\t\tstr += '
'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t//when editing the region header contains two divs\n\t\tif(data.name){\n\t\t\tstr += \"
\";\n\t\t} else {\n\t\t\tstr += \"
\";\n\t\t}\n\n\t\tstr += \"\";\n\n\t\treturn str;\n\t}\n\n\tfunction parseString(val) {\n\t\t\tif (typeof val == 'string') {\n\t\t\t\tvar lcaseVal = val.toLowerCase();\n\n\t\t\t\tif (lcaseVal == 'false') {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (lcaseVal == 'true') {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tif (!(typeof val == 'string' && val.length == 35) &&\n\t\t\t\t\t\tisNumeric(val)) {\n\t\t\t\t\t\tvar numVal = parseFloat(val);\n\t\t\t\t\t\tif (numVal == 0 || !isNaN(1 / numVal)) {\n\t\t\t\t\t\t\treturn numVal;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar testVal = JSON.parse.call(null,val);\n\t\t\t\t\t\tif(typeof testVal != 'string'){\n\t\t\t\t\t\t\treturn testVal;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn val;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn val;\n\t\t\t}\n\n\t}\n\n\tfunction getAttributes(el) {\n\t\t\tvar data = {};\n\t\t\tArray.prototype.forEach.call(el.attributes, function(attr) {\n\t\t\t\tdata[attr.name] = attr.value;\n\t\t\t});\n\n\t\t\treturn data;\n\t}\n\n\t/**\n\t * formToObject - Returns if the value is numeric\n\t *\n\t * @name formToObject\n\t * @param\t{form} form Form to serialize\n\t * @return {object}\n\t * @memberof Mura\n\t */\n\tfunction formToObject(form) {\n\t\tvar field, s = {};\n\t\tif (typeof form == 'object' && form.nodeName == \"FORM\") {\n\t\t\tvar len = form.elements.length;\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\tfield = form.elements[i];\n\t\t\t\tif (field.name && !field.disabled && field.type !=\n\t\t\t\t\t'file' && field.type != 'reset' && field.type !=\n\t\t\t\t\t'submit' && field.type != 'button') {\n\t\t\t\t\tif (field.type == 'select-multiple') {\n\t\t\t\t\t\tvar val=[];\n\t\t\t\t\t\tfor (var j = form.elements[i].options.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tif (field.options[j].selected){\n\t\t\t\t\t\t\t\tval.push(field.options[j].value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts[field.name]=val.join(\",\");\n\t\t\t\t\t} else if ((field.type != 'checkbox' && field.type != 'radio') || field.checked) {\n\t\t\t\t\t\tif (typeof s[field.name] == 'undefined') {\n\t\t\t\t\t\t\ts[field.name] = field.value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts[field.name] = s[field.name] + ',' + field.value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn s;\n\t}\n\n\t//http://youmightnotneedjquery.com/\n\t/**\n\t * extend - Extends object one level\n\t *\n\t * @name extend\n\t * @return {object}\n\t * @memberof Mura\n\t */\n\tfunction extend(out) {\n\t\tout = out || {};\n\n\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\tif (!arguments[i])\n\t\t\t\tcontinue;\n\n\t\t\tfor (var key in arguments[i]) {\n\t\t\t\tif (key != '__proto__' && typeof arguments[i].hasOwnProperty != 'undefined' && arguments[i].hasOwnProperty(key) )\n\t\t\t\t\tout[key] = arguments[i][key];\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t};\n\n\t/**\n\t * deepExtend - Extends object to full depth\n\t *\n\t * @name deepExtend\n\t * @return {object}\n\t * @memberof Mura\n\t */\n\tfunction deepExtend(out) {\n\t\tout = out || {};\n\n\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\tvar obj = arguments[i];\n\n\t\t\tif (!obj)\n\t\t\t\tcontinue;\n\n\t\t\tfor (var key in obj) {\n\t\t\t\tif ( key != '__proto__' && typeof arguments[i].hasOwnProperty != 'undefined' && arguments[i].hasOwnProperty(key) ) {\n\t\t\t\t\tif (Array.isArray(obj[key])) {\n\t\t\t\t\t\tout[key] = obj[key].slice(0);\n\t\t\t\t\t} else if (typeof obj[key] === 'object') {\n\t\t\t\t\t\tout[key] = deepExtend({}, obj[key]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tout[key] = obj[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\n\t/**\n\t * createCookie - Creates cookie\n\t *\n\t * @name createCookie\n\t * @param\t{string} name\tName\n\t * @param\t{*} value Value\n\t * @param\t{number} days\tDays\n\t * @return {void}\n\t * @memberof Mura\n\t */\n\t\tfunction createCookie(name, value, days, domain) {\n\t\tif(days) {\n\t\t\tvar date = new Date();\n\t\t\tdate.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\t\t\tvar expires = \"; expires=\" + date.toGMTString();\n\t\t} else {\n\t\t\tvar expires = \"\";\n\t\t}\n\t\tif(typeof location != 'undefined' && location.protocol == 'https:'){\n\t\t\tvar secure='; secure; samesite=None;';\n\t\t} else {\n\t\t\tvar secure='';\n\t\t}\n\n\t\tif(typeof domain != 'undefined'){\n\t\t\tdomain='; domain=' + domain;\n\t\t} else {\n\t\t\tdomain='';\n\t\t}\n\t\tdocument.cookie = name + \"=\" + value + expires + \"; path=/\" + secure + domain;\n\t}\n\n\t/**\n\t * readCookie - Reads cookie value\n\t *\n\t * @name readCookie\n\t * @param\t{string} name Name\n\t * @return {*}\n\t * @memberof Mura\n\t */\n\tfunction readCookie(name) {\n\t\tvar nameEQ = name + \"=\";\n\t\tvar ca = document.cookie.split(';');\n\t\tfor (var i = 0; i < ca.length; i++) {\n\t\t\tvar c = ca[i];\n\t\t\twhile (c.charAt(0) == ' ') c = c.substring(1, c.length);\n\t\t\tif (c.indexOf(nameEQ) == 0) return unescape(c.substring(\n\t\t\t\tnameEQ.length, c.length));\n\t\t}\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * eraseCookie - Removes cookie value\n\t *\n\t * @name eraseCookie\n\t * @param\t{type} name description\n\t * @return {type}\t\t\tdescription\n\t * @memberof Mura\n\t */\n\tfunction eraseCookie(name) {\n\t\tcreateCookie(name, \"\", -1);\n\t}\n\n\tfunction $escape(value) {\n\t\tif (typeof encodeURIComponent != 'undefined') {\n\t\t\treturn encodeURIComponent(value)\n\t\t} else {\n\t\t\treturn escape(value).replace(\n\t\t\t\tnew RegExp(\"\\\\+\", \"g\"),\n\t\t\t\t\"%2B\"\n\t\t\t).replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\");\n\t\t}\n\t}\n\n\tfunction $unescape(value) {\n\t\treturn unescape(value);\n\t}\n\n\t//deprecated\n\tfunction addLoadEvent(func) {\n\t\tvar oldonload = onload;\n\t\tif (typeof onload != 'function') {\n\t\t\tonload = func;\n\t\t} else {\n\t\t\tonload = function() {\n\t\t\t\toldonload();\n\t\t\t\tfunc();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction noSpam(user, domain) {\n\t\tlocationstring = \"mailto:\" + user + \"@\" + domain;\n\t\tlocation = locationstring;\n\t}\n\n\t/**\n\t * isUUID - description\n\t *\n\t * @name isUUID\n\t * @param\t{*} value Value\n\t * @return {boolean}\n\t * @memberof Mura\n\t */\n\tfunction isUUID(value) {\n\t\tif (\n\t\t\ttypeof value == 'string' &&\n\t\t\t(\n\t\t\t\t\tvalue.length == 35 && value[8] == '-' && value[13] ==\n\t\t\t\t\t'-' && value[18] == '-' || value ==\n\t\t\t\t\t'00000000000000000000000000000000001' || value ==\n\t\t\t\t\t'00000000000000000000000000000000000' || value ==\n\t\t\t\t\t'00000000000000000000000000000000003' || value ==\n\t\t\t\t\t'00000000000000000000000000000000005' || value ==\n\t\t\t\t\t'00000000000000000000000000000000099'\n\t\t\t)\n\t\t) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/**\n\t * createUUID - Create UUID\n\t *\n\t * @name createUUID\n\t * @return {string}\n\t * @memberof Mura\n\t */\n\tfunction createUUID() {\n\t\tvar s = [], itoh = '0123456789ABCDEF';\n\n\t\t// Make array of random hex digits. The UUID only has 32 digits in it, but we\n\t\t// allocate an extra items to make room for the '-'s we'll be inserting.\n\t\tfor (var i = 0; i < 35; i++) s[i] = Math.floor(Math.random() * 0x10);\n\n\t\t// Conform to RFC-4122, section 4.4\n\t\ts[14] = 4; // Set 4 high bits of time_high field to version\n\t\ts[19] = (s[19] & 0x3) | 0x8; // Specify 2 high bits of clock sequence\n\n\t\t// Convert to hex chars\n\t\tfor (var i = 0; i < 36; i++) s[i] = itoh[s[i]];\n\n\t\t// Insert '-'s\n\t\ts[8] = s[13] = s[18] = '-';\n\n\t\treturn s.join('');\n\t}\n\n\t/**\n\t * setHTMLEditor - Set Html Editor\n\t *\n\t * @name setHTMLEditor\n\t * @param\t{dom.element} el Dom Element\n\t * @return {void}\n\t * @memberof Mura\n\t */\n\tfunction setHTMLEditor(el) {\n\n\t\tfunction initEditor() {\n\t\t\tvar instance = CKEDITOR.instances[el.getAttribute('id')];\n\t\t\tvar conf = {\n\t\t\t\theight: 200,\n\t\t\t\twidth: '70%'\n\t\t\t};\n\n\t\t\textend(conf, Mura(el).data());\n\n\t\t\tif (instance) {\n\t\t\t\tinstance.destroy();\n\t\t\t\tCKEDITOR.remove(instance);\n\t\t\t}\n\n\t\t\tCKEDITOR.replace(el.getAttribute('id'), getHTMLEditorConfig(conf), htmlEditorOnComplete);\n\t\t}\n\n\t\tfunction htmlEditorOnComplete(editorInstance) {\n\t\t\teditorInstance.resetDirty();\n\t\t\tvar totalIntances = CKEDITOR.instances;\n\t\t}\n\n\t\tfunction getHTMLEditorConfig(customConfig) {\n\t\t\tvar attrname = '';\n\t\t\tvar htmlEditorConfig = {\n\t\t\t\ttoolbar: 'htmlEditor',\n\t\t\t\tcustomConfig: 'config.js.cfm'\n\t\t\t}\n\n\t\t\tif (typeof(customConfig) == 'object') {\n\t\t\t\textend(htmlEditorConfig, customConfig);\n\t\t\t}\n\n\t\t\treturn htmlEditorConfig;\n\t\t}\n\n\t\tloader().loadjs(\n\t\t\tMura.corepath + '/vendor/ckeditor/ckeditor.js',\n\t\t\tfunction() {\n\t\t\t\tinitEditor();\n\t\t\t}\n\t);\n\n\t}\n\n\tvar commandKeyActive=false;\n\n\tvar keyCmdCheck = function(event) {\t\n\t\tswitch(event.which){\n\t\t\tcase 17: //ctrl\n\t\t\tcase 27: //escape\n\t\t\tcase 91: //cmd\n\t\t\t\tcommandKeyActive=event.which;\n\t\t\t\tbreak;\n\t\t\tcase 69:\n\t\t\t\tif (commandKeyActive) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tMura.editroute = Mura.editroute || \"/\";\n\t\t\t\t\tvar inEditRoute=typeof location.pathname.startsWith !='undefined' && location.pathname.startsWith(Mura.editroute);\n\t\t\t\t\tif(inEditRoute && typeof MuraInlineEditor != 'undefined'){\n\t\t\t\t\t\tMuraInlineEditor.init();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar params=getQueryStringParams(location.search);\n\t\t\t\t\t\tif(typeof params.editlayout == 'undefined'){\n\t\t\t\t\t\t\tMura.editroute=Mura.editroute || '';\n\t\t\t\t\t\t\tif(Mura.editroute){\n\t\t\t\t\t\t\t\tif(inEditRoute){\n\t\t\t\t\t\t\t\t\tif(typeof params.previewid != 'undefined'){\n\t\t\t\t\t\t\t\t\t\tlocation.href=Mura.editroute + location.pathname + \"?previewid=\" + params.previewid;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(typeof params.previewid != 'undefined'){\n\t\t\t\t\t\t\t\t\t\tlocation.href=Mura.editroute + location.pathname + \"?previewid=\" + params.previewid;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tlocation.href=Mura.editroute + location.pathname ;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 76:\n\t\t\t\tif (commandKeyActive) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tvar params=getQueryStringParams(location.search);\n\t\t\t\t\tif(params.display != 'login'){\n\t\t\t\t\t\tvar lu = '';\n\t\t\t\t\t\tvar ru = '';\n\t\t\t\n\t\t\t\t\t\tif (typeof(Mura.loginURL) != \"undefined\") {\n\t\t\t\t\t\t\tlu = Mura.loginURL;\n\t\t\t\t\t\t} else if (typeof(Mura.loginurl) != \"undefined\") {\n\t\t\t\t\t\t\tlu = Mura.loginurl;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlu = \"?display=login\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof(Mura.returnURL) != \"undefined\") {\n\t\t\t\t\t\t\tru = Mura.returnURL;\n\t\t\t\t\t\t} else if (typeof(Mura.returnurl) != \"undefined\") {\n\t\t\t\t\t\t\tru = Mura.returnurl;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tru = location.href;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlu = new String(lu);\n\t\t\t\t\t\tif (lu.indexOf('?') != -1) {\n\t\t\t\t\t\t\tlocation.href = lu + \"&returnUrl=\" + encodeURIComponent(ru);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlocation.href = lu + \"?returnUrl=\" + encodeURIComponent(ru);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcommandKeyActive=false;\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\n\t/**\n\t * isInteger - Returns if the value is an integer\n\t *\n\t * @name isInteger\n\t * @param\t{*} Value to check\n\t * @return {boolean}\n\t * @memberof Mura\n\t */\n\tfunction isInteger(s) {\n\t\tvar i;\n\t\tfor (i = 0; i < s.length; i++) {\n\t\t\t// Check that current character is number.\n\t\t\tvar c = s.charAt(i);\n\t\t\tif (((c < \"0\") || (c > \"9\"))) return false;\n\t\t}\n\t\t// All characters are numbers.\n\t\treturn true;\n\t}\n\n\tfunction createDate(str) {\n\n\t\tvar valueArray = str.split(\"/\");\n\n\t\tvar mon = valueArray[0];\n\t\tvar dt = valueArray[1];\n\t\tvar yr = valueArray[2];\n\n\t\tvar date = new Date(yr, mon - 1, dt);\n\n\t\tif (!isNaN(date.getMonth())) {\n\t\t\treturn date;\n\t\t} else {\n\t\t\treturn new Date();\n\t\t}\n\n\t}\n\n\tfunction dateToString(date) {\n\t\tvar mon = date.getMonth() + 1;\n\t\tvar dt = date.getDate();\n\t\tvar yr = date.getFullYear();\n\n\t\tif (mon < 10) {\n\t\t\t\tmon = \"0\" + mon;\n\t\t}\n\t\tif (dt < 10) {\n\t\t\t\tdt = \"0\" + dt;\n\t\t}\n\n\n\t\treturn mon + \"/\" + dt + \"/20\" + new String(yr).substring(2, 4);\n\t}\n\n\n\tfunction stripCharsInBag(s, bag) {\n\t\tvar i;\n\t\tvar returnString = \"\";\n\t\t// Search through string's characters one by one.\n\t\t// If character is not in bag, append to returnString.\n\t\tfor (i = 0; i < s.length; i++) {\n\t\t\tvar c = s.charAt(i);\n\t\t\tif (bag.indexOf(c) == -1) returnString += c;\n\t\t}\n\t\treturn returnString;\n\t}\n\n\tfunction daysInFebruary(year) {\n\t\t// February has 29 days in any year evenly divisible by four,\n\t\t// EXCEPT for centurial years which are not also divisible by 400.\n\t\treturn (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);\n\t}\n\n\tfunction DaysArray(n) {\n\t\tfor (var i = 1; i <= n; i++) {\n\t\t\tthis[i] = 31\n\t\t\tif (i == 4 || i == 6 || i == 9 || i == 11) {\n\t\t\t\tthis[i] = 30\n\t\t\t}\n\t\t\tif (i == 2) {\n\t\t\t\tthis[i] = 29\n\t\t\t}\n\t\t}\n\t\treturn this\n\t}\n\n\t/**\n\t * generateDateFormat - dateformt for input type=\"date\"\n\t*/\n\t\tfunction generateDateFormat(dtStr, fldName) {\n\t\t\tvar formatArray=['mm','dd','yyyy'];\n\n\t\t\treturn [\n\t\t\t\tformatArray[Mura.dtformat[0]],\n\t\t\t\tformatArray[Mura.dtformat[1]],\n\t\t\t\tformatArray[Mura.dtformat[2]]\n\t\t\t].join(Mura.dtch);\n\n\t\t}\n\n\t/**\n\t * isDate - Returns if the value is a data\n\t *\n\t * @name isDate\n\t * @param\t{*}\tValue to check\n\t * @return {boolean}\n\t * @memberof Mura\n\t */\n\tfunction isDate(dtStr, fldName) {\n\t\tvar daysInMonth = DaysArray(12);\n\t\tvar dtArray = dtStr.split(Mura.dtch);\n\n\t\tif (dtArray.length != 3) {\n\t\t\t//alert(\"The date format for the \"+fldName+\" field should be : short\")\n\t\t\treturn false\n\t\t}\n\t\tvar strMonth = dtArray[Mura.dtformat[0]];\n\t\tvar strDay = dtArray[Mura.dtformat[1]];\n\t\tvar strYear = dtArray[Mura.dtformat[2]];\n\n\t\t/*\n\t\tif(strYear.length == 2){\n\t\t\tstrYear=\"20\" + strYear;\n\t\t}\n\t\t*/\n\t\tstrYr = strYear;\n\n\t\tif (strDay.charAt(0) == \"0\" && strDay.length > 1) strDay = strDay.substring(1)\n\t\tif (strMonth.charAt(0) == \"0\" && strMonth.length > 1) strMonth = strMonth.substring(1)\n\t\tfor (var i = 1; i <= 3; i++) {\n\t\t\tif (strYr.charAt(0) == \"0\" && strYr.length > 1) strYr = strYr.substring(1)\n\t\t}\n\n\t\tmonth = parseInt(strMonth)\n\t\tday = parseInt(strDay)\n\t\tyear = parseInt(strYr)\n\n\t\tif (month < 1 || month > 12) {\n\t\t\t//alert(\"Please enter a valid month in the \"+fldName+\" field\")\n\t\t\treturn false\n\t\t}\n\t\tif (day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {\n\t\t\t//alert(\"Please enter a valid day\tin the \"+fldName+\" field\")\n\t\t\treturn false\n\t\t}\n\t\tif (strYear.length != 4 || year == 0 || year < Mura.minYear || year > Mura.maxYear) {\n\t\t\t//alert(\"Please enter a valid 4 digit year between \"+Mura.minYear+\" and \"+Mura.maxYear +\" in the \"+fldName+\" field\")\n\t\t\treturn false\n\t\t}\n\t\tif (isInteger(stripCharsInBag(dtStr, Mura.dtch)) == false) {\n\t\t\t//alert(\"Please enter a valid date in the \"+fldName+\" field\")\n\t\t\treturn false\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * isEmail - Returns if value is valid email\n\t *\n\t * @param\t{string} str String to parse for email\n\t * @return {boolean}\n\t * @memberof Mura\n\t */\n\tfunction isEmail(e) {\n\t\treturn /^[a-zA-Z_0-9-'\\+~]+(\\.[a-zA-Z_0-9-'\\+~]+)*@([a-zA-Z_0-9-]+\\.)+[a-zA-Z]{2,8}$/.test(e);\n\t}\n\n\tfunction initShadowBox(el) {\n\t\tif(typeof window =='undefined' || typeof window.document == 'undefined'){\n\t\t\treturn;\n\t\t};\n\n\t\tif (Mura(el).find('[data-rel^=\"shadowbox\"],[rel^=\"shadowbox\"]').length) {\n\t\t\tloader().load(\n\t\t\t\t[\n\t\t\t\t\tMura.context + '/core/modules/v1/core_assets/css/shadowbox.min.css',\n\t\t\t\t\tMura.context + '/core/modules/v1/core_assets/js/shadowbox.js'\n\t\t\t\t],\n\t\t\t\tfunction() {\n\t\t\t\t\tMura('#shadowbox_overlay,#shadowbox_container').remove();\n\t\t\t\t\twindow.Shadowbox.init();\n\t\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * validateForm - Validates Mura form\n\t *\n\t * @name validateForm\n\t * @param\t{type} frm\t\t\t\t\tForm element to validate\n\t * @param\t{function} customaction Custom action (optional)\n\t * @return {boolean}\n\t * @memberof Mura\n\t */\n\tfunction validateForm(frm, customaction) {\n\n\t\tfunction getValidationFieldName(theField) {\n\t\t\tif (theField.getAttribute('data-label') != undefined) {\n\t\t\t\treturn theField.getAttribute('data-label');\n\t\t\t} else if (theField.getAttribute('label') != undefined) {\n\t\t\t\treturn theField.getAttribute('label');\n\t\t\t} else {\n\t\t\t\treturn theField.getAttribute('name');\n\t\t\t}\n\t\t}\n\n\t\tfunction getValidationIsRequired(theField) {\n\t\t\tif (theField.getAttribute('data-required') != undefined) {\n\t\t\t\treturn (theField.getAttribute('data-required').toLowerCase() == 'true');\n\t\t\t} else if (theField.getAttribute('required') != undefined) {\n\t\t\t\treturn (theField.getAttribute('required').toLowerCase() == 'true');\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfunction getValidationMessage(theField, defaultMessage) {\n\t\t\tif (theField.getAttribute('data-message') != undefined) {\n\t\t\t\treturn theField.getAttribute('data-message');\n\t\t\t} else if (theField.getAttribute('message') != undefined) {\n\t\t\t\treturn theField.getAttribute('message');\n\t\t\t} else {\n\t\t\t\treturn getValidationFieldName(theField).toUpperCase() + defaultMessage;\n\t\t\t}\n\t\t}\n\n\t\tfunction getValidationType(theField) {\n\t\t\tif (theField.getAttribute('data-validate') != undefined) {\n\t\t\t\treturn theField.getAttribute('data-validate').toUpperCase();\n\t\t\t} else if (theField.getAttribute('validate') != undefined) {\n\t\t\t\treturn theField.getAttribute('validate').toUpperCase();\n\t\t\t} else {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tfunction hasValidationMatchField(theField) {\n\t\t\tif (theField.getAttribute('data-matchfield') != undefined &&\n\t\t\t\ttheField.getAttribute('data-matchfield') != '') {\n\t\t\t\treturn true;\n\t\t\t} else if (theField.getAttribute('matchfield') != undefined &&\n\t\t\t\ttheField.getAttribute('matchfield') != '') {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfunction getValidationMatchField(theField) {\n\t\t\tif (theField.getAttribute('data-matchfield') != undefined) {\n\t\t\t\treturn theField.getAttribute('data-matchfield');\n\t\t\t} else if (theField.getAttribute('matchfield') != undefined) {\n\t\t\t\treturn theField.getAttribute('matchfield');\n\t\t\t} else {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tfunction hasValidationRegex(theField) {\n\t\t\tif (theField.value != undefined) {\n\t\t\t\tif (theField.getAttribute('data-regex') != undefined &&\n\t\t\t\t\ttheField.getAttribute('data-regex') != '') {\n\t\t\t\t\treturn true;\n\t\t\t\t} else if (theField.getAttribute('regex') != undefined &&\n\t\t\t\t\ttheField.getAttribute('regex') != '') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfunction getValidationRegex(theField) {\n\t\t\t\tif (theField.getAttribute('data-regex') != undefined) {\n\t\t\t\t\t\treturn theField.getAttribute('data-regex');\n\t\t\t\t} else if (theField.getAttribute('regex') != undefined) {\n\t\t\t\t\t\treturn theField.getAttribute('regex');\n\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t}\n\n\t\tvar theForm = frm;\n\t\tvar errors = \"\";\n\t\tvar setFocus = 0;\n\t\tvar started = false;\n\t\tvar startAt;\n\t\tvar firstErrorNode;\n\t\tvar validationType = '';\n\t\tvar validations = {\n\t\t\t\tproperties: {}\n\t\t};\n\t\tvar frmInputs = theForm.getElementsByTagName(\"input\");\n\t\tvar rules = new Array();\n\t\tvar data = {};\n\t\tvar $customaction = customaction;\n\n\t\tfor (var f = 0; f < frmInputs.length; f++) {\n\t\t\tvar theField = frmInputs[f];\n\t\t\tvalidationType = getValidationType(theField).toUpperCase();\n\n\t\t\trules = new Array();\n\n\t\t\tif (theField.style.display == \"\") {\n\t\t\t\tif (getValidationIsRequired(theField)) {\n\t\t\t\t\trules.push({\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tmessage: getValidationMessage(theField,\n\t\t\t\t\t\t\t\t' is required.')\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (validationType != '') {\n\t\t\t\t\tif (validationType == 'EMAIL' && theField.value != \t'') {\n\t\t\t\t\t\trules.push({\n\t\t\t\t\t\t\tdataType: 'EMAIL',\n\t\t\t\t\t\t\tmessage: getValidationMessage(\n\t\t\t\t\t\t\t\t\ttheField,\n\t\t\t\t\t\t\t\t\t' must be a valid email address.'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (validationType == 'NUMERIC' && theField.value !=\n\t\t\t\t\t\t'') {\n\t\t\t\t\t\trules.push({\n\t\t\t\t\t\t\t\tdataType: 'NUMERIC',\n\t\t\t\t\t\t\t\tmessage: getValidationMessage(\n\t\t\t\t\t\t\t\t\t\ttheField,\n\t\t\t\t\t\t\t\t\t\t' must be numeric.')\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (validationType == 'REGEX' && theField.value != '' && hasValidationRegex(theField)) {\n\t\t\t\t\t\trules.push({\n\t\t\t\t\t\t\tregex: getValidationRegex(theField),\n\t\t\t\t\t\t\tmessage: getValidationMessage(\n\t\t\t\t\t\t\t\t\ttheField, ' is not valid.')\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (validationType == 'MATCH' &&\n\t\t\t\t\t\thasValidationMatchField(theField) && theField.value !=\n\t\t\t\t\t\ttheForm[getValidationMatchField(theField)].value\n\t\t\t\t\t) {\n\t\t\t\t\t\trules.push({\n\t\t\t\t\t\t\teq: theForm[getValidationMatchField(theField)].value,\n\t\t\t\t\t\t\tmessage: getValidationMessage(\n\t\t\t\t\t\t\t\ttheField, ' must match' +\n\t\t\t\t\t\t\t\tgetValidationMatchField(\n\t\t\t\t\t\t\t\t\t\ttheField) + '.')\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (validationType == 'DATE' && theField.value != '') {\n\t\t\t\t\t\trules.push({\n\t\t\t\t\t\t\tdataType: 'DATE',\n\t\t\t\t\t\t\tmessage: getValidationMessage(\n\t\t\t\t\t\t\t\ttheField,\n\t\t\t\t\t\t\t\t' must be a valid date [MM/DD/YYYY].'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (rules.length) {\n\t\t\t\t\tvalidations.properties[theField.getAttribute('name')] = rules;\n\n\t\t\t\t\t//if(!Array.isArray(data[theField.getAttribute('name')])){\n\t\t\t\t\t\tdata[theField.getAttribute('name')]=[];\n\t\t\t\t\t//}\n\n\t\t\t\t\tfor (var v = 0; v < frmInputs.length; v++) {\n\t\t\t\t\t\tif(frmInputs[v].getAttribute('name')==theField.getAttribute('name')){\n\t\t\t\t\t\t\tif(frmInputs[v].getAttribute('type').toLowerCase()=='checkbox'\n\t\t\t\t\t\t\t\t|| frmInputs[v].getAttribute('type').toLowerCase()=='radio'\n\t\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\t\tif(frmInputs[v].checked){\n\t\t\t\t\t\t\t\t\t\tdata[theField.getAttribute('name')].push(frmInputs[v].value);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else if(typeof frmInputs[v].value != 'undefined' && frmInputs[v].value != '') {\n\t\t\t\t\t\t\t\tdata[theField.getAttribute('name')].push(frmInputs[v].value)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor(var p in data){\n\t\t\tif(data.hasOwnProperty(p)){\n\t\t\t\tdata[p]=data[p].join();\n\t\t\t}\n\t\t}\n\n\t\tvar frmTextareas = theForm.getElementsByTagName(\"textarea\");\n\t\tfor (f = 0; f < frmTextareas.length; f++) {\n\t\t\ttheField = frmTextareas[f];\n\t\t\tvalidationType = getValidationType(theField);\n\n\t\t\trules = new Array();\n\n\t\t\tif (theField.style.display == \"\" && getValidationIsRequired(theField)) {\n\t\t\t\trules.push({\n\t\t\t\t\trequired: true,\n\t\t\t\t\tmessage: getValidationMessage(theField,' is required.')\n\t\t\t\t});\n\n\t\t\t} else if (validationType != '') {\n\t\t\t\tif (validationType == 'REGEX' && theField.value != '' &&\n\t\t\t\t\thasValidationRegex(theField)) {\n\t\t\t\t\trules.push({\n\t\t\t\t\t\tregex: getValidationRegex(theField),\n\t\t\t\t\t\tmessage: getValidationMessage(theField,' is not valid.')\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rules.length) {\n\t\t\t\t\tvalidations.properties[theField.getAttribute('name')] =\n\t\t\t\t\t\t\trules;\n\t\t\t\t\tdata[theField.getAttribute('name')] = theField.value;\n\t\t\t}\n\t\t}\n\n\t\tvar frmSelects = theForm.getElementsByTagName(\"select\");\n\t\tfor (f = 0; f < frmSelects.length; f++) {\n\t\t\ttheField = frmSelects[f];\n\t\t\tvalidationType = getValidationType(theField);\n\n\t\t\trules = new Array();\n\n\t\t\tif (theField.style.display == \"\" && getValidationIsRequired(theField)) {\n\t\t\t\trules.push({\n\t\t\t\t\trequired: true,\n\t\t\t\t\tmessage: getValidationMessage(theField,' is required.')\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (rules.length) {\n\t\t\t\tvalidations.properties[theField.getAttribute('name')] =\trules;\n\t\t\t\tdata[theField.getAttribute('name')] = theField.value;\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\t//alert(JSON.stringify(validations));\n\t\t\t//console.log(data);\n\t\t\t//console.log(validations);\n\t\t\tajax({\n\t\t\t\ttype: 'post',\n\t\t\t\turl: Mura.getAPIEndpoint() + '?method=validate',\n\t\t\t\tdata: {\n\t\t\t\t\tdata: encodeURIComponent(JSON.stringify(data)),\n\t\t\t\t\tvalidations: encodeURIComponent(JSON.stringify(validations)),\n\t\t\t\t\tversion: 4\n\t\t\t\t},\n\t\t\t\tsuccess(resp) {\n\n\t\t\t\t\tdata = resp.data;\n\n\t\t\t\t\tif (Object.keys(data).length === 0) {\n\t\t\t\t\t\tif (typeof $customaction ==\n\t\t\t\t\t\t\t'function') {\n\t\t\t\t\t\t\t$customaction(theForm);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdocument.createElement('form').submit.call(theForm);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar msg = '';\n\t\t\t\t\t\tfor (var e in data) {\n\t\t\t\t\t\t\tmsg = msg + data[e] + '\\n';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\talert(msg);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror(resp) {\n\t\t\t\t\talert(JSON.stringify(resp));\n\t\t\t\t}\n\n\t\t\t});\n\t\t} catch (err) {\n\t\t\t\tconsole.log(err);\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction setLowerCaseKeys(obj) {\n\t\tfor (var key in obj) {\n\t\t\tif (key !== key.toLowerCase()) { // might already be in its lower case version\n\t\t\t\tobj[key.toLowerCase()] = obj[key] // swap the value to a new lower case key\n\t\t\t\tdelete obj[key] // delete the old key\n\t\t\t}\n\t\t\tif (typeof obj[key.toLowerCase()] == 'object') {\n\t\t\t\tsetLowerCaseKeys(obj[key.toLowerCase()]);\n\t\t\t}\n\t\t}\n\n\t\treturn (obj);\n\t}\n\n\tfunction isScrolledIntoView(el) {\n\t\tif (typeof window =='undefined' || typeof window.document == 'undefined' || window.innerHeight) {\n\t\t\ttrue;\n\t\t}\n\n\t\ttry {\n\t\t\tvar elemTop = el.getBoundingClientRect().top;\n\t\t\tvar elemBottom = el.getBoundingClientRect().bottom;\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\n\t\tvar isVisible = elemTop < window.innerHeight && elemBottom >= 0;\n\t\treturn isVisible;\n\n\t}\n\n\t/**\n\t * loader - Returns Mura.Loader\n\t *\n\t * @name loader\n\t * @return {Mura.Loader}\n\t * @memberof Mura\n\t */\n\tfunction loader() {\n\t\treturn Mura.ljs;\n\t}\n\n\n\tvar layoutmanagertoolbar =\n\t\t\t'
';\n\n\tfunction processMarkup(scope) {\n\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\tif (!(scope instanceof Mura.DOMSelection)) {\n\t\t\t\tscope = select(scope);\n\t\t\t}\n\n\t\t\tfunction find(selector) {\n\t\t\t\treturn scope.find(selector);\n\t\t\t}\n\n\t\t\tvar processors = [\n\n\t\t\t\tfunction(){\n\t\t\t\t\t//if layout manager UI exists check for rendered regions and remove them from additional regions\n\t\t\t\t\tif(Mura('.mura__layout-manager__display-regions').length){\n\t\t\t\t\t\tfind('.mura-region').each(function(el){\n\t\t\t\t\t\t\tvar region=Mura(el);\n\t\t\t\t\t\t\tif(!region.closest('.mura__layout-manager__display-regions').length){\n\t\t\t\t\t\t\t\tMura('.mura-region__item[data-regionid=\"' + region.data('regionid') + '\"]').remove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif(!Mura('.mura__layout-manager__display-regions .mura-region__item').length){\n\t\t\t\t\t\t\tMura('#mura-objects-openregions-btn, .mura__layout-manager__display-regions').remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tfind('.mura-object, .mura-async-object')\n\t\t\t\t\t\t.each(function(el) {\n\t\t\t\t\t\t\tif(scope==document){\n\t\t\t\t\t\t\t\tvar obj=Mura(el);\n\t\t\t\t\t\t\t\tif(!obj.parent().closest('.mura-object').length){\n\t\t\t\t\t\t\t\t\tprocessDisplayObject(this,\n\t\t\t\t\t\t\t\t\t\tMura.queueobjects).then(\n\t\t\t\t\t\t\t\t\t\tresolve);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tprocessDisplayObject(el,\n\t\t\t\t\t\t\t\t\tMura.queueobjects).then(\n\t\t\t\t\t\t\t\t\tresolve);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tfind(\".htmlEditor\").each(function(el) {\n\t\t\t\t\t\tsetHTMLEditor(el);\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tif (find(\".cffp_applied,\t.cffp_mm, .cffp_kp\").length) {\n\t\t\t\t\t\tvar fileref = document.createElement('script')\n\t\t\t\t\t\tfileref.setAttribute(\"type\",\"text/javascript\")\n\t\t\t\t\t\tfileref.setAttribute(\"src\", Mura.corepath + '/vendor/cfformprotect/js/cffp.js')\n\n\t\t\t\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(fileref )\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tMura.reCAPTCHALanguage = Mura.reCAPTCHALanguage || 'en';\n\n\t\t\t\t\tif (find(\".g-recaptcha-container\").length) {\n\t\t\t\t\t\tloader().loadjs(\"https://www.recaptcha.net/recaptcha/api.js?onload=MuraCheckForReCaptcha&render=explicit&hl=\" + Mura.reCAPTCHALanguage,\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tfind(\".g-recaptcha-container\").each(function(el) {\n\t\t\t\t\t\t\t\t\tvar notready=0;;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\twindow.MuraCheckForReCaptcha=function() {\n\t\t\t\t\t\t\t\t\t\tMura('.g-recaptcha-container').each(function(){\n\t\t\t\t\t\t\t\t\t\t\tvar self=this;\n\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof grecaptcha ==\t'object'\n\t\t\t\t\t\t\t\t\t\t\t\t&& typeof grecaptcha.render != 'undefined'\n\t\t\t\t\t\t\t\t\t\t\t\t&&\t!self.innerHTML\n\t\t\t\t\t\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\t\t\t\t\t\tself\n\t\t\t\t\t\t\t\t\t\t\t\t\t.setAttribute(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'data-widgetid',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgrecaptcha\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.render(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tself.getAttribute('id'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'sitekey': self.getAttribute('data-sitekey'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'theme': self.getAttribute('data-theme'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'type': self.getAttribute('data-type')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tnotready++;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif(notready){\n\t\t\t\t\t\t\t\t\t\t\tsetTimeout(\n\t\t\t\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\t\t\t\twindow.MuraCheckForReCaptcha();\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t10\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\twindow.MuraCheckForReCaptcha();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tif (typeof resizeEditableObject == 'function') {\n\n\t\t\t\t\t\tscope.closest('.editableObject').each(\n\t\t\t\t\t\tfunction(el) {\n\t\t\t\t\t\t\tresizeEditableObject(el);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tfind(\".editableObject\").each(\n\t\t\t\t\t\tfunction(el) {\n\t\t\t\t\t\t\tresizeEditableObject(el);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tif (Mura.handleObjectClick == 'function') {\n\t\t\t\t\t\tfind('.mura-object, .frontEndToolsModal').on('click',Mura.handleObjectClick);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (typeof window !='undefined' && typeof window.document != 'undefined'\t&& window.MuraInlineEditor\n\t\t\t\t\t\t\t&& window.MuraInlineEditor.checkforImageCroppers) {\n\t\t\t\t\t\t\tfind(\"img\").each(function(el) {\n\t\t\t\t\t\t\t\t\twindow.muraInlineEditor.checkforImageCroppers(\n\t\t\t\t\t\t\t\t\t\tel);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\n\t\t\t\t},\n\n\t\t\t\tfunction() {\n\t\t\t\t\tinitShadowBox(scope.node);\n\t\t\t\t}\n\t\t\t];\n\n\n\t\t\tfor (var h = 0; h < processors.length; h++) {\n\t\t\t\tprocessors[h]();\n\t\t\t}\n\n\t\t});\n\n\t}\n\n\tfunction addEventHandler(eventName, fn) {\n\t\tif (typeof eventName == 'object') {\n\t\t\tfor (var h in eventName) {\n\t\t\t\tif(eventName.hasOwnProperty(h)){\n\t\t\t\t\ton(document, h, eventName[h]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ton(document, eventName, fn);\n\t\t}\n\t}\n\n\n\tfunction submitForm(frm, obj) {\n\t\tfrm = (frm.node) ? frm.node : frm;\n\n\t\tif (obj) {\n\t\t\tobj = (obj.node) ? obj : Mura(obj);\n\t\t} else {\n\t\t\tobj = Mura(frm).closest('.mura-async-object');\n\t\t}\n\n\t\tif (!obj.length) {\n\t\t\tMura(frm).trigger('formSubmit', formToObject(frm));\n\t\t\tfrm.submit();\n\t\t}\n\n\t\tif (frm.getAttribute('enctype') == 'multipart/form-data') {\n\n\t\t\tvar data = new FormData(frm);\n\t\t\tvar checkdata = setLowerCaseKeys(formToObject(frm));\n\t\t\tvar keys = filterUnwantedParams(\n\t\t\t\t\tdeepExtend(\n\t\t\t\t\t\tsetLowerCaseKeys(obj.data()),\n\t\t\t\t\t\turlparams,\n\t\t\t\t\t\t{\n\t\t\t\t\t\tsiteid: Mura.siteid,\n\t\t\t\t\t\tcontentid: Mura.contentid,\n\t\t\t\t\t\tcontenthistid: Mura.contenthistid,\n\t\t\t\t\t\tnocache: 1\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t);\n\n\t\t\tif(obj.data('siteid')){\n\t\t\t\tkeys.siteid=obj.data('siteid');\n\t\t\t}\n\n\t\t\tfor (var k in keys) {\n\t\t\t\tif (!(k in checkdata)) {\n\t\t\t\t\tdata.append(k, keys[k]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('objectparams' in checkdata) {\n\t\t\t\tdata.append('objectparams2', encodeURIComponent(JSON.stringify(obj.data('objectparams'))));\n\t\t\t}\n\n\t\t\tif ('nocache' in checkdata) {\n\t\t\t\tdata.append('nocache', 1);\n\t\t\t}\n\n\t\t\tvar postconfig = {\n\t\t\t\turl: Mura.getAPIEndpoint() + '?method=processAsyncObject',\n\t\t\t\ttype: 'POST',\n\t\t\t\tdata: data,\n\t\t\t\tsuccess(resp) {\n\t\t\t\t\t//console.log(data.object,resp)\n\t\t\t\t\tsetTimeout(function(){handleResponse(obj, resp)},0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tvar data = filterUnwantedParams(\n\t\t\t\tdeepExtend(\n\t\t\t\t\tsetLowerCaseKeys(obj.data()),\n\t\t\t\t\turlparams,\n\t\t\t\t\tsetLowerCaseKeys(formToObject(frm)),\n\t\t\t\t\t{\n\t\t\t\t\t\tsiteid: Mura.siteid,\n\t\t\t\t\t\tcontentid: Mura.contentid,\n\t\t\t\t\t\tcontenthistid: Mura.contenthistid,\n\t\t\t\t\t\tnocache: 1\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t\n\t\t\tif(obj.data('siteid')){\n\t\t\t\tdata.siteid=obj.data('siteid');\n\t\t\t}\n\n\t\t\tif (data.object == 'container' && data.content) {\n\t\t\t\tdelete data.content;\n\t\t\t}\n\n\t\t\tif (!('g-recaptcha-response' in data)) {\n\t\t\t\tvar reCaptchaCheck = Mura(frm).find(\"#g-recaptcha-response\");\n\n\t\t\t\tif (reCaptchaCheck.length && typeof reCaptchaCheck.val() != 'undefined') {\n\t\t\t\t\tdata['g-recaptcha-response'] = eCaptchaCheck.val();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('objectparams' in data) {\n\t\t\t\tdata['objectparams'] = encodeURIComponent(JSON.stringify(data['objectparams']));\n\t\t\t}\n\n\t\t\tvar postconfig = {\n\t\t\t\turl: Mura.getAPIEndpoint() + '?method=processAsyncObject',\n\t\t\t\ttype: 'POST',\n\t\t\t\tdata: data,\n\t\t\t\tsuccess(resp) {\n\t\t\t\t\t//console.log(data.object,resp)\n\t\t\t\t\tsetTimeout(function(){handleResponse(obj, resp)},0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar self = obj.node;\n\t\tself.prevInnerHTML = self.innerHTML;\n\t\tself.prevData = filterUnwantedParams(obj.data());\n\n\t\tif(typeof self.prevData != 'undefined' && typeof self.prevData.preloadermarkup != 'undefined'){\n\t\t\tself.innerHTML = self.prevData.preloadermarkup;\n\t\t} else {\n\t\t\tself.innerHTML = Mura.preloadermarkup;\n\t\t}\n\n\t\tMura(frm).trigger('formSubmit', data);\n\n\t\tajax(postconfig);\n\t}\n\n\tfunction firstToUpperCase(str) {\n\t\treturn str.substr(0, 1).toUpperCase() + str.substr(1);\n\t}\n\n\tfunction firstToLowerCase(str) {\n\t\treturn str.substr(0, 1).toLowerCase() + str.substr(1);\n\t}\n\n\tfunction cleanModuleProps(obj){\n\t\tif(obj){\n\t\t\tvar dataTargets=['runtime','perm','startrow','pagenum','pageidx','nextnid','purgecache','origininstanceid'];\n\t\t\t\n\t\t\tif(typeof obj.removeAttr == 'function'){\n\t\t\t\tdataTargets.forEach(function(item){\n\t\t\t\t\tobj.removeAttr('data-' + item);\n\t\t\t\t});\n\n\t\t\t\tif(obj.hasAttr('data-cachedwithin') && !obj.attr('data-cachedwithin')){\n\t\t\t\t\tobj.removeAttr('data-cachedwithin');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataTargets.forEach(function(item){\n\t\t\t\t\tif(typeof obj[item] != 'undefined'){\n\t\t\t\t\t\tdelete obj[item];\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tdelete obj.inited;\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t}\n\n\n\tfunction resetAsyncObject(el,empty) {\n\t\tvar self = Mura(el);\n\t\t\n\t\tif(self.data('transient')){\n\t\t\tself.remove();\n\t\t} else { \n\t\t\n\t\t\tif(typeof empty =='undefined'){\n\t\t\t\tempty=true;\n\t\t\t}\n\t\t\t\n\t\t\tcleanModuleProps(self);\n\n\t\t\tif(empty){\n\t\t\t\tself.removeAttr('data-inited');\n\t\t\t}\n\t\t\t\n\t\t\tvar data=self.data();\n\n\t\t\tfor(var p in data){\n\t\t\t\tif(data.hasOwnProperty(p) && (typeof p == 'undefined' || data[p] === '')){\n\t\t\t\t\tself.removeAttr('data-' + p);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(typeof Mura.displayObjectInstances[self.data('instanceid')] != 'undefined'){\n\t\t\t\tMura.displayObjectInstances[self.data('instanceid')].reset(self,empty);\n\t\t\t}\n\n\t\t\tif(empty){\n\t\t\t\tself.html('');\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction processAsyncObject(el,usePreloaderMarkup) {\n\t\t\tvar obj = Mura(el);\n\t\t\tif (obj.data('async') === null) {\n\t\t\t\t\tobj.data('async', true);\n\t\t\t}\n\n\t\t\tif(typeof usePreloaderMarkup == 'undefined'){\n\t\t\t\tusePreloaderMarkup=true;\n\t\t\t}\n\n\t\t\treturn processDisplayObject(obj, false, true,false,usePreloaderMarkup);\n\t}\n\n\tfunction filterUnwantedParams(params){\n\n\t\t//Strip out unwanted attributes\n\t\tvar unwanted=['iconclass','objectname','inited','params','stylesupport','cssstyles','metacssstyles','contentcssstyles',\n\t\t\t'cssclass','cssid','metacssclass','metacssid','contentcssclass','contentcssid','transient','draggable','objectspacing','metaspacing',\n\t\t\t'contentspacing'];\n\n\t\tfor(var c=0; c/i);\n\n\t\t\t\t\tfor(var p in requestData){\n\t\t\t\t\t\tif(requestData.hasOwnProperty(p)){\n\t\t\t\t\t\t\tlet val=requestData[p];\n\t\t\t\t\t\t\tif(typeof val == 'object'){\n\t\t\t\t\t\t\t\tval=JSON.stringify(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(val && postCheck.test(val)\n\t\t\t\t\t\t\t){\n\t\t\t\t\t\t\t\trequestType='post';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\tajax({\n\t\t\t\t\t\turl: Mura.getAPIEndpoint() + '?method=processAsyncObject',\n\t\t\t\t\t\ttype: requestType,\n\t\t\t\t\t\tdata: requestData,\n\t\t\t\t\t\tmaxQueryStringLength: 827,\n\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\t//console.log(data.object,resp)\n\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\thandleResponse(obj, resp)\n\t\t\t\t\t\t\t\tif (typeof resolve =='function') {\n\t\t\t\t\t\t\t\t\tif(typeof resolve.call == 'undefined'){\n\t\t\t\t\t\t\t\t\t\tresolve(obj);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tresolve.call(obj.node, obj);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},0)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t});\n\t\t} catch (e){\n\t\t\tconsole.error(e);\n\t\t\tif (typeof resolve == 'function') {\n\t\t\t\tresolve(obj);\n\t\t\t}\n\t\t}\n\n\t}\n\n\tfunction processModule(el, queue, rerender, resolveFn, usePreloaderMarkup) {\n\t\treturn processDisplayObject(el, queue, rerender, resolveFn, usePreloaderMarkup);\n\t}\n\n\tvar hashparams = {};\n\tvar urlparams = {};\n\n\tfunction handleHashChange() {\n\n\t\tif(typeof location != 'undefined'){\n\t\t\tvar hash = location.hash;\n\t\t} else {\n\t\t\tvar hash = '';\n\t\t}\n\n\t\tif (hash) {\n\t\t\thash = hash.substring(1);\n\t\t}\n\n\t\tif (hash) {\n\t\t\thashparams = getQueryStringParams(hash);\n\t\t\tif (hashparams.nextnid) {\n\t\t\t\tMura('.mura-async-object[data-nextnid=\"' + hashparams.nextnid + '\"]')\n\t\t\t\t\t.each(function(el) {\n\t\t\t\t\t\tMura(el).data(hashparams);\n\t\t\t\t\t\tprocessAsyncObject(el);\n\t\t\t\t});\n\t\t\t} else if (hashparams.objectid) {\n\t\t\t\tMura('.mura-async-object[data-objectid=\"' + hashparams.objectid + '\"]')\n\t\t\t\t.each(function(el) {\n\t\t\t\t\t\tMura(el).data(hashparams);\n\t\t\t\t\t\tprocessAsyncObject(el);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\t/**\n\t * trim - description\n\t *\n\t * @param\t{string} str Trims string\n\t * @return {string}\t\t Trimmed string\n\t * @memberof Mura\n\t */\n\tfunction trim(str) {\n\t\treturn str.replace(/^\\s+|\\s+$/gm, '');\n\t}\n\n\n\tfunction extendClass(baseClass, subClass) {\n\t\tvar muraObject = function() {\n\t\t\tthis.init.apply(this, arguments);\n\t\t}\n\n\t\tmuraObject.prototype = Object.create(baseClass.prototype);\n\t\tmuraObject.prototype.constructor = muraObject;\n\t\tmuraObject.prototype.handlers = {};\n\n\t\tmuraObject.reopen = function(subClass) {\n\t\t\t\tMura.extend(muraObject.prototype, subClass);\n\t\t};\n\n\t\tmuraObject.reopenClass = function(subClass) {\n\t\t\tMura.extend(muraObject, subClass);\n\t\t};\n\n\t\tmuraObject.on = function(eventName, fn) {\n\t\t\teventName = eventName.toLowerCase();\n\n\t\t\tif (typeof muraObject.prototype.handlers[eventName] == 'undefined') {\n\t\t\t\tmuraObject.prototype.handlers[eventName] = [];\n\t\t\t}\n\n\t\t\tif (!fn) {\n\t\t\t\treturn muraObject;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < muraObject.prototype.handlers[eventName].length; i++) {\n\t\t\t\tif (muraObject.prototype.handlers[eventName][i] == handler) {\n\t\t\t\t\treturn muraObject;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tmuraObject.prototype.handlers[eventName].push(fn);\n\t\t\treturn muraObject;\n\t\t};\n\n\t\tmuraObject.off = function(eventName, fn) {\n\t\t\teventName = eventName.toLowerCase();\n\n\t\t\tif (typeof muraObject.prototype.handlers[eventName] =='undefined') {\n\t\t\t\tmuraObject.prototype.handlers[eventName] = [];\n\t\t\t}\n\n\t\t\tif (!fn) {\n\t\t\t\tmuraObject.prototype.handlers[eventName] = [];\n\t\t\t\treturn muraObject;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < muraObject.prototype.handlers[\n\t\t\t\teventName].length; i++) {\n\t\t\t\tif (muraObject.prototype.handlers[eventName][i] ==handler) {\n\t\t\t\t\tmuraObject.prototype.handlers[eventName].splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn muraObject;\n\t\t}\n\n\t\tMura.extend(muraObject.prototype, subClass);\n\n\t\treturn muraObject;\n\t}\n\n\n\t/**\n\t * getQueryStringParams - Returns object of params in string\n\t *\n\t * @name getQueryStringParams\n\t * @param\t{string} queryString Query String\n\t * @return {object}\n\t * @memberof Mura\n\t */\n\tfunction getQueryStringParams(queryString) {\n\t\tif(typeof queryString === 'undefined'){\n\t\t\tif(typeof location != 'undefined'){\n\t\t\t\tqueryString=location.search;\n\t\t\t} else {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t} \n\t\t\n\t\tvar params = {};\n\t\tvar e,\n\t\t\ta = /\\+/g, // Regex for replacing addition symbol with a space\n\t\t\tr = /([^&;=]+)=?([^&;]*)/g,\n\t\t\td = function(s) {\n\t\t\t\t\treturn decodeURIComponent(s.replace(a, \" \"));\n\t\t\t};\n\n\t\tif (queryString.substring(0, 1) == '?') {\n\t\t\tvar q = queryString.substring(1);\n\t\t} else {\n\t\t\tvar q = queryString;\n\t\t}\n\n\n\t\twhile (e = r.exec(q))\n\t\t\tparams[d(e[1]).toLowerCase()] = d(e[2]);\n\n\t\treturn params;\n\t}\n\n\t/**\n\t * getHREFParams - Returns object of params in string\n\t *\n\t * @name getHREFParams\n\t * @param\t{string} href\n\t * @return {object}\n\t * @memberof Mura\n\t */\n\tfunction getHREFParams(href) {\n\t\tvar a = href.split('?');\n\n\t\tif (a.length == 2) {\n\t\t\treturn getQueryStringParams(a[1]);\n\t\t} else {\n\t\t\treturn {};\n\t\t}\n\t}\n\n\tfunction inArray(elem, array, i) {\n\t\tvar len;\n\t\tif (array) {\n\t\t\tif (array.indexOf) {\n\t\t\t\treturn array.indexOf.call(array, elem, i);\n\t\t\t}\n\t\t\tlen = array.length;\n\t\t\ti = i ? i < 0 ? Math.max(0, len + i) : i : 0;\n\t\t\tfor (; i < len; i++) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif (i in array && array[i] === elem) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\n\t/**\n\t * getStyleSheet - Returns a stylesheet object;\n\t *\n\t * @param\t{string} id Text string\n\t * @return {object}\t\t\t\t\t\tSelf\n\t */\n\tfunction getStyleSheet(id) {\n\t\tif(Mura.isInNode()){\n\t\t\treturn getStyleSheetPlaceHolder(id);\n\t\t} else {\n\t\t\tvar sheet=Mura('#' + id);\n\t\t\tif(sheet.length){\n\t\t\t\treturn sheet.get(0).sheet;\n\t\t\t} else {\n\t\t\t\tMura('HEAD').append('');\n\t\t\t\treturn Mura('#' + id).get(0).sheet;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * applyModuleCustomCSS - Returns a stylesheet object;\n\t *\n\t * @param\t{object} stylesupport Object Containing Module Style configuration\n\t * @param\t{object} sheet Object StyleSheet object\n\t * @param\t{string} id Text string\n\t * @return {void}\tvoid\n\t */\n\tfunction applyModuleCustomCSS(stylesupport,sheet, id){\n\t\tstylesupport=stylesupport || {};\n\t\tif(typeof stylesupport.css != 'undefined' && stylesupport.css){\n\t\t\tvar styles=stylesupport.css.split('}');\n\t\t\tif(Array.isArray(styles) && styles.length){\n\t\t\t\tstyles.forEach(function(style){\n\t\t\t\t\tvar styleParts=style.split(\"{\");\n\t\t\t\t\tif(styleParts.length > 1){\n\t\t\t\t\t\tvar selectors=styleParts[0].split(',');\n\t\t\t\t\t\tselectors.forEach(function(subSelector){\n\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\tvar subStyle='div.mura-object[data-instanceid=\"' + id + '\"] ' + subSelector.replace(/\\$self/g,'') + '{' + styleParts[1] + '}';\n\t\t\t\t\t\t\t\tsheet.insertRule(\n\t\t\t\t\t\t\t\t\tsubStyle,\n\t\t\t\t\t\t\t\t\tsheet.cssRules.length\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif(Mura.editing){\n\t\t\t\t\t\t\t\t\tconsole.log('Applying dynamic styles:' + subStyle);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\t\tif(Mura.editing){\n\t\t\t\t\t\t\t\t\tconsole.log('Error applying dynamic styles:' + subStyle);\n\t\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * getStyleSheetPlaceHolder - ;\n\t *\n\t * @return {object}\t object\n\t */\n\tfunction getStyleSheetPlaceHolder(id){\n\t\treturn {\n\t\t\tdeleteRule(idx){\n\t\t\t\tthis.cssRules.splice(idx, 1);\n\t\t\t},\n\t\t\tinsertRule(rule){\n\t\t\t\tthis.cssRules.push(rule);\n\t\t\t},\n\t\t\tcssRules:[],\n\t\t\tid: id,\n\t\t\ttargets: {\n\t\t\t\tobject:{\n\t\t\t\t\tclass:\"mura-object\"\n\t\t\t\t},\n\t\t\t\tmeta:{\n\t\t\t\t\tclass:\"mura-object-meta\"\n\t\t\t\t},\n\t\t\t\tmetawrapper:{\n\t\t\t\t\tclass:\"mura-object-meta-wrapper\"\n\t\t\t\t},\n\t\t\t\tcontent:{\n\t\t\t\t\tclass:\"mura-object-content\"\n\t\t\t\t}\t\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * normalizeModuleClassesAndIds - ;\n\t *\n\t * @param\t{object} params Object Containing Module Style configuration\n\t * @return {object}\tstyle object\n\t */\n\tfunction normalizeModuleClassesAndIds(params,sheet){\n\n\t\tif(typeof sheet =='undefined'){\n\t\t\tsheet=getStyleSheetPlaceHolder('mura-styles-' + params.instanceid);\n\t\t}\n\n\t\tif(typeof params.class != 'undefined'\n\t\t\t&& params.class != ''){\n\t\t\tsheet.targets.object.class += ' ' + params.class;\n\t\t}\n\t\tif(typeof params.cssclass != 'undefined'\n\t\t\t&& params.cssclass != ''){\n\t\t\tsheet.targets.object.class += ' ' + params.cssclass;\n\t\t}\n\t\tif(typeof params.cssid != 'undefined'\n\t\t\t&& params.cssid != ''){\n\t\t\tsheet.targets.object.id = params.cssid;\n\t\t}\n\n\t\tif(typeof params.metacssclass != 'undefined'\n\t\t\t&& params.metacssclass != ''){\n\t\t\tsheet.targets.meta.class += ' ' + params.metacssclass;\n\t\t}\n\t\tif(typeof params.metacssid != 'undefined'\n\t\t\t&& params.metacssid != ''){\n\t\t\tsheet.targets.meta.id = params.metacssid;\n\t\t}\n\n\t\tif(typeof params.contentcssclass != 'undefined'\n\t\t\t&& params.contentcssclass != ''){\n\t\t\tsheet.targets.content.class += ' ' + params.contentcssclass;\n\t\t}\n\t\tif(typeof params.contentcssid != 'undefined'\n\t\t\t&& params.contentcssid != ''){\n\t\t\tsheet.targets.content.id = params.contentcssid;\n\t\t}\n\t\t\n\t\tif(typeof params.objectspacing != 'undefined'\n\t\t\t&& params.objectspacing != ''\n\t\t\t&& params.objectspacing != 'custom'){\n\t\t\tsheet.targets.object.class += ' ' + params.objectspacing;\n\t\t}\n\n\t\tif(typeof params.metaspacing != 'undefined'\n\t\t\t&& params.metaspacing != '' \n\t\t\t&& params.metaspacing != 'custom'){\n\t\t\tsheet.targets.meta.class += ' ' + params.metaspacing;\n\t\t}\n\n\t\tif(typeof params.contentspacing != 'undefined'\n\t\t\t&& params.contentspacing != ''\n\t\t\t&& params.contentspacing != 'custom'){\n\t\t\tsheet.targets.content.class += ' ' + params.contentspacing;\n\t\t}\n\t\t\n\t\tif(sheet.targets.content.class.split(' ').find($class => $class === 'container')){\n\t\t\tsheet.targets.metawrapper.class += ' container';\n\t\t}\n\n\t\treturn sheet;\n\t}\n\n\t/**\n\t * recordModuleClassesAndIds - ;\n\t *\n\t * @param\t{object} params Object Containing Module Style configuration\n\t * @return {object}\tstyle object\n\t */\n\tfunction recordModuleClassesAndIds(params){\n\t\tparams.instanceid=params.instanceid || createUUID();\n\t\tparams.stylesupport=params.stylesupport || {};\n\n\t\tvar sheet=getStyleSheet('mura-styles-' + params.instanceid);\n\n\t\tif(sheet.recorded){\n\t\t\treturn sheet;\n\t\t}\n\n\t\tnormalizeModuleClassesAndIds(params,sheet);\n\n\t\treturn sheet;\n\n\n\n\t}\n\n\t/**\n\t * recordModuleStyles - ;\n\t *\n\t * @param\t{object} params Object Containing Module Style configuration\n\t * @return {object}\tstyle object\n\t */\n\tfunction recordModuleStyles(params){\n\t\tparams.instanceid=params.instanceid || createUUID();\n\t\tparams.stylesupport=params.stylesupport || {};\n\n\t\tvar sheet=getStyleSheet('mura-styles-' + params.instanceid);\n\n\t\tif(sheet.recorded){\n\t\t\treturn sheet;\n\t\t}\n\n\t\tvar styleTargets=getModuleStyleTargets(params.instanceid,false);\n\n\t\tapplyModuleStyles(params.stylesupport,styleTargets.object,sheet);\n\t\tapplyModuleCustomCSS(params.stylesupport,sheet,params.instanceid);\n\t\tapplyModuleStyles(params.stylesupport,styleTargets.meta,sheet);\n\t\tapplyModuleStyles(params.stylesupport,styleTargets.content,sheet);\n\n\t\tnormalizeModuleClassesAndIds(params,sheet);\n\n\t\treturn sheet;\n\t}\n\n\t/**\n\t * applyModuleStyles - Returns a stylesheet object;\n\t *\n\t * @param\t{object} stylesupport Object Containing Module Style configuration\n\t * @param\t{object} group Object Containing a group of selectors\n\t * @param\t{object} sheet StyleSheet object\n\t * @param\t{object} obj Mura.DomSelection\n\t * @return {void}\tvoid\n\t */\n\tfunction applyModuleStyles(stylesupport,group,sheet,obj){\n\t\tvar acummulator={};\n\t\t//group is for object, content, meta\n\t\tgroup.targets.forEach((target)=>{\n\t\t\tvar styles={};\n\t\t\tvar dyncss='';\n\t\t\tif(stylesupport && stylesupport[target.name]){\n\t\t\t\tstyles=stylesupport[target.name];\n\t\t\t}\n\t\t\t//console.log(target.name)\n\t\t\t//console.log(styles)\n\t\t\tacummulator=Mura.extend(acummulator,styles);\n\n\t\t\thandleBackround(acummulator);\n\n\t\t\tfor(var s in acummulator){\n\t\t\t\tif(acummulator.hasOwnProperty(s)){\n\t\t\t\t\tvar p=s.toLowerCase()\n\t\t\t\t\tif( Mura.styleMap && typeof Mura.styleMap.tojs[p] != 'undefined' && Mura.styleMap.tocss[Mura.styleMap.tojs[p]] != 'undefined'){\n\t\t\t\t\t\tdyncss += Mura.styleMap.tocss[Mura.styleMap.tojs[p]] + ': ' + acummulator[s] + ' !important;';\n\t\t\t\t\t} else if ( typeof obj != 'undefined') {\n\t\t\t\t\t\tobj.css(s,acummulator[s]);\n\t\t\t\t\t}\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t//console.log(target.name,acummulator,dyncss)\n\t\t\tif(dyncss){\n\t\t\t\ttry {\n\t\t\t\t\t//selector is for edit mode or standard\n\t\t\t\t\ttarget.selectors.forEach((selector)=>{\n\t\t\t\t\t\t//console.log(selector)\n\t\t\t\t\t\tsheet.insertRule(\n\t\t\t\t\t\t\tselector + ' {' + dyncss+ '}}',\n\t\t\t\t\t\t\tsheet.cssRules.length\n\t\t\t\t\t\t);\n\t\t\t\t\t\t//console.log(selector + ' {' + dyncss+ '}}')\n\t\t\t\t\t\thandleTextColor(sheet,selector,acummulator);\n\t\t\t\t\t});\t\t\t\t\t\t\t\n\t\t\t\t} catch (e){\n\t\t\t\t\tconsole.log(selector + ' {' + dyncss+ '}}')\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tfunction handleBackround(styles){\n\t\t\tif(typeof styles.backgroundImage != 'undefined' && styles.backgroundImage){\n\t\t\t\tvar bgArray=styles.backgroundImage.split(',');\n\t\t\t\tif(bgArray.length){\n\t\t\t\t\tstyles.backgroundImage=Mura.trim(bgArray[bgArray.length-1]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar hasLayeredBg=(styles && typeof styles.backgroundColor != 'undefined' && styles.backgroundColor\n\t\t\t&& typeof styles.backgroundImage != 'undefined' && styles.backgroundImage);\t\n\t\t\t\n\t\t\tif(hasLayeredBg){\n\t\t\t\tstyles.backgroundImage='linear-gradient(' + styles.backgroundColor + ', ' + styles.backgroundColor +' ), ' + styles.backgroundImage;\n\t\t\t} else {\n\t\t\t\tif(typeof styles.backgroundimage != 'undefined' && styles.backgroundimage){\n\t\t\t\t\tvar bgArray=styles.backgroundimage.split(',');\n\t\t\t\t\tif(bgArray.length){\n\t\t\t\t\t\tstyles.backgroundimage=Mura.trim(bgArray[bgArray.length-1]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasLayeredBg=(styles && typeof styles.backgroundcolor != 'undefined' && styles.backgroundcolor\n\t\t\t\t&& typeof styles.backgroundimage != 'undefined' && styles.backgroundimage);\t\n\t\t\t\t\n\t\t\t\tif(hasLayeredBg){\n\t\t\t\t\tstyles.backgroundImage='linear-gradient(' + styles.backgroundcolor + ', ' + styles.backgroundcolor +' ), ' + styles.backgroundimage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction handleTextColor(sheet,selector,styles){\n\t\t\ttry{\n\t\t\t\tif(styles.color){\n\t\t\t\t\tvar selectorArray=selector.split('{');\n\t\t\t\t\tvar style=selectorArray[0] + '{' + selectorArray[1] + ', ' + selectorArray[1] + ' label, ' + selectorArray[1] + ' p, ' + selectorArray[1] + ' h1, ' + selectorArray[1] + ' h2, ' + selectorArray[1] + ' h3, ' + selectorArray[1] + ' h4, ' + selectorArray[1] + ' h5, ' + selectorArray[1] + ' h6, ' + selectorArray[1] + ' a, ' + selectorArray[1] + ' a:link, ' + selectorArray[1] + ' a:visited, ' + selectorArray[1] + ' a:hover, ' + selectorArray[1] + ' .breadcrumb-item + .breadcrumb-item::before, ' + selectorArray[1] + ' a:active { color:' + styles.color + ' !important;}} ';\n\n\t\t\t\t\tsheet.insertRule(\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\tsheet.cssRules.length\n\t\t\t\t\t);\n\t\t\t\t\t//console.log(style)\n\t\t\t\t\tsheet.insertRule(\n\t\t\t\t\t\tselector + ' * {color:inherit !important}}',\n\t\t\t\t\t\tsheet.cssRules.length\n\t\t\t\t\t);\n\t\t\t\t\t//console.log(selector + ' * {color:inherit}')\n\t\t\t\t\tsheet.insertRule(\n\t\t\t\t\t\tselector + ' hr { border-color:' + styles.color + ' !important;}}',\n\t\t\t\t\t\tsheet.cssRules.length\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch (e){\n\t\t\t\tconsole.log(\"error adding color: \" + styles.color);\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getBreakpoint(){\n\t\tif(typeof document != 'undefined'){\n\t\t\tvar breakpoints=getBreakpoints();\n\t\t\tvar width=document.documentElement.clientWidth;\n\t\t\t\n\t\t\tif(Mura.editing){\n\t\t\t\twidth=width-300;\n\t\t\t}\n\t\t\n\t\t\tif(width >=breakpoints.xl){\n\t\t\t\treturn 'xl';\n\t\t\t} else if(width >= breakpoints.lg){\n\t\t\t\treturn 'lg';\n\t\t\t} else if(width >= breakpoints.md){\n\t\t\t\treturn 'md';\n\t\t\t} else if(width >= breakpoints.sm){\n\t\t\t\treturn 'sm';\n\t\t\t} else {\n\t\t\t\treturn 'xs';\n\t\t\t}\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tfunction getBreakpoints(){\n\t\tif(typeof Mura.breakpoints != 'undefined'){\n\t\t\treturn Mura.breakpoints;\n\t\t} else {\n\t\t\treturn {\n\t\t\t\txl:1200,\n\t\t\t\tlg:992,\n\t\t\t\tmd:768,\n\t\t\t\tsm:576\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction getModuleStyleTargets(id,dynamic){\n\t\tvar breakpoints=getBreakpoints();\n\t\tvar sidebar=300;\n\t\tvar objTargets= {\n\t\t\tobject:{\n\t\t\t\ttargets:[\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'objectstyles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.xl +'px) { div[data-instanceid=\"' + id + '\"]',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.xl + sidebar) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"]'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'object_lg_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.lg +'px) and (max-width: '+ (breakpoints.xl -1) +'px) { div[data-instanceid=\"' + id + '\"]',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.lg + sidebar) +'px) and (max-width: '+ (breakpoints.xl + sidebar -1) + 'px) { .mura-editing div[data-instanceid=\"' + id + '\"]'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'object_md_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.md +'px) and (max-width:'+ (breakpoints.lg -1) +'px) { div[data-instanceid=\"' + id + '\"]',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.md + sidebar) +'px) and (max-width: '+ (breakpoints.lg + sidebar -1) + 'px) { .mura-editing div[data-instanceid=\"' + id + '\"]'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'object_sm_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.sm +'px) and (max-width: '+ (breakpoints.md -1) + 'px) { div[data-instanceid=\"' + id + '\"]',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.sm + sidebar) + 'px) and (max-width: '+ (breakpoints.md + sidebar -1) + 'px) { .mura-editing div[data-instanceid=\"' + id + '\"]'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'object_xs_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (max-width: ' + (breakpoints.sm -1) + 'px) { div[data-instanceid=\"' + id + '\"]',\n\t\t\t\t\t\t\t'@media (max-width: ' + (breakpoints.sm + sidebar -1) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"]'\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tmeta:{\n\t\t\t\ttargets:[\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'metastyles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.xl +'px) { div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.xl + sidebar) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'meta_lg_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.lg +'px) and (max-width: '+ (breakpoints.xl -1) +'px) { div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.lg + sidebar) +'px) and (max-width: ' + (breakpoints.xl + sidebar -1) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'meta_md_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.md +'px) and (max-width: '+ (breakpoints.lg -1) +'px) { div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.md + sidebar) +'px) and (max-width: ' + (breakpoints.lg + sidebar -1) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'meta_sm_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.sm +'px) and (max-width: '+ (breakpoints.md -1) +'px) { div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.sm + sidebar) +'px) and (max-width: ' + (breakpoints.md + sidebar -1) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'meta_xs_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (max-width: ' + (breakpoints.sm -1) + 'px) { div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta',\n\t\t\t\t\t\t\t'@media (max-width: ' + (breakpoints.sm + sidebar -1) +'px) { .mura-editing div[data-instanceid=\"' + id + '\"] > div.mura-object-meta-wrapper > div.mura-object-meta'\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tcontent:{\n\t\t\t\ttargets:[\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'contentstyles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.xl +'px) { div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.xl + sidebar) +'px) { .mura-editing div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'content_lg_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.lg +'px) and (max-width: '+ (breakpoints.xl -1) +'px) { div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.lg + sidebar) +'px) and (max-width: ' + (breakpoints.xl + sidebar -1) +'px) { .mura-editing div.mura-object[data-instanceid=\"' +id + '\"] > div.mura-object-content'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'content_md_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.md +'px) and (max-width: '+ (breakpoints.lg -1) +'px) { div.mura-object[data-instanceid=\"' + id+ '\"] > div.mura-object-content',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.md + sidebar) +'px) and (max-width: ' + (breakpoints.lg + sidebar -1) +'px) { .mura-editing div.mura-object[data-instanceid=\"' +id + '\"] > div.mura-object-content'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'content_sm_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (min-width: ' + breakpoints.sm +'px) and (max-width: '+ (breakpoints.md -1) +'px) { div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content',\n\t\t\t\t\t\t\t'@media (min-width: ' + (breakpoints.sm + sidebar) +'px) and (max-width: ' + (breakpoints.md + sidebar -1) +'px) { .mura-editing div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content'\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname:'content_xs_styles',\n\t\t\t\t\t\tselectors:[\n\t\t\t\t\t\t\t'@media (max-width: ' + (breakpoints.sm -1) + 'px) { div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content',\n\t\t\t\t\t\t\t'@media (max-width: ' + (breakpoints.sm + sidebar -1) +'px) { .mura-editing div.mura-object[data-instanceid=\"' + id + '\"] > div.mura-object-content'\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\n\t\tif(!dynamic){\n\t\t\tfor(let elTarget in objTargets){\n\t\t\t\tif(objTargets.hasOwnProperty(elTarget)){\n\t\t\t\t\tobjTargets[elTarget].targets.forEach((target)=>{\n\t\t\t\t\t\ttarget.selectors.pop();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn objTargets\n\t}\n\n\n\t/**\n\t * setRequestHeader - Sets request header value\n\t *\n\t * @name setRequestHeader\n\t * @param\t{string} headerName\tName of header\n\t * @param\t{string} value Header value\n\t * @return {Mura.RequestContext} Self\n\t * @memberof Mura\n\t */\n\tfunction setRequestHeader(headerName,value){\n\t\tMura.requestHeaders[headerName]=value;\n\t\treturn this;\n\t}\n\n\t/**\n\t * getRequestHeader - Returns a request header value\n\t *\n\t * @name getRequestHeader\n\t * @param\t{string} headerName\tName of header\n\t * @return {string} header Value\n\t * @memberof Mura\n\t */\n\t\tfunction getRequestHeader(headerName){\n\t\t\tif(typeof Mura.requestHeaders[headerName] != 'undefined'){\n\t\t\t\treturn Mura.requestHeaders[headerName];\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t/**\n\t * getRequestHeaders - Returns a request header value\n\t *\n\t * @name getRequestHeaders\n\t * @return {object} All Headers\n\t * @memberof Mura\n\t */\n\t\tfunction getRequestHeaders(){\n\t\t\treturn Mura.requestHeaders;\n\t\t}\n\n\t//http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/\n\n\t/**\n\t * hashCode - description\n\t *\n\t * @name hashCode\n\t * @param\t{string} s String to hash\n\t * @return {string}\n\t * @memberof Mura\n\t */\n\tfunction hashCode(s) {\n\t\tvar hash = 0,\n\t\t\tstrlen = s.length,\n\t\t\ti, c;\n\n\t\tif (strlen === 0) {\n\t\t\treturn hash;\n\t\t}\n\t\tfor (i = 0; i < strlen; i++) {\n\t\t\tc = s.charCodeAt(i);\n\t\t\thash = ((hash << 5) - hash) + c;\n\t\t\thash = hash & hash; // Convert to 32bit integer\n\t\t}\n\t\treturn (hash >>> 0);\n\t}\n\n\t/**\n\t * Returns if the current request s running in Node.js\n\t**/\n\tfunction isInNode(){\n\t\treturn typeof process !== 'undefined' && {}.toString.call(process) === '[object process]' || typeof document =='undefined';\n\t}\n\n\t/**\n\t * Global Request Headers\n\t**/\n\tvar requestHeaders={};\n\n\tfunction throttle (func, interval) {\n\t\tvar timeout;\n\t\treturn function() {\n\t\t\tvar context = this, args = arguments;\n\t\t\tvar later = function () {\n\t\t\ttimeout = false;\n\t\t\t};\n\t\t\tif (!timeout) {\n\t\t\tfunc.apply(context, args)\n\t\t\ttimeout = true;\n\t\t\tsetTimeout(later, interval)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction debounce (func, interval) {\n\t\tvar timeout;\n\t\treturn function () {\n\t\t\tvar context = this, args = arguments;\n\t\t\tvar later = function () {\n\t\t\ttimeout = null;\n\t\t\tfunc.apply(context, args);\n\t\t\t};\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(later, interval || 200);\n\t\t}\n\t}\n\n\tfunction getAPIEndpoint(){\n\t\tif(Mura.apiendpoint){\n\t\t\tMura.apiEndpoint=Mura.apiendpoint;\n\t\t\tdelete Mura.apiendpoint;\n\t\t\tif(Mura.mode.toLowerCase()=='rest'){\n\t\t\t\tMura.apiEndpoint=Mura.apiEndpoint.replace('/json/', '/rest/');\n\t\t\t}\n\t\t} \n\t\treturn Mura.apiEndpoint;\n\t}\n\n\tfunction setAPIEndpoint(apiEndpoint){\n\t\tMura.apiEndpoint=apiEndpoint;\n\t}\n\n\tfunction setMode(mode){\n\t\tMura.mode=mode;\n\t}\n\n\tfunction getMode(){\n\t\treturn Mura.mode;\n\t}\n\n\tfunction getRenderMode(){\n\t\treturn Mura.renderMode;\n\t}\n\n\tfunction setRenderMode(renderMode){\n\t\tMura.renderMode=renderMode;\n\t}\n\n\tfunction startUserStateListener(interval){\n\t\tMura.userStateListenerInterval=interval;\n\t}\n\n\tfunction stopUserStateListener(){\n\t\tMura.userStateListenerInterval=false;\n\t}\n\n\tfunction pollUserState(){\n\t\tif(typeof window != 'undefined' \n\t\t\t&& typeof document != 'undefined'\n\t\t\t&& (\n\t\t\t\tMura.userStateListenerInterval || Mura.editing\n\t\t\t)\n\t\t){\n\t\t\tMura.getEntity('user').invoke('pollState').then(\n\t\t\t\tfunction(state){\n\t\t\t\t\tvar data=state;\n\t\t\t\t\tif(typeof state == 'string'){\n\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\tdata=JSON.parse(state);\n\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\tdata=state;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tMura(document).trigger('muraUserStateMessage',data);\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\tvar interval=(typeof Mura.userStateListenerInterval === 'number' && Mura.userStateListenerInterval) ? Mura.userStateListenerInterval : 60000;\n\t\tsetTimeout(pollUserState,interval);\n\t}\n\n\tfunction deInit(){\n\t\t//This all needs to be moved to a state object\n\t\tdelete Mura._requestcontext;\n\t\tdelete Mura.response;\n\t\tdelete Mura.request;\n\t\tMura.requestHeaders={};\n\t\tMura.displayObjectInstances={}\n\t\tdelete Mura.renderMode;\n\t\tdelete Mura.userStateListenerInterval;\n\t\tdelete Mura.currentUser;\n\t\tMura.mode=\"json\";\n\t\tsetAPIEndpoint(getAPIEndpoint().replace('/rest/', '/json/'));\n\t\tMura.trackingMetadata={};\n\t\tdelete Mura.trackingVars;\n\t\t//delete Mura.apiEndpoint;\n\t\t//delete Mura.apiendpoint;\n\t\tdelete Mura.perm;\n\t\tdelete Mura.formdata;\n\t\tdelete Mura.windowResponsiveModules;\n\t\tdelete Mura.windowResizeID;\n\t\tdelete Mura.Content;\n\t\tdelete Mura.content;\n\n\t\treturn Mura;\t\n\t}\n\n\t//Mura.init()\n\tfunction init(config) {\n\n\t\tvar existingEndpoint='';\n\n\t\tif( Mura.siteid && config.siteid && Mura.siteid != config.siteid){\n\t\t\tdelete Mura.apiEndpoint;\n\t\t\tdelete Mura.apiendpoint;\n\t\t}\n\n\t\tif(typeof Mura.apiEndpoint != 'undefined' && Mura.apiEndpoint){\n\t\t\texistingEndpoint=Mura.apiEndpoint;\n\t\t}\n\n\t\tif(typeof config.content != 'undefined'){\n\t\t\tif(typeof config.content.get == 'undefined'){\n\t\t\t\tconfig.content=getEntity('content').set(config.content);\n\t\t\t}\n\t\t\tMura.extend(config,config.content.get('config'));\n\t\t}\n\n\t\tif(existingEndpoint){\n\t\t\tconfig.apiEndpoint=existingEndpoint;\n\t\t\tdelete config.apiendpoint;\n\t\t}\n\n\t\tif (config.rootpath) {\n\t\t\tconfig.context = config.rootpath;\n\t\t}\n\n\t\tif (config.endpoint) {\n\t\t\tconfig.context = config.endpoint;\n\t\t}\n\n\t\tif (!config.context) {\n\t\t\tconfig.context = '';\n\t\t}\n\n\t\tif (!config.rootpath) {\n\t\t\tconfig.rootpath = config.context;\n\t\t}\n\n\t\tif (!config.assetpath) {\n\t\t\tconfig.assetpath = config.context + \"/sites/\" + config.siteid;\n\t\t}\n\n\t\tif (!config.siteassetpath) {\n\t\t\tconfig.siteassetpath = config.assetpath;\n\t\t}\n\n\t\tif (!config.fileassetpath) {\n\t\t\tconfig.fileassetpath = config.assetpath;\n\t\t}\n\n\t\tif (config.apiendpoint) {\n\t\t\tconfig.apiEndpoint = config.apiendpoint;\n\t\t\tdelete config.apiendpoint;\n\t\t}\n\n\t\tif(typeof config.indexfileinapi == 'undefined'){\n\t\t\tif(typeof Mura.indexfileinapi!='undefined'){\n\t\t\t\tconfig.indexfileinapi=Mura.indexfileinapi;\n\t\t\t} else {\n\t\t\t\tconfig.indexfileinapi=true;\n\t\t\t}\n\t\t}\n\n\t\tif (!config.apiEndpoint) {\n\t\t\tif(config.indexfileinapi){\n\t\t\t\tconfig.apiEndpoint = config.context +\t'/index.cfm/_api/json/v1/' + config.siteid + '/';\n\t\t\t} else {\n\t\t\t\tconfig.apiEndpoint = config.context +\t'/_api/json/v1/' + config.siteid + '/';\n\t\t\t}\n\t\t}\n\n\t\tif(config.apiEndpoint.indexOf('/_api/') == -1){\n\t\t\tif(config.indexfileinapi){\n\t\t\t\tconfig.apiEndpoint = config.apiEndpoint + '/index.cfm/_api/json/v1/' + config.siteid + '/'\n\t\t\t} else {\n\t\t\t\tconfig.apiEndpoint = config.apiEndpoint + '/_api/json/v1/' + config.siteid + '/'\n\t\t\t}\n\t\t}\n\n\t\tif (!config.pluginspath) {\n\t\t\tconfig.pluginspath = config.context + '/plugins';\n\t\t}\n\n\t\tif (!config.corepath) {\n\t\t\tconfig.corepath = config.context + '/core';\n\t\t}\n\n\t\tif (!config.jslib) {\n\t\t\tconfig.jslib = 'jquery';\n\t\t}\n\n\t\tif (!config.perm) {\n\t\t\tconfig.perm = 'none';\n\t\t}\n\n\t\tif (typeof config.layoutmanager == 'undefined') {\n\t\t\tconfig.layoutmanager = false;\n\t\t}\n\n\t\tif (typeof config.mobileformat == 'undefined') {\n\t\t\tconfig.mobileformat = false;\n\t\t}\n\t\t\n\t\tif (typeof config.queueObjects != 'undefined') {\n\t\t\tconfig.queueobjects=config.queueObjects;\n\t\t\tdelete config.queueobjects;\n\t\t}\n\t\t\n\t\tif (typeof config.queueobjects == 'undefined') {\n\t\t\tconfig.queueobjects = true;\n\t\t}\n\n\t\tif (typeof config.rootdocumentdomain != 'undefined' && config.rootdocumentdomain != '') {\n\t\t\tdocument.domain = config.rootdocumentdomain;\n\t\t}\n\n\t\tif (typeof config.preloaderMarkup != 'undefined') {\n\t\t\tconfig.preloadermarkup=config.preloaderMarkup;\n\t\t\tdelete config.preloaderMarkup;\n\t\t}\n\n\t\tif (typeof config.preloadermarkup == 'undefined') {\n\t\t\tconfig.preloadermarkup = '';\n\t\t}\n\n\t\tif (typeof config.rb == 'undefined') {\n\t\t\tconfig.rb={};\n\t\t}\n\n\t\tif (typeof config.dtExample != 'undefined') {\n\t\t\tconfig.dtexample=config.dtExample;\n\t\t\tdelete config.dtExample;\n\t\t}\n\n\t\tif (typeof config.dtexample == 'undefined') {\n\t\t\tconfig.dtexample=\"11/10/2024\";\n\t\t}\n\n\t\tif (typeof config.dtCh != 'undefined') {\n\t\t\tconfig.dtch=config.dtCh;\n\t\t\tdelete config.dtCh;\n\t\t}\n\n\t\tif (typeof config.dtch == 'undefined') {\n\t\t\tconfig.dtch=\"/\";\n\t\t}\n\n\t\tif (typeof config.dtFormat != 'undefined') {\n\t\t\tconfig.dtformat=config.dtFormat;\n\t\t\tdelete config.dtFormat;\n\t\t}\n\n\t\tif (typeof config.dtformat == 'undefined') {\n\t\t\tconfig.dtformat=[0,1,2];\n\t\t}\n\n\t\tif (typeof config.dtLocale != 'undefined') {\n\t\t\tconfig.dtlocale=config.dtLocale;\n\t\t\tdelete config.dtLocale;\n\t\t}\n\n\t\tif (typeof config.dtlocale == 'undefined') {\n\t\t\tconfig.dtlocale=\"en-US\";\n\t\t}\n\n\t\tif (typeof config.useHTML5DateInput != 'undefined') {\n\t\t\tconfig.usehtml5dateinput=config.useHTML5DateInput;\n\t\t\tdelete config.usehtml5dateinput;\n\t\t}\n\n\t\tif (typeof config.usehtml5dateinput == 'undefined') {\n\t\t\tconfig.usehtml5dateinput=false;\n\t\t}\n\n\t\tif (typeof config.cookieConsentEnabled != 'undefined') {\n\t\t\tconfig.cookieconsentenabled=config.cookieConsentEnabled;\n\t\t\tdelete config.cookieConsentEnabled;\n\t\t}\n\n\t\tif (typeof config.cookieconsentenabled == 'undefined') {\n\t\t\tconfig.cookieconsentenabled=false;\n\t\t}\n\n\t\tif(typeof config.initialProcessMarkupSelector == 'undefined'){\n\t\t\tif(typeof window != 'undefined' && typeof document !='undefined'){\n\t\t\t\tvar initialProcessMarkupSelector='document';\n\t\t\t} else {\n\t\t\t\tvar initialProcessMarkupSelector='';\n\t\t\t}\n\t\t} else {\n\t\t\tvar initialProcessMarkupSelector=config.initialProcessMarkupSelector;\n\t\t}\n\n\t\tconfig.formdata=(typeof FormData != 'undefined') ? true : false;\n\n\n\t\tvar initForDataOnly=false;\n\t\t\n\t\tif(typeof config.processMarkup != 'undefined'){\n\t\t\tinitForDataOnly=typeof config.processMarkup != 'function' && !config.processMarkup;\n\t\t\tdelete config.processMarkup;\n\t\t} else if(typeof config.processmarkup != 'undefined'){\n\t\t\tinitForDataOnly=typeof config.processmarkup != 'function' && !config.processmarkup;\n\t\t\tdelete config.processmarkup;\n\t\t}\n\n\t\textend(Mura, config);\n\n\t\tMura.trackingMetadata={};\n\t\tMura.hydrationData={}\n\n\t\tif(typeof config.content != 'undefined' && typeof config.content.get != 'undefined' && config.content.get('displayregions')){\n\t\t\tfor(var r in config.content.properties.displayregions){\n\t\t\t\tif( config.content.properties.displayregions.hasOwnProperty(r)){\n\t\t\t\t\tvar data=config.content.properties.displayregions[r];\n\t\t\t\t\tif(typeof data.inherited != 'undefined' && typeof data.inherited.items != 'undefined'){\n\t\t\t\t\t\tfor(var d in data.inherited.items){\n\t\t\t\t\t\t\tMura.hydrationData[data.inherited.items[d].instanceid]=data.inherited.items[d];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof data.local != 'undefined' && typeof data.local.items != 'undefined'){\n\t\t\t\t\t\tfor(var d in data.local.items){\n\t\t\t\t\t\t\tMura.hydrationData[data.local.items[d].instanceid]=data.local.items[d];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tMura.dateformat=generateDateFormat();\n\n\t\tif(Mura.mode.toLowerCase()=='rest'){\n\t\t\tMura.apiEndpoint=Mura.apiEndpoint.replace('/json/', '/rest/');\n\t\t}\n\n\t\tif(typeof window !='undefined' &&typeof window.document != 'undefined'){\n\t\t\tif(Array.isArray(window.queuedMuraCmds) && window.queuedMuraCmds.length){\n\t\t\t\tholdingQueue=window.queuedMuraCmds.concat(holdingQueue);\n\t\t\t\twindow.queuedMuraCmds=[];\n\t\t\t}\n\n\t\t\tif(Array.isArray(window.queuedMuraPreInitCmds) && window.queuedMuraPreInitCmds.length){\n\t\t\t\tholdingPreInitQueue=window.queuedMuraPreInitCmds.concat(holdingPreInitQueue);\n\t\t\t\twindow.queuedMuraPreInitCmds=[];\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(!initForDataOnly){\n\n\t\t\tdestroyDisplayObjects();\n\t\t\tstopUserStateListener()\n\n\t\t\tMura(function() {\n\n\t\t\t\tfor(var cmd in holdingPreInitQueue){\n\t\t\t\t\tif(typeof holdingPreInitQueue[cmd] == 'function'){\n\t\t\t\t\t\tholdingPreInitQueue[cmd](Mura);\n\t\t\t\t\t} \n\t\t\t\t}\n\n\t\t\t\tif(typeof window !='undefined' && typeof window.document != 'undefined'){\n\t\t\t\t\n\t\t\t\t\tvar hash = location.hash;\n\n\t\t\t\t\tif (hash) {\n\t\t\t\t\t\thash = hash.substring(1);\n\t\t\t\t\t}\n\n\t\t\t\t\turlparams = setLowerCaseKeys(getQueryStringParams(location.search));\n\t\t\t\t\t\n\t\t\t\t\tif (hashparams.nextnid) {\n\t\t\t\t\t\tMura('.mura-async-object[data-nextnid=\"' +\n\t\t\t\t\t\t\thashparams.nextnid + '\"]').each(\n\t\t\t\t\t\t\tfunction(el) {\n\t\t\t\t\t\t\t\tMura(el).data(hashparams);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else if (hashparams.objectid) {\n\t\t\t\t\t\tMura('.mura-async-object[data-nextnid=\"' +hashparams.objectid + '\"]').each(\n\t\t\t\t\t\tfunction(el) {\n\t\t\t\t\t\t\tMura(el).data(hashparams);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tMura(window).on('hashchange', handleHashChange);\n\t\t\t\t\t\n\t\t\t\t\tMura(document).on('click','div.mura-object .mura-next-n a,div.mura-object .mura-search-results div.moreResults a,div.mura-object div.mura-pagination a',function(e){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tvar href=Mura(e.target).attr('href');\n\t\t\t\t\t\tif(href!='#'){\n\t\t\t\t\t\t\tvar hArray=href.split('?');\n\t\t\t\t\t\t\tvar source=Mura(e.target);\n\t\t\t\t\t\t\tvar data=setLowerCaseKeys(getQueryStringParams(hArray[hArray.length-1]));\n\t\t\t\t\t\t\tvar obj=source.closest('div.mura-object');\n\t\t\t\t\t\t\tobj.data(data);\n\t\t\t\t\t\t\tprocessAsyncObject(obj.node).then(function(){\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tif(typeof window != 'undefined' && typeof document != 'undefined'){\n\t\t\t\t\t\t\t\t\t\tvar rect=obj.node.getBoundingClientRect();\n\t\t\t\t\t\t\t\t\t\tvar elemTop = rect.top;\n\t\t\t\t\t\t\t\t\t\tif(elemTop < 0){\n\t\t\t\t\t\t\t\t\t\t\twindow.scrollTo(0, Mura(document).scrollTop() + elemTop);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t\tif(!Mura.inAdmin && initialProcessMarkupSelector){\n\t\t\t\t\t\tif(initialProcessMarkupSelector=='document'){\n\t\t\t\t\t\t\tprocessMarkup(document);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tprocessMarkup(initialProcessMarkupSelector);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tMura.markupInitted=true;\n\n\t\t\t\t\tif(Mura.cookieconsentenabled){Mura(function(){Mura('body').appendDisplayObject({object:'cookie_consent',queue:false,statsid:'cookie_consent'});});}\n\n\t\t\t\t\tMura(document).on(\"keydown\", function(event) {\n\t\t\t\t\t\tkeyCmdCheck(event);\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tMura.breakpoint=getBreakpoint();\n\t\t\t\t\tMura.windowResponsiveModules={};\n\n\t\t\t\t\twindow.addEventListener(\"resize\", function(){\n\t\t\t\t\tclearTimeout(Mura.windowResizeID);\n\t\t\t\t\tMura.windowResizeID = setTimeout(doneResizing, 250);\n\n\t\t\t\t\t\tfunction doneResizing(){\n\t\t\t\t\t\t\tvar breakpoint=getBreakpoint();\n\t\t\t\t\t\t\tif(breakpoint!=Mura.breakpoint){\n\t\t\t\t\t\t\t\tMura.breakpoint=breakpoint;\n\t\t\t\t\t\t\t\tMura('.mura-object').each(function(el){\n\t\t\t\t\t\t\t\t\tvar obj=Mura(el);\n\t\t\t\t\t\t\t\t\tvar instanceid=obj.data('instanceid');\n\t\t\t\t\t\t\t\t\tif(typeof Mura.windowResponsiveModules[instanceid] == 'undefined' || Mura.windowResponsiveModules[instanceid]){\n\t\t\t\t\t\t\t\t\t\tobj.calculateDisplayObjectStyles(true);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdelete Mura.windowResizeID;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tMura(document).trigger('muraReady');\n\t\t\t\t\t\n\t\t\t\t\tpollUserState();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treadyInternal(initReadyQueue);\n\t\t}\n\n\t\treturn Mura\n\t}\n\n\n\tMura=extend(\n\t\tfunction(selector, context) {\n\t\t\tif (typeof selector == 'function') {\n\t\t\t\tMura.ready(selector);\n\t\t\t\treturn this;\n\t\t\t} else {\n\t\t\t\tif (typeof context == 'undefined') {\n\t\t\t\t\treturn select(selector);\n\t\t\t\t} else {\n\t\t\t\t\treturn select(context).find(selector);\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tpreInit(fn){if(holdingReady){holdingPreInitQueue.push(fn)}else{Mura(fn)}},\n\t\t\tgenerateOAuthToken: generateOAuthToken,\n\t\t\tentities: {},\n\t\t\tfeeds: {},\n\t\t\tsubmitForm: submitForm,\n\t\t\tescapeHTML: escapeHTML,\n\t\t\tunescapeHTML: unescapeHTML,\n\t\t\tprocessDisplayObject: processDisplayObject,\n\t\t\tprocessModule:processModule,\n\t\t\tprocessAsyncObject: processAsyncObject,\n\t\t\tresetAsyncObject: resetAsyncObject,\n\t\t\tsetLowerCaseKeys: setLowerCaseKeys,\n\t\t\tthrottle:throttle,\n\t\t\tdebounce:debounce,\n\t\t\tnoSpam: noSpam,\n\t\t\taddLoadEvent: addLoadEvent,\n\t\t\tloader: loader,\n\t\t\taddEventHandler: addEventHandler,\n\t\t\ttrigger: trigger,\n\t\t\tready: ready,\n\t\t\ton: on,\n\t\t\toff: off,\n\t\t\textend: extend,\n\t\t\tinArray: inArray,\n\t\t\tisNumeric: isNumeric,\n\t\t\tpost: post,\n\t\t\tget: get,\n\t\t\tdelete: deleteReq,\n\t\t\tput: put,\n\t\t\tpatch: patch,\n\t\t\tdeepExtend: deepExtend,\n\t\t\tajax: ajax,\n\t\t\tchangeElementType: changeElementType,\n\t\t\tsetHTMLEditor: setHTMLEditor,\n\t\t\teach: each,\n\t\t\tparseHTML: parseHTML,\n\t\t\tgetData: getData,\n\t\t\tcleanModuleProps:cleanModuleProps,\n\t\t\tgetProps: getProps,\n\t\t\tisEmptyObject: isEmptyObject,\n\t\t\tisScrolledIntoView: isScrolledIntoView,\n\t\t\tevalScripts: evalScripts,\n\t\t\tvalidateForm: validateForm,\n\t\t\tescape: $escape,\n\t\t\tunescape: $unescape,\n\t\t\tgetBean: getEntity,\n\t\t\tgetEntity: getEntity,\n\t\t\tgetCurrentUser: getCurrentUser,\n\t\t\trenderFilename: renderFilename,\n\t\t\tstartUserStateListener:startUserStateListener,\n\t\t\tstopUserStateListener:stopUserStateListener,\n\t\t\tfindQuery: findQuery,\n\t\t\tgetFeed: getFeed,\n\t\t\tlogin: login,\n\t\t\tlogout: logout,\n\t\t\textendClass: extendClass,\n\t\t\tinit: init,\n\t\t\tformToObject: formToObject,\n\t\t\tcreateUUID: createUUID,\n\t\t\tisUUID: isUUID,\n\t\t\tprocessMarkup: processMarkup,\n\t\t\tgetQueryStringParams: getQueryStringParams,\n\t\t\tlayoutmanagertoolbar: layoutmanagertoolbar,\n\t\t\tparseString: parseString,\n\t\t\tcreateCookie: createCookie,\n\t\t\treadCookie: readCookie,\n\t\t\teraseCookie: eraseCookie,\n\t\t\ttrim: trim,\n\t\t\thashCode: hashCode,\n\t\t\tDisplayObject: {},\n\t\t\tdisplayObjectInstances: {},\n\t\t\tdestroyDisplayObjects: destroyDisplayObjects,\n\t\t\tdestroyModules: destroyModules,\n\t\t\tholdReady: holdReady,\n\t\t\ttrackEvent: trackEvent,\n\t\t\trecordEvent: trackEvent,\n\t\t\tisInNode: isInNode,\n\t\t\tgetRequestContext: getRequestContext,\n\t\t\tgetDefaultRequestContext: getDefaultRequestContext,\n\t\t\trequestHeaders:requestHeaders,\n\t\t\tsetRequestHeader:setRequestHeader,\n\t\t\tgetRequestHeader:getRequestHeaders,\n\t\t\tgetRequestHeaders:getRequestHeaders,\n\t\t\tmode: 'json',\n\t\t\tdeclareEntity:declareEntity,\n\t\t\tundeclareEntity:undeclareEntity,\n\t\t\tbuildDisplayRegion:buildDisplayRegion,\n\t\t\topenGate:openGate,\n\t\t\tfirstToUpperCase:firstToUpperCase,\n\t\t\tfirstToLowerCase:firstToLowerCase,\n\t\t\tnormalizeRequestConfig:normalizeRequestConfig,\n\t\t\tgetStyleSheet:getStyleSheet,\n\t\t\tgetStyleSheetPlaceHolder:getStyleSheetPlaceHolder,\n\t\t\tapplyModuleStyles:applyModuleStyles,\n\t\t\tapplyModuleCustomCSS:applyModuleCustomCSS,\n\t\t\trecordModuleStyles:recordModuleStyles,\n\t\t\trecordModuleClassesAndIds:recordModuleClassesAndIds,\n\t\t\tgetModuleStyleTargets:getModuleStyleTargets,\n\t\t\tgetBreakpoint:getBreakpoint,\n\t\t\tgetAPIEndpoint:getAPIEndpoint,\n\t\t\tsetAPIEndpoint:setAPIEndpoint,\n\t\t\tgetMode:getMode,\n\t\t\tsetMode:setMode,\n\t\t\tgetRenderMode: getRenderMode,\n\t\t\tsetRenderMode: setRenderMode,\n\t\t\tparseStringAsTemplate:parseStringAsTemplate,\n\t\t\tfindText:findText,\n\t\t\tdeInit:deInit,\n\t\t\tfetch:customfetch,\n\t\t\tinAdmin:false,\n\t\t\tlmv:2,\n\t\t\thomeid: '00000000000000000000000000000000001',\n\t\t\tcloning:false\n\t\t}\n\t);\n\n\tMura.Module=Mura.DisplayObject;\n\n\treturn Mura;\n}\n\nmodule.exports=attach;\n","/**\n * Creates a new Mura.DOMSelection\n * @name\tMura.DOMSelection\n * @class\t\n * @param\t{object} properties Object containing values to set into object\n * @return {Mura.DOMSelection}\n * @extends Mura.Core\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\t'use strict'\n\n\t/**\n\t\t* @ignore\n\t\t*/\n\n\tMura.DOMSelection = Mura.Core.extend(\n\t\t/** @lends Mura.DOMSelection.prototype */\n\t\t{\n\n\t\t\tinit(selection, origSelector) {\n\t\t\t\tthis.selection = selection;\n\t\t\t\tthis.origSelector = origSelector;\n\n\t\t\t\tif (this.selection.length && this.selection[0]) {\n\t\t\t\t\tthis.parentNode = this.selection[0].parentNode;\n\t\t\t\t\tthis.childNodes = this.selection[0].childNodes;\n\t\t\t\t\tthis.node = selection[0];\n\t\t\t\t\tthis.length = this.selection.length;\n\t\t\t\t} else {\n\t\t\t\t\tthis.parentNode = null;\n\t\t\t\t\tthis.childNodes = null;\n\t\t\t\t\tthis.node = null;\n\t\t\t\t\tthis.length = 0;\n\t\t\t\t}\n\n\t\t\t\tif(typeof Mura.supportPassive == 'undefined'){\n\t\t\t\t\tMura.supportsPassive = false;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar opts = Object.defineProperty({}, 'passive', {\n\t\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\tMura.supportsPassive = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\twindow.addEventListener(\"testPassive\", null, opts);\n\t\t\t\t\t\twindow.removeEventListener(\"testPassive\", null, opts);\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t},\n\n\t\t/**\n\t\t * get - Deprecated: Returns element at index of selection, use item()\n\t\t *\n\t\t * @param\t{number} index Index of selection\n\t\t * @return {*}\n\t\t */\n\t\tget(index) {\n\t\t\tif(typeof index != 'undefined'){\n\t\t\t\treturn this.selection[index];\n\t\t\t} else {\n\t\t\t\treturn this.selection;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * select - Returns new Mura.DomSelection\n\t\t * \n\t\t * @param\t{string} selector Selector\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tselect(selector) {\n\t\t\treturn Mura(selector);\n\t\t},\n\n\t\t/**\n\t\t * each - Runs function against each item in selection\n\t\t *\n\t\t * @param\t{function} fn Method\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\teach(fn) {\n\t\t\tthis.selection.forEach(function(el, idx, array) {\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\tfn(el, idx, array);\n\t\t\t\t} else {\n\t\t\t\t\tfn.call(el, el, idx, array);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * each - Runs function against each item in selection\n\t\t *\n\t\t * @param\t{function} fn Method\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tforEach(fn) {\n\t\t\tthis.selection.forEach(function(el, idx, array) {\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\tfn(el, idx, array);\n\t\t\t\t} else {\n\t\t\t\t\tfn.call(el, el, idx, array);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * filter - Creates a new Mura.DomSelection instance contains selection values that pass filter function by returning true\n\t\t *\n\t\t * @param\t{function} fn Filter function\n\t\t * @return {Mura.DOMSelection} New Mura.DOMSelection\n\t\t */\n\t\tfilter(fn) {\n\t\t\treturn Mura(this.selection.filter(function(el,idx, array) {\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\treturn fn(el, idx,array);\n\t\t\t\t} else {\n\t\t\t\t\treturn fn.call(el, el, idx,array);\n\t\t\t\t}\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * map - Creates a new Mura.DomSelection instance contains selection values that are returned by Map function\n\t\t *\n\t\t * @param\t{function} fn Map function\n\t\t * @return {Mura.DOMSelection} New Mura.DOMSelection\n\t\t */\n\t\tmap(fn) {\n\t\t\treturn Mura(this.selection.map(function(el, idx, array) {\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\treturn fn(el, idx, array);\n\t\t\t\t} else {\n\t\t\t\t\treturn fn.call(el, el, idx, array);\n\t\t\t\t}\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * reduce - Returns value from\treduce function\n\t\t *\n\t\t * @param\t{function} fn Reduce function\n\t\t * @param\t{any} initialValue Starting accumulator value\n\t\t * @return {accumulator}\n\t\t */\n\t\treduce(fn, initialValue) {\n\t\t\tinitialValue = initialValue || 0;\n\t\t\treturn this.selection.reduce(\n\t\t\t\tfunction(accumulator, item, idx, array) {\n\t\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\t\treturn fn(accumulator,item, idx, array);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn fn.call(item, accumulator,item, idx, array);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tinitialValue\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * isNumeric - Returns if value is numeric\n\t\t *\n\t\t * @param\t{*} val Value\n\t\t * @return {boolean} description\n\t\t */\n\t\tisNumeric(val) {\n\t\t\tif (typeof val != 'undefined') {\n\t\t\t\treturn isNumeric(val);\n\t\t\t}\n\t\t\treturn isNumeric(this.selection[0]);\n\t\t},\n\n\t\t/**\n\t\t * processMarkup - Process Markup of selected dom elements\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\tprocessMarkup() {\n\t\t\tvar self = this;\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself.each(function(el) {\n\t\t\t\t\tMura.processMarkup(el);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * addEventHandler - Add event event handling object\n\t\t *\n\t\t * @param\t{string} selector\tSelector (optional: for use with delegated events)\n\t\t * @param\t{object} handler\t\t\t\tdescription\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\taddEventHandler(selector, handler){\n\t\t\tif (typeof handler == 'undefined') {\n\t\t\t\thandler = selector;\n\t\t\t\tselector = '';\n\t\t\t}\n\t\t\tfor (var h in handler) {\n\t\t\t\tif(eventName.hasOwnProperty(h)){\n\t\t\t\t\tif(typeof selector == 'string' && selector){\n\t\t\t\t\t\ton(h, selector, handler[h]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ton(h,handler[h]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * on - Add event handling method\n\t\t *\n\t\t * @param\t{string} eventName Event name\n\t\t * @param\t{string} selector Selector (optional: for use with delegated events)\n\t\t * @param\t{function} fn description\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\ton(eventName, selector, fn, EventListenerOptions) {\n\t\t\tif(typeof EventListenerOptions == 'undefined'){\n\t\t\t\tif(typeof fn != 'undefined' && typeof fn != 'function'){\n\t\t\t\t\tEventListenerOptions=fn;\n\t\t\t\t} else {\n\t\t\t\t\tEventListenerOptions=true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(eventName=='touchstart' || eventName=='end'){\n\t\t\t\tEventListenerOptions= Mura.supportsPassive ? { passive: true } : false;\n\t\t\t}\n\n\t\t\tif (typeof selector == 'function') {\n\t\t\t\tfn = selector;\n\t\t\t\tselector = '';\n\t\t\t}\n\t\t\tif (eventName == 'ready') {\n\t\t\t\tif (document.readyState != 'loading') {\n\t\t\t\t\tvar self = this;\n\t\t\t\t\tsetTimeout(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.each(function(target) {\n\t\t\t\t\t\t\t\tif (selector) {\n\t\t\t\t\t\t\t\t\tMura(target).find(\n\t\t\t\t\t\t\t\t\t\tselector\n\t\t\t\t\t\t\t\t\t).each(\n\t\t\t\t\t\t\t\t\t\tfunction(target) {\n\t\t\t\t\t\t\t\t\t\t\tif(typeof fn.call =='undefined'){\n\t\t\t\t\t\t\t\t\t\t\t\tfn(target);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tfn.call(target,target);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(typeof fn.call =='undefined'){\n\t\t\t\t\t\t\t\t\t\tfn(target);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tfn.call(target,target);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t1\n\t\t\t\t\t);\n\t\t\t\t\treturn this;\n\t\t\t\t} else {\n\t\t\t\t\teventName = 'DOMContentLoaded';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.each(function(el) {\n\t\t\t\t\tif (typeof this.addEventListener ==\n\t\t\t\t\t\t\t'function') {\n\t\t\t\t\t\t\tvar self = el;\n\t\t\t\t\t\t\tthis.addEventListener(\n\t\t\t\t\t\t\t\t\teventName,\n\t\t\t\t\t\t\t\t\tfunction(event) {\n\t\t\t\t\t\t\t\t\t\tif (selector) {\n\t\t\t\t\t\t\t\t\t\t\tif (Mura(event.target).is(selector)) {\n\t\t\t\t\t\t\t\t\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn fn(event);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn fn.call(event.target,event);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\t\t\t\t\t\t\t\treturn fn(event);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\treturn fn.call(self,event);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tEventListenerOptions\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * hover - Adds hovering events to selected dom elements\n\t\t *\n\t\t * @param\t{function} handlerIn\tIn method\n\t\t * @param\t{function} handlerOut Out method\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\thover(handlerIn, handlerOut, EventListenerOptions) {\n\t\t\tif(typeof EventListenerOptions =='undefined' || EventListenerOptions == null){\n\t\t\t\tEventListenerOptions= Mura.supportsPassive ? { passive: true } : false;\n\t\t\t}\n\t\t\tthis.on('mouseover', handlerIn, EventListenerOptions);\n\t\t\tthis.on('mouseout', handlerOut, EventListenerOptions);\n\t\t\tthis.on('touchstart', handlerIn, EventListenerOptions);\n\t\t\tthis.on('touchend', handlerOut, EventListenerOptions);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * click - Adds onClick event handler to selection\n\t\t *\n\t\t * @param\t{function} fn Handler function\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tclick(fn) {\n\t\t\tthis.on('click', fn);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * change - Adds onChange event handler to selection\n\t\t *\n\t\t * @param\t{function} fn Handler function\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tchange(fn) {\n\t\t\tthis.on('change', fn);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * submit - Adds onSubmit event handler to selection\n\t\t *\n\t\t * @param\t{function} fn Handler function\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tsubmit(fn) {\n\t\t\tif (fn) {\n\t\t\t\tthis.on('submit', fn);\n\t\t\t} else {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tif (typeof el.submit == 'function') {\n\t\t\t\t\t\tMura.submitForm(el);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * ready - Adds onReady event handler to selection\n\t\t *\n\t\t * @param\t{function} fn Handler function\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tready(fn) {\n\t\t\tthis.on('ready', fn);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * off - Removes event handler from selection\n\t\t *\n\t\t * @param\t{string} eventName Event name\n\t\t * @param\t{function} fn Function to remove\t(optional)\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\toff(eventName, fn) {\n\t\t\tthis.each(function(el, idx, array) {\n\t\t\t\tif (typeof eventName != 'undefined') {\n\t\t\t\t\tif (typeof fn != 'undefined') {\n\t\t\t\t\t\tel.removeEventListener(eventName, fn);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel[eventName] = null;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof el.parentElement !=\n\t\t\t\t\t\t'undefined' && el.parentElement &&\n\t\t\t\t\t\ttypeof el.parentElement.replaceChild !=\n\t\t\t\t\t\t'undefined') {\n\t\t\t\t\t\tvar elClone = el.cloneNode(true);\n\t\t\t\t\t\tel.parentElement.replaceChild(elClone, el);\n\t\t\t\t\t\tarray[idx] = elClone;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log(\"Mura: Can not remove all handlers from element without a parent node\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * unbind - Removes event handler from selection\n\t\t *\n\t\t * @param\t{string} eventName Event name\n\t\t * @param\t{function} fn Function to remove\t(optional)\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tunbind(eventName, fn) {\n\t\t\tthis.off(eventName, fn);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * bind - Add event handling method\n\t\t *\n\t\t * @param\t{string} eventName Event name\n\t\t * @param\t{string} selector Selector (optional: for use with delegated events)\n\t\t * @param\t{function} fn description\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tbind(eventName, fn) {\n\t\t\tthis.on(eventName, fn);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * trigger - Triggers event on selection\n\t\t *\n\t\t * @param\t{string} eventName Event name\n\t\t * @param\t{object} eventDetail Event properties\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\ttrigger(eventName, eventDetail) {\n\t\t\teventDetail = eventDetail || {};\n\t\t\tthis.each(function(el) {\n\t\t\t\tMura.trigger(el, eventName,eventDetail);\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * parent - Return new Mura.DOMSelection of the first elements parent\n\t\t *\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tparent() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\treturn Mura(this.selection[0].parentNode);\n\t\t},\n\n\t\t/**\n\t\t * children - Returns new Mura.DOMSelection or the first elements children\n\t\t *\n\t\t * @param\t{string} selector Filter (optional)\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tchildren(selector) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (this.selection[0].hasChildNodes()) {\n\t\t\t\tvar children = Mura(this.selection[0].childNodes);\n\t\t\t\tif (typeof selector == 'string') {\n\t\t\t\t\tvar filterFn = function(el) {\n\t\t\t\t\t\treturn (el.nodeType === 1 || el.nodeType === 11 || el.nodeType === 9) && el.matchesSelector(selector);\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tvar filterFn = function(el) {\n\t\t\t\t\t\treturn el.nodeType === 1 || el.nodeType === 11 ||\tel.nodeType === 9;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn children.filter(filterFn);\n\t\t\t} else {\n\t\t\t\treturn Mura([]);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * find - Returns new Mura.DOMSelection matching items under the first selection\n\t\t *\n\t\t * @param\t{string} selector Selector\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tfind(selector) {\n\t\t\tif (this.selection.length && this.selection[0]) {\n\t\t\t\tvar removeId = false;\n\t\t\t\tif (this.selection[0].nodeType == '1' ||\n\t\t\t\t\tthis.selection[0].nodeType == '11') {\n\t\t\t\t\tvar result = this.selection[0].querySelectorAll(selector);\n\t\t\t\t} else if (this.selection[0].nodeType =='9') {\n\t\t\t\t\tvar result = document.querySelectorAll(selector);\n\t\t\t\t} else {\n\t\t\t\t\tvar result = [];\n\t\t\t\t}\n\t\t\t\treturn Mura(result);\n\t\t\t} else {\n\t\t\t\t\treturn Mura([]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * first - Returns first item in selection\n\t\t *\n\t\t * @return {*}\n\t\t */\n\t\tfirst() {\n\t\t\tif (this.selection.length) {\n\t\t\t\treturn Mura(this.selection[0]);\n\t\t\t} else {\n\t\t\t\treturn Mura([]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * last - Returns last item in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tlast() {\n\t\t\tif (this.selection.length) {\n\t\t\t\treturn Mura(this.selection[this.selection.length - 1]);\n\t\t\t} else {\n\t\t\t\treturn Mura([]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * selector - Returns css selector for first item in selection\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tselector() {\n\t\t\tvar pathes = [];\n\t\t\tvar path, node = Mura(this.selection[0]);\n\t\t\twhile (node.length) {\n\t\t\t\tvar realNode = node.get(0),\n\t\t\t\t\tname = realNode.localName;\n\t\t\t\tif (!name) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!node.data('hastempid') && node.attr('id') && node.attr('id') != 'mura-variation-el') {\n\t\t\t\t\tname = '#' + node.attr('id');\n\t\t\t\t\tpath = name + (path ? ' > ' + path : '');\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (node.data('instanceid')) {\n\t\t\t\t\tname = '[data-instanceid=\"' + node.data('instanceid') + '\"]';\n\t\t\t\t\tpath = name + (path ? ' > ' + path : '');\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tname = name.toLowerCase();\n\t\t\t\t\tvar parent = node.parent();\n\t\t\t\t\tvar sameTagSiblings = parent.children(name);\n\t\t\t\t\tif (sameTagSiblings.length > 1) {\n\t\t\t\t\t\tvar allSiblings = parent.children();\n\t\t\t\t\t\tvar index = allSiblings.index(realNode) + 1;\n\t\t\t\t\t\tif (index > 0) {name += ':nth-child(' + index + ')';}\n\t\t\t\t\t}\n\t\t\t\t\tpath = name + (path ? ' > ' + path : '');\n\t\t\t\t\tnode = parent;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpathes.push(path);\n\t\t\treturn pathes.join(',');\n\t\t},\n\n\t\t/**\n\t\t * siblings - Returns new Mura.DOMSelection of first item's siblings\n\t\t *\n\t\t * @param\t{string} selector Selector to filter siblings (optional)\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tsiblings(selector) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\tif (el.hasChildNodes()) {\n\t\t\t\tvar silbings = Mura(this.selection[0].childNodes);\n\t\t\t\tif (typeof selector == 'string') {\n\t\t\t\t\tvar filterFn = function(el) {\n\t\t\t\t\t\treturn (el.nodeType === 1 || el.nodeType === 11 || el.nodeType === 9) && el.matchesSelector(selector);\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tvar filterFn = function(el) {\n\t\t\t\t\t\treturn el.nodeType === 1 ||\tel.nodeType === 11 || el.nodeType === 9;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn silbings.filter(filterFn);\n\t\t\t} else {\n\t\t\t\treturn Mura([]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * item - Returns item at selected index\n\t\t *\n\t\t * @param\t{number} idx Index to return\n\t\t * @return {*}\n\t\t */\n\t\titem(idx) {\n\t\t\treturn this.selection[idx];\n\t\t},\n\n\t\t/**\n\t\t * index - Returns the index of element\n\t\t *\n\t\t * @param\t{*} el Element to return index of\n\t\t * @return {*}\n\t\t */\n\t\tindex(el) {\n\t\t\treturn this.selection.indexOf(el);\n\t\t},\n\n\t\t/**\n\t\t * indexOf - Returns the index of element\n\t\t *\n\t\t * @param\t{*} el Element to return index of\n\t\t * @return {*}\n\t\t */\n\t\tindexOf(el) {\n\t\t\treturn this.selection.indexOf(el);\n\t\t},\n\n\t\t/**\n\t\t * closest - Returns new Mura.DOMSelection of closest parent matching selector\n\t\t *\n\t\t * @param\t{string} selector Selector\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tclosest(selector) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\tfor (var parent = el; parent !== null && parent.matchesSelector && !parent.matchesSelector(selector); parent = el.parentElement) {\n\t\t\t\tel = parent;\n\t\t\t};\n\t\t\tif (parent) {\n\t\t\t\treturn Mura(parent)\n\t\t\t} else {\n\t\t\t\treturn Mura([]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * append - Appends element to items in selection\n\t\t *\n\t\t * @param\t{*} el Element to append\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tappend(el) {\n\t\t\tthis.each(function(target) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof el == 'string') {\n\t\t\t\t\t\ttarget.insertAdjacentHTML('beforeend', el);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.appendChild(el);\n\t\t\t\t\t}\n\t\t\t\t} catch(e){\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * appendDisplayObject - Appends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tappendDisplayObject(data) {\n\t\t\tvar self = this;\n\t\t\tdelete data.method;\n\t\t\tif(typeof data.transient == 'undefined'){\n\t\t\t\tdata.transient=true;\n\t\t\t}\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself.each(function(target) {\n\t\t\t\t\tvar el = document.createElement('div');\n\t\t\t\t\tel.setAttribute('class','mura-object');\n\t\t\t\t\tvar preserveid=false;\n\t\t\t\t\tfor (var a in data) {\n\t\t\t\t\t\tif(typeof data[a]=='object'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,JSON.stringify(data[a]));\n\t\t\t\t\t\t} else if (a != 'preserveid'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,data[a]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpreserveid=data[a];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.async == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-async',true);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.render == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-render','server');\n\t\t\t\t\t}\n\t\t\t\t\tif(preserveid && Mura.isUUID(data.instanceid)){\n\t\t\t\t\t\tel.setAttribute('data-instanceid',data.instanceid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.setAttribute('data-instanceid',Mura.createUUID());\n\t\t\t\t\t}\t\n\t\t\t\t\tvar self=target;\n\t\t\t\t\tfunction watcher(){\n\t\t\t\t\t\tif(Mura.markupInitted){\n\t\t\t\t\t\t\tMura(self).append(el);\n\t\t\t\t\t\t\tMura.processDisplayObject(el,true,true).then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(watcher);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twatcher();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * appendModule - Appends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tappendModule(data) {\n\t\t\treturn this.appendDisplayObject(data);\n\t\t},\n\n\t\t/**\n\t\t * insertDisplayObjectAfter - Inserts display object after selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tinsertDisplayObjectAfter(data) {\n\t\t\tvar self = this;\n\t\t\tdelete data.method;\n\t\t\tif(typeof data.transient == 'undefined'){\n\t\t\t\tdata.transient=true;\n\t\t\t}\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself.each(function(target) {\n\t\t\t\t\tvar el = document.createElement('div');\n\t\t\t\t\tel.setAttribute('class','mura-object');\n\t\t\t\t\tvar preserveid=false;\n\t\t\t\t\tfor (var a in data) {\n\t\t\t\t\t\tif(typeof data[a]=='object'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,JSON.stringify(data[a]));\n\t\t\t\t\t\t} else if (a != 'preserveid'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,data[a]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpreserveid=data[a];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.async == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-async',true);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.render == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-render','server');\n\t\t\t\t\t}\n\t\t\t\t\tif(preserveid && Mura.isUUID(data.instanceid)){\n\t\t\t\t\t\tel.setAttribute('data-instanceid',data.instanceid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.setAttribute('data-instanceid',Mura.createUUID());\n\t\t\t\t\t}\t\n\t\t\t\t\tvar self=target;\n\t\t\t\t\tfunction watcher(){\n\t\t\t\t\t\tif(Mura.markupInitted){\n\t\t\t\t\t\t\tMura(self).after(el);\n\t\t\t\t\t\t\tMura.processDisplayObject(el,true,true).then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(watcher);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twatcher();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * insertModuleAfter - Appends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tinsertModuleAfter(data) {\n\t\t\treturn this.insertDisplayObjectAfter(data);\n\t\t},\n\n\t\t/**\n\t\t * insertDisplayObjectBefore - Inserts display object after selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tinsertDisplayObjectBefore(data) {\n\t\t\tvar self = this;\n\t\t\tdelete data.method;\n\t\t\tif(typeof data.transient == 'undefined'){\n\t\t\t\tdata.transient=true;\n\t\t\t}\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself.each(function(target) {\n\t\t\t\t\tvar el = document.createElement('div');\n\t\t\t\t\tel.setAttribute('class','mura-object');\n\t\t\t\t\tvar preserveid=false;\n\t\t\t\t\tfor (var a in data) {\n\t\t\t\t\t\tif(typeof data[a]=='object'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,JSON.stringify(data[a]));\n\t\t\t\t\t\t} else if (a != 'preserveid'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,data[a]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpreserveid=data[a];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.async == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-async',true);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.render == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-render','server');\n\t\t\t\t\t}\n\t\t\t\t\tif(preserveid && Mura.isUUID(data.instanceid)){\n\t\t\t\t\t\tel.setAttribute('data-instanceid',data.instanceid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.setAttribute('data-instanceid',Mura.createUUID());\n\t\t\t\t\t}\t\n\t\t\t\t\tvar self=target;\n\t\t\t\t\tfunction watcher(){\n\t\t\t\t\t\tif(Mura.markupInitted){\n\t\t\t\t\t\t\tMura(self).before(el);\n\t\t\t\t\t\t\tMura.processDisplayObject(el,true,true).then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(watcher);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twatcher();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * insertModuleBefore - Appends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tinsertModuleBefore(data) {\n\t\t\treturn this.insertDisplayObjectBefore(data);\n\t\t},\n\n\t\t/**\n\t\t * prependDisplayObject - Prepends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tprependDisplayObject(data) {\n\t\t\tvar self = this;\n\t\t\tdelete data.method;\n\t\t\tif(typeof data.transient == 'undefined'){\n\t\t\t\tdata.transient=true;\n\t\t\t}\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself.each(function(target) {\n\t\t\t\t\tvar el = document.createElement('div');\n\t\t\t\t\tel.setAttribute('class','mura-object');\n\t\t\t\t\tvar preserveid=false;\n\t\t\t\t\tfor (var a in data) {\n\t\t\t\t\t\tif(typeof data[a]=='object'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,JSON.stringify(data[a]));\n\t\t\t\t\t\t} else if (a != 'preserveid'){\n\t\t\t\t\t\t\tel.setAttribute('data-' + a,data[a]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpreserveid=data[a];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.async == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-async',true);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof data.render == 'undefined') {\n\t\t\t\t\t\tel.setAttribute('data-render','server');\n\t\t\t\t\t}\n\t\t\t\t\tif(preserveid && Mura.isUUID(data.instanceid)){\n\t\t\t\t\t\tel.setAttribute('data-instanceid',data.instanceid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.setAttribute('data-instanceid',Mura.createUUID());\n\t\t\t\t\t}\t\n\t\t\t\t\tvar self=target;\n\t\t\t\t\tfunction watcher(){\n\t\t\t\t\t\tif(Mura.markupInitted){\n\t\t\t\t\t\t\tMura(self).prepend(el);\n\t\t\t\t\t\t\tMura.processDisplayObject(el,true,true).then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(watcher);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twatcher();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * prependModule - Prepends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tprependModule(data) {\n\t\t\treturn this.prependDisplayObject(data);\n\t\t},\n\n\t\t/**\n\t\t * processDisplayObject - Handles processing of display object params to selection\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\tprocessDisplayObject() {\n\t\t\tvar self = this;\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself.each(function(target) {\n\t\t\t\t\tMura.processDisplayObject(\n\t\t\t\t\t\ttarget,true,true).then(\n\t\t\t\t\t\tresolve, reject\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * processModule - Prepends display object to selected items\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\tprocessModule() {\n\t\t\treturn this.processDisplayObject();\n\t\t},\n\n\t\t/**\n\t\t * prepend - Prepends element to items in selection\n\t\t *\n\t\t * @param\t{documentElement|string} el Element to append\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tprepend(el) {\n\t\t\tthis.each(function(target) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof el == 'string') {\n\t\t\t\t\t\ttarget.insertAdjacentHTML('afterbegin', el);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.insertBefore(el, target.firstChild);\n\t\t\t\t\t}\n\t\t\t\t} catch(e){\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * before - Inserts element before items in selection\n\t\t *\n\t\t * @param\t{documentElement|string} el Element to append\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tbefore(el) {\n\t\t\tthis.each(function(target) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof el == 'string') {\n\t\t\t\t\t\ttarget.insertAdjacentHTML('beforebegin', el);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.parentNode.insertBefore(el,target);\n\t\t\t\t\t}\n\t\t\t\t} catch(e){\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * after - Inserts element after items in selection\n\t\t *\n\t\t * @param\t{documentElement|string} el Element to append\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tafter(el) {\n\t\t\tthis.each(function(target) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof el == 'string') {\n\t\t\t\t\t\ttarget.insertAdjacentHTML('afterend', el);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(target.nextSibling){\n\t\t\t\t\t\t\ttarget.parentNode.insertBefore(el, target.nextSibling);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget.parentNode.appendChild(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t} catch(e){\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * hide - Hides elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\thide() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tel.style.display = 'none';\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * show - Shows elements in selection\n\t\t *\n\t\t * @return {object}\tSelf\n\t\t */\n\t\tshow() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tel.style.display = '';\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * repaint - repaints elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection}\tSelf\n\t\t */\n\t\tredraw() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tvar elm = Mura(el);\n\t\t\t\tsetTimeout(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\telm.show();\n\t\t\t\t\t},\n\t\t\t\t\t1\n\t\t\t\t);\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * remove - Removes elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection}\tSelf\n\t\t */\n\t\tremove() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tel.parentNode && el.parentNode.removeChild(el);\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * detach - Detaches elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection}\tSelf\n\t\t */\n\t\tdetach() {\n\t\t\tvar detached=[];\n\t\t\tthis.each(function(el) {\n\t\t\t\tel.parentNode && detached.push(el.parentNode.removeChild(el));\n\t\t\t});\n\t\t\treturn Mura(detached);\n\t\t},\n\n\t\t/**\n\t\t * addClass - Adds class to elements in selection\n\t\t *\n\t\t * @param\t{string} className Name of class\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\taddClass(className) {\n\t\t\tif (className.length) {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tif (el.classList) {\n\t\t\t\t\t\tel.classList.add(className);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.className += ' ' + className;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * hasClass - Returns if the first element in selection has class\n\t\t *\n\t\t * @param\t{string} className Class name\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\thasClass(className) {\n\t\t\t\treturn this.is(\".\" + className);\n\t\t},\n\n\t\t/**\n\t\t * removeClass - Removes class from elements in selection\n\t\t *\n\t\t * @param\t{string} className Class name\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tremoveClass(className) {\n\t\t\tthis.each(function(el) {\n\t\t\t\tif (el.classList) {\n\t\t\t\t\tel.classList.remove(className);\n\t\t\t\t} else if (el.className) {\n\t\t\t\t\tel.className = el.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * toggleClass - Toggles class on elements in selection\n\t\t *\n\t\t * @param\t{string} className Class name\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\ttoggleClass(className) {\n\t\t\tthis.each(function(el) {\n\t\t\t\tif (el.classList) {\n\t\t\t\t\tel.classList.toggle(className);\n\t\t\t\t} else {\n\t\t\t\t\tvar classes = el.className.split(' ');\n\t\t\t\t\tvar existingIndex = classes.indexOf(className);\n\n\t\t\t\t\tif (existingIndex >= 0)\n\t\t\t\t\t\tclasses.splice(existingIndex, 1);\n\t\t\t\t\telse\n\t\t\t\t\t\tclasses.push(className);\n\n\t\t\t\t\tel.className = classes.join(' ');\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * empty - Removes content from elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection}\tSelf\n\t\t */\n\t\tempty() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tel.innerHTML = '';\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * evalScripts - Evaluates script tags in selection elements\n\t\t *\n\t\t * @return {Mura.DOMSelection}\tSelf\n\t\t */\n\t\tevalScripts() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis.each(function(el) {\n\t\t\t\tMura.evalScripts(el);\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * html - Returns or sets HTML of elements in selection\n\t\t *\n\t\t * @param\t{string} htmlString description\n\t\t * @return {Mura.DOMSelection|string} Self\n\t\t */\n\t\thtml(htmlString) {\n\t\t\tif (typeof htmlString != 'undefined') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tel.innerHTML = htmlString;\n\t\t\t\t\tMura.evalScripts(el);\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else {\n\t\t\t\tif (!this.selection.length) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t\treturn this.selection[0].innerHTML;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * css - Sets css value for elements in selection\n\t\t *\n\t\t * @param\t{string} ruleName Css rule name\n\t\t * @param\t{string} value\t\tRule value\n\t\t * @return {Mura.DOMSelection|string}\tSelf\n\t\t */\n\t\tcss(ruleName, value) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof ruleName == 'undefined' && typeof value == 'undefined') {\n\t\t\t\ttry {\n\t\t\t\t\treturn getComputedStyle(this.selection[0]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t//console.log(e)\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\t\t\t} else if (typeof ruleName == 'object') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (var p in ruleName) {\n\t\t\t\t\t\t\tel.style[Mura.styleMap.tojs[p.toLowerCase()]] = ruleName[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t//console.log(e)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (typeof value != 'undefined') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tel.style[Mura.styleMap.tojs[ruleName.toLowerCase()]] = value;\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t//console.log(e)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\treturn getComputedStyle(this.selection[\t0])[Mura.styleMap.tojs[ruleName.toLowerCase()]];\n\t\t\t\t} catch (e) {\n\t\t\t\t\t//console.log(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * calculateDisplayObjectStyles - Looks at data attrs and sets appropriate styles\n\t\t *\n\t\t * @return {Mura.DOMSelection}\tSelf\n\t\t */\n\t\tcalculateDisplayObjectStyles(windowResponse) {\n\t\t\t\n\t\t\tthis.each(function(el) {\n\t\t\t\tvar breakpoints=['mura-xs','mura-sm','mura-md','mura-lg','mura-xl'];\n\t\t\t\tvar objBreakpoint='mura-sm';\n\t\t\t\tvar obj=Mura(el);\n\n\t\t\t\tfor(var b=0;b= breakpoints.indexOf(objBreakpoint);\n\t\t\t\t\n\t\t\t\tMura.windowResponsiveModules=Mura.windowResponsiveModules||{};\n\t\t\t\tMura.windowResponsiveModules[obj.data('instanceid')]=false;\n\n\t\t\t\tobj = (obj.node) ? obj : Mura(obj);\n\t\t\t\t\n\t\t\t\tif(!windowResponse){\n\t\t\t\t\tapplyObjectClassesAndId(obj);\n\t\t\t\t}\n\n\t\t\t\tvar styleSupport=obj.data('stylesupport') || {};\n\t\t\t\t\n\t\t\t\tif(typeof styleSupport == 'string'){\n\t\t\t\t\ttry{\n\t\t\t\t\t\tstyleSupport=JSON.parse.call(null,styleSupport)\n\t\t\t\t\t} catch(e){\n\t\t\t\t\t\tstyleSupport={};\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof styleSupport == 'string'){\n\t\t\t\t\t\tstyleSupport={};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tobj.removeAttr('style');\n\t\t\t\t\n\t\t\t\tif(!fullsize){\n\n\t\t\t\t\tif(styleSupport && typeof styleSupport.objectstyles == 'object'){\n\t\t\t\t\t\tvar objectstyles=styleSupport.objectstyles;\n\t\t\t\t\t\tdelete objectstyles.margin;\n\t\t\t\t\t\tdelete objectstyles.marginLeft;\n\t\t\t\t\t\tdelete objectstyles.marginRight;\n\t\t\t\t\t\tdelete objectstyles.marginTop;\n\t\t\t\t\t\tdelete objectstyles.marginBottom;\n\t\t\t\t\t} \n\t\t\t\t}\n\n\t\t\t\tif(!fullsize || (fullsize && !(\n\t\t\t\t\tobj.css('marginTop')=='0px'\n\t\t\t\t\t&& obj.css('marginBottom')=='0px'\n\t\t\t\t\t&& obj.css('marginLeft')=='0px'\n\t\t\t\t\t&& obj.css('marginRight')=='0px'\n\t\t\t\t))){\n\t\t\t\t\tMura.windowResponsiveModules[obj.data('instanceid')]=true;\n\t\t\t\t}\n\n\t\t\t\tif(!windowResponse){\n\t\t\t\t\tvar sheet=Mura.getStyleSheet('mura-styles-' + obj.data('instanceid'));\n\n\t\t\t\t\twhile (sheet.cssRules.length) {\n\t\t\t\t\t\tsheet.deleteRule(0);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tMura.applyModuleStyles(styleSupport,styleTargets.object,sheet,obj);\n\t\t\t\t\tMura.applyModuleCustomCSS(styleSupport,sheet,obj.data('instanceid'));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar metaWrapper=obj.children('.mura-object-meta-wrapper');\n\t\t\t\tif(metaWrapper.length){\n\t\t\t\t\tstyleSupport.metastyles=styleSupport.metastyles || {}; \n\t\t\t\t\tvar meta=metaWrapper.children('.mura-object-meta');\n\t\t\t\t\tif(meta.length){\n\n\t\t\t\t\t\tmeta.removeAttr('style');\n\n\t\t\t\t\t\tif(!windowResponse){\n\t\t\t\t\t\t\tapplyMetaClassesAndId(obj,meta,metaWrapper);\n\t\t\t\t\t\t\tMura.applyModuleStyles(styleSupport,styleTargets.meta,sheet,obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar content=obj.children('.mura-object-content').first();\n\n\t\t\t\tcontent.removeAttr('style');\n\n\t\t\t\tif(!windowResponse){\n\t\t\t\t\tapplyContentClassesAndId(obj,content,metaWrapper);\n\t\t\t\t\tMura.applyModuleStyles(styleSupport,styleTargets.content,sheet,obj);\n\t\t\t\t}\n\n\t\t\t\tapplyMarginWidthOffset(obj);\n\n\t\t\t\tpinUIToolsToTopLeft(obj);\n\n\t\t\t\tfunction applyObjectClassesAndId(obj){\n\t\t\t\t\tif (obj.data('class')) {\n\t\t\t\t\t\tvar classes = obj.data('class');\n\t\t\t\t\t\tif (typeof classes != 'Array') {\n\t\t\t\t\t\t\tvar classes = classes.split(' ');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var c = 0; c < classes.length; c++) {\n\t\t\t\t\t\t\tif (!obj.hasClass(classes[c])) {\n\t\t\t\t\t\t\t\tobj.addClass(classes[c]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (obj.data('cssclass')) {\n\t\t\t\t\t\tvar classes = obj.data('cssclass');\n\t\t\t\t\t\tif (typeof classes != 'array') {\n\t\t\t\t\t\t\tvar classes = classes.split(' ');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var c = 0; c < classes.length; c++) {\n\t\t\t\t\t\t\tif (!obj.hasClass(classes[c])) {\n\t\t\t\t\t\t\t\tobj.addClass(classes[c]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (obj.data('objectspacing')) {\n\t\t\t\t\t\tvar classes = obj.data('objectspacing');\n\t\t\t\t\t\tif (typeof classes != 'array') {\n\t\t\t\t\t\t\tvar classes = classes.split(' ');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var c = 0; c < classes.length; c++) {\n\t\t\t\t\t\t\tif (c != 'custom' && !obj.hasClass(classes[c])) {\n\t\t\t\t\t\t\t\tobj.addClass(classes[c]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(obj.data('cssid')){\n\t\t\t\t\t\tobj.attr('id',obj.data('cssid'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.removeAttr('id');\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction applyMetaClassesAndId(obj,meta,metawrapper){\n\t\t\t\t\tif(obj.data('metacssid')){\n\t\t\t\t\t\tmeta.attr('id',obj.data('metacssid'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmeta.removeAttr('id');\n\t\t\t\t\t}\n\t\t\t\t\tif(obj.data('metacssclass')){\n\t\t\t\t\t\tobj.data('metacssclass').split(' ').forEach(function(c){\n\t\t\t\t\t\t\tif (!meta.hasClass(c)) {\n\t\t\t\t\t\t\t\tmeta.addClass(c);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tif (obj.data('metaspacing')) {\n\t\t\t\t\t\tvar classes = obj.data('metaspacing');\n\t\t\t\t\t\tif (typeof classes != 'array') {\n\t\t\t\t\t\t\tvar classes = classes.split(' ');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var c = 0; c < classes.length; c++) {\n\t\t\t\t\t\t\tif (c != 'custom' && !meta.hasClass(classes[c])) {\n\t\t\t\t\t\t\t\tmeta.addClass(classes[c]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(obj.is('.mura-object-label-left, .mura-object-label-right')){\n\t\t\t\t\t\tvar left=meta.css('marginLeft');\n\t\t\t\t\t\tvar right=meta.css('marginRight')\n\t\t\t\t\t\tif(!(left=='0px' && right=='0px') && left.charAt(0) != \"-\" && right.charAt(0) != \"-\"){\n\t\t\t\t\t\t\tmeta.css('width','calc(50% - (' + left + ' + ' + right + '))');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction applyContentClassesAndId(obj,content,metaWrapper){\n\t\t\t\t\tif(obj.data('contentcssid')){\n\t\t\t\t\t\tcontent.attr('id',obj.data('contentcssid'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontent.removeAttr('id');\n\t\t\t\t\t}\n\t\t\t\t\tif(obj.data('contentcssclass')){\n\t\t\t\t\t\tobj.data('contentcssclass').split(' ').forEach(function(c){\n\t\t\t\t\t\t\tif (!content.hasClass(c)) {\n\t\t\t\t\t\t\t\tcontent.addClass(c);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (obj.data('contentspacing')) {\n\t\t\t\t\t\tvar classes = obj.data('contentspacing');\n\t\t\t\t\t\tif (typeof classes != 'array') {\n\t\t\t\t\t\t\tvar classes = classes.split(' ');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var c = 0; c < classes.length; c++) {\n\t\t\t\t\t\t\tif (c != 'custom' && !content.hasClass(classes[c])) {\n\t\t\t\t\t\t\t\tcontent.addClass(classes[c]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(content.hasClass('container')){\n\t\t\t\t\t\tmetaWrapper.addClass('container');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmetaWrapper.removeClass('container');\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif(obj.is('.mura-object-label-left, .mura-object-label-right')){\n\t\t\t\t\t\tvar left=content.css('marginLeft');\n\t\t\t\t\t\tvar right=content.css('marginRight')\n\t\t\t\t\t\tif(!(left=='0px' && right=='0px') && left.charAt(0) != \"-\" && right.charAt(0) != \"-\"){\n\t\t\t\t\t\t\tif(fullsize){\n\t\t\t\t\t\t\t\tcontent.css('width','calc(50% - (' + left + ' + ' + right + '))');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tMura.windowResponsiveModules[obj.data('instanceid')]=true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction applyMarginWidthOffset(obj){\n\t\t\t\t\tvar left=obj.css('marginLeft');\n\t\t\t\t\tvar right=obj.css('marginRight')\n\t\t\t\t\t\n\t\t\t\t\tif(!obj.is('.mura-center') && !(left=='0px' && right=='0px') && !(left=='auto' || right=='auto') && left.charAt && left.charAt(0) != \"-\" && right.charAt && right.charAt(0) != \"-\"){\n\t\t\t\t\t\tif(fullsize){\n\t\t\t\t\t\t\tvar width='100%';\n\n\t\t\t\t\t\t\tif(obj.is('.mura-one')){\n\t\t\t\t\t\t\t\twidth='8.33%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-two')){\n\t\t\t\t\t\t\t\twidth='16.66%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-three')){\n\t\t\t\t\t\t\t\twidth='25%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-four')){\n\t\t\t\t\t\t\t\twidth='33.33%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-five')){\n\t\t\t\t\t\t\t\twidth='41.66%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-six')){\n\t\t\t\t\t\t\t\twidth='50%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-seven')){\n\t\t\t\t\t\t\t\twidth='58.33';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-eight')){\n\t\t\t\t\t\t\t\twidth='66.66%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-nine')){\n\t\t\t\t\t\t\t\twidth='75%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-ten')){\n\t\t\t\t\t\t\t\twidth='83.33%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-eleven')){\n\t\t\t\t\t\t\t\twidth='91.66%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-twelve')){\n\t\t\t\t\t\t\t\twidth='100%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-one-third')){\n\t\t\t\t\t\t\t\twidth='33.33%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-two-thirds')){\n\t\t\t\t\t\t\t\twidth='66.66%';\n\t\t\t\t\t\t\t} else if(obj.is('.mura-one-half')){\n\t\t\t\t\t\t\t\twidth='50%';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twidth='100%';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tobj.css('width','calc(' + width + ' - (' + left + ' + ' + right + '))');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tMura.windowResponsiveModules[obj.data('instanceid')]=true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction pinUIToolsToTopLeft(obj){\n\t\t\t\t\tvar top=obj.css('paddingTop');\n\t\t\t\t\tvar left=obj.css('paddingTop');\n\t\t\t\t\tif(top.replace && (top.replace(/[^0-9]/g,'') != '0' || left.replace && left.replace(/[^0-9]/g,'') != '0')){\n\t\t\t\t\t\tobj.addClass('mura-object-pin-tools');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.removeClass('mura-object-pin-tools');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * text - Gets or sets the text content of each element in the selection\n\t\t *\n\t\t * @param\t{string} textString Text string\n\t\t * @return {Mura.DOMSelection|string} Self\n\t\t */\n\t\ttext(textString) {\n\t\t\tif (typeof textString != 'undefined') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tel.textContent = textString;\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else {\n\t\t\t\treturn this.selection[0].textContent;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * is - Returns if the first element in the select matches the selector\n\t\t *\n\t\t * @param\t{string} selector description\n\t\t * @return {boolean}\n\t\t */\n\t\tis(selector) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tif (typeof this.selection[0] !== \"undefined\") {\n\t\t\t\t\treturn this.selection[0].matchesSelector && this.selection[0].matchesSelector(selector);\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} catch(e){\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * hasAttr - Returns is the first element in the selection has an attribute\n\t\t *\n\t\t * @param\t{string} attributeName description\n\t\t * @return {boolean}\n\t\t */\n\t\thasAttr(attributeName) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn typeof this.selection[0].hasAttribute ==\n\t\t\t\t'function' && this.selection[0].hasAttribute(\n\t\t\t\t\t\tattributeName);\n\t\t},\n\n\t\t/**\n\t\t * hasData - Returns if the first element in the selection has data attribute\n\t\t *\n\t\t * @param\t{sting} attributeName Data atttribute name\n\t\t * @return {boolean}\n\t\t */\n\t\thasData(attributeName) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn this.hasAttr('data-' + attributeName);\n\t\t},\n\n\n\t\t/**\n\t\t * offsetParent - Returns first element in selection's offsetParent\n\t\t *\n\t\t * @return {Mura.DOMSelection|Element}\toffsetParent\n\t\t */\n\t\toffsetParent() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\treturn el.offsetParent || el;\n\t\t},\n\n\t\t/**\n\t\t * outerHeight - Returns first element in selection's outerHeight\n\t\t *\n\t\t * @param\t{boolean} withMargin Whether to include margin\n\t\t * @return {number}\n\t\t */\n\t\touterHeight(withMargin) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof withMargin == 'undefined') {\n\t\t\t\tfunction outerHeight(el) {\n\t\t\t\t\tvar height = el.offsetHeight;\n\t\t\t\t\tvar style = getComputedStyle(el);\n\t\t\t\t\theight += parseInt(style.marginTop) + parseInt(style.marginBottom);\n\t\t\t\t\treturn height;\n\t\t\t\t}\n\t\t\t\treturn outerHeight(this.selection[0]);\n\t\t\t} else {\n\t\t\t\treturn this.selection[0].offsetHeight;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * height - Returns height of first element in selection or set height for elements in selection\n\t\t *\n\t\t * @param\t{number} height\tHeight (option)\n\t\t * @return {Mura.DOMSelection|number} Self\n\t\t */\n\t\theight(height) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof width != 'undefined') {\n\t\t\t\tif (!isNaN(height)) {\n\t\t\t\t\t\theight += 'px';\n\t\t\t\t}\n\t\t\t\tthis.css('height', height);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\t//var type=el.constructor.name.toLowerCase();\n\t\t\tif (typeof window !='undefined' && typeof window.document != 'undefined' && el === window) {\n\t\t\t\treturn innerHeight\n\t\t\t} else if (el === document) {\n\t\t\t\tvar body = document.body;\n\t\t\t\tvar html = document.documentElement;\n\t\t\t\treturn Math.max(body.scrollHeight, body.offsetHeight,\n\t\t\t\t\thtml.clientHeight, html.scrollHeight,\n\t\t\t\t\thtml.offsetHeight)\n\t\t\t}\n\t\t\tvar styles = getComputedStyle(el);\n\t\t\tvar margin = parseFloat(styles['marginTop']) + parseFloat(styles['marginBottom']);\n\t\t\treturn Math.ceil(el.offsetHeight + margin);\n\t\t},\n\n\t\t/**\n\t\t * width - Returns width of first element in selection or set width for elements in selection\n\t\t *\n\t\t * @param\t{number} width Width (optional)\n\t\t * @return {Mura.DOMSelection|number} Self\n\t\t */\n\t\twidth(width) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof width != 'undefined') {\n\t\t\t\tif (!isNaN(width)) {\n\t\t\t\t\twidth += 'px';\n\t\t\t\t}\n\t\t\t\tthis.css('width', width);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\t//var type=el.constructor.name.toLowerCase();\n\t\t\tif (typeof window !='undefined' && typeof window.document != 'undefined' && el === window) {\n\t\t\t\treturn innerWidth\n\t\t\t} else if (el === document) {\n\t\t\t\tvar body = document.body;\n\t\t\t\tvar html = document.documentElement;\n\t\t\treturn Math.max(body.scrollWidth, body.offsetWidth,\n\t\t\t\t\thtml.clientWidth, html.scrolWidth,\n\t\t\t\t\thtml.offsetWidth)\n\t\t\t}\n\t\t\treturn getComputedStyle(el).width;\n\t\t},\n\n\t\t/**\n\t\t * width - Returns outerWidth of first element in selection\n\t\t *\n\t\t * @return {number}\n\t\t */\n\t\touterWidth() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\tvar width = el.offsetWidth;\n\t\t\tvar style = getComputedStyle(el);\n\n\t\t\twidth += parseInt(style.marginLeft) + parseInt(style.marginRight);\n\t\t\treturn width;\n\t\t},\n\n\t\t/**\n\t\t * scrollTop - Returns the scrollTop of the current document\n\t\t *\n\t\t * @return {number}\n\t\t */\n\t\tscrollTop() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tvar el = this.selection[0];\n\t\t\tif(typeof el.scrollTop != 'undefined'){\n\t\t\t\treturn el.scrollTop;\n\t\t\t} else {\n\t\t\t\treturn\twindow.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * offset - Returns offset of first element in selection\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\toffset() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tvar box = this.selection[0].getBoundingClientRect();\n\t\t\treturn {\n\t\t\t\ttop: box.top + (pageYOffset || document.scrollTop) -\n\t\t\t\t\t\t(document.clientTop || 0),\n\t\t\t\tleft: box.left + (pageXOffset || document.scrollLeft) -\n\t\t\t\t\t\t(document.clientLeft || 0)\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * removeAttr - Removes attribute from elements in selection\n\t\t *\n\t\t * @param\t{string} attributeName Attribute name\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tremoveAttr(attributeName) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis.each(function(el) {\n\t\t\t\tif (el && typeof el.removeAttribute == 'function') {\n\t\t\t\t\tel.removeAttribute(attributeName);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * changeElementType - Changes element type of elements in selection\n\t\t *\n\t\t * @param\t{string} type Element type to change to\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tchangeElementType(type) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis.each(function(el) {\n\t\t\t\tMura.changeElementType(el, type)\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * val - Set the value of elements in selection\n\t\t *\n\t\t * @param\t{*} value Value\n\t\t * @return {*} Self\n\t\t */\n\t\tval(value) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof value != 'undefined') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tif (el.tagName == 'radio') {\n\t\t\t\t\t\tif (el.value == value) {\n\t\t\t\t\t\t\tel.checked = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.checked = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.value = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else if (this.selection[0].tagName=='SELECT'){\n\t\t\t\tvar val=[];\n\t\t\t\tfor (var j = this.selection[0].options.length - 1; j >= 0; j--) {\n\t\t\t\t\tif (this.selection[0].options[j].selected){\n\t\t\t\t\t\tval.push(this.selection[0].options[j].value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn val.join(\",\");\n\t\t\t} else {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(this.selection[0], 'value') ||\n\t\t\t\t\ttypeof this.selection[0].value != 'undefined') {\n\t\t\t\t\treturn this.selection[0].value;\n\t\t\t\t} else {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * attr - Returns attribute value of first element in selection or set attribute value for elements in selection\n\t\t *\n\t\t * @param\t{string} attributeName Attribute name\n\t\t * @param\t{*} value\t\t\t\t Value (optional)\n\t\t * @return {*} Self\n\t\t */\n\t\tattr(attributeName, value) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof value == 'undefined' && typeof attributeName =='undefined') {\n\t\t\t\treturn Mura.getAttributes(this.selection[0]);\n\t\t\t} else if (typeof attributeName == 'object') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tif (el.setAttribute) {\n\t\t\t\t\t\tfor (var p in attributeName) {\n\t\t\t\t\t\t\tel.setAttribute(p,attributeName[p]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else if (typeof value != 'undefined') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tif (el.setAttribute) {\n\t\t\t\t\t\tel.setAttribute(attributeName,value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else {\n\t\t\t\tif (this.selection[0] && this.selection[0].getAttribute) {\n\t\t\t\t\treturn this.selection[0].getAttribute(attributeName);\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * data - Returns data attribute value of first element in selection or set data attribute value for elements in selection\n\t\t *\n\t\t * @param\t{string} attributeName Attribute name\n\t\t * @param\t{*} value Value (optional)\n\t\t * @return {*} Self\n\t\t */\n\t\tdata(attributeName, value) {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (typeof value == 'undefined' && typeof attributeName == 'undefined') {\n\t\t\t\treturn Mura.getData(this.selection[0]);\n\t\t\t} else if (typeof attributeName == 'object') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tfor (var p in attributeName) {\n\t\t\t\t\t\tel.setAttribute(\"data-\" + p,attributeName[p]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else if (typeof value != 'undefined') {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tel.setAttribute(\"data-\" + attributeName, value);\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t\t} else if (this.selection[0] && this.selection[\t0].getAttribute) {\n\t\t\t\treturn Mura.parseString(this.selection[0].getAttribute(\"data-\" + attributeName));\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * prop - Returns attribute value of first element in selection or set attribute value for elements in selection\n\t\t *\n\t\t * @param\t{string} attributeName Attribute name\n\t\t * @param\t{*} value Value (optional)\n\t\t * @return {*} Self\n\t\t */\n\t\tprop(attributeName, value) {\n\t\t\t\tif (!this.selection.length) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tif (typeof value == 'undefined' && typeof attributeName == 'undefined') {\n\t\t\t\t\treturn Mura.getProps(this.selection[0]);\n\t\t\t\t} else if (typeof attributeName == 'object') {\n\t\t\t\t\tthis.each(function(el) {\n\t\t\t\t\t\tfor (var p in attributeName) {\n\t\t\t\t\t\t\tel.setAttribute(p,attributeName[p]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn this;\n\t\t\t\t} else if (typeof value != 'undefined') {\n\t\t\t\t\tthis.each(function(el) {\n\t\t\t\t\t\tel.setAttribute(attributeName,value);\n\t\t\t\t\t});\n\t\t\t\t\treturn this;\n\t\t\t\t} else {\n\t\t\t\t\treturn Mura.parseString(this.selection[0].getAttribute(attributeName));\n\t\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * fadeOut - Fades out elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tfadeOut() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tel.style.opacity = 1;\n\t\t\t\t(function fade() {\n\t\t\t\t\tif ((el.style.opacity -= .1) < \t0) {\n\t\t\t\t\t\tel.style.opacity=0;\n\t\t\t\t\t\tel.style.display = \"none\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestAnimationFrame(fade);\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * fadeIn - Fade in elements in selection\n\t\t *\n\t\t * @param\t{string} display Display value\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tfadeIn(display) {\n\t\t\t\tthis.each(function(el) {\n\t\t\t\t\tel.style.opacity = 0;\n\t\t\t\t\tel.style.display = display ||\t\"block\";\n\t\t\t\t\t(function fade() {\n\t\t\t\t\t\tvar val = parseFloat(el.style.opacity);\n\t\t\t\t\t\tif (!((val += .1) > 1)) {\n\t\t\t\t\t\t\tel.style.opacity = val;\n\t\t\t\t\t\t\trequestAnimationFrame(fade);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t});\n\t\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * toggle - Toggles display object elements in selection\n\t\t *\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\ttoggle() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tif (typeof el.style.display ==\n\t\t\t\t\t'undefined' || el.style.display ==\n\t\t\t\t\t'') {\n\t\t\t\t\tel.style.display = 'none';\n\t\t\t\t} else {\n\t\t\t\t\tel.style.display = '';\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\t\t/**\n\t\t * slideToggle - Place holder\n\t\t *\n\t\t * @return {Mura.DOMSelection} Self\n\t\t */\n\t\tslideToggle() {\n\t\t\tthis.each(function(el) {\n\t\t\t\tif (typeof el.style.display ==\n\t\t\t\t\t'undefined' || el.style.display ==\n\t\t\t\t\t'') {\n\t\t\t\t\tel.style.display = 'none';\n\t\t\t\t} else {\n\t\t\t\t\tel.style.display = '';\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * focus - sets focus of the first select element\n\t\t *\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tfocus() {\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis.selection[0].focus();\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * renderEditableAttr- Returns a string with editable attriute markup markup.\n\t\t *\n\t\t * @param\t{object} params Keys: name, type, required, validation, message, label\n\t\t * @return {Mura.DOMSelection}\n\t\t */\n\t\tmakeEditableAttr(params){\n\t\t\tif (!this.selection.length) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tvar value=this.selection[0].innerHTML;\n\t\t\tparams=params || {};\n\t\t\tif(!params.name){\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tparams.type=params.type || \"text\";\n\t\t\tif(typeof params.required == 'undefined'){\n\t\t\t\tparams.required=false;\n\t\t\t}\n\t\t\tif(typeof params.validation == 'undefined'){\n\t\t\t\tparams.validation='';\n\t\t\t}\n\t\t\tif(typeof params.message == 'undefined'){\n\t\t\t\tparams.message='';\n\t\t\t}\n\t\t\tif(typeof params.label == 'undefined'){\n\t\t\t\tparams.label=params.name;\n\t\t\t}\n\t\t\tvar outerClass=\"mura-editable mura-inactive\";\n\t\t\tvar innerClass=\"mura-inactive mura-editable-attribute\";\n\t\t\tif(params.type==\"htmlEditor\"){\n\t\t\t\touterClass += \" mura-region mura-region-loose\";\n\t\t\t\tinnerClass += \" mura-region-local\";\n\t\t\t} else {\n\t\t\t\touterClass += \" inline\";\n\t\t\t\tinnerClass += \" inline\";\n\t\t\t}\n\t\t\tvar innerClass=\"mura-inactive mura-editable-attribute\";\n\t\t\t/*\n\t\t\t
\n\t\t\t\n\t\t\t
About
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t*/\n\t\t\tvar markup='
';\n\t\t\tmarkup +='
';\n\t\t\tmarkup += '';\n\t\t\tmarkup +=\t'
';\n\t\t\tthis.selection[0].innerHTML=markup;\n\t\t\tMura.evalScripts(this.selection[0]);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t* processDisplayRegion - Renders and processes the display region data returned from Mura.renderFilename()\n\t\t*\n\t\t* @param\t{any} data Region data to render\n\t\t* @return {Promise}\n\t\t*/\n\t\tprocessDisplayRegion(data,label){\n\t\t\tif (typeof data == 'undefined' || !this.selection.length) {\n\t\t\t\t\treturn this.processMarkup();\n\t\t\t}\n\t\t\tthis.html(Mura.buildDisplayRegion(data));\n\t\t\tif(label != 'undefined'){\n\t\t\t\tthis.find('label.mura-editable-label').html('DISPLAY REGION : ' + data.label);\n\t\t\t}\n\t\t\treturn this.processMarkup();\n\t\t},\n\n\t\t/**\n\t\t * appendDisplayObject - Appends display object to selected items\n\t\t *\n\t\t * @param\t{object} data Display objectparams (including object='objectkey')\n\t\t * @return {Promise}\n\t\t */\n\t\tdspObject(data){\n\t\t\treturn this.appendDisplayObject(data);\n\t\t}\n\t});\n}\n\nmodule.exports=attach;","/**\n* Creates a new Mura.Entity\n* @name\tMura.Entity\n* @example\n* const content= Mura.getEntity('content')\n* \n* await content.loadBy('contentid','1234');\n* \n* await content.set({\n* \t\tsummary:'This is my summary',\n* \t\tapproved:1\n* ).save();\n* \n* const kids= await content.get('kids');\n* \n* kids.forEach(function(kid){\n* console.log(kid.getAll());\n* });\n\n* @class\n* @extends Mura.Core\n* @memberof Mura\n* @param\t{object} properties Object containing values to set into object\n* @return {Mura.Entity}\n*/\n\nfunction attach(Mura){\n\n\tMura.Entity = Mura.Core.extend(\n\t/** @lends Mura.Entity.prototype */\n\t{\n\t\tinit(properties,requestcontext) {\n\t\t\tproperties = properties || {};\n\t\t\tproperties.entityname = properties.entityname || 'content';\n\t\t\tproperties.siteid = properties.siteid || Mura.siteid;\n\t\t\tthis.set(properties);\n\n\t\t\tif (typeof this.properties.isnew == 'undefined') {\n\t\t\t\tthis.properties.isnew = 1;\n\t\t\t}\n\n\t\t\tif (this.properties.isnew) {\n\t\t\t\tthis.set('isdirty', true);\n\t\t\t} else {\n\t\t\t\tthis.set('isdirty', false);\n\t\t\t}\n\n\t\t\tif (typeof this.properties.isdeleted ==\t'undefined') {\n\t\t\t\tthis.properties.isdeleted = false;\n\t\t\t}\n\n\t\t\tthis._requestcontext=requestcontext || Mura.getRequestContext();\n\n\t\t\tthis.cachePut();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * updateFromDom - Updates editable data from what's in the DOM.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tupdateFromDom(){\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * setRequestContext - Sets the RequestContext\n\t\t *\n\t\t * @RequestContext\t{Mura.RequestContext} Mura.RequestContext List of fields\n\t\t * @return {Mura.Entity}\t\t\t\tSelf\n\t\t */\n\t\tsetRequestContext(requestcontext) {\n\t\t\tthis._requestcontext=requestcontext;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * getEnpoint - Returns API endpoint for entity type\n\t\t *\n\t\t * @return {string} All Headers\n\t\t */\n\t\tgetAPIEndpoint(){\n\t\t\treturn\tthis._requestcontext.getAPIEndpoint() + this.get('entityname') + '/';\n\t\t},\n\n\t\t/**\n\t\t * invoke - Invokes a method\n\t\t * @example\n\t\t * const myservice= Mura.getEntity('myservice');\n\t\t * const result= await myservice.invoke('myMethod',{foo:'bar'},'get');\n\t\t * \n\t\t * @param\t{string} name Method to call\n\t\t * @param\t{object} params Arguments to submit to method\n\t\t * @param\t{string} method GET or POST\n\t\t * @return {any}\n\t\t */\n\t\tinvoke(name,params,method,config){\n\t\t\tif(typeof name == 'object'){\n\t\t\t\tparams=name.params || name.data || {};\n\t\t\t\tmethod=name.method || name.type || 'get';\n\t\t\t\tconfig=name;\n\t\t\t\tname=name.name;\n\t\t\t} else {\n\t\t\t\tconfig=config || {};\n\t\t\t}\n\n\t\t\tMura.normalizeRequestConfig(config);\n\n\t\t\tvar self = this;\n\n\t\t\tif(typeof method=='undefined' && typeof params=='string'){\n\t\t\t\tmethod=params;\n\t\t\t\tparams={};\n\t\t\t}\n\n\t\t\tparams=params || {};\n\t\t\tmethod=method || \"post\";\n\n\t\t\tif(this[name]=='function'){\n\t\t\t\treturn this[name].apply(this,params);\n\t\t\t}\n\n\t\t\treturn new Promise(function(resolve,reject) {\n\n\t\t\t\tif(typeof resolve == 'function'){\n\t\t\t\t\tconfig.success=resolve;\n\t\t\t\t}\n\n\t\t\t\tif(typeof reject == 'function'){\n\t\t\t\t\tconfig.error=reject;\n\t\t\t\t}\n\n\t\t\t\tmethod=method.toLowerCase();\n\t\t\t\t\n\t\t\t\tself._requestcontext.request({\n\t\t\t\t\ttype: method,\n\t\t\t\t\turl: self.getAPIEndpoint() + name,\n\t\t\t\t\tcache: method=='get' ? config.cache : 'default',\n\t\t\t\t\tnext: config.next,\n\t\t\t\t\tdata: params,\n\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\tif (typeof resp.error == 'undefined') {\n\t\t\t\t\t\t\tif (typeof \tconfig.success ==\t'function') {\n\t\t\t\t\t\t\t\tif(typeof resp.data != 'undefined'){\n\t\t\t\t\t\t\t\t\tconfig.success(resp.data);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconfig.success(resp);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\tconfig.error(resp);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror(resp) {\n\t\t\t\t\t\tif (typeof config.error == 'function'){\n\t\t\t\t\t\t\tconfig.error(resp);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tprogress:config.progress,\n\t\t\t\t\tabort: config.abort\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * invokeWithCSRF - Proxies method call to remote api, but first generates CSRF tokens based on name\n\t\t* @example\n\t\t * const myservice= Mura.getEntity('myservice');\n\t\t * const result= await myservice.invokeWithCSRF('myMethod',{foo:'bar'},'get');\n\t\t * \n\t\t * @param\t{string} name Method to call\n\t\t * @param\t{object} params Arguments to submit to method\n\t\t * @param\t{string} method GET or POST\n\t\t * @return {Promise} All Headers\n\t\t */\n\t\tinvokeWithCSRF(name,params,method,config){\n\t\t\tif(typeof name == 'object'){\n\t\t\t\tparams=name.params || {};\n\t\t\t\tmethod=name.method || 'get';\n\t\t\t\tconfig=name;\n\t\t\t\tname=name.name;\n\t\t\t} else {\n\t\t\t\tconfig=config || {};\n\t\t\t}\n\n\t\t\tvar self = this;\n\n\t\t\tMura.normalizeRequestConfig(config);\n\n\t\t\tif(self._requestcontext.getMode().toLowerCase() == 'rest'){\n\t\t\t\treturn new Promise(function(resolve,reject) {\n\t\t\t\t\treturn self.invoke(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tconfig\n\t\t\t\t\t).then(resolve,reject);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn new Promise(function(resolve,reject) {\n\t\t\t\t\tif(typeof resolve == 'function'){\n\t\t\t\t\t\tconfig.success=resolve;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(typeof reject == 'function'){\n\t\t\t\t\t\tconfig.error=reject;\n\t\t\t\t\t}\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=generateCSRFTokens',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\tcontext: name\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess(resp) {\n\n\t\t\t\t\t\t\tif(params instanceof FormData){\n\t\t\t\t\t\t\t\tparams.append('csrf_token',resp.data.csrf_token);\n\t\t\t\t\t\t\t\tparams.append('csrf_token_expires',resp.data.csrf_token_expires);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tparams=Mura.extend(params,resp.data);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (resp.data != 'undefined'\t) {\n\t\t\t\t\t\t\t\tself.invoke(\n\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\t\t\tconfig\n\t\t\t\t\t\t\t\t).then(resolve,reject);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (typeof config.error == 'function'){\n\t\t\t\t\t\t\t\t\tconfig.error(resp);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\tif (typeof config.error == 'function'){\n\t\t\t\t\t\t\t\tconfig.error(resp);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * exists - Returns if the entity was previously saved\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\texists() {\n\t\t\treturn this.has('isnew') && !this.get('isnew');\n\t\t},\n\n\t\t/**\n\t\t * get - Retrieves property value from entity\n\t\t *\n\t\t * @param\t{string} propertyName Property Name\n\t\t * @param\t{*} defaultValue Default Value\n\t\t * @return {*}\t\t\t\t\t\t\tProperty Value\n\t\t */\n\t\tget(propertyName, defaultValue) {\n\t\t\tif(typeof propertyName=='undefined'){\n\t\t\t\treturn this.getAll();\n\t\t\t}\n\t\t\tif (typeof this.properties.links != 'undefined' &&\n\t\t\t\ttypeof this.properties.links[propertyName] != 'undefined') {\n\t\t\t\tvar self = this;\n\t\t\t\tif (typeof this.properties[propertyName] == 'object') {\n\t\t\t\t\treturn new Promise(function(resolve,reject) {\n\t\t\t\t\t\tif ('items' in self.properties[propertyName]) {\n\t\t\t\t\t\t\tvar returnObj = new Mura.EntityCollection(self.properties[propertyName],self._requestcontext);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (Mura.entities[self.properties[propertyName].entityname]) {\n\t\t\t\t\t\t\t\tvar returnObj = new Mura.entities[self.properties[propertyName ].entityname](self.properties[propertyName],self._requestcontext);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar returnObj = new Mura.Entity(self.properties[propertyName],self._requestcontext);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof resolve == 'function') {\n\t\t\t\t\t\t\tresolve(returnObj);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof defaultValue == 'object') {\n\t\t\t\t\t\tvar params = defaultValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar params = {};\n\t\t\t\t\t}\n\t\t\t\t\treturn new Promise(function(resolve,reject) {\n\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\ttype: 'get',\n\t\t\t\t\t\t\turl: self.properties.links[propertyName],\n\t\t\t\t\t\t\tparams: params,\n\t\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t'items' in resp.data\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tvar returnObj = new Mura.EntityCollection(resp.data,self._requestcontext);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (Mura.entities[self.entityname]) {\n\t\t\t\t\t\t\t\t\t\tvar returnObj = new Mura.entities[self.entityname](resp.data,self._requestcontext);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar returnObj = new Mura.Entity(resp.data,self._requestcontext);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//Dont cache if there are custom params\n\t\t\t\t\t\t\t\tif (Mura.isEmptyObject(params)) {\n\t\t\t\t\t\t\t\t\tself.set(propertyName,resp.data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (typeof resolve == 'function') {\n\t\t\t\t\t\t\t\t\tresolve(returnObj);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\terror(resp){\n\t\t\t\t\t\t\t\tif (typeof reject == 'function'){\n\t\t\t\t\t\t\t\t\treject(resp);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else if (typeof this.properties[propertyName] != 'undefined') {\n\t\t\t\treturn this.properties[propertyName];\n\t\t\t} else if (typeof defaultValue != 'undefined') {\n\t\t\t\tthis.properties[propertyName] = defaultValue;\n\t\t\t\treturn this.properties[propertyName];\n\t\t\t} else {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * set - Sets property value\n\t\t *\n\t\t * @param\t{string} propertyName\tProperty Name\n\t\t * @param\t{*} propertyValue Property Value\n\t\t * @return {Mura.Entity} Self\n\t\t */\n\t\tset(propertyName, propertyValue) {\n\t\t\tif (typeof propertyName == 'object') {\n\t\t\t\tthis.properties = Mura.deepExtend(this.properties,propertyName);\n\t\t\t\tthis.set('isdirty', true);\n\t\t\t} else if (typeof this.properties[propertyName] == 'undefined' || this.properties[propertyName] != propertyValue) {\n\t\t\t\tthis.properties[propertyName] = propertyValue;\n\t\t\t\tthis.set('isdirty', true);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\n\t\t/**\n\t\t * has - Returns is the entity has a certain property within it\n\t\t *\n\t\t * @param\t{string} propertyName Property Name\n\t\t * @return {type}\n\t\t */\n\t\thas(propertyName) {\n\t\t\treturn typeof this.properties[propertyName] !=\n\t\t\t\t'undefined' || (typeof this.properties.links !=\n\t\t\t\t'undefined' && typeof this.properties.links[propertyName] != 'undefined');\n\t\t},\n\n\n\t\t/**\n\t\t * getAll - Returns all of the entities properties\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tgetAll() {\n\t\t\treturn this.properties;\n\t\t},\n\n\n\t\t/**\n\t\t * load - Loads entity from JSON API\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\tload() {\n\t\t\treturn this.loadBy('id', this.get('id'));\n\t\t},\n\n\n\t\t/**\n\t\t * new - Loads properties of a new instance from JSON API\n\t\t *\n\t\t * @param\t{type} params Property values that you would like your new entity to have\n\t\t * @return {Promise}\n\t\t */\n\t\t'new'(params) {\n\t\t\tvar self = this;\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tparams = Mura.extend({\n\t\t\t\t\tentityname: self.get('entityname'),\n\t\t\t\t\tmethod: 'findNew',\n\t\t\t\t\tsiteid: self.get('siteid')\n\t\t\t\t},\n\t\t\t\t\tparams\n\t\t\t\t);\n\t\t\t\tself._requestcontext.get(\n\t\t\t\t\tself._requestcontext.getAPIEndpoint(), \n\t\t\t\t\tparams,\n\t\t\t\t\t{\n\t\t\t\t\t\tcache: 'no-cache'\n\t\t\t\t\t}).then(\n\t\t\t\t\tfunction(resp) {\n\t\t\t\t\t\tself.set(resp.data);\n\t\t\t\t\t\tif (typeof resolve == 'function') {\n\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * checkSchema - Checks the schema for Mura ORM entities\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\t'checkSchema'() {\n\t\t\tvar self = this;\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tif(self._requestcontext.getMode().toLowerCase() == 'rest'){\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint(),\n\t\t\t\t\t\tdata:{\n\t\t\t\t\t\t\tentityname: self.get('entityname'),\n\t\t\t\t\t\t\tmethod: 'checkSchema',\n\t\t\t\t\t\t\tsiteid: self.get('siteid')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\tif (resp.data != 'undefined'\t) {\n\t\t\t\t\t\t\t\tif (typeof resolve ==\t'function') {\n\t\t\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconsole.log(resp);\n\t\t\t\t\t\t\t\tif (typeof reject == 'function') {\n\t\t\t\t\t\t\t\t\treject(self);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror(resp){\n\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\tif (typeof reject == 'function') {\n\t\t\t\t\t\t\t\treject(self);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=generateCSRFTokens',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\tcontext: ''\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint(),\n\t\t\t\t\t\t\t\tdata: Mura\n\t\t\t\t\t\t\t\t.extend(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentityname: self.get('entityname'),\n\t\t\t\t\t\t\t\t\tmethod: 'checkSchema',\n\t\t\t\t\t\t\t\t\tsiteid: self.get('siteid')\n\t\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\t\t'csrf_token': resp.data.csrf_token,\n\t\t\t\t\t\t\t\t\t'csrf_token_expires': resp.data.csrf_token_expires\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tsuccess(\tresp) {\n\t\t\t\t\t\t\t\t\tif (resp.data != 'undefined'\t) {\n\t\t\t\t\t\t\t\t\t\tif (typeof resolve ==\t'function') {\n\t\t\t\t\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconsole.log(resp)\n\t\t\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\t\t\tif (typeof reject == 'function') {\n\t\t\t\t\t\t\t\t\t\t\treject(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\t\t\tthis.success(resp);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\tthis.success(resp);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t},\n\n\t\t/**\n\t\t * undeclareEntity - Undeclares an Mura ORM entity with service factory\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\t'undeclareEntity'(deleteSchema) {\n\t\t\tdeleteSchema=deleteSchema || false;\n\t\t\tvar self = this;\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tif(self._requestcontext.getMode().toLowerCase() == 'rest'){\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint(),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tentityname: self.get('entityname'),\n\t\t\t\t\t\t\tdeleteSchema: deleteSchema,\n\t\t\t\t\t\t\tmethod: 'undeclareEntity',\n\t\t\t\t\t\t\tsiteid: self.get('siteid')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess(\tresp) {\n\t\t\t\t\t\t\tif (resp.data != 'undefined'\t) {\n\t\t\t\t\t\t\t\tif (typeof resolve ==\t'function') {\n\t\t\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconsole.log(resp)\n\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\tif (typeof reject == 'function') {\n\t\t\t\t\t\t\t\t\treject(self);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror(resp){\n\t\t\t\t\t\t\tthis.success(resp);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn self._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=generateCSRFTokens',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\tcontext: ''\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint(),\n\t\t\t\t\t\t\t\tdata: Mura.extend(\t{\n\t\t\t\t\t\t\t\t\tentityname: self.get('entityname'),\n\t\t\t\t\t\t\t\t\tmethod: 'undeclareEntity',\n\t\t\t\t\t\t\t\t\tsiteid: self.get('siteid')\n\t\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\t\t'csrf_token': resp.data.csrf_token,\n\t\t\t\t\t\t\t\t\t'csrf_token_expires': resp.data.csrf_token_expires\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\t\t\tif (resp.data != 'undefined'\t) {\n\t\t\t\t\t\t\t\t\t\tif (typeof resolve ==\t'function') {\n\t\t\t\t\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\t\t\tif (typeof reject == 'function') {\n\t\t\t\t\t\t\t\t\t\t\treject(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\tthis.success(resp);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t},\n\n\n\t\t/**\n\t\t * loadBy - Loads entity by property and value\n\t\t *\n\t\t * @param\t{string} propertyName\tThe primary load property to filter against\n\t\t * @param\t{string|number} propertyValue The value to match the propert against\n\t\t * @param\t{object} params\t\t\t\tAddition parameters\n\t\t * @return {Promise}\n\t\t */\n\t\tloadBy(propertyName, propertyValue, params) {\n\t\t\tpropertyName = propertyName || 'id';\n\t\t\tpropertyValue = propertyValue || this.get(propertyName) || 'null';\n\t\t\tvar self = this;\n\t\t\tif (propertyName == 'id') {\n\t\t\t\tvar cachedValue = Mura.datacache.get(propertyValue);\n\t\t\t\tif (typeof cachedValue != 'undefined') {\n\t\t\t\t\tthis.set(cachedValue);\n\t\t\t\t\treturn new Promise(function(resolve,reject) {\n\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tparams = Mura.extend({\n\t\t\t\t\tentityname: self.get('entityname').toLowerCase(),\n\t\t\t\t\tmethod: 'findQuery',\n\t\t\t\t\tsiteid: self.get( 'siteid')\n\t\t\t\t},\n\t\t\t\t\tparams\n\t\t\t\t);\n\t\t\t\tif (params.entityname == 'content' ||\tparams.entityname ==\t'contentnav') {\n\t\t\t\t\tparams.includeHomePage = 1;\n\t\t\t\t\tparams.showNavOnly = 0;\n\t\t\t\t\tparams.showExcludeSearch = 1;\n\t\t\t\t}\n\n\t\t\t\tconst cache=params.cache || 'default';\n\t\t\t\tdelete params.cache;\n\n\t\t\t\tconst next=params.next || {};\n\t\t\t\tdelete params.next;\n\n\t\t\t\tparams[propertyName] = propertyValue;\n\t\t\t\tself._requestcontext.findQuery(\n\t\t\t\t\tparams,\n\t\t\t\t\t{\t\n\t\t\t\t\t\tcache: cache,\n\t\t\t\t\t\tnext: next\n\t\t\t\t\t}).then(\n\t\t\t\t\tfunction(collection) {\n\t\t\t\t\t\tif (collection.get('items').length) {\n\t\t\t\t\t\t\tself.set(collection.get('items')[0].getAll());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof resolve == 'function') {\n\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t}\n\t\t\t\t},function(resp){\n\t\t\t\t\tif (typeof reject == 'function'){\n\t\t\t\t\t\treject(resp);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * validate - Validates instance\n\t\t *\n\t\t * @param\t{string} fields List of properties to validate, defaults to all\n\t\t * @return {Promise}\n\t\t */\n\t\tvalidate(fields) {\n\t\t\tfields = fields || '';\n\t\t\tvar self = this;\n\t\t\tvar data = Mura.deepExtend({}, self.getAll());\n\t\t\tdata.fields = fields;\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tself._requestcontext.request({\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=validate',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\t\t\tvalidations: '{}',\n\t\t\t\t\t\tversion: 4\n\t\t\t\t\t},\n\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\tif (resp.data !=\t'undefined') {\n\t\t\t\t\t\t\tself.set('errors',resp.data)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof resolve ==\t'function') {\n\t\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror(resp) {\n\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\tresolve(self);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * hasErrors - Returns if the entity has any errors\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasErrors() {\n\t\t\tvar errors = this.get('errors', {});\n\t\t\treturn (typeof errors == 'string' && errors !='') || (typeof errors == 'object' && !Mura.isEmptyObject(errors));\n\t\t},\n\n\n\t\t/**\n\t\t * getErrors - Returns entites errors property\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tgetErrors() {\n\t\t\treturn this.get('errors', {});\n\t\t},\n\n\n\t\t/**\n\t\t * save - Saves entity to JSON API\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\tsave(config) {\n\t\t\tconfig=config || {};\n\n\t\t\tMura.normalizeRequestConfig(config);\n\n\t\t\tvar self = this;\n\n\t\t\tif (!this.get('isdirty')) {\n\t\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\t\tif(typeof resolve == 'function'){\n\t\t\t\t\t\tconfig.success=resolve;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof config.success =='function') {\n\t\t\t\t\t\tconfig.success(self);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!this.get('id')) {\n\t\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\t\tvar temp = Mura.deepExtend({},self.getAll());\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'get',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + self.get('entityname') + '/new',\n\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\tself.set(resp.data);\n\t\t\t\t\t\t\tself.set(temp);\n\t\t\t\t\t\t\tself.set('id',resp.data.id);\n\t\t\t\t\t\t\tself.set('isdirty',true);\n\t\t\t\t\t\t\tself.cachePut();\n\t\t\t\t\t\t\tself.save(config).then(\n\t\t\t\t\t\t\t\tresolve,\n\t\t\t\t\t\t\t\treject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: config.error,\n\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn new Promise(function(resolve, reject) {\n\n\t\t\t\t\tif(typeof resolve == 'function'){\n\t\t\t\t\t\tconfig.success=resolve;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(typeof reject == 'function'){\n\t\t\t\t\t\tconfig.error=reject;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar context = self.get('id');\n\t\t\t\t\tif(self._requestcontext.getMode().toLowerCase() == 'rest'){\n\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=save',\n\t\t\t\t\t\t\tdata:\tself.getAll(),\n\t\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\t\tif (resp.data != 'undefined') {\n\t\t\t\t\t\t\t\t\tself.set(resp.data)\n\t\t\t\t\t\t\t\t\tself.set('isdirty',false );\n\t\t\t\t\t\t\t\t\tif (self.get('saveerrors') ||\n\t\t\t\t\t\t\t\t\t\tMura.isEmptyObject(self.getErrors())\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tif (typeof config.success ==\t'function') {\n\t\t\t\t\t\t\t\t\t\t\tconfig.success(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\t\t\t\tconfig.error(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\t\t\tconfig.error(self);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\t\tconfig.error(self);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tprogress:config.progress,\n\t\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=generateCSRFTokens',\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\t\tcontext: context\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=save',\n\t\t\t\t\t\t\t\t\tdata: Mura\n\t\t\t\t\t\t\t\t\t.extend( self.getAll(), {\n\t\t\t\t\t\t\t\t\t\t\t'csrf_token': resp.data.csrf_token,\n\t\t\t\t\t\t\t\t\t\t\t'csrf_token_expires': resp.data.csrf_token_expires\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\t\t\t\tif (resp.data != 'undefined'\t) {\n\t\t\t\t\t\t\t\t\t\t\tself.set(resp.data)\n\t\t\t\t\t\t\t\t\t\t\tself.set('isdirty',false );\n\t\t\t\t\t\t\t\t\t\t\tif (self.get('saveerrors') ||\n\t\t\t\t\t\t\t\t\t\t\t\tMura.isEmptyObject(self.getErrors())\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (typeof config.success ==\t'function') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconfig.success(self);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconfig.error(self);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\t\t\t\t\tconfig.error(self);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\t\t\t\tself.set('errors',resp.error);\n\t\t\t\t\t\t\t\t\t\tif (typeof config.error == 'function') {\n\t\t\t\t\t\t\t\t\t\t\tconfig.error(self);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tprogress:config.progress,\n\t\t\t\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\terror(resp) {\n\t\t\t\t\t\t\t\tthis.error(resp);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * delete - Deletes entity\n\t\t *\n\t\t * @return {Promise}\n\t\t */\n\t\t'delete'(config) {\n\t\t\tconfig=config || {};\n\n\t\t\tMura.normalizeRequestConfig(config);\n\n\t\t\tvar self = this;\n\t\t\tif(self._requestcontext.getMode().toLowerCase() == 'rest'){\n\t\t\t\treturn new Promise(function(resolve, reject) {\n\n\t\t\t\t\tif(typeof resolve == 'function'){\n\t\t\t\t\t\tconfig.success=resolve;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(typeof reject == 'function'){\n\t\t\t\t\t\tconfig.error=reject;\n\t\t\t\t\t}\n\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=delete',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\tid: self.get('id'),\n\t\t\t\t\t\t\tentityname: self.get('entityname')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess() {\n\t\t\t\t\t\t\tself.set('isdeleted',true);\n\t\t\t\t\t\t\tself.cachePurge();\n\t\t\t\t\t\t\tif (typeof config.success == 'function') {\n\t\t\t\t\t\t\t\tconfig.success(self);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: config.error,\n\t\t\t\t\t\tprogress:config.progress,\n\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\t\tif(typeof resolve == 'function'){\n\t\t\t\t\t\tconfig.success=resolve;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(typeof reject == 'function'){\n\t\t\t\t\t\tconfig.error=reject;\n\t\t\t\t\t}\n\n\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=generateCSRFTokens',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\tcontext: self.get('id')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\t\tself._requestcontext.request({\n\t\t\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\t\t\turl: self._requestcontext.getAPIEndpoint() + '?method=delete',\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tsiteid: self.get('siteid'),\n\t\t\t\t\t\t\t\t\tid: self.get('id'),\n\t\t\t\t\t\t\t\t\tentityname: self.get('entityname'),\n\t\t\t\t\t\t\t\t\t'csrf_token': resp.data.csrf_token,\n\t\t\t\t\t\t\t\t\t'csrf_token_expires': resp.data.csrf_token_expires\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsuccess() {\n\t\t\t\t\t\t\t\t\tself.set('isdeleted',true);\n\t\t\t\t\t\t\t\t\tself.cachePurge();\n\t\t\t\t\t\t\t\t\tif (typeof config.success == 'function') {\n\t\t\t\t\t\t\t\t\t\tconfig.success(self);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\terror: config.error,\n\t\t\t\t\t\t\t\tprogress:config.progress,\n\t\t\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: config.error,\n\t\t\t\t\t\tabort: config.abort\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getFeed - Returns a Mura.Feed instance of this current entitie's type and siteid\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tgetFeed() {\n\t\t\treturn this._requestcontext.getFeed(this.get('entityName'));\n\t\t},\n\n\t\t/**\n\t\t * cachePurge - Purges this entity from client cache\n\t\t *\n\t\t * @return {object}\tSelf\n\t\t */\n\t\tcachePurge() {\n\t\t\tMura.datacache.purge(this.get('id'));\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * cachePut - Places this entity into client cache\n\t\t *\n\t\t * @return {object}\tSelf\n\t\t */\n\t\tcachePut() {\n\t\t\tif (!this.get('isnew')) {\n\t\t\t\tMura.datacache.set(this.get('id'), this);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t});\n}\n\nmodule.exports=attach;","/**\n * Creates a new Mura.EntityCollection\n * @name\tMura.EntityCollection\n * @class\n * @extends Mura.Entity\n * @memberof\tMura\n * @param\t{object} properties Object containing values to set into object\n * @return {Mura.EntityCollection} Self\n */\n\nfunction attach(Mura){\n\n\tMura.EntityCollection=Mura.Entity.extend(\n\t\t/** @lends Mura.EntityCollection.prototype */\n\t\t{\n\n\t\tinit(properties,requestcontext){\n\t\t\tproperties=properties || {};\n\t\t\tthis.set(properties);\n\t\t\tthis._requestcontext=requestcontext || Mura._requestcontext;\n\t\t\tvar self=this;\n\t\t\tif(Array.isArray(self.get('items'))){\n\t\t\t\tself.set('items',self.get('items').map(function(obj){\n\t\t\t\t\tvar entityname=obj.entityname.substr(0, 1).toUpperCase() + obj.entityname.substr(1);\n\t\t\t\t\tif(Mura.entities[entityname]){\n\t\t\t\t\t\treturn new Mura.entities[entityname](obj,self._requestcontext);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn new Mura.Entity(obj,self._requestcontext);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * length - Returns length entity collection\n\t\t *\n\t\t * @return {number}\t\t integer\n\t\t */\n\t\tlength(){\n\t\t\treturn this.properties.items.length;\n\t\t},\n\n\t\t/**\n\t\t * item - Return entity in collection at index\n\t\t *\n\t\t * @param\t{nuymber} idx Index\n\t\t * @return {object}\t\t Mura.Entity\n\t\t */\n\t\titem(idx){\n\t\t\treturn this.properties.items[idx];\n\t\t},\n\n\t\t/**\n\t\t * index - Returns index of item in collection\n\t\t *\n\t\t * @param\t{object} item Entity instance\n\t\t * @return {number}\t\t\tIndex of entity\n\t\t */\n\t\tindex(item){\n\t\t\treturn this.properties.items.indexOf(item);\n\t\t},\n\n\t\t/**\n\t\t * indexOf - Returns index of item in collection\n\t\t *\n\t\t * @param\t{object} item Entity instance\n\t\t * @return {number}\t\t\tIndex of entity\n\t\t */\n\t\tindexOf(item){\n\t\t\treturn this.properties.items.indexOf(item);\n\t\t},\n\n\t\t/**\n\t\t * getAll - Returns object with of all entities and properties\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tgetAll(){\n\t\t\tvar self=this;\n\t\t\tif(typeof self.properties.items != 'undefined'){\n\t\t\t\treturn Mura.extend(\n\t\t\t\t\t{},\n\t\t\t\t\tself.properties,\n\t\t\t\t\t{\n\t\t\t\t\t\titems:self.properties.items.map(function(obj){\n\t\t\t\t\t\t\treturn obj.getAll();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else if(typeof self.properties.properties != 'undefined'){\n\t\t\t\treturn Mura.extend(\n\t\t\t\t\t{},\n\t\t\t\t\tself.properties,\n\t\t\t\t\t{\n\t\t\t\t\t\tproperties:self.properties.properties.map(function(obj){\n\t\t\t\t\t\t\treturn obj.getAll();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * each - Passes each entity in collection through function\n\t\t *\n\t\t * @param\t{function} fn Function\n\t\t * @return {object}\tSelf\n\t\t */\n\t\teach(fn){\n\t\t\tthis.properties.items.forEach( function(item,idx){\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\tfn(item,idx);\n\t\t\t\t} else {\n\t\t\t\t\tfn.call(item,item,idx);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t\t\t/**\n\t\t * each - Passes each entity in collection through function\n\t\t *\n\t\t * @param\t{function} fn Function\n\t\t * @return {object}\tSelf\n\t\t */\n\t\tforEach(fn){\n\t\t\treturn this.each(fn);\n\t\t},\n\n\t\t/**\n\t\t * sort - Sorts collection\n\t\t *\n\t\t * @param\t{function} fn Sorting function\n\t\t * @return {object}\t Self\n\t\t */\n\t\tsort(fn){\n\t\t\tthis.properties.items.sort(fn);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * filter - Returns new Mura.EntityCollection of entities in collection that pass filter\n\t\t *\n\t\t * @param\t{function} fn Filter function\n\t\t * @return {Mura.EntityCollection}\n\t\t */\n\t\tfilter(fn){\n\t\t\tvar newProps={};\n\t\t\tfor(var p in this.properties){\n\t\t\t\tif(this.properties.hasOwnProperty(p) && p != 'items' && p != 'links'){\n\t\t\t\t\tnewProps[p]=this.properties[p];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar collection=new Mura.EntityCollection(newProps,this._requestcontext);\n\t\t\treturn collection.set('items',this.properties.items.filter( function(item,idx){\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\treturn fn(item,idx);\n\t\t\t\t} else {\n\t\t\t\t\treturn fn.call(item,item,idx);\n\t\t\t\t}\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * map - Returns new Array returned from map function\n\t\t *\n\t\t * @param\t{function} fn Filter function\n\t\t * @return {Array}\n\t\t */\n\t\tmap(fn){\n\t\t\treturn this.properties.items.map( function(item,idx){\n\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\treturn fn(item,idx);\n\t\t\t\t} else {\n\t\t\t\t\treturn fn.call(item,item,idx);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * reverse - Returns new Array returned from map function\n\t\t *\n\t\t * @param\t{function} fn Sorting function\n\t\t * @return {object}\t collection\n\t\t */\n\t\treverse(fn){\n\t\t\tvar newProps={};\n\t\t\tfor(var p in this.properties){\n\t\t\t\tif(this.properties.hasOwnProperty(p) && p != 'items' && p != 'links'){\n\t\t\t\t\tnewProps[p]=this.properties[p];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar collection=new Mura.EntityCollection(newProps,this._requestcontext);\n\t\t\tcollection.set('items',this.properties.items.reverse());\n\t\t\treturn collection;\n\t\t},\n\n\t\t/**\n\t\t * reduce - Returns value from\treduce function\n\t\t *\n\t\t * @param\t{function} fn Reduce function\n\t\t * @param\t{any} initialValue Starting accumulator value\n\t\t * @return {accumulator}\n\t\t */\n\t\treduce(fn,initialValue){\n\t\t\tinitialValue=initialValue||0;\n\t\t\treturn this.properties.items.reduce(\n\t\t\t\tfunction(accumulator,item,idx,array){\n\t\t\t\t\tif(typeof fn.call == 'undefined'){\n\t\t\t\t\t\treturn fn(accumulator,item,idx,array);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn fn.call(item,accumulator,item,idx,array);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tinitialValue\n\t\t\t);\n\t\t}\n\t});\n}\n\nmodule.exports=attach;","function factory(){\n const Mura=require('./core.js')({});\n require('./object.js')(Mura);\n require('./req-instance.js')(Mura);\n require('./req-context.js')(Mura);\n require('./cache.js')(Mura);\n require('./entity.js')(Mura);\n require('./content.js')(Mura);\n require('./user.js')(Mura);\n require('./entitycollection.js')(Mura);\n require('./feed.js')(Mura);\n require('./loader.js')(Mura);\n require('./domselection.js')(Mura);\n require('./ui.js')(Mura);\n require('./ui.form')(Mura);\n require('./ui.text')(Mura);\n require('./ui.hr')(Mura);\n require('./ui.embed')(Mura);\n require('./ui.image')(Mura);\n require('./ui.collection')(Mura);\n require('./ui.container')(Mura);\n require('./templates')(Mura);\n require('./stylemap')(Mura);\n\n if(Mura.isInNode()){\n Mura._escapeHTML=require('escape-html');\n \n } else if (typeof window != 'undefined'){\n\n window.m=Mura;\n window.mura=Mura;\n window.Mura=Mura;\n window.validateForm=Mura.validateForm;\n window.setHTMLEditor=Mura.setHTMLEditor;\n window.createCookie=Mura.createCookie;\n window.readCookie=Mura.readCookie;\n window.addLoadEvent=Mura.addLoadEvent;\n window.noSpam=Mura.noSpam;\n window.initMura=Mura.init;\n }\n return Mura;\n}\n\nmodule.exports=factory;\n\n","/**\n * Creates a new Mura.Feed\n * @name Mura.Feed\n * @example\n * const collection= await Mura\n * \t.getFeed('content')\n * \t.where()\n * \t.prop('title').containsValue('test')\n * \t.orOpenGrouping()\n * \t.prop('title').isEQ('about')\n * \t.orProp('title').isEQ('contact')\n * \t.closeGrouping()\n * \t.sort('title','asc')\n * \t.maxItems(10)\n * \t.itemPerPage(5)\n * \t.cacheKey('mycachekey')\n * \t.cacheWithin(60)\n * \t.expand('kids')\n * \t.fields('title,summary,url')\n * \t.getQuery({\t\n * \t\theaders:{\n *\t\t\t'X-My-Header':'123'\n *\t\t},\n *\t\tcache:'cache',\n *\t\tnext: { revalidate: 10 } \n * \t}\n * );\n * \n * collection.forEach(function(item){\t\n * \tconsole.log(item.get('title'));\n * });\n * \n * @class\n * @extends Mura.Core\n * @memberof Mura\n * @param {string} siteid Siteid\n * @param {string} entityname Entity name\n * @return {Mura.Feed} Self\n */\n\nfunction attach(Mura){\n\n /**\n * @ignore\n */\n\nMura.Feed = Mura.Core.extend(\n\t/** @lends Mura.Feed.prototype */\n\t{\n\t\tinit(siteid, entityname, requestcontext) {\n\t\t\tthis.queryString = entityname + '/?';\n\t\t\tthis.propIndex = 0;\n\t\t\tthis.cache='default';\n\t\t\tthis.next={};\n\t\t\tthis._requestcontext=requestcontext || Mura.getRequestContext();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * cache - Sets the cache policy for the feed to use\n\t\t *\n\t\t * @param {string} name Name of feed as defined in admin\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\t cache(cache) {\n\t\t\tthis.cache=cache;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * next - Sets the next config for the feed to use\n\t\t *\n\t\t * @param {object} next next config for the feed to use\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\t next(next) {\n\t\t\tthis.next=next;\n\t\t\treturn next;\n\t\t},\n\n\t\t/**\n\t\t * fields - List fields to retrieve from API\n\t\t *\n\t\t * @param {string} fields List of fields\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tfields(fields) {\n\t\t\tif(typeof fields != 'undefined' && fields){\n\t\t\t\tthis.queryString += '&fields=' + encodeURIComponent(fields);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * setRequestContext - Sets the RequestContext\n\t\t *\n\t\t * @RequestContext {Mura.RequestContext} Mura.RequestContext List of fields\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tsetRequestContext(RequestContext) {\n\t\t\tthis._requestcontext=RequestContext;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * contentPoolID - Sets items per page\n\t\t *\n\t\t * @param {string} contentPoolID Items per page\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tcontentPoolID(contentPoolID) {\n\t\t\tthis.queryString += '&contentpoolid=' + encodeURIComponent(\n\t\t\t\tcontentPoolID);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * name - Sets the name of the content feed to use\n\t\t *\n\t\t * @param {string} name Name of feed as defined in admin\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tname(name) {\n\t\t\tthis.queryString += '&feedname=' + encodeURIComponent(\n\t\t\t\tname);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * cacheKey - Set unique key in cache\n\t\t *\n\t\t * @param {string} cacheKey Unique key in cache\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\t cacheKey(cacheKey) {\n\t\t\tthis.queryString += '&cacheKey=' + encodeURIComponent(\n\t\t\t\tcacheKey);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * cachedWithin - Sets maximum number of seconds to remain in cache\n\t\t *\n\t\t * @param {number} cachedWithin Maximum number of seconds to remain in cache\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\t cachedWithin(cachedWithin) {\n\t\t\tthis.queryString += '&cachedWithin=' + encodeURIComponent(\n\t\t\t\tcachedWithin);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * purgeCache - Sets whether to purge any existing cached values\n\t\t *\n\t\t * @param {boolean} purgeCache Whether to purge any existing cached values\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\t purgeCache(purgeCache) {\n\t\t\tthis.queryString += '&purgeCache=' + encodeURIComponent(\n\t\t\t\tpurgeCache);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * contentPoolID - Sets items per page\n\t\t *\n\t\t * @param {string} feedID Items per page\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tfeedID(feedID) {\n\t\t\tthis.queryString += '&feedid=' + encodeURIComponent(\n\t\t\t\tfeedID);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * where - Optional method for starting query chain\n\t\t *\n\t\t * @param {string} property Property name\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\twhere(property) {\n\t\t\tif (property) {\n\t\t\t\treturn this.andProp(property);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * prop - Add new property value\n\t\t *\n\t\t * @param {string} property Property name\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tprop(property) {\n\t\t\treturn this.andProp(property);\n\t\t},\n\n\t\t/**\n\t\t * andProp - Add new AND property value\n\t\t *\n\t\t * @param {string} property Property name\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tandProp(property) {\n\t\t\tthis.queryString += '&' + encodeURIComponent(property + '[' + this.propIndex + ']') +\n\t\t\t\t'=';\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * orProp - Add new OR property value\n\t\t *\n\t\t * @param {string} property Property name\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\torProp(property) {\n\t\t\tthis.queryString += '&or' + encodeURIComponent('[' + this.propIndex + ']') + '&';\n\t\t\tthis.propIndex++;\n\t\t\tthis.queryString += encodeURIComponent(property +'[' + this.propIndex + ']') +\n\t\t\t\t'=';\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isEQ - Checks if preceding property value is EQ to criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisEQ(criteria) {\n\t\t\tif (typeof criteria== 'undefined' || criteria === '' || criteria ==\tnull) {\n\t\t\t\tcriteria = 'null';\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent(criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isNEQ - Checks if preceding property value is NEQ to criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisNEQ(criteria) {\n\t\t\tif (typeof criteria == 'undefined' || criteria === '' || criteria == null) {\n\t\t\t\tcriteria = 'null';\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('neq^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isLT - Checks if preceding property value is LT to criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisLT(criteria) {\n\t\t\tif (typeof criteria == 'undefined' || criteria === '' || criteria == null) {\n\t\t\t\tcriteria = 'null';\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('lt^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isLTE - Checks if preceding property value is LTE to criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisLTE(criteria) {\n\t\t\tif (typeof criteria == 'undefined' || criteria === '' || criteria ==\n\t\t\t\tnull) {\n\t\t\t\tcriteria = 'null';\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('lte^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isGT - Checks if preceding property value is GT to criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisGT(criteria) {\n\t\t\tif (typeof criteria == 'undefined' || criteria === '' || criteria == null) {\n\t\t\t\tcriteria = 'null';\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('gt^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isGTE - Checks if preceding property value is GTE to criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisGTE(criteria) {\n\t\t\tif (typeof criteria == 'undefined' || criteria === '' || criteria ==\n\t\t\t\tnull) {\n\t\t\t\tcriteria = 'null';\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('gte^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isIn - Checks if preceding property value is IN to list of criterias\n\t\t *\n\t\t * @param {*} criteria Criteria List\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisIn(criteria) {\n\t\t\tif(Array.isArray(criteria)){\n\t\t\t\tcriteria=criteria.join();\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('in^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * isNotIn - Checks if preceding property value is NOT IN to list of criterias\n\t\t *\n\t\t * @param {*} criteria Criteria List\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tisNotIn(criteria) {\n\t\t\tif(Array.isArray(criteria)){\n\t\t\t\tcriteria=criteria.join();\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('notIn^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * All - Checks if preceding property value ALL to list of criterias\n\t\t *\n\t\t * @param {*} criteria Criteria List\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\thasAll(criteria) {\n\t\t\tif(Array.isArray(criteria)){\n\t\t\t\tcriteria=criteria.join();\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('hasAll^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Any - Checks if preceding property value has ANY on list of criterias\n\t\t *\n\t\t * @param {*} criteria Criteria List\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\thasAny(criteria) {\n\t\t\tif(Array.isArray(criteria)){\n\t\t\t\tcriteria=criteria.join();\n\t\t\t}\n\t\t\tthis.queryString += encodeURIComponent('hasAny^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * containsValue - Checks if preceding property value is CONTAINS the value of criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tcontainsValue(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('containsValue^' + criteria);\n\t\t\treturn this;\n\t\t},\n\t\tcontains(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('containsValue^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * notcontainValue - Checks if preceding property value is DOES NOT CONTAIN the value of criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tnotContainsValue(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('notContainsValue^' + criteria);\n\t\t\treturn this;\n\t\t},\n\t\tnotContains(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('notContainsValue^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * beginsWith - Checks if preceding property value BEGINS WITH criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tbeginsWith(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('begins^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * notBeginWith - Checks if preceding property value DOES NOT BEGIN WITH criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tnotBeginsWith(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('notBeginsWith^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * endsWith - Checks if preceding property value ENDS WITH criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tendsWith(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('ends^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * notEndWith - Checks if preceding property value DOES NOT END WITH criteria\n\t\t *\n\t\t * @param {*} criteria Criteria\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tnotEndsWith(criteria) {\n\t\t\tthis.queryString += encodeURIComponent('notEndsWith^' + criteria);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * openGrouping - Start new logical condition grouping\n\t\t *\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\topenGrouping() {\n\t\t\tthis.queryString += '&openGrouping' + encodeURIComponent('[' + this.propIndex + ']');\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * openGrouping - Starts new logical condition grouping\n\t\t *\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tandOpenGrouping() {\n\t\t\tthis.queryString += '&andOpenGrouping' + encodeURIComponent('[' + this.propIndex + ']');\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * orOpenGrouping - Starts new logical condition grouping\n\t\t *\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\torOpenGrouping() {\n\t\t\tthis.queryString += '&orOpenGrouping' + encodeURIComponent('[' + this.propIndex + ']');\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * openGrouping - Closes logical condition grouping\n\t\t *\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tcloseGrouping() {\n\t\t\tthis.queryString += '&closeGrouping' + encodeURIComponent('[' + this.propIndex + ']');\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * sort - Set desired sort or return collection\n\t\t *\n\t\t * @param {string} property Property\n\t\t * @param {string} direction Sort direction\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tsort(property, direction) {\n\t\t\tdirection = direction || 'asc';\n\t\t\tif (direction == 'desc') {\n\t\t\t\tthis.queryString += '&sort' + encodeURIComponent('[' + this.propIndex + ']') + '=' + encodeURIComponent('-' + property);\n\t\t\t} else {\n\t\t\t\tthis.queryString += '&sort' +encodeURIComponent('[' + this.propIndex + ']') + '=' + encodeURIComponent(property);\n\t\t\t}\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * itemsPerPage - Sets items per page\n\t\t *\n\t\t * @param {number} itemsPerPage Items per page\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\titemsPerPage(itemsPerPage) {\n\t\t\tthis.queryString += '&itemsPerPage=' + encodeURIComponent(itemsPerPage);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * pageIndex - Sets items per page\n\t\t *\n\t\t * @param {number} pageIndex page to start at\n\t\t */\n\t\tpageIndex(pageIndex) {\n\t\t\tthis.queryString += '&pageIndex=' + encodeURIComponent(pageIndex);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * maxItems - Sets max items to return\n\t\t *\n\t\t * @param {number} maxItems Items to return\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tmaxItems(maxItems) {\n\t\t\tthis.queryString += '&maxItems=' + encodeURIComponent(maxItems);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * distinct - Sets to select distinct values of select fields\n\t\t *\n\t\t * @param {boolean} distinct Whether to to select distinct values\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tdistinct(distinct) {\n\t\t\tif(typeof distinct=='undefined'){\n\t\t\t\tdistinct=true;\n\t\t\t}\n\t\t\tthis.queryString += '&distinct=' + encodeURIComponent(distinct);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * aggregate - Define aggregate values that you would like (sum,max,min,cout,avg,groupby)\n\t\t *\n\t\t * @param {string} type Type of aggregation (sum,max,min,cout,avg,groupby)\n\t\t * @param {string} property property\n\t\t * @return {Mura.Feed}\tSelf\n\t\t */\n\t\taggregate(type,property) {\n\t\t\tif(type == 'count' && typeof property=='undefined'){\n\t\t\t\tproperty='*';\n\t\t\t}\n\n\t\t\tif(typeof type != 'undefined' && typeof property!='undefined'){\n\t\t\t\tthis.queryString += '&' + encodeURIComponent( type + '[' + this.propIndex + ']') + '=' + property;\n\t\t\t\tthis.propIndex++;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * liveOnly - Set whether to return all content or only content that is currently live.\n\t\t * This only works if the user has module level access to the current site's content\n\t\t *\n\t\t * @param {number} liveOnly 0 or 1\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tliveOnly(liveOnly) {\n\t\t\tthis.queryString += '&liveOnly=' + encodeURIComponent(liveOnly);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * groupBy - Sets property or properties to group by\n\t\t *\n\t\t * @param {string} groupBy\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\t groupBy(property) {\n \t\t\tif(typeof property!='undefined'){\n \t\t\t\tthis.queryString += '&' + encodeURIComponent('groupBy[' + this.propIndex + ']') + '=' + property;\n \t\t\t\tthis.propIndex++;\n \t\t\t}\n \t\t\treturn this;\n \t\t},\n\n\t\t/**\n\t\t * maxItems - Sets max items to return\n\t\t *\n\t\t * @param {number} maxItems Items to return\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tmaxItems(maxItems) {\n\t\t\tthis.queryString += '&maxItems=' + encodeURIComponent(maxItems);\n\t\t\treturn this;\n\t\t},\n\t\t\n\n\t\t/**\n\t\t * showNavOnly - Sets to include the homepage\n\t\t *\n\t\t * @param {boolean} showNavOnly Whether to return items that have been excluded from search\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tshowNavOnly(showNavOnly) {\n\t\t\tthis.queryString += '&showNavOnly=' + encodeURIComponent(showNavOnly);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * expand - Sets which linked properties to return expanded values\n\t\t *\n\t\t * @param {string} expand List of properties to expand, use 'all' for all.\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\texpand(expand) {\n\t\t\tif(typeof expand == 'undefined'){\n\t\t\t\texpand = 'all';\n\t\t\t}\n\t\t\tif(expand){\n\t\t\t\tthis.queryString += '&expand=' + encodeURIComponent(expand);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * expandDepth - Set the depth that expanded links are expanded\n\t\t *\n\t\t * @param {number} expandDepth Number of levels to expand, defaults to 1\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\texpandDepth(expandDepth) {\n\t\t\texpandDepth = expandDepth || 1;\n\t\t\tif(Mura.isNumeric(expandDepth) && Number(parseFloat(expandDepth)) > 1){\n\t\t\t\tthis.queryString += '&expandDepth=' + encodeURIComponent(expandDepth);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * finMany - Sets a list of ids that you would like to fetch in the order\n\t\t *\n\t\t * @param {array} ids Comma separated list of ids\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tfindMany(ids) {\n\t\t\tif(!Array.isArray(ids)){\n\t\t\t\tids=ids.split(\",\");\n\t\t\t}\n\t\t\tif(!ids.length){\n\t\t\t\tids=[Mura.createUUID()];\n\t\t\t}\n\t\t\tif(ids.length === 1){\n\t\t\t\tthis.andProp('id').isEQ(ids[0]);\n\t\t\t} else {\n\t\t\t\tthis.queryString += '&id=' + encodeURIComponent(ids.join(\",\"));\n\t\t\t}\n\t\t\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * no - Sets to include the homepage\n\t\t *\n\t\t * @param {date} pointInTime What time historical Mura ORM entities should think it is\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tpointInTime(pointInTime) {\n\t\t\tthis.queryString += '&pointInTime=' + encodeURIComponent(pointInTime);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * no - Sets to include the homepage\n\t\t *\n\t\t * @param {boolean} showExcludeSearch Whether to return items that have been excluded from search\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tshowExcludeSearch(showExcludeSearch) {\n\t\t\tthis.queryString += '&showExcludeSearch=' + encodeURIComponent(showExcludeSearch);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * no - Sets to include the homepage\n\t\t *\n\t\t * @param {boolean} applyPermFilter Whether to return filter items based on permissions\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tapplyPermFilter(applyPermFilter) {\n\t\t\tthis.queryString += '&applyPermFilter=' + encodeURIComponent(applyPermFilter);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * no - Sets to include the homepage\n\t\t *\n\t\t * @param {string} imageSizes A list of images sizes to return when image is in the fields list\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\timageSizes(imageSizes) {\n\t\t\tthis.queryString += '&imageSizes=' + encodeURIComponent(imageSizes);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * no - Sets to whether to require all categoryids in list of just one.\n\t\t *\n\t\t * @param {boolean} useCategoryIntersect Whether require a match for all categories\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tuseCategoryIntersect(useCategoryIntersect) {\n\t\t\tthis.queryString += '&useCategoryIntersect=' + encodeURIComponent(useCategoryIntersect);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * includeHomepage - Sets to include the home page\n\t\t *\n\t\t * @param {boolean} showExcludeSearch Whether to return the homepage\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tincludeHomepage(includeHomepage) {\n\t\t\tthis.queryString += '&includehomepage=' + encodeURIComponent(includeHomepage);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * innerJoin - Sets entity to INNER JOIN\n\t\t *\n\t\t * @param {string} relatedEntity Related entity\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tinnerJoin(relatedEntity) {\n\t\t\tthis.queryString += '&innerJoin' + encodeURIComponent('[' + this.propIndex + ']') + '=' +\tencodeURIComponent(relatedEntity);\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * leftJoin - Sets entity to LEFT JOIN\n\t\t *\n\t\t * @param {string} relatedEntity Related entity\n\t\t * @return {Mura.Feed} Self\n\t\t */\n\t\tleftJoin(relatedEntity) {\n\t\t\tthis.queryString += '&leftJoin' + encodeURIComponent('[' + this.propIndex + ']') + '=' + encodeURIComponent(relatedEntity);\n\t\t\tthis.propIndex++;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * facet - faceted fetched from JSON API\n\t\t * @return {Mura.feed}\n\t\t */\n\t\tfacet(facet) {\n\t\t\tthis.queryString += '&facet=' + encodeURIComponent(facet);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Interator - Return Mura.EntityCollection fetched from JSON API\n\t\t * @return {Promise}\n\t\t */\n\t\tgetIterator(params) {\n\t\t\treturn this.getQuery(params);\n\t\t},\n\n\t\t/**\n\t\t * Query - Return Mura.EntityCollection fetched from JSON API\n\t\t * @return {Promise}\n\t\t */\n\t\tgetQuery(params) {\n\t\t\tvar self = this;\n\n\t\t\tif(typeof params != 'undefined'){\n\t\t\t\tfor(var p in params){\n\t\t\t\t\tif(params.hasOwnProperty(p)){\n\t\t\t\t\t\tif(typeof self[p] == 'function'){\n\t\t\t\t\t\t\tself[p](params[p]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.andProp(p).isEQ(params[p]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn new Promise(function(resolve, reject) {\n\t\t\t\tvar rcEndpoint=self._requestcontext.getAPIEndpoint();\n\t\t\t\tif (rcEndpoint.charAt(rcEndpoint.length - 1) == \"/\") {\n\t\t\t\t\tvar apiEndpoint = rcEndpoint;\n\t\t\t\t} else {\n\t\t\t\t\tvar apiEndpoint = rcEndpoint + '/';\n\t\t\t\t}\n\t\t\t\tself._requestcontext.request({\n\t\t\t\t\ttype: 'get',\n\t\t\t\t\tcache: self.cache,\n\t\t\t\t\tnext: self.next,\n\t\t\t\t\turl: apiEndpoint + self.queryString,\n\t\t\t\t\tsuccess(resp) {\n\t\t\t\t\t\tif (resp.data != 'undefined' ) {\n\t\t\t\t\t\t\tvar returnObj = new Mura.EntityCollection(resp.data,self._requestcontext);\n\n\t\t\t\t\t\t\tif (typeof resolve == 'function') {\n\t\t\t\t\t\t\t\tresolve(returnObj);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (typeof reject == 'function') {\n\t\t\t\t\t\t\treject(resp);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror(resp) {\n\t\t\t\t\t\tif (typeof reject == 'function'){\n\t\t\t\t\t\t\treject(resp);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t});\n\n}\n\nmodule.exports=attach;","\nfunction attach(Mura){\n\n//https://github.com/malko/l.js\n/*\n* script for js/css parallel loading with dependancies management\n* @author Jonathan Gotti < jgotti at jgotti dot net >\n* @licence dual licence mit / gpl\n* @since 2012-04-12\n* @todo add prefetching using text/cache for js files\n* @changelog\n* - 2014-06-26 - bugfix in css loaded check when hashbang is used\n* - 2014-05-25 - fallback support rewrite + null id bug correction + minification work\n* - 2014-05-21 - add cdn fallback support with hashbang url\n* - 2014-05-22 - add support for relative paths for stylesheets in checkLoaded\n* - 2014-05-21 - add support for relative paths for scripts in checkLoaded\n* - 2013-01-25 - add parrallel loading inside single load call\n* - 2012-06-29 - some minifier optimisations\n* - 2012-04-20 - now sharp part of url will be used as tag id\n* - add options for checking already loaded scripts at load time\n* - 2012-04-19 - add addAliases method\n* @note coding style is implied by the target usage of this script not my habbits\n*/\n\nif(typeof window !='undefined' && typeof window.document != 'undefined'){\n\tvar isA = function(a,b){ return a instanceof (b || Array);}\n\t\t//-- some minifier optimisation\n\t\t, D = document\n\t\t, getElementsByTagName = 'getElementsByTagName'\n\t\t, length = 'length'\n\t\t, readyState = 'readyState'\n\t\t, onreadystatechange = 'onreadystatechange'\n\t\t//-- get the current script tag for further evaluation of it's eventual content\n\t\t, scripts = D[getElementsByTagName](\"script\")\n\t\t, scriptTag = scripts[scripts[length]-1]\n\t\t, script = scriptTag.innerHTML.replace(/^\\s+|\\s+$/g,'')\n\t;\n\n\ttry {\n\t\tvar preloadsupport = w.document.createElement( \"link\" ).relList.supports( \"preload\" );\n\t} catch (e) {\n\t\tvar preloadsupport = false;\n\t}\n\n\t//avoid multiple inclusion to override current loader but allow tag content evaluation\n\tif( ! Mura.ljs ){\n\t\tvar checkLoaded = scriptTag.src.match(/checkLoaded/)?1:0\n\t\t\t//-- keep trace of header as we will make multiple access to it\n\t\t\t,header = D[getElementsByTagName](\"head\")[0] || D.documentElement\n\t\t\t, urlParse = function(url){\n\t\t\t\tvar parts={}; // u => url, i => id, f = fallback\n\t\t\t\tparts.u = url.replace(/#(=)?([^#]*)?/g,function(m,a,b){ parts[a?'f':'i'] = b; return '';});\n\t\t\t\treturn parts;\n\t\t\t}\n\t\t\t,appendElmt = function(type,attrs,cb){\n\t\t\t\tvar el = D.createElement(type), i;\n\n\t\t\t\tif( type =='script' && cb ){ //-- this is not intended to be used for link\n\t\t\t\t\tif(el[readyState]){\n\t\t\t\t\t\tel[onreadystatechange] = function(){\n\t\t\t\t\t\t\tif (el[readyState] === \"loaded\" || el[readyState] === \"complete\"){\n\t\t\t\t\t\t\t\tel[onreadystatechange] = null;\n\t\t\t\t\t\t\t\tcb();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t} else{\n\t\t\t\t\t\tel.onload = cb;\n\t\t\t\t\t}\n\t\t\t\t} else if(\n\t\t\t\t\t\ttype=='link'\n\t\t\t\t\t\t&& typeof attrs == 'object'\n\t\t\t\t\t\t&& typeof attrs.rel != 'undefined'\n\t\t\t\t\t\t&& attrs.rel=='preload'\n\t\t\t\t\t){\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tInspired by\n\t\t\t\t\t\thttps://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js\n\t\t\t\t\t\t*/\n\n\t\t\t\t\t\tvar media=attrs.media || 'all';\n\t\t\t\t\t\tattrs.as = attrs.as || 'style';\n\n\t\t\t\t\t\tif(!preloadsupport){\n\t\t\t\t\t\t\tattrs.media='x only';\n\t\t\t\t\t\t\tattrs.rel=\"stylesheet\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction loadCB(){\n\t\t\t\t\t\t\tif( el.addEventListener ){\n\t\t\t\t\t\t\t\tel.removeEventListener( \"load\", loadCB );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tel.media = media || \"all\";\n\t\t\t\t\t\t el.rel=\"stylesheet\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction onloadcssdefined( cb ){\n\t\t\t\t\t\t\tvar sheets=document.styleSheets;\n\t\t\t\t\t\t\tvar resolvedHref = attrs.href;\n\t\t\t\t\t\t\tvar i = sheets.length;\n\t\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\t\tif( sheets[ i ].href === resolvedHref ){\n\t\t\t\t\t\t\t\t\treturn cb();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tonloadcssdefined( cb );\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif( el.addEventListener ){\n\t\t\t\t\t\t\tel.addEventListener( \"load\", loadCB);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tel.onloadcssdefined = onloadcssdefined;\n\n\t\t\t\t\t\tonloadcssdefined( loadCB );\n\n\t\t\t\t}\n\n\t\t\t\tfor( i in attrs ){ attrs[i] && (el[i]=attrs[i]); }\n\n\t\t\t\theader.appendChild(el);\n\t\t\t\t// return e; // unused at this time so drop it\n\t\t\t}\n\t\t\t,load = function(url,cb){\n\t\t\t\tif( this.aliases && this.aliases[url] ){\n\t\t\t\t\tvar args = this.aliases[url].slice(0);\n\t\t\t\t\tisA(args) || (args=[args]);\n\t\t\t\t\tcb && args.push(cb);\n\t\t\t\t\treturn this.load.apply(this,args);\n\t\t\t\t}\n\t\t\t\tif( isA(url) ){ // parallelized request\n\t\t\t\t\tfor( var l=url[length]; l--;){\n\t\t\t\t\t\tthis.load(url[l]);\n\t\t\t\t\t}\n\t\t\t\t\tcb && url.push(cb); // relaunch the dependancie queue\n\t\t\t\t\treturn this.load.apply(this,url);\n\t\t\t\t}\n\t\t\t\tif( url.match(/\\.css\\b/) ){\n\t\t\t\t\treturn this.loadcss(url,cb);\n\t\t\t\t} else if( url.match(/\\.html\\b/) ){\n\t\t\t\t\treturn this.loadimport(url,cb);\n\t\t\t\t} else {\n\t\t\t\t\treturn this.loadjs(url,cb);\n\t\t\t\t}\n\t\t\t}\n\t\t\t,loaded = {} // will handle already loaded urls\n\t\t\t,loader = {\n\t\t\t\taliases:{}\n\t\t\t\t,loadjs: function(url,attrs,cb){\n\t\t\t\t\tif(typeof url == 'object'){\n\t\t\t\t\t\tif(Array.isArray(url)){\n\t\t\t\t\t\t\treturn loader.load.apply(this, arguments);\n\t\t\t\t\t\t} else if(typeof attrs === 'function'){\n\t\t\t\t\t\t\tcb=attrs;\n\t\t\t\t\t\t\tattrs={};\n\t\t\t\t\t\t\turl=attrs.href\n\t\t\t\t\t\t} else if (typeof attrs=='string' || (typeof attrs=='object' && Array.isArray(attrs))) {\n\t\t\t\t\t\t\treturn loader.load.apply(this, arguments);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattrs=url;\n\t\t\t\t\t\t\turl=attrs.href;\n\t\t\t\t\t\t\tcb=undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (typeof attrs=='function' ) {\n\t\t\t\t\t\tcb = attrs;\n\t\t\t\t\t\tattrs = {};\n\t\t\t\t\t} else if (typeof attrs=='string' || (typeof attrs=='object' && Array.isArray(attrs))) {\n\t\t\t\t\t\treturn loader.load.apply(this, arguments);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof attrs==='undefined'){\n\t\t\t\t\t\tattrs={};\n\t\t\t\t\t}\n\n\t\t\t\t\tvar parts = urlParse(url);\n\t\t\t\t\tvar partToAttrs=[['i','id'],['f','fallback'],['u','src']];\n\n\t\t\t\t\tfor(var i=0;i -1)\n\t\t\t\t\t\t\t&& typeof config.data.purgeCache === 'undefined' \n\t\t\t\t\t\t\t&& typeof config.data.purgecache === 'undefined'){\n\t\t\t\t\t\t\tvar sourceParams={};\n\t\n\t\t\t\t\t\t\tif(!this.inNode\n\t\t\t\t\t\t\t\t&& typeof location != 'undefined' \n\t\t\t\t\t\t\t\t&& location.search\n\t\t\t\t\t\t\t){\n\t\t\t\t\t\t\t\tsourceParams=Mura.getQueryStringParams(location.search);\n\t\t\t\t\t\t\t} else if( typeof this.requestObject != 'undefined' \n\t\t\t\t\t\t\t\t&& typeof this.requestObject.url === 'string' \n\t\t\t\t\t\t\t\t&& this.requestObject.url\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tvar qa=this.requestObject.url.split(\"?\");\n\t\t\t\t\t\t\t\tif(qa.length){\n\t\t\t\t\t\t\t\t\tvar qs=qa[qa.length-1] || '';\n\t\t\t\t\t\t\t\t\tqs=qs.toString();\n\t\t\t\t\t\t\t\t\tsourceParams=Mura.getQueryStringParams(qs);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\tif(typeof sourceParams.purgeCache != 'undefined'){\n\t\t\t\t\t\t\t\tconfig.data.purgeCache=sourceParams.purgeCache;\n\t\t\t\t\t\t\t} else if(typeof sourceParams.purgecache != 'undefined'){\n\t\t\t\t\t\t\t\tconfig.data.purgecache=sourceParams.purgecache;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch(e){\n\t\t\t\t\tconsole.log(e)\n\t\t\t\t}\n\t\n\t\t\t\tif(typeof config.data.httpmethod != 'undefined'){\n\t\t\t\t\tconfig.type=config.data.httpmethod;\n\t\t\t\t\tdelete config.data.httpmethod;\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif(this.inNode){\n\t\t\t\t\treturn this.nodeRequest(config);\n\t\t\t\t} else {\n\t\t\t\t\treturn this.browserRequest(config);\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * setRequestHeader - Initializes feed\n\t\t\t *\n\t\t\t * @param\t{string} headerName\tName of header\n\t\t\t * @param\t{string} value Header value\n\t\t\t * @return {Mura.RequestContext}\t\t\t\t\t\tSelf\n\t\t\t */\n\t\t\tsetRequestHeader(headerName,value){\n\t\t\t\theaderName=headerName.toLowerCase();\n\t\t\t\tthis.requestHeaders[headerName]=value;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t/**\n\t\t\t * getRequestHeader - Returns a request header value\n\t\t\t *\n\t\t\t * @param\t{string} headerName\tName of header\n\t\t\t * @return {string} header Value\n\t\t\t */\n\t\t\tgetRequestHeader(headerName){\n\t\t\t\theaderName=headerName.toLowerCase();\n\t\t\t\t if(typeof this.requestHeaders[headerName] != 'undefined'){\n\t\t\t\t\t return this.requestHeaders[headerName];\n\t\t\t\t } else {\n\t\t\t\t\t return null;\n\t\t\t\t }\n\t\t\t},\n\t\t\t/**\n\t\t\t * getRequestHeaders - Returns a request header value\n\t\t\t *\n\t\t\t * @return {object} All Headers\n\t\t\t */\n\t\t\tgetRequestHeaders(){\n\t\t\t\treturn this.requestHeaders;\n\t\t\t},\n\t\t\tnodeRequest(config){\n\t\t\t\tif(typeof this.renderMode != 'undefined'){\n\t\t\t\t\tconfig.renderMode=this.renderMode;\n\t\t\t\t} \n\t\t\t\n\t\t\t\tconst self=this;\n\t\t\t\tif(typeof this.requestObject != 'undefined' && typeof this.requestObject.headers != 'undefined'){\n\t\t\t\t\t['Cookie','X-Client_id','X-Client_secret','X-Access_token','Access_Token','Authorization','User-Agent','Referer','X-Forwarded-For','X-Forwarded-Host','X-Forwarded-Proto'].forEach((item)=>{\n\t\t\t\t\t\tif(typeof this.requestObject.headers[item] != 'undefined'){\n\t\t\t\t\t\t\tconfig.headers[item.toLowerCase()]=this.requestObject.headers[item];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar lcaseItem=item.toLowerCase();\n\t\t\t\t\t\t\tif(typeof this.requestObject.headers[lcaseItem] != 'undefined'){\n\t\t\t\t\t\t\t\tconfig.headers[lcaseItem]=this.requestObject.headers[lcaseItem];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\t\n\t\t\t\t\n\t\t\t\tlet h;\n\t\n\t\t\t\tfor( h in Mura.requestHeaders){\n\t\t\t\t\t\tif(Mura.requestHeaders.hasOwnProperty(h)){\n\t\t\t\t\t\t\tconfig.headers[h.toLowerCase()]= Mura.requestHeaders[h];\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor( h in this.requestHeaders){\n\t\t\t\t\t\tif(this.requestHeaders.hasOwnProperty(h)){\n\t\t\t\t\t\t\tconfig.headers[h.toLowerCase()]= this.requestHeaders[h];\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\n\t\t\t\tconst nodeProxyHeaders = (response)=>{\n\t\t\t\t\tif(typeof self.responseObject != 'undefined'){\n\t\t\t\t\t\tself.responseObject.proxiedResponse=response;\n\t\t\t\t\t\tif(!self.responseObject.headersSent){\n\t\t\t\t\t\t\tlet incomingHeaders={};\n\t\n\t\t\t\t\t\t\tresponse.headers.forEach((value,key)=>{\n\t\t\t\t\t\t\t\tconst lcaseKey=key.toLowerCase();\n\t\t\t\t\t\t\t\tif(incomingHeaders[lcaseKey]){\n\t\t\t\t\t\t\t\t\tincomingHeaders[lcaseKey].push(value);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(Array.isArray(value)){\n\t\t\t\t\t\t\t\t\t\tincomingHeaders[lcaseKey]=value;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tincomingHeaders[lcaseKey]=[value];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(response.statusCode > 300 && response.status < 400){\n\t\t\t\t\t\t\t\tconst header=incomingHeaders['location'];\n\t\t\t\t\t\t\t\tif(header){\n\t\t\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\t\t\t\t//match casing of mura-next connector\n\t\t\t\t\t\t\t\t\t\tself.responseObject.setHeader('location',header);\n\t\t\t\t\t\t\t\t\t\tself.responseObject.statusCode=response.statusCode;\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error setting location header');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet header='';\n\t\t\t\t\t\t\theader=incomingHeaders['cache-control'];\n\t\t\t\t\t\t\tif(header){\n\t\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\t\t//match casing of mura-next connector\n\t\t\t\t\t\t\t\t\tself.responseObject.setHeader('cache-control',header);\n\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t\t\t\t\tconsole.log('Error setting Cache-Control header');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\theader=incomingHeaders['pragma'];\n\t\t\t\t\t\t\tif(header){\n\t\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\t\t//match casing of mura-next connector\n\t\t\t\t\t\t\t\t\tself.responseObject.setHeader('pragma',header);\n\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\tconsole.log('Error setting Pragma header');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t}\n\t\n\t\t\t\tconst nodeProxyCookies = (response)=>{\n\t\t\t\t\tlet debug=typeof Mura.debug != 'undefined' && Mura.debug;\n\t\t\t\t\t\n\t\t\t\t\tif(typeof self.responseObject != 'undefined' && typeof self.requestObject != 'undefined' && typeof self.requestObject.headers !='undefined'){\n\t\t\t\t\t\tlet existingCookies=(typeof self.requestObject.headers['cookie'] != 'undefined') ? self.requestObject.headers['cookie'] : '';\n\t\t\t\t\t\tlet incomingHeaders={};\n\t\n\t\t\t\t\t\tresponse.headers.forEach((value,key)=>{\n\t\t\t\t\t\t\tincomingHeaders[key.toLowerCase()]=value;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet newSetCookies=incomingHeaders['set-cookie'];\n\t\n\t\t\t\t\t\tif(Array.isArray(existingCookies)){\n\t\t\t\t\t\t\tif(existingCookies.length){\n\t\t\t\t\t\t\t\texistingCookies=existingCookies[0];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\texistingCookies='';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\texistingCookies=existingCookies.split(\"; \");\n\t\n\t\t\t\t\t\tif(!Array.isArray(newSetCookies)){\n\t\t\t\t\t\t\tif(typeof newSetCookies==='string'){\n\t\t\t\t\t\t\t\tnewSetCookies=[newSetCookies];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnewSetCookies=[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif(debug){\n\t\t\t\t\t\t\tconsole.log('response cookies:');\n\t\t\t\t\t\t\tconsole.log(newSetCookies);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(newSetCookies.length){\n\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\tlet setCookieAccumulator=[];\n\t\t\t\t\t\t\t\tlet existingSetCookie = self.responseObject.getHeader('set-cookie');\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif(!Array.isArray(existingSetCookie)){\n\t\t\t\t\t\t\t\t\tif(!existingSetCookie){\n\t\t\t\t\t\t\t\t\t\texistingSetCookie=[];\n\t\t\t\t\t\t\t\t\t} else if(typeof existingSetCookie=='string'){\n\t\t\t\t\t\t\t\t\t\texistingSetCookie=[existingSetCookie];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\texistingSetCookie=[];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfor (let i = 0; i < existingSetCookie.length; i++) {\n\t\t\t\t\t\t\t\t\tsetCookieAccumulator[i] = existingSetCookie[i];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfor (let i = 0; i < newSetCookies.length; i++) {\n\t\t\t\t\t\t\t\t\tsetCookieAccumulator[i] = newSetCookies[i];\n\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\tself.responseObject.setHeader('set-cookie',setCookieAccumulator);\n\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tlet cookieMap={};\n\t\t\t\t\t\tlet setMap={};\n\t\t\t\t\t\tlet c;\n\t\t\t\t\t\tlet tempCookie;\n\t\t\t\t\t\t// pull out existing cookies\n\t\t\t\t\t\tif(existingCookies.length){\n\t\t\t\t\t\t\tfor( c in existingCookies){\n\t\t\t\t\t\t\t\ttempCookie=existingCookies[c];\n\t\t\t\t\t\t\t\tif(typeof tempCookie != 'undefined'){\n\t\t\t\t\t\t\t\t\ttempCookie=existingCookies[c].split(\" \")[0].split(\"=\");\n\t\t\t\t\t\t\t\t\tif(tempCookie.length > 1){\n\t\t\t\t\t\t\t\t\t\tcookieMap[tempCookie[0]]=tempCookie[1].split(';')[0];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(debug){\n\t\t\t\t\t\t\tconsole.log('existing 1:');\n\t\t\t\t\t\t\tconsole.log(cookieMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// pull out new cookies\n\t\t\t\t\t\tif(newSetCookies.length){\n\t\t\t\t\t\t\tfor( c in newSetCookies){\n\t\t\t\t\t\t\t\ttempCookie=newSetCookies[c];\n\t\t\t\t\t\t\t\tif(typeof tempCookie != 'undefined'){\n\t\t\t\t\t\t\t\t\ttempCookie=tempCookie.split(\" \")[0].split(\"=\");\n\t\t\t\t\t\t\t\t\tif(tempCookie.length > 1){\n\t\t\t\t\t\t\t\t\t\tcookieMap[tempCookie[0]]=tempCookie[1].split(';')[0];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(debug){\n\t\t\t\t\t\t\tconsole.log('existing 2:');\n\t\t\t\t\t\t\tconsole.log(cookieMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet cookie='';\n\t\t\t\t\t\t// put cookies back in in the same order that they came out\n\t\t\t\t\t\tif(existingCookies.length){\n\t\t\t\t\t\t\tfor(c in existingCookies){\n\t\t\t\t\t\t\t\ttempCookie=existingCookies[c];\n\t\t\t\t\t\t\t\tif(typeof tempCookie != 'undefined'){\n\t\t\t\t\t\t\t\t\ttempCookie=tempCookie.split(\" \")[0].split(\"=\");\n\t\t\t\t\t\t\t\t\tif(tempCookie.length > 1){\n\t\t\t\t\t\t\t\t\t\tif(cookie != ''){\n\t\t\t\t\t\t\t\t\t\t\tcookie=cookie + \"; \";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetMap[tempCookie[0]]=true;\n\t\t\t\t\t\t\t\t\t\tcookie=cookie + tempCookie[0] + \"=\" + cookieMap[tempCookie[0]];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(newSetCookies.length){\n\t\t\t\t\t\t\tfor( c in newSetCookies){\n\t\t\t\t\t\t\t\ttempCookie=newSetCookies[c];\n\t\t\t\t\t\t\t\tif(typeof tempCookie != 'undefined'){\n\t\t\t\t\t\t\t\t\ttempCookie=tempCookie.split(\" \")[0].split(\"=\");\n\t\t\t\t\t\t\t\t\tif(typeof setMap[tempCookie[0]] == 'undefined' && tempCookie.length > 1){\n\t\t\t\t\t\t\t\t\t\tif(cookie != ''){\n\t\t\t\t\t\t\t\t\t\t\tcookie=cookie + \"; \";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetMap[tempCookie[0]]=true;\n\t\t\t\t\t\t\t\t\t\tcookie=cookie + tempCookie[0] + \"=\" + cookieMap[tempCookie[0]];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tself.requestObject.headers['cookie']=cookie;\n\t\t\t\t\t\tif(debug){\n\t\t\t\t\t\t\tconsole.log('merged cookies:');\n\t\t\t\t\t\t\tconsole.log(self.requestObject.headers['cookie']);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst parsedConfig=this.parseRequestConfig(config);\n\t\n\t\t\t\tfetch(parsedConfig.url,parsedConfig).then(\n\t\t\t\t\tfunction(response){\n\t\t\t\t\t\tnodeProxyCookies(response);\n\t\t\t\t\t\tnodeProxyHeaders(response);\n\n\t\t\t\t\t\tif(parsedConfig.isfetch){\n\t\t\t\t\t\t\treturn new Promise().resolve(response);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresponse.text().then((body)=>{\n\t\t\t\t\t\t\t\tlet result='';\n\t\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\t\tresult=JSON.parse.call(null,body);\n\t\t\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\t\t\tresult=body;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconfig.success(result,response);\n\t\t\t\t\t\t\t}).catch((error)=>{\n\t\t\t\t\t\t\t\tif (response.status >= 500) {\n\t\t\t\t\t\t\t\t\tconsole.log(parsedConfig.url,error)\n\t\t\t\t\t\t\t\t\tconfig.error(error);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconfig.success('',response);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\t\t\t\t\tfunction(response){\n\t\t\t\t\t\tif(parsedConfig.isfetch){\n\t\t\t\t\t\t\treturn new Promise().resolve(response);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log(parsedConfig.url,response)\n\t\t\t\t\t\t\tthrow new Error(response.statusText)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\n\t\t\t},\n\t\t\tbrowserRequest(config){\t\n\t\t\t\tlet h;\n\t\n\t\t\t\tfor( h in Mura.requestHeaders){\n\t\t\t\t\tif(Mura.requestHeaders.hasOwnProperty(h)){\n\t\t\t\t\t\tconfig.headers[h.toLowerCase()]= Mura.requestHeaders[h];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor( h in this.requestHeaders){\n\t\t\t\t\tif(this.requestHeaders.hasOwnProperty(h)){\n\t\t\t\t\t\tconfig.headers[h.toLowerCase()]= this.requestHeaders[h];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst parsedConfig=this.parseRequestConfig(config);\n\t\t\t\t\n\t\t\t\tif(\n\t\t\t\t\ttypeof parsedConfig.onUploadProgress == 'function'\n\t\t\t\t\t|| typeof parsedConfig.onDownloadProgress == 'function'\n\t\t\t\t){\n\t\t\t\t\t//Fetch doesn't support progress events\n\t\t\t\t\tthis.xhrRequest(config);\n\t\t\t\t} else {\n\t\t\t\t\tif(parsedConfig.isfetch){\t\n\t\t\t\t\t\treturn fetch(parsedConfig.url,parsedConfig);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfetch(parsedConfig.url,parsedConfig).then(\n\t\t\t\t\t\t\tfunction(response){\n\t\t\t\t\t\t\t\tresponse.text().then((body)=>{\n\t\t\t\t\t\t\t\t\tlet result='';\n\t\t\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\t\t\tresult=JSON.parse.call(null,body);\n\t\t\t\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\t\t\t\tresult=body;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconfig.success(result,response);\n\t\t\t\t\t\t\t\t}).catch((error)=>{\n\t\t\t\t\t\t\t\t\tif (response.status >= 500) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(parsedConfig.url,error)\n\t\t\t\t\t\t\t\t\t\tconfig.error(error);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconfig.success('',response);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction(response){\n\t\t\t\t\t\t\t\tconsole.log(parsedConfig.url,response)\n\t\t\t\t\t\t\t\tthrow new Error(response.statusText)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\txhrRequest(config){\n\t\t\t\tvar debug=typeof Mura.debug != 'undefined' && Mura.debug;\n\t\t\t\tfor(var h in Mura.requestHeaders){\n\t\t\t\t\tif(Mura.requestHeaders.hasOwnProperty(h)){\n\t\t\t\t\t\tconfig.headers[h]= Mura.requestHeaders[h];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(var h in this.requestHeaders){\n\t\t\t\t\tif(this.requestHeaders.hasOwnProperty(h)){\n\t\t\t\t\t\tconfig.headers[h]= this.requestHeaders[h];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (!('xhrFields' in config)) {\n\t\t\t\t\tconfig.xhrFields = {\n\t\t\t\t\t\twithCredentials: true\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (!('crossDomain' in config)) {\n\t\t\t\t\tconfig.crossDomain = true;\n\t\t\t\t}\n\t\t\t\tif (!('async' in config)) {\n\t\t\t\t\tconfig.async = true;\n\t\t\t\t}\n\t\t\t\tvar req = new XMLHttpRequest();\n\t\n\t\t\t\tif(typeof config.data != 'undefined' && typeof config.data.httpmethod != 'undefined'){\n\t\t\t\t\tconfig.method=params.data.httpmethod;\n\t\t\t\t\tdelete config.data.httpmethod;\n\t\t\t\t}\n\t\t\n\t\t\t\tif(typeof req.addEventListener != 'undefined'){\n\t\t\t\t\tif(typeof params.progress == 'function'){\n\t\t\t\t\t\treq.addEventListener(\"progress\", config.progress);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif(typeof params.abort == 'function'){\n\t\t\t\t\t\treq.addEventListener(\"abort\", config.abort);\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\n\t\t\t\t\n\t\t\t\treq.onreadystatechange = function() {\n\t\t\t\t\tif (req.readyState == 4) {\n\t\t\t\t\t\tif(debug && typeof req.responseText != 'undefined'){\n\t\t\t\t\t\t\tconsole.log(req.responseText);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(typeof config.error == 'function'){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tvar data = JSON.parse.call(null,req.responseText);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tvar data = req.responseText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconfig.error(data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow req;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (config.method.toLowerCase() != 'get') {\n\t\t\t\t\t\n\t\t\t\t\treq.open(config.method.toUpperCase(), config.url, config.async);\n\t\t\t\t\tfor (var p in config.xhrFields) {\n\t\t\t\t\t\tif (p in req) {\n\t\t\t\t\t\t\treq[p] = config.xhrFields[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (var h in config.headers) {\n\t\t\t\t\t\tif(config.headers.hasOwnProperty(h)){\n\t\t\t\t\t\t\treq.setRequestHeader(h, config.headers[h]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (config.data instanceof FormData) {\n\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\treq.send(config.data);\n\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\tif(typeof config.error == 'function'){\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tvar data = JSON.parse.call(null,req.responseText);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tvar data = req.responseText;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconfig.error(data,e);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treq.setRequestHeader('Content-Type',\n\t\t\t\t\t\t\t'application/x-www-form-urlencoded; charset=UTF-8'\n\t\t\t\t\t\t);\n\t\n\t\t\t\t\t\tsetTimeout(()=>{\n\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\treq.send(this.serializeParams(config.data));\n\t\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\t\tif(typeof config.error == 'function'){\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tvar data = JSON.parse.call(null,req.responseText);\n\t\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\tvar data = req.responseText;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconfig.error(data,e);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treq.open(config.method.toUpperCase(), config.url, config.async);\n\t\t\t\t\tfor (var p in config.xhrFields) {\n\t\t\t\t\t\tif (p in req) {\n\t\t\t\t\t\t\treq[p] = config.xhrFields[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (var h in config.headers) {\n\t\t\t\t\t\tif(config.headers.hasOwnProperty(h)){\n\t\t\t\t\t\t\treq.setRequestHeader(h, config.headers[h]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\treq.send();\n\t\t\t\t\t\t} catch(e){\n\t\t\t\t\t\t\tif(typeof config.error == 'function'){\n\t\t\t\t\t\t\t\tif(typeof req.responseText != 'undefined'){\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tvar data = JSON.parse.call(null,req.responseText);\n\t\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\tvar data = req.responseText;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconfig.error(data,e);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconfig.error(req,e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t},\n\t\t\tserializeParams(params){\n\t\t\t\tconst query = [];\n\t\t\t\tfor (let key in params) {\n\t\t\t\t\tif(params.hasOwnProperty(key)){\n\t\t\t\t\t\tlet val=params[key];\n\t\t\t\t\t\tif (typeof val == 'object') {\n\t\t\t\t\t\t\tval = JSON.stringify(val);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery.push(encodeURIComponent(key) + '=' + encodeURIComponent(val));\n\t\t\t\t\t}\n\t\t\t\t}\t\n\t\t\t\treturn query.join('&');\n\t\t\t},\n\t\t\tparseRequestConfig(config){\n\t\t\t\tconst parsedConfig={\n\t\t\t\t\tmethod: config.type,\n\t\t\t\t\theaders:config.headers,\n\t\t\t\t\turl:config.url,\n\t\t\t\t\tonUploadProgress: config.progress,\n\t\t\t\t\tonDownloadProgress: config.download,\n\t\t\t\t\tnext: config.next,\n\t\t\t\t\tcache: config.cache,\n\t\t\t\t\tcredentials: \"include\",\n\t\t\t\t\tmode: \"cors\",\n\t\t\t\t\tredirect: config.redirect || \"follow\",\n\t\t\t\t\tisfetch: config.isfetch\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tif(parsedConfig.method.toLowerCase() != 'get'){\n\t\t\t\t\tdelete parsedConfig['cache-control'];\n\t\t\t\t}\n\n\t\t\t\tlet isJSONBody=false;\n\t\t\t\tlet parsedBody={};\n\t\t\t\ttry {\n\t\t\t\t\tparsedBody=JSON.parse.call(null,config.data);\n\t\t\t\t\tisJSONBody=true;\n\t\t\t\t} catch (e) {\n\t\t\t\t\tisJSONBody=false;\n\t\t\t\t}\n\t\t\t\tif(isJSONBody){\n\t\t\t\t\tparsedConfig.headers['content-type']='application/json; charset=UTF-8';\n\t\t\t\t}\n\t\t\t\tconst sendJSON=(parsedConfig.headers['content-type'] && parsedConfig.headers['content-type'].indexOf('json') >-1);\n\t\t\t\tconst sendFormData=!this.inNode && config.data instanceof FormData;\n\t\t\t\t\n\t\t\t\tif(parsedConfig.method.toLowerCase()=='get'){\n\t\t\t\t\t//GET send params and not data\n\t\t\t\t\tconst params=(isJSONBody) ? Mura.deepExtend({}, parsedBody) : Mura.deepExtend({}, config.data);\n\t\t\t\t\t\n\t\t\t\t\tif(typeof params['muraPointInTime'] == 'undefined' && typeof Mura.pointInTime != 'undefined'){\n\t\t\t\t\t\tparams['muraPointInTime']=Mura.pointInTime;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tconst queryString = this.serializeParams(params);\n\t\n\t\t\t\t\tif(config.maxQueryStringLength){\n\t\t\t\t\t\tif(config.maxQueryStringLength && (queryString.length > config.maxQueryStringLength)){\n\t\t\t\t\t\t\tparsedConfig.headers['content-type']='application/x-www-form-urlencoded; charset=UTF-8';\n\t\t\t\t\t\t\tparsedConfig.body = queryString;\n\t\t\t\t\t\t\tparsedConfig.method='post';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(parsedConfig.url.indexOf('?') > -1){\n\t\t\t\t\t\t\t\tparsedConfig.url += ('&' + queryString);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tparsedConfig.url += ('?' + queryString);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(parsedConfig.url.indexOf('?') > -1){\n\t\t\t\t\t\t\tparsedConfig.url += ('&' + queryString);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tparsedConfig.url += ('?' + queryString);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\treturn parsedConfig;\n\t\t\t\t} \n\t\n\t\t\t\tif(sendJSON){\n\t\t\t\t\tif(isJSONBody){\n\t\t\t\t\t\tparsedConfig.body=parsedBody;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparsedConfig.body=JSON.stringify.call(null,Object.assign({},config.data));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (sendFormData || isJSONBody){\n\t\t\t\t\t\tparsedConfig.body=config.data;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparsedConfig.data=Object.assign({}, config.data);\n\t\t\t\t\t\tif(typeof parsedConfig.data['muraPointInTime'] == 'undefined' && typeof Mura.pointInTime != 'undefined'){\n\t\t\t\t\t\t\tparsedConfig.data['muraPointInTime']=Mura.pointInTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\n\t\t\t\t\tif (sendFormData){\n\t\t\t\t\t\t//We use xhr to send form data when progress handlers are present\n\t\t\t\t\t\tif(!parsedConfig.progress && !parsedConfig.download){\n\t\t\t\t\t\t\tdelete parsedConfig.headers['content-type'];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tparsedConfig.headers['content-type']='multipart/form-data; charset=UTF-8';\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t} else if( !isJSONBody){\n\t\t\t\t\t\tparsedConfig.headers['content-type']='application/x-www-form-urlencoded; charset=UTF-8';\n\t\t\t\t\t\tparsedConfig.data=Mura.extend({},config.data);\n\t\t\t\t\t\n\t\t\t\t\t\tif(typeof parsedConfig.data['muraPointInTime'] == 'undefined' && typeof Mura.pointInTime != 'undefined'){\n\t\t\t\t\t\t\tparsedConfig.data['muraPointInTime']=Mura.pointInTime;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tparsedConfig.body = this.serializeParams(parsedConfig.data);\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\t\n\t\n\t\t\t\treturn parsedConfig;\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t);\n\t\n\t}\n\t\n\tmodule.exports=attach;","function attach(Mura){\n\n if (typeof document != 'undefined' && typeof Mura.styleMap == 'undefined'){\n var tocss={}\n\n var CSSStyleDeclaration=document.createElement('div').style;\n\n var fromArray;\n var toArray;\n var hasError=false;\n\n for(var s in CSSStyleDeclaration){\n fromArray= s.split(/(?=[A-Z])/);\n toArray=[];\n for(var i in fromArray){\n try{\n if(typeof fromArray[i] == 'string'){\n toArray.push(fromArray[i].toLowerCase());\n }\n } catch (e){\n console.log(\"error setting style from array\",JSON.stringify(fromArray[i]));\n }\n }\n tocss[s]=toArray.join(\"-\")\n }\n\n var styleMap={\n tocss:tocss,\n tojs:{}\n }\n\n for(var s in tocss){ \n try{\n if(typeof s == 'string'){\n styleMap.tojs[s.toLowerCase()]=s;\n styleMap.tocss[s.toLowerCase()]=styleMap.tocss[s]; \n } \n } catch(e) {\n console.log(\"error setting style to array\",JSON.stringify(s));\n }\n }\n\n Mura.styleMap=styleMap;\n }\n}\n\nmodule.exports=attach;\n","function attach(Mura){\nMura[\"templates\"] = Mura[\"templates\"] || {};\n\nMura[\"templates\"][\"checkbox_static\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":18},\"end\":{\"line\":4,\"column\":29}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":37},\"end\":{\"line\":4,\"column\":46}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":77},\"end\":{\"line\":4,\"column\":98}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t
\\r\\n\t\t\t\t\\r\\n\t\t\t\t\\r\\n\t\t\t
\\r\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n return \" checked='checked'\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n\t
\\r\\n\t\t\\r\\n\t\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":29}}})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = (lookupProperty(helpers,\"eachStatic\")||(depth0 && lookupProperty(depth0,\"eachStatic\"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,\"dataset\") : depth0),{\"name\":\"eachStatic\",\"hash\":{},\"fn\":container.program(9, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":12,\"column\":17}}})) != null ? stack1 : \"\")\n + \"\t
\\r\\n
\\r\\n\";\n},\"useData\":true,\"useDepths\":true});\n\nMura[\"templates\"][\"checkbox\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":18},\"end\":{\"line\":4,\"column\":29}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":37},\"end\":{\"line\":4,\"column\":46}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":77},\"end\":{\"line\":4,\"column\":98}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.lambda, alias5=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t
\\r\\n\t\t\t\t\\r\\n\t\t\t\t\\r\\n\t\t\t
\\r\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n return \"checked='checked'\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n\t
\\r\\n\t\t\\r\\n\t\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":29}}})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = (lookupProperty(helpers,\"eachCheck\")||(depth0 && lookupProperty(depth0,\"eachCheck\"))||alias2).call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"dataset\") : depth0)) != null ? lookupProperty(stack1,\"options\") : stack1),(depth0 != null ? lookupProperty(depth0,\"selected\") : depth0),{\"name\":\"eachCheck\",\"hash\":{},\"fn\":container.program(9, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":12,\"column\":16}}})) != null ? stack1 : \"\")\n + \"\t
\\r\\n
\\r\\n\";\n},\"useData\":true,\"useDepths\":true});\n\nMura[\"templates\"][\"dropdown_static\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":68},\"end\":{\"line\":2,\"column\":79}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":87},\"end\":{\"line\":2,\"column\":96}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":127},\"end\":{\"line\":2,\"column\":148}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \" aria-required=\\\"true\\\"\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n return \"selected='selected'\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t
\\n\t\t\\n\t\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":2},\"end\":{\"line\":3,\"column\":29}}})) != null ? stack1 : \"\")\n + \"\\n\t\t\\n\t
\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"dropdown\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" aria-required=\\\"true\\\"\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":114},\"end\":{\"line\":2,\"column\":125}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":133},\"end\":{\"line\":2,\"column\":142}}}) : helper)));\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":173},\"end\":{\"line\":2,\"column\":194}}}) : helper)))\n + \"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n return \"selected='selected'\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t
\\n\t\t\\n\t\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":2},\"end\":{\"line\":3,\"column\":29}}})) != null ? stack1 : \"\")\n + \"\\n\t\t\t\\n\t
\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"error\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":102},\"end\":{\"line\":1,\"column\":111}}}) : helper)))\n + \": \";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"label\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":89},\"end\":{\"line\":1,\"column\":120}}})) != null ? stack1 : \"\")\n + alias4(((helper = (helper = lookupProperty(helpers,\"message\") || (depth0 != null ? lookupProperty(depth0,\"message\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":120},\"end\":{\"line\":1,\"column\":131}}}) : helper)))\n + \"
\\r\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"file\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":117},\"end\":{\"line\":2,\"column\":138}}}) : helper)))\n + \"\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" aria-required=\\\"true\\\"\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n\t\\r\\n\t\\r\\n\t\\r\\n\t
\\r\\n\t\t\\r\\n\t
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"form\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n\t\\n
\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"hidden\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"list\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\n\t
\\n\t\t\t\\n\t\t
\\n\t\t\t\\n\t\t
\\n\t
\\n\t
\\n\t\t\\n\t
\\n
\";\n},\"useData\":true});\n\nMura[\"templates\"][\"nested\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n\\r\\n
\\r\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"paging\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \";\n},\"useData\":true});\n\nMura[\"templates\"][\"radio_static\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":19},\"end\":{\"line\":4,\"column\":30}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":38},\"end\":{\"line\":4,\"column\":47}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":78},\"end\":{\"line\":4,\"column\":99}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t
\\n\t\t\t\t\t\\n\t\t\t\t\t\\n\t\t\t\t
\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n return \"checked='checked'\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t
\\n\t\t
\\n\t\t\t\\n\t\t\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":3},\"end\":{\"line\":6,\"column\":30}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = (lookupProperty(helpers,\"eachStatic\")||(depth0 && lookupProperty(depth0,\"eachStatic\"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,\"dataset\") : depth0),{\"name\":\"eachStatic\",\"hash\":{},\"fn\":container.program(9, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":3},\"end\":{\"line\":12,\"column\":18}}})) != null ? stack1 : \"\")\n + \"\t\t
\\n\t
\\n\";\n},\"useData\":true,\"useDepths\":true});\n\nMura[\"templates\"][\"radio\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":19},\"end\":{\"line\":4,\"column\":30}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":38},\"end\":{\"line\":4,\"column\":47}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":78},\"end\":{\"line\":4,\"column\":99}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t
\\n\t\t\t\t\t\\n\t\t\t\t\t\\n\t\t\t\t
\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n return \"checked='checked'\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t
\\n\t\t
\\n\t\t\t\\n\t\t\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":3},\"end\":{\"line\":6,\"column\":30}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"dataset\") : depth0)) != null ? lookupProperty(stack1,\"options\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(9, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":3},\"end\":{\"line\":12,\"column\":12}}})) != null ? stack1 : \"\")\n + \"\t\t
\\n\t
\\n\";\n},\"useData\":true,\"useDepths\":true});\n\nMura[\"templates\"][\"section\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n
\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":26},\"end\":{\"line\":2,\"column\":35}}}) : helper)))\n + \"
\\r\\n
\\r\\n
\";\n},\"useData\":true});\n\nMura[\"templates\"][\"success\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"responsemessage\") || (depth0 != null ? lookupProperty(depth0,\"responsemessage\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"responsemessage\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":44},\"end\":{\"line\":1,\"column\":65}}}) : helper))) != null ? stack1 : \"\")\n + \"
\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"table\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"displayName\") || (depth0 != null ? lookupProperty(depth0,\"displayName\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayName\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":53,\"column\":49},\"end\":{\"line\":53,\"column\":64}}}) : helper)))\n + \"\\n\";\n},\"7\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\\n\"\n + ((stack1 = (lookupProperty(helpers,\"eachColRow\")||(depth0 && lookupProperty(depth0,\"eachColRow\"))||alias2).call(alias1,depth0,(depths[1] != null ? lookupProperty(depths[1],\"columns\") : depths[1]),{\"name\":\"eachColRow\",\"hash\":{},\"fn\":container.program(8, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":61,\"column\":4},\"end\":{\"line\":63,\"column\":19}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\\n\"\n + ((stack1 = (lookupProperty(helpers,\"eachColButton\")||(depth0 && lookupProperty(depth0,\"eachColButton\"))||alias2).call(alias1,depth0,{\"name\":\"eachColButton\",\"hash\":{},\"fn\":container.program(10, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":65,\"column\":4},\"end\":{\"line\":67,\"column\":22}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\\n\t\t\t\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t\t\t\"\n + container.escapeExpression(container.lambda(depth0, depth0))\n + \"\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"18\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=container.hooks.helperMissing, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t
\\n\t\t
\\n\t\t\t
\\n\t\t\t\t
\\n\t\t\t\t \\n\t\t\t\t
\\n\t\t\t\t \t\\n\t\t\t\t \t\\n\t\t\t\t\t
\\n\t\t\t\t
\\n\t\t\t\\n\t\t\t\t
\\n\t\t\t\t \\n\t\t\t\t
\\n\t\t\t\t \t\\n\t\t\t\t \t\\n\t\t\t\t \\n\t\t\t\t\t
\\n\t\t\t\t
\\n\t\t\t
\\n\t\t\t\t\t\\n\t\t\t
\\n\t\t\t\t\\n\t\t\t\t
\\n\t\t\t\t\t\\n\t\t\t\t\t\\n\t\t\t\t
\\n\t\t\t
\\n\t\t\t
\\n\t\t\t\t\\n\t\t\t\t\\n\t\t\t
\\n\t\t
\\n\t
\\n\\n\t
    \\n\t\t
  • Page:\\n\t\t\t\"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"pageindex\") : stack1), depth0))\n + \" of \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"totalpages\") : stack1), depth0))\n + \"\\n\t\t
  • \\n\t\t
  • Total Records:\\n\t\t\t\"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"totalitems\") : stack1), depth0))\n + \"\\n\t\t
  • \\n\t
\\n\\n\t\\n\t\t\\n\t\t\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(alias3,(depth0 != null ? lookupProperty(depth0,\"columns\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":54,\"column\":11}}})) != null ? stack1 : \"\")\n + \"\t\t\t\\n\t\t\\n\t\t\\n\t\t\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(alias3,((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"items\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":70,\"column\":11}}})) != null ? stack1 : \"\")\n + \"\t\t\\n\t\t\\n\t\t\\n\t\t\t\\n\t\t\\n\t
\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"links\") : stack1)) != null ? lookupProperty(stack1,\"first\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":75,\"column\":4},\"end\":{\"line\":77,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"links\") : stack1)) != null ? lookupProperty(stack1,\"previous\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(14, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":78,\"column\":4},\"end\":{\"line\":80,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"links\") : stack1)) != null ? lookupProperty(stack1,\"next\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":81,\"column\":4},\"end\":{\"line\":83,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias3,((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"rows\") : depth0)) != null ? lookupProperty(stack1,\"links\") : stack1)) != null ? lookupProperty(stack1,\"last\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(18, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":84,\"column\":4},\"end\":{\"line\":86,\"column\":11}}})) != null ? stack1 : \"\")\n + \"\t\t\t
\\n
\";\n},\"useData\":true,\"useDepths\":true});\n\nMura[\"templates\"][\"textarea\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":67},\"end\":{\"line\":2,\"column\":78}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":86},\"end\":{\"line\":2,\"column\":95}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":126},\"end\":{\"line\":2,\"column\":147}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \" aria-required=\\\"true\\\"\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" placeholder=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"placeholder\") || (depth0 != null ? lookupProperty(depth0,\"placeholder\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"placeholder\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":117},\"end\":{\"line\":4,\"column\":132}}}) : helper)))\n + \"\\\"\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n\t\\r\\n\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":3,\"column\":28}}})) != null ? stack1 : \"\")\n + \"\\r\\n\t\\r\\n
\\r\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"textblock\"] = Mura.Handlebars.template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n
\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"value\") || (depth0 != null ? lookupProperty(depth0,\"value\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"value\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":28},\"end\":{\"line\":2,\"column\":39}}}) : helper))) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"textfield\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":67},\"end\":{\"line\":2,\"column\":78}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"label\") || (depth0 != null ? lookupProperty(depth0,\"label\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"label\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":86},\"end\":{\"line\":2,\"column\":95}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formRequiredLabel\") || (depth0 != null ? lookupProperty(depth0,\"formRequiredLabel\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formRequiredLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":126},\"end\":{\"line\":2,\"column\":147}}}) : helper)))\n + \"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"
\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \" aria-required=\\\"true\\\"\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" placeholder=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"placeholder\") || (depth0 != null ? lookupProperty(depth0,\"placeholder\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"placeholder\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":164},\"end\":{\"line\":4,\"column\":179}}}) : helper)))\n + \"\\\"\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n\t\\r\\n\t\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"summary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":3,\"column\":28}}})) != null ? stack1 : \"\")\n + \"\\r\\n\t\\r\\n
\\r\\n\";\n},\"useData\":true});\n\nMura[\"templates\"][\"view\"] = Mura.Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t
  • \\n\t\t\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"displayName\") || (depth0 != null ? lookupProperty(depth0,\"displayName\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayName\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":10},\"end\":{\"line\":5,\"column\":25}}}) : helper)))\n + \": \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"displayValue\") || (depth0 != null ? lookupProperty(depth0,\"displayValue\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayValue\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":37},\"end\":{\"line\":5,\"column\":53}}}) : helper)))\n + \" \\n\t
  • \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
      \\n\"\n + ((stack1 = (lookupProperty(helpers,\"eachProp\")||(depth0 && lookupProperty(depth0,\"eachProp\"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{\"name\":\"eachProp\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":7,\"column\":13}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n
    \";\n},\"useData\":true});}\n\nmodule.exports=attach;","\n\nconst Handlebars=require('handlebars/runtime');\nconst attachHTemplate=require('./templates-handlebars');\nfunction attach(Mura){\n\tMura.Handlebars=Handlebars.create();\n\tMura.templatesLoaded=false;\n\t\n\tHandlebars.noConflict();\n\n\tMura.templates=Mura.templates || {};\n\tMura.templates['meta']=function(context){\n\t\tif(typeof context.labeltag == 'undefined' || !context.labeltag){\n\t\t\tcontext.labeltag='h2';\n\t\t}\n\t\tif(context.label){\n\t\t\treturn '
    <' + Mura.escapeHTML(context.labeltag) + '>' + Mura.escapeHTML(context.label) + '
    ';\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t}\n\tMura.templates['content']=function(context){\n\t\tvar html=context.html || context.content || context.source || '';\n\t\tif(Array.isArray(html)){\n\t\t\thtml='';\n\t\t}\n\t\treturn '
    ' + html + '
    ';\n\t}\n\tMura.templates['text']=function(context){\n\t\tcontext=context || {};\n\t\tif(context.label){\n\t\t\tcontext.source=context.source || '';\n\t\t} else {\n\t\t\tcontext.source=context.source || '

    ';\n\t\t}\n\t\treturn context.source;\n\t}\n\tMura.templates['embed']=function(context){\n\t\tcontext=context || {};\n\t\tif(context.source){\n\t\t\tcontext.source=context.source || '';\n\t\t} else {\n\t\t\tcontext.source=context.source || '

    ';\n\t\t}\n\t\treturn context.source;\n\t}\n\n\tMura.templates['image']=function(context){\n\t\tcontext=context || {};\n\t\tcontext.src=context.src||'';\n\t\tcontext.alt=context.alt||'';\n\t\tcontext.caption=context.caption||'';\n\t\tcontext.imagelink=context.imagelink||'';\n\t\tcontext.fit=context.fit||'';\n\n\t\tvar source='';\n\t\tvar style='';\n\n\t\tif(!context.src){\n\t\t\treturn '';\n\t\t}\n\n\t\tif(context.fit){\n\t\t\tstyle=' style=\"height:100%;width:100%;object-fit:' + Mura.escapeHTML(context.fit) +';\" data-object-fit=\"' + Mura.escapeHTML(context.fit) + '\" ';\n\t\t}\n\n\t\tsource='\"'';\n\t\tif(context.imagelink){\n\t\t\tcontext.imagelinktarget=context.imagelinktarget || \"\";\n\t\t\tvar targetString=\"\";\n\t\t\tif(context.imagelinktarget){\n\t\t\t\ttargetString=' target=\"' + Mura.escapeHTML(context.imagelinktarget) + '\"';\n\t\t\t}\n\t\t\tsource='' + source + '';\n\t\t}\n\t\tif(context.caption && context.caption != '

    '){\n\t\t\tsource+='
    ' + context.caption + '
    ';\n\t\t}\n\t\tsource='
    ' + source + '
    ';\n\n\t\treturn source;\n\t}\n\n\tattachHTemplate(Mura);\n}\n\nmodule.exports=attach;\n\n","/**\n * Creates a new Mura.UI.Collection\n * @name Mura.UI.Collection\n * @class\n * @extends Mura.UI\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\tMura.UI.Collection=Mura.UI.extend(\n\t/** @lends Mura.UI.Collection.prototype */\n\t{\n\t\tdefaultLayout: \"List\",\n\n\t\tlayoutInstance:'',\n\n\t\tgetLayoutInstance(){\n\t\t\tif(this.layoutInstance){\n\t\t\t\tthis.layoutInstance.destroy();\n\t\t\t}\n\t\t\tthis.layoutInstance=new Mura.Module[this.context.layout](this.context);\n\t\t\treturn this.layoutInstance;\n\t\t},\n\n\t\tgetCollection(){\n\t\t\tvar self=this;\n\t\t\tif(typeof this.context.feed != 'undefined' && typeof this.context.feed.getQuery != 'undefined'){\n\t\t\t\treturn this.context.feed.getQuery();\n\t\t\t} else {\n\t\t\t\tthis.context.source=this.context.source || '';\n\n\t\t\t\tif(typeof this.context.nextn != 'undefined'){\n\t\t\t\t\tthis.context.itemsperpage=this.context.nextn;\n\t\t\t\t}\n\n\t\t\t\tif(typeof this.context.maxitems == 'undefined'){\n\t\t\t\t\tthis.context.maxitems=20;\n\t\t\t\t}\n\n\t\t\t\tif(typeof this.context.itemsperpage != 'undefined'){\n\t\t\t\t\tthis.context.itemsperpage=this.context.nextn;\n\t\t\t\t}\n\n\t\t\t\tif(typeof this.context.expand == 'undefined'){\n\t\t\t\t\tthis.context.expand='';\n\t\t\t\t}\n\n\t\t\t\tif(typeof this.context.expanddepth == 'undefined'){\n\t\t\t\t\tthis.context.expanddepth=1;\n\t\t\t\t}\n\n\t\t\t\tif(typeof this.context.fields == 'undefined'){\n\t\t\t\t\tthis.context.fields='';\n\t\t\t\t}\n\n\t\t\t\tif(typeof this.context.rawcollection != 'undefined'){\n\t\t\t\t\treturn new Promise(function(resolve,reject){\n\t\t\t\t\t\tresolve(new Mura.EntityCollection(self.context.rawcollection,Mura._requestcontext))\n\t\t\t\t\t});\n\t\t\t\t} else if(this.context.sourcetype=='relatedcontent'){\n\t\t\t\t\tif(this.context.source=='custom'){\n\t\t\t\t\t\tif(typeof this.context.items != 'undefined'){\n\t\t\t\t\t\t\tthis.context.items=this.context.items.join();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.context.items){\n\t\t\t\t\t\t\tthis.context.items=Mura.createUUID();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Mura.get(Mura.getAPIEndpoint() + 'content',{\n\t\t\t\t\t\t\tid:this.context.items,\n\t\t\t\t\t\t\titemsperpage:this.context.itemsperpage,\n\t\t\t\t\t\t\tmaxitems:this.context.maxitems,\n\t\t\t\t\t\t\texpand:this.context.expand,\n\t\t\t\t\t\t\texpanddepth:this.context.expanddepth,\n\t\t\t\t\t\t\tfields:this.context.fields\n\t\t\t\t\t\t}).then(function(resp){\n\t\t\t\t\t\t\treturn new Mura.EntityCollection(resp.data,Mura._requestcontext);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if(this.context.source=='reverse'){\n\t\t\t\t\t\treturn Mura.getEntity('content')\n\t\t\t\t\t\t\t.set({\n\t\t\t\t\t\t\t\t'contentid':Mura.contentid,\n\t\t\t\t\t\t\t\t'id':Mura.contentid\n\t\t\t\t\t\t\t}).getRelatedContent('reverse',{\n\t\t\t\t\t\t\t\titemsperpage:this.context.itemsperpage,\n\t\t\t\t\t\t\t\tmaxitems:this.context.maxitems,\n\t\t\t\t\t\t\t\tsortby:this.context.sortby,\n\t\t\t\t\t\t\t\texpand:this.context.expand,\n\t\t\t\t\t\t\t\texpanddepth:this.context.expanddepth,\n\t\t\t\t\t\t\t\tfields:this.context.fields\n\t\t\t\t\t\t\t})\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn Mura.getEntity('content')\n\t\t\t\t\t\t\t.set({\n\t\t\t\t\t\t\t\t'contentid':Mura.contentid,\n\t\t\t\t\t\t\t\t'id':Mura.contentid\n\t\t\t\t\t\t\t}).getRelatedContent(this.context.source,{\n\t\t\t\t\t\t\t\titemsperpage:this.context.itemsperpage,\n\t\t\t\t\t\t\t\tmaxitems:this.context.maxitems,\n\t\t\t\t\t\t\t\texpand:this.context.expand,\n\t\t\t\t\t\t\t\texpanddepth:this.context.expanddepth,\n\t\t\t\t\t\t\t\tfields:this.context.fields\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} else if(this.context.sourcetype=='children'){\n\t\t\t\t\treturn Mura.getFeed('content')\n\t\t\t\t\t\t.where()\n\t\t\t\t\t\t.prop('parentid').isEQ(Mura.contentid)\n\t\t\t\t\t\t.maxItems(100)\n\t\t\t\t\t\t.itemsPerPage(this.context.itemsperpage)\n\t\t\t\t\t\t.expand(this.context.expand)\n\t\t\t\t\t\t.expandDepth(this.context.expanddepth)\n\t\t\t\t\t\t.fields(this.context.fields)\n\t\t\t\t\t\t.getQuery();\n\t\t\t\t} else {\n\t\t\t\t\treturn Mura.getFeed('content')\n\t\t\t\t\t\t.where()\n\t\t\t\t\t\t.prop('feedid').isEQ(this.context.source)\n\t\t\t\t\t\t.maxItems(this.context.maxitems)\n\t\t\t\t\t\t.itemsPerPage(this.context.itemsperpage)\n\t\t\t\t\t\t.expand(this.context.expand)\n\t\t\t\t\t\t.expandDepth(this.context.expand)\n\t\t\t\t\t\t.fields(this.context.fields)\n\t\t\t\t\t\t.getQuery();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\trenderClient(){\n\t\t\tif(typeof Mura.Module[this.context.layout] == 'undefined'){\n\t\t\t\tthis.context.layout=Mura.firstToUpperCase(this.context.layout);\n\t\t\t}\n\t\t\tif(typeof Mura.Module[this.context.layout] == 'undefined'\n\t\t\t\t&& Mura.Module[this.defaultLayout] != 'undefined'){\n\t\t\t\t\tthis.context.layout=this.defaultLayout;\n\t\t\t}\n\t\t\tvar self=this;\n\t\t\tif (typeof Mura.Module[this.context.layout] != 'undefined'){\n\t\t\t\tthis.getCollection().then(function(collection){\n\t\t\t\t\tself.context.collection=collection;\n\t\t\t\t\tself.getLayoutInstance().renderClient();\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.context.targetEl.innerHTML=\"This collection has an undefined layout\";\n\t\t\t}\n\t\t\tthis.trigger('afterRender');\n\t\t},\n\n\t\trenderServer(){\n\t\t\t//has implementation in ui.serverutils\n\t\t\treturn '';\n\t\t},\n\n\t\tdestroy(){\n\t\t\t//has implementation in ui.serverutils\n\t\t\tif(this.layoutInstance){\n\t\t\t\tthis.layoutInstance.destroy();\n\t\t\t}\n\t\t}\n\n\t});\n\n\tMura.Module.Collection=Mura.UI.Collection;\n\n}\n\nmodule.exports=attach;\n","/**\n * Creates a new Mura.UI.Text\n * @name Mura.UI.Container\n * @class\n * @extends Mura.UI\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n Mura.UI.Container=Mura.UI.extend(\n /** @lends Mura.DisplayObject.Container.prototype */\n {\n renderClient(){\t\t\n var target=Mura(this.context.targetEl);\t \n if(typeof this.context.items != 'undefined' && !Array.isArray(this.context.items)){\n try{\n this.context.items=JSON.parse(this.context.items);\n } catch{\n console.log(this.context.items)\n delete this.context.items;\n }\n }\n if(!Array.isArray(this.context.items)){\n this.context.content=this.context.content || '';\n target.html(this.context.content);\n } else {\n this.context.items=this.context.items || [];\n this.context.items.forEach(function(data){\n //console.log(data)\n data.transient=false;\n if(!Mura.cloning){\n data.preserveid=true;\n }\n target.appendDisplayObject(data);\n delete data.preserveid;\n })\n }\n this.trigger('afterRender');\n },\n reset(self,empty){ \n if(empty){\n self.find('.mura-object:not([data-object=\"container\"])').html('');\n self.find('.frontEndToolsModal').remove();\n self.find('.mura-object-meta').html('');\n }\n var content = self.children('div.mura-object-content');\n\n if (content.length) {\n var nestedObjects=[];\n content.children('.mura-object').each(\n function() {\n Mura.resetAsyncObject(this,empty);\t\n //console.log(Mura(this).data())\n nestedObjects.push(Mura(this).data());\n }\n );\n self.data('items', JSON.stringify(nestedObjects));\n self.removeAttr('data-content');\n }\n }\n });\n\n Mura.DisplayObject.Container=Mura.UI.Container;\n}\n\nmodule.exports=attach;","/**\n * Creates a new Mura.UI.Embed\n * @name Mura.UI.Embed\n * @class\n * @extends Mura.UI\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\tMura.UI.Embed=Mura.UI.extend(\n\t/** @lends Mura.DisplayObject.Embed.prototype */\n\t{\n\t\trenderClient(){\n\t\t\tMura(this.context.targetEl).html(Mura.templates['embed'](this.context));\n\t\t\tthis.trigger('afterRender');\n\t\t},\n\n\t\trenderServer(){\n\t\t\treturn Mura.templates['embed'](this.context);\n\t\t}\n\t});\n\n\tMura.DisplayObject.Embed=Mura.UI.Embed;\n\n}\n\nmodule.exports=attach;\n","/**\n * Creates a new Mura.UI.Form\n * @name\tMura.UI.Form\n * @class\n * @extends Mura.UI\n * @memberof\tMura\n */\n\nfunction attach(Mura){\n\n\tMura.UI.Form=Mura.UI.extend(\n\t/** @lends Mura.DisplayObject.Form.prototype */\n\t{\n\t\tcontext:{},\n\t\tormform: false,\n\t\tformJSON:{},\n\t\tdata:{},\n\t\tcolumns:[],\n\t\tcurrentpage: 0,\n\t\tentity: {},\n\t\tfields:{},\n\t\tfilters: {},\n\t\tdatasets: [],\n\t\tsortfield: '',\n\t\tsortdir: '',\n\t\tinlineerrors: true,\n\t\tproperties: {},\n\t\trendered: {},\n\t\trenderqueue: 0,\n\t\t//templateList: ['file','error','textblock','checkbox','checkbox_static','dropdown','dropdown_static','radio','radio_static','nested','textarea','textfield','form','paging','list','table','view','hidden','section'],\n\t\tformInit: false,\n\t\tresponsemessage: \"\",\n\t\trb: {\n\t\t\tgeneralwrapperclass:\"well\",\n\t\t\tgeneralwrapperbodyclass:\"\",\n\t\t\tformwrapperclass: \"well\",\n\t\t\tformwrapperbodyclass: \"\",\n\t\t\tformfieldwrapperclass: \"control-group\",\n\t\t\tformfieldlabelclass:\"control-label\",\n\t\t\tformerrorwrapperclass: \"\",\n\t\t\tformresponsewrapperclass: \"\",\n\t\t\tformgeneralcontrolclass:\"form-control\",\n\t\t\tforminputclass:\"form-control\",\n\t\t\tformselectclass:\"form-control\",\n\t\t\tformtextareaclass:\"form-control\",\n\t\t\tformfileclass:\"form-control\",\n\t\t\tformtextblockclass:\"form-control\",\n\t\t\tformcheckboxclass:\"\",\n\t\t\tformcheckboxlabelclass:\"checkbox\",\n\t\t\tformcheckboxwrapperclass:\"\",\n\t\t\tformradioclass:\"\",\n\t\t\tformradiowrapperclass:\"\",\n\t\t\tformradiolabelclass:\"radio\",\n\t\t\tformbuttonwrapperclass:\"btn-group\",\n\t\t\tformbuttoninnerclass:\"\",\n\t\t\tformbuttonclass:\"btn btn-default\",\n\t\t\tformrequiredwrapperclass:\"\",\n\t\t\tformbuttonsubmitclass :\"form-submit\",\n\t\t\tformbuttonsubmitlabel : \"Submit\",\n\t\t\tformbuttonsubmitwaitlabel : \"Please Wait...\",\n\t\t\tformbuttonnextclass:\"form-nav\",\n\t\t\tformbuttonnextlabel : \"Next\",\n\t\t\tformbuttonbackclass:\"form-nav\",\n\t\t\tformbuttonbacklabel : \"Back\",\n\t\t\tformbuttoncancelclass:\"btn-primary pull-right\",\n\t\t\tformbuttoncancellabel :\"Cancel\",\n\t\t\tformrequiredlabel:\"Required\",\n\t\t\tformfileplaceholder : \"Select File\"\n\t\t},\n\t\trenderClient(){\n\n\t\t\tif(this.context.mode == undefined){\n\t\t\t\tthis.context.mode = 'form';\n\t\t\t}\n\n\t\t\tvar ident = \"mura-form-\" + this.context.instanceid;\n\n\t\t\tthis.context.formEl = \"#\" + ident;\n\n\t\t\tthis.context.html = \"
    \";\n\n\t\t\tMura(this.context.targetEl).html( this.context.html );\n\n\t\t\tif (this.context.view == 'form') {\n\t\t\t\tthis.getForm();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.getList();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tgetTemplates() {\n\n\t\t\tvar self = this;\n\n\t\t\tif (self.context.view == 'form') {\n\t\t\t\tself.loadForm();\n\t\t\t} else {\n\t\t\t\tself.loadList();\n\t\t\t}\n\n\t\t\t/*\n\t\t\tif(Mura.templatesLoaded.length){\n\t\t\t\tvar temp = Mura.templateList.pop();\n\n\t\t\t\tMura.ajax(\n\t\t\t\t\t{\n\t\t\t\t\t\turl:Mura.assetpath + '/includes/display_objects/form/templates/' + temp + '.hb',\n\t\t\t\t\t\ttype:'get',\n\t\t\t\t\t\txhrFields:{ withCredentials: false },\n\t\t\t\t\t\tsuccess(data) {\n\t\t\t\t\t\t\tMura.templates[temp] = Mura.Handlebars.compile(data);\n\t\t\t\t\t\t\tif(!Mura.templateList.length) {\n\t\t\t\t\t\t\t\tif (self.context.view == 'form') {\n\t\t\t\t\t\t\t\t\tself.loadForm();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tself.loadList();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tself.getTemplates();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t}\n\t\t\t*/\n\t\t},\n\n\t\tgetPageFieldList(){\n\n\t\t\tvar page=this.currentpage;\n\t\t\tvar fields = this.formJSON.form.pages[page];\n\t\t\tvar result=[];\n\n\t\t\tfor(var f=0;f < fields.length;f++){\n\t\t\t\t//console.log(\"add: \" + self.formJSON.form.fields[fields[f]].name);\n\t\t\t\tresult.push(this.formJSON.form.fields[fields[f]].name);\n\t\t\t}\n\n\t\t\t//console.log(result);\n\n\t\t\treturn result.join(',');\n\t\t},\n\n\t\trenderField(fieldtype,field) {\n\t\t\tvar self = this;\n\t\t\tvar templates = Mura.templates;\n\t\t\tvar template = fieldtype;\n\n\t\t\tif( field.datasetid != \"\" && self.isormform)\n\t\t\t\tfield.options = self.formJSON.datasets[field.datasetid].options;\n\t\t\telse if(field.datasetid != \"\") {\n\t\t\t\tfield.dataset = self.formJSON.datasets[field.datasetid];\n\t\t\t}\n\n\t\t\tself.setDefault( fieldtype,field );\n\n\t\t\tif (fieldtype == \"nested\") {\n\t\t\t\tvar nested_context = {};\n\t\t\t\tnested_context.objectid = field.formid;\n\t\t\t\tnested_context.paging = 'single';\n\t\t\t\tnested_context.mode = 'nested';\n\t\t\t\tnested_context.prefix = field.name + '_';\n\t\t\t\tnested_context.master = this;\n\n\t\t\t\tvar data={};\n\t\t\t\tdata.objectid=nested_context.objectid;\n\t\t\t\tdata.formid=nested_context.objectid;\n\t\t\t\tdata.object='form';\n\t\t\t\tdata.siteid=self.context.siteid || Mura.siteid;\n\t\t\t\tdata.contentid=Mura.contentid;\n\t\t\t\tdata.contenthistid=Mura.contenthistid;\n\n\t\t\t\tMura.get(\n\t\t\t\t\tMura.getAPIEndpoint() + '?method=processAsyncObject',\n\t\t\t\t\tdata)\n\t\t\t\t\t.then(function(resp){\n\t\t\t\t\t\tvar tempContext=Mura.extend({},nested_context);\n\n\t\t\t\t\t\tdelete tempContext.targetEl;\n\n\t\t\t\t\t\tvar context=Mura.deepExtend({},tempContext,resp.data)\n\n\t\t\t\t\t\tcontext.targetEl=self.context.targetEl;\n\n\t\t\t\t\t\tMura(\".field-container-\" + self.context.objectid,self.context.formEl).append('
    ');\n\n\t\t\t\t\t\tvar nestedForm = new Mura.UI.Form( context );\n\t\t\t\t\t\tcontext.formEl = document.getElementById('nested-'+field.formid);\n\n\t\t\t\t\t\tnestedForm.getForm();\n\n\t\t\t\t\t\t// var html = Mura.templates[template](field);\n\t\t\t\t\t\t// Mura(\".field-container-\" + self.context.objectid,self.context.formEl).append(html);\n\n\t\t\t\t\t});\n\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif(fieldtype == \"checkbox\") {\n\t\t\t\t\tif(self.ormform) {\n\t\t\t\t\t\tfield.selected = [];\n\n\t\t\t\t\t\tvar ds = self.formJSON.datasets[field.datasetid];\n\n\t\t\t\t\t\tfor (var i in ds.datarecords) {\n\t\t\t\t\t\t\tif(ds.datarecords[i].selected && ds.datarecords[i].selected == 1)\n\t\t\t\t\t\t\t\tfield.selected.push(i);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfield.selected = field.selected.join(\",\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttemplate = template + \"_static\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if(fieldtype == \"dropdown\") {\n\t\t\t\t\tif(!self.ormform) {\n\t\t\t\t\t\ttemplate = template + \"_static\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if(fieldtype == \"radio\") {\n\t\t\t\t\tif(!self.ormform) {\n\t\t\t\t\t\ttemplate = template + \"_static\";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar html = Mura.templates[template](field);\n\n\t\t\t\tMura(\".field-container-\" + self.context.objectid,self.context.formEl).append(html);\n\t\t\t}\n\n\t\t},\n\n\t\tsetDefault(fieldtype,field) {\n\t\t\tvar self = this;\n\n\t\t\tswitch( fieldtype ) {\n\t\t\t\tcase \"textfield\":\n\t\t\t\tcase \"textarea\":\n\t\t\t\t\tif(self.data[self.context.prefix + field.name]){\n\t\t\t\t\t\tfield.value = self.data[self.context.prefix + field.name];\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t\tcase \"checkbox\":\n\t\t\t\tvar ds = self.formJSON.datasets[field.datasetid];\n\t\t\t\t\tfor(var i=0;i -1) {\n\t\t\t\t\t\t\t\tds.datarecords[i].isselected = 1;\n\t\t\t\t\t\t\t\tds.datarecords[i].selected = 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tds.datarecords[i].selected = 0;\n\t\t\t\t\t\t\t\tds.datarecords[i].isselected = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t\tcase \"radio\":\n\t\t\t\tcase \"dropdown\":\n\t\t\t\t\tvar ds = self.formJSON.datasets[field.datasetid];\n\t\t\t\t\tfor(var i=0;i= self.formJSON.form.pages.length){\n\t\t\t\t\t\t\t\t\t\tself.currentpage=self.formJSON.form.pages.length-1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tself.renderForm();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('oops!');\n\t\t\t\t}\n\t\t\t\t*/\n\t\t\t};\n\n\t\t\tMura(\".mura-form-nav\",self.context.formEl).off('click',formNavHandler).on('click',formNavHandler);\n\n\t\t\tvar fileSelectorHandler=function(e){\n\t\t\t\tMura(this).closest('.mura-form-file-container').find('input[type=\"file\"]').trigger('click');\n\t\t\t}\n\n\t\t\tvar fileChangeHandler=function(e){\n\t\t\t\tvar inputEl = Mura(this); \n\t\t\t\tvar fn = inputEl.val().replace(/\\\\/g, '/').replace(/.*\\//, '');\n\t\t\t\tvar fnEl = Mura('.mura-newfile-filename[data-filename=\"' + inputEl.attr(\"name\") + '\"]').val(fn);\n\t\t\t\tvar f = Mura('input[type=\"file\"][data-filename=\"' + inputEl.attr(\"name\") + '\"]').node.files[0];\n\t\t\t\tvar fImg = Mura('img#mura-form-preview-' + inputEl.attr(\"name\") );\n\t\t\t\tvar fUrl = '';\n\t\t\t\t// file upload\n\t\t\t\tif (typeof f !== 'undefined'){\n\t\t\t\t\tfUrl = window.URL.createObjectURL(f);\n\t\t\t\t\tfnEl.val(fn);\n\t\t\t\t\tfImg.hide();\n\t\t\t\t\tif(f.type.indexOf('image') == 0 && fUrl.length){\n\t\t\t\t\t\tfImg.attr('src',fUrl).show();\t\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfImg.attr('src',fUrl).hide();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tMura(self.context.formEl).find('input[type=\"file\"]').off('change',fileChangeHandler).on('change',fileChangeHandler);\n\t\t\t\n\t\t\tMura(self.context.formEl).find('.mura-form-preview img, .mura-newfile-filename').off('click',fileSelectorHandler).on('click',fileSelectorHandler);\n\n\t\t},\n\n\t\tsetDataValues() {\n\t\t\tvar self = this;\n\t\t\tvar multi = {};\n\t\t\tvar item = {};\n\t\t\tvar valid = [];\n\t\t\tvar currentPage = {};\n\n\t\t\tMura(\".field-container-\" + self.context.objectid + \" input, .field-container-\" + self.context.objectid + \" select, .field-container-\" + self.context.objectid + \" textarea\").each( function() {\n\n\t\t\t\tcurrentPage[Mura(this).attr('name')]=true;\n\n\t\t\t\tif( Mura(this).is('[type=\"checkbox\"]')) {\n\t\t\t\t\tif ( multi[Mura(this).attr('name')] == undefined )\n\t\t\t\t\t\tmulti[Mura(this).attr('name')] = [];\n\n\t\t\t\t\tif( this.checked ) {\n\t\t\t\t\t\tif (self.ormform) {\n\t\t\t\t\t\t\titem = {};\n\t\t\t\t\t\t\titem['id'] = Mura.createUUID();\n\t\t\t\t\t\t\titem[self.entity + 'id'] = self.data.id;\n\t\t\t\t\t\t\titem[Mura(this).attr('source') + 'id'] = Mura(this).val();\n\t\t\t\t\t\t\titem['key'] = Mura(this).val();\n\n\t\t\t\t\t\t\tmulti[Mura(this).attr('name')].push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tmulti[Mura(this).attr('name')].push(Mura(this).val());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( Mura(this).is('[type=\"radio\"]')) {\n\t\t\t\t\tif( this.checked ) {\n\t\t\t\t\t\tself.data[ Mura(this).attr('name') ] = Mura(this).val();\n\t\t\t\t\t\tvalid[ Mura(this).attr('name') ] = self.data[name];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tself.data[ Mura(this).attr('name') ] = Mura(this).val();\n\t\t\t\t\tvalid[ Mura(this).attr('name') ] = self.data[Mura(this).attr('name')];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfor(var i in multi) {\n\t\t\t\tif(self.ormform) {\n\t\t\t\t\tself.data[ i ].cascade = \"replace\";\n\t\t\t\t\tself.data[ i ].items = multi[ i ];\n\t\t\t\t\tvalid[ i ] = self.data[i];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tself.data[ i ] = multi[i].join(\",\");\n\t\t\t\t\tvalid[ i ] = multi[i].join(\",\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar frm=document.getElementById('frm' + self.context.objectid);\n\t\t\tfor(var p in currentPage){\n\t\t\t\tif(currentPage.hasOwnProperty(p) && typeof self.data[p] != 'undefined'){\n\t\t\t\t\tif(p.indexOf(\"_attachment\") > -1 && typeof frm[p] != 'undefined'){\n\t\t\t\t\t\tself.attachments[p]=frm[p].files[0];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn valid;\n\n\t\t},\n\n\t\tvalidate( entity,fields ) {\n\t\t\treturn true;\n\t\t},\n\n\t\tgetForm( entityid,backlink ) {\n\t\t\tvar self = this;\n\n\t\t\tif(entityid != undefined){\n\t\t\t\tself.entityid = entityid;\n\t\t\t} else {\n\t\t\t\tdelete self.entityid;\n\t\t\t}\n\n\t\t\tif(backlink != undefined){\n\t\t\t\tself.backlink = backlink;\n\t\t\t} else {\n\t\t\t\tdelete self.backlink;\n\t\t\t}\n\n\t\t\tself.loadForm();\n\n\t\t},\n\n\t\tloadForm( data ) {\n\t\t\tvar self = this;\n\n\t\t\tvar formJSON = JSON.parse(self.context.def);\n\n\t\t\t// old forms\n\t\t\tif(!formJSON.form.pages) {\n\t\t\t\tformJSON.form.pages = [];\n\t\t\t\tformJSON.form.pages[0] = formJSON.form.fieldorder;\n\t\t\t\tformJSON.form.fieldorder = [];\n\t\t\t}\n\n\n\t\t\tif(typeof formJSON.datasets != 'undefined'){\n\t\t\t\tfor(var d in formJSON.datasets){\n\t\t\t\t\tif(typeof formJSON.datasets[d].DATARECORDS != 'undefined'){\n\t\t\t\t\t\tformJSON.datasets[d].datarecords=formJSON.datasets[d].DATARECORDS;\n\t\t\t\t\t\tdelete formJSON.datasets[d].DATARECORDS;\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof formJSON.datasets[d].DATARECORDORDER != 'undefined'){\n\t\t\t\t\t\tformJSON.datasets[d].datarecordorder=formJSON.datasets[d].DATARECORDORDER;\n\t\t\t\t\t\tdelete formJSON.datasets[d].DATARECORDORDER;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar entityName = self.context.filename.replace(/\\W+/g, \"\");\n\t\t\tself.entity = entityName;\n\t\t\tself.formJSON = formJSON;\n\t\t\tself.fields = formJSON.form.fields;\n\t\t\tself.responsemessage = self.context.responsemessage;\n\t\t\tself.ishuman=self.context.ishuman;\n\n\t\t\tif (formJSON.form.formattributes && formJSON.form.formattributes.Muraormentities == 1) {\n\t\t\t\tself.ormform = true;\n\t\t\t}\n\n\t\t\tfor(var i=0;i < self.formJSON.datasets;i++){\n\t\t\t\tself.datasets.push(i);\n\t\t\t}\n\n\t\t\tif(self.ormform) {\n\t\t\t\tself.entity = entityName;\n\n\t\t\t\tif(self.entityid == undefined) {\n\t\t\t\t\tMura.get(\n\t\t\t\t\t\tMura.getAPIEndpoint() +'/'+ entityName + '/new?expand=all&ishuman=true'\n\t\t\t\t\t).then(function(resp) {\n\t\t\t\t\t\tself.data = resp.data;\n\t\t\t\t\t\tself.renderData();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tMura.get(\n\t\t\t\t\t\tMura.getAPIEndpoint()\t+ '/'+ entityName + '/' + self.entityid + '?expand=all&ishuman=true'\n\t\t\t\t\t).then(function(resp) {\n\t\t\t\t\t\tself.data = resp.data;\n\t\t\t\t\t\tself.renderData();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tself.renderData();\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\tinitForm() {\n\t\t\tvar self = this;\n\t\t\tMura(self.context.formEl).empty();\n\n\t\t\tif(self.context.mode != undefined && self.context.mode == 'nested') {\n\t\t\t\tvar html = Mura.templates['nested'](self.context);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar html = Mura.templates['form'](self.context);\n\t\t\t}\n\n\t\t\tMura(self.context.formEl).append(html);\n\n\t\t\tself.currentpage = 0;\n\t\t\tself.attachments={};\n\t\t\tself.formInit=true;\n\t\t\tMura.trackEvent({category:'Form',action:'Impression',label:self.context.name,objectid:self.context.objectid,nonInteraction:true});\n\t\t},\n\n\t\tonSubmit(){\n\t\t\treturn true;\n\t\t},\n\n\t\tonPageSubmit(){\n\t\t\treturn true;\n\t\t},\n\n\t\tsubmitForm() {\n\n\t\t\tvar self = this;\n\t\t\tvar valid = self.setDataValues();\n\t\t\tMura(\".error-container-\" + self.context.objectid,self.context.formEl).empty();\n\n\t\t\tvar keepGoing=this.onSubmit.call(this.context.targetEl);\n\t\t\tif(typeof keepGoing != 'undefined' && !keepGoing){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdelete self.data.isNew;\n\n\t\t\tvar frm=Mura(self.context.formEl).find('form');\n\n\t\t\tfrm.find('.mura-form-submit').html(self.rb.formbuttonsubmitwaitlabel);\n\t\t\tfrm.trigger('formSubmit');\n\n\t\t\t//console.log('b!');\n\t\t\tvar rawdata=Mura.extend({},self.context,self.data);\n\t\t\trawdata.saveform=true;\n\t\t\trawdata.formid=rawdata.objectid;\n\t\t\trawdata.siteid=self.context.siteid || rawdata.siteid || Mura.siteid;\n\t\t\trawdata.contentid=Mura.contentid || '';\n\t\t\trawdata.contenthistid=Mura.contenthistid || '';\n\n\t\t\tdelete rawdata.filename;\n\t\t\tdelete rawdata.def;\n\t\t\tdelete rawdata.ishuman;\n\t\t\tdelete rawdata.targetEl;\n\t\t\tdelete rawdata.html;\n\n\t\t\tvar tokenArgs={\n\t\t\t\tsiteid: rawdata.siteid,\n\t\t\t\tcontext: rawdata.formid\n\t\t\t}\n\n\t\t\tif(rawdata.responsechart){\n\t\t\t\tvar frm=Mura(self.context.targetEl);\n\t\t\t\tvar polllist=new Array();\n\t\t\t\tfrm.find(\"input[type='radio']\").each(function(){\n\t\t\t\t\tpolllist.push(Mura(this).val());\n\t\t\t\t});\n\t\t\t\tif(polllist.length > 0) {rawdata.polllist=polllist.toString();}\n\t\t\t}\n\n\t\t\tvar data=new FormData();\n\n\t\t\tfor(var p in rawdata){\n\t\t\t\tif(rawdata.hasOwnProperty(p)){\n\t\t\t\t\tif(typeof self.attachments[p] != 'undefined'){\n\t\t\t\t\t\tdata.append(p,self.attachments[p]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata.append(p,rawdata[p]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tMura.ajax({\n\t\t\t\ttype: 'post',\n\t\t\t\turl: Mura.getAPIEndpoint() +\n\t\t\t\t\t'?method=generateCSRFTokens',\n\t\t\t\tdata: tokenArgs,\n\t\t\t\tsuccess(resp) {\n\n\t\t\t\t\tdata.append('csrf_token_expires',resp.data['csrf_token_expires']);\n\t\t\t\t\tdata.append('csrf_token',resp.data['csrf_token']);\n\t\t\t\t\t\n\t\t\t\t\tMura.post(\n\t\t\t\t\t\tMura.getAPIEndpoint() + '?method=processAsyncObject',\n\t\t\t\t\t\tdata)\n\t\t\t\t\t\t.then(function(resp){\n\t\t\t\t\t\t\tif(typeof resp.data.errors == 'object' && !Mura.isEmptyObject(resp.data.errors )){\n\t\t\t\t\t\t\t\tself.showErrors( resp.data.errors );\n\t\t\t\t\t\t\t\tself.trigger('afterErrorRender');\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tMura(self.context.formEl)\n\t\t\t\t\t\t\t\t\t.find('form')\n\t\t\t\t\t\t\t\t\t.trigger('formSubmitSuccess');\n\n\t\t\t\t\t\t\t\tMura.trackEvent({\n\t\t\t\t\t\t\t\t\tcategory:'Form',\n\t\t\t\t\t\t\t\t\taction:'Conversion',\n\t\t\t\t\t\t\t\t\tlabel:self.context.name,\n\t\t\t\t\t\t\t\t\tobjectid:self.context.objectid}\n\t\t\t\t\t\t\t\t).then(function(){\n\t\t\t\t\t\t\t\t\tif(typeof resp.data.redirect != 'undefined'){\n\t\t\t\t\t\t\t\t\t\tif(resp.data.redirect && resp.data.redirect != location.href){\n\t\t\t\t\t\t\t\t\t\t\tlocation.href=resp.data.redirect;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tlocation.reload(true);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tMura(self.context.formEl).html( Mura.templates['success'](resp.data) );\n\t\t\t\t\t\t\t\t\t\tself.trigger('afterResponseRender');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction(resp){\n\t\t\t\t\t\t\tself.showErrors( {\"systemerror\":\"We're sorry, a system error has occurred. Please try again later.\"} );\n\t\t\t\t\t\t\tself.trigger('afterErrorRender');\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t},\n\n\t\tshowErrors( errors ) {\n\t\t\tvar self = this;\n\t\t\tvar frm=Mura(this.context.formEl);\n\t\t\tvar frmErrors=frm.find(\".error-container-\" + self.context.objectid);\n\n\t\t\tfrm.find('.mura-form-submit').html(self.rb.formbuttonsubmitlabel);\n\t\t\tfrm.find('.mura-response-error').remove();\n\t\t\tfrm.find('[aria-invalid]').forEach(function(){\n\t\t\t\tthis.removeAttribute('aria-invalid');\n\t\t\t\tthis.removeAttribute('aria-describedby');\n\t\t\t});\t\n\n\t\t\tvar fieldKeys=Object.keys(self.fields);\n\t\t\t\n\t\t\tfor(var e in errors) {\n\t\t\t\n\t\t\t\tvar fieldKey=fieldKeys.find(function(key){\n\t\t\t\t\treturn (self.fields[key].name===e);\n\t\t\t\t});\n\n\t\t\t\tif( fieldKey ) {\n\t\t\t\t\tvar field = self.fields[fieldKey];\n\t\t\t\t\tvar error = {};\n\t\t\t\t\n\t\t\t\t\terror.message = errors[e];\n\t\t\t\t\terror.selector='#field-' + field.name\n\t\t\t\t\terror.field = 'field-' + field.name;\n\t\t\t\t\terror.label = '';\n\t\t\t\t\terror.id= 'e' + Mura.createUUID();\n\n\t\t\t\t\tif(field.cssid){\n\t\t\t\t\t\terror.selector= '#' + field.cssid;\n\t\t\t\t\t} \n\n\t\t\t\t} else {\n\t\t\t\t\tvar error = {};\n\t\t\t\t\terror.message = errors[e];\n\t\t\t\t\terror.selector='#field-' + e\n\t\t\t\t\terror.field = 'field-' + e;\n\t\t\t\t\terror.label = '';\n\t\t\t\t\terror.id= 'e' + Mura.createUUID();\n\t\t\t\t}\n\n\t\t\t\tif(this.inlineerrors){\n\t\t\t\t\tvar field=Mura(this.context.formEl).find(error.selector);\n\t\t\t\t\tvar errorTarget=field;\n\t\t\t\t\tvar check;\n\t\t\t\t\tif(!field.length){\n\t\t\t\t\t\tfield=Mura('label[for=\"'+ e + '\"]');\n\t\t\t\t\t\tcheck=field.parent().find('input');\n\t\t\t\t\t\tif(check.length){\n\t\t\t\t\t\t\tfield=check;\n\t\t\t\t\t\t}\n\t\t\t\t\t\terrorTarget=field;\n\t\t\t\t\t\tcheck=field.parent().find('label');\n\t\t\t\t\t\tif(check.length){\n\t\t\t\t\t\t\terrorTarget=check;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(field.length){\n\t\t\t\t\t\tfield.attr('aria-invalid',true);\n\t\t\t\t\t\tfield.attr('aria-describedby',error.id);\n\t\t\t\t\t\terrorTarget.node.insertAdjacentHTML('afterend',Mura.templates['error'](error));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrmErrors.append(Mura.templates['error'](error));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfrmErrors.append(Mura.templates['error'](error));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tMura(self.context.formEl).find('.g-recaptcha-container').each(function(el){\n\t\t\t\tgrecaptcha.reset(el.getAttribute('data-widgetid'));\n\t\t\t});\n\n\t\t\tvar errorsSel=Mura(this.context.formEl).find('.mura-response-error');\n\n\t\t\tif(errorsSel.length){\n\t\t\t\tvar error=errorsSel.first();\n\t\t\t\tvar check=Mura('[aria-describedby=\"' + error.attr('id') + '\"]');\n\n\t\t\t\tif(check.length){\n\t\t\t\t\tcheck.focus();\n\t\t\t\t} else {\n\t\t\t\t\terror.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\n\t\tcleanProps( props ) {\n\t\t\tvar propsOrdered = {};\n\t\t\tvar propsRet = {};\n\t\t\tvar ct = 100000;\n\n\t\t\tdelete props.isnew;\n\t\t\tdelete props.created;\n\t\t\tdelete props.lastUpdate;\n\t\t\tdelete props.errors;\n\t\t\tdelete props.saveErrors;\n\t\t\tdelete props.instance;\n\t\t\tdelete props.instanceid;\n\t\t\tdelete props.frommuracache;\n\t\t\tdelete props[self.entity + \"id\"];\n\n\t\t\tfor(var i in props) {\n\t\t\t\tif( props[i].orderno != undefined) {\n\t\t\t\t\tpropsOrdered[props[i].orderno] = props[i];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpropsOrdered[ct++] = props[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tObject.keys(propsOrdered)\n\t\t\t\t.sort()\n\t\t\t\t\t.forEach(function(v, i) {\n\t\t\t\t\tpropsRet[v] = propsOrdered[v];\n\t\t\t});\n\n\t\t\treturn propsRet;\n\t\t},\n\n\t\tregisterHelpers() {\n\t\t\tvar self = this;\n\t\t\t\n\t\t\tMura.extend(self.rb,Mura.rb);\n\n\t\t\tMura.Handlebars.registerHelper('eachColRow',function(row, columns, options) {\n\t\t\t\tvar ret = \"\";\n\t\t\t\tfor(var i = 0;i < columns.length;i++) {\n\t\t\t\t\tret = ret + options.fn(row[columns[i].column]);\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('eachProp',function(data, options) {\n\t\t\t\tvar ret = \"\";\n\t\t\t\tvar obj = {};\n\n\t\t\t\tfor(var i in self.properties) {\n\t\t\t\t\tobj.displayName = self.properties[i].displayName;\n\t\t\t\t\tif( self.properties[i].fieldtype == \"one-to-one\" ) {\n\t\t\t\t\t\tobj.displayValue = data[ self.properties[i].cfc ].val;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tobj.displayValue = data[ self.properties[i].column ];\n\n\t\t\t\t\tret = ret + options.fn(obj);\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('eachKey',function(properties, by, options) {\n\t\t\t\tvar ret = \"\";\n\t\t\t\tvar item = \"\";\n\t\t\t\tfor(var i in properties) {\n\t\t\t\t\titem = properties[i];\n\n\t\t\t\t\tif(item.column == by)\n\t\t\t\t\t\titem.selected = \"Selected\";\n\n\t\t\t\t\tif(item.rendertype == 'textfield')\n\t\t\t\t\t\tret = ret + options.fn(item);\n\t\t\t\t}\n\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('eachHour',function(hour, options) {\n\t\t\t\tvar ret = \"\";\n\t\t\t\tvar h = 0;\n\t\t\t\tvar val = \"\";\n\n\t\t\t\tfor(var i = 0;i < 24;i++) {\n\n\t\t\t\t\tif(i == 0 ) {\n\t\t\t\t\t\tval = {label:\"12 AM\",num:i};\n\t\t\t\t\t}\n\t\t\t\t\telse if(i <12 ) {\n\t\t\t\t\t\th = i;\n\t\t\t\t\t\tval = {label:h + \" AM\",num:i};\n\t\t\t\t\t}\n\t\t\t\t\telse if(i == 12 ) {\n\t\t\t\t\t\th = i;\n\t\t\t\t\t\tval = {label:h + \" PM\",num:i};\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\th = i-12;\n\t\t\t\t\t\tval = {label:h + \" PM\",num:i};\n\t\t\t\t\t}\n\n\t\t\t\t\tif(hour == i)\n\t\t\t\t\t\tval.selected = \"selected\";\n\n\t\t\t\t\tret = ret + options.fn(val);\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('eachColButton',function(row, options) {\n\t\t\t\tvar ret = \"\";\n\n\t\t\t\trow.label='View';\n\t\t\t\trow.type='data-view';\n\n\t\t\t\t// only do view if there are more properties than columns\n\t\t\t\tif( Object.keys(self.properties).length > self.columns.length) {\n\t\t\t\t\tret = ret + options.fn(row);\n\t\t\t\t}\n\n\t\t\t\tif( self.context.view == 'edit') {\n\t\t\t\t\trow.label='Edit';\n\t\t\t\t\trow.type='data-edit';\n\n\t\t\t\t\tret = ret + options.fn(row);\n\t\t\t\t}\n\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('eachCheck',function(checks, selected, options) {\n\t\t\t\tvar ret = \"\";\n\n\t\t\t\tfor(var i = 0;i < checks.length;i++) {\n\t\t\t\t\tif( selected.indexOf( checks[i].id ) > -1 )\n\t\t\t\t\t\tchecks[i].isselected = 1;\n\t\t\t\t\telse\n\t\t\t\t\t\tchecks[i].isselected = 0;\n\n\t\t\t\t\tret = ret + options.fn(checks[i]);\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('eachStatic',function(dataset, options) {\n\t\t\t\tvar ret = \"\";\n\n\t\t\t\tfor(var i = 0;i < dataset.datarecordorder.length;i++) {\n\t\t\t\t\tret = ret + options.fn(dataset.datarecords[dataset.datarecordorder[i]]);\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('inputWrapperClass',function() {\n\t\t\t\tvar escapeExpression=Mura.Handlebars.escapeExpression;\n\t\t\t\tvar returnString='mura-control-group';\n\n\t\t\t\tif(self.rb.formfieldwrapperclass){\n\t\t\t\t\treturnString += ' ' + self.rb.formfieldwrapperclass;\n\t\t\t\t}\n\n\t\t\t\tif(this.wrappercssclass){\n\t\t\t\t\treturnString += ' ' + escapeExpression(this.wrappercssclass);\n\t\t\t\t}\n\n\t\t\t\tif(this.isrequired){\n\t\t\t\t\treturnString += ' req';\n\n\t\t\t\t\tif(self.rb.formrequiredwrapperclass){\n\t\t\t\t\t\treturnString += ' ' + self.rb.formrequiredwrapperclass;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn returnString;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('radioLabelClass',function() {\n\t\t\t\treturn self.rb.formradiolabelclass;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('formErrorWrapperClass',function() {\n\t\t\t\tif(self.rb.formerrorwrapperclass){\n\t\t\t\t\treturn 'mura-response-error' + ' ' + self.rb.formerrorwrapperclass;\n\t\t\t\t} else {\n\t\t\t\t\treturn 'mura-response-error';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('formSuccessWrapperClass',function() {\n\t\t\t\tif(self.rb.formresponsewrapperclass){\n\t\t\t\t\treturn 'mura-response-success' + ' ' + self.rb.formresponsewrapperclass;\n\t\t\t\t} else {\n\t\t\t\t\treturn 'mura-response-success';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('formResponseWrapperClass',function() {\n\t\t\t\tif(self.rb.formresponsewrapperclass){\n\t\t\t\t\treturn 'mura-response-success' + ' ' + self.rb.formresponsewrapperclass;\n\t\t\t\t} else {\n\t\t\t\t\treturn 'mura-response-success';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('radioClass',function() {\n\t\t\t\treturn self.rb.formradioclass;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('radioWrapperClass',function() {\n\t\t\t\treturn self.rb.formradiowrapperclass;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('checkboxLabelClass',function() {\n\t\t\t\treturn self.rb.formcheckboxlabelclass;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('checkboxClass',function() {\n\t\t\t\treturn self.rb.formcheckboxclass;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('checkboxWrapperClass',function() {\n\t\t\t\treturn self.rb.formcheckboxwrapperclass;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('formRequiredLabel',function() {\n\t\t\t\treturn self.rb.formrequiredlabel;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('filePlaceholder',function() {\n\t\t\t\tvar escapeExpression=Mura.Handlebars.escapeExpression;\n\n\t\t\t\tif(this.placeholder){\n\t\t\t\t\treturn escapeExpression(this.placeholder);\n\t\t\t\t} else {\n\t\t\t\t\treturn self.rb.formfileplaceholder;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('formClass',function() {\n\t\t\t\tvar escapeExpression=Mura.Handlebars.escapeExpression;\n\t\t\t\tvar returnString='mura-form';\n\n\t\t\t\tif(self.formJSON && self.formJSON.form && self.formJSON.form.formattributes && self.formJSON.form.formattributes.class){\n\t\t\t\t\treturnString += ' ' + escapeExpression(self.formJSON.form.formattributes.class);\n\t\t\t\t}\n\n\t\t\t\treturn returnString;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('textInputTypeValue',function() {\n\t\t\t\tif(typeof Mura.usehtml5dateinput != 'undefined' && Mura.usehtml5dateinput && typeof this.validatetype != 'undefined' && this.validatetype.toLowerCase()=='date'){\n\t\t\t\t\treturn 'date';\n\t\t\t\t} else {\n\t\t\t\t\treturn 'text';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('labelForValue',function() {\n\t\t\t\t//id, class, title, size\n\t\t\t\tvar escapeExpression=Mura.Handlebars.escapeExpression;\n\n\t\t\t\tif(this.cssid){\n\t\t\t\t\treturn escapeExpression(this.cssid);\n\t\t\t\t} else {\n\t\t\t\t\treturn \"field-\" + escapeExpression(this.name) ;\n\t\t\t\t}\n\n\t\t\t\treturn returnString;\n\t\t\t});\n\n\t\t\tMura.Handlebars.registerHelper('commonInputAttributes',function() {\n\t\t\t\t//id, class, title, size\n\t\t\t\tvar escapeExpression=Mura.Handlebars.escapeExpression;\n\n\t\t\t\tif(typeof this.fieldtype != 'undefined' && this.fieldtype.fieldtype=='file'){\n\t\t\t\t\tvar returnString='name=\"' + escapeExpression(self.context.prefix + this.name) + '_attachment\"';\n\t\t\t\t} else {\n\t\t\t\t\tvar returnString='name=\"' + escapeExpression(self.context.prefix + this.name) + '\"';\n\t\t\t\t}\n\n\t\t\t\tif(this.cssid){\n\t\t\t\t\treturnString += ' id=\"' + escapeExpression(this.cssid) + '\"';\n\t\t\t\t} else {\n\t\t\t\t\treturnString += ' id=\"field-' + escapeExpression(self.context.prefix + this.name) + '\"';\n\t\t\t\t}\n\n\t\t\t\treturnString += ' class=\"';\n\n\t\t\t\tif(this.cssclass){\n\t\t\t\t\treturnString += escapeExpression(this.cssclass) + ' ';\n\t\t\t\t}\n\n\t\t\t\tif(this.fieldtype=='radio' || this.fieldtype=='radio_static'){\n\t\t\t\t\treturnString += self.rb.formradioclass;\n\t\t\t\t} else if(this.fieldtype=='checkbox' || this.fieldtype=='checkbox_static'){\n\t\t\t\t\treturnString += self.rb.formcheckboxclass;\n\t\t\t\t} else if(this.fieldtype=='file'){\n\t\t\t\t\treturnString += self.rb.formfileclass;\n\t\t\t\t} else if(this.fieldtype=='textarea'){\n\t\t\t\t\treturnString += self.rb.formtextareaclass;\n\t\t\t\t} else if(this.fieldtype=='dropdown' || this.fieldtype=='dropdown_static'){\n\t\t\t\t\treturnString += self.rb.formselectclass;\n\t\t\t\t} else if(this.fieldtype=='textblock'){\n\t\t\t\t\treturnString += self.rb.formtextblockclass;\n\t\t\t\t} else {\n\t\t\t\t\treturnString += self.rb.forminputclass;\n\t\t\t\t}\n\n\t\t\t\treturnString += '\"';\n\n\t\t\t\tif(this.tooltip){\n\t\t\t\t\treturnString += ' title=\"' + escapeExpression(this.tooltip) + '\"';\n\t\t\t\t}\n\n\t\t\t\tif(this.size){\n\t\t\t\t\treturnString += ' size=\"' + escapeExpression(this.size) + '\"';\n\t\t\t\t}\n\n\t\t\t\tif(this.multiple){\n\t\t\t\t\treturnString += ' multiple';\n\t\t\t\t}\n\n\t\t\t\tif(typeof Mura.usehtml5dateinput != 'undefined' && Mura.usehtml5dateinput && typeof this.validatetype != 'undefined' && this.validatetype.toLowerCase()=='date'){\n\t\t\t\t\treturnString += ' data-date-format=\"' + Mura.dateformat + '\"';\n\t\t\t\t}\n\n\t\t\t\treturn returnString;\n\t\t\t});\n\t\t\t\n\n\t\t\tMura.Handlebars.registerHelper('fileAttributes',function() {\n\t\t\t\t//id, class, title, size\n\t\t\t\tvar escapeExpression=Mura.Handlebars.escapeExpression;\n\t\t\t\tvar returnString='';\n\n\t\t\t\tif(this.cssid){\n\t\t\t\t\treturnString += ' id=\"' + escapeExpression(this.cssid) + '\"';\n\t\t\t\t} else {\n\t\t\t\t\treturnString += ' id=\"field-' + escapeExpression(self.context.prefix + this.name) + '\"';\n\t\t\t\t}\n\n\t\t\t\treturnString += ' class=\"mura-newfile-filename ';\n\n\t\t\t\tif(this.cssclass){\n\t\t\t\t\treturnString += escapeExpression(this.cssclass) + ' ';\n\t\t\t\t}\n\n\t\t\t\treturnString += self.rb.forminputclass;\n\n\t\t\t\treturnString += '\"';\n\n\t\t\t\tif(this.tooltip){\n\t\t\t\t\treturnString += ' title=\"' + escapeExpression(this.tooltip) + '\"';\n\t\t\t\t}\n\n\t\t\t\treturn returnString;\n\t\t\t});\n\t\t}\n\t});\n\n\t//Legacy for early adopter backwords support\n\tMura.DisplayObject.Form=Mura.UI.Form;\n\n}\n\nmodule.exports=attach;","/**\n * Creates a new Mura.UI.Text\n * @name Mura.UI.Hr\n * @class\n * @extends Mura.UI\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\tMura.UI.Hr=Mura.UI.extend(\n\t/** @lends Mura.DisplayObject.Hr.prototype */\n\t{\n\t\trenderClient(){\n\t\t\tMura(this.context.targetEl).html(\"
    \");\n\t\t\tthis.trigger('afterRender');\n\t\t},\n\n\t\trenderServer(){\n\t\t\treturn \"
    \";\n\t\t\n\t\t}\n\t});\n\n\tMura.DisplayObject.Hr=Mura.UI.Hr;\n\n}\n\nmodule.exports=attach;\n","/**\n * Creates a new Mura.UI.Text\n * @name Mura.UI.Image\n * @class\n * @extends Mura.UI\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\tMura.UI.Image=Mura.UI.extend(\n\t/** @lends Mura.DisplayObject.Image.prototype */\n\t{\n\t\trenderClient(){\n\t\t\tMura(this.context.targetEl).html(Mura.templates['image'](this.context));\n\t\t\tthis.trigger('afterRender');\n\t\t},\n\n\t\trenderServer(){\n\t\t\treturn Mura.templates['image'](this.context);\n\t\t\n\t\t}\n\t});\n\n\tMura.DisplayObject.Image=Mura.UI.Image;\n\n}\n\nmodule.exports=attach;\n","\n/**\n * Creates a new Mura.UI instance\n * @name Mura.UI\n * @class\n * @extends Mura.Core\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\tMura.UI=Mura.Core.extend(\n\t/** @lends Mura.UI.prototype */\n\t{\n\t\trb:{},\n\t\tcontext:{},\n\n\t\t/**\n\t\t * onAfterRender - function that fires after render\n\t\t */\n\t\tonAfterRender(){},\n\n\t\t/**\n\t\t * onBeforeRender - function that fires before render\n\t\t */\n\t\tonBeforeRender(){},\n\n\t\t/**\n\t\t * trigger -Trigger an event on the UI object\n\t\t * @param {string} eventName - The name of the event to trigger\n\t\t */\n\t\ttrigger(eventName){\n\t\t\tvar $eventName=eventName.toLowerCase();\n\t\t\tif(typeof this.context.targetEl != 'undefined'){\n\t\t\t\tvar obj=Mura(this.context.targetEl).closest('.mura-object');\n\t\t\t\tif(obj.length && typeof obj.node != 'undefined'){\n\t\t\t\t\tif(typeof this.handlers[$eventName] != 'undefined'){\n\t\t\t\t\t\tvar $handlers=this.handlers[$eventName];\n\t\t\t\t\t\tfor(var i=0;i < $handlers.length;i++){\n\t\t\t\t\t\t\tif(typeof $handlers[i].call == 'undefined'){\n\t\t\t\t\t\t\t\t$handlers[i](this);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$handlers[i].call(this,this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof this[eventName] == 'function'){\n\t\t\t\t\t\tif(typeof this[eventName].call == 'undefined'){\n\t\t\t\t\t\t\tthis[eventName](this);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis[eventName].call(this,this);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar fnName='on' + eventName.substring(0,1).toUpperCase() + eventName.substring(1,eventName.length);\n\t\t\t\t\tif(typeof this[fnName] == 'function'){\n\t\t\t\t\t\tif(typeof this[fnName].call == 'undefined'){\n\t\t\t\t\t\t\tthis[fnName](this);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis[fnName].call(this,this);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * render - Renders the UI object on the client and server\n\t\t */\n\t\trender(){\n\t\t\tMura(this.context.targetEl).html(Mura.templates[context.object](this.context));\n\t\t\tthis.trigger('afterRender');\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * renderClient - Renders the UI object on the client\n\t\t * @example\n\t\t * function(){\n\t\t * Mura(this.context.targetEl).html(Mura.templates[context.object](this.context));\n\t\t * this.trigger('afterRender');\n\t\t * }\n\t\t */\n\t\trenderClient(){\n\t\t\treturn this.render();\n\t\t},\n\n\t\t/**\n\t\t * renderServer - Renders the UI object on the server\n\t\t * @example\n\t\t * function(){\n\t\t * return `Hello: ${this.context.name}`;\n\t\t * }\n\t\t */\n\t\trenderServer(){\n\t\t\treturn '';\n\t\t},\n\n\t\t/**\n\t\t * hydrate\n\t\t */\n\t\thydrate(){\n\n\t\t},\n\n\t\t/**\n\t\t * destroy - Clean up the UI object when detroyed\n\t\t */\n\t\tdestroy(){\n\t\t\t\n\t\t},\n\n\t\t/**\n\t\t * reset - Clean up the UI object when reset\n\t\t */\n\t\treset(self,empty){\n\t\t\t\n\t\t},\n\n\t\t/**\n\t\t * init - Initializes the UI object\n\t\t * @param {object} args - The arguments to initialize the object with\n\t\t */\n\t\tinit(args){\n\t\t\tthis.context=args;\n\t\t\tthis.registerHelpers();\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * registerHelpers\n\t\t */\n\t\tregisterHelpers(){\n\n\t\t}\n\t});\n}\n\nmodule.exports=attach;\n","/**\n * Creates a new Mura.UI.Text\n * @name Mura.UI.Text\n * @class\n * @extends Mura.UI\n * @memberof Mura\n */\n\nfunction attach(Mura){\n\n\tMura.UI.Text=Mura.UI.extend(\n\t/** @lends Mura.DisplayObject.Text.prototype */\n\t{\n\t\trenderClient(){\n\t\t\tthis.context.sourcetype=this.context.sourcetype || 'custom';\n\n\t\t\tif(this.context.sourcetype=='component' && this.context.source){\n\t\t\t\tif(Mura.isUUID(this.context.source)){\n\t\t\t\t\tvar loadbykey='contentid';\n\t\t\t\t} else {\n\t\t\t\t\tvar loadbykey='tile';\n\t\t\t\t}\n\t\t\t\tMura.getEntity('content')\n\t\t\t\t\t.loadBy(loadbykey,this.context.source,{fields:'body',type: 'component',})\n\t\t\t\t\t.then((content)=>{\n\t\t\t\t\t\tif(content.get('body')){\n\t\t\t\t\t\t\tMura(this.context.targetEl).html(this.deserialize(content.get('body')));\n\t\t\t\t\t\t} else if (this.context.label){\n\t\t\t\t\t\t\tMura(this.context.targetEl).html('');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tMura(this.context.targetEl).html('

    ');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.trigger('afterRender');\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tMura(this.context.targetEl).html(Mura.templates['text'](this.context));\n\t\t\t\tthis.trigger('afterRender');\n\t\t\t}\n\t\t},\n\n\t\trenderServer(){\n\t\t\tthis.context.sourcetype=this.context.sourcetype || 'custom';\n\t\t\tif(this.context.sourcetype=='custom' ){\n\t\t\t\treturn this.deserialize(this.context.source);\n\t\t\t} else {\n\t\t\t\treturn '

    ';\n\t\t\t}\n\t\t},\n\t\tdeserialize(source){\n\t\t\treturn source;\n\t\t}\n\t});\n\n\tMura.DisplayObject.Text=Mura.UI.Text;\n}\n\nmodule.exports=attach;\n","/**\n* Creates a new Mura.entities.User\n* @name Mura.entities.User\n* @class\n* @extends Mura.Entity\n* @memberof Mura\n* @param\t{object} properties Object containing values to set into object\n* @return {Mura.entities.User}\n*/\n\nfunction attach(Mura){\n\n\tMura.entities.User = Mura.Entity.extend(\n\t/** @lends Mura.entities.User.prototype */\n\t{\n\t\t/**\n\t\t * isInGroup - Returns if the CURRENT USER is in a group\n\t\t *\n\t\t * @param\t{string} group\tName of group\n\t\t * @param\t{boolean} isPublic\tIf you want to check public or private (system) groups\n\t\t * @return {boolean}\n\t\t */\n\t\tisInGroup(group,siteid,isPublic){\n\t\t\tsiteid=siteid || Mura.siteid;\n\t\t\tvar a=this.get('memberships');\n\t\t\tif(!Array.isArray(a)){\n\t\t\t\tconsole.log('Method design for use with currentuser() only');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif(typeof isPublic !='undefined'){\n\t\t\t\treturn a.indexOf(group + \";\" + siteid + \";\" + isPublic) >= 0;\n\t\t\t} else {\n\t\t\t\treturn a.indexOf(group + \";\" + siteid + \";0\") >= 0 || a.indexOf(group + \";\" + siteid + \";1\") >= 0;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * isSuperUser - Returns if the CURRENT USER is a super user\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSuperUser(){\n\t\t\tvar a=this.get('memberships');\n\t\t\tif(!Array.isArray(a)){\n\t\t\t\tconsole.log('Method design for use with currentuser() only');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn a.indexOf('S2') >= 0;\n\t\t},\n\n\t\t/**\n\t\t * isAdminUser - Returns if the CURRENT USER is a admin user\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAdminUser(siteid){\n\t\t\tsiteid=siteid || Mura.siteid;\n\t\t\tvar a=this.get('memberships');\n\t\t\tif(!Array.isArray(a)){\n\t\t\t\tconsole.log('Method design for use with currentuser() only');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn (this.isSuperUser() || a.indexOf(\"Admin;\" + siteid + \";0\") >= 0);\n\t\t},\n\n\t\t/**\n\t\t * isSystemUser - Returns if the CURRENT USER is a system/adminstrative user\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSystemUser(siteid){\n\t\t\tsiteid=siteid || Mura.siteid;\n\t\t\tvar a=this.get('memberships');\n\t\t\tif(!Array.isArray(a)){\n\t\t\t\tconsole.log('Method design for use with currentuser() only');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn (this.isAdminUser() || a.indexOf(\"S2IsPrivate;\" + siteid ) >= 0);\n\t\t},\n\n\t\t/**\n\t\t * isLoggedIn - Returns if the CURRENT USER is logged in\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisLoggedIn(){\n\t\t\tvar a=this.get('isloggedin');\n\t\t\tif(a===''){\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn a;\n\t\t\t}\n\t\t}\n\t});\n}\n\nmodule.exports=attach;","if(!(typeof process !== 'undefined' && {}.toString.call(process) === '[object process]' || typeof document =='undefined')){\n\trequire(\"./core/polyfill-browser\");\n}\n\nrequire('cross-fetch/polyfill')\n\n/** @namespace */\n\nconst Mura=require(\"./core/factory\")();\n\n\nmodule.exports=Mura;\n\t\n\t","(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(typeof self !== 'undefined' ? self : this);\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.7';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy43JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (global.Symbol && context[global.Symbol.iterator]) {\n var newContext = [];\n var iterator = context[global.Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUMzRCxZQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsWUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUNuRCxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsLlN5bWJvbCAmJiBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbnRleHQgPSBbXTtcbiAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGZvciAobGV0IGl0ID0gaXRlcmF0b3IubmV4dCgpOyAhaXQuZG9uZTsgaXQgPSBpdGVyYXRvci5uZXh0KCkpIHtcbiAgICAgICAgICBuZXdDb250ZXh0LnB1c2goaXQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQgPSBuZXdDb250ZXh0O1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcmlvcktleTtcblxuICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyB0aGUgaXRlcmF0aW9ucyBvbmUgc3RlcCBvdXQgb2Ygc3luYyBzbyB3ZSBjYW4gZGV0ZWN0XG4gICAgICAgICAgLy8gdGhlIGxhc3QgaXRlcmF0aW9uIHdpdGhvdXQgaGF2ZSB0byBzY2FuIHRoZSBvYmplY3QgdHdpY2UgYW5kIGNyZWF0ZVxuICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24ocHJpb3JLZXksIGkgLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJpb3JLZXkgPSBrZXk7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar logger = _interopRequireWildcard(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n logger.log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMxQyxXQUFXOztJQUF2QixNQUFNOztBQUVsQixJQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXRDLFNBQVMsd0JBQXdCLENBQUMsY0FBYyxFQUFFO0FBQ3ZELE1BQUksc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCx3QkFBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUMsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRW5ELE1BQUksd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFbkQsMEJBQXdCLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDOztBQUU5QyxTQUFPO0FBQ0wsY0FBVSxFQUFFO0FBQ1YsZUFBUyxFQUFFLDZDQUNULHdCQUF3QixFQUN4QixjQUFjLENBQUMsc0JBQXNCLENBQ3RDO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsNkJBQTZCO0tBQzNEO0FBQ0QsV0FBTyxFQUFFO0FBQ1AsZUFBUyxFQUFFLDZDQUNULHNCQUFzQixFQUN0QixjQUFjLENBQUMsbUJBQW1CLENBQ25DO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsMEJBQTBCO0tBQ3hEO0dBQ0YsQ0FBQztDQUNIOztBQUVNLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7QUFDeEUsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDaEMsV0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0dBQ2pFLE1BQU07QUFDTCxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDcEU7Q0FDRjs7QUFFRCxTQUFTLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLEVBQUU7QUFDL0QsTUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25FLFdBQU8seUJBQXlCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztHQUNuRTtBQUNELE1BQUkseUJBQXlCLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtBQUN4RCxXQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQztHQUMvQztBQUNELGdDQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdDLFNBQU8sS0FBSyxDQUFDO0NBQ2Q7O0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxZQUFZLEVBQUU7QUFDcEQsTUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUU7QUFDM0Msb0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLFVBQU0sQ0FBQyxHQUFHLENBQ1IsT0FBTyxFQUNQLGlFQUErRCxZQUFZLG9JQUNILG9IQUMyQyxDQUNwSCxDQUFDO0dBQ0g7Q0FDRjs7QUFFTSxTQUFTLHFCQUFxQixHQUFHO0FBQ3RDLFFBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxZQUFZLEVBQUk7QUFDcEQsV0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUN2QyxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJwcm90by1hY2Nlc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXdMb29rdXBPYmplY3QgfSBmcm9tICcuL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VkUHJvcGVydGllcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm90b0FjY2Vzc0NvbnRyb2wocnVudGltZU9wdGlvbnMpIHtcbiAgbGV0IGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0Wydjb25zdHJ1Y3RvciddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lR2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2RlZmluZVNldHRlcl9fJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19sb29rdXBHZXR0ZXJfXyddID0gZmFsc2U7XG5cbiAgbGV0IGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3RbJ19fcHJvdG9fXyddID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0LFxuICAgICAgICBydW50aW1lT3B0aW9ucy5hbGxvd2VkUHJvdG9Qcm9wZXJ0aWVzXG4gICAgICApLFxuICAgICAgZGVmYXVsdFZhbHVlOiBydW50aW1lT3B0aW9ucy5hbGxvd1Byb3RvUHJvcGVydGllc0J5RGVmYXVsdFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgd2hpdGVsaXN0OiBjcmVhdGVOZXdMb29rdXBPYmplY3QoXG4gICAgICAgIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b01ldGhvZHNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9NZXRob2RzQnlEZWZhdWx0XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgcHJvdG9BY2Nlc3NDb250cm9sLCBwcm9wZXJ0eU5hbWUpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLm1ldGhvZHMsIHByb3BlcnR5TmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbC5wcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUsIHByb3BlcnR5TmFtZSkge1xuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUud2hpdGVsaXN0W3Byb3BlcnR5TmFtZV0gPT09IHRydWU7XG4gIH1cbiAgaWYgKHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWU7XG4gIH1cbiAgbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSk7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSkge1xuICBpZiAobG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gdHJ1ZTtcbiAgICBsb2dnZXIubG9nKFxuICAgICAgJ2Vycm9yJyxcbiAgICAgIGBIYW5kbGViYXJzOiBBY2Nlc3MgaGFzIGJlZW4gZGVuaWVkIHRvIHJlc29sdmUgdGhlIHByb3BlcnR5IFwiJHtwcm9wZXJ0eU5hbWV9XCIgYmVjYXVzZSBpdCBpcyBub3QgYW4gXCJvd24gcHJvcGVydHlcIiBvZiBpdHMgcGFyZW50LlxcbmAgK1xuICAgICAgICBgWW91IGNhbiBhZGQgYSBydW50aW1lIG9wdGlvbiB0byBkaXNhYmxlIHRoZSBjaGVjayBvciB0aGlzIHdhcm5pbmc6XFxuYCArXG4gICAgICAgIGBTZWUgaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2FwaS1yZWZlcmVuY2UvcnVudGltZS1vcHRpb25zLmh0bWwjb3B0aW9ucy10by1jb250cm9sLXByb3RvdHlwZS1hY2Nlc3MgZm9yIGRldGFpbHNgXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCkge1xuICBPYmplY3Qua2V5cyhsb2dnZWRQcm9wZXJ0aWVzKS5mb3JFYWNoKHByb3BlcnR5TmFtZSA9PiB7XG4gICAgZGVsZXRlIGxvZ2dlZFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxVQUFVLEVBQUU7O0FBRWxDLE1BQUksSUFBSSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTTtNQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7QUFFaEMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDbEMsVUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7S0FDL0I7QUFDRCxXQUFPLFVBQVUsQ0FBQztHQUNuQixDQUFDO0NBQ0giLCJmaWxlIjoibm8tY29uZmxpY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihIYW5kbGViYXJzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGxldCByb290ID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3csXG4gICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0=\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(579);\n"],"names":["root","factory","exports","module","define","amd","self","Mura","Cache","Core","extend","init","this","cache","getKey","keyName","hashCode","get","keyValue","key","set","name","value","has","getAll","purgeAll","purge","datacache","entities","Content","Entity","hasParent","parentid","find","updateFromDom","regions","Object","keys","forEach","region","items","regionid","children","obj","displayObjectInstances","data","reset","push","cleanModuleProps","local","each","editable","attributeName","html","renderDisplayRegion","buildDisplayRegion","dspRegion","selector","label","isNumeric","length","processDisplayRegion","getRelatedContent","relatedContentSetName","params","Promise","resolve","reject","query","siteid","contenthistid","encodeURIComponent","_requestcontext","request","type","url","getAPIEndpoint","join","success","resp","returnObj","EntityCollection","p","hasOwnProperty","error","attach","login","username","password","getRequestContext","logout","trackEvent","editing","isMXP","trackingVars","instanceVars","ga","trackingvars","gaFound","trackingComplete","attempt","eventData","track","eventCategory","category","eventAction","nonInteraction","hitType","eventValue","eventLabel","object","title","content","document","trigger","gtag","event_category","event_action","non_interaction","hit_type","event_value","event_label","eventName","trackingid","send_to","measurementid","event_name","setTimeout","action","undefined","contentid","objectid","trackingID","trackingMetadata","deepExtend","method","then","response","substring","String","checkComplete","renderFilename","filename","declareEntity","entityConfig","undeclareEntity","entityName","deleteSchema","openGate","getEntity","entityname","getFeed","getCurrentUser","currentUser","findText","text","findQuery","evalScripts","el","parseHTML","scripts","ret","childNodes","i","nodeName","toLowerCase","nodeType","src","parentNode","removeChild","$script","evalScript","loader","load","remove","textContent","innerHTML","head","getElementsByTagName","documentElement","script","createElement","insertBefore","firstChild","toUpperCase","changeElementType","to","newEl","a","attributes","n","setAttribute","hasChildNodes","appendChild","replaceChild","holdingReady","holdingReadyAltered","holdingQueueReleased","holdingQueue","holdingPreInitQueue","initReadyQueue","releaseReadyQueue","fn","readyInternal","holdReady","hold","ready","readyState","addEventListener","config","post","put","patch","deleteReq","delete","ajax","customfetch","resource","options","fetch","normalizeRequestConfig","progress","onProgress","onUploadProgress","download","onDownload","onDownloadProgress","abort","onAbort","onSuccess","onError","headers","next","transformedHeaders","entries","maxQueryStringLength","endpoint","mode","renderMode","req","res","originalSiteid","h","getMode","getRenderMode","RequestContext","getDefaultRequestContext","generateOAuthToken","grant_type","client_id","client_secret","replace","select","on","event","call","eventDetail","bubbles","createEvent","isEmptyObject","initCustomEvent","eventClass","initEvent","synthetic","dispatchEvent","fireEvent","e","console","warn","off","removeEventListener","parseSelection","Array","isArray","selection","nodeListToArray","querySelectorAll","StaticNodeList","NodeList","HTMLCollection","filter","nodeList","arr","unshift","DOMSelection","escapeHTML","str","div","createTextNode","_escapeHTML","unescapeHTML","escapedStr","child","nodeValue","tmp","implementation","createHTMLDocument","body","parseStringAsTemplate","stringValue","errors","parsedString","doLoop","finder","exec","template","eval","log","getData","prototype","attr","test","substr","parseString","getProps","val","Number","parseFloat","buildItemHeader","header","class","JSON","stringify","buildRegionSectionHeader","section","perm","inherited","footer","lcaseVal","numVal","isNaN","testVal","parse","getAttributes","formToObject","form","field","s","len","elements","disabled","j","selected","checked","out","arguments","slice","createCookie","days","domain","date","Date","setTime","getTime","expires","toGMTString","location","protocol","secure","cookie","readCookie","nameEQ","ca","split","c","charAt","indexOf","unescape","eraseCookie","$escape","escape","RegExp","$unescape","addLoadEvent","func","oldonload","onload","noSpam","user","locationstring","isUUID","createUUID","Math","floor","random","setHTMLEditor","htmlEditorOnComplete","editorInstance","resetDirty","CKEDITOR","instances","loadjs","corepath","customConfig","htmlEditorConfig","instance","conf","getAttribute","height","width","destroy","toolbar","commandKeyActive","keyCmdCheck","which","preventDefault","editroute","inEditRoute","pathname","startsWith","MuraInlineEditor","getQueryStringParams","search","editlayout","previewid","href","display","ru","lu","loginURL","loginurl","returnURL","returnurl","isInteger","createDate","valueArray","mon","dt","yr","getMonth","dateToString","getDate","getFullYear","stripCharsInBag","bag","returnString","daysInFebruary","year","DaysArray","generateDateFormat","dtStr","fldName","formatArray","dtformat","dtch","isDate","daysInMonth","dtArray","strMonth","strDay","strYear","strYr","month","parseInt","day","minYear","maxYear","isEmail","initShadowBox","window","context","Shadowbox","validateForm","frm","customaction","getValidationIsRequired","theField","getValidationMessage","defaultMessage","getValidationFieldName","getValidationType","hasValidationMatchField","getValidationMatchField","hasValidationRegex","getValidationRegex","theForm","validationType","validations","properties","frmInputs","rules","$customaction","f","style","required","message","dataType","regex","eq","v","frmTextareas","frmSelects","version","submit","msg","alert","err","setLowerCaseKeys","isScrolledIntoView","innerHeight","elemTop","getBoundingClientRect","top","elemBottom","bottom","ljs","layoutmanagertoolbar","processMarkup","scope","processors","closest","parent","processDisplayObject","queueobjects","fileref","reCAPTCHALanguage","notready","MuraCheckForReCaptcha","grecaptcha","render","resizeEditableObject","handleObjectClick","checkforImageCroppers","muraInlineEditor","node","addEventHandler","submitForm","FormData","checkdata","filterUnwantedParams","urlparams","nocache","k","append","postconfig","handleResponse","reCaptchaCheck","eCaptchaCheck","prevInnerHTML","prevData","preloadermarkup","firstToUpperCase","firstToLowerCase","dataTargets","removeAttr","item","hasAttr","inited","resetAsyncObject","empty","processAsyncObject","usePreloaderMarkup","unwanted","destroyDisplayObjects","property","destroyModules","wireUpObject","trim","properNameCheck","DisplayObject","async","rendertemplate","templates","prepend","meta","targetEl","renderClient","calculateDisplayObjectStyles","hide","show","layoutmanager","hasClass","is","addClass","setAnchorSaveChecks","hover","initDraggableObject_hoverin","initDraggableObject_hoverout","initEditableObject","objectParams","initDraggableObject","lcaseObject","objectHasConfigurator","objectHasEditor","initPinnedObject","entity","conditionalApply","loadBy","bean","permissions","hasData","redirect","reload","apiEndpoint","xhrFields","withCredentials","crossDomain","queue","rerender","resolveFn","rendered","Module","instanceid","hydrationData","hydrate","requestType","requestData","postCheck","processModule","hashparams","handleHashChange","hash","nextnid","extendClass","baseClass","subClass","muraObject","apply","create","constructor","handlers","reopen","reopenClass","handler","splice","queryString","r","d","decodeURIComponent","q","getHREFParams","inArray","elem","array","max","getStyleSheet","id","isInNode","getStyleSheetPlaceHolder","sheet","applyModuleCustomCSS","stylesupport","css","styles","styleParts","subSelector","subStyle","insertRule","cssRules","deleteRule","idx","rule","targets","metawrapper","normalizeModuleClassesAndIds","cssclass","cssid","metacssclass","metacssid","contentcssclass","contentcssid","objectspacing","metaspacing","contentspacing","$class","recordModuleClassesAndIds","recorded","recordModuleStyles","styleTargets","getModuleStyleTargets","applyModuleStyles","group","acummulator","target","dyncss","backgroundImage","bgArray","hasLayeredBg","backgroundColor","backgroundimage","backgroundcolor","handleBackround","styleMap","tojs","tocss","selectors","color","selectorArray","handleTextColor","getBreakpoint","breakpoints","getBreakpoints","clientWidth","xl","lg","md","sm","dynamic","sidebar","objTargets","elTarget","pop","setRequestHeader","headerName","requestHeaders","getRequestHeader","getRequestHeaders","strlen","charCodeAt","process","toString","throttle","interval","timeout","args","later","debounce","clearTimeout","apiendpoint","setAPIEndpoint","setMode","setRenderMode","startUserStateListener","userStateListenerInterval","stopUserStateListener","pollUserState","invoke","state","deInit","formdata","windowResponsiveModules","windowResizeID","existingEndpoint","rootpath","assetpath","siteassetpath","fileassetpath","indexfileinapi","pluginspath","jslib","mobileformat","queueObjects","rootdocumentdomain","preloaderMarkup","rb","dtExample","dtexample","dtCh","dtFormat","dtLocale","dtlocale","useHTML5DateInput","usehtml5dateinput","cookieConsentEnabled","cookieconsentenabled","initialProcessMarkupSelector","initForDataOnly","processmarkup","displayregions","dateformat","queuedMuraCmds","concat","queuedMuraPreInitCmds","cmd","hArray","source","scrollTo","scrollTop","inAdmin","markupInitted","appendDisplayObject","statsid","breakpoint","preInit","feeds","getBean","recordEvent","lmv","homeid","cloning","origSelector","supportPassive","supportsPassive","opts","defineProperty","index","map","reduce","initialValue","accumulator","EventListenerOptions","passive","handlerIn","handlerOut","click","change","parentElement","elClone","cloneNode","unbind","bind","filterFn","matchesSelector","result","first","last","path","pathes","realNode","localName","siblings","silbings","insertAdjacentHTML","transient","preserveid","watcher","appendModule","insertDisplayObjectAfter","after","insertModuleAfter","insertDisplayObjectBefore","before","insertModuleBefore","prependDisplayObject","prependModule","nextSibling","redraw","elm","detach","detached","className","classList","add","removeClass","toggleClass","toggle","classes","existingIndex","htmlString","ruleName","getComputedStyle","windowResponse","objBreakpoint","b","fullsize","applyObjectClassesAndId","styleSupport","objectstyles","margin","marginLeft","marginRight","marginTop","marginBottom","metaWrapper","metastyles","left","right","applyMetaClassesAndId","applyContentClassesAndId","applyMarginWidthOffset","pinUIToolsToTopLeft","textString","hasAttribute","offsetParent","outerHeight","withMargin","offsetHeight","scrollHeight","clientHeight","ceil","innerWidth","scrollWidth","offsetWidth","scrolWidth","outerWidth","pageYOffset","offset","box","clientTop","pageXOffset","scrollLeft","clientLeft","removeAttribute","tagName","prop","fadeOut","opacity","fade","requestAnimationFrame","fadeIn","slideToggle","focus","makeEditableAttr","validation","outerClass","innerClass","markup","dspObject","requestcontext","isnew","isdeleted","cachePut","setRequestContext","invokeWithCSRF","csrf_token","csrf_token_expires","exists","propertyName","defaultValue","links","propertyValue","cachedValue","includeHomePage","showNavOnly","showExcludeSearch","collection","validate","fields","hasErrors","getErrors","save","temp","cachePurge","sort","newProps","reverse","require","m","mura","initMura","Feed","propIndex","contentPoolID","cacheKey","cachedWithin","purgeCache","feedID","where","andProp","orProp","isEQ","criteria","isNEQ","isLT","isLTE","isGT","isGTE","isIn","isNotIn","hasAll","hasAny","containsValue","contains","notContainsValue","notContains","beginsWith","notBeginsWith","endsWith","notEndsWith","openGrouping","andOpenGrouping","orOpenGrouping","closeGrouping","direction","itemsPerPage","pageIndex","maxItems","distinct","aggregate","liveOnly","groupBy","expand","expandDepth","ids","pointInTime","applyPermFilter","imageSizes","useCategoryIntersect","includeHomepage","relatedEntity","facet","getQuery","rcEndpoint","isA","D","scriptTag","preloadsupport","w","relList","supports","checkLoaded","match","urlParse","parts","u","appendElmt","attrs","cb","rel","loadCB","media","onloadcssdefined","sheets","styleSheets","resolvedHref","as","aliases","l","loadcss","loadimport","loaded","partToAttrs","part","finalAttrs","onerror","fallback","currentTarget","ocb","argv","argc","Function","addAliases","funcName","ElementPrototype","Element","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","nodes","loadCSS","rp","relpreload","support","bindMediaToggle","link","finalMedia","enableStylesheet","attachEvent","poly","run","setInterval","clearInterval","image","runtimeStyle","background","currentStyle","requestObject","responseObject","_request","Request","execute","normalizeRequest","isfetch","normalizedConfig","inNode","purgecache","sourceParams","qa","qs","httpmethod","nodeRequest","browserRequest","lcaseItem","parsedConfig","parseRequestConfig","debug","existingCookies","incomingHeaders","newSetCookies","setCookieAccumulator","existingSetCookie","getHeader","setHeader","tempCookie","cookieMap","setMap","nodeProxyCookies","proxiedResponse","headersSent","lcaseKey","statusCode","status","nodeProxyHeaders","catch","Error","statusText","xhrRequest","XMLHttpRequest","onreadystatechange","responseText","open","send","serializeParams","credentials","isJSONBody","parsedBody","sendJSON","sendFormData","assign","fromArray","toArray","CSSStyleDeclaration","Handlebars","container","depth0","helpers","partials","helper","lookupProperty","escapeExpression","hooks","helperMissing","nullContext","blockParams","depths","stack1","alias1","alias2","alias3","alias4","lambda","program","noop","alias5","attachHTemplate","templatesLoaded","noConflict","labeltag","alt","caption","imagelink","fit","imagelinktarget","targetString","UI","Collection","defaultLayout","layoutInstance","getLayoutInstance","layout","getCollection","feed","nextn","itemsperpage","maxitems","expanddepth","rawcollection","sourcetype","sortby","renderServer","Container","nestedObjects","Embed","Form","ormform","formJSON","columns","currentpage","filters","datasets","sortfield","sortdir","inlineerrors","renderqueue","formInit","responsemessage","generalwrapperclass","generalwrapperbodyclass","formwrapperclass","formwrapperbodyclass","formfieldwrapperclass","formfieldlabelclass","formerrorwrapperclass","formresponsewrapperclass","formgeneralcontrolclass","forminputclass","formselectclass","formtextareaclass","formfileclass","formtextblockclass","formcheckboxclass","formcheckboxlabelclass","formcheckboxwrapperclass","formradioclass","formradiowrapperclass","formradiolabelclass","formbuttonwrapperclass","formbuttoninnerclass","formbuttonclass","formrequiredwrapperclass","formbuttonsubmitclass","formbuttonsubmitlabel","formbuttonsubmitwaitlabel","formbuttonnextclass","formbuttonnextlabel","formbuttonbackclass","formbuttonbacklabel","formbuttoncancelclass","formbuttoncancellabel","formrequiredlabel","formfileplaceholder","ident","formEl","view","getForm","getList","getTemplates","loadForm","loadList","getPageFieldList","page","pages","renderField","fieldtype","datasetid","isormform","dataset","setDefault","nested_context","formid","paging","prefix","master","tempContext","nestedForm","getElementById","ds","datarecords","sourceid","isselected","x","renderData","itemid","datarecordorder","renderForm","initForm","ishuman","renderPaging","submitlabel","formattributes","backlink","submitHandler","getTableData","formNavHandler","setDataValues","keepGoing","onPageSubmit","button","showErrors","validateform","def","fileSelectorHandler","fileChangeHandler","inputEl","fnEl","files","fImg","fUrl","URL","createObjectURL","multi","valid","currentPage","cascade","attachments","entityid","fieldorder","DATARECORDS","DATARECORDORDER","Muraormentities","onSubmit","isNew","rawdata","saveform","tokenArgs","responsechart","polllist","frmErrors","fieldKeys","fieldKey","errorTarget","check","errorsSel","cleanProps","props","propsOrdered","propsRet","ct","created","lastUpdate","saveErrors","frommuracache","orderno","registerHelpers","registerHelper","row","column","displayName","displayValue","cfc","by","rendertype","hour","num","checks","wrappercssclass","isrequired","placeholder","validatetype","tooltip","size","multiple","Hr","Image","onAfterRender","onBeforeRender","$eventName","$handlers","fnName","Text","loadbykey","deserialize","User","isInGroup","isPublic","isSuperUser","isAdminUser","isSystemUser","isLoggedIn","Symbol","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","TypeError","normalizeValue","iteratorFor","iterator","shift","done","Headers","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","Uint8Array","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","fromCharCode","readArrayBufferAsText","formData","decode","json","oldValue","callback","thisArg","values","methods","input","upcased","signal","referrer","bytes","Response","bodyInit","ok","clone","redirectStatuses","RangeError","DOMException","stack","aborted","xhr","abortXhr","rawHeaders","getAllResponseHeaders","line","responseURL","ontimeout","onabort","responseType","polyfill","_interopRequireDefault","__esModule","_interopRequireWildcard","newObj","base","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","hb","HandlebarsEnvironment","SafeString","Exception","VM","spec","inst","_utils","_exception2","_helpers","_decorators","_logger2","_internalProtoAccess","VERSION","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","REVISION_CHANGES","objectType","decorators","registerDefaultHelpers","registerDefaultDecorators","logger","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","resetLoggedPropertyAccesses","resetLoggedProperties","createFrame","_decoratorsInline2","original","errorProps","loc","endLineNumber","endColumn","start","end","captureStackTrace","lineNumber","enumerable","nop","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","inverse","contextPath","appendContextPath","priorKey","execIteration","isFunction","g","newContext","it","conditional","includeZero","isEmpty","level","createNewLookupObject","_len","sources","_key","createProtoAccessControl","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","whitelist","_createNewLookupObject","allowedProtoProperties","allowProtoPropertiesByDefault","allowedProtoMethods","allowProtoMethodsByDefault","resultIsAllowed","protoAccessControl","protoAccessControlForType","loggedProperties","logUnexpecedPropertyAccessOnce","checkWhiteList","wrapHelper","transformOptionsFn","methodMap","lookupLevel","levelMap","$Handlebars","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","main","decorator","main_d","compiler","templateWasPrecompiledWithCompilerV7","strict","lookup","current","invokePartial","resolvePartial","extendedOptions","compile","compilerOptions","indent","lines","programs","declaredBlockParams","programWrapper","wrapProgram","depth","_parent","mergeIfNeeded","param","common","seal","_setup","useData","initData","useBlockParams","useDepths","executeDecorators","isTop","mergedHelpers","_internalWrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","keepHelperInHelpers","allowCallsToHelperMissing","_child","currentPartialBlock","partialBlock","prog","currentDepths","string","toHTML","possible","badChars","escapeChar","frame","chr","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","globalThis","__webpack_exports__"],"sourceRoot":""}