{"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","_temp5","_class15","_class16","_class17","_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","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","resource","elDeps","autoRegister","_iterator","_isArray","_i","_ref","next","value","dep","elementName","Error","_key2","exported","map","el","compile","ViewLocator","getViewStrategy","_origin","assert","c","$view","_view","call","define","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","ownChildren","_child","fragment","appendChild","idx","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","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","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","_dec7","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","ChildObserver","selector","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","_dec8","_swap","swapStrategy","swapOrder","previousViews","currentController","compositionTransactionNotifier","_createControllerAndSwap","_this15","createController","compositionTransactionOwnershipToken","_this16","childContainer","viewModelResource","m","ensureViewModel","isClass","getOrCreateOwn","_this17","transaction","ElementConfigResource","registerElementConfig","instanceOrConfig","customElement","customAttribute","r","deco","t","bindable","nameOrConfigOrTarget","key2","descriptor2","actualTarget","_target","defaultShadowDOMOptions","mode","useShadowDOM","targetOrOptions","useViewStrategy","useView","inlineView","noView","targetOrDependencies","TemplatingEngine","_dec9","compositionEngine","_container","_moduleAnalyzer","_viewCompiler","_compositionEngine","configureAnimator","unregister","compilerInstructions","letExpressions"],"mappings":"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","file":"vendor.aurelia-templating~9e0f4621.2bdfaeff9a27db23e353.chunk.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, _class14, _temp5, _dec7, _class15, _dec8, _class16, _dec9, _class17;\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\n this.projections = 0;\n\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\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 var ownChildren = this.children;\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\n this.projections--;\n var idx = ownChildren.indexOf(_child);\n if (idx > -1) {\n ownChildren.splice(idx, 1);\n }\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 var ownChildren = this.children;\n\n for (var i = 0, ii = _children2.length; i < ii; ++i) {\n var _child2 = _children2[i];\n _child2.auOwnerView.fragment.appendChild(_child2);\n\n this.projections--;\n var idx = ownChildren.indexOf(_child2);\n if (idx > -1) {\n ownChildren.splice(idx, 1);\n }\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 = function () {\n ViewCompiler.inject = function inject() {\n return [BindingLanguage, ViewResources];\n };\n\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}();\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 = (_temp5 = _class14 = function () {\n ViewEngine.inject = function inject() {\n return [Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources];\n };\n\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}(), _class14.viewModelRequireMetadataKey = 'aurelia:view-model-require', _temp5);\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 = (_dec7 = subscriberCollection(), _dec7(_class15 = 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}()) || _class15);\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 = (_dec8 = inject(ViewEngine, ViewLocator), _dec8(_class16 = 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}()) || _class16);\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 = (_dec9 = inject(Container, ModuleAnalyzer, ViewCompiler, CompositionEngine), _dec9(_class17 = 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}()) || _class17);"],"sourceRoot":""}