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