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