{"version":3,"sources":["webpack:///./node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js"],"names":["_class","_temp","_class2","_temp2","_class3","_class4","_class5","_class6","_class7","_class8","_class9","_temp3","_class10","_temp4","_class12","_class14","_class15","_class16","_temp5","_class17","_class18","_class19","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_typeof","Symbol","iterator","obj","constructor","animationEvent","enterBegin","enterActive","enterDone","enterTimeout","leaveBegin","leaveActive","leaveDone","leaveTimeout","staggerNext","removeClassBegin","removeClassActive","removeClassDone","removeClassTimeout","addClassBegin","addClassActive","addClassDone","addClassTimeout","animateBegin","animateActive","animateDone","animateTimeout","sequenceBegin","sequenceDone","Animator","enter","element","Promise","resolve","leave","removeClass","className","classList","remove","addClass","add","animate","runSequence","animations","registerEffect","effectName","properties","unregisterEffect","CompositionTransactionNotifier","owner","this","_compositionCount","done","_tryCompleteTransaction","CompositionTransactionOwnershipToken","_ownershipToken","thenable","_createThenable","waitForCompositionComplete","_resolveCallback","_this","reject","CompositionTransaction","tryCapture","enlist","token","capitalMatcher","addHyphenAndLower","char","toLowerCase","_hyphenate","name","charAt","slice","replace","_isAllWhitespace","node","auInterpolationTarget","test","textContent","ViewEngineHooksResource","initialize","container","instance","get","register","registry","registerViewEngineHooks","load","convention","endsWith","viewEngineHooks","deco","t","define","resource","ElementEvents","subscriptions","_enqueueHandler","handler","eventName","push","_dequeueHandler","index","indexOf","splice","publish","detail","arguments","undefined","bubbles","cancelable","event","createCustomEvent","dispatchEvent","subscribe","captureOrOptions","defaultListenerOptions","EventHandlerImpl","subscribeOnce","dispose","subscription","pop","disposeAll","_key","once","capture","addEventListener","handleEvent","e","fn","removeEventListener","ResourceLoadContext","dependencies","addDependency","url","hasDependency","ViewCompileInstruction","targetShadowDOM","compileSurrogate","associatedModuleId","normal","BehaviorInstruction","enhance","instruction","unitTest","type","attributes","anchorIsContainer","hasAttribute","containerless","initiatedByBehavior","attribute","attrName","dynamic","host","viewModel","viewFactory","inheritBindingContext","biProto","partReplacements","originalAttrName","skipContentProcessing","contentFactory","TargetInstruction","shadowSlot","parentInjectorId","contentExpression","expression","letElement","expressions","lifting","liftingInstruction","noExpressions","behaviorInstructions","providers","injectorId","elementInstruction","surrogate","values","freeze","tiProto","slotName","slotFallbackFactory","viewStrategy","create","validate","loadViewFactory","compose","makeRelativeTo","noop","RelativeViewStrategy","_dec","path","absolutePath","viewEngine","compileInstruction","loadContext","moduleId","file","ConventionalViewStrategy","_dec2","viewLocator","origin","viewUrl","convertOriginToViewUrl","NoViewStrategy","_dec3","dependencyBaseUrl","entry","factoryIsReady","templateIsLoaded","ii","current","from","as","TemplateRegistryViewStrategy","_dec4","factory","InlineViewStrategy","_dec5","markup","template","createTemplateFromMarkup","StaticViewStrategy","_dec6","config","Element","tagName","onReady","_this2","deps","Array","isArray","all","then","appResources","viewCompiler","viewResources","ViewResources","elDeps","autoRegister","_iterator","_isArray","_i","_ref","next","value","dep","elementName","Error","_key2","exported","map","el","compile","ViewLocator","getViewStrategy","_origin","assert","c","$view","_view","call","viewStrategyMetadataKey","strategy","createFallbackViewStrategy","substring","mi","BindingLanguage","inspectAttribute","resources","attrValue","createAttributeInstruction","info","existingInstruction","createLetExpressions","inspectTextContent","noNodes","SlotCustomAttribute","auSlotAttribute","inject","valueChanged","newValue","oldValue","PassThroughSlot","anchor","destinationName","fallbackFactory","viewSlot","destinationSlot","projections","contentView","renderFallbackContent","view","nodes","projectionSource","ownerView","bind","bindingContext","overrideContext","slots","ShadowDOM","distributeView","passThroughTo","addNode","removeNodes","detached","unbind","removeView","needsFallbackRendering","removeAll","projectFrom","created","attached","ShadowSlot","isContentProjectionSource","children","projectFromAnchors","destinationSlots","destination","distributeNodes","auOwnerView","auProjectionSource","auAssignedSlot","_findAnchor","parentNode","insertBefore","undistributeView","hasSlots","found","find","x","auSlotProjectFrom","_children","auProjectionChildren","_child","fragment","appendChild","undistributeAll","_children2","_child2","_children3","viewIndex","lastView","projectTo","createComment","parent","insertNodesBefore","slot","fallbackSlots","getSlotName","defaultSlotKey","destinationOverride","childNodes","currentNode","nodeType","_slotName","lookup","existing","validateBehaviorName","newName","warn","bindingLanguage","hasParent","lookupFunctions","valueConverters","getValueConverter","bindingBehaviors","getBindingBehavior","elements","attributeMap","beforeCompile","afterCompile","beforeCreate","afterCreate","beforeBind","beforeUnbind","$resource","HtmlBehaviorResource","resourceType","assign","_name","attributeName","liftsContent","templateController","attributeDefaultBindingMode","defaultBindingMode","_bindables","bindables","currentProps","prop","newProp","BindableProperty","existed","j","jj","registerWith","_tryAddHook","func","counter","callbackName","toString","_invokeHook","one","two","three","four","hooks","getBindingLanguage","bindingLanguageFallback","patchInParent","newParent","originalParent","relativeToView","registerElement","behavior","getElement","mapAttribute","registerAttribute","knownAttribute","getAttribute","registerValueConverter","valueConverter","registerBindingBehavior","bindingBehavior","registerValue","getValue","impl","resourceTypeMeta","getOwn","View","controllers","bindings","_key3","firstChild","lastChild","fromCache","isBound","isAttached","controller","viewModelScope","animatableElement","_isUserControlled","returnToCache","returnViewToCache","_systemUpdate","addBinding","binding","refNode","appendNodesTo","end","nextSibling","getAnimatableElement","contains","ViewSlot","animator","contentSelectors","animateView","direction","transformChildNodesIntoView","last","removeChild","_children4","insert","move","sourceIndex","targetIndex","skipAnimation","removeAt","removeMany","viewsToRemove","_this3","rmPromises","forEach","child","animation","removeAction","_this4","_this5","_child3","_this6","projectToSlots","_projectionAdd","_projectionInsert","_projectionMove","_projectionRemove","_projectionRemoveAt","_projectionRemoveMany","_projectionRemoveAll","_this7","providerResolverInstance","ProviderResolver","id","__providerId__","invoke","elementContainerGet","BoundViewFactory","boundViewFactory","_partReplacements","part","elementEvents","compositionTransaction","superGet","_element","setAttribute","applyInstructions","containers","shadowSlots","elementContainer","createBinding","commentAnchor","slotDestination","replaceNode","contentElement","makeElementIntoAnchor","createChild","_resolvers","set","createElementContainer","styleStringToObject","style","split","firstIndexOfColon","trim","styleObjectToString","result","_key4","parentContainer","factoryCreateInstruction","setCacheSize","size","doNotOverrideIfAlreadySet","getCachedView","isCaching","ViewFactory","instructions","cacheSize","cache","Number","MAX_VALUE","parseInt","createInstruction","cachedView","cloneNode","instructables","querySelectorAll","root","instructable","surrogateInstruction","currentAttributeValue","_key5","styleObject","applySurrogateInstruction","nextInjectorId","lastAUTargetID","makeIntoInstructionTarget","auTargetID","defaultLetHandler","ViewCompiler","_dec7","source","content","adoptNode","shadowDOM","_compileNode","targetId","ins","_compileSurrogate","targetLightDOM","_compileElement","wholeText","marker","createElement","currentChild","property","attr","hasValues","command","hasOptions","primaryProperty","_primaryProperty","alteredAttr","discrete","_configureProperties","attrToRemove","removeAttribute","elementProperty","compiler","auShadowSlot","innerHTML","createDocumentFragment","_child4","makeShadowSlot","namespaceURI","processAttributes","_primaryProperty2","targetProperty","ResourceModule","moduleInstance","mainResource","isInitialized","onLoaded","vs","metadata","main","loads","_i2","_ii","ResourceDescription","exportedValue","ModuleAnalyzer","getAnalysis","analyze","mainResourceKey","fallbackValue","fallbackKey","conventional","resourceModule","decorates","logger","ProxyViewFactory","promise","_this8","auSlotBehavior","ViewEngine","_dec8","loader","moduleAnalyzer","_pluginMap","addResourcePlugin","extension","implementation","addPlugin","urlOrRegistryEntry","_this9","loadTemplate","ensureRegistryEntry","registryEntry","address","loadTemplateResources","importIds","names","src","debug","viewModelRequires","viewModelRequireMetadataKey","templateImportCount","req","importId","importViewResources","importViewModelResource","moduleImport","moduleMember","_this10","loadModule","viewModelModule","normalizedId","moduleIds","_this11","_applyLoaderPlugin","loadAllModules","imports","analysis","associatedModule","allAnalysis","lastIndexOf","ext","pluginName","applyPluginToUrl","Controller","scope","observerLookup","observerLocator","getOrCreateObserversLookup","handlesBind","boundProperties","_ensurePropertiesDefined","_initialize","owningView","handlesCreated","automate","skipSelfSubscriber","observer","selfSubscriber","publishing","__parentOverrideContext","parentOverrideContext","_ii2","_boundProperties","_i3","handlesUnbind","handlesAttached","handlesDetached","BehaviorPropertyObserver","_dec9","taskQueue","propertyName","initialValue","notqueued","currentValue","setValue","is","flushing","queueMicroTask","callSubscribers","context","callable","addSubscriber","unsubscribe","removeSubscriber","getObserver","__observers__","ctor","getPrototypeOf","_behavior","nameOrConfig","oneWay","changeHandler","_configureDescriptor","defaultValue","initializer","defineOn","handlerName","createObserver","changeHandlerName","propertyChanged","behaviorHandlesBind","isDynamic","_key6","_createDynamicProperty","lastProviderId","doProcessContent","doProcessAttributes","shadowDOMOptions","processContent","usesShadowDOM","childBindings","hasDynamicOptions","addChildBinding","proto","htmlName","_copyInheritedProperties","_this12","aliases","alias","transientView","_this13","options","_template","_partReplacements2","hasChildNodes","toReplace","removeNode","viewHost","au","attachShadow","registerInstance","boundary","_i4","_ii3","_i5","_ii4","_i6","_ii5","_i7","_ii6","_i8","_ii7","__propertiesDefined__","_this14","derived","_loop","_i9","_ii8","some","p","createChildObserverDecorator","selectorOrConfig","actualTarget","r","getOrCreateOwn","selector","ChildObserver","ChildObserverBinder","noMutations","trackMutation","groupedMutations","binder","record","mutations","onChildChange","binders","bindersLength","Map","_i10","_ii9","added","addedNodes","removed","removedNodes","_node","k","onRemove","_j","_jj","_node2","_k","_binder","onAdd","matches","assignedSlot","anchors","_i11","_ii10","__childObserver__","createMutationObserver","childList","subtree","observe","firstElementChild","items","nextElementSibling","_value","_value2","_value3","prev","previousElementSibling","disconnect","previous","SwapStrategies","before","callback","with","after","tryActivateViewModel","skipActivation","activate","model","CompositionEngine","_dec10","_swap","swapStrategy","swapOrder","previousViews","currentController","compositionTransactionNotifier","_createControllerAndSwap","_this15","createController","compositionTransactionOwnershipToken","_this16","childContainer","viewModelResource","m","ensureViewModel","isClass","_this17","transaction","ElementConfigResource","registerElementConfig","instanceOrConfig","override","customElement","customAttribute","bindable","nameOrConfigOrTarget","key2","descriptor2","_target","dynamicOptions","defaultShadowDOMOptions","mode","useShadowDOM","targetOrOptions","processor","error","doNotProcessContent","useViewStrategy","useView","inlineView","noView","targetOrDependencies","templateOrConfig","elementConfig","_len","_key7","TemplatingEngine","_dec11","compositionEngine","_container","_moduleAnalyzer","_viewCompiler","_compositionEngine","configureAnimator","unregister","compilerInstructions","letExpressions"],"mappings":"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","file":"npm.aurelia-templating.e5eec83e130897155b77.js","sourcesContent":["var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _class, _temp, _class2, _temp2, _dec, _class3, _dec2, _class4, _dec3, _class5, _dec4, _class6, _dec5, _class7, _dec6, _class8, _class9, _temp3, _class10, _temp4, _class12, _dec7, _class14, _dec8, _class15, _class16, _temp5, _dec9, _class17, _dec10, _class18, _dec11, _class19;\n\n\n\nimport * as LogManager from 'aurelia-logging';\nimport { metadata, Origin, protocol } from 'aurelia-metadata';\nimport { DOM, PLATFORM, FEATURE } from 'aurelia-pal';\nimport { TemplateRegistryEntry, Loader } from 'aurelia-loader';\nimport { relativeToFile } from 'aurelia-path';\nimport { Scope, Expression, ValueConverterResource, BindingBehaviorResource, camelCase, Binding, createOverrideContext, subscriberCollection, bindingMode, ObserverLocator, EventManager } from 'aurelia-binding';\nimport { Container, resolver, inject } from 'aurelia-dependency-injection';\nimport { TaskQueue } from 'aurelia-task-queue';\n\nexport var animationEvent = {\n enterBegin: 'animation:enter:begin',\n enterActive: 'animation:enter:active',\n enterDone: 'animation:enter:done',\n enterTimeout: 'animation:enter:timeout',\n\n leaveBegin: 'animation:leave:begin',\n leaveActive: 'animation:leave:active',\n leaveDone: 'animation:leave:done',\n leaveTimeout: 'animation:leave:timeout',\n\n staggerNext: 'animation:stagger:next',\n\n removeClassBegin: 'animation:remove-class:begin',\n removeClassActive: 'animation:remove-class:active',\n removeClassDone: 'animation:remove-class:done',\n removeClassTimeout: 'animation:remove-class:timeout',\n\n addClassBegin: 'animation:add-class:begin',\n addClassActive: 'animation:add-class:active',\n addClassDone: 'animation:add-class:done',\n addClassTimeout: 'animation:add-class:timeout',\n\n animateBegin: 'animation:animate:begin',\n animateActive: 'animation:animate:active',\n animateDone: 'animation:animate:done',\n animateTimeout: 'animation:animate:timeout',\n\n sequenceBegin: 'animation:sequence:begin',\n sequenceDone: 'animation:sequence:done'\n};\n\nexport var Animator = function () {\n function Animator() {\n \n }\n\n Animator.prototype.enter = function enter(element) {\n return Promise.resolve(false);\n };\n\n Animator.prototype.leave = function leave(element) {\n return Promise.resolve(false);\n };\n\n Animator.prototype.removeClass = function removeClass(element, className) {\n element.classList.remove(className);\n return Promise.resolve(false);\n };\n\n Animator.prototype.addClass = function addClass(element, className) {\n element.classList.add(className);\n return Promise.resolve(false);\n };\n\n Animator.prototype.animate = function animate(element, className) {\n return Promise.resolve(false);\n };\n\n Animator.prototype.runSequence = function runSequence(animations) {};\n\n Animator.prototype.registerEffect = function registerEffect(effectName, properties) {};\n\n Animator.prototype.unregisterEffect = function unregisterEffect(effectName) {};\n\n return Animator;\n}();\n\nexport var CompositionTransactionNotifier = function () {\n function CompositionTransactionNotifier(owner) {\n \n\n this.owner = owner;\n this.owner._compositionCount++;\n }\n\n CompositionTransactionNotifier.prototype.done = function done() {\n this.owner._compositionCount--;\n this.owner._tryCompleteTransaction();\n };\n\n return CompositionTransactionNotifier;\n}();\n\nexport var CompositionTransactionOwnershipToken = function () {\n function CompositionTransactionOwnershipToken(owner) {\n \n\n this.owner = owner;\n this.owner._ownershipToken = this;\n this.thenable = this._createThenable();\n }\n\n CompositionTransactionOwnershipToken.prototype.waitForCompositionComplete = function waitForCompositionComplete() {\n this.owner._tryCompleteTransaction();\n return this.thenable;\n };\n\n CompositionTransactionOwnershipToken.prototype.resolve = function resolve() {\n this._resolveCallback();\n };\n\n CompositionTransactionOwnershipToken.prototype._createThenable = function _createThenable() {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n _this._resolveCallback = resolve;\n });\n };\n\n return CompositionTransactionOwnershipToken;\n}();\n\nexport var CompositionTransaction = function () {\n function CompositionTransaction() {\n \n\n this._ownershipToken = null;\n this._compositionCount = 0;\n }\n\n CompositionTransaction.prototype.tryCapture = function tryCapture() {\n return this._ownershipToken === null ? new CompositionTransactionOwnershipToken(this) : null;\n };\n\n CompositionTransaction.prototype.enlist = function enlist() {\n return new CompositionTransactionNotifier(this);\n };\n\n CompositionTransaction.prototype._tryCompleteTransaction = function _tryCompleteTransaction() {\n if (this._compositionCount <= 0) {\n this._compositionCount = 0;\n\n if (this._ownershipToken !== null) {\n var token = this._ownershipToken;\n this._ownershipToken = null;\n token.resolve();\n }\n }\n };\n\n return CompositionTransaction;\n}();\n\nvar capitalMatcher = /([A-Z])/g;\n\nfunction addHyphenAndLower(char) {\n return '-' + char.toLowerCase();\n}\n\nexport function _hyphenate(name) {\n return (name.charAt(0).toLowerCase() + name.slice(1)).replace(capitalMatcher, addHyphenAndLower);\n}\n\nexport function _isAllWhitespace(node) {\n return !(node.auInterpolationTarget || /[^\\t\\n\\r ]/.test(node.textContent));\n}\n\nexport var ViewEngineHooksResource = function () {\n function ViewEngineHooksResource() {\n \n }\n\n ViewEngineHooksResource.prototype.initialize = function initialize(container, target) {\n this.instance = container.get(target);\n };\n\n ViewEngineHooksResource.prototype.register = function register(registry, name) {\n registry.registerViewEngineHooks(this.instance);\n };\n\n ViewEngineHooksResource.prototype.load = function load(container, target) {};\n\n ViewEngineHooksResource.convention = function convention(name) {\n if (name.endsWith('ViewEngineHooks')) {\n return new ViewEngineHooksResource();\n }\n };\n\n return ViewEngineHooksResource;\n}();\n\nexport function viewEngineHooks(target) {\n var deco = function deco(t) {\n metadata.define(metadata.resource, new ViewEngineHooksResource(), t);\n };\n\n return target ? deco(target) : deco;\n}\n\nexport var ElementEvents = (_temp = _class = function () {\n function ElementEvents(element) {\n \n\n this.element = element;\n this.subscriptions = {};\n }\n\n ElementEvents.prototype._enqueueHandler = function _enqueueHandler(handler) {\n this.subscriptions[handler.eventName] = this.subscriptions[handler.eventName] || [];\n this.subscriptions[handler.eventName].push(handler);\n };\n\n ElementEvents.prototype._dequeueHandler = function _dequeueHandler(handler) {\n var index = void 0;\n var subscriptions = this.subscriptions[handler.eventName];\n if (subscriptions) {\n index = subscriptions.indexOf(handler);\n if (index > -1) {\n subscriptions.splice(index, 1);\n }\n }\n return handler;\n };\n\n ElementEvents.prototype.publish = function publish(eventName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var cancelable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n var event = DOM.createCustomEvent(eventName, { cancelable: cancelable, bubbles: bubbles, detail: detail });\n this.element.dispatchEvent(event);\n };\n\n ElementEvents.prototype.subscribe = function subscribe(eventName, handler, captureOrOptions) {\n if (typeof handler === 'function') {\n if (captureOrOptions === undefined) {\n captureOrOptions = ElementEvents.defaultListenerOptions;\n }\n var eventHandler = new EventHandlerImpl(this, eventName, handler, captureOrOptions, false);\n return eventHandler;\n }\n\n return undefined;\n };\n\n ElementEvents.prototype.subscribeOnce = function subscribeOnce(eventName, handler, captureOrOptions) {\n if (typeof handler === 'function') {\n if (captureOrOptions === undefined) {\n captureOrOptions = ElementEvents.defaultListenerOptions;\n }\n var eventHandler = new EventHandlerImpl(this, eventName, handler, captureOrOptions, true);\n return eventHandler;\n }\n\n return undefined;\n };\n\n ElementEvents.prototype.dispose = function dispose(eventName) {\n if (eventName && typeof eventName === 'string') {\n var subscriptions = this.subscriptions[eventName];\n if (subscriptions) {\n while (subscriptions.length) {\n var subscription = subscriptions.pop();\n if (subscription) {\n subscription.dispose();\n }\n }\n }\n } else {\n this.disposeAll();\n }\n };\n\n ElementEvents.prototype.disposeAll = function disposeAll() {\n for (var _key in this.subscriptions) {\n this.dispose(_key);\n }\n };\n\n return ElementEvents;\n}(), _class.defaultListenerOptions = true, _temp);\n\nvar EventHandlerImpl = function () {\n function EventHandlerImpl(owner, eventName, handler, captureOrOptions, once) {\n \n\n this.owner = owner;\n this.eventName = eventName;\n this.handler = handler;\n\n this.capture = typeof captureOrOptions === 'boolean' ? captureOrOptions : captureOrOptions.capture;\n this.bubbles = !this.capture;\n this.captureOrOptions = captureOrOptions;\n this.once = once;\n owner.element.addEventListener(eventName, this, captureOrOptions);\n owner._enqueueHandler(this);\n }\n\n EventHandlerImpl.prototype.handleEvent = function handleEvent(e) {\n var fn = this.handler;\n fn(e);\n if (this.once) {\n this.dispose();\n }\n };\n\n EventHandlerImpl.prototype.dispose = function dispose() {\n this.owner.element.removeEventListener(this.eventName, this, this.captureOrOptions);\n this.owner._dequeueHandler(this);\n this.owner = this.handler = null;\n };\n\n return EventHandlerImpl;\n}();\n\nexport var ResourceLoadContext = function () {\n function ResourceLoadContext() {\n \n\n this.dependencies = {};\n }\n\n ResourceLoadContext.prototype.addDependency = function addDependency(url) {\n this.dependencies[url] = true;\n };\n\n ResourceLoadContext.prototype.hasDependency = function hasDependency(url) {\n return url in this.dependencies;\n };\n\n return ResourceLoadContext;\n}();\n\nexport var ViewCompileInstruction = function ViewCompileInstruction() {\n var targetShadowDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var compileSurrogate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n \n\n this.targetShadowDOM = targetShadowDOM;\n this.compileSurrogate = compileSurrogate;\n this.associatedModuleId = null;\n};\n\nViewCompileInstruction.normal = new ViewCompileInstruction();\n\nexport var BehaviorInstruction = function () {\n function BehaviorInstruction() {\n \n }\n\n BehaviorInstruction.enhance = function enhance() {\n var instruction = new BehaviorInstruction();\n instruction.enhance = true;\n return instruction;\n };\n\n BehaviorInstruction.unitTest = function unitTest(type, attributes) {\n var instruction = new BehaviorInstruction();\n instruction.type = type;\n instruction.attributes = attributes || {};\n return instruction;\n };\n\n BehaviorInstruction.element = function element(node, type) {\n var instruction = new BehaviorInstruction();\n instruction.type = type;\n instruction.attributes = {};\n instruction.anchorIsContainer = !(node.hasAttribute('containerless') || type.containerless);\n instruction.initiatedByBehavior = true;\n return instruction;\n };\n\n BehaviorInstruction.attribute = function attribute(attrName, type) {\n var instruction = new BehaviorInstruction();\n instruction.attrName = attrName;\n instruction.type = type || null;\n instruction.attributes = {};\n return instruction;\n };\n\n BehaviorInstruction.dynamic = function dynamic(host, viewModel, viewFactory) {\n var instruction = new BehaviorInstruction();\n instruction.host = host;\n instruction.viewModel = viewModel;\n instruction.viewFactory = viewFactory;\n instruction.inheritBindingContext = true;\n return instruction;\n };\n\n return BehaviorInstruction;\n}();\n\nvar biProto = BehaviorInstruction.prototype;\nbiProto.initiatedByBehavior = false;\nbiProto.enhance = false;\nbiProto.partReplacements = null;\nbiProto.viewFactory = null;\nbiProto.originalAttrName = null;\nbiProto.skipContentProcessing = false;\nbiProto.contentFactory = null;\nbiProto.viewModel = null;\nbiProto.anchorIsContainer = false;\nbiProto.host = null;\nbiProto.attributes = null;\nbiProto.type = null;\nbiProto.attrName = null;\nbiProto.inheritBindingContext = false;\n\nBehaviorInstruction.normal = new BehaviorInstruction();\n\nexport var TargetInstruction = (_temp2 = _class2 = function () {\n function TargetInstruction() {\n \n }\n\n TargetInstruction.shadowSlot = function shadowSlot(parentInjectorId) {\n var instruction = new TargetInstruction();\n instruction.parentInjectorId = parentInjectorId;\n instruction.shadowSlot = true;\n return instruction;\n };\n\n TargetInstruction.contentExpression = function contentExpression(expression) {\n var instruction = new TargetInstruction();\n instruction.contentExpression = expression;\n return instruction;\n };\n\n TargetInstruction.letElement = function letElement(expressions) {\n var instruction = new TargetInstruction();\n instruction.expressions = expressions;\n instruction.letElement = true;\n return instruction;\n };\n\n TargetInstruction.lifting = function lifting(parentInjectorId, liftingInstruction) {\n var instruction = new TargetInstruction();\n instruction.parentInjectorId = parentInjectorId;\n instruction.expressions = TargetInstruction.noExpressions;\n instruction.behaviorInstructions = [liftingInstruction];\n instruction.viewFactory = liftingInstruction.viewFactory;\n instruction.providers = [liftingInstruction.type.target];\n instruction.lifting = true;\n return instruction;\n };\n\n TargetInstruction.normal = function normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction) {\n var instruction = new TargetInstruction();\n instruction.injectorId = injectorId;\n instruction.parentInjectorId = parentInjectorId;\n instruction.providers = providers;\n instruction.behaviorInstructions = behaviorInstructions;\n instruction.expressions = expressions;\n instruction.anchorIsContainer = elementInstruction ? elementInstruction.anchorIsContainer : true;\n instruction.elementInstruction = elementInstruction;\n return instruction;\n };\n\n TargetInstruction.surrogate = function surrogate(providers, behaviorInstructions, expressions, values) {\n var instruction = new TargetInstruction();\n instruction.expressions = expressions;\n instruction.behaviorInstructions = behaviorInstructions;\n instruction.providers = providers;\n instruction.values = values;\n return instruction;\n };\n\n return TargetInstruction;\n}(), _class2.noExpressions = Object.freeze([]), _temp2);\n\nvar tiProto = TargetInstruction.prototype;\n\ntiProto.injectorId = null;\ntiProto.parentInjectorId = null;\n\ntiProto.shadowSlot = false;\ntiProto.slotName = null;\ntiProto.slotFallbackFactory = null;\n\ntiProto.contentExpression = null;\ntiProto.letElement = false;\n\ntiProto.expressions = null;\ntiProto.expressions = null;\ntiProto.providers = null;\n\ntiProto.viewFactory = null;\n\ntiProto.anchorIsContainer = false;\ntiProto.elementInstruction = null;\ntiProto.lifting = false;\n\ntiProto.values = null;\n\nexport var viewStrategy = protocol.create('aurelia:view-strategy', {\n validate: function validate(target) {\n if (!(typeof target.loadViewFactory === 'function')) {\n return 'View strategies must implement: loadViewFactory(viewEngine: ViewEngine, compileInstruction: ViewCompileInstruction, loadContext?: ResourceLoadContext): Promise';\n }\n\n return true;\n },\n compose: function compose(target) {\n if (!(typeof target.makeRelativeTo === 'function')) {\n target.makeRelativeTo = PLATFORM.noop;\n }\n }\n});\n\nexport var RelativeViewStrategy = (_dec = viewStrategy(), _dec(_class3 = function () {\n function RelativeViewStrategy(path) {\n \n\n this.path = path;\n this.absolutePath = null;\n }\n\n RelativeViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n if (this.absolutePath === null && this.moduleId) {\n this.absolutePath = relativeToFile(this.path, this.moduleId);\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(this.absolutePath || this.path, compileInstruction, loadContext, target);\n };\n\n RelativeViewStrategy.prototype.makeRelativeTo = function makeRelativeTo(file) {\n if (this.absolutePath === null) {\n this.absolutePath = relativeToFile(this.path, file);\n }\n };\n\n return RelativeViewStrategy;\n}()) || _class3);\n\nexport var ConventionalViewStrategy = (_dec2 = viewStrategy(), _dec2(_class4 = function () {\n function ConventionalViewStrategy(viewLocator, origin) {\n \n\n this.moduleId = origin.moduleId;\n this.viewUrl = viewLocator.convertOriginToViewUrl(origin);\n }\n\n ConventionalViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(this.viewUrl, compileInstruction, loadContext, target);\n };\n\n return ConventionalViewStrategy;\n}()) || _class4);\n\nexport var NoViewStrategy = (_dec3 = viewStrategy(), _dec3(_class5 = function () {\n function NoViewStrategy(dependencies, dependencyBaseUrl) {\n \n\n this.dependencies = dependencies || null;\n this.dependencyBaseUrl = dependencyBaseUrl || '';\n }\n\n NoViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var entry = this.entry;\n var dependencies = this.dependencies;\n\n if (entry && entry.factoryIsReady) {\n return Promise.resolve(null);\n }\n\n this.entry = entry = new TemplateRegistryEntry(this.moduleId || this.dependencyBaseUrl);\n\n entry.dependencies = [];\n entry.templateIsLoaded = true;\n\n if (dependencies !== null) {\n for (var i = 0, ii = dependencies.length; i < ii; ++i) {\n var current = dependencies[i];\n\n if (typeof current === 'string' || typeof current === 'function') {\n entry.addDependency(current);\n } else {\n entry.addDependency(current.from, current.as);\n }\n }\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\n };\n\n return NoViewStrategy;\n}()) || _class5);\n\nexport var TemplateRegistryViewStrategy = (_dec4 = viewStrategy(), _dec4(_class6 = function () {\n function TemplateRegistryViewStrategy(moduleId, entry) {\n \n\n this.moduleId = moduleId;\n this.entry = entry;\n }\n\n TemplateRegistryViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var entry = this.entry;\n\n if (entry.factoryIsReady) {\n return Promise.resolve(entry.factory);\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\n };\n\n return TemplateRegistryViewStrategy;\n}()) || _class6);\n\nexport var InlineViewStrategy = (_dec5 = viewStrategy(), _dec5(_class7 = function () {\n function InlineViewStrategy(markup, dependencies, dependencyBaseUrl) {\n \n\n this.markup = markup;\n this.dependencies = dependencies || null;\n this.dependencyBaseUrl = dependencyBaseUrl || '';\n }\n\n InlineViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var entry = this.entry;\n var dependencies = this.dependencies;\n\n if (entry && entry.factoryIsReady) {\n return Promise.resolve(entry.factory);\n }\n\n this.entry = entry = new TemplateRegistryEntry(this.moduleId || this.dependencyBaseUrl);\n entry.template = DOM.createTemplateFromMarkup(this.markup);\n\n if (dependencies !== null) {\n for (var i = 0, ii = dependencies.length; i < ii; ++i) {\n var current = dependencies[i];\n\n if (typeof current === 'string' || typeof current === 'function') {\n entry.addDependency(current);\n } else {\n entry.addDependency(current.from, current.as);\n }\n }\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\n };\n\n return InlineViewStrategy;\n}()) || _class7);\n\nexport var StaticViewStrategy = (_dec6 = viewStrategy(), _dec6(_class8 = function () {\n function StaticViewStrategy(config) {\n \n\n if (typeof config === 'string' || config instanceof DOM.Element && config.tagName === 'TEMPLATE') {\n config = {\n template: config\n };\n }\n this.template = config.template;\n this.dependencies = config.dependencies || [];\n this.factoryIsReady = false;\n this.onReady = null;\n this.moduleId = 'undefined';\n }\n\n StaticViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var _this2 = this;\n\n if (this.factoryIsReady) {\n return Promise.resolve(this.factory);\n }\n var deps = this.dependencies;\n deps = typeof deps === 'function' ? deps() : deps;\n deps = deps ? deps : [];\n deps = Array.isArray(deps) ? deps : [deps];\n\n return Promise.all(deps).then(function (dependencies) {\n var container = viewEngine.container;\n var appResources = viewEngine.appResources;\n var viewCompiler = viewEngine.viewCompiler;\n var viewResources = new ViewResources(appResources);\n\n var resource = void 0;\n var elDeps = [];\n\n if (target) {\n viewResources.autoRegister(container, target);\n }\n\n for (var _iterator = dependencies, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var dep = _ref;\n\n if (typeof dep === 'function') {\n resource = viewResources.autoRegister(container, dep);\n if (resource.elementName !== null) {\n elDeps.push(resource);\n }\n } else if (dep && (typeof dep === 'undefined' ? 'undefined' : _typeof(dep)) === 'object') {\n for (var _key2 in dep) {\n var exported = dep[_key2];\n if (typeof exported === 'function') {\n resource = viewResources.autoRegister(container, exported);\n if (resource.elementName !== null) {\n elDeps.push(resource);\n }\n }\n }\n } else {\n throw new Error('dependency neither function nor object. Received: \"' + (typeof dep === 'undefined' ? 'undefined' : _typeof(dep)) + '\"');\n }\n }\n\n return Promise.all(elDeps.map(function (el) {\n return el.load(container, el.target);\n })).then(function () {\n var factory = _this2.template !== null ? viewCompiler.compile(_this2.template, viewResources, compileInstruction) : null;\n _this2.factoryIsReady = true;\n _this2.factory = factory;\n return factory;\n });\n });\n };\n\n return StaticViewStrategy;\n}()) || _class8);\n\nexport var ViewLocator = (_temp3 = _class9 = function () {\n function ViewLocator() {\n \n }\n\n ViewLocator.prototype.getViewStrategy = function getViewStrategy(value) {\n if (!value) {\n return null;\n }\n\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && 'getViewStrategy' in value) {\n var _origin = Origin.get(value.constructor);\n\n value = value.getViewStrategy();\n\n if (typeof value === 'string') {\n value = new RelativeViewStrategy(value);\n }\n\n viewStrategy.assert(value);\n\n if (_origin.moduleId) {\n value.makeRelativeTo(_origin.moduleId);\n }\n\n return value;\n }\n\n if (typeof value === 'string') {\n value = new RelativeViewStrategy(value);\n }\n\n if (viewStrategy.validate(value)) {\n return value;\n }\n\n if (typeof value !== 'function') {\n value = value.constructor;\n }\n\n if ('$view' in value) {\n var c = value.$view;\n var _view = void 0;\n c = typeof c === 'function' ? c.call(value) : c;\n if (c === null) {\n _view = new NoViewStrategy();\n } else {\n _view = c instanceof StaticViewStrategy ? c : new StaticViewStrategy(c);\n }\n metadata.define(ViewLocator.viewStrategyMetadataKey, _view, value);\n return _view;\n }\n\n var origin = Origin.get(value);\n var strategy = metadata.get(ViewLocator.viewStrategyMetadataKey, value);\n\n if (!strategy) {\n if (!origin.moduleId) {\n throw new Error('Cannot determine default view strategy for object.', value);\n }\n\n strategy = this.createFallbackViewStrategy(origin);\n } else if (origin.moduleId) {\n strategy.moduleId = origin.moduleId;\n }\n\n return strategy;\n };\n\n ViewLocator.prototype.createFallbackViewStrategy = function createFallbackViewStrategy(origin) {\n return new ConventionalViewStrategy(this, origin);\n };\n\n ViewLocator.prototype.convertOriginToViewUrl = function convertOriginToViewUrl(origin) {\n var moduleId = origin.moduleId;\n var id = moduleId.endsWith('.js') || moduleId.endsWith('.ts') ? moduleId.substring(0, moduleId.length - 3) : moduleId;\n return id + '.html';\n };\n\n return ViewLocator;\n}(), _class9.viewStrategyMetadataKey = 'aurelia:view-strategy', _temp3);\n\nfunction mi(name) {\n throw new Error('BindingLanguage must implement ' + name + '().');\n}\n\nexport var BindingLanguage = function () {\n function BindingLanguage() {\n \n }\n\n BindingLanguage.prototype.inspectAttribute = function inspectAttribute(resources, elementName, attrName, attrValue) {\n mi('inspectAttribute');\n };\n\n BindingLanguage.prototype.createAttributeInstruction = function createAttributeInstruction(resources, element, info, existingInstruction) {\n mi('createAttributeInstruction');\n };\n\n BindingLanguage.prototype.createLetExpressions = function createLetExpressions(resources, element) {\n mi('createLetExpressions');\n };\n\n BindingLanguage.prototype.inspectTextContent = function inspectTextContent(resources, value) {\n mi('inspectTextContent');\n };\n\n return BindingLanguage;\n}();\n\nvar noNodes = Object.freeze([]);\n\nexport var SlotCustomAttribute = function () {\n SlotCustomAttribute.inject = function inject() {\n return [DOM.Element];\n };\n\n function SlotCustomAttribute(element) {\n \n\n this.element = element;\n this.element.auSlotAttribute = this;\n }\n\n SlotCustomAttribute.prototype.valueChanged = function valueChanged(newValue, oldValue) {};\n\n return SlotCustomAttribute;\n}();\n\nexport var PassThroughSlot = function () {\n function PassThroughSlot(anchor, name, destinationName, fallbackFactory) {\n \n\n this.anchor = anchor;\n this.anchor.viewSlot = this;\n this.name = name;\n this.destinationName = destinationName;\n this.fallbackFactory = fallbackFactory;\n this.destinationSlot = null;\n this.projections = 0;\n this.contentView = null;\n\n var attr = new SlotCustomAttribute(this.anchor);\n attr.value = this.destinationName;\n }\n\n PassThroughSlot.prototype.renderFallbackContent = function renderFallbackContent(view, nodes, projectionSource, index) {\n if (this.contentView === null) {\n this.contentView = this.fallbackFactory.create(this.ownerView.container);\n this.contentView.bind(this.ownerView.bindingContext, this.ownerView.overrideContext);\n\n var slots = Object.create(null);\n slots[this.destinationSlot.name] = this.destinationSlot;\n\n ShadowDOM.distributeView(this.contentView, slots, projectionSource, index, this.destinationSlot.name);\n }\n };\n\n PassThroughSlot.prototype.passThroughTo = function passThroughTo(destinationSlot) {\n this.destinationSlot = destinationSlot;\n };\n\n PassThroughSlot.prototype.addNode = function addNode(view, node, projectionSource, index) {\n if (this.contentView !== null) {\n this.contentView.removeNodes();\n this.contentView.detached();\n this.contentView.unbind();\n this.contentView = null;\n }\n\n if (node.viewSlot instanceof PassThroughSlot) {\n node.viewSlot.passThroughTo(this);\n return;\n }\n\n this.projections++;\n this.destinationSlot.addNode(view, node, projectionSource, index);\n };\n\n PassThroughSlot.prototype.removeView = function removeView(view, projectionSource) {\n this.projections--;\n this.destinationSlot.removeView(view, projectionSource);\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(null, noNodes, projectionSource);\n }\n };\n\n PassThroughSlot.prototype.removeAll = function removeAll(projectionSource) {\n this.projections = 0;\n this.destinationSlot.removeAll(projectionSource);\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(null, noNodes, projectionSource);\n }\n };\n\n PassThroughSlot.prototype.projectFrom = function projectFrom(view, projectionSource) {\n this.destinationSlot.projectFrom(view, projectionSource);\n };\n\n PassThroughSlot.prototype.created = function created(ownerView) {\n this.ownerView = ownerView;\n };\n\n PassThroughSlot.prototype.bind = function bind(view) {\n if (this.contentView) {\n this.contentView.bind(view.bindingContext, view.overrideContext);\n }\n };\n\n PassThroughSlot.prototype.attached = function attached() {\n if (this.contentView) {\n this.contentView.attached();\n }\n };\n\n PassThroughSlot.prototype.detached = function detached() {\n if (this.contentView) {\n this.contentView.detached();\n }\n };\n\n PassThroughSlot.prototype.unbind = function unbind() {\n if (this.contentView) {\n this.contentView.unbind();\n }\n };\n\n _createClass(PassThroughSlot, [{\n key: 'needsFallbackRendering',\n get: function get() {\n return this.fallbackFactory && this.projections === 0;\n }\n }]);\n\n return PassThroughSlot;\n}();\n\nexport var ShadowSlot = function () {\n function ShadowSlot(anchor, name, fallbackFactory) {\n \n\n this.anchor = anchor;\n this.anchor.isContentProjectionSource = true;\n this.anchor.viewSlot = this;\n this.name = name;\n this.fallbackFactory = fallbackFactory;\n this.contentView = null;\n this.projections = 0;\n this.children = [];\n this.projectFromAnchors = null;\n this.destinationSlots = null;\n }\n\n ShadowSlot.prototype.addNode = function addNode(view, node, projectionSource, index, destination) {\n if (this.contentView !== null) {\n this.contentView.removeNodes();\n this.contentView.detached();\n this.contentView.unbind();\n this.contentView = null;\n }\n\n if (node.viewSlot instanceof PassThroughSlot) {\n node.viewSlot.passThroughTo(this);\n return;\n }\n\n if (this.destinationSlots !== null) {\n ShadowDOM.distributeNodes(view, [node], this.destinationSlots, this, index);\n } else {\n node.auOwnerView = view;\n node.auProjectionSource = projectionSource;\n node.auAssignedSlot = this;\n\n var anchor = this._findAnchor(view, node, projectionSource, index);\n var parent = anchor.parentNode;\n\n parent.insertBefore(node, anchor);\n this.children.push(node);\n this.projections++;\n }\n };\n\n ShadowSlot.prototype.removeView = function removeView(view, projectionSource) {\n if (this.destinationSlots !== null) {\n ShadowDOM.undistributeView(view, this.destinationSlots, this);\n } else if (this.contentView && this.contentView.hasSlots) {\n ShadowDOM.undistributeView(view, this.contentView.slots, projectionSource);\n } else {\n var found = this.children.find(function (x) {\n return x.auSlotProjectFrom === projectionSource;\n });\n if (found) {\n var _children = found.auProjectionChildren;\n\n for (var i = 0, ii = _children.length; i < ii; ++i) {\n var _child = _children[i];\n\n if (_child.auOwnerView === view) {\n _children.splice(i, 1);\n view.fragment.appendChild(_child);\n i--;ii--;\n this.projections--;\n }\n }\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(view, noNodes, projectionSource);\n }\n }\n }\n };\n\n ShadowSlot.prototype.removeAll = function removeAll(projectionSource) {\n if (this.destinationSlots !== null) {\n ShadowDOM.undistributeAll(this.destinationSlots, this);\n } else if (this.contentView && this.contentView.hasSlots) {\n ShadowDOM.undistributeAll(this.contentView.slots, projectionSource);\n } else {\n var found = this.children.find(function (x) {\n return x.auSlotProjectFrom === projectionSource;\n });\n\n if (found) {\n var _children2 = found.auProjectionChildren;\n for (var i = 0, ii = _children2.length; i < ii; ++i) {\n var _child2 = _children2[i];\n _child2.auOwnerView.fragment.appendChild(_child2);\n this.projections--;\n }\n\n found.auProjectionChildren = [];\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(null, noNodes, projectionSource);\n }\n }\n }\n };\n\n ShadowSlot.prototype._findAnchor = function _findAnchor(view, node, projectionSource, index) {\n if (projectionSource) {\n var found = this.children.find(function (x) {\n return x.auSlotProjectFrom === projectionSource;\n });\n if (found) {\n if (index !== undefined) {\n var _children3 = found.auProjectionChildren;\n var viewIndex = -1;\n var lastView = void 0;\n\n for (var i = 0, ii = _children3.length; i < ii; ++i) {\n var current = _children3[i];\n\n if (current.auOwnerView !== lastView) {\n viewIndex++;\n lastView = current.auOwnerView;\n\n if (viewIndex >= index && lastView !== view) {\n _children3.splice(i, 0, node);\n return current;\n }\n }\n }\n }\n\n found.auProjectionChildren.push(node);\n return found;\n }\n }\n\n return this.anchor;\n };\n\n ShadowSlot.prototype.projectTo = function projectTo(slots) {\n this.destinationSlots = slots;\n };\n\n ShadowSlot.prototype.projectFrom = function projectFrom(view, projectionSource) {\n var anchor = DOM.createComment('anchor');\n var parent = this.anchor.parentNode;\n anchor.auSlotProjectFrom = projectionSource;\n anchor.auOwnerView = view;\n anchor.auProjectionChildren = [];\n parent.insertBefore(anchor, this.anchor);\n this.children.push(anchor);\n\n if (this.projectFromAnchors === null) {\n this.projectFromAnchors = [];\n }\n\n this.projectFromAnchors.push(anchor);\n };\n\n ShadowSlot.prototype.renderFallbackContent = function renderFallbackContent(view, nodes, projectionSource, index) {\n if (this.contentView === null) {\n this.contentView = this.fallbackFactory.create(this.ownerView.container);\n this.contentView.bind(this.ownerView.bindingContext, this.ownerView.overrideContext);\n this.contentView.insertNodesBefore(this.anchor);\n }\n\n if (this.contentView.hasSlots) {\n var slots = this.contentView.slots;\n var projectFromAnchors = this.projectFromAnchors;\n\n if (projectFromAnchors !== null) {\n for (var slotName in slots) {\n var slot = slots[slotName];\n\n for (var i = 0, ii = projectFromAnchors.length; i < ii; ++i) {\n var anchor = projectFromAnchors[i];\n slot.projectFrom(anchor.auOwnerView, anchor.auSlotProjectFrom);\n }\n }\n }\n\n this.fallbackSlots = slots;\n ShadowDOM.distributeNodes(view, nodes, slots, projectionSource, index);\n }\n };\n\n ShadowSlot.prototype.created = function created(ownerView) {\n this.ownerView = ownerView;\n };\n\n ShadowSlot.prototype.bind = function bind(view) {\n if (this.contentView) {\n this.contentView.bind(view.bindingContext, view.overrideContext);\n }\n };\n\n ShadowSlot.prototype.attached = function attached() {\n if (this.contentView) {\n this.contentView.attached();\n }\n };\n\n ShadowSlot.prototype.detached = function detached() {\n if (this.contentView) {\n this.contentView.detached();\n }\n };\n\n ShadowSlot.prototype.unbind = function unbind() {\n if (this.contentView) {\n this.contentView.unbind();\n }\n };\n\n _createClass(ShadowSlot, [{\n key: 'needsFallbackRendering',\n get: function get() {\n return this.fallbackFactory && this.projections === 0;\n }\n }]);\n\n return ShadowSlot;\n}();\n\nexport var ShadowDOM = (_temp4 = _class10 = function () {\n function ShadowDOM() {\n \n }\n\n ShadowDOM.getSlotName = function getSlotName(node) {\n if (node.auSlotAttribute === undefined) {\n return ShadowDOM.defaultSlotKey;\n }\n\n return node.auSlotAttribute.value;\n };\n\n ShadowDOM.distributeView = function distributeView(view, slots, projectionSource, index, destinationOverride) {\n var nodes = void 0;\n\n if (view === null) {\n nodes = noNodes;\n } else {\n var childNodes = view.fragment.childNodes;\n var ii = childNodes.length;\n nodes = new Array(ii);\n\n for (var i = 0; i < ii; ++i) {\n nodes[i] = childNodes[i];\n }\n }\n\n ShadowDOM.distributeNodes(view, nodes, slots, projectionSource, index, destinationOverride);\n };\n\n ShadowDOM.undistributeView = function undistributeView(view, slots, projectionSource) {\n for (var slotName in slots) {\n slots[slotName].removeView(view, projectionSource);\n }\n };\n\n ShadowDOM.undistributeAll = function undistributeAll(slots, projectionSource) {\n for (var slotName in slots) {\n slots[slotName].removeAll(projectionSource);\n }\n };\n\n ShadowDOM.distributeNodes = function distributeNodes(view, nodes, slots, projectionSource, index, destinationOverride) {\n for (var i = 0, ii = nodes.length; i < ii; ++i) {\n var currentNode = nodes[i];\n var nodeType = currentNode.nodeType;\n\n if (currentNode.isContentProjectionSource) {\n currentNode.viewSlot.projectTo(slots);\n\n for (var slotName in slots) {\n slots[slotName].projectFrom(view, currentNode.viewSlot);\n }\n\n nodes.splice(i, 1);\n ii--;i--;\n } else if (nodeType === 1 || nodeType === 3 || currentNode.viewSlot instanceof PassThroughSlot) {\n if (nodeType === 3 && _isAllWhitespace(currentNode)) {\n nodes.splice(i, 1);\n ii--;i--;\n } else {\n var found = slots[destinationOverride || ShadowDOM.getSlotName(currentNode)];\n\n if (found) {\n found.addNode(view, currentNode, projectionSource, index);\n nodes.splice(i, 1);\n ii--;i--;\n }\n }\n } else {\n nodes.splice(i, 1);\n ii--;i--;\n }\n }\n\n for (var _slotName in slots) {\n var slot = slots[_slotName];\n\n if (slot.needsFallbackRendering) {\n slot.renderFallbackContent(view, nodes, projectionSource, index);\n }\n }\n };\n\n return ShadowDOM;\n}(), _class10.defaultSlotKey = '__au-default-slot-key__', _temp4);\n\nfunction register(lookup, name, resource, type) {\n if (!name) {\n return;\n }\n\n var existing = lookup[name];\n if (existing) {\n if (existing !== resource) {\n throw new Error('Attempted to register ' + type + ' when one with the same name already exists. Name: ' + name + '.');\n }\n\n return;\n }\n\n lookup[name] = resource;\n}\n\nexport function validateBehaviorName(name, type) {\n if (/[A-Z]/.test(name)) {\n var newName = _hyphenate(name);\n LogManager.getLogger('templating').warn('\\'' + name + '\\' is not a valid ' + type + ' name and has been converted to \\'' + newName + '\\'. Upper-case letters are not allowed because the DOM is not case-sensitive.');\n return newName;\n }\n return name;\n}\n\nvar conventionMark = '__au_resource__';\n\nexport var ViewResources = function () {\n ViewResources.convention = function convention(target, existing) {\n var resource = void 0;\n\n if (existing && conventionMark in existing) {\n return existing;\n }\n if ('$resource' in target) {\n var config = target.$resource;\n\n if (typeof config === 'string') {\n resource = existing || new HtmlBehaviorResource();\n resource[conventionMark] = true;\n if (!resource.elementName) {\n resource.elementName = validateBehaviorName(config, 'custom element');\n }\n } else {\n if (typeof config === 'function') {\n config = config.call(target);\n }\n if (typeof config === 'string') {\n config = { name: config };\n }\n\n config = Object.assign({}, config);\n\n var resourceType = config.type || 'element';\n\n var _name = config.name;\n switch (resourceType) {\n case 'element':case 'attribute':\n resource = existing || new HtmlBehaviorResource();\n resource[conventionMark] = true;\n if (resourceType === 'element') {\n if (!resource.elementName) {\n resource.elementName = _name ? validateBehaviorName(_name, 'custom element') : _hyphenate(target.name);\n }\n } else {\n if (!resource.attributeName) {\n resource.attributeName = _name ? validateBehaviorName(_name, 'custom attribute') : _hyphenate(target.name);\n }\n }\n if ('templateController' in config) {\n config.liftsContent = config.templateController;\n delete config.templateController;\n }\n if ('defaultBindingMode' in config && resource.attributeDefaultBindingMode !== undefined) {\n config.attributeDefaultBindingMode = config.defaultBindingMode;\n delete config.defaultBindingMode;\n }\n\n delete config.name;\n\n Object.assign(resource, config);\n break;\n case 'valueConverter':\n resource = new ValueConverterResource(camelCase(_name || target.name));\n break;\n case 'bindingBehavior':\n resource = new BindingBehaviorResource(camelCase(_name || target.name));\n break;\n case 'viewEngineHooks':\n resource = new ViewEngineHooksResource();\n break;\n }\n }\n\n if (resource instanceof HtmlBehaviorResource) {\n var _bindables = typeof config === 'string' ? undefined : config.bindables;\n var currentProps = resource.properties;\n if (Array.isArray(_bindables)) {\n for (var i = 0, ii = _bindables.length; ii > i; ++i) {\n var prop = _bindables[i];\n if (!prop || typeof prop !== 'string' && !prop.name) {\n throw new Error('Invalid bindable property at \"' + i + '\" for class \"' + target.name + '\". Expected either a string or an object with \"name\" property.');\n }\n var newProp = new BindableProperty(prop);\n\n var existed = false;\n for (var j = 0, jj = currentProps.length; jj > j; ++j) {\n if (currentProps[j].name === newProp.name) {\n existed = true;\n break;\n }\n }\n if (existed) {\n continue;\n }\n newProp.registerWith(target, resource);\n }\n }\n }\n }\n return resource;\n };\n\n function ViewResources(parent, viewUrl) {\n \n\n this.bindingLanguage = null;\n\n this.parent = parent || null;\n this.hasParent = this.parent !== null;\n this.viewUrl = viewUrl || '';\n this.lookupFunctions = {\n valueConverters: this.getValueConverter.bind(this),\n bindingBehaviors: this.getBindingBehavior.bind(this)\n };\n this.attributes = Object.create(null);\n this.elements = Object.create(null);\n this.valueConverters = Object.create(null);\n this.bindingBehaviors = Object.create(null);\n this.attributeMap = Object.create(null);\n this.values = Object.create(null);\n this.beforeCompile = this.afterCompile = this.beforeCreate = this.afterCreate = this.beforeBind = this.beforeUnbind = false;\n }\n\n ViewResources.prototype._tryAddHook = function _tryAddHook(obj, name) {\n if (typeof obj[name] === 'function') {\n var func = obj[name].bind(obj);\n var counter = 1;\n var callbackName = void 0;\n\n while (this[callbackName = name + counter.toString()] !== undefined) {\n counter++;\n }\n\n this[name] = true;\n this[callbackName] = func;\n }\n };\n\n ViewResources.prototype._invokeHook = function _invokeHook(name, one, two, three, four) {\n if (this.hasParent) {\n this.parent._invokeHook(name, one, two, three, four);\n }\n\n if (this[name]) {\n this[name + '1'](one, two, three, four);\n\n var callbackName = name + '2';\n if (this[callbackName]) {\n this[callbackName](one, two, three, four);\n\n callbackName = name + '3';\n if (this[callbackName]) {\n this[callbackName](one, two, three, four);\n\n var counter = 4;\n\n while (this[callbackName = name + counter.toString()] !== undefined) {\n this[callbackName](one, two, three, four);\n counter++;\n }\n }\n }\n }\n };\n\n ViewResources.prototype.registerViewEngineHooks = function registerViewEngineHooks(hooks) {\n this._tryAddHook(hooks, 'beforeCompile');\n this._tryAddHook(hooks, 'afterCompile');\n this._tryAddHook(hooks, 'beforeCreate');\n this._tryAddHook(hooks, 'afterCreate');\n this._tryAddHook(hooks, 'beforeBind');\n this._tryAddHook(hooks, 'beforeUnbind');\n };\n\n ViewResources.prototype.getBindingLanguage = function getBindingLanguage(bindingLanguageFallback) {\n return this.bindingLanguage || (this.bindingLanguage = bindingLanguageFallback);\n };\n\n ViewResources.prototype.patchInParent = function patchInParent(newParent) {\n var originalParent = this.parent;\n\n this.parent = newParent || null;\n this.hasParent = this.parent !== null;\n\n if (newParent.parent === null) {\n newParent.parent = originalParent;\n newParent.hasParent = originalParent !== null;\n }\n };\n\n ViewResources.prototype.relativeToView = function relativeToView(path) {\n return relativeToFile(path, this.viewUrl);\n };\n\n ViewResources.prototype.registerElement = function registerElement(tagName, behavior) {\n register(this.elements, tagName, behavior, 'an Element');\n };\n\n ViewResources.prototype.getElement = function getElement(tagName) {\n return this.elements[tagName] || (this.hasParent ? this.parent.getElement(tagName) : null);\n };\n\n ViewResources.prototype.mapAttribute = function mapAttribute(attribute) {\n return this.attributeMap[attribute] || (this.hasParent ? this.parent.mapAttribute(attribute) : null);\n };\n\n ViewResources.prototype.registerAttribute = function registerAttribute(attribute, behavior, knownAttribute) {\n this.attributeMap[attribute] = knownAttribute;\n register(this.attributes, attribute, behavior, 'an Attribute');\n };\n\n ViewResources.prototype.getAttribute = function getAttribute(attribute) {\n return this.attributes[attribute] || (this.hasParent ? this.parent.getAttribute(attribute) : null);\n };\n\n ViewResources.prototype.registerValueConverter = function registerValueConverter(name, valueConverter) {\n register(this.valueConverters, name, valueConverter, 'a ValueConverter');\n };\n\n ViewResources.prototype.getValueConverter = function getValueConverter(name) {\n return this.valueConverters[name] || (this.hasParent ? this.parent.getValueConverter(name) : null);\n };\n\n ViewResources.prototype.registerBindingBehavior = function registerBindingBehavior(name, bindingBehavior) {\n register(this.bindingBehaviors, name, bindingBehavior, 'a BindingBehavior');\n };\n\n ViewResources.prototype.getBindingBehavior = function getBindingBehavior(name) {\n return this.bindingBehaviors[name] || (this.hasParent ? this.parent.getBindingBehavior(name) : null);\n };\n\n ViewResources.prototype.registerValue = function registerValue(name, value) {\n register(this.values, name, value, 'a value');\n };\n\n ViewResources.prototype.getValue = function getValue(name) {\n return this.values[name] || (this.hasParent ? this.parent.getValue(name) : null);\n };\n\n ViewResources.prototype.autoRegister = function autoRegister(container, impl) {\n var resourceTypeMeta = metadata.getOwn(metadata.resource, impl);\n if (resourceTypeMeta) {\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\n ViewResources.convention(impl, resourceTypeMeta);\n\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n HtmlBehaviorResource.convention(impl.name, resourceTypeMeta);\n }\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n resourceTypeMeta.elementName = _hyphenate(impl.name);\n }\n }\n } else {\n resourceTypeMeta = ViewResources.convention(impl) || HtmlBehaviorResource.convention(impl.name) || ValueConverterResource.convention(impl.name) || BindingBehaviorResource.convention(impl.name) || ViewEngineHooksResource.convention(impl.name);\n if (!resourceTypeMeta) {\n resourceTypeMeta = new HtmlBehaviorResource();\n resourceTypeMeta.elementName = _hyphenate(impl.name);\n }\n metadata.define(metadata.resource, resourceTypeMeta, impl);\n }\n resourceTypeMeta.initialize(container, impl);\n resourceTypeMeta.register(this);\n return resourceTypeMeta;\n };\n\n return ViewResources;\n}();\n\nexport var View = function () {\n function View(container, viewFactory, fragment, controllers, bindings, children, slots) {\n \n\n this.container = container;\n this.viewFactory = viewFactory;\n this.resources = viewFactory.resources;\n this.fragment = fragment;\n this.firstChild = fragment.firstChild;\n this.lastChild = fragment.lastChild;\n this.controllers = controllers;\n this.bindings = bindings;\n this.children = children;\n this.slots = slots;\n this.hasSlots = false;\n this.fromCache = false;\n this.isBound = false;\n this.isAttached = false;\n this.bindingContext = null;\n this.overrideContext = null;\n this.controller = null;\n this.viewModelScope = null;\n this.animatableElement = undefined;\n this._isUserControlled = false;\n this.contentView = null;\n\n for (var _key3 in slots) {\n this.hasSlots = true;\n break;\n }\n }\n\n View.prototype.returnToCache = function returnToCache() {\n this.viewFactory.returnViewToCache(this);\n };\n\n View.prototype.created = function created() {\n var i = void 0;\n var ii = void 0;\n var controllers = this.controllers;\n\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].created(this);\n }\n };\n\n View.prototype.bind = function bind(bindingContext, overrideContext, _systemUpdate) {\n var controllers = void 0;\n var bindings = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (_systemUpdate && this._isUserControlled) {\n return;\n }\n\n if (this.isBound) {\n if (this.bindingContext === bindingContext) {\n return;\n }\n\n this.unbind();\n }\n\n this.isBound = true;\n this.bindingContext = bindingContext;\n this.overrideContext = overrideContext || createOverrideContext(bindingContext);\n\n this.resources._invokeHook('beforeBind', this);\n\n bindings = this.bindings;\n for (i = 0, ii = bindings.length; i < ii; ++i) {\n bindings[i].bind(this);\n }\n\n if (this.viewModelScope !== null) {\n bindingContext.bind(this.viewModelScope.bindingContext, this.viewModelScope.overrideContext);\n this.viewModelScope = null;\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].bind(this);\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].bind(bindingContext, overrideContext, true);\n }\n\n if (this.hasSlots) {\n ShadowDOM.distributeView(this.contentView, this.slots);\n }\n };\n\n View.prototype.addBinding = function addBinding(binding) {\n this.bindings.push(binding);\n\n if (this.isBound) {\n binding.bind(this);\n }\n };\n\n View.prototype.unbind = function unbind() {\n var controllers = void 0;\n var bindings = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (this.isBound) {\n this.isBound = false;\n this.resources._invokeHook('beforeUnbind', this);\n\n if (this.controller !== null) {\n this.controller.unbind();\n }\n\n bindings = this.bindings;\n for (i = 0, ii = bindings.length; i < ii; ++i) {\n bindings[i].unbind();\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].unbind();\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].unbind();\n }\n\n this.bindingContext = null;\n this.overrideContext = null;\n }\n };\n\n View.prototype.insertNodesBefore = function insertNodesBefore(refNode) {\n refNode.parentNode.insertBefore(this.fragment, refNode);\n };\n\n View.prototype.appendNodesTo = function appendNodesTo(parent) {\n parent.appendChild(this.fragment);\n };\n\n View.prototype.removeNodes = function removeNodes() {\n var fragment = this.fragment;\n var current = this.firstChild;\n var end = this.lastChild;\n var next = void 0;\n\n while (current) {\n next = current.nextSibling;\n fragment.appendChild(current);\n\n if (current === end) {\n break;\n }\n\n current = next;\n }\n };\n\n View.prototype.attached = function attached() {\n var controllers = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (this.isAttached) {\n return;\n }\n\n this.isAttached = true;\n\n if (this.controller !== null) {\n this.controller.attached();\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].attached();\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].attached();\n }\n };\n\n View.prototype.detached = function detached() {\n var controllers = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (this.isAttached) {\n this.isAttached = false;\n\n if (this.controller !== null) {\n this.controller.detached();\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].detached();\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].detached();\n }\n }\n };\n\n return View;\n}();\n\nfunction getAnimatableElement(view) {\n if (view.animatableElement !== undefined) {\n return view.animatableElement;\n }\n\n var current = view.firstChild;\n\n while (current && current.nodeType !== 1) {\n current = current.nextSibling;\n }\n\n if (current && current.nodeType === 1) {\n return view.animatableElement = current.classList.contains('au-animate') ? current : null;\n }\n\n return view.animatableElement = null;\n}\n\nexport var ViewSlot = function () {\n function ViewSlot(anchor, anchorIsContainer) {\n var animator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Animator.instance;\n\n \n\n this.anchor = anchor;\n this.anchorIsContainer = anchorIsContainer;\n this.bindingContext = null;\n this.overrideContext = null;\n this.animator = animator;\n this.children = [];\n this.isBound = false;\n this.isAttached = false;\n this.contentSelectors = null;\n anchor.viewSlot = this;\n anchor.isContentProjectionSource = false;\n }\n\n ViewSlot.prototype.animateView = function animateView(view) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'enter';\n\n var animatableElement = getAnimatableElement(view);\n\n if (animatableElement !== null) {\n switch (direction) {\n case 'enter':\n return this.animator.enter(animatableElement);\n case 'leave':\n return this.animator.leave(animatableElement);\n default:\n throw new Error('Invalid animation direction: ' + direction);\n }\n }\n };\n\n ViewSlot.prototype.transformChildNodesIntoView = function transformChildNodesIntoView() {\n var parent = this.anchor;\n\n this.children.push({\n fragment: parent,\n firstChild: parent.firstChild,\n lastChild: parent.lastChild,\n returnToCache: function returnToCache() {},\n removeNodes: function removeNodes() {\n var last = void 0;\n\n while (last = parent.lastChild) {\n parent.removeChild(last);\n }\n },\n created: function created() {},\n bind: function bind() {},\n unbind: function unbind() {},\n attached: function attached() {},\n detached: function detached() {}\n });\n };\n\n ViewSlot.prototype.bind = function bind(bindingContext, overrideContext) {\n var i = void 0;\n var ii = void 0;\n var children = void 0;\n\n if (this.isBound) {\n if (this.bindingContext === bindingContext) {\n return;\n }\n\n this.unbind();\n }\n\n this.isBound = true;\n this.bindingContext = bindingContext = bindingContext || this.bindingContext;\n this.overrideContext = overrideContext = overrideContext || this.overrideContext;\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].bind(bindingContext, overrideContext, true);\n }\n };\n\n ViewSlot.prototype.unbind = function unbind() {\n if (this.isBound) {\n var i = void 0;\n var ii = void 0;\n var _children4 = this.children;\n\n this.isBound = false;\n this.bindingContext = null;\n this.overrideContext = null;\n\n for (i = 0, ii = _children4.length; i < ii; ++i) {\n _children4[i].unbind();\n }\n }\n };\n\n ViewSlot.prototype.add = function add(view) {\n if (this.anchorIsContainer) {\n view.appendNodesTo(this.anchor);\n } else {\n view.insertNodesBefore(this.anchor);\n }\n\n this.children.push(view);\n\n if (this.isAttached) {\n view.attached();\n return this.animateView(view, 'enter');\n }\n };\n\n ViewSlot.prototype.insert = function insert(index, view) {\n var children = this.children;\n var length = children.length;\n\n if (index === 0 && length === 0 || index >= length) {\n return this.add(view);\n }\n\n view.insertNodesBefore(children[index].firstChild);\n children.splice(index, 0, view);\n\n if (this.isAttached) {\n view.attached();\n return this.animateView(view, 'enter');\n }\n };\n\n ViewSlot.prototype.move = function move(sourceIndex, targetIndex) {\n if (sourceIndex === targetIndex) {\n return;\n }\n\n var children = this.children;\n var view = children[sourceIndex];\n\n view.removeNodes();\n view.insertNodesBefore(children[targetIndex].firstChild);\n children.splice(sourceIndex, 1);\n children.splice(targetIndex, 0, view);\n };\n\n ViewSlot.prototype.remove = function remove(view, returnToCache, skipAnimation) {\n return this.removeAt(this.children.indexOf(view), returnToCache, skipAnimation);\n };\n\n ViewSlot.prototype.removeMany = function removeMany(viewsToRemove, returnToCache, skipAnimation) {\n var _this3 = this;\n\n var children = this.children;\n var ii = viewsToRemove.length;\n var i = void 0;\n var rmPromises = [];\n\n viewsToRemove.forEach(function (child) {\n if (skipAnimation) {\n child.removeNodes();\n return;\n }\n\n var animation = _this3.animateView(child, 'leave');\n if (animation) {\n rmPromises.push(animation.then(function () {\n return child.removeNodes();\n }));\n } else {\n child.removeNodes();\n }\n });\n\n var removeAction = function removeAction() {\n if (_this3.isAttached) {\n for (i = 0; i < ii; ++i) {\n viewsToRemove[i].detached();\n }\n }\n\n if (returnToCache) {\n for (i = 0; i < ii; ++i) {\n viewsToRemove[i].returnToCache();\n }\n }\n\n for (i = 0; i < ii; ++i) {\n var index = children.indexOf(viewsToRemove[i]);\n if (index >= 0) {\n children.splice(index, 1);\n }\n }\n };\n\n if (rmPromises.length > 0) {\n return Promise.all(rmPromises).then(function () {\n return removeAction();\n });\n }\n\n return removeAction();\n };\n\n ViewSlot.prototype.removeAt = function removeAt(index, returnToCache, skipAnimation) {\n var _this4 = this;\n\n var view = this.children[index];\n\n var removeAction = function removeAction() {\n index = _this4.children.indexOf(view);\n view.removeNodes();\n _this4.children.splice(index, 1);\n\n if (_this4.isAttached) {\n view.detached();\n }\n\n if (returnToCache) {\n view.returnToCache();\n }\n\n return view;\n };\n\n if (!skipAnimation) {\n var animation = this.animateView(view, 'leave');\n if (animation) {\n return animation.then(function () {\n return removeAction();\n });\n }\n }\n\n return removeAction();\n };\n\n ViewSlot.prototype.removeAll = function removeAll(returnToCache, skipAnimation) {\n var _this5 = this;\n\n var children = this.children;\n var ii = children.length;\n var i = void 0;\n var rmPromises = [];\n\n children.forEach(function (child) {\n if (skipAnimation) {\n child.removeNodes();\n return;\n }\n\n var animation = _this5.animateView(child, 'leave');\n if (animation) {\n rmPromises.push(animation.then(function () {\n return child.removeNodes();\n }));\n } else {\n child.removeNodes();\n }\n });\n\n var removeAction = function removeAction() {\n if (_this5.isAttached) {\n for (i = 0; i < ii; ++i) {\n children[i].detached();\n }\n }\n\n if (returnToCache) {\n for (i = 0; i < ii; ++i) {\n var _child3 = children[i];\n\n if (_child3) {\n _child3.returnToCache();\n }\n }\n }\n\n _this5.children = [];\n };\n\n if (rmPromises.length > 0) {\n return Promise.all(rmPromises).then(function () {\n return removeAction();\n });\n }\n\n return removeAction();\n };\n\n ViewSlot.prototype.attached = function attached() {\n var i = void 0;\n var ii = void 0;\n var children = void 0;\n var child = void 0;\n\n if (this.isAttached) {\n return;\n }\n\n this.isAttached = true;\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n child = children[i];\n child.attached();\n this.animateView(child, 'enter');\n }\n };\n\n ViewSlot.prototype.detached = function detached() {\n var i = void 0;\n var ii = void 0;\n var children = void 0;\n\n if (this.isAttached) {\n this.isAttached = false;\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].detached();\n }\n }\n };\n\n ViewSlot.prototype.projectTo = function projectTo(slots) {\n var _this6 = this;\n\n this.projectToSlots = slots;\n this.add = this._projectionAdd;\n this.insert = this._projectionInsert;\n this.move = this._projectionMove;\n this.remove = this._projectionRemove;\n this.removeAt = this._projectionRemoveAt;\n this.removeMany = this._projectionRemoveMany;\n this.removeAll = this._projectionRemoveAll;\n this.children.forEach(function (view) {\n return ShadowDOM.distributeView(view, slots, _this6);\n });\n };\n\n ViewSlot.prototype._projectionAdd = function _projectionAdd(view) {\n ShadowDOM.distributeView(view, this.projectToSlots, this);\n\n this.children.push(view);\n\n if (this.isAttached) {\n view.attached();\n }\n };\n\n ViewSlot.prototype._projectionInsert = function _projectionInsert(index, view) {\n if (index === 0 && !this.children.length || index >= this.children.length) {\n this.add(view);\n } else {\n ShadowDOM.distributeView(view, this.projectToSlots, this, index);\n\n this.children.splice(index, 0, view);\n\n if (this.isAttached) {\n view.attached();\n }\n }\n };\n\n ViewSlot.prototype._projectionMove = function _projectionMove(sourceIndex, targetIndex) {\n if (sourceIndex === targetIndex) {\n return;\n }\n\n var children = this.children;\n var view = children[sourceIndex];\n\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\n ShadowDOM.distributeView(view, this.projectToSlots, this, targetIndex);\n\n children.splice(sourceIndex, 1);\n children.splice(targetIndex, 0, view);\n };\n\n ViewSlot.prototype._projectionRemove = function _projectionRemove(view, returnToCache) {\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\n this.children.splice(this.children.indexOf(view), 1);\n\n if (this.isAttached) {\n view.detached();\n }\n if (returnToCache) {\n view.returnToCache();\n }\n };\n\n ViewSlot.prototype._projectionRemoveAt = function _projectionRemoveAt(index, returnToCache) {\n var view = this.children[index];\n\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\n this.children.splice(index, 1);\n\n if (this.isAttached) {\n view.detached();\n }\n if (returnToCache) {\n view.returnToCache();\n }\n };\n\n ViewSlot.prototype._projectionRemoveMany = function _projectionRemoveMany(viewsToRemove, returnToCache) {\n var _this7 = this;\n\n viewsToRemove.forEach(function (view) {\n return _this7.remove(view, returnToCache);\n });\n };\n\n ViewSlot.prototype._projectionRemoveAll = function _projectionRemoveAll(returnToCache) {\n ShadowDOM.undistributeAll(this.projectToSlots, this);\n\n var children = this.children;\n var ii = children.length;\n\n for (var i = 0; i < ii; ++i) {\n if (returnToCache) {\n children[i].returnToCache();\n } else if (this.isAttached) {\n children[i].detached();\n }\n }\n\n this.children = [];\n };\n\n return ViewSlot;\n}();\n\nvar ProviderResolver = resolver(_class12 = function () {\n function ProviderResolver() {\n \n }\n\n ProviderResolver.prototype.get = function get(container, key) {\n var id = key.__providerId__;\n return id in container ? container[id] : container[id] = container.invoke(key);\n };\n\n return ProviderResolver;\n}()) || _class12;\n\nvar providerResolverInstance = new ProviderResolver();\n\nfunction elementContainerGet(key) {\n if (key === DOM.Element) {\n return this.element;\n }\n\n if (key === BoundViewFactory) {\n if (this.boundViewFactory) {\n return this.boundViewFactory;\n }\n\n var factory = this.instruction.viewFactory;\n var _partReplacements = this.partReplacements;\n\n if (_partReplacements) {\n factory = _partReplacements[factory.part] || factory;\n }\n\n this.boundViewFactory = new BoundViewFactory(this, factory, _partReplacements);\n return this.boundViewFactory;\n }\n\n if (key === ViewSlot) {\n if (this.viewSlot === undefined) {\n this.viewSlot = new ViewSlot(this.element, this.instruction.anchorIsContainer);\n this.element.isContentProjectionSource = this.instruction.lifting;\n this.children.push(this.viewSlot);\n }\n\n return this.viewSlot;\n }\n\n if (key === ElementEvents) {\n return this.elementEvents || (this.elementEvents = new ElementEvents(this.element));\n }\n\n if (key === CompositionTransaction) {\n return this.compositionTransaction || (this.compositionTransaction = this.parent.get(key));\n }\n\n if (key === ViewResources) {\n return this.viewResources;\n }\n\n if (key === TargetInstruction) {\n return this.instruction;\n }\n\n return this.superGet(key);\n}\n\nfunction createElementContainer(parent, element, instruction, children, partReplacements, resources) {\n var container = parent.createChild();\n var providers = void 0;\n var i = void 0;\n\n container.element = element;\n container.instruction = instruction;\n container.children = children;\n container.viewResources = resources;\n container.partReplacements = partReplacements;\n\n providers = instruction.providers;\n i = providers.length;\n\n while (i--) {\n container._resolvers.set(providers[i], providerResolverInstance);\n }\n\n container.superGet = container.get;\n container.get = elementContainerGet;\n\n return container;\n}\n\nfunction hasAttribute(name) {\n return this._element.hasAttribute(name);\n}\n\nfunction getAttribute(name) {\n return this._element.getAttribute(name);\n}\n\nfunction setAttribute(name, value) {\n this._element.setAttribute(name, value);\n}\n\nfunction makeElementIntoAnchor(element, elementInstruction) {\n var anchor = DOM.createComment('anchor');\n\n if (elementInstruction) {\n var firstChild = element.firstChild;\n\n if (firstChild && firstChild.tagName === 'AU-CONTENT') {\n anchor.contentElement = firstChild;\n }\n\n anchor._element = element;\n\n anchor.hasAttribute = hasAttribute;\n anchor.getAttribute = getAttribute;\n anchor.setAttribute = setAttribute;\n }\n\n DOM.replaceNode(anchor, element);\n\n return anchor;\n}\n\nfunction applyInstructions(containers, element, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources) {\n var behaviorInstructions = instruction.behaviorInstructions;\n var expressions = instruction.expressions;\n var elementContainer = void 0;\n var i = void 0;\n var ii = void 0;\n var current = void 0;\n var instance = void 0;\n\n if (instruction.contentExpression) {\n bindings.push(instruction.contentExpression.createBinding(element.nextSibling));\n element.nextSibling.auInterpolationTarget = true;\n element.parentNode.removeChild(element);\n return;\n }\n\n if (instruction.shadowSlot) {\n var commentAnchor = DOM.createComment('slot');\n var slot = void 0;\n\n if (instruction.slotDestination) {\n slot = new PassThroughSlot(commentAnchor, instruction.slotName, instruction.slotDestination, instruction.slotFallbackFactory);\n } else {\n slot = new ShadowSlot(commentAnchor, instruction.slotName, instruction.slotFallbackFactory);\n }\n\n DOM.replaceNode(commentAnchor, element);\n shadowSlots[instruction.slotName] = slot;\n controllers.push(slot);\n return;\n }\n\n if (instruction.letElement) {\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n bindings.push(expressions[i].createBinding());\n }\n element.parentNode.removeChild(element);\n return;\n }\n\n if (behaviorInstructions.length) {\n if (!instruction.anchorIsContainer) {\n element = makeElementIntoAnchor(element, instruction.elementInstruction);\n }\n\n containers[instruction.injectorId] = elementContainer = createElementContainer(containers[instruction.parentInjectorId], element, instruction, children, partReplacements, resources);\n\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n current = behaviorInstructions[i];\n instance = current.type.create(elementContainer, current, element, bindings);\n controllers.push(instance);\n }\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n bindings.push(expressions[i].createBinding(element));\n }\n}\n\nfunction styleStringToObject(style, target) {\n var attributes = style.split(';');\n var firstIndexOfColon = void 0;\n var i = void 0;\n var current = void 0;\n var key = void 0;\n var value = void 0;\n\n target = target || {};\n\n for (i = 0; i < attributes.length; i++) {\n current = attributes[i];\n firstIndexOfColon = current.indexOf(':');\n key = current.substring(0, firstIndexOfColon).trim();\n value = current.substring(firstIndexOfColon + 1).trim();\n target[key] = value;\n }\n\n return target;\n}\n\nfunction styleObjectToString(obj) {\n var result = '';\n\n for (var _key4 in obj) {\n result += _key4 + ':' + obj[_key4] + ';';\n }\n\n return result;\n}\n\nfunction applySurrogateInstruction(container, element, instruction, controllers, bindings, children) {\n var behaviorInstructions = instruction.behaviorInstructions;\n var expressions = instruction.expressions;\n var providers = instruction.providers;\n var values = instruction.values;\n var i = void 0;\n var ii = void 0;\n var current = void 0;\n var instance = void 0;\n var currentAttributeValue = void 0;\n\n i = providers.length;\n while (i--) {\n container._resolvers.set(providers[i], providerResolverInstance);\n }\n\n for (var _key5 in values) {\n currentAttributeValue = element.getAttribute(_key5);\n\n if (currentAttributeValue) {\n if (_key5 === 'class') {\n element.setAttribute('class', currentAttributeValue + ' ' + values[_key5]);\n } else if (_key5 === 'style') {\n var styleObject = styleStringToObject(values[_key5]);\n styleStringToObject(currentAttributeValue, styleObject);\n element.setAttribute('style', styleObjectToString(styleObject));\n }\n } else {\n element.setAttribute(_key5, values[_key5]);\n }\n }\n\n if (behaviorInstructions.length) {\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n current = behaviorInstructions[i];\n instance = current.type.create(container, current, element, bindings);\n\n if (instance.contentView) {\n children.push(instance.contentView);\n }\n\n controllers.push(instance);\n }\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n bindings.push(expressions[i].createBinding(element));\n }\n}\n\nexport var BoundViewFactory = function () {\n function BoundViewFactory(parentContainer, viewFactory, partReplacements) {\n \n\n this.parentContainer = parentContainer;\n this.viewFactory = viewFactory;\n this.factoryCreateInstruction = { partReplacements: partReplacements };\n }\n\n BoundViewFactory.prototype.create = function create() {\n var view = this.viewFactory.create(this.parentContainer.createChild(), this.factoryCreateInstruction);\n view._isUserControlled = true;\n return view;\n };\n\n BoundViewFactory.prototype.setCacheSize = function setCacheSize(size, doNotOverrideIfAlreadySet) {\n this.viewFactory.setCacheSize(size, doNotOverrideIfAlreadySet);\n };\n\n BoundViewFactory.prototype.getCachedView = function getCachedView() {\n return this.viewFactory.getCachedView();\n };\n\n BoundViewFactory.prototype.returnViewToCache = function returnViewToCache(view) {\n this.viewFactory.returnViewToCache(view);\n };\n\n _createClass(BoundViewFactory, [{\n key: 'isCaching',\n get: function get() {\n return this.viewFactory.isCaching;\n }\n }]);\n\n return BoundViewFactory;\n}();\n\nexport var ViewFactory = function () {\n function ViewFactory(template, instructions, resources) {\n \n\n this.isCaching = false;\n\n this.template = template;\n this.instructions = instructions;\n this.resources = resources;\n this.cacheSize = -1;\n this.cache = null;\n }\n\n ViewFactory.prototype.setCacheSize = function setCacheSize(size, doNotOverrideIfAlreadySet) {\n if (size) {\n if (size === '*') {\n size = Number.MAX_VALUE;\n } else if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n }\n\n if (this.cacheSize === -1 || !doNotOverrideIfAlreadySet) {\n this.cacheSize = size;\n }\n\n if (this.cacheSize > 0) {\n this.cache = [];\n } else {\n this.cache = null;\n }\n\n this.isCaching = this.cacheSize > 0;\n };\n\n ViewFactory.prototype.getCachedView = function getCachedView() {\n return this.cache !== null ? this.cache.pop() || null : null;\n };\n\n ViewFactory.prototype.returnViewToCache = function returnViewToCache(view) {\n if (view.isAttached) {\n view.detached();\n }\n\n if (view.isBound) {\n view.unbind();\n }\n\n if (this.cache !== null && this.cache.length < this.cacheSize) {\n view.fromCache = true;\n this.cache.push(view);\n }\n };\n\n ViewFactory.prototype.create = function create(container, createInstruction, element) {\n createInstruction = createInstruction || BehaviorInstruction.normal;\n\n var cachedView = this.getCachedView();\n if (cachedView !== null) {\n return cachedView;\n }\n\n var fragment = createInstruction.enhance ? this.template : this.template.cloneNode(true);\n var instructables = fragment.querySelectorAll('.au-target');\n var instructions = this.instructions;\n var resources = this.resources;\n var controllers = [];\n var bindings = [];\n var children = [];\n var shadowSlots = Object.create(null);\n var containers = { root: container };\n var partReplacements = createInstruction.partReplacements;\n var i = void 0;\n var ii = void 0;\n var view = void 0;\n var instructable = void 0;\n var instruction = void 0;\n\n this.resources._invokeHook('beforeCreate', this, container, fragment, createInstruction);\n\n if (element && this.surrogateInstruction !== null) {\n applySurrogateInstruction(container, element, this.surrogateInstruction, controllers, bindings, children);\n }\n\n if (createInstruction.enhance && fragment.hasAttribute('au-target-id')) {\n instructable = fragment;\n instruction = instructions[instructable.getAttribute('au-target-id')];\n applyInstructions(containers, instructable, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources);\n }\n\n for (i = 0, ii = instructables.length; i < ii; ++i) {\n instructable = instructables[i];\n instruction = instructions[instructable.getAttribute('au-target-id')];\n applyInstructions(containers, instructable, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources);\n }\n\n view = new View(container, this, fragment, controllers, bindings, children, shadowSlots);\n\n if (!createInstruction.initiatedByBehavior) {\n view.created();\n }\n\n this.resources._invokeHook('afterCreate', view);\n\n return view;\n };\n\n return ViewFactory;\n}();\n\nvar nextInjectorId = 0;\nfunction getNextInjectorId() {\n return ++nextInjectorId;\n}\n\nvar lastAUTargetID = 0;\nfunction getNextAUTargetID() {\n return (++lastAUTargetID).toString();\n}\n\nfunction makeIntoInstructionTarget(element) {\n var value = element.getAttribute('class');\n var auTargetID = getNextAUTargetID();\n\n element.setAttribute('class', value ? value + ' au-target' : 'au-target');\n element.setAttribute('au-target-id', auTargetID);\n\n return auTargetID;\n}\n\nfunction makeShadowSlot(compiler, resources, node, instructions, parentInjectorId) {\n var auShadowSlot = DOM.createElement('au-shadow-slot');\n DOM.replaceNode(auShadowSlot, node);\n\n var auTargetID = makeIntoInstructionTarget(auShadowSlot);\n var instruction = TargetInstruction.shadowSlot(parentInjectorId);\n\n instruction.slotName = node.getAttribute('name') || ShadowDOM.defaultSlotKey;\n instruction.slotDestination = node.getAttribute('slot');\n\n if (node.innerHTML.trim()) {\n var fragment = DOM.createDocumentFragment();\n var _child4 = void 0;\n\n while (_child4 = node.firstChild) {\n fragment.appendChild(_child4);\n }\n\n instruction.slotFallbackFactory = compiler.compile(fragment, resources);\n }\n\n instructions[auTargetID] = instruction;\n\n return auShadowSlot;\n}\n\nvar defaultLetHandler = BindingLanguage.prototype.createLetExpressions;\n\nexport var ViewCompiler = (_dec7 = inject(BindingLanguage, ViewResources), _dec7(_class14 = function () {\n function ViewCompiler(bindingLanguage, resources) {\n \n\n this.bindingLanguage = bindingLanguage;\n this.resources = resources;\n }\n\n ViewCompiler.prototype.compile = function compile(source, resources, compileInstruction) {\n resources = resources || this.resources;\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\n source = typeof source === 'string' ? DOM.createTemplateFromMarkup(source) : source;\n\n var content = void 0;\n var part = void 0;\n var cacheSize = void 0;\n\n if (source.content) {\n part = source.getAttribute('part');\n cacheSize = source.getAttribute('view-cache');\n content = DOM.adoptNode(source.content);\n } else {\n content = source;\n }\n\n compileInstruction.targetShadowDOM = compileInstruction.targetShadowDOM && FEATURE.shadowDOM;\n resources._invokeHook('beforeCompile', content, resources, compileInstruction);\n\n var instructions = {};\n this._compileNode(content, resources, instructions, source, 'root', !compileInstruction.targetShadowDOM);\n\n var firstChild = content.firstChild;\n if (firstChild && firstChild.nodeType === 1) {\n var targetId = firstChild.getAttribute('au-target-id');\n if (targetId) {\n var ins = instructions[targetId];\n\n if (ins.shadowSlot || ins.lifting || ins.elementInstruction && !ins.elementInstruction.anchorIsContainer) {\n content.insertBefore(DOM.createComment('view'), firstChild);\n }\n }\n }\n\n var factory = new ViewFactory(content, instructions, resources);\n\n factory.surrogateInstruction = compileInstruction.compileSurrogate ? this._compileSurrogate(source, resources) : null;\n factory.part = part;\n\n if (cacheSize) {\n factory.setCacheSize(cacheSize);\n }\n\n resources._invokeHook('afterCompile', factory);\n\n return factory;\n };\n\n ViewCompiler.prototype._compileNode = function _compileNode(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM) {\n switch (node.nodeType) {\n case 1:\n return this._compileElement(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM);\n case 3:\n var expression = resources.getBindingLanguage(this.bindingLanguage).inspectTextContent(resources, node.wholeText);\n if (expression) {\n var marker = DOM.createElement('au-marker');\n var auTargetID = makeIntoInstructionTarget(marker);\n (node.parentNode || parentNode).insertBefore(marker, node);\n node.textContent = ' ';\n instructions[auTargetID] = TargetInstruction.contentExpression(expression);\n\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n (node.parentNode || parentNode).removeChild(node.nextSibling);\n }\n } else {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node = node.nextSibling;\n }\n }\n return node.nextSibling;\n case 11:\n var currentChild = node.firstChild;\n while (currentChild) {\n currentChild = this._compileNode(currentChild, resources, instructions, node, parentInjectorId, targetLightDOM);\n }\n break;\n default:\n break;\n }\n\n return node.nextSibling;\n };\n\n ViewCompiler.prototype._compileSurrogate = function _compileSurrogate(node, resources) {\n var tagName = node.tagName.toLowerCase();\n var attributes = node.attributes;\n var bindingLanguage = resources.getBindingLanguage(this.bindingLanguage);\n var knownAttribute = void 0;\n var property = void 0;\n var instruction = void 0;\n var i = void 0;\n var ii = void 0;\n var attr = void 0;\n var attrName = void 0;\n var attrValue = void 0;\n var info = void 0;\n var type = void 0;\n var expressions = [];\n var expression = void 0;\n var behaviorInstructions = [];\n var values = {};\n var hasValues = false;\n var providers = [];\n\n for (i = 0, ii = attributes.length; i < ii; ++i) {\n attr = attributes[i];\n attrName = attr.name;\n attrValue = attr.value;\n\n info = bindingLanguage.inspectAttribute(resources, tagName, attrName, attrValue);\n type = resources.getAttribute(info.attrName);\n\n if (type) {\n knownAttribute = resources.mapAttribute(info.attrName);\n if (knownAttribute) {\n property = type.attributes[knownAttribute];\n\n if (property) {\n info.defaultBindingMode = property.defaultBindingMode;\n\n if (!info.command && !info.expression) {\n info.command = property.hasOptions ? 'options' : null;\n }\n\n if (info.command && info.command !== 'options' && type.primaryProperty) {\n var _primaryProperty = type.primaryProperty;\n attrName = info.attrName = _primaryProperty.attribute;\n\n info.defaultBindingMode = _primaryProperty.defaultBindingMode;\n }\n }\n }\n }\n\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, undefined, type);\n\n if (instruction) {\n if (instruction.alteredAttr) {\n type = resources.getAttribute(instruction.attrName);\n }\n\n if (instruction.discrete) {\n expressions.push(instruction);\n } else {\n if (type) {\n instruction.type = type;\n this._configureProperties(instruction, resources);\n\n if (type.liftsContent) {\n throw new Error('You cannot place a template controller on a surrogate element.');\n } else {\n behaviorInstructions.push(instruction);\n }\n } else {\n expressions.push(instruction.attributes[instruction.attrName]);\n }\n }\n } else {\n if (type) {\n instruction = BehaviorInstruction.attribute(attrName, type);\n instruction.attributes[resources.mapAttribute(attrName)] = attrValue;\n\n if (type.liftsContent) {\n throw new Error('You cannot place a template controller on a surrogate element.');\n } else {\n behaviorInstructions.push(instruction);\n }\n } else if (attrName !== 'id' && attrName !== 'part' && attrName !== 'replace-part') {\n hasValues = true;\n values[attrName] = attrValue;\n }\n }\n }\n\n if (expressions.length || behaviorInstructions.length || hasValues) {\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n instruction = behaviorInstructions[i];\n instruction.type.compile(this, resources, node, instruction);\n providers.push(instruction.type.target);\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n expression = expressions[i];\n if (expression.attrToRemove !== undefined) {\n node.removeAttribute(expression.attrToRemove);\n }\n }\n\n return TargetInstruction.surrogate(providers, behaviorInstructions, expressions, values);\n }\n\n return null;\n };\n\n ViewCompiler.prototype._compileElement = function _compileElement(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM) {\n var tagName = node.tagName.toLowerCase();\n var attributes = node.attributes;\n var expressions = [];\n var expression = void 0;\n var behaviorInstructions = [];\n var providers = [];\n var bindingLanguage = resources.getBindingLanguage(this.bindingLanguage);\n var liftingInstruction = void 0;\n var viewFactory = void 0;\n var type = void 0;\n var elementInstruction = void 0;\n var elementProperty = void 0;\n var i = void 0;\n var ii = void 0;\n var attr = void 0;\n var attrName = void 0;\n var attrValue = void 0;\n var originalAttrName = void 0;\n var instruction = void 0;\n var info = void 0;\n var property = void 0;\n var knownAttribute = void 0;\n var auTargetID = void 0;\n var injectorId = void 0;\n\n if (tagName === 'slot') {\n if (targetLightDOM) {\n node = makeShadowSlot(this, resources, node, instructions, parentInjectorId);\n }\n return node.nextSibling;\n } else if (tagName === 'template') {\n if (!('content' in node)) {\n throw new Error('You cannot place a template element within ' + node.namespaceURI + ' namespace');\n }\n viewFactory = this.compile(node, resources);\n viewFactory.part = node.getAttribute('part');\n } else {\n type = resources.getElement(node.getAttribute('as-element') || tagName);\n\n if (tagName === 'let' && !type && bindingLanguage.createLetExpressions !== defaultLetHandler) {\n expressions = bindingLanguage.createLetExpressions(resources, node);\n auTargetID = makeIntoInstructionTarget(node);\n instructions[auTargetID] = TargetInstruction.letElement(expressions);\n return node.nextSibling;\n }\n if (type) {\n elementInstruction = BehaviorInstruction.element(node, type);\n type.processAttributes(this, resources, node, attributes, elementInstruction);\n behaviorInstructions.push(elementInstruction);\n }\n }\n\n for (i = 0, ii = attributes.length; i < ii; ++i) {\n attr = attributes[i];\n originalAttrName = attrName = attr.name;\n attrValue = attr.value;\n info = bindingLanguage.inspectAttribute(resources, tagName, attrName, attrValue);\n\n if (targetLightDOM && info.attrName === 'slot') {\n info.attrName = attrName = 'au-slot';\n }\n\n type = resources.getAttribute(info.attrName);\n elementProperty = null;\n\n if (type) {\n knownAttribute = resources.mapAttribute(info.attrName);\n if (knownAttribute) {\n property = type.attributes[knownAttribute];\n\n if (property) {\n info.defaultBindingMode = property.defaultBindingMode;\n\n if (!info.command && !info.expression) {\n info.command = property.hasOptions ? 'options' : null;\n }\n\n if (info.command && info.command !== 'options' && type.primaryProperty) {\n var _primaryProperty2 = type.primaryProperty;\n attrName = info.attrName = _primaryProperty2.attribute;\n\n info.defaultBindingMode = _primaryProperty2.defaultBindingMode;\n }\n }\n }\n } else if (elementInstruction) {\n elementProperty = elementInstruction.type.attributes[info.attrName];\n if (elementProperty) {\n info.defaultBindingMode = elementProperty.defaultBindingMode;\n }\n }\n\n if (elementProperty) {\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, elementInstruction);\n } else {\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, undefined, type);\n }\n\n if (instruction) {\n if (instruction.alteredAttr) {\n type = resources.getAttribute(instruction.attrName);\n }\n\n if (instruction.discrete) {\n expressions.push(instruction);\n } else {\n if (type) {\n instruction.type = type;\n this._configureProperties(instruction, resources);\n\n if (type.liftsContent) {\n instruction.originalAttrName = originalAttrName;\n liftingInstruction = instruction;\n break;\n } else {\n behaviorInstructions.push(instruction);\n }\n } else if (elementProperty) {\n elementInstruction.attributes[info.attrName].targetProperty = elementProperty.name;\n } else {\n expressions.push(instruction.attributes[instruction.attrName]);\n }\n }\n } else {\n if (type) {\n instruction = BehaviorInstruction.attribute(attrName, type);\n instruction.attributes[resources.mapAttribute(attrName)] = attrValue;\n\n if (type.liftsContent) {\n instruction.originalAttrName = originalAttrName;\n liftingInstruction = instruction;\n break;\n } else {\n behaviorInstructions.push(instruction);\n }\n } else if (elementProperty) {\n elementInstruction.attributes[attrName] = attrValue;\n }\n }\n }\n\n if (liftingInstruction) {\n liftingInstruction.viewFactory = viewFactory;\n node = liftingInstruction.type.compile(this, resources, node, liftingInstruction, parentNode);\n auTargetID = makeIntoInstructionTarget(node);\n instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);\n } else {\n var skipContentProcessing = false;\n\n if (expressions.length || behaviorInstructions.length) {\n injectorId = behaviorInstructions.length ? getNextInjectorId() : false;\n\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n instruction = behaviorInstructions[i];\n instruction.type.compile(this, resources, node, instruction, parentNode);\n providers.push(instruction.type.target);\n skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n expression = expressions[i];\n if (expression.attrToRemove !== undefined) {\n node.removeAttribute(expression.attrToRemove);\n }\n }\n\n auTargetID = makeIntoInstructionTarget(node);\n instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);\n }\n\n if (skipContentProcessing) {\n return node.nextSibling;\n }\n\n var currentChild = node.firstChild;\n while (currentChild) {\n currentChild = this._compileNode(currentChild, resources, instructions, node, injectorId || parentInjectorId, targetLightDOM);\n }\n }\n\n return node.nextSibling;\n };\n\n ViewCompiler.prototype._configureProperties = function _configureProperties(instruction, resources) {\n var type = instruction.type;\n var attrName = instruction.attrName;\n var attributes = instruction.attributes;\n var property = void 0;\n var key = void 0;\n var value = void 0;\n\n var knownAttribute = resources.mapAttribute(attrName);\n if (knownAttribute && attrName in attributes && knownAttribute !== attrName) {\n attributes[knownAttribute] = attributes[attrName];\n delete attributes[attrName];\n }\n\n for (key in attributes) {\n value = attributes[key];\n\n if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n property = type.attributes[key];\n\n if (property !== undefined) {\n value.targetProperty = property.name;\n } else {\n value.targetProperty = key;\n }\n }\n }\n };\n\n return ViewCompiler;\n}()) || _class14);\n\nexport var ResourceModule = function () {\n function ResourceModule(moduleId) {\n \n\n this.id = moduleId;\n this.moduleInstance = null;\n this.mainResource = null;\n this.resources = null;\n this.viewStrategy = null;\n this.isInitialized = false;\n this.onLoaded = null;\n this.loadContext = null;\n }\n\n ResourceModule.prototype.initialize = function initialize(container) {\n var current = this.mainResource;\n var resources = this.resources;\n var vs = this.viewStrategy;\n\n if (this.isInitialized) {\n return;\n }\n\n this.isInitialized = true;\n\n if (current !== undefined) {\n current.metadata.viewStrategy = vs;\n current.initialize(container);\n }\n\n for (var i = 0, ii = resources.length; i < ii; ++i) {\n current = resources[i];\n current.metadata.viewStrategy = vs;\n current.initialize(container);\n }\n };\n\n ResourceModule.prototype.register = function register(registry, name) {\n var main = this.mainResource;\n var resources = this.resources;\n\n if (main !== undefined) {\n main.register(registry, name);\n name = null;\n }\n\n for (var i = 0, ii = resources.length; i < ii; ++i) {\n resources[i].register(registry, name);\n name = null;\n }\n };\n\n ResourceModule.prototype.load = function load(container, loadContext) {\n if (this.onLoaded !== null) {\n return this.loadContext === loadContext ? Promise.resolve() : this.onLoaded;\n }\n\n var main = this.mainResource;\n var resources = this.resources;\n var loads = void 0;\n\n if (main !== undefined) {\n loads = new Array(resources.length + 1);\n loads[0] = main.load(container, loadContext);\n for (var i = 0, ii = resources.length; i < ii; ++i) {\n loads[i + 1] = resources[i].load(container, loadContext);\n }\n } else {\n loads = new Array(resources.length);\n for (var _i2 = 0, _ii = resources.length; _i2 < _ii; ++_i2) {\n loads[_i2] = resources[_i2].load(container, loadContext);\n }\n }\n\n this.loadContext = loadContext;\n this.onLoaded = Promise.all(loads);\n return this.onLoaded;\n };\n\n return ResourceModule;\n}();\n\nexport var ResourceDescription = function () {\n function ResourceDescription(key, exportedValue, resourceTypeMeta) {\n \n\n if (!resourceTypeMeta) {\n resourceTypeMeta = metadata.get(metadata.resource, exportedValue);\n\n if (!resourceTypeMeta) {\n resourceTypeMeta = new HtmlBehaviorResource();\n resourceTypeMeta.elementName = _hyphenate(key);\n metadata.define(metadata.resource, resourceTypeMeta, exportedValue);\n }\n }\n\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\n if (resourceTypeMeta.elementName === undefined) {\n resourceTypeMeta.elementName = _hyphenate(key);\n } else if (resourceTypeMeta.attributeName === undefined) {\n resourceTypeMeta.attributeName = _hyphenate(key);\n } else if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n HtmlBehaviorResource.convention(key, resourceTypeMeta);\n }\n } else if (!resourceTypeMeta.name) {\n resourceTypeMeta.name = _hyphenate(key);\n }\n\n this.metadata = resourceTypeMeta;\n this.value = exportedValue;\n }\n\n ResourceDescription.prototype.initialize = function initialize(container) {\n this.metadata.initialize(container, this.value);\n };\n\n ResourceDescription.prototype.register = function register(registry, name) {\n this.metadata.register(registry, name);\n };\n\n ResourceDescription.prototype.load = function load(container, loadContext) {\n return this.metadata.load(container, this.value, loadContext);\n };\n\n return ResourceDescription;\n}();\n\nexport var ModuleAnalyzer = function () {\n function ModuleAnalyzer() {\n \n\n this.cache = Object.create(null);\n }\n\n ModuleAnalyzer.prototype.getAnalysis = function getAnalysis(moduleId) {\n return this.cache[moduleId];\n };\n\n ModuleAnalyzer.prototype.analyze = function analyze(moduleId, moduleInstance, mainResourceKey) {\n var mainResource = void 0;\n var fallbackValue = void 0;\n var fallbackKey = void 0;\n var resourceTypeMeta = void 0;\n var key = void 0;\n var exportedValue = void 0;\n var resources = [];\n var conventional = void 0;\n var vs = void 0;\n var resourceModule = void 0;\n\n resourceModule = this.cache[moduleId];\n if (resourceModule) {\n return resourceModule;\n }\n\n resourceModule = new ResourceModule(moduleId);\n this.cache[moduleId] = resourceModule;\n\n if (typeof moduleInstance === 'function') {\n moduleInstance = { 'default': moduleInstance };\n }\n\n if (mainResourceKey) {\n mainResource = new ResourceDescription(mainResourceKey, moduleInstance[mainResourceKey]);\n }\n\n for (key in moduleInstance) {\n exportedValue = moduleInstance[key];\n\n if (key === mainResourceKey || typeof exportedValue !== 'function') {\n continue;\n }\n\n resourceTypeMeta = metadata.get(metadata.resource, exportedValue);\n\n if (resourceTypeMeta) {\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\n ViewResources.convention(exportedValue, resourceTypeMeta);\n\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n HtmlBehaviorResource.convention(key, resourceTypeMeta);\n }\n\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n resourceTypeMeta.elementName = _hyphenate(key);\n }\n }\n\n if (!mainResource && resourceTypeMeta instanceof HtmlBehaviorResource && resourceTypeMeta.elementName !== null) {\n mainResource = new ResourceDescription(key, exportedValue, resourceTypeMeta);\n } else {\n resources.push(new ResourceDescription(key, exportedValue, resourceTypeMeta));\n }\n } else if (viewStrategy.decorates(exportedValue)) {\n vs = exportedValue;\n } else if (exportedValue instanceof TemplateRegistryEntry) {\n vs = new TemplateRegistryViewStrategy(moduleId, exportedValue);\n } else {\n if (conventional = ViewResources.convention(exportedValue)) {\n if (conventional.elementName !== null && !mainResource) {\n mainResource = new ResourceDescription(key, exportedValue, conventional);\n } else {\n resources.push(new ResourceDescription(key, exportedValue, conventional));\n }\n metadata.define(metadata.resource, conventional, exportedValue);\n } else if (conventional = HtmlBehaviorResource.convention(key)) {\n if (conventional.elementName !== null && !mainResource) {\n mainResource = new ResourceDescription(key, exportedValue, conventional);\n } else {\n resources.push(new ResourceDescription(key, exportedValue, conventional));\n }\n\n metadata.define(metadata.resource, conventional, exportedValue);\n } else if (conventional = ValueConverterResource.convention(key) || BindingBehaviorResource.convention(key) || ViewEngineHooksResource.convention(key)) {\n resources.push(new ResourceDescription(key, exportedValue, conventional));\n metadata.define(metadata.resource, conventional, exportedValue);\n } else if (!fallbackValue) {\n fallbackValue = exportedValue;\n fallbackKey = key;\n }\n }\n }\n\n if (!mainResource && fallbackValue) {\n mainResource = new ResourceDescription(fallbackKey, fallbackValue);\n }\n\n resourceModule.moduleInstance = moduleInstance;\n resourceModule.mainResource = mainResource;\n resourceModule.resources = resources;\n resourceModule.viewStrategy = vs;\n\n return resourceModule;\n };\n\n return ModuleAnalyzer;\n}();\n\nvar logger = LogManager.getLogger('templating');\n\nfunction ensureRegistryEntry(loader, urlOrRegistryEntry) {\n if (urlOrRegistryEntry instanceof TemplateRegistryEntry) {\n return Promise.resolve(urlOrRegistryEntry);\n }\n\n return loader.loadTemplate(urlOrRegistryEntry);\n}\n\nvar ProxyViewFactory = function () {\n function ProxyViewFactory(promise) {\n var _this8 = this;\n\n \n\n promise.then(function (x) {\n return _this8.viewFactory = x;\n });\n }\n\n ProxyViewFactory.prototype.create = function create(container, bindingContext, createInstruction, element) {\n return this.viewFactory.create(container, bindingContext, createInstruction, element);\n };\n\n ProxyViewFactory.prototype.setCacheSize = function setCacheSize(size, doNotOverrideIfAlreadySet) {\n this.viewFactory.setCacheSize(size, doNotOverrideIfAlreadySet);\n };\n\n ProxyViewFactory.prototype.getCachedView = function getCachedView() {\n return this.viewFactory.getCachedView();\n };\n\n ProxyViewFactory.prototype.returnViewToCache = function returnViewToCache(view) {\n this.viewFactory.returnViewToCache(view);\n };\n\n _createClass(ProxyViewFactory, [{\n key: 'isCaching',\n get: function get() {\n return this.viewFactory.isCaching;\n }\n }]);\n\n return ProxyViewFactory;\n}();\n\nvar auSlotBehavior = null;\n\nexport var ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class15 = (_temp5 = _class16 = function () {\n function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {\n \n\n this.loader = loader;\n this.container = container;\n this.viewCompiler = viewCompiler;\n this.moduleAnalyzer = moduleAnalyzer;\n this.appResources = appResources;\n this._pluginMap = {};\n\n if (auSlotBehavior === null) {\n auSlotBehavior = new HtmlBehaviorResource();\n auSlotBehavior.attributeName = 'au-slot';\n metadata.define(metadata.resource, auSlotBehavior, SlotCustomAttribute);\n }\n\n auSlotBehavior.initialize(container, SlotCustomAttribute);\n auSlotBehavior.register(appResources);\n }\n\n ViewEngine.prototype.addResourcePlugin = function addResourcePlugin(extension, implementation) {\n var name = extension.replace('.', '') + '-resource-plugin';\n this._pluginMap[extension] = name;\n this.loader.addPlugin(name, implementation);\n };\n\n ViewEngine.prototype.loadViewFactory = function loadViewFactory(urlOrRegistryEntry, compileInstruction, loadContext, target) {\n var _this9 = this;\n\n loadContext = loadContext || new ResourceLoadContext();\n\n return ensureRegistryEntry(this.loader, urlOrRegistryEntry).then(function (registryEntry) {\n var url = registryEntry.address;\n\n if (registryEntry.onReady) {\n if (!loadContext.hasDependency(url)) {\n loadContext.addDependency(url);\n return registryEntry.onReady;\n }\n\n if (registryEntry.template === null) {\n return registryEntry.onReady;\n }\n\n return Promise.resolve(new ProxyViewFactory(registryEntry.onReady));\n }\n\n loadContext.addDependency(url);\n\n registryEntry.onReady = _this9.loadTemplateResources(registryEntry, compileInstruction, loadContext, target).then(function (resources) {\n registryEntry.resources = resources;\n\n if (registryEntry.template === null) {\n return registryEntry.factory = null;\n }\n\n var viewFactory = _this9.viewCompiler.compile(registryEntry.template, resources, compileInstruction);\n return registryEntry.factory = viewFactory;\n });\n\n return registryEntry.onReady;\n });\n };\n\n ViewEngine.prototype.loadTemplateResources = function loadTemplateResources(registryEntry, compileInstruction, loadContext, target) {\n var resources = new ViewResources(this.appResources, registryEntry.address);\n var dependencies = registryEntry.dependencies;\n var importIds = void 0;\n var names = void 0;\n\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\n\n if (dependencies.length === 0 && !compileInstruction.associatedModuleId) {\n return Promise.resolve(resources);\n }\n\n importIds = dependencies.map(function (x) {\n return x.src;\n });\n names = dependencies.map(function (x) {\n return x.name;\n });\n logger.debug('importing resources for ' + registryEntry.address, importIds);\n\n if (target) {\n var viewModelRequires = metadata.get(ViewEngine.viewModelRequireMetadataKey, target);\n if (viewModelRequires) {\n var templateImportCount = importIds.length;\n for (var i = 0, ii = viewModelRequires.length; i < ii; ++i) {\n var req = viewModelRequires[i];\n var importId = typeof req === 'function' ? Origin.get(req).moduleId : relativeToFile(req.src || req, registryEntry.address);\n\n if (importIds.indexOf(importId) === -1) {\n importIds.push(importId);\n names.push(req.as);\n }\n }\n logger.debug('importing ViewModel resources for ' + compileInstruction.associatedModuleId, importIds.slice(templateImportCount));\n }\n }\n\n return this.importViewResources(importIds, names, resources, compileInstruction, loadContext);\n };\n\n ViewEngine.prototype.importViewModelResource = function importViewModelResource(moduleImport, moduleMember) {\n var _this10 = this;\n\n return this.loader.loadModule(moduleImport).then(function (viewModelModule) {\n var normalizedId = Origin.get(viewModelModule).moduleId;\n var resourceModule = _this10.moduleAnalyzer.analyze(normalizedId, viewModelModule, moduleMember);\n\n if (!resourceModule.mainResource) {\n throw new Error('No view model found in module \"' + moduleImport + '\".');\n }\n\n resourceModule.initialize(_this10.container);\n\n return resourceModule.mainResource;\n });\n };\n\n ViewEngine.prototype.importViewResources = function importViewResources(moduleIds, names, resources, compileInstruction, loadContext) {\n var _this11 = this;\n\n loadContext = loadContext || new ResourceLoadContext();\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\n\n moduleIds = moduleIds.map(function (x) {\n return _this11._applyLoaderPlugin(x);\n });\n\n return this.loader.loadAllModules(moduleIds).then(function (imports) {\n var i = void 0;\n var ii = void 0;\n var analysis = void 0;\n var normalizedId = void 0;\n var current = void 0;\n var associatedModule = void 0;\n var container = _this11.container;\n var moduleAnalyzer = _this11.moduleAnalyzer;\n var allAnalysis = new Array(imports.length);\n\n for (i = 0, ii = imports.length; i < ii; ++i) {\n current = imports[i];\n normalizedId = Origin.get(current).moduleId;\n\n analysis = moduleAnalyzer.analyze(normalizedId, current);\n analysis.initialize(container);\n analysis.register(resources, names[i]);\n\n allAnalysis[i] = analysis;\n }\n\n if (compileInstruction.associatedModuleId) {\n associatedModule = moduleAnalyzer.getAnalysis(compileInstruction.associatedModuleId);\n\n if (associatedModule) {\n associatedModule.register(resources);\n }\n }\n\n for (i = 0, ii = allAnalysis.length; i < ii; ++i) {\n allAnalysis[i] = allAnalysis[i].load(container, loadContext);\n }\n\n return Promise.all(allAnalysis).then(function () {\n return resources;\n });\n });\n };\n\n ViewEngine.prototype._applyLoaderPlugin = function _applyLoaderPlugin(id) {\n var index = id.lastIndexOf('.');\n if (index !== -1) {\n var ext = id.substring(index);\n var pluginName = this._pluginMap[ext];\n\n if (pluginName === undefined) {\n return id;\n }\n\n return this.loader.applyPluginToUrl(id, pluginName);\n }\n\n return id;\n };\n\n return ViewEngine;\n}(), _class16.viewModelRequireMetadataKey = 'aurelia:view-model-require', _temp5)) || _class15);\n\nexport var Controller = function () {\n function Controller(behavior, instruction, viewModel, container) {\n \n\n this.behavior = behavior;\n this.instruction = instruction;\n this.viewModel = viewModel;\n this.isAttached = false;\n this.view = null;\n this.isBound = false;\n this.scope = null;\n this.container = container;\n this.elementEvents = container.elementEvents || null;\n\n var observerLookup = behavior.observerLocator.getOrCreateObserversLookup(viewModel);\n var handlesBind = behavior.handlesBind;\n var attributes = instruction.attributes;\n var boundProperties = this.boundProperties = [];\n var properties = behavior.properties;\n var i = void 0;\n var ii = void 0;\n\n behavior._ensurePropertiesDefined(viewModel, observerLookup);\n\n for (i = 0, ii = properties.length; i < ii; ++i) {\n properties[i]._initialize(viewModel, observerLookup, attributes, handlesBind, boundProperties);\n }\n }\n\n Controller.prototype.created = function created(owningView) {\n if (this.behavior.handlesCreated) {\n this.viewModel.created(owningView, this.view);\n }\n };\n\n Controller.prototype.automate = function automate(overrideContext, owningView) {\n this.view.bindingContext = this.viewModel;\n this.view.overrideContext = overrideContext || createOverrideContext(this.viewModel);\n this.view._isUserControlled = true;\n\n if (this.behavior.handlesCreated) {\n this.viewModel.created(owningView || null, this.view);\n }\n\n this.bind(this.view);\n };\n\n Controller.prototype.bind = function bind(scope) {\n var skipSelfSubscriber = this.behavior.handlesBind;\n var boundProperties = this.boundProperties;\n var i = void 0;\n var ii = void 0;\n var x = void 0;\n var observer = void 0;\n var selfSubscriber = void 0;\n\n if (this.isBound) {\n if (this.scope === scope) {\n return;\n }\n\n this.unbind();\n }\n\n this.isBound = true;\n this.scope = scope;\n\n for (i = 0, ii = boundProperties.length; i < ii; ++i) {\n x = boundProperties[i];\n observer = x.observer;\n selfSubscriber = observer.selfSubscriber;\n observer.publishing = false;\n\n if (skipSelfSubscriber) {\n observer.selfSubscriber = null;\n }\n\n x.binding.bind(scope);\n observer.call();\n\n observer.publishing = true;\n observer.selfSubscriber = selfSubscriber;\n }\n\n var overrideContext = void 0;\n if (this.view !== null) {\n if (skipSelfSubscriber) {\n this.view.viewModelScope = scope;\n }\n\n if (this.viewModel === scope.overrideContext.bindingContext) {\n overrideContext = scope.overrideContext;\n } else if (this.instruction.inheritBindingContext) {\n overrideContext = createOverrideContext(this.viewModel, scope.overrideContext);\n } else {\n overrideContext = createOverrideContext(this.viewModel);\n overrideContext.__parentOverrideContext = scope.overrideContext;\n }\n\n this.view.bind(this.viewModel, overrideContext);\n } else if (skipSelfSubscriber) {\n overrideContext = scope.overrideContext;\n\n if (scope.overrideContext.__parentOverrideContext !== undefined && this.viewModel.viewFactory && this.viewModel.viewFactory.factoryCreateInstruction.partReplacements) {\n overrideContext = Object.assign({}, scope.overrideContext);\n overrideContext.parentOverrideContext = scope.overrideContext.__parentOverrideContext;\n }\n this.viewModel.bind(scope.bindingContext, overrideContext);\n }\n };\n\n Controller.prototype.unbind = function unbind() {\n if (this.isBound) {\n var _boundProperties = this.boundProperties;\n var _i3 = void 0;\n var _ii2 = void 0;\n\n this.isBound = false;\n this.scope = null;\n\n if (this.view !== null) {\n this.view.unbind();\n }\n\n if (this.behavior.handlesUnbind) {\n this.viewModel.unbind();\n }\n\n if (this.elementEvents !== null) {\n this.elementEvents.disposeAll();\n }\n\n for (_i3 = 0, _ii2 = _boundProperties.length; _i3 < _ii2; ++_i3) {\n _boundProperties[_i3].binding.unbind();\n }\n }\n };\n\n Controller.prototype.attached = function attached() {\n if (this.isAttached) {\n return;\n }\n\n this.isAttached = true;\n\n if (this.behavior.handlesAttached) {\n this.viewModel.attached();\n }\n\n if (this.view !== null) {\n this.view.attached();\n }\n };\n\n Controller.prototype.detached = function detached() {\n if (this.isAttached) {\n this.isAttached = false;\n\n if (this.view !== null) {\n this.view.detached();\n }\n\n if (this.behavior.handlesDetached) {\n this.viewModel.detached();\n }\n }\n };\n\n return Controller;\n}();\n\nexport var BehaviorPropertyObserver = (_dec9 = subscriberCollection(), _dec9(_class17 = function () {\n function BehaviorPropertyObserver(taskQueue, obj, propertyName, selfSubscriber, initialValue) {\n \n\n this.taskQueue = taskQueue;\n this.obj = obj;\n this.propertyName = propertyName;\n this.notqueued = true;\n this.publishing = false;\n this.selfSubscriber = selfSubscriber;\n this.currentValue = this.oldValue = initialValue;\n }\n\n BehaviorPropertyObserver.prototype.getValue = function getValue() {\n return this.currentValue;\n };\n\n BehaviorPropertyObserver.prototype.setValue = function setValue(newValue) {\n var oldValue = this.currentValue;\n\n if (!Object.is(newValue, oldValue)) {\n this.oldValue = oldValue;\n this.currentValue = newValue;\n\n if (this.publishing && this.notqueued) {\n if (this.taskQueue.flushing) {\n this.call();\n } else {\n this.notqueued = false;\n this.taskQueue.queueMicroTask(this);\n }\n }\n }\n };\n\n BehaviorPropertyObserver.prototype.call = function call() {\n var oldValue = this.oldValue;\n var newValue = this.currentValue;\n\n this.notqueued = true;\n\n if (Object.is(newValue, oldValue)) {\n return;\n }\n\n if (this.selfSubscriber) {\n this.selfSubscriber(newValue, oldValue);\n }\n\n this.callSubscribers(newValue, oldValue);\n this.oldValue = newValue;\n };\n\n BehaviorPropertyObserver.prototype.subscribe = function subscribe(context, callable) {\n this.addSubscriber(context, callable);\n };\n\n BehaviorPropertyObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n this.removeSubscriber(context, callable);\n };\n\n return BehaviorPropertyObserver;\n}()) || _class17);\n\nfunction getObserver(instance, name) {\n var lookup = instance.__observers__;\n\n if (lookup === undefined) {\n var ctor = Object.getPrototypeOf(instance).constructor;\n var _behavior = metadata.get(metadata.resource, ctor);\n if (!_behavior.isInitialized) {\n _behavior.initialize(Container.instance || new Container(), instance.constructor);\n }\n\n lookup = _behavior.observerLocator.getOrCreateObserversLookup(instance);\n _behavior._ensurePropertiesDefined(instance, lookup);\n }\n\n return lookup[name];\n}\n\nexport var BindableProperty = function () {\n function BindableProperty(nameOrConfig) {\n \n\n if (typeof nameOrConfig === 'string') {\n this.name = nameOrConfig;\n } else {\n Object.assign(this, nameOrConfig);\n }\n\n this.attribute = this.attribute || _hyphenate(this.name);\n var defaultBindingMode = this.defaultBindingMode;\n if (defaultBindingMode === null || defaultBindingMode === undefined) {\n this.defaultBindingMode = bindingMode.oneWay;\n } else if (typeof defaultBindingMode === 'string') {\n this.defaultBindingMode = bindingMode[defaultBindingMode] || bindingMode.oneWay;\n }\n this.changeHandler = this.changeHandler || null;\n this.owner = null;\n this.descriptor = null;\n }\n\n BindableProperty.prototype.registerWith = function registerWith(target, behavior, descriptor) {\n behavior.properties.push(this);\n behavior.attributes[this.attribute] = this;\n this.owner = behavior;\n\n if (descriptor) {\n this.descriptor = descriptor;\n return this._configureDescriptor(descriptor);\n }\n\n return undefined;\n };\n\n BindableProperty.prototype._configureDescriptor = function _configureDescriptor(descriptor) {\n var name = this.name;\n\n descriptor.configurable = true;\n descriptor.enumerable = true;\n\n if ('initializer' in descriptor) {\n this.defaultValue = descriptor.initializer;\n delete descriptor.initializer;\n delete descriptor.writable;\n }\n\n if ('value' in descriptor) {\n this.defaultValue = descriptor.value;\n delete descriptor.value;\n delete descriptor.writable;\n }\n\n descriptor.get = function () {\n return getObserver(this, name).getValue();\n };\n\n descriptor.set = function (value) {\n getObserver(this, name).setValue(value);\n };\n\n descriptor.get.getObserver = function (obj) {\n return getObserver(obj, name);\n };\n\n return descriptor;\n };\n\n BindableProperty.prototype.defineOn = function defineOn(target, behavior) {\n var name = this.name;\n var handlerName = void 0;\n\n if (this.changeHandler === null) {\n handlerName = name + 'Changed';\n if (handlerName in target.prototype) {\n this.changeHandler = handlerName;\n }\n }\n\n if (this.descriptor === null) {\n Object.defineProperty(target.prototype, name, this._configureDescriptor(behavior, {}));\n }\n };\n\n BindableProperty.prototype.createObserver = function createObserver(viewModel) {\n var selfSubscriber = null;\n var defaultValue = this.defaultValue;\n var changeHandlerName = this.changeHandler;\n var name = this.name;\n var initialValue = void 0;\n\n if (this.hasOptions) {\n return undefined;\n }\n\n if (changeHandlerName in viewModel) {\n if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n viewModel[changeHandlerName](newValue, oldValue);\n viewModel.propertyChanged(name, newValue, oldValue);\n };\n } else {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel[changeHandlerName](newValue, oldValue);\n };\n }\n } else if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel.propertyChanged(name, newValue, oldValue);\n };\n } else if (changeHandlerName !== null) {\n throw new Error('Change handler ' + changeHandlerName + ' was specified but not declared on the class.');\n }\n\n if (defaultValue !== undefined) {\n initialValue = typeof defaultValue === 'function' ? defaultValue.call(viewModel) : defaultValue;\n }\n\n return new BehaviorPropertyObserver(this.owner.taskQueue, viewModel, this.name, selfSubscriber, initialValue);\n };\n\n BindableProperty.prototype._initialize = function _initialize(viewModel, observerLookup, attributes, behaviorHandlesBind, boundProperties) {\n var selfSubscriber = void 0;\n var observer = void 0;\n var attribute = void 0;\n var defaultValue = this.defaultValue;\n\n if (this.isDynamic) {\n for (var _key6 in attributes) {\n this._createDynamicProperty(viewModel, observerLookup, behaviorHandlesBind, _key6, attributes[_key6], boundProperties);\n }\n } else if (!this.hasOptions) {\n observer = observerLookup[this.name];\n\n if (attributes !== null) {\n selfSubscriber = observer.selfSubscriber;\n attribute = attributes[this.attribute];\n\n if (behaviorHandlesBind) {\n observer.selfSubscriber = null;\n }\n\n if (typeof attribute === 'string') {\n viewModel[this.name] = attribute;\n observer.call();\n } else if (attribute) {\n boundProperties.push({ observer: observer, binding: attribute.createBinding(viewModel) });\n } else if (defaultValue !== undefined) {\n observer.call();\n }\n\n observer.selfSubscriber = selfSubscriber;\n }\n\n observer.publishing = true;\n }\n };\n\n BindableProperty.prototype._createDynamicProperty = function _createDynamicProperty(viewModel, observerLookup, behaviorHandlesBind, name, attribute, boundProperties) {\n var changeHandlerName = name + 'Changed';\n var selfSubscriber = null;\n var observer = void 0;\n var info = void 0;\n\n if (changeHandlerName in viewModel) {\n if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n viewModel[changeHandlerName](newValue, oldValue);\n viewModel.propertyChanged(name, newValue, oldValue);\n };\n } else {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel[changeHandlerName](newValue, oldValue);\n };\n }\n } else if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel.propertyChanged(name, newValue, oldValue);\n };\n }\n\n observer = observerLookup[name] = new BehaviorPropertyObserver(this.owner.taskQueue, viewModel, name, selfSubscriber);\n\n Object.defineProperty(viewModel, name, {\n configurable: true,\n enumerable: true,\n get: observer.getValue.bind(observer),\n set: observer.setValue.bind(observer)\n });\n\n if (behaviorHandlesBind) {\n observer.selfSubscriber = null;\n }\n\n if (typeof attribute === 'string') {\n viewModel[name] = attribute;\n observer.call();\n } else if (attribute) {\n info = { observer: observer, binding: attribute.createBinding(viewModel) };\n boundProperties.push(info);\n }\n\n observer.publishing = true;\n observer.selfSubscriber = selfSubscriber;\n };\n\n return BindableProperty;\n}();\n\nvar lastProviderId = 0;\n\nfunction nextProviderId() {\n return ++lastProviderId;\n}\n\nfunction doProcessContent() {\n return true;\n}\nfunction doProcessAttributes() {}\n\nexport var HtmlBehaviorResource = function () {\n function HtmlBehaviorResource() {\n \n\n this.elementName = null;\n this.attributeName = null;\n this.attributeDefaultBindingMode = undefined;\n this.liftsContent = false;\n this.targetShadowDOM = false;\n this.shadowDOMOptions = null;\n this.processAttributes = doProcessAttributes;\n this.processContent = doProcessContent;\n this.usesShadowDOM = false;\n this.childBindings = null;\n this.hasDynamicOptions = false;\n this.containerless = false;\n this.properties = [];\n this.attributes = {};\n this.isInitialized = false;\n this.primaryProperty = null;\n }\n\n HtmlBehaviorResource.convention = function convention(name, existing) {\n var behavior = void 0;\n\n if (name.endsWith('CustomAttribute')) {\n behavior = existing || new HtmlBehaviorResource();\n behavior.attributeName = _hyphenate(name.substring(0, name.length - 15));\n }\n\n if (name.endsWith('CustomElement')) {\n behavior = existing || new HtmlBehaviorResource();\n behavior.elementName = _hyphenate(name.substring(0, name.length - 13));\n }\n\n return behavior;\n };\n\n HtmlBehaviorResource.prototype.addChildBinding = function addChildBinding(behavior) {\n if (this.childBindings === null) {\n this.childBindings = [];\n }\n\n this.childBindings.push(behavior);\n };\n\n HtmlBehaviorResource.prototype.initialize = function initialize(container, target) {\n var proto = target.prototype;\n var properties = this.properties;\n var attributeName = this.attributeName;\n var attributeDefaultBindingMode = this.attributeDefaultBindingMode;\n var i = void 0;\n var ii = void 0;\n var current = void 0;\n\n if (this.isInitialized) {\n return;\n }\n\n this.isInitialized = true;\n target.__providerId__ = nextProviderId();\n\n this.observerLocator = container.get(ObserverLocator);\n this.taskQueue = container.get(TaskQueue);\n\n this.target = target;\n this.usesShadowDOM = this.targetShadowDOM && FEATURE.shadowDOM;\n this.handlesCreated = 'created' in proto;\n this.handlesBind = 'bind' in proto;\n this.handlesUnbind = 'unbind' in proto;\n this.handlesAttached = 'attached' in proto;\n this.handlesDetached = 'detached' in proto;\n this.htmlName = this.elementName || this.attributeName;\n\n if (attributeName !== null) {\n if (properties.length === 0) {\n new BindableProperty({\n name: 'value',\n changeHandler: 'valueChanged' in proto ? 'valueChanged' : null,\n attribute: attributeName,\n defaultBindingMode: attributeDefaultBindingMode\n }).registerWith(target, this);\n }\n\n current = properties[0];\n\n if (properties.length === 1 && current.name === 'value') {\n current.isDynamic = current.hasOptions = this.hasDynamicOptions;\n current.defineOn(target, this);\n } else {\n for (i = 0, ii = properties.length; i < ii; ++i) {\n properties[i].defineOn(target, this);\n if (properties[i].primaryProperty) {\n if (this.primaryProperty) {\n throw new Error('Only one bindable property on a custom element can be defined as the default');\n }\n this.primaryProperty = properties[i];\n }\n }\n\n current = new BindableProperty({\n name: 'value',\n changeHandler: 'valueChanged' in proto ? 'valueChanged' : null,\n attribute: attributeName,\n defaultBindingMode: attributeDefaultBindingMode\n });\n\n current.hasOptions = true;\n current.registerWith(target, this);\n }\n } else {\n for (i = 0, ii = properties.length; i < ii; ++i) {\n properties[i].defineOn(target, this);\n }\n\n this._copyInheritedProperties(container, target);\n }\n };\n\n HtmlBehaviorResource.prototype.register = function register(registry, name) {\n var _this12 = this;\n\n if (this.attributeName !== null) {\n registry.registerAttribute(name || this.attributeName, this, this.attributeName);\n\n if (Array.isArray(this.aliases)) {\n this.aliases.forEach(function (alias) {\n registry.registerAttribute(alias, _this12, _this12.attributeName);\n });\n }\n }\n\n if (this.elementName !== null) {\n registry.registerElement(name || this.elementName, this);\n }\n };\n\n HtmlBehaviorResource.prototype.load = function load(container, target, loadContext, viewStrategy, transientView) {\n var _this13 = this;\n\n var options = void 0;\n\n if (this.elementName !== null) {\n viewStrategy = container.get(ViewLocator).getViewStrategy(viewStrategy || this.viewStrategy || target);\n options = new ViewCompileInstruction(this.targetShadowDOM, true);\n\n if (!viewStrategy.moduleId) {\n viewStrategy.moduleId = Origin.get(target).moduleId;\n }\n\n return viewStrategy.loadViewFactory(container.get(ViewEngine), options, loadContext, target).then(function (viewFactory) {\n if (!transientView || !_this13.viewFactory) {\n _this13.viewFactory = viewFactory;\n }\n\n return viewFactory;\n });\n }\n\n return Promise.resolve(this);\n };\n\n HtmlBehaviorResource.prototype.compile = function compile(compiler, resources, node, instruction, parentNode) {\n if (this.liftsContent) {\n if (!instruction.viewFactory) {\n var _template = DOM.createElement('template');\n var fragment = DOM.createDocumentFragment();\n var cacheSize = node.getAttribute('view-cache');\n var part = node.getAttribute('part');\n\n node.removeAttribute(instruction.originalAttrName);\n DOM.replaceNode(_template, node, parentNode);\n fragment.appendChild(node);\n instruction.viewFactory = compiler.compile(fragment, resources);\n\n if (part) {\n instruction.viewFactory.part = part;\n node.removeAttribute('part');\n }\n\n if (cacheSize) {\n instruction.viewFactory.setCacheSize(cacheSize);\n node.removeAttribute('view-cache');\n }\n\n node = _template;\n }\n } else if (this.elementName !== null) {\n var _partReplacements2 = {};\n\n if (this.processContent(compiler, resources, node, instruction) && node.hasChildNodes()) {\n var currentChild = node.firstChild;\n var contentElement = this.usesShadowDOM ? null : DOM.createElement('au-content');\n var nextSibling = void 0;\n var toReplace = void 0;\n\n while (currentChild) {\n nextSibling = currentChild.nextSibling;\n\n if (currentChild.tagName === 'TEMPLATE' && (toReplace = currentChild.getAttribute('replace-part'))) {\n _partReplacements2[toReplace] = compiler.compile(currentChild, resources);\n DOM.removeNode(currentChild, parentNode);\n instruction.partReplacements = _partReplacements2;\n } else if (contentElement !== null) {\n if (currentChild.nodeType === 3 && _isAllWhitespace(currentChild)) {\n DOM.removeNode(currentChild, parentNode);\n } else {\n contentElement.appendChild(currentChild);\n }\n }\n\n currentChild = nextSibling;\n }\n\n if (contentElement !== null && contentElement.hasChildNodes()) {\n node.appendChild(contentElement);\n }\n\n instruction.skipContentProcessing = false;\n } else {\n instruction.skipContentProcessing = true;\n }\n } else if (!this.processContent(compiler, resources, node, instruction)) {\n instruction.skipContentProcessing = true;\n }\n\n return node;\n };\n\n HtmlBehaviorResource.prototype.create = function create(container, instruction, element, bindings) {\n var viewHost = void 0;\n var au = null;\n\n instruction = instruction || BehaviorInstruction.normal;\n element = element || null;\n bindings = bindings || null;\n\n if (this.elementName !== null && element) {\n if (this.usesShadowDOM) {\n viewHost = element.attachShadow(this.shadowDOMOptions);\n container.registerInstance(DOM.boundary, viewHost);\n } else {\n viewHost = element;\n if (this.targetShadowDOM) {\n container.registerInstance(DOM.boundary, viewHost);\n }\n }\n }\n\n if (element !== null) {\n element.au = au = element.au || {};\n }\n\n var viewModel = instruction.viewModel || container.get(this.target);\n var controller = new Controller(this, instruction, viewModel, container);\n var childBindings = this.childBindings;\n var viewFactory = void 0;\n\n if (this.liftsContent) {\n au.controller = controller;\n } else if (this.elementName !== null) {\n viewFactory = instruction.viewFactory || this.viewFactory;\n container.viewModel = viewModel;\n\n if (viewFactory) {\n controller.view = viewFactory.create(container, instruction, element);\n }\n\n if (element !== null) {\n au.controller = controller;\n\n if (controller.view) {\n if (!this.usesShadowDOM && (element.childNodes.length === 1 || element.contentElement)) {\n var contentElement = element.childNodes[0] || element.contentElement;\n controller.view.contentView = { fragment: contentElement };\n contentElement.parentNode && DOM.removeNode(contentElement);\n }\n\n if (instruction.anchorIsContainer) {\n if (childBindings !== null) {\n for (var _i4 = 0, _ii3 = childBindings.length; _i4 < _ii3; ++_i4) {\n controller.view.addBinding(childBindings[_i4].create(element, viewModel, controller));\n }\n }\n\n controller.view.appendNodesTo(viewHost);\n } else {\n controller.view.insertNodesBefore(viewHost);\n }\n } else if (childBindings !== null) {\n for (var _i5 = 0, _ii4 = childBindings.length; _i5 < _ii4; ++_i5) {\n bindings.push(childBindings[_i5].create(element, viewModel, controller));\n }\n }\n } else if (controller.view) {\n controller.view.controller = controller;\n\n if (childBindings !== null) {\n for (var _i6 = 0, _ii5 = childBindings.length; _i6 < _ii5; ++_i6) {\n controller.view.addBinding(childBindings[_i6].create(instruction.host, viewModel, controller));\n }\n }\n } else if (childBindings !== null) {\n for (var _i7 = 0, _ii6 = childBindings.length; _i7 < _ii6; ++_i7) {\n bindings.push(childBindings[_i7].create(instruction.host, viewModel, controller));\n }\n }\n } else if (childBindings !== null) {\n for (var _i8 = 0, _ii7 = childBindings.length; _i8 < _ii7; ++_i8) {\n bindings.push(childBindings[_i8].create(element, viewModel, controller));\n }\n }\n\n if (au !== null) {\n au[this.htmlName] = controller;\n }\n\n if (instruction.initiatedByBehavior && viewFactory) {\n controller.view.created();\n }\n\n return controller;\n };\n\n HtmlBehaviorResource.prototype._ensurePropertiesDefined = function _ensurePropertiesDefined(instance, lookup) {\n var properties = void 0;\n var i = void 0;\n var ii = void 0;\n var observer = void 0;\n\n if ('__propertiesDefined__' in lookup) {\n return;\n }\n\n lookup.__propertiesDefined__ = true;\n properties = this.properties;\n\n for (i = 0, ii = properties.length; i < ii; ++i) {\n observer = properties[i].createObserver(instance);\n\n if (observer !== undefined) {\n lookup[observer.propertyName] = observer;\n }\n }\n };\n\n HtmlBehaviorResource.prototype._copyInheritedProperties = function _copyInheritedProperties(container, target) {\n var _this14 = this;\n\n var behavior = void 0;\n var derived = target;\n\n while (true) {\n var proto = Object.getPrototypeOf(target.prototype);\n target = proto && proto.constructor;\n if (!target) {\n return;\n }\n behavior = metadata.getOwn(metadata.resource, target);\n if (behavior) {\n break;\n }\n }\n behavior.initialize(container, target);\n\n var _loop = function _loop(_i9, _ii8) {\n var prop = behavior.properties[_i9];\n\n if (_this14.properties.some(function (p) {\n return p.name === prop.name;\n })) {\n return 'continue';\n }\n\n new BindableProperty(prop).registerWith(derived, _this14);\n };\n\n for (var _i9 = 0, _ii8 = behavior.properties.length; _i9 < _ii8; ++_i9) {\n var _ret = _loop(_i9, _ii8);\n\n if (_ret === 'continue') continue;\n }\n };\n\n return HtmlBehaviorResource;\n}();\n\nfunction createChildObserverDecorator(selectorOrConfig, all) {\n return function (target, key, descriptor) {\n var actualTarget = typeof key === 'string' ? target.constructor : target;\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, actualTarget);\n\n if (typeof selectorOrConfig === 'string') {\n selectorOrConfig = {\n selector: selectorOrConfig,\n name: key\n };\n }\n\n if (descriptor) {\n descriptor.writable = true;\n descriptor.configurable = true;\n }\n\n selectorOrConfig.all = all;\n r.addChildBinding(new ChildObserver(selectorOrConfig));\n };\n}\n\nexport function children(selectorOrConfig) {\n return createChildObserverDecorator(selectorOrConfig, true);\n}\n\nexport function child(selectorOrConfig) {\n return createChildObserverDecorator(selectorOrConfig, false);\n}\n\nvar ChildObserver = function () {\n function ChildObserver(config) {\n \n\n this.name = config.name;\n this.changeHandler = config.changeHandler || this.name + 'Changed';\n this.selector = config.selector;\n this.all = config.all;\n }\n\n ChildObserver.prototype.create = function create(viewHost, viewModel, controller) {\n return new ChildObserverBinder(this.selector, viewHost, this.name, viewModel, controller, this.changeHandler, this.all);\n };\n\n return ChildObserver;\n}();\n\nvar noMutations = [];\n\nfunction trackMutation(groupedMutations, binder, record) {\n var mutations = groupedMutations.get(binder);\n\n if (!mutations) {\n mutations = [];\n groupedMutations.set(binder, mutations);\n }\n\n mutations.push(record);\n}\n\nfunction onChildChange(mutations, observer) {\n var binders = observer.binders;\n var bindersLength = binders.length;\n var groupedMutations = new Map();\n\n for (var _i10 = 0, _ii9 = mutations.length; _i10 < _ii9; ++_i10) {\n var record = mutations[_i10];\n var added = record.addedNodes;\n var removed = record.removedNodes;\n\n for (var j = 0, jj = removed.length; j < jj; ++j) {\n var _node = removed[j];\n if (_node.nodeType === 1) {\n for (var k = 0; k < bindersLength; ++k) {\n var binder = binders[k];\n if (binder.onRemove(_node)) {\n trackMutation(groupedMutations, binder, record);\n }\n }\n }\n }\n\n for (var _j = 0, _jj = added.length; _j < _jj; ++_j) {\n var _node2 = added[_j];\n if (_node2.nodeType === 1) {\n for (var _k = 0; _k < bindersLength; ++_k) {\n var _binder = binders[_k];\n if (_binder.onAdd(_node2)) {\n trackMutation(groupedMutations, _binder, record);\n }\n }\n }\n }\n }\n\n groupedMutations.forEach(function (value, key) {\n if (key.changeHandler !== null) {\n key.viewModel[key.changeHandler](value);\n }\n });\n}\n\nvar ChildObserverBinder = function () {\n function ChildObserverBinder(selector, viewHost, property, viewModel, controller, changeHandler, all) {\n \n\n this.selector = selector;\n this.viewHost = viewHost;\n this.property = property;\n this.viewModel = viewModel;\n this.controller = controller;\n this.changeHandler = changeHandler in viewModel ? changeHandler : null;\n this.usesShadowDOM = controller.behavior.usesShadowDOM;\n this.all = all;\n\n if (!this.usesShadowDOM && controller.view && controller.view.contentView) {\n this.contentView = controller.view.contentView;\n } else {\n this.contentView = null;\n }\n }\n\n ChildObserverBinder.prototype.matches = function matches(element) {\n if (element.matches(this.selector)) {\n if (this.contentView === null) {\n return true;\n }\n\n var contentView = this.contentView;\n var assignedSlot = element.auAssignedSlot;\n\n if (assignedSlot && assignedSlot.projectFromAnchors) {\n var anchors = assignedSlot.projectFromAnchors;\n\n for (var _i11 = 0, _ii10 = anchors.length; _i11 < _ii10; ++_i11) {\n if (anchors[_i11].auOwnerView === contentView) {\n return true;\n }\n }\n\n return false;\n }\n\n return element.auOwnerView === contentView;\n }\n\n return false;\n };\n\n ChildObserverBinder.prototype.bind = function bind(source) {\n var viewHost = this.viewHost;\n var viewModel = this.viewModel;\n var observer = viewHost.__childObserver__;\n\n if (!observer) {\n observer = viewHost.__childObserver__ = DOM.createMutationObserver(onChildChange);\n\n var options = {\n childList: true,\n subtree: !this.usesShadowDOM\n };\n\n observer.observe(viewHost, options);\n observer.binders = [];\n }\n\n observer.binders.push(this);\n\n if (this.usesShadowDOM) {\n var current = viewHost.firstElementChild;\n\n if (this.all) {\n var items = viewModel[this.property];\n if (!items) {\n items = viewModel[this.property] = [];\n } else {\n items.splice(0);\n }\n\n while (current) {\n if (this.matches(current)) {\n items.push(current.au && current.au.controller ? current.au.controller.viewModel : current);\n }\n\n current = current.nextElementSibling;\n }\n\n if (this.changeHandler !== null) {\n this.viewModel[this.changeHandler](noMutations);\n }\n } else {\n while (current) {\n if (this.matches(current)) {\n var _value = current.au && current.au.controller ? current.au.controller.viewModel : current;\n this.viewModel[this.property] = _value;\n\n if (this.changeHandler !== null) {\n this.viewModel[this.changeHandler](_value);\n }\n\n break;\n }\n\n current = current.nextElementSibling;\n }\n }\n }\n };\n\n ChildObserverBinder.prototype.onRemove = function onRemove(element) {\n if (this.matches(element)) {\n var _value2 = element.au && element.au.controller ? element.au.controller.viewModel : element;\n\n if (this.all) {\n var items = this.viewModel[this.property] || (this.viewModel[this.property] = []);\n var index = items.indexOf(_value2);\n\n if (index !== -1) {\n items.splice(index, 1);\n }\n\n return true;\n }\n\n return false;\n }\n\n return false;\n };\n\n ChildObserverBinder.prototype.onAdd = function onAdd(element) {\n if (this.matches(element)) {\n var _value3 = element.au && element.au.controller ? element.au.controller.viewModel : element;\n\n if (this.all) {\n var items = this.viewModel[this.property] || (this.viewModel[this.property] = []);\n\n if (this.selector === '*') {\n items.push(_value3);\n return true;\n }\n\n var index = 0;\n var prev = element.previousElementSibling;\n\n while (prev) {\n if (this.matches(prev)) {\n index++;\n }\n\n prev = prev.previousElementSibling;\n }\n\n items.splice(index, 0, _value3);\n return true;\n }\n\n this.viewModel[this.property] = _value3;\n\n if (this.changeHandler !== null) {\n this.viewModel[this.changeHandler](_value3);\n }\n }\n\n return false;\n };\n\n ChildObserverBinder.prototype.unbind = function unbind() {\n if (this.viewHost.__childObserver__) {\n this.viewHost.__childObserver__.disconnect();\n this.viewHost.__childObserver__ = null;\n this.viewModel[this.property] = null;\n }\n };\n\n return ChildObserverBinder;\n}();\n\nfunction remove(viewSlot, previous) {\n return Array.isArray(previous) ? viewSlot.removeMany(previous, true) : viewSlot.remove(previous, true);\n}\n\nexport var SwapStrategies = {\n before: function before(viewSlot, previous, callback) {\n return previous === undefined ? callback() : callback().then(function () {\n return remove(viewSlot, previous);\n });\n },\n with: function _with(viewSlot, previous, callback) {\n return previous === undefined ? callback() : Promise.all([remove(viewSlot, previous), callback()]);\n },\n after: function after(viewSlot, previous, callback) {\n return Promise.resolve(viewSlot.removeAll(true)).then(callback);\n }\n};\n\nfunction tryActivateViewModel(context) {\n if (context.skipActivation || typeof context.viewModel.activate !== 'function') {\n return Promise.resolve();\n }\n\n return context.viewModel.activate(context.model) || Promise.resolve();\n}\n\nexport var CompositionEngine = (_dec10 = inject(ViewEngine, ViewLocator), _dec10(_class18 = function () {\n function CompositionEngine(viewEngine, viewLocator) {\n \n\n this.viewEngine = viewEngine;\n this.viewLocator = viewLocator;\n }\n\n CompositionEngine.prototype._swap = function _swap(context, view) {\n var swapStrategy = SwapStrategies[context.swapOrder] || SwapStrategies.after;\n var previousViews = context.viewSlot.children.slice();\n\n return swapStrategy(context.viewSlot, previousViews, function () {\n return Promise.resolve(context.viewSlot.add(view)).then(function () {\n if (context.currentController) {\n context.currentController.unbind();\n }\n });\n }).then(function () {\n if (context.compositionTransactionNotifier) {\n context.compositionTransactionNotifier.done();\n }\n });\n };\n\n CompositionEngine.prototype._createControllerAndSwap = function _createControllerAndSwap(context) {\n var _this15 = this;\n\n return this.createController(context).then(function (controller) {\n if (context.compositionTransactionOwnershipToken) {\n return context.compositionTransactionOwnershipToken.waitForCompositionComplete().then(function () {\n controller.automate(context.overrideContext, context.owningView);\n\n return _this15._swap(context, controller.view);\n }).then(function () {\n return controller;\n });\n }\n\n controller.automate(context.overrideContext, context.owningView);\n\n return _this15._swap(context, controller.view).then(function () {\n return controller;\n });\n });\n };\n\n CompositionEngine.prototype.createController = function createController(context) {\n var _this16 = this;\n\n var childContainer = void 0;\n var viewModel = void 0;\n var viewModelResource = void 0;\n\n var m = void 0;\n\n return this.ensureViewModel(context).then(tryActivateViewModel).then(function () {\n childContainer = context.childContainer;\n viewModel = context.viewModel;\n viewModelResource = context.viewModelResource;\n m = viewModelResource.metadata;\n\n var viewStrategy = _this16.viewLocator.getViewStrategy(context.view || viewModel);\n\n if (context.viewResources) {\n viewStrategy.makeRelativeTo(context.viewResources.viewUrl);\n }\n\n return m.load(childContainer, viewModelResource.value, null, viewStrategy, true);\n }).then(function (viewFactory) {\n return m.create(childContainer, BehaviorInstruction.dynamic(context.host, viewModel, viewFactory));\n });\n };\n\n CompositionEngine.prototype.ensureViewModel = function ensureViewModel(context) {\n var childContainer = context.childContainer = context.childContainer || context.container.createChild();\n\n if (typeof context.viewModel === 'string') {\n context.viewModel = context.viewResources ? context.viewResources.relativeToView(context.viewModel) : context.viewModel;\n\n return this.viewEngine.importViewModelResource(context.viewModel).then(function (viewModelResource) {\n childContainer.autoRegister(viewModelResource.value);\n\n if (context.host) {\n childContainer.registerInstance(DOM.Element, context.host);\n }\n\n context.viewModel = childContainer.viewModel = childContainer.get(viewModelResource.value);\n context.viewModelResource = viewModelResource;\n return context;\n });\n }\n\n var ctor = context.viewModel.constructor;\n var isClass = typeof context.viewModel === 'function';\n if (isClass) {\n ctor = context.viewModel;\n childContainer.autoRegister(ctor);\n }\n var m = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, ctor);\n\n m.elementName = m.elementName || 'dynamic-element';\n\n m.initialize(isClass ? childContainer : context.container || childContainer, ctor);\n\n context.viewModelResource = { metadata: m, value: ctor };\n\n if (context.host) {\n childContainer.registerInstance(DOM.Element, context.host);\n }\n childContainer.viewModel = context.viewModel = isClass ? childContainer.get(ctor) : context.viewModel;\n return Promise.resolve(context);\n };\n\n CompositionEngine.prototype.compose = function compose(context) {\n var _this17 = this;\n\n context.childContainer = context.childContainer || context.container.createChild();\n context.view = this.viewLocator.getViewStrategy(context.view);\n\n var transaction = context.childContainer.get(CompositionTransaction);\n var compositionTransactionOwnershipToken = transaction.tryCapture();\n\n if (compositionTransactionOwnershipToken) {\n context.compositionTransactionOwnershipToken = compositionTransactionOwnershipToken;\n } else {\n context.compositionTransactionNotifier = transaction.enlist();\n }\n\n if (context.viewModel) {\n return this._createControllerAndSwap(context);\n } else if (context.view) {\n if (context.viewResources) {\n context.view.makeRelativeTo(context.viewResources.viewUrl);\n }\n\n return context.view.loadViewFactory(this.viewEngine, new ViewCompileInstruction()).then(function (viewFactory) {\n var result = viewFactory.create(context.childContainer);\n result.bind(context.bindingContext, context.overrideContext);\n\n if (context.compositionTransactionOwnershipToken) {\n return context.compositionTransactionOwnershipToken.waitForCompositionComplete().then(function () {\n return _this17._swap(context, result);\n }).then(function () {\n return result;\n });\n }\n\n return _this17._swap(context, result).then(function () {\n return result;\n });\n });\n } else if (context.viewSlot) {\n context.viewSlot.removeAll();\n\n if (context.compositionTransactionNotifier) {\n context.compositionTransactionNotifier.done();\n }\n\n return Promise.resolve(null);\n }\n\n return Promise.resolve(null);\n };\n\n return CompositionEngine;\n}()) || _class18);\n\nexport var ElementConfigResource = function () {\n function ElementConfigResource() {\n \n }\n\n ElementConfigResource.prototype.initialize = function initialize(container, target) {};\n\n ElementConfigResource.prototype.register = function register(registry, name) {};\n\n ElementConfigResource.prototype.load = function load(container, target) {\n var config = new target();\n var eventManager = container.get(EventManager);\n eventManager.registerElementConfig(config);\n };\n\n return ElementConfigResource;\n}();\n\nexport function resource(instanceOrConfig) {\n return function (target) {\n var isConfig = typeof instanceOrConfig === 'string' || Object.getPrototypeOf(instanceOrConfig) === Object.prototype;\n if (isConfig) {\n target.$resource = instanceOrConfig;\n } else {\n metadata.define(metadata.resource, instanceOrConfig, target);\n }\n };\n}\n\nexport function behavior(override) {\n return function (target) {\n if (override instanceof HtmlBehaviorResource) {\n metadata.define(metadata.resource, override, target);\n } else {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\n Object.assign(r, override);\n }\n };\n}\n\nexport function customElement(name) {\n return function (target) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\n r.elementName = validateBehaviorName(name, 'custom element');\n };\n}\n\nexport function customAttribute(name, defaultBindingMode, aliases) {\n return function (target) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\n r.attributeName = validateBehaviorName(name, 'custom attribute');\n r.attributeDefaultBindingMode = defaultBindingMode;\n r.aliases = aliases;\n };\n}\n\nexport function templateController(target) {\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.liftsContent = true;\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function bindable(nameOrConfigOrTarget, key, descriptor) {\n var deco = function deco(target, key2, descriptor2) {\n var actualTarget = key2 ? target.constructor : target;\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, actualTarget);\n var prop = void 0;\n\n if (key2) {\n nameOrConfigOrTarget = nameOrConfigOrTarget || {};\n nameOrConfigOrTarget.name = key2;\n }\n\n prop = new BindableProperty(nameOrConfigOrTarget);\n return prop.registerWith(actualTarget, r, descriptor2);\n };\n\n if (!nameOrConfigOrTarget) {\n return deco;\n }\n\n if (key) {\n var _target = nameOrConfigOrTarget;\n nameOrConfigOrTarget = null;\n return deco(_target, key, descriptor);\n }\n\n return deco;\n}\n\nexport function dynamicOptions(target) {\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.hasDynamicOptions = true;\n };\n\n return target ? deco(target) : deco;\n}\n\nvar defaultShadowDOMOptions = { mode: 'open' };\n\nexport function useShadowDOM(targetOrOptions) {\n var options = typeof targetOrOptions === 'function' || !targetOrOptions ? defaultShadowDOMOptions : targetOrOptions;\n\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.targetShadowDOM = true;\n r.shadowDOMOptions = options;\n };\n\n return typeof targetOrOptions === 'function' ? deco(targetOrOptions) : deco;\n}\n\nexport function processAttributes(processor) {\n return function (t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.processAttributes = function (compiler, resources, node, attributes, elementInstruction) {\n try {\n processor(compiler, resources, node, attributes, elementInstruction);\n } catch (error) {\n LogManager.getLogger('templating').error(error);\n }\n };\n };\n}\n\nfunction doNotProcessContent() {\n return false;\n}\n\nexport function processContent(processor) {\n return function (t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.processContent = processor ? function (compiler, resources, node, instruction) {\n try {\n return processor(compiler, resources, node, instruction);\n } catch (error) {\n LogManager.getLogger('templating').error(error);\n return false;\n }\n } : doNotProcessContent;\n };\n}\n\nexport function containerless(target) {\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.containerless = true;\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function useViewStrategy(strategy) {\n return function (target) {\n metadata.define(ViewLocator.viewStrategyMetadataKey, strategy, target);\n };\n}\n\nexport function useView(path) {\n return useViewStrategy(new RelativeViewStrategy(path));\n}\n\nexport function inlineView(markup, dependencies, dependencyBaseUrl) {\n return useViewStrategy(new InlineViewStrategy(markup, dependencies, dependencyBaseUrl));\n}\n\nexport function noView(targetOrDependencies, dependencyBaseUrl) {\n var target = void 0;\n var dependencies = void 0;\n if (typeof targetOrDependencies === 'function') {\n target = targetOrDependencies;\n } else {\n dependencies = targetOrDependencies;\n target = undefined;\n }\n\n var deco = function deco(t) {\n metadata.define(ViewLocator.viewStrategyMetadataKey, new NoViewStrategy(dependencies, dependencyBaseUrl), t);\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function view(templateOrConfig) {\n return function (target) {\n target.$view = templateOrConfig;\n };\n}\n\nexport function elementConfig(target) {\n var deco = function deco(t) {\n metadata.define(metadata.resource, new ElementConfigResource(), t);\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function viewResources() {\n for (var _len = arguments.length, resources = Array(_len), _key7 = 0; _key7 < _len; _key7++) {\n resources[_key7] = arguments[_key7];\n }\n\n return function (target) {\n metadata.define(ViewEngine.viewModelRequireMetadataKey, resources, target);\n };\n}\n\nexport var TemplatingEngine = (_dec11 = inject(Container, ModuleAnalyzer, ViewCompiler, CompositionEngine), _dec11(_class19 = function () {\n function TemplatingEngine(container, moduleAnalyzer, viewCompiler, compositionEngine) {\n \n\n this._container = container;\n this._moduleAnalyzer = moduleAnalyzer;\n this._viewCompiler = viewCompiler;\n this._compositionEngine = compositionEngine;\n container.registerInstance(Animator, Animator.instance = new Animator());\n }\n\n TemplatingEngine.prototype.configureAnimator = function configureAnimator(animator) {\n this._container.unregister(Animator);\n this._container.registerInstance(Animator, Animator.instance = animator);\n };\n\n TemplatingEngine.prototype.compose = function compose(context) {\n return this._compositionEngine.compose(context);\n };\n\n TemplatingEngine.prototype.enhance = function enhance(instruction) {\n if (instruction instanceof DOM.Element) {\n instruction = { element: instruction };\n }\n\n var compilerInstructions = { letExpressions: [] };\n var resources = instruction.resources || this._container.get(ViewResources);\n\n this._viewCompiler._compileNode(instruction.element, resources, compilerInstructions, instruction.element.parentNode, 'root', true);\n\n var factory = new ViewFactory(instruction.element, compilerInstructions, resources);\n var container = instruction.container || this._container.createChild();\n var view = factory.create(container, BehaviorInstruction.enhance());\n\n view.bind(instruction.bindingContext || {}, instruction.overrideContext);\n\n view.firstChild = view.lastChild = view.fragment;\n view.fragment = DOM.createDocumentFragment();\n view.attached();\n\n return view;\n };\n\n return TemplatingEngine;\n}()) || _class19);"],"sourceRoot":""}