{"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\n\t\tif(typeof Mura.keycmdcheck != 'undefined' && !Mura.keycmdcheck){\n\t\t\treturn;\n\t\t}\n\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\n\t\t\t\t\tvar lu=Mura.loginurl || Mura.loginURL || '?display=login';\n\t\t\t\t\tvar ru=Mura.returnURL || Mura.returnurl || location.href;\n\t\t\t\t\t\n\t\t\t\t\tif(params.display != 'login'){\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","_typeof","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","_ref","_ref2","_slicedToArray","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","keycmdcheck","which","preventDefault","editroute","inEditRoute","pathname","startsWith","MuraInlineEditor","getQueryStringParams","search","editlayout","previewid","href","lu","loginurl","loginURL","ru","returnURL","returnurl","display","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","_isNumeric","_x","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","_width","_x2","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","_Mura$Core$extend","Feed","_defineProperty","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","media","loadCB","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","_this","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","_this2","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","_unused","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":""}