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