{"version":3,"file":"vendors-fcadf5bb.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./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","Container","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","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","selectorOrConfig","actualTarget","selector","ChildObserver","createChildObserverDecorator","ChildObserverBinder","noMutations","trackMutation","groupedMutations","binder","record","mutations","onChildChange","binders","bindersLength","Map","added","addedNodes","removed","removedNodes","k","onRemove","onAdd","mutationRecords","matches","assignedSlot","anchors","__childObserver__","childList","subtree","observe","firstElementChild","items","nextElementSibling","prev","previousElementSibling","childObserver","disconnect","instanceOrConfig","customElement","customAttribute","deco","t","bindable","nameOrConfigOrTarget","key2","descriptor2","ElementConfigResource","registerElementConfig","defaultShadowDOMOptions","mode","useShadowDOM","targetOrOptions","doNotProcessContent","processor","error","useViewStrategy","useView","inlineView","noView","targetOrDependencies","TemplatingEngine","compositionEngine","_container","_moduleAnalyzer","_viewCompiler","_compositionEngine","configureAnimator","unregister","compilerInstructions","letExpressions"],"sourceRoot":""}