{"version":3,"sources":["jsviews.js"],"names":["factory","global","eval","$","jQuery","define","amd","exports","module","getDerivedMethod","baseMethod","method","ret","tag","this","prevBase","base","apply","arguments","getMethod","$isFunction","_d","noop","tagHandlersFromProps","tagCtx","prop","props","rHasHandlers","test","retVal","val","dbgBreak","e","baseApply","dbgMode","debugMode","$viewsSettings","_dbgMode","JsViewsError","message","name","link","$extend","target","source","$viewsDelimiters","openChars","closeChars","delimOpenChar0","charAt","delimOpenChar1","delimCloseChar0","delimCloseChar1","linkChar","rTag","$sub","RegExp","rTmplString","getView","inner","type","undefined","views","i","l","found","view","root","_","useKey","get","length","parent","getNestedIndex","index","getIndex","getHelper","helper","wrapped","ctx","linkCtx","res","$helpers","_wrp","getTemplate","tmpl","fn","getRsc","$templates","convertVal","converter","onError","value","boundTag","bnds","args","data","$views","_tg","inline","bnd","unlinked","tagName","cvt","flow","extendCtx","_er","cvtArgs","convert","onRender","convertArgs","error","slice","depends","getDeps","getResource","resourceType","itemName","store","renderTag","parentView","tagCtxs","isUpdate","topView","tagDef","template","tags","attr","parentTag","itemRet","tagCtxCtx","content","callInit","mapDef","thisMap","initialTmpl","tagDataMap","parentTmpl","_is","tmpls","render","renderContent","getTmpl","_ctr","init","dataMap","arrVws","dataBoundOnly","map","parents","parentTags","rendering","src","unmap","tgt","noVws","HTML","$converters","html","View","context","key","contentTmpl","parentView_","self_","self","isArray","id","viewId","linked","indexStr","push","splice","compileChildResources","storeName","resources","resourceName","resource","settings","compile","onStore","jsvStores","compileTag","Tag","baseTag","compiledDef","$tags","prototype","constructor","_parentTmpl","compileTmpl","options","lookupTemplate","currentName","nodeType","elem","document","getElementById","find","innerHTML","getAttribute","tmplAttr","jsvTmpl","tmplName","setAttribute","compiledTmpl","tmplOrMarkup","markup","tmplObject","tmplFn","replace","rEscapeQuotes","$render","Map","getTgt","baseMap","htmlTag","wrapMap","links","rFirstElem","exec","toLowerCase","div","trim","registerStore","storeSettings","theStore","item","thisStore","OBJECT","storeNames","noIteration","isTopRenderCall","prevData","prevIndex","result","isRenderCall","useViews","renderWithViews","$isArray","setItemVar","newCtx","itemVar","newView","childView","itemResult","swapContent","outerOnRender","syntaxError","helpers","it","fallback","Err","isLinkExpr","convertBack","hasElse","pushprecedingContent","shift","loc","substr","rNewLine","blockTagCheck","block","parseTag","all","bind","colon","codeTag","params","slash","closeBlock","pathBindings","ctxProps","paramsArgs","paramsProps","paramsCtxProps","useTrigger","allowCode","rUnescapeQuotes","rTestElseIf","current","substring","stack","pop","parseParams","rBuildHash","onerror","isCtx","keyToken","keyValue","arg","param","hasHandlers","newNode","parsedParam","astTop","buildCode","setPaths","pathsArr","paths","deps","concat","paramStructure","parts","parseTokens","lftPrn0","lftPrn","bound","path","operator","err","eq","path2","prn","comma","lftPrn2","apos","quot","rtPrn","rtPrnDot","prn2","space","full","parsePath","allPath","not","object","viewProperty","pathTokens","leafToken","subPath","bindings","binds","named","bindto","_jsvto","bndCtx","bd","theOb","_jsv","sb","pathStart","parenDepth","expr","exprFn","newOb","aposed","quoted","boundName","bndStack","prm","tmplLinks","indexOf","paramIndex","split","join","rPath","fnCall","rParams","ast","node","hasTag","hasEncoder","getsVal","hasCnvt","useCnvt","tmplBindings","boundOnErrStart","boundOnErrEnd","tagRender","nestedTmpls","nestedTmpl","tagAndElses","nextIsElse","oldCode","isElse","isGetVal","tagCtxFn","tagStart","trigger","tmplBindingKey","templates","converters","code","tmplOptions","debug","Function","_tag","parentContext","getCharEntity","ch","charEntities","charCodeAt","getTargetProps","toJSON","$fnRender","tmplElem","jquery","selector","call","htmlEncode","text","rIsHtml","rHtmlEncode","elemChangeHandler","ev","sourceValue","setter","cancel","fromAttr","cvtBack","cnvtName","$source","binding","oldLinkCtx","onBeforeChange","onAfterChange","to","eventArgs","exprOb","_jsvBnd","rSplitBindings","bindingStore","hlp","onBeforeChangeStr","onAfterChangeStr","defaultAttr","fnSetters","change","oldValue","_val","_ctxCb","chging","$observable","setProperty","propertyChangeHandler","linkFn","noUpdate","forceUpdate","hasError","parentElem","parentNode","onEvent","_toLk","getTargetVal","onUpdate","mergeCtxs","NONE","onBeforeLink","callAfterLink","observeAndBind","_cnvt","TRUE","addLinkMethods","updateContent","_noUpd","currentValue","css","$target","style","parseInt","CHECKBOX","CHECKED","RADIO","setDefer","_df","deferAttr","prevNode","nextNode","promise","nodesToRemove","useProp","tokens","openIndex","closeIndex","testElem","nodeName","cStyle","renders","targetVal","_elCnt","_prv","_nxt","currentStyle","getComputedStyle","display","_jsvd","displayStyles","createElement","body","appendChild","removeChild","nodes","transferViewTokens","_tgId","disposeTokens","previousSibling","lastChild","remove","lazyLink","empty","children","textContent","innerText","arrayChangeHandler","action","items","addViews","removeViews","refresh","setArrayChangeLink","handler","arrayBinding","bndArr","off","arrayChangeStr","on","linkGetVal","merge","contentEditable","from","renderAndLink","linkToNode","prevView","bindId","elCnt","removeViewBinding","nextSibling","addBindingMarkers","end","bindingKey","viewStore","linkedElem","exprFnDeps","cvtBk","_bndId","_hdl","_depends","_apply","bindTo","onAfterBind","jsvAttrStr","radio","RADIOINPUT","_jsvLkEl","tmplLink","$link","tmplOrLinkExpr","activeBody","elementChangeStr","k","vwInfos","placeholderParent","targetEl","topLevelCall","replaceMode","$view","addDataBinding","cleanData","lnk","viewInfos","rOpenViewMarkers","viewLink","outerData","validateOnly","convertMarkers","preceding","selfClose","closeTag","spaceBefore","boundId","spaceAfter","tag1","tag2","closeTag2","spaceAfterClose","selfClose2","endOpenTag","errorMsg","bndId","endOfElCnt","inTag","isVoid","tagStack","validate","voidElems","prevElCnt","elContent","defer","ids","openScript","closeScript","deferStack","unshift","badParent","processViewInfos","targetParent","deferPath","deferChar","bindChar","onAftCr","deep","addedBindEls","_tkns","len","vwInfo","j","open","onArrayChange","removeSubStr","onAfterCreate","bindEls","getViewInfos","level","tagDepth","dataLink","wrap","linkViewsSel","elems","qsa","querySelectorAll","prevNodes","markerNodeInfo","contains","isLink","rViewMarkers","skip","processInfos","$viewsLinkAttr","rOpenTagMarkers","unmarkPrevOrNextNode","resolve","prevIds","linkInfo","token","nextView","depth","fragment","copiedNode","firstTag","wrapper","thisId","onAfterCreateStr","Deferred","noValidate","markPrevOrNextNode","namespaceURI","noDomLevel0","rConvertMarkers","safeFragment","createDocumentFragment","firstChild","insertBefore","setTimeout","linkMarkup","currentView","boundTagId","tagExpr","rTagIndex","linkExpressions","bindDataLinkTarget","normalizeLinkTag","rTagDatalink","lastIndex","isLk","noArray","getContextCb","str","SCRIPT","isVal","rBinding","getInfos","close","elPath","infos","rMarkerTokens","removeAttribute","marker","twoway","$linkedElem","radioButtons","linkedTag","oldTrig","newTrig","onAfterLink","targetTag","noVal","setSize","height","width","addClass","_jsvTr","bindElChange","asyncElemChangeHandler","$elem","trig","onoff","pathIndex","lastPath","bindtoOb","newCtxs","newTagCtx","_ths","clean","elemArray","linkedElemTag","objId","obsId","cbId","propertyChangeStr","onDispose","_cbBnds","$unlink","each","innerView","getElementsByTagName","rViewPath","inputAttrib","viewOrTagChar","viewOrTag","precedingLength","emptyView","vwItem","rOpenMarkers","tagOrView","isTag","contents","select","filtered","filter","add","withMarkers","prevIsFirstNode","lastSibling","childTags","disposed","update","domChange","hasListener","hasData","_data","events","domChangeNotification","triggerHandler","dataItems","viewsCount","itemsCount","keepNodes","removeView","viewToRemove","observeProps","insert","observeMappedProps","removeProperty","shallowArrayFilter","setGlobals","jsvStoreName","$observe","versionNumber","rAttrEncode","&","<",">","\u0000","'","\"","`","jsr","jsrender","jsrToJq","jsviews","jsv","sub","parse","extend","syntaxErr","_err","Error","observable","renderFile","__express","isFunction","ob","Array","obj","_jq","jq","delimiters","if","done","selected","for","finalElse","include","*",":*","dbg","url","encodeURI","observe","$eventSpecial","event","special","$expando","expando","PARSEINT","rNotWhite","propChng","arrChng","cbBindingsStore","observeStr","observeObjKey","observeCbKey","observeInnerCbKey","$hasData","$data","getCbKey","cb","_cId","ObjectObservable","ArrayObservable","wrapArray","resolvePathObjects","nextObj","out","removeCbBindings","cbBindings","cbBindingsId","onObservableChange","isOb","allowArray","parentObs","observeAll","array","_path","observe_apply","ns","$observeAll","namespace","unobserve","$unobserveAll","objMap","observeArrayItems","arr","unobs","newAllPath","filterAndObserveAll","nestedArray","newObject","newParentObs","_fltr","nextParentObs","updatedTgt","wrappedCb","oldItems","isObject","obId","notRemoving","un","shallowFilter","$unobserve","innerObserve","observeOnOff","pathStr","isArrayBinding","evData","obIdExpando","boundObOrArr","prntObs","allPth","initialNs","el","callback","fullPath","inArray","getInnerCb","origRt","contextCb","newObj","bindArray","unbind","relPath","prevObj","prevAllPath","p","dep","innerCb","initNsArr","initNsArrLen","lastArg","_inId","match","origRoot","set","Object","unobserveAll","nonStrict","pair","_setProperty","leaf","getter","removeProp","property","Date","_trigger","_insert","oldLength","numToRemove","_remove","move","oldIndex","newIndex","numToMove","_move","newItems","_refresh","$_data","handleObj","unbound","changing","obsSrc","obs","srcFlt","obsTgt","obt","tgtFlt","_def","bindElsSel","input","valueBinding","isCleanCall","oldCleanData","oldJsvDelimiters","querySelector","ol","ul","table","tbody","thead","tfoot","tr","colgroup","dl","optgroup","svg","svg_ns","br","img","hr","area","col","meta","command","embed","keygen","track","wbr","requiresStr","delimChars","regularExpression","toggle","elemType","label","contextOb","activeElem","_evs","_sel","_hlr","arrayView","targetLength","arrHandler","arrBinding","arrayBindings","_ars","tagCt","tci","prevArg","different","getInnerView","nd","isVl","unlink","oldFn","option","legend","td","support","htmlSerialize","linkAttr","textarea","jsrDbgMode","caption","th"],"mappings":"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","file":"jsviews.min.js","sourcesContent":["/*! jsviews.js v0.9.71 (Beta) single-file version: http://jsviews.com/ */\n/*! includes JsRender, JsObservable and JsViews - see: http://jsviews.com/#download */\n\n/* Interactive data-driven views using JsRender templates */\n\n//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< JsRender >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n/* JsRender:\n * See http://jsviews.com/#jsrender and http://github.com/BorisMoore/jsrender\n * Copyright 2015, Boris Moore\n * Released under the MIT License.\n */\n\n//jshint -W018, -W041\n\n(function(factory) {\n\t// global var is the this object, which is window when running in the usual browser environment\n\tvar global = (0, eval)('this'), // jshint ignore:line\n\t\t$ = global.jQuery;\n\n\tif (typeof define === \"function\" && define.amd) { // AMD script loader, e.g. RequireJS\n\t\tdefine([\"jquery\"], factory);\n\t} else if (typeof exports === \"object\") { // CommonJS e.g. Browserify\n\t\tmodule.exports = $\n\t\t\t? factory($)\n\t\t\t: function($) { // If no global jQuery, take jQuery passed as parameter: require(\"jsviews\")(jQuery)\n\t\t\t\treturn factory($);\n\t\t\t};\n\t} else { // Browser using plain ',\n\topenScript = ')|<\\/(\\w+)>|)(\\s*)([#\\/]\\d+(?:_|(\\^)))`(\\s*)(<\\w+(?=[\\s\\/>]))?|\\s*(?:(<\\w+(?=[\\s\\/>]))|<\\/(\\w+)>(\\s*)|(\\/>)\\s*|(>)|$)/g,\n\trOpenViewMarkers = /(#)()(\\d+)(_)/g,\n\trOpenMarkers = /(#)()(\\d+)([_^])/g,\n\trViewMarkers = /(?:(#)|(\\/))(\\d+)(_)/g,\n\trOpenTagMarkers = /(#)()(\\d+)(\\^)/g,\n\trMarkerTokens = /(?:(#)|(\\/))(\\d+)([_^])([-+@\\d]+)?/g,\n\trSplitBindings = /&(\\d+)\\+?/g,\n\tgetComputedStyle = global.getComputedStyle;\n\n$observable = $.observable;\n\nif (!$observable) {\n\t// JsObservable is not loaded.\n\tthrow requiresStr + \"JsObservable\"; // jquery.observable.js must be loaded before JsViews\n}\n\n$observe = $observable.observe;\n\n//========================== Top-level functions ==========================\n\n//===============\n// Event handlers\n//===============\n\nfunction elemChangeHandler(ev, params, sourceValue) {\n\tvar setter, cancel, fromAttr, linkCtx, cvtBack, cnvtName, target, $source, view, binding, oldLinkCtx, onBeforeChange, onAfterChange, tag, to, eventArgs, exprOb,\n\t\tsource = ev.target,\n\t\tbindings = source._jsvBnd;\n\n\t// _jsvBnd is a string with the syntax: \"&bindingId1&bindingId2\"\n\tif (bindings) {\n\t\twhile (binding = rSplitBindings.exec(bindings)) {\n\t\t\tif (binding = bindingStore[binding[1]]) {\n\t\t\t\tif (to = binding.to) {\n\t\t\t\t\t// The binding has a 'to' field, which is of the form [[targetObject, toPath], cvtBack]\n\t\t\t\t\tlinkCtx = binding.linkCtx;\n\t\t\t\t\tview = linkCtx.view;\n\t\t\t\t\ttag = linkCtx.tag;\n\t\t\t\t\t$source = $(source);\n\t\t\t\t\tonBeforeChange = view.hlp(onBeforeChangeStr); // TODO Can we optimize this and other instances of same?\n\t\t\t\t\tonAfterChange = view.hlp(onAfterChangeStr); // TODO Can we optimize this and other instances of same\n\t\t\t\t\tfromAttr = defaultAttr(source);\n\t\t\t\t\tsetter = fnSetters[fromAttr];\n\t\t\t\t\tif (sourceValue === undefined) {\n\t\t\t\t\t\tsourceValue = $isFunction(fromAttr)\n\t\t\t\t\t\t\t? fromAttr(source)\n\t\t\t\t\t\t\t: setter\n\t\t\t\t\t\t\t\t? $source[setter]()\n\t\t\t\t\t\t\t\t: $source.attr(fromAttr);\n\t\t\t\t\t}\n\t\t\t\t\tcnvtName = to[1];\n\t\t\t\t\tto = to[0]; // [object, path]\n\t\t\t\t\tto = to + \"\" === to ? [linkCtx.data, to] : to;\n\t\t\t\t\tif (cnvtName) {\n\t\t\t\t\t\tif ($isFunction(cnvtName)) {\n\t\t\t\t\t\t\tcvtBack = cnvtName;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcvtBack = view.getRsc(\"converters\", cnvtName);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (cvtBack) {\n\t\t\t\t\t\tsourceValue = cvtBack.call(tag, sourceValue);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set linkCtx on view, dynamically, just during this handler call\n\t\t\t\t\toldLinkCtx = view.linkCtx;\n\t\t\t\t\tview.linkCtx = linkCtx;\n\t\t\t\t\teventArgs = {\n\t\t\t\t\t\tchange: \"change\",\n\t\t\t\t\t\toldValue: linkCtx._val,\n\t\t\t\t\t\tvalue: sourceValue\n\t\t\t\t\t};\n\t\t\t\t\tif ((!onBeforeChange || !(cancel = onBeforeChange.call(linkCtx, ev, eventArgs) === false)) &&\n\t\t\t\t\t\t\t(!tag || !tag.onBeforeChange || !(cancel = tag.onBeforeChange(ev, eventArgs) === false)) &&\n\t\t\t\t\t\t\tsourceValue !== undefined) {\n\t\t\t\t\t\ttarget = to[0]; // [object, path]\n\t\t\t\t\t\tif (sourceValue !== undefined && target) {\n\t\t\t\t\t\t\tif (target._jsv) {\n\t\t\t\t\t\t\t\texprOb = target;\n\t\t\t\t\t\t\t\ttarget = linkCtx.data;\n\t\t\t\t\t\t\t\twhile (exprOb && exprOb.sb) {\n\t\t\t\t\t\t\t\t\ttarget = linkCtx._ctxCb(exprOb, target);\n\t\t\t\t\t\t\t\t\texprOb = exprOb.sb;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (tag) {\n\t\t\t\t\t\t\t\ttag._.chging = true; // marker to prevent tag change event triggering its own refresh\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$observable(target).setProperty(to[2] || to[1], sourceValue);\n\t\t\t\t\t\t\tif (onAfterChange) {\n\t\t\t\t\t\t\t\tonAfterChange.call(linkCtx, ev, eventArgs);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (tag) {\n\t\t\t\t\t\t\t\tif (tag.onAfterChange) {\n\t\t\t\t\t\t\t\t\ttag.onAfterChange(ev, eventArgs);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttag._.chging = undefined; // clear the marker\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlinkCtx._val = sourceValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tview.linkCtx = oldLinkCtx;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propertyChangeHandler(ev, eventArgs, linkFn) {\n\tvar attr, sourceValue, noUpdate, forceUpdate, hasError, onError,\n\t\tlinkCtx = this,\n\t\ttag = linkCtx.tag,\n\t\tsource = linkCtx.data,\n\t\ttarget = linkCtx.elem,\n\t\tcvt = linkCtx.convert,\n\t\tparentElem = target.parentNode,\n\t\tview = linkCtx.view,\n\t\toldLinkCtx = view.linkCtx,\n\t\tonEvent = view.hlp(onBeforeChangeStr);\n\n\t// Set linkCtx on view, dynamically, just during this handler call\n\tview.linkCtx = linkCtx;\n\n\tif (parentElem && (!onEvent || !(eventArgs && onEvent.call(linkCtx, ev, eventArgs) === false))\n\t\t\t// If data changed, the ev.data is set to be the path. Use that to filter the handler action...\n\t\t\t&& !(eventArgs && ev.data.prop !== \"*\" && ev.data.prop !== eventArgs.path)) {\n\n\t\tif (eventArgs) {\n\t\t\tlinkCtx.eventArgs = eventArgs;\n\t\t}\n\t\tif (eventArgs || linkCtx._toLk) {\n\t\t\t// If eventArgs are defined, this is a data update\n\t\t\t// Otherwise this is the initial data-link rendering call. Bind on this the first time it get called\n\t\t\tlinkCtx._toLk = 0; // Remove flag to skip unneccessary rebinding next time\n\t\t\tif (linkFn._er) {\n\t\t\t\t// data-link=\"exprUsingTagOrCvt with onerror=...\" - e.g. {tag ... {cvt:... {:... convert='cvt'\n\t\t\t\ttry {\n\t\t\t\t\tsourceValue = linkFn(source, view);\n\t\t\t\t} catch (e) {\n\t\t\t\t\thasError = linkFn._er;\n\t\t\t\t\tonError = error(e,view,(new Function(\"data,view\", \"return \" + hasError + \";\"))(source, view));\n\t\t\t\t\tsourceValue = [{props: {}, args: [onError]}];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsourceValue = linkFn(source, view, $views);\n\t\t\t}\n\t\t\t// Compiled link expression for linkTag: return value for data-link=\"{:xxx}\" with no cvt or cvtBk, otherwise tagCtx or tagCtxs\n\n\t\t\tattr = getTargetVal(sourceValue, linkCtx, tag = linkCtx.tag,\n\t\t\t\t\tlinkCtx.attr || defaultAttr(target, true, cvt !== undefined)\n\t\t\t\t);\n\n\t\t\tif (tag) {\n\t\t\t\t// Existing tag instance\n\t\t\t\tforceUpdate = hasError || tag._er;\n\t\t\t\t// If the new tagCtxs hasError or the previous tagCtxs had error, then force update\n\t\t\t\tsourceValue = sourceValue[0] ? sourceValue : [sourceValue];\n\t\t\t\tnoUpdate = !forceUpdate && eventArgs && tag.onUpdate && tag.onUpdate(ev, eventArgs, sourceValue) === false;\n\n\t\t\t\tmergeCtxs(tag, sourceValue, forceUpdate);\n\n\t\t\t\tif (noUpdate || attr === NONE) {\n\t\t\t\t\t// onUpdate returned false, or attr === \"none\", or this is an update coming from the tag's own change event\n\t\t\t\t\t// - so don't refresh the tag: we just use the new tagCtxs merged from the sourceValue,\n\t\t\t\t\t// (which may optionally have been modifed in onUpdate()...) and then bind, and we are done\n\t\t\t\t\tif (attr === HTML && tag.onBeforeLink) {\n\t\t\t\t\t\ttag.onBeforeLink();\n\t\t\t\t\t}\n\t\t\t\t\tcallAfterLink(tag);\n\t\t\t\t\tobserveAndBind(linkCtx, source, target);\n\t\t\t\t\tview.linkCtx = oldLinkCtx;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (tag._.chging) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsourceValue = tag.tagName === \":\" // Call convertVal if it is a {{cvt:...}} - otherwise call renderTag\n\t\t\t\t\t? $views._cnvt(tag.cvt, view, sourceValue[0])\n\t\t\t\t\t: $views._tag(tag, view, view.tmpl, sourceValue, true, onError);\n\t\t\t} else if (linkFn._tag) {\n\t\t\t\t// For {{: ...}} without a convert or convertBack, we already have the sourceValue, and we are done\n\t\t\t\t// For {{: ...}} with either cvt or cvtBack we call convertVal to get the sourceValue and instantiate the tag\n\t\t\t\t// If cvt is undefined then this is a tag, and we call renderTag to get the rendered content and instantiate the tag\n\t\t\t\tcvt = cvt === \"\" ? TRUE : cvt; // If there is a cvtBack but no cvt, set cvt to \"true\"\n\t\t\t\tsourceValue = cvt // Call convertVal if it is a {{cvt:...}} - otherwise call renderTag\n\t\t\t\t\t? $views._cnvt(cvt, view, sourceValue[0] || sourceValue) // convertVal\n\t\t\t\t\t: $views._tag(linkFn._tag, view, view.tmpl, sourceValue, true, onError); // renderTag\n\n\t\t\t\taddLinkMethods(tag = linkCtx.tag, true); // In both convertVal and renderTag we have instantiated a tag\n\t\t\t\tattr = linkCtx.attr || attr; // linkCtx.attr may have been set to tag.attr during tag instantiation in renderTag\n\t\t\t}\n\n\t\t\tif (updateContent(sourceValue, linkCtx, attr, tag)\n\t\t\t\t\t&& eventArgs\n\t\t\t\t\t&& (onEvent = view.hlp(onAfterChangeStr))) {\n\t\t\t\tonEvent.call(linkCtx, ev, eventArgs);\n\t\t\t}\n\t\t\tlinkCtx._noUpd = 0; // For data-link=\"^{...}\" remove _noUpd flag so updates on subsequent calls\n\n\t\t\tif (tag) {\n\t\t\t\ttag._er = hasError;\n\t\t\t\tcallAfterLink(tag, eventArgs);\n\t\t\t}\n\t\t}\n\n\t\tobserveAndBind(linkCtx, source, target);\n\n\t\t// Remove dynamically added linkCtx from view\n\t\tview.linkCtx = oldLinkCtx;\n\t}\n}\n\nfunction getTargetVal(sourceValue, linkCtx, tag, attr) {\n\tvar currentValue, setter, css, $target,\n\t\ttarget = tag && tag.parentElem || linkCtx.elem;\n\n\tif (sourceValue !== undefined) {\n\t\t$target = $(target);\n\t\tattr = tag && tag.attr || attr;\n\t\tif ($isFunction(sourceValue)) {\n\t\t\terror(linkCtx.expr + \": missing parens\");\n\t\t}\n\n\t\tif (css = /^css-/.test(attr) && attr.slice(4)) {\n\t\t\tcurrentValue = $.style(target, css);\n\t\t\tif (+sourceValue === sourceValue) {\n\t\t\t\t// Optimization for perf on integer values - e.g. css-width{:width+'px'}\n\t\t\t\tcurrentValue = parseInt(currentValue);\n\t\t\t}\n\t\t} else if (attr !== \"link\") { // attr === \"link\" is for tag controls which do data binding but have no rendered output or target\n\t\t\tif (attr === \"value\") {\n\t\t\t\tif (target.type === CHECKBOX) {\n\t\t\t\t\tcurrentValue = $target.prop(attr = CHECKED);\n\t\t\t\t}\n\t\t\t} else if (attr === RADIO) {\n\t\t\t\tif (target.value === (\"\" + sourceValue)) {\n\t\t\t\t\tcurrentValue = $target.prop(CHECKED);\n\t\t\t\t} else {\n\t\t\t\t\treturn attr;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (currentValue === undefined) {\n\t\t\t\tsetter = fnSetters[attr];\n\t\t\t\tcurrentValue = setter ? $target[setter]() : $target.attr(attr);\n\t\t\t}\n\t\t}\n\t\tlinkCtx._val = currentValue;\n\t}\n\treturn attr;\n}\n\nfunction setDefer(elem, value) {\n\telem._df = value; // Use both an expando and an attribute to track defered tokens. Attribute is needed for querySelectorAll for getViewInfos (childTags)\n\telem[(value ? \"set\" : \"remove\") + \"Attribute\"](deferAttr, \"\");\n}\n\nfunction updateContent(sourceValue, linkCtx, attr, tag) {\n\t// When called for a tag, either in tag.refresh() or propertyChangeHandler(), returns a promise (and supports async)\n\t// When called (in propertyChangeHandler) for target HTML returns true\n\t// When called (in propertyChangeHandler) for other targets returns boolean for \"changed\"\n\tvar setter, prevNode, nextNode, promise, nodesToRemove, useProp, tokens, id, openIndex, closeIndex, testElem, nodeName, cStyle,\n\t\trenders = attr !== NONE && sourceValue !== undefined && !linkCtx._noUpd, // For data-link=\"^{...}\", don't update the first time (no initial render) - e.g. to leave server rendered values.\n\t\tsource = linkCtx.data,\n\t\ttarget = tag && tag.parentElem || linkCtx.elem,\n\t\t$target = $(target),\n\t\tview = linkCtx.view,\n\t\ttargetVal = linkCtx._val,\n\t\toldLinkCtx = view.linkCtx,\n\t\t// If not a tag and not targeting HTML, we can use the ._val obtained from getTargetVal()\n\t\t// and only update when the new value (sourceValue) has changed from the previous one\n\t\tchange = tag || attr === HTML;\n\n\tif (tag) {\n\t\t// Initialize the tag with element references\n\t\ttag.parentElem = tag.parentElem || (linkCtx.expr || tag._elCnt) ? target : target.parentNode;\n\t\tprevNode = tag._prv;\n\t\tnextNode = tag._nxt;\n\t}\n\tif (!renders) {\n\t\tif (attr === HTML && tag && tag.onBeforeLink) {\n\t\t\ttag.onBeforeLink();\n\t\t}\n\t\treturn;\n\t}\n\n\tif (attr === \"visible\") {\n\t\tattr = \"css-display\";\n\t}\n\tif (/^css-/.test(attr)) {\n\t\tif (linkCtx.attr === \"visible\") {\n\t\t\t// Get the current display style\n\t\t\tcStyle = (target.currentStyle || getComputedStyle.call(global, target, \"\")).display;\n\n\t\t\tif (sourceValue) {\n\t\t\t\t// We are showing the element.\n\t\t\t\t// Get the cached 'visible' display value from the -jsvd expando\n\t\t\t\tsourceValue = target._jsvd\n\t\t\t\t\t// Or, if not yet cached, get the current display value\n\t\t\t\t\t|| cStyle;\n\t\t\t\tif (sourceValue === NONE && !(sourceValue = displayStyles[nodeName = target.nodeName])) {\n\t\t\t\t\t// Currently display value is 'none', and the 'visible' style has not been cached.\n\t\t\t\t\t// We create an element to find the correct 'visible' display style for this nodeName\n\t\t\t\t\ttestElem = document.createElement(nodeName);\n\t\t\t\t\tdocument.body.appendChild(testElem);\n\n\t\t\t\t\t// Get the default style for this HTML tag to use as 'visible' style\n\t\t\t\t\tsourceValue\n\t\t\t\t\t\t// and cache it as a hash against nodeName\n\t\t\t\t\t\t= displayStyles[nodeName]\n\t\t\t\t\t\t= (testElem.currentStyle || getComputedStyle.call(global, testElem, \"\")).display;\n\t\t\t\t\tdocument.body.removeChild(testElem);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We are hiding the element.\n\t\t\t\t// Cache the current display value as 'visible' style, on _jsvd expando, for when we show the element again\n\t\t\t\ttarget._jsvd = cStyle;\n\t\t\t\tsourceValue = NONE; // Hide the element\n\t\t\t}\n\t\t}\n\t\tif (change = change || targetVal !== sourceValue) {\n\t\t\t$.style(target, attr.slice(4), sourceValue);\n\t\t}\n\t} else if (attr !== \"link\") { // attr === \"link\" is for tag controls which do data binding but have no rendered output or target\n\t\tif (/^data-/.test(attr)) {\n\t\t\t$.data(target, attr.slice(5), sourceValue); // Support for binding to data attributes: data-foo{:expr}: data-foo attribute will be\n\t\t\t// expr.toString(), but $.data(element, \"foo\") and $(element).data(\"foo\") will actually return value of expr, even if of type object\n\t\t}\n\t\tif (attr === CHECKED) {\n\t\t\tuseProp = true;\n\t\t\tsourceValue = sourceValue && sourceValue !== \"false\";\n\t\t\t// The string value \"false\" can occur with data-link=\"checked{attr:expr}\" - as a result of attr, and hence using convertVal()\n\t\t\t// We will set the \"checked\" property\n\t\t\t// We will compare this with the current value\n\t\t} else if (attr === RADIO) {\n\t\t\t// This is a special binding attribute for radio buttons, which corresponds to the default 'to' binding.\n\t\t\t// This allows binding both to value (for each input) and to the default checked radio button (for each input in named group,\n\t\t\t// e.g. binding to parent data).\n\t\t\t// Place value binding first: \n\t\t\t// or (allowing any order for the binding expressions):\n\t\t\t// \n\n\t\t\tif (target.value === (\"\" + sourceValue)) {\n\t\t\t\t// If the data value corresponds to the value attribute of this radio button input, set the checked property to true\n\t\t\t\tsourceValue = useProp = true;\n\t\t\t\tattr = CHECKED;\n\t\t\t} else {\n\t\t\t\t// Otherwise, go straight to observeAndBind, without updating.\n\t\t\t\t// (The browser will remove the 'checked' attribute, when another radio button in the group is checked).\n\t\t\t\tobserveAndBind(linkCtx, source, target);\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (attr === \"selected\" || attr === \"disabled\" || attr === \"multiple\" || attr === \"readonly\") {\n\t\t\tsourceValue = (sourceValue && sourceValue !== \"false\") ? attr : null;\n\t\t\t// Use attr, not prop, so when the options (for example) are changed dynamically, but include the previously selected value,\n\t\t\t// they will still be selected after the change\n\t\t}\n\n\t\tif (setter = fnSetters[attr]) {\n\t\t\tif (attr === HTML) {\n\t\t\t\t// Set linkCtx on view, dynamically, just during this handler call\n\t\t\t\tview.linkCtx = linkCtx;\n\t\t\t\tif (tag && tag._.inline) {\n\t\t\t\t\tnodesToRemove = tag.nodes(true);\n\t\t\t\t\tif (tag._elCnt) {\n\t\t\t\t\t\tif (prevNode && prevNode !== nextNode) {\n\t\t\t\t\t\t\t// This prevNode will be removed from the DOM, so transfer the view tokens on prevNode to nextNode of this 'viewToRefresh'\n\t\t\t\t\t\t\ttransferViewTokens(prevNode, nextNode, target, tag._tgId, \"^\", true);\n\t\t\t\t\t\t} else if (tokens = target._df) { // This occurs when there is no nextNode, and so the target._df may include tokens referencing\n\t\t\t\t\t\t\t// view and tag bindings contained within the open and close tokens of the updated tag control. They need to be processed (disposed)\n\t\t\t\t\t\t\tid = tag._tgId + \"^\";\n\t\t\t\t\t\t\topenIndex = tokens.indexOf(\"#\" + id) + 1;\n\t\t\t\t\t\t\tcloseIndex = tokens.indexOf(\"/\" + id);\n\n\t\t\t\t\t\t\tif (openIndex && closeIndex > 0) {\n\t\t\t\t\t\t\t\topenIndex += id.length;\n\t\t\t\t\t\t\t\tif (closeIndex > openIndex) {\n\t\t\t\t\t\t\t\t\tsetDefer(target, tokens.slice(0, openIndex) + tokens.slice(closeIndex));\n\t\t\t\t\t\t\t\t\tdisposeTokens(tokens.slice(openIndex, closeIndex));\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\tprevNode = prevNode\n\t\t\t\t\t\t\t? prevNode.previousSibling\n\t\t\t\t\t\t\t: nextNode\n\t\t\t\t\t\t\t\t? nextNode.previousSibling\n\t\t\t\t\t\t\t\t: target.lastChild;\n\t\t\t\t\t}\n\t\t\t\t\t// Remove HTML nodes\n\t\t\t\t\t$(nodesToRemove).remove(); // Note if !tag._elCnt removing the nodesToRemove will process and dispose view and tag bindings contained within the updated tag control\n\n\t\t\t\t\tif (tag && tag.onBeforeLink) {\n\t\t\t\t\t\ttag.onBeforeLink();\n\t\t\t\t\t}\n\t\t\t\t\t// Insert and link new content\n\t\t\t\t\tpromise = view.link(view.data, target, prevNode, nextNode, sourceValue, tag && {tag: tag._tgId, lazyLink: tag.tagCtx.props.lazyLink});\n\t\t\t\t} else {\n\t\t\t\t\t// data-linked value targeting innerHTML: data-link=\"html{:expr}\"\n\t\t\t\t\tif (renders) {\n\t\t\t\t\t\t$target.empty();\n\t\t\t\t\t}\n\t\t\t\t\tif (tag && tag.onBeforeLink) {\n\t\t\t\t\t\ttag.onBeforeLink();\n\t\t\t\t\t}\n\t\t\t\t\tif (renders) {\n\t\t\t\t\t\tpromise = view.link(source, target, prevNode, nextNode, sourceValue, tag && {tag: tag._tgId});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Remove dynamically added linkCtx and ctx from view\n\t\t\t\tview.linkCtx = oldLinkCtx;\n\t\t\t} else if (change = change || targetVal !== sourceValue) {\n\t\t\t\tif (attr === \"text\" && target.children && !target.children[0]) {\n\t\t\t\t\t// This code is faster then $target.text()\n\t\t\t\t\tif (target.textContent !== undefined) {\n\t\t\t\t\t\ttarget.textContent = sourceValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.innerText = sourceValue === null ? \"\" : sourceValue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$target[setter](sourceValue);\n\t\t\t\t}\n// Removing this for now, to avoid side-effects when you programmatically set the value, and want the focus to stay on the text box\n//\t\t\t\t\t\t\tif (target.nodeName.toLowerCase() === \"input\") {\n//\t\t\t\t\t\t\t\t$target.blur(); // Issue with IE. This ensures HTML rendering is updated.\n//\t\t\t\t\t\t\t}\n\t\t\t\t\t\t// Data link the new contents of the target node\n\t\t\t}\n\t\t} else if (change = change || targetVal !== sourceValue) {\n\t\t\t// Setting an attribute to undefined should remove the attribute\n\t\t\t$target[useProp ? \"prop\" : \"attr\"](attr, sourceValue === undefined && !useProp ? null : sourceValue);\n\t\t}\n\t\tlinkCtx._val = sourceValue;\n\t}\n\treturn promise || change;\n}\n\nfunction arrayChangeHandler(ev, eventArgs) {\n\tvar self = this,\n\t\tonBeforeChange = self.hlp(onBeforeChangeStr),\n\t\tonAfterChange = self.hlp(onAfterChangeStr);\n\tif (!onBeforeChange || onBeforeChange.call(this, ev, eventArgs) !== false) {\n\t\tif (eventArgs) {\n\t\t\t// This is an observable action (not a trigger/handler call from pushValues, or similar, for which eventArgs will be null)\n\t\t\tvar action = eventArgs.change,\n\t\t\t\tindex = eventArgs.index,\n\t\t\t\titems = eventArgs.items;\n\n\t\t\tswitch (action) {\n\t\t\t\tcase \"insert\":\n\t\t\t\t\tself.addViews(index, items);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"remove\":\n\t\t\t\t\tself.removeViews(index, items.length);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"move\":\n\t\t\t\t\tself.refresh(); // Could optimize this\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"refresh\":\n\t\t\t\t\tself.refresh();\n\t\t\t\t\tbreak;\n\t\t\t\t\t// Other cases: (e.g.undefined, for setProperty on observable object) etc. do nothing\n\t\t\t}\n\t\t}\n\t\tif (onAfterChange) {\n\t\t\tonAfterChange.call(this, ev, eventArgs);\n\t\t}\n\t}\n}\n\n//=============================\n// Utilities for event handlers\n//=============================\n\nfunction setArrayChangeLink(view) {\n\t// Add/remove arrayChange handler on view\n\tvar handler, arrayBinding,\n\t\ttype = view.type, // undefined if view is being removed\n\t\tdata = view.data,\n\t\tbound = view._.bnd; // true for top-level link() or data-link=\"{for}\", or the for tag instance for {^{for}} (or for any custom tag that has an onArrayChange handler)\n\n\tif (!view._.useKey && bound) {\n\t\t// This is an array view. (view._.useKey not defined => data is array), and is data-bound to collection change events\n\n\t\tif (arrayBinding = view._.bndArr) {\n\t\t\t// First remove the current handler if there is one\n\t\t\t$([arrayBinding[1]]).off(arrayChangeStr, arrayBinding[0]);\n\t\t\tview._.bndArr = undefined;\n\t\t}\n\t\tif (bound !== !!bound) {\n\t\t\t// bound is not a boolean, so it is the data-linked tag that 'owns' this array binding - e.g. {^{for...}}\n\t\t\tif (type) {\n\t\t\t\tbound._.arrVws[view._.id] = view;\n\t\t\t} else {\n\t\t\t\tdelete bound._.arrVws[view._.id]; // if view.type is undefined, view is being removed\n\t\t\t}\n\t\t} else if (type && data) {\n\t\t\t// If this view is not being removed, but the data array has been replaced, then bind to the new data array\n\t\t\thandler = function(ev) {\n\t\t\t\tif (!(ev.data && ev.data.off)) {\n\t\t\t\t\t// Skip if !!ev.data.off: - a handler that has already been removed (maybe was on handler collection at call time - then removed by another handler)\n\t\t\t\t\t// If view.type is undefined, do nothing. (Corresponds to case where there is another handler on the same data whose\n\t\t\t\t\t// effect was to remove this view, and which happened to precede this event in the trigger sequence. So although this\n\t\t\t\t\t// event has been removed now, it is still called since already on the trigger sequence)\n\t\t\t\t\tarrayChangeHandler.apply(view, arguments);\n\t\t\t\t}\n\t\t\t};\n\t\t\t$([data]).on(arrayChangeStr, handler);\n\t\t\tview._.bndArr = [handler, data];\n\t\t}\n\t}\n}\n\nfunction defaultAttr(elem, to, linkGetVal) {\n\t// to: true - default attribute for setting data value on HTML element; false: default attribute for getting value from HTML element\n\t// Merge in the default attribute bindings for this target element\n\tvar nodeName = elem.nodeName.toLowerCase(),\n\t\tattr =\n\t\t\t$viewsSettings.merge[nodeName] // get attr settings for input textarea select or optgroup\n\t\t\t|| elem.contentEditable === TRUE && {to: HTML, from: HTML}; // Or if contentEditable set to \"true\" set attr to \"html\"\n\treturn attr\n\t\t? (to\n\t\t\t? ((nodeName === \"input\" && elem.type === RADIO) // For radio buttons, bind from value, but bind to 'radio' - special value.\n\t\t\t\t? RADIO\n\t\t\t\t: attr.to)\n\t\t\t: attr.from)\n\t\t: to\n\t\t\t? linkGetVal ? \"text\" : HTML // Default innerText for data-link=\"a.b.c\" or data-link=\"{:a.b.c}\" (with or without converters)- otherwise innerHTML\n\t\t\t: \"\"; // Default is not to bind from\n}\n\n//==============================\n// Rendering and DOM insertion\n//==============================\n\nfunction renderAndLink(view, index, tmpl, views, data, context, refresh) {\n\tvar html, linkToNode, prevView, nodesToRemove, bindId,\n\t\tparentNode = view.parentElem,\n\t\tprevNode = view._prv,\n\t\tnextNode = view._nxt,\n\t\telCnt = view._elCnt;\n\n\tif (prevNode && prevNode.parentNode !== parentNode) {\n\t\terror(\"Missing parentNode\");\n\t\t// Abandon, since node has already been removed, or wrapper element has been inserted between prevNode and parentNode\n\t}\n\n\tif (refresh) {\n\t\tnodesToRemove = view.nodes();\n\t\tif (elCnt && prevNode && prevNode !== nextNode) {\n\t\t\t// This prevNode will be removed from the DOM, so transfer the view tokens on prevNode to nextNode of this 'viewToRefresh'\n\t\t\ttransferViewTokens(prevNode, nextNode, parentNode, view._.id, \"_\", true);\n\t\t}\n\t\t// Remove child views\n\t\tview.removeViews(undefined, undefined, true);\n\t\tlinkToNode = nextNode;\n\n\t\tif (elCnt) {\n\t\t\tprevNode = prevNode\n\t\t\t\t? prevNode.previousSibling\n\t\t\t\t: nextNode\n\t\t\t\t\t? nextNode.previousSibling\n\t\t\t\t\t: parentNode.lastChild;\n\t\t}\n\n\t\t// Remove HTML nodes\n\t\t$(nodesToRemove).remove();\n\n\t\tfor (bindId in view._.bnds) {\n\t\t\t// The view bindings may have already been removed above in: $(nodesToRemove).remove();\n\t\t\t// If not, remove them here:\n\t\t\tremoveViewBinding(bindId);\n\t\t}\n\t} else {\n\t\t// addViews. Only called if view is of type \"array\"\n\t\tif (index) {\n\t\t\t// index is a number, so indexed view in view array\n\t\t\tprevView = views[index - 1];\n\t\t\tif (!prevView) {\n\t\t\t\treturn false; // If subview for provided index does not exist, do nothing\n\t\t\t}\n\t\t\tprevNode = prevView._nxt;\n\t\t}\n\t\tif (elCnt) {\n\t\t\tlinkToNode = prevNode;\n\t\t\tprevNode = linkToNode\n\t\t\t\t? linkToNode.previousSibling // There is a linkToNode, so insert after previousSibling, or at the beginning\n\t\t\t\t: parentNode.lastChild; // If no prevView and no prevNode, index is 0 and the container is empty,\n\t\t\t\t// so prevNode = linkToNode = null. But if prevView._nxt is null then we set prevNode to parentNode.lastChild\n\t\t\t\t// (which must be before the prevView) so we insert after that node - and only link the inserted nodes\n\t\t} else {\n\t\t\tlinkToNode = prevNode.nextSibling;\n\t\t}\n\t}\n\thtml = tmpl.render(data, context, view._.useKey && refresh, view, refresh || index, true);\n\t// Pass in view._.useKey as test for noIteration (which corresponds to when self._.useKey > 0 and self.data is an array)\n\n\t// Link the new HTML nodes to the data\n\tview.link(data, parentNode, prevNode, linkToNode, html, prevView);\n//}, 0);\n}\n\n//=====================\n// addBindingMarkers\n//=====================\n\nfunction addBindingMarkers(value, view, tag) {\n\t// Insert binding markers into the rendered template output, which will get converted to appropriate\n\t// data-jsv attributes (element-only content) or script marker nodes (phrasing or flow content), in convertMarkers,\n\t// within view.link, prior to inserting into the DOM. Linking will then bind based on these markers in the DOM.\n\t// Added view markers: #m_...VIEW.../m_\n\t// Added tag markers: #m^...TAG..../m^\n\tvar id, end;\n\tif (tag) {\n\t\t// This is a binding marker for a data-linked tag {^{...}}\n\t\tend = \"^`\";\n\t\taddLinkMethods(tag, true); // This is {^{>...}} or {^{tag ...}}, {{cvt:...} or {^{:...}}, and tag was defined in convertVal or renderTag\n\t\tid = tag._tgId;\n\t\tif (!id) {\n\t\t\tbindingStore[id = bindingKey++] = tag; // Store the tag temporarily, ready for databinding.\n\t\t\t// During linking, in addDataBinding, the tag will be attached to the linkCtx,\n\t\t\t// and then in observeAndBind, bindingStore[bindId] will be replaced by binding info.\n\t\t\ttag._tgId = \"\" + id;\n\t\t}\n\t} else {\n\t\t// This is a binding marker for a view\n\t\t// Add the view to the store of current linked views\n\t\tend = \"_`\";\n\t\taddLinkMethods(viewStore[id = view._.id] = view);\n\t}\n\t// Example: \"#23^TheValue/23^\"\n\treturn \"#\" + id + end\n\t\t+ (value != undefined ? value : \"\") // For {^{:name}} this gives the equivalent semantics to compiled\n\t\t\t\t\t\t\t\t\t\t\t// (v=data.name)!=null?v:\"\"; used in {{:name}} or data-link=\"name\"\n\t\t+ \"/\" + id + end;\n}\n\n//==============================\n// Data-linking and data binding\n//==============================\n\n//---------------\n// observeAndBind\n//---------------\n\nfunction observeAndBind(linkCtx, source, target) { //TODO? linkFnArgs) {;\n\tvar binding, l, linkedElem, exprFnDeps, exprOb,\n\t\ttag = linkCtx.tag,\n\t\tcvtBk = linkCtx.convertBack,\n\t\tdepends = [],\n\t\tbindId = linkCtx._bndId || \"\" + bindingKey++,\n\t\thandler = linkCtx._hdl;\n\n\tlinkCtx._bndId = undefined;\n\n\tif (tag) {\n\t\t// Use the 'depends' paths set on linkCtx.tag - which may have been set on declaration\n\t\t// or in events: init, render, onBeforeLink, onAfterLink etc.\n\t\tdepends = tag.depends || depends;\n\t\tdepends = $isFunction(depends) ? tag.depends(tag) : depends;\n\t\tlinkedElem = tag.linkedElem;\n\t}\n\tif (!linkCtx._depends || (\"\" + linkCtx._depends !== \"\" + depends)) {\n\t\t// Only bind the first time, or if the new depends (toString) has changed from when last bound\n\t\tif (linkCtx._depends) {\n\t\t\t// Unobserve previous binding\n\t\t\t$observable._apply(false, [source], linkCtx._depends, handler, true);\n\t\t}\n\n\t\texprFnDeps = linkCtx.fn.deps.slice(); // Make a copy of the dependency paths for the compiled linkCtx expression - to pass to observe(). In getInnerCb(),\n\t\t// (and whenever the object is updated, in innerCb), we will set exprOb.ob to the current object returned by that computed expression, for this view.\n\t\tl = exprFnDeps.length;\n\t\twhile (l--) {\n\t\t\texprOb = exprFnDeps[l];\n\t\t\tif (exprOb._jsv) {\n\t\t\t\t// This path is an 'exprOb', corresponding to a computed, returning an object. We replace the exprOb by\n\t\t\t\t// a view-binding-specific exprOb instance. The current object will be stored as exprOb.ob.\n\t\t\t\texprFnDeps[l] = $extend({}, exprOb);\n\t\t\t}\n\t\t}\n\n\t\tbinding = $observable._apply(\n\t\t\tfalse,\n\t\t\t[source],\n\t\t\texprFnDeps, // flatten the paths - to gather all the dependencies across args and bound params\n\t\t\tdepends,\n\t\t\thandler,\n\t\t\tlinkCtx._ctxCb);\n\t\t// The binding returned by $observe has a bnd array with the source objects of the individual bindings.\n\n\t\tbinding.elem = target; // The target of all the individual bindings\n\t\tbinding.linkCtx = linkCtx;\n\t\tbinding._tgId = bindId;\n\n\t\t// Add to the _jsvBnd on the target the view id and binding id - for unbinding when the target element is removed\n\t\ttarget._jsvBnd = target._jsvBnd || \"\";\n\t\ttarget._jsvBnd += \"&\" + bindId;\n\t\tlinkCtx._depends = depends;\n\t\t// Store the binding key on the view, for disposal when the view is removed\n\t\tlinkCtx.view._.bnds[bindId] = bindId;\n\t\t// Store the binding.\n\t\tbindingStore[bindId] = binding; // Note: If this corresponds to a data-linked tag, we are replacing the\n\t\t// temporarily stored tag by the stored binding. The tag will now be at binding.linkCtx.tag\n\n\t\tif (linkedElem) {\n\t\t\tbinding.to = [[], cvtBk];\n\t\t}\n\t\tif (linkedElem || cvtBk !== undefined) {\n\t\t\tbindTo(binding, tag && tag.convertBack || cvtBk);\n\t\t}\n\t\tif (tag) {\n\t\t\tif (tag.onAfterBind) {\n\t\t\t\ttag.onAfterBind(binding);\n\t\t\t}\n\t\t\tif (!tag.flow && !tag._.inline) {\n\t\t\t\ttarget.setAttribute(jsvAttrStr, (target.getAttribute(jsvAttrStr)||\"\") + \"#\" + bindId + \"^/\" + bindId + \"^\");\n\t\t\t\ttag._tgId = \"\" + bindId;\n\t\t\t}\n\t\t}\n\t}\n\tif (linkedElem && linkedElem[0]) {\n\t\tif (tag._.radio) {\n\t\t\tlinkedElem = linkedElem.find(RADIOINPUT);\n\t\t}\n\n\t\tl = linkedElem.length;\n\t\twhile (l--) {\n\t\t\tlinkedElem[l]._jsvBnd = linkedElem[l]._jsvBnd || (target._jsvBnd + \"+\");\n\t\t\t// Add a \"+\" for cloned binding - so removing elems with cloned bindings will not remove the 'parent' binding from the bindingStore.\n\t\t\tlinkedElem[l]._jsvLkEl = tag;\n\t\t}\n\t}\n}\n\n//-------\n// $.link\n//-------\n\nfunction tmplLink(to, from, context, noIteration, parentView, prevNode, nextNode) {\n\treturn $link(this, to, from, context, noIteration, parentView, prevNode, nextNode);\n}\n\nfunction $link(tmplOrLinkExpr, to, from, context, noIteration, parentView, prevNode, nextNode) {\n\t// When linking from a template, prevNode and nextNode parameters are ignored\n\n\tif (context === true) {\n\t\tnoIteration = context; // passing boolean as third param - noIteration\n\t\tcontext = undefined;\n\t} else if (typeof context !== \"object\") {\n\t\tcontext = undefined; // context must be a boolean (noIteration) or a plain object\n\t} else {\n\t\tcontext = $extend({}, context);\n\t}\n\tif (tmplOrLinkExpr && to) {\n\t\tto = to.jquery ? to : $(to); // to is a jquery object or an element or selector\n\n\t\tif (!activeBody) {\n\t\t\tactiveBody = document.body;\n\t\t\t$(activeBody)\n\t\t\t\t.on(elementChangeStr, elemChangeHandler)\n\t\t\t\t.on('blur', '[contenteditable]', elemChangeHandler);\n\t\t}\n\n\t\tvar i, k, html, vwInfos, view, placeholderParent, targetEl, refresh, topLevelCall,\n\t\t\tonRender = addBindingMarkers,\n\t\t\treplaceMode = context && context.target === \"replace\",\n\t\t\tl = to.length;\n\n\t\twhile (l--) {\n\t\t\ttargetEl = to[l];\n\n\t\t\tparentView = parentView || $view(targetEl);\n\n\t\t\tif (topLevelCall = parentView === topView) {\n\t\t\t\ttopView.data = (topView.ctx = context || {}).root = from;\n\t\t\t}\n\t\t\tif (\"\" + tmplOrLinkExpr === tmplOrLinkExpr) {\n\t\t\t\t// tmplOrLinkExpr is a string: treat as data-link expression.\n\t\t\t\taddDataBinding(tmplOrLinkExpr, targetEl, parentView, undefined, true, from, context);\n\t\t\t} else {\n\t\t\t\tif (tmplOrLinkExpr.markup !== undefined) {\n\t\t\t\t\t// This is a call to template.link()\n\t\t\t\t\tif (parentView.link === false) {\n\t\t\t\t\t\tcontext = context || {};\n\t\t\t\t\t\tcontext.link = onRender = false; // If link=false, don't allow nested context to switch on linking\n\t\t\t\t\t}\n\t\t\t\t\t// Set link=false, explicitly, to disable linking within a template nested within a linked template\n\t\t\t\t\tif (replaceMode) {\n\t\t\t\t\t\tplaceholderParent = targetEl.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\thtml = tmplOrLinkExpr.render(from, context, noIteration, parentView, undefined, onRender);\n\t\t\t\t\t// TODO Consider finding a way to bind data (link) within template without html being different for each view, the HTML can\n\t\t\t\t\t// be evaluated once outside the while (l--), and pushed into a document fragment, then cloned and inserted at each target.\n\n\t\t\t\t\tif (placeholderParent) {\n\t\t\t\t\t\t// This is target=\"replace\" mode\n\t\t\t\t\t\tprevNode = targetEl.previousSibling;\n\t\t\t\t\t\tnextNode = targetEl.nextSibling;\n\t\t\t\t\t\t$.cleanData([targetEl], true);\n\t\t\t\t\t\tplaceholderParent.removeChild(targetEl);\n\n\t\t\t\t\t\ttargetEl = placeholderParent;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprevNode = nextNode = undefined; // When linking from a template, prevNode and nextNode parameters are ignored\n\t\t\t\t\t\t$(targetEl).empty();\n\t\t\t\t\t}\n\t\t\t\t} else if (tmplOrLinkExpr === true && parentView === topView) {\n\t\t\t\t\t// $.link(true, selector, data, ctx) - where selector points to elem in top-level content. (If not top-level content, no-op)\n\t\t\t\t\trefresh = {lnk: 1};\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n// TODO Consider deferred linking API feature on per-template basis - {@{ instead of {^{ which allows the user to see the rendered content\n// before that content is linked, with better perceived perf. Have view.link return a deferred, and pass that to onAfterLink...\n// or something along those lines.\n// setTimeout(function() {\n\n\t\t\t\tif (targetEl._df && !nextNode) {\n\t\t\t\t\t// We are inserting new content and the target element has some deferred binding annotations,and there is no nextNode.\n\t\t\t\t\t// Those views may be stale views (that will be recreated in this new linking action) so we will first remove them\n\t\t\t\t\t// (if not already removed).\n\t\t\t\t\tvwInfos = viewInfos(targetEl._df, true, rOpenViewMarkers);\n\n\t\t\t\t\tfor (i = 0, k = vwInfos.length; i < k; i++) {\n\t\t\t\t\t\tview = vwInfos[i];\n\t\t\t\t\t\tif ((view = viewStore[view.id]) && view.data !== undefined) {\n\t\t\t\t\t\t\t// If this is the _prv (prevNode) for a view, remove the view\n\t\t\t\t\t\t\t// - unless view.data is undefined, in which case it is already being removed\n\t\t\t\t\t\t\tview.parent.removeViews(view._.key, undefined, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetDefer(targetEl); // remove defer tokens\n\t\t\t\t}\n\n\t\t\t\t// Link the content of the element, since this is a call to template.link(), or to $(el).link(true, ...),\n\t\t\t\tparentView.link(from, targetEl, prevNode, nextNode, html, refresh, context);\n//}, 0);\n\t\t\t}\n\t\t\tif (topLevelCall) {\n\t\t\t\ttopView.data = topView.ctx = undefined;\n\t\t\t}\n\t\t}\n\t}\n\treturn to; // Allow chaining, to attach event handlers, etc.\n}\n\n//----------\n// view.link\n//----------\n\nfunction viewLink(outerData, parentNode, prevNode, nextNode, html, refresh, context, validateOnly) {\n\t// Optionally insert HTML into DOM using documentFragments (and wrapping HTML appropriately).\n\t// Data-link existing contents of parentNode, or the inserted HTML, if provided\n\n\t// Depending on the content model for the HTML elements, the standard data-linking markers inserted in the HTML by addBindingMarkers during\n\t// template rendering will be converted either to script marker nodes or, for element-only content sections, to data-jsv element annotations.\n\n\t// Data-linking will then add _prv and _nxt to views, where:\n\t// _prv: References the previous node (script element of type \"jsv123\"), or (for elCnt=true), the first element node in the view (or if none, set _prv = _nxt)\n\t// _nxt: References the last node (script element of type \"jsv/123\"), or (for elCnt=true), the next element node after the view.\n\n\t//==== nested functions ====\n\tfunction convertMarkers(all, preceding, selfClose, closeTag, spaceBefore, id, boundId, spaceAfter, tag1, tag2, closeTag2, spaceAfterClose, selfClose2, endOpenTag) {\n\t\t// rConvertMarkers = /(^|(\\/>)|<\\/(\\w+)>|)(\\s*)([#\\/]\\d+(?:_|(\\^)))`(\\s*)(<\\w+(?=[\\s\\/>]))?|\\s*(?:(<\\w+(?=[\\s\\/>]))|<\\/(\\w+)>(\\s*)|(\\/>)\\s*|(>))/g,\n\t\t// prec, slfCl, clsTag, spBefore, id, bndId spAfter,tag1, tag2, clTag2,sac slfCl2, endOpenTag\n\t\t// Convert the markers that were included by addBindingMarkers in template output, to appropriate DOM annotations:\n\t\t// data-jsv attributes (for element-only content) or script marker nodes (within phrasing or flow content).\n\n// TODO consider detecting 'quoted' contexts (attribute strings) so that attribute encoding does not need to encode >\n// Currently rAttrEncode = /[><\"'&]/g includes '>' encoding in order to avoid erroneous parsing of \">\">\n\t\tvar errorMsg, bndId,\n\t\t\tendOfElCnt = \"\";\n\t\tif (endOpenTag) {\n\t\t\tinTag = 0;\n\t\t\treturn all;\n\t\t}\n\t\ttag = tag1 || tag2 || \"\";\n\t\tcloseTag = closeTag || closeTag2;\n\t\tselfClose = selfClose || selfClose2;\n\t\tif (isVoid && !selfClose && ( !all || closeTag || tag || id && !inTag)) { // !all = end of string\n\t\t\tisVoid = undefined;\n\t\t\tparentTag = tagStack.shift(); // preceding tag was a void element, with no closing slash, such as
.\n\t\t}\n\t\tcloseTag = closeTag || selfClose;\n\t\tif (closeTag) {\n\t\t\tinTag = 0;\n\t\t\tisVoid = undefined;\n\t\t\t// TODO: smart insertion of