{"version":3,"file":"vendors-3ce50090.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./node_modules/aurelia-task-queue/dist/native-modules/aurelia-task-queue.js","webpack://iadviser/./node_modules/aurelia-templating-binding/dist/native-modules/aurelia-templating-binding.js","webpack://iadviser/./node_modules/aurelia-templating-resources/dist/native-modules/aurelia-templating-resources.js","webpack://iadviser/./node_modules/aurelia-templating-router/dist/native-modules/aurelia-templating-router.js"],"sourcesContent":["var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nimport { DOM, FEATURE } from 'aurelia-pal';\n\nvar stackSeparator = '\\nEnqueued in TaskQueue by:\\n';\nvar microStackSeparator = '\\nEnqueued in MicroTaskQueue by:\\n';\n\nfunction makeRequestFlushFromMutationObserver(flush) {\n var observer = DOM.createMutationObserver(flush);\n var val = 'a';\n var node = DOM.createTextNode('a');\n var values = Object.create(null);\n values.a = 'b';\n values.b = 'a';\n observer.observe(node, { characterData: true });\n return function requestFlush() {\n node.data = val = values[val];\n };\n}\n\nfunction makeRequestFlushFromTimer(flush) {\n return function requestFlush() {\n var timeoutHandle = setTimeout(handleFlushTimer, 0);\n\n var intervalHandle = setInterval(handleFlushTimer, 50);\n function handleFlushTimer() {\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n flush();\n }\n };\n}\n\nfunction onError(error, task, longStacks) {\n if (longStacks && task.stack && (typeof error === 'undefined' ? 'undefined' : _typeof(error)) === 'object' && error !== null) {\n error.stack = filterFlushStack(error.stack) + task.stack;\n }\n\n if ('onError' in task) {\n task.onError(error);\n } else {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n}\n\nexport var TaskQueue = function () {\n function TaskQueue() {\n var _this = this;\n\n \n\n this.flushing = false;\n this.longStacks = false;\n\n this.microTaskQueue = [];\n this.microTaskQueueCapacity = 1024;\n this.taskQueue = [];\n\n if (FEATURE.mutationObserver) {\n this.requestFlushMicroTaskQueue = makeRequestFlushFromMutationObserver(function () {\n return _this.flushMicroTaskQueue();\n });\n } else {\n this.requestFlushMicroTaskQueue = makeRequestFlushFromTimer(function () {\n return _this.flushMicroTaskQueue();\n });\n }\n\n this.requestFlushTaskQueue = makeRequestFlushFromTimer(function () {\n return _this.flushTaskQueue();\n });\n }\n\n TaskQueue.prototype._flushQueue = function _flushQueue(queue, capacity) {\n var index = 0;\n var task = void 0;\n\n try {\n this.flushing = true;\n while (index < queue.length) {\n task = queue[index];\n if (this.longStacks) {\n this.stack = typeof task.stack === 'string' ? task.stack : undefined;\n }\n task.call();\n index++;\n\n if (index > capacity) {\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n\n queue.length -= index;\n index = 0;\n }\n }\n } catch (error) {\n onError(error, task, this.longStacks);\n } finally {\n this.flushing = false;\n }\n };\n\n TaskQueue.prototype.queueMicroTask = function queueMicroTask(task) {\n if (this.microTaskQueue.length < 1) {\n this.requestFlushMicroTaskQueue();\n }\n\n if (this.longStacks) {\n task.stack = this.prepareQueueStack(microStackSeparator);\n }\n\n this.microTaskQueue.push(task);\n };\n\n TaskQueue.prototype.queueTask = function queueTask(task) {\n if (this.taskQueue.length < 1) {\n this.requestFlushTaskQueue();\n }\n\n if (this.longStacks) {\n task.stack = this.prepareQueueStack(stackSeparator);\n }\n\n this.taskQueue.push(task);\n };\n\n TaskQueue.prototype.flushTaskQueue = function flushTaskQueue() {\n var queue = this.taskQueue;\n this.taskQueue = [];\n this._flushQueue(queue, Number.MAX_VALUE);\n };\n\n TaskQueue.prototype.flushMicroTaskQueue = function flushMicroTaskQueue() {\n var queue = this.microTaskQueue;\n this._flushQueue(queue, this.microTaskQueueCapacity);\n queue.length = 0;\n };\n\n TaskQueue.prototype.prepareQueueStack = function prepareQueueStack(separator) {\n var stack = separator + filterQueueStack(captureStack());\n\n if (typeof this.stack === 'string') {\n stack = filterFlushStack(stack) + this.stack;\n }\n\n return stack;\n };\n\n return TaskQueue;\n}();\n\nfunction captureStack() {\n var error = new Error();\n\n if (error.stack) {\n return error.stack;\n }\n\n try {\n throw error;\n } catch (e) {\n return e.stack;\n }\n}\n\nfunction filterQueueStack(stack) {\n return stack.replace(/^[\\s\\S]*?\\bqueue(Micro)?Task\\b[^\\n]*\\n/, '');\n}\n\nfunction filterFlushStack(stack) {\n var index = stack.lastIndexOf('flushMicroTaskQueue');\n\n if (index < 0) {\n index = stack.lastIndexOf('flushTaskQueue');\n if (index < 0) {\n return stack;\n }\n }\n\n index = stack.lastIndexOf('\\n', index);\n\n return index < 0 ? stack : stack.substr(0, index);\n}","import { BehaviorInstruction, BindingLanguage } from 'aurelia-templating';\nimport { camelCase, SVGAnalyzer, bindingMode, enqueueBindingConnect, connectable, sourceContext, BindingExpression, ListenerExpression, delegationStrategy, CallExpression, Parser, ObserverLocator, EventManager, NameExpression, LiteralString } from 'aurelia-binding';\nimport * as LogManager from 'aurelia-logging';\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/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\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 AttributeMap = (function () {\r\n function AttributeMap(svg) {\r\n this.elements = Object.create(null);\r\n this.allElements = Object.create(null);\r\n this.svg = svg;\r\n this.registerUniversal('accesskey', 'accessKey');\r\n this.registerUniversal('contenteditable', 'contentEditable');\r\n this.registerUniversal('tabindex', 'tabIndex');\r\n this.registerUniversal('textcontent', 'textContent');\r\n this.registerUniversal('innerhtml', 'innerHTML');\r\n this.registerUniversal('scrolltop', 'scrollTop');\r\n this.registerUniversal('scrollleft', 'scrollLeft');\r\n this.registerUniversal('readonly', 'readOnly');\r\n this.register('label', 'for', 'htmlFor');\r\n this.register('img', 'usemap', 'useMap');\r\n this.register('input', 'maxlength', 'maxLength');\r\n this.register('input', 'minlength', 'minLength');\r\n this.register('input', 'formaction', 'formAction');\r\n this.register('input', 'formenctype', 'formEncType');\r\n this.register('input', 'formmethod', 'formMethod');\r\n this.register('input', 'formnovalidate', 'formNoValidate');\r\n this.register('input', 'formtarget', 'formTarget');\r\n this.register('textarea', 'maxlength', 'maxLength');\r\n this.register('td', 'rowspan', 'rowSpan');\r\n this.register('td', 'colspan', 'colSpan');\r\n this.register('th', 'rowspan', 'rowSpan');\r\n this.register('th', 'colspan', 'colSpan');\r\n }\r\n AttributeMap.prototype.register = function (elementName, attributeName, propertyName) {\r\n elementName = elementName.toLowerCase();\r\n attributeName = attributeName.toLowerCase();\r\n var element = this.elements[elementName] = (this.elements[elementName] || Object.create(null));\r\n element[attributeName] = propertyName;\r\n };\r\n AttributeMap.prototype.registerUniversal = function (attributeName, propertyName) {\r\n attributeName = attributeName.toLowerCase();\r\n this.allElements[attributeName] = propertyName;\r\n };\r\n AttributeMap.prototype.map = function (elementName, attributeName) {\r\n if (this.svg.isStandardSvgAttribute(elementName, attributeName)) {\r\n return attributeName;\r\n }\r\n elementName = elementName.toLowerCase();\r\n attributeName = attributeName.toLowerCase();\r\n var element = this.elements[elementName];\r\n if (element !== undefined && attributeName in element) {\r\n return element[attributeName];\r\n }\r\n if (attributeName in this.allElements) {\r\n return this.allElements[attributeName];\r\n }\r\n if (/(?:^data-)|(?:^aria-)|:/.test(attributeName)) {\r\n return attributeName;\r\n }\r\n return camelCase(attributeName);\r\n };\r\n AttributeMap.inject = [SVGAnalyzer];\r\n return AttributeMap;\r\n}());\n\nvar InterpolationBindingExpression = (function () {\r\n function InterpolationBindingExpression(observerLocator, targetProperty, parts, mode, lookupFunctions, attribute) {\r\n this.observerLocator = observerLocator;\r\n this.targetProperty = targetProperty;\r\n this.parts = parts;\r\n this.mode = mode;\r\n this.lookupFunctions = lookupFunctions;\r\n this.attribute = this.attrToRemove = attribute;\r\n this.discrete = false;\r\n }\r\n InterpolationBindingExpression.prototype.createBinding = function (target) {\r\n if (this.parts.length === 3) {\r\n return new ChildInterpolationBinding(target, this.observerLocator, this.parts[1], this.mode, this.lookupFunctions, this.targetProperty, this.parts[0], this.parts[2]);\r\n }\r\n return new InterpolationBinding(this.observerLocator, this.parts, target, this.targetProperty, this.mode, this.lookupFunctions);\r\n };\r\n return InterpolationBindingExpression;\r\n}());\r\nfunction validateTarget(target, propertyName) {\r\n if (propertyName === 'style') {\r\n LogManager.getLogger('templating-binding')\r\n .info('Internet Explorer does not support interpolation in \"style\" attributes. Use the style attribute\\'s alias, \"css\" instead.');\r\n }\r\n else if (target.parentElement && target.parentElement.nodeName === 'TEXTAREA' && propertyName === 'textContent') {\r\n throw new Error('Interpolation binding cannot be used in the content of a textarea element. Use instead.');\r\n }\r\n}\r\nvar InterpolationBinding = (function () {\r\n function InterpolationBinding(observerLocator, parts, target, targetProperty, mode, lookupFunctions) {\r\n validateTarget(target, targetProperty);\r\n this.observerLocator = observerLocator;\r\n this.parts = parts;\r\n this.target = target;\r\n this.targetProperty = targetProperty;\r\n this.targetAccessor = observerLocator.getAccessor(target, targetProperty);\r\n this.mode = mode;\r\n this.lookupFunctions = lookupFunctions;\r\n }\r\n InterpolationBinding.prototype.interpolate = function () {\r\n if (this.isBound) {\r\n var value = '';\r\n var parts = this.parts;\r\n for (var i = 0, ii = parts.length; i < ii; i++) {\r\n value += (i % 2 === 0 ? parts[i] : this[\"childBinding\".concat(i)].value);\r\n }\r\n this.targetAccessor.setValue(value, this.target, this.targetProperty);\r\n }\r\n };\r\n InterpolationBinding.prototype.updateOneTimeBindings = function () {\r\n for (var i = 1, ii = this.parts.length; i < ii; i += 2) {\r\n var child = this[\"childBinding\".concat(i)];\r\n if (child.mode === bindingMode.oneTime) {\r\n child.call();\r\n }\r\n }\r\n };\r\n InterpolationBinding.prototype.bind = function (source) {\r\n if (this.isBound) {\r\n if (this.source === source) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.source = source;\r\n var parts = this.parts;\r\n for (var i = 1, ii = parts.length; i < ii; i += 2) {\r\n var binding = new ChildInterpolationBinding(this, this.observerLocator, parts[i], this.mode, this.lookupFunctions);\r\n binding.bind(source);\r\n this[\"childBinding\".concat(i)] = binding;\r\n }\r\n this.isBound = true;\r\n this.interpolate();\r\n };\r\n InterpolationBinding.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 parts = this.parts;\r\n for (var i = 1, ii = parts.length; i < ii; i += 2) {\r\n var name_1 = \"childBinding\".concat(i);\r\n this[name_1].unbind();\r\n }\r\n };\r\n return InterpolationBinding;\r\n}());\r\nvar ChildInterpolationBinding = (function () {\r\n function ChildInterpolationBinding(target, observerLocator, sourceExpression, mode, lookupFunctions, targetProperty, left, right) {\r\n if (target instanceof InterpolationBinding) {\r\n this.parent = target;\r\n }\r\n else {\r\n validateTarget(target, targetProperty);\r\n this.target = target;\r\n this.targetProperty = targetProperty;\r\n this.targetAccessor = observerLocator.getAccessor(target, targetProperty);\r\n }\r\n this.observerLocator = observerLocator;\r\n this.sourceExpression = sourceExpression;\r\n this.mode = mode;\r\n this.lookupFunctions = lookupFunctions;\r\n this.left = left;\r\n this.right = right;\r\n }\r\n ChildInterpolationBinding.prototype.updateTarget = function (value) {\r\n value = value === null || value === undefined ? '' : value.toString();\r\n if (value !== this.value) {\r\n this.value = value;\r\n if (this.parent) {\r\n this.parent.interpolate();\r\n }\r\n else {\r\n this.targetAccessor.setValue(this.left + value + this.right, this.target, this.targetProperty);\r\n }\r\n }\r\n };\r\n ChildInterpolationBinding.prototype.call = function () {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n this.rawValue = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\r\n this.updateTarget(this.rawValue);\r\n if (this.mode !== bindingMode.oneTime) {\r\n this._version++;\r\n this.sourceExpression.connect(this, this.source);\r\n if (this.rawValue instanceof Array) {\r\n this.observeArray(this.rawValue);\r\n }\r\n this.unobserve(false);\r\n }\r\n };\r\n ChildInterpolationBinding.prototype.bind = function (source) {\r\n if (this.isBound) {\r\n if (this.source === source) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.isBound = true;\r\n this.source = source;\r\n var sourceExpression = this.sourceExpression;\r\n if (sourceExpression.bind) {\r\n sourceExpression.bind(this, source, this.lookupFunctions);\r\n }\r\n this.rawValue = sourceExpression.evaluate(source, this.lookupFunctions);\r\n this.updateTarget(this.rawValue);\r\n if (this.mode === bindingMode.oneWay) {\r\n enqueueBindingConnect(this);\r\n }\r\n };\r\n ChildInterpolationBinding.prototype.unbind = function () {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n this.isBound = false;\r\n var sourceExpression = this.sourceExpression;\r\n if (sourceExpression.unbind) {\r\n sourceExpression.unbind(this, this.source);\r\n }\r\n this.source = null;\r\n this.value = null;\r\n this.rawValue = null;\r\n this.unobserve(true);\r\n };\r\n ChildInterpolationBinding.prototype.connect = function (evaluate) {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n if (evaluate) {\r\n this.rawValue = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\r\n this.updateTarget(this.rawValue);\r\n }\r\n this.sourceExpression.connect(this, this.source);\r\n if (this.rawValue instanceof Array) {\r\n this.observeArray(this.rawValue);\r\n }\r\n };\r\n ChildInterpolationBinding = __decorate([\r\n connectable()\r\n ], ChildInterpolationBinding);\r\n return ChildInterpolationBinding;\r\n}());\n\nvar LetExpression = (function () {\r\n function LetExpression(observerLocator, targetProperty, sourceExpression, lookupFunctions, toBindingContext) {\r\n this.observerLocator = observerLocator;\r\n this.sourceExpression = sourceExpression;\r\n this.targetProperty = targetProperty;\r\n this.lookupFunctions = lookupFunctions;\r\n this.toBindingContext = toBindingContext;\r\n }\r\n LetExpression.prototype.createBinding = function () {\r\n return new LetBinding(this.observerLocator, this.sourceExpression, this.targetProperty, this.lookupFunctions, this.toBindingContext);\r\n };\r\n return LetExpression;\r\n}());\r\nvar LetBinding = (function () {\r\n function LetBinding(observerLocator, sourceExpression, targetProperty, lookupFunctions, toBindingContext) {\r\n this.observerLocator = observerLocator;\r\n this.sourceExpression = sourceExpression;\r\n this.targetProperty = targetProperty;\r\n this.lookupFunctions = lookupFunctions;\r\n this.source = null;\r\n this.target = null;\r\n this.toBindingContext = toBindingContext;\r\n }\r\n LetBinding.prototype.updateTarget = function () {\r\n var value = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\r\n this.target[this.targetProperty] = value;\r\n };\r\n LetBinding.prototype.call = function (context) {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n if (context === sourceContext) {\r\n this.updateTarget();\r\n return;\r\n }\r\n throw new Error(\"Unexpected call context \".concat(context));\r\n };\r\n LetBinding.prototype.bind = function (source) {\r\n if (this.isBound) {\r\n if (this.source === source) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.isBound = true;\r\n this.source = source;\r\n this.target = this.toBindingContext ? source.bindingContext : source.overrideContext;\r\n if (this.sourceExpression.bind) {\r\n this.sourceExpression.bind(this, source, this.lookupFunctions);\r\n }\r\n enqueueBindingConnect(this);\r\n };\r\n LetBinding.prototype.unbind = function () {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n this.isBound = false;\r\n if (this.sourceExpression.unbind) {\r\n this.sourceExpression.unbind(this, this.source);\r\n }\r\n this.source = null;\r\n this.target = null;\r\n this.unobserve(true);\r\n };\r\n LetBinding.prototype.unobserve = function (arg0) {\r\n throw new Error('Method not implemented.');\r\n };\r\n LetBinding.prototype.connect = function () {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n this.updateTarget();\r\n this.sourceExpression.connect(this, this.source);\r\n };\r\n LetBinding = __decorate([\r\n connectable()\r\n ], LetBinding);\r\n return LetBinding;\r\n}());\n\nvar LetInterpolationBindingExpression = (function () {\r\n function LetInterpolationBindingExpression(observerLocator, targetProperty, parts, lookupFunctions, toBindingContext) {\r\n this.observerLocator = observerLocator;\r\n this.targetProperty = targetProperty;\r\n this.parts = parts;\r\n this.lookupFunctions = lookupFunctions;\r\n this.toBindingContext = toBindingContext;\r\n }\r\n LetInterpolationBindingExpression.prototype.createBinding = function () {\r\n return new LetInterpolationBinding(this.observerLocator, this.targetProperty, this.parts, this.lookupFunctions, this.toBindingContext);\r\n };\r\n return LetInterpolationBindingExpression;\r\n}());\r\nvar LetInterpolationBinding = (function () {\r\n function LetInterpolationBinding(observerLocator, targetProperty, parts, lookupFunctions, toBindingContext) {\r\n this.observerLocator = observerLocator;\r\n this.parts = parts;\r\n this.targetProperty = targetProperty;\r\n this.lookupFunctions = lookupFunctions;\r\n this.toBindingContext = toBindingContext;\r\n this.target = null;\r\n }\r\n LetInterpolationBinding.prototype.bind = function (source) {\r\n if (this.isBound) {\r\n if (this.source === source) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.isBound = true;\r\n this.source = source;\r\n this.target = this.toBindingContext ? source.bindingContext : source.overrideContext;\r\n this.interpolationBinding = this.createInterpolationBinding();\r\n this.interpolationBinding.bind(source);\r\n };\r\n LetInterpolationBinding.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 this.target = null;\r\n this.interpolationBinding.unbind();\r\n this.interpolationBinding = null;\r\n };\r\n LetInterpolationBinding.prototype.createInterpolationBinding = function () {\r\n if (this.parts.length === 3) {\r\n return new ChildInterpolationBinding(this.target, this.observerLocator, this.parts[1], bindingMode.toView, this.lookupFunctions, this.targetProperty, this.parts[0], this.parts[2]);\r\n }\r\n return new InterpolationBinding(this.observerLocator, this.parts, this.target, this.targetProperty, bindingMode.toView, this.lookupFunctions);\r\n };\r\n return LetInterpolationBinding;\r\n}());\n\nvar SyntaxInterpreter = (function () {\r\n function SyntaxInterpreter(parser, observerLocator, eventManager, attributeMap) {\r\n this.parser = parser;\r\n this.observerLocator = observerLocator;\r\n this.eventManager = eventManager;\r\n this.attributeMap = attributeMap;\r\n }\r\n SyntaxInterpreter.prototype.interpret = function (resources, element, info, existingInstruction, context) {\r\n if (info.command in this) {\r\n return this[info.command](resources, element, info, existingInstruction, context);\r\n }\r\n return this.handleUnknownCommand(resources, element, info, existingInstruction, context);\r\n };\r\n SyntaxInterpreter.prototype.handleUnknownCommand = function (resources, element, info, existingInstruction, context) {\r\n LogManager.getLogger('templating-binding').warn('Unknown binding command.', info);\r\n return existingInstruction;\r\n };\r\n SyntaxInterpreter.prototype.determineDefaultBindingMode = function (element, attrName, context) {\r\n var tagName = element.tagName.toLowerCase();\r\n if (tagName === 'input' && (attrName === 'value' || attrName === 'files') && element.type !== 'checkbox' && element.type !== 'radio'\r\n || tagName === 'input' && attrName === 'checked' && (element.type === 'checkbox' || element.type === 'radio')\r\n || (tagName === 'textarea' || tagName === 'select') && attrName === 'value'\r\n || (attrName === 'textcontent' || attrName === 'innerhtml') && element.contentEditable === 'true'\r\n || attrName === 'scrolltop'\r\n || attrName === 'scrollleft') {\r\n return bindingMode.twoWay;\r\n }\r\n if (context\r\n && attrName in context.attributes\r\n && context.attributes[attrName]\r\n && context.attributes[attrName].defaultBindingMode >= bindingMode.oneTime) {\r\n return context.attributes[attrName].defaultBindingMode;\r\n }\r\n return bindingMode.toView;\r\n };\r\n SyntaxInterpreter.prototype.bind = function (resources, element, info, existingInstruction, context) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), info.defaultBindingMode === undefined || info.defaultBindingMode === null\r\n ? this.determineDefaultBindingMode(element, info.attrName, context)\r\n : info.defaultBindingMode, resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype.trigger = function (resources, element, info) {\r\n return new ListenerExpression(this.eventManager, info.attrName, this.parser.parse(info.attrValue), delegationStrategy.none, true, resources.lookupFunctions);\r\n };\r\n SyntaxInterpreter.prototype.capture = function (resources, element, info) {\r\n return new ListenerExpression(this.eventManager, info.attrName, this.parser.parse(info.attrValue), delegationStrategy.capturing, true, resources.lookupFunctions);\r\n };\r\n SyntaxInterpreter.prototype.delegate = function (resources, element, info) {\r\n return new ListenerExpression(this.eventManager, info.attrName, this.parser.parse(info.attrValue), delegationStrategy.bubbling, true, resources.lookupFunctions);\r\n };\r\n SyntaxInterpreter.prototype.call = function (resources, element, info, existingInstruction) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n instruction.attributes[info.attrName] = new CallExpression(this.observerLocator, info.attrName, this.parser.parse(info.attrValue), resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype.options = function (resources, element, info, existingInstruction, context) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n var attrValue = info.attrValue;\r\n var language = this.language;\r\n var name = null;\r\n var target = '';\r\n var current;\r\n var i;\r\n var ii;\r\n var inString = false;\r\n var inEscape = false;\r\n var foundName = false;\r\n for (i = 0, ii = attrValue.length; i < ii; ++i) {\r\n current = attrValue[i];\r\n if (current === ';' && !inString) {\r\n if (!foundName) {\r\n name = this._getPrimaryPropertyName(resources, context);\r\n }\r\n info = language.inspectAttribute(resources, '?', name, target.trim());\r\n language.createAttributeInstruction(resources, element, info, instruction, context);\r\n if (!instruction.attributes[info.attrName]) {\r\n instruction.attributes[info.attrName] = info.attrValue;\r\n }\r\n target = '';\r\n name = null;\r\n }\r\n else if (current === ':' && name === null) {\r\n foundName = true;\r\n name = target.trim();\r\n target = '';\r\n }\r\n else if (current === '\\\\') {\r\n target += current;\r\n inEscape = true;\r\n continue;\r\n }\r\n else {\r\n target += current;\r\n if (name !== null && inEscape === false && current === '\\'') {\r\n inString = !inString;\r\n }\r\n }\r\n inEscape = false;\r\n }\r\n if (!foundName) {\r\n name = this._getPrimaryPropertyName(resources, context);\r\n }\r\n if (name !== null) {\r\n info = language.inspectAttribute(resources, '?', name, target.trim());\r\n language.createAttributeInstruction(resources, element, info, instruction, context);\r\n if (!instruction.attributes[info.attrName]) {\r\n instruction.attributes[info.attrName] = info.attrValue;\r\n }\r\n }\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype._getPrimaryPropertyName = function (resources, context) {\r\n var type = resources.getAttribute(context.attributeName);\r\n if (type && type.primaryProperty) {\r\n return type.primaryProperty.attribute;\r\n }\r\n return null;\r\n };\r\n SyntaxInterpreter.prototype['for'] = function (resources, element, info, existingInstruction) {\r\n var parts;\r\n var keyValue;\r\n var instruction;\r\n var attrValue;\r\n var isDestructuring;\r\n attrValue = info.attrValue;\r\n isDestructuring = attrValue.match(/^ *[[].+[\\]]/);\r\n parts = isDestructuring ? attrValue.split('of ') : attrValue.split(' of ');\r\n if (parts.length !== 2) {\r\n throw new Error('Incorrect syntax for \"for\". The form is: \"$local of $items\" or \"[$key, $value] of $items\".');\r\n }\r\n instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n if (isDestructuring) {\r\n keyValue = parts[0].replace(/[[\\]]/g, '').replace(/,/g, ' ').replace(/\\s+/g, ' ').trim().split(' ');\r\n instruction.attributes.key = keyValue[0];\r\n instruction.attributes.value = keyValue[1];\r\n }\r\n else {\r\n instruction.attributes.local = parts[0];\r\n }\r\n instruction.attributes.items = new BindingExpression(this.observerLocator, 'items', this.parser.parse(parts[1]), bindingMode.toView, resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype['two-way'] = function (resources, element, info, existingInstruction) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.twoWay, resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype['to-view'] = function (resources, element, info, existingInstruction) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.toView, resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype['from-view'] = function (resources, element, info, existingInstruction) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.fromView, resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.prototype['one-time'] = function (resources, element, info, existingInstruction) {\r\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\r\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.oneTime, resources.lookupFunctions);\r\n return instruction;\r\n };\r\n SyntaxInterpreter.inject = [Parser, ObserverLocator, EventManager, AttributeMap];\r\n return SyntaxInterpreter;\r\n}());\r\nObject.defineProperty(SyntaxInterpreter.prototype, 'one-way', Object.getOwnPropertyDescriptor(SyntaxInterpreter.prototype, 'to-view'));\n\nvar info = {};\r\nvar TemplatingBindingLanguage = (function (_super) {\r\n __extends(TemplatingBindingLanguage, _super);\r\n function TemplatingBindingLanguage(parser, observerLocator, syntaxInterpreter, attributeMap) {\r\n var _this = _super.call(this) || this;\r\n _this.parser = parser;\r\n _this.observerLocator = observerLocator;\r\n _this.syntaxInterpreter = syntaxInterpreter;\r\n _this.emptyStringExpression = _this.parser.parse('\\'\\'');\r\n syntaxInterpreter.language = _this;\r\n _this.attributeMap = attributeMap;\r\n _this.toBindingContextAttr = 'to-binding-context';\r\n return _this;\r\n }\r\n TemplatingBindingLanguage.prototype.inspectAttribute = function (resources, elementName, attrName, attrValue) {\r\n var parts = attrName.split('.');\r\n info.defaultBindingMode = null;\r\n if (parts.length === 2) {\r\n info.attrName = parts[0].trim();\r\n info.attrValue = attrValue;\r\n info.command = parts[1].trim();\r\n if (info.command === 'ref') {\r\n info.expression = new NameExpression(this.parser.parse(attrValue), info.attrName, resources.lookupFunctions);\r\n info.command = null;\r\n info.attrName = 'ref';\r\n }\r\n else {\r\n info.expression = null;\r\n }\r\n }\r\n else if (attrName === 'ref') {\r\n info.attrName = attrName;\r\n info.attrValue = attrValue;\r\n info.command = null;\r\n info.expression = new NameExpression(this.parser.parse(attrValue), 'element', resources.lookupFunctions);\r\n }\r\n else {\r\n info.attrName = attrName;\r\n info.attrValue = attrValue;\r\n info.command = null;\r\n var interpolationParts = this.parseInterpolation(resources, attrValue);\r\n if (interpolationParts === null) {\r\n info.expression = null;\r\n }\r\n else {\r\n info.expression = new InterpolationBindingExpression(this.observerLocator, this.attributeMap.map(elementName, attrName), interpolationParts, bindingMode.toView, resources.lookupFunctions, attrName);\r\n }\r\n }\r\n return info;\r\n };\r\n TemplatingBindingLanguage.prototype.createAttributeInstruction = function (resources, element, theInfo, existingInstruction, context) {\r\n var instruction;\r\n if (theInfo.expression) {\r\n if (theInfo.attrName === 'ref') {\r\n return theInfo.expression;\r\n }\r\n instruction = existingInstruction || BehaviorInstruction.attribute(theInfo.attrName);\r\n instruction.attributes[theInfo.attrName] = theInfo.expression;\r\n }\r\n else if (theInfo.command) {\r\n instruction = this.syntaxInterpreter.interpret(resources, element, theInfo, existingInstruction, context);\r\n }\r\n return instruction;\r\n };\r\n TemplatingBindingLanguage.prototype.createLetExpressions = function (resources, letElement) {\r\n var expressions = [];\r\n var attributes = letElement.attributes;\r\n var attr;\r\n var parts;\r\n var attrName;\r\n var attrValue;\r\n var command;\r\n var toBindingContextAttr = this.toBindingContextAttr;\r\n var toBindingContext = letElement.hasAttribute(toBindingContextAttr);\r\n for (var i = 0, ii = attributes.length; ii > i; ++i) {\r\n attr = attributes[i];\r\n attrName = attr.name;\r\n attrValue = attr.nodeValue;\r\n parts = attrName.split('.');\r\n if (attrName === toBindingContextAttr) {\r\n continue;\r\n }\r\n if (parts.length === 2) {\r\n command = parts[1];\r\n if (command !== 'bind') {\r\n LogManager.getLogger('templating-binding-language')\r\n .warn(\"Detected invalid let command. Expected \\\"\".concat(parts[0], \".bind\\\", given \\\"\").concat(attrName, \"\\\"\"));\r\n continue;\r\n }\r\n expressions.push(new LetExpression(this.observerLocator, camelCase(parts[0]), this.parser.parse(attrValue), resources.lookupFunctions, toBindingContext));\r\n }\r\n else {\r\n attrName = camelCase(attrName);\r\n parts = this.parseInterpolation(resources, attrValue);\r\n if (parts === null) {\r\n LogManager.getLogger('templating-binding-language')\r\n .warn(\"Detected string literal in let bindings. Did you mean \\\"\".concat(attrName, \".bind=\").concat(attrValue, \"\\\" or \\\"\").concat(attrName, \"=${\").concat(attrValue, \"}\\\" ?\"));\r\n }\r\n if (parts) {\r\n expressions.push(new LetInterpolationBindingExpression(this.observerLocator, attrName, parts, resources.lookupFunctions, toBindingContext));\r\n }\r\n else {\r\n expressions.push(new LetExpression(this.observerLocator, attrName, new LiteralString(attrValue), resources.lookupFunctions, toBindingContext));\r\n }\r\n }\r\n }\r\n return expressions;\r\n };\r\n TemplatingBindingLanguage.prototype.inspectTextContent = function (resources, value) {\r\n var parts = this.parseInterpolation(resources, value);\r\n if (parts === null) {\r\n return null;\r\n }\r\n return new InterpolationBindingExpression(this.observerLocator, 'textContent', parts, bindingMode.toView, resources.lookupFunctions, 'textContent');\r\n };\r\n TemplatingBindingLanguage.prototype.parseInterpolation = function (resources, value) {\r\n var i = value.indexOf('${', 0);\r\n var ii = value.length;\r\n var char;\r\n var pos = 0;\r\n var open = 0;\r\n var quote = null;\r\n var interpolationStart;\r\n var parts;\r\n var partIndex = 0;\r\n while (i >= 0 && i < ii - 2) {\r\n open = 1;\r\n interpolationStart = i;\r\n i += 2;\r\n do {\r\n char = value[i];\r\n i++;\r\n if (char === \"'\" || char === '\"') {\r\n if (quote === null) {\r\n quote = char;\r\n }\r\n else if (quote === char) {\r\n quote = null;\r\n }\r\n continue;\r\n }\r\n if (char === '\\\\') {\r\n i++;\r\n continue;\r\n }\r\n if (quote !== null) {\r\n continue;\r\n }\r\n if (char === '{') {\r\n open++;\r\n }\r\n else if (char === '}') {\r\n open--;\r\n }\r\n } while (open > 0 && i < ii);\r\n if (open === 0) {\r\n parts = parts || [];\r\n if (value[interpolationStart - 1] === '\\\\' && value[interpolationStart - 2] !== '\\\\') {\r\n parts[partIndex] = value.substring(pos, interpolationStart - 1) + value.substring(interpolationStart, i);\r\n partIndex++;\r\n parts[partIndex] = this.emptyStringExpression;\r\n partIndex++;\r\n }\r\n else {\r\n parts[partIndex] = value.substring(pos, interpolationStart);\r\n partIndex++;\r\n parts[partIndex] = this.parser.parse(value.substring(interpolationStart + 2, i - 1));\r\n partIndex++;\r\n }\r\n pos = i;\r\n i = value.indexOf('${', i);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (partIndex === 0) {\r\n return null;\r\n }\r\n parts[partIndex] = value.substr(pos);\r\n return parts;\r\n };\r\n TemplatingBindingLanguage.inject = [Parser, ObserverLocator, SyntaxInterpreter, AttributeMap];\r\n return TemplatingBindingLanguage;\r\n}(BindingLanguage));\n\nfunction configure(config) {\r\n config.container.registerSingleton(BindingLanguage, TemplatingBindingLanguage);\r\n config.container.registerAlias(BindingLanguage, TemplatingBindingLanguage);\r\n}\n\nexport { AttributeMap, ChildInterpolationBinding, InterpolationBinding, InterpolationBindingExpression, LetBinding, LetExpression, LetInterpolationBinding, LetInterpolationBindingExpression, SyntaxInterpreter, TemplatingBindingLanguage, configure };\n//# sourceMappingURL=aurelia-templating-binding.js.map\n","import { Container, inject, Optional } from 'aurelia-dependency-injection';\nimport { DOM, FEATURE } from 'aurelia-pal';\nimport { TaskQueue } from 'aurelia-task-queue';\nimport { bindable, noView, customElement, CompositionEngine, ViewSlot, ViewResources, customAttribute, templateController, BoundViewFactory, TargetInstruction, Animator, resource, useView, useShadowDOM, ViewEngine } from 'aurelia-templating';\nimport { createOverrideContext, bindingMode, BindingBehavior, ValueConverter, sourceContext, mergeSplice, ObserverLocator, valueConverter, DataAttributeObserver, bindingBehavior, targetContext, EventSubscriber } from 'aurelia-binding';\nimport { Loader } from 'aurelia-loader';\nimport { relativeToFile } from 'aurelia-path';\nimport { mixin } from 'aurelia-metadata';\nimport { getLogger } from 'aurelia-logging';\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/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\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 ActivationStrategy;\r\n(function (ActivationStrategy) {\r\n ActivationStrategy[\"InvokeLifecycle\"] = \"invoke-lifecycle\";\r\n ActivationStrategy[\"Replace\"] = \"replace\";\r\n})(ActivationStrategy || (ActivationStrategy = {}));\r\nvar Compose = (function () {\r\n function Compose(element, container, compositionEngine, viewSlot, viewResources, taskQueue) {\r\n this.activationStrategy = ActivationStrategy.InvokeLifecycle;\r\n this.element = element;\r\n this.container = container;\r\n this.compositionEngine = compositionEngine;\r\n this.viewSlot = viewSlot;\r\n this.viewResources = viewResources;\r\n this.taskQueue = taskQueue;\r\n this.currentController = null;\r\n this.currentViewModel = null;\r\n this.changes = Object.create(null);\r\n }\r\n Compose.inject = function () {\r\n return [DOM.Element, Container, CompositionEngine, ViewSlot, ViewResources, TaskQueue];\r\n };\r\n Compose.prototype.created = function (owningView) {\r\n this.owningView = owningView;\r\n };\r\n Compose.prototype.bind = function (bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n var changes = this.changes;\r\n changes.view = this.view;\r\n changes.viewModel = this.viewModel;\r\n changes.model = this.model;\r\n if (!this.pendingTask) {\r\n processChanges(this);\r\n }\r\n };\r\n Compose.prototype.unbind = function () {\r\n this.changes = Object.create(null);\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n var returnToCache = true;\r\n var skipAnimation = true;\r\n this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n };\r\n Compose.prototype.modelChanged = function (newValue, oldValue) {\r\n this.changes.model = newValue;\r\n requestUpdate(this);\r\n };\r\n Compose.prototype.viewChanged = function (newValue, oldValue) {\r\n this.changes.view = newValue;\r\n requestUpdate(this);\r\n };\r\n Compose.prototype.viewModelChanged = function (newValue, oldValue) {\r\n this.changes.viewModel = newValue;\r\n requestUpdate(this);\r\n };\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"model\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"view\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"viewModel\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"activationStrategy\", void 0);\r\n __decorate([\r\n bindable\r\n ], Compose.prototype, \"swapOrder\", void 0);\r\n Compose = __decorate([\r\n noView,\r\n customElement('compose')\r\n ], Compose);\r\n return Compose;\r\n}());\r\nfunction isEmpty(obj) {\r\n for (var _ in obj) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction tryActivateViewModel(vm, model) {\r\n if (vm && typeof vm.activate === 'function') {\r\n return Promise.resolve(vm.activate(model));\r\n }\r\n}\r\nfunction createInstruction(composer, instruction) {\r\n return Object.assign(instruction, {\r\n bindingContext: composer.bindingContext,\r\n overrideContext: composer.overrideContext,\r\n owningView: composer.owningView,\r\n container: composer.container,\r\n viewSlot: composer.viewSlot,\r\n viewResources: composer.viewResources,\r\n currentController: composer.currentController,\r\n host: composer.element,\r\n swapOrder: composer.swapOrder\r\n });\r\n}\r\nfunction processChanges(composer) {\r\n var changes = composer.changes;\r\n composer.changes = Object.create(null);\r\n if (needsReInitialization(composer, changes)) {\r\n var instruction = {\r\n view: composer.view,\r\n viewModel: composer.currentViewModel || composer.viewModel,\r\n model: composer.model\r\n };\r\n instruction = Object.assign(instruction, changes);\r\n instruction = createInstruction(composer, instruction);\r\n composer.pendingTask = composer.compositionEngine.compose(instruction).then(function (controller) {\r\n composer.currentController = controller;\r\n composer.currentViewModel = controller ? controller.viewModel : null;\r\n });\r\n }\r\n else {\r\n composer.pendingTask = tryActivateViewModel(composer.currentViewModel, changes.model);\r\n if (!composer.pendingTask) {\r\n return;\r\n }\r\n }\r\n composer.pendingTask = composer.pendingTask\r\n .then(function () {\r\n completeCompositionTask(composer);\r\n }, function (reason) {\r\n completeCompositionTask(composer);\r\n throw reason;\r\n });\r\n}\r\nfunction completeCompositionTask(composer) {\r\n composer.pendingTask = null;\r\n if (!isEmpty(composer.changes)) {\r\n processChanges(composer);\r\n }\r\n}\r\nfunction requestUpdate(composer) {\r\n if (composer.pendingTask || composer.updateRequested) {\r\n return;\r\n }\r\n composer.updateRequested = true;\r\n composer.taskQueue.queueMicroTask(function () {\r\n composer.updateRequested = false;\r\n processChanges(composer);\r\n });\r\n}\r\nfunction needsReInitialization(composer, changes) {\r\n var activationStrategy = composer.activationStrategy;\r\n var vm = composer.currentViewModel;\r\n if (vm && typeof vm.determineActivationStrategy === 'function') {\r\n activationStrategy = vm.determineActivationStrategy();\r\n }\r\n return 'view' in changes\r\n || 'viewModel' in changes\r\n || activationStrategy === ActivationStrategy.Replace;\r\n}\n\nvar IfCore = (function () {\r\n function IfCore(viewFactory, viewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.view = null;\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n this.showing = false;\r\n this.cache = true;\r\n }\r\n IfCore.prototype.bind = function (bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n };\r\n IfCore.prototype.unbind = function () {\r\n if (this.view === null) {\r\n return;\r\n }\r\n this.view.unbind();\r\n if (!this.viewFactory.isCaching) {\r\n return;\r\n }\r\n if (this.showing) {\r\n this.showing = false;\r\n this.viewSlot.remove(this.view, true, true);\r\n }\r\n else {\r\n this.view.returnToCache();\r\n }\r\n this.view = null;\r\n };\r\n IfCore.prototype._show = function () {\r\n if (this.showing) {\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n return;\r\n }\r\n if (this.view === null) {\r\n this.view = this.viewFactory.create();\r\n }\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n this.showing = true;\r\n return this.viewSlot.add(this.view);\r\n };\r\n IfCore.prototype._hide = function () {\r\n var _this = this;\r\n if (!this.showing) {\r\n return;\r\n }\r\n this.showing = false;\r\n var removed = this.viewSlot.remove(this.view);\r\n if (removed instanceof Promise) {\r\n return removed.then(function () {\r\n _this._unbindView();\r\n });\r\n }\r\n this._unbindView();\r\n };\r\n IfCore.prototype._unbindView = function () {\r\n var cache = this.cache === 'false' ? false : !!this.cache;\r\n this.view.unbind();\r\n if (!cache) {\r\n this.view = null;\r\n }\r\n };\r\n return IfCore;\r\n}());\n\nvar If = (function (_super) {\r\n __extends(If, _super);\r\n function If() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.cache = true;\r\n return _this;\r\n }\r\n If.prototype.bind = function (bindingContext, overrideContext) {\r\n _super.prototype.bind.call(this, bindingContext, overrideContext);\r\n if (this.condition) {\r\n this._show();\r\n }\r\n else {\r\n this._hide();\r\n }\r\n };\r\n If.prototype.conditionChanged = function (newValue) {\r\n this._update(newValue);\r\n };\r\n If.prototype._update = function (show) {\r\n var _this = this;\r\n if (this.animating) {\r\n return;\r\n }\r\n var promise;\r\n if (this.elseVm) {\r\n promise = show ? this._swap(this.elseVm, this) : this._swap(this, this.elseVm);\r\n }\r\n else {\r\n promise = show ? this._show() : this._hide();\r\n }\r\n if (promise) {\r\n this.animating = true;\r\n promise.then(function () {\r\n _this.animating = false;\r\n if (_this.condition !== _this.showing) {\r\n _this._update(_this.condition);\r\n }\r\n });\r\n }\r\n };\r\n If.prototype._swap = function (remove, add) {\r\n switch (this.swapOrder) {\r\n case 'before':\r\n return Promise.resolve(add._show()).then(function () { return remove._hide(); });\r\n case 'with':\r\n return Promise.all([remove._hide(), add._show()]);\r\n default:\r\n var promise = remove._hide();\r\n return promise ? promise.then(function () { return add._show(); }) : add._show();\r\n }\r\n };\r\n __decorate([\r\n bindable({ primaryProperty: true })\r\n ], If.prototype, \"condition\", void 0);\r\n __decorate([\r\n bindable\r\n ], If.prototype, \"swapOrder\", void 0);\r\n __decorate([\r\n bindable\r\n ], If.prototype, \"cache\", void 0);\r\n If = __decorate([\r\n customAttribute('if'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], If);\r\n return If;\r\n}(IfCore));\n\nvar Else = (function (_super) {\r\n __extends(Else, _super);\r\n function Else(viewFactory, viewSlot) {\r\n var _this = _super.call(this, viewFactory, viewSlot) || this;\r\n _this._registerInIf();\r\n return _this;\r\n }\r\n Else.prototype.bind = function (bindingContext, overrideContext) {\r\n _super.prototype.bind.call(this, bindingContext, overrideContext);\r\n if (this.ifVm.condition) {\r\n this._hide();\r\n }\r\n else {\r\n this._show();\r\n }\r\n };\r\n Else.prototype._registerInIf = function () {\r\n var previous = this.viewSlot.anchor.previousSibling;\r\n while (previous && !previous.au) {\r\n previous = previous.previousSibling;\r\n }\r\n if (!previous || !previous.au.if) {\r\n throw new Error(\"Can't find matching If for Else custom attribute.\");\r\n }\r\n this.ifVm = previous.au.if.viewModel;\r\n this.ifVm.elseVm = this;\r\n };\r\n Else = __decorate([\r\n customAttribute('else'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], Else);\r\n return Else;\r\n}(IfCore));\n\nvar With = (function () {\r\n function With(viewFactory, viewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.parentOverrideContext = null;\r\n this.view = null;\r\n }\r\n With.prototype.bind = function (bindingContext, overrideContext) {\r\n this.parentOverrideContext = overrideContext;\r\n this.valueChanged(this.value);\r\n };\r\n With.prototype.valueChanged = function (newValue) {\r\n var overrideContext = createOverrideContext(newValue, this.parentOverrideContext);\r\n var view = this.view;\r\n if (!view) {\r\n view = this.view = this.viewFactory.create();\r\n view.bind(newValue, overrideContext);\r\n this.viewSlot.add(view);\r\n }\r\n else {\r\n view.bind(newValue, overrideContext);\r\n }\r\n };\r\n With.prototype.unbind = function () {\r\n var view = this.view;\r\n this.parentOverrideContext = null;\r\n if (view) {\r\n view.unbind();\r\n }\r\n };\r\n With = __decorate([\r\n customAttribute('with'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], With);\r\n return With;\r\n}());\n\nvar oneTime = bindingMode.oneTime;\r\nfunction updateOverrideContexts(views, startIndex) {\r\n var length = views.length;\r\n if (startIndex > 0) {\r\n startIndex = startIndex - 1;\r\n }\r\n for (; startIndex < length; ++startIndex) {\r\n updateOverrideContext(views[startIndex].overrideContext, startIndex, length);\r\n }\r\n}\r\nfunction createFullOverrideContext(repeat, data, index, length, key) {\r\n var bindingContext = {};\r\n var overrideContext = createOverrideContext(bindingContext, repeat.scope.overrideContext);\r\n if (typeof key !== 'undefined') {\r\n bindingContext[repeat.key] = key;\r\n bindingContext[repeat.value] = data;\r\n }\r\n else {\r\n bindingContext[repeat.local] = data;\r\n }\r\n updateOverrideContext(overrideContext, index, length);\r\n return overrideContext;\r\n}\r\nfunction updateOverrideContext(overrideContext, index, length) {\r\n var first = (index === 0);\r\n var last = (index === length - 1);\r\n var even = index % 2 === 0;\r\n overrideContext.$index = index;\r\n overrideContext.$first = first;\r\n overrideContext.$last = last;\r\n overrideContext.$middle = !(first || last);\r\n overrideContext.$odd = !even;\r\n overrideContext.$even = even;\r\n}\r\nfunction getItemsSourceExpression(instruction, attrName) {\r\n return instruction.behaviorInstructions\r\n .filter(function (bi) { return bi.originalAttrName === attrName; })[0]\r\n .attributes\r\n .items\r\n .sourceExpression;\r\n}\r\nfunction unwrapExpression(expression) {\r\n var unwrapped = false;\r\n while (expression instanceof BindingBehavior) {\r\n expression = expression.expression;\r\n }\r\n while (expression instanceof ValueConverter) {\r\n expression = expression.expression;\r\n unwrapped = true;\r\n }\r\n return unwrapped ? expression : null;\r\n}\r\nfunction isOneTime(expression) {\r\n while (expression instanceof BindingBehavior) {\r\n if (expression.name === 'oneTime') {\r\n return true;\r\n }\r\n expression = expression.expression;\r\n }\r\n return false;\r\n}\r\nfunction updateOneTimeBinding(binding) {\r\n if (binding.call && binding.mode === oneTime) {\r\n binding.call(sourceContext);\r\n }\r\n else if (binding.updateOneTimeBindings) {\r\n binding.updateOneTimeBindings();\r\n }\r\n}\r\nfunction indexOf(array, item, matcher, startIndex) {\r\n if (!matcher) {\r\n return array.indexOf(item);\r\n }\r\n var length = array.length;\r\n for (var index = startIndex || 0; index < length; index++) {\r\n if (matcher(array[index], item)) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n}\n\nvar ArrayRepeatStrategy = (function () {\r\n function ArrayRepeatStrategy() {\r\n }\r\n ArrayRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n return observerLocator.getArrayObserver(items);\r\n };\r\n ArrayRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n var _this = this;\r\n var $repeat = repeat;\r\n var itemsLength = items.length;\r\n if (!items || itemsLength === 0) {\r\n $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n return;\r\n }\r\n var children = $repeat.views();\r\n var viewsLength = children.length;\r\n if (viewsLength === 0) {\r\n this._standardProcessInstanceChanged($repeat, items);\r\n return;\r\n }\r\n if ($repeat.viewsRequireLifecycle) {\r\n var childrenSnapshot = children.slice(0);\r\n var itemNameInBindingContext = $repeat.local;\r\n var matcher_1 = $repeat.matcher();\r\n var itemsPreviouslyInViews_1 = [];\r\n var viewsToRemove = [];\r\n for (var index = 0; index < viewsLength; index++) {\r\n var view = childrenSnapshot[index];\r\n var oldItem = view.bindingContext[itemNameInBindingContext];\r\n if (indexOf(items, oldItem, matcher_1) === -1) {\r\n viewsToRemove.push(view);\r\n }\r\n else {\r\n itemsPreviouslyInViews_1.push(oldItem);\r\n }\r\n }\r\n var updateViews = void 0;\r\n var removePromise = void 0;\r\n if (itemsPreviouslyInViews_1.length > 0) {\r\n removePromise = $repeat.removeViews(viewsToRemove, true, !$repeat.viewsRequireLifecycle);\r\n updateViews = function () {\r\n for (var index = 0; index < itemsLength; index++) {\r\n var item = items[index];\r\n var indexOfView = indexOf(itemsPreviouslyInViews_1, item, matcher_1, index);\r\n var view = void 0;\r\n if (indexOfView === -1) {\r\n var overrideContext = createFullOverrideContext($repeat, items[index], index, itemsLength);\r\n $repeat.insertView(index, overrideContext.bindingContext, overrideContext);\r\n itemsPreviouslyInViews_1.splice(index, 0, undefined);\r\n }\r\n else if (indexOfView === index) {\r\n view = children[indexOfView];\r\n itemsPreviouslyInViews_1[indexOfView] = undefined;\r\n }\r\n else {\r\n view = children[indexOfView];\r\n $repeat.moveView(indexOfView, index);\r\n itemsPreviouslyInViews_1.splice(indexOfView, 1);\r\n itemsPreviouslyInViews_1.splice(index, 0, undefined);\r\n }\r\n if (view) {\r\n updateOverrideContext(view.overrideContext, index, itemsLength);\r\n }\r\n }\r\n _this._inPlaceProcessItems($repeat, items);\r\n };\r\n }\r\n else {\r\n removePromise = $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n updateViews = function () { return _this._standardProcessInstanceChanged($repeat, items); };\r\n }\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(updateViews);\r\n }\r\n else {\r\n updateViews();\r\n }\r\n }\r\n else {\r\n this._inPlaceProcessItems($repeat, items);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype._standardProcessInstanceChanged = function (repeat, items) {\r\n for (var i = 0, ii = items.length; i < ii; i++) {\r\n var overrideContext = createFullOverrideContext(repeat, items[i], i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype._inPlaceProcessItems = function (repeat, items) {\r\n var itemsLength = items.length;\r\n var viewsLength = repeat.viewCount();\r\n while (viewsLength > itemsLength) {\r\n viewsLength--;\r\n repeat.removeView(viewsLength, true, !repeat.viewsRequireLifecycle);\r\n }\r\n var local = repeat.local;\r\n for (var i = 0; i < viewsLength; i++) {\r\n var view = repeat.view(i);\r\n var last = i === itemsLength - 1;\r\n var middle = i !== 0 && !last;\r\n var bindingContext = view.bindingContext;\r\n var overrideContext = view.overrideContext;\r\n if (bindingContext[local] === items[i]\r\n && overrideContext.$middle === middle\r\n && overrideContext.$last === last) {\r\n continue;\r\n }\r\n bindingContext[local] = items[i];\r\n overrideContext.$middle = middle;\r\n overrideContext.$last = last;\r\n repeat.updateBindings(view);\r\n }\r\n for (var i = viewsLength; i < itemsLength; i++) {\r\n var overrideContext = createFullOverrideContext(repeat, items[i], i, itemsLength);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype.instanceMutated = function (repeat, array, splices) {\r\n var _this = this;\r\n if (repeat.__queuedSplices) {\r\n for (var i = 0, ii = splices.length; i < ii; ++i) {\r\n var _a = splices[i], index = _a.index, removed = _a.removed, addedCount = _a.addedCount;\r\n mergeSplice(repeat.__queuedSplices, index, removed, addedCount);\r\n }\r\n repeat.__array = array.slice(0);\r\n return;\r\n }\r\n var maybePromise = this._runSplices(repeat, array.slice(0), splices);\r\n if (maybePromise instanceof Promise) {\r\n var queuedSplices_1 = repeat.__queuedSplices = [];\r\n var runQueuedSplices_1 = function () {\r\n if (!queuedSplices_1.length) {\r\n repeat.__queuedSplices = undefined;\r\n repeat.__array = undefined;\r\n return;\r\n }\r\n var nextPromise = _this._runSplices(repeat, repeat.__array, queuedSplices_1) || Promise.resolve();\r\n queuedSplices_1 = repeat.__queuedSplices = [];\r\n nextPromise.then(runQueuedSplices_1);\r\n };\r\n maybePromise.then(runQueuedSplices_1);\r\n }\r\n };\r\n ArrayRepeatStrategy.prototype._runSplices = function (repeat, array, splices) {\r\n var _this = this;\r\n var removeDelta = 0;\r\n var rmPromises = [];\r\n for (var i = 0, ii = splices.length; i < ii; ++i) {\r\n var splice = splices[i];\r\n var removed = splice.removed;\r\n for (var j = 0, jj = removed.length; j < jj; ++j) {\r\n var viewOrPromise = repeat.removeView(splice.index + removeDelta + rmPromises.length, true);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n }\r\n removeDelta -= splice.addedCount;\r\n }\r\n if (rmPromises.length > 0) {\r\n return Promise.all(rmPromises).then(function () {\r\n var spliceIndexLow = _this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n });\r\n }\r\n var spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n return undefined;\r\n };\r\n ArrayRepeatStrategy.prototype._handleAddedSplices = function (repeat, array, splices) {\r\n var spliceIndex;\r\n var spliceIndexLow;\r\n var arrayLength = array.length;\r\n for (var i = 0, ii = splices.length; i < ii; ++i) {\r\n var splice = splices[i];\r\n var addIndex = spliceIndex = splice.index;\r\n var end = splice.index + splice.addedCount;\r\n if (typeof spliceIndexLow === 'undefined' || spliceIndexLow === null || spliceIndexLow > splice.index) {\r\n spliceIndexLow = spliceIndex;\r\n }\r\n for (; addIndex < end; ++addIndex) {\r\n var overrideContext = createFullOverrideContext(repeat, array[addIndex], addIndex, arrayLength);\r\n repeat.insertView(addIndex, overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n return spliceIndexLow;\r\n };\r\n return ArrayRepeatStrategy;\r\n}());\n\nvar MapRepeatStrategy = (function () {\r\n function MapRepeatStrategy() {\r\n }\r\n MapRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n return observerLocator.getMapObserver(items);\r\n };\r\n MapRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n var _this = this;\r\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(function () { return _this._standardProcessItems(repeat, items); });\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n };\r\n MapRepeatStrategy.prototype._standardProcessItems = function (repeat, items) {\r\n var index = 0;\r\n var overrideContext;\r\n items.forEach(function (value, key) {\r\n overrideContext = createFullOverrideContext(repeat, value, index, items.size, key);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n ++index;\r\n });\r\n };\r\n MapRepeatStrategy.prototype.instanceMutated = function (repeat, map, records) {\r\n var key;\r\n var i;\r\n var ii;\r\n var overrideContext;\r\n var removeIndex;\r\n var addIndex;\r\n var record;\r\n var rmPromises = [];\r\n var viewOrPromise;\r\n for (i = 0, ii = records.length; i < ii; ++i) {\r\n record = records[i];\r\n key = record.key;\r\n switch (record.type) {\r\n case 'update':\r\n removeIndex = this._getViewIndexByKey(repeat, key);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n overrideContext = createFullOverrideContext(repeat, map.get(key), removeIndex, map.size, key);\r\n repeat.insertView(removeIndex, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'add':\r\n addIndex = repeat.viewCount() <= map.size - 1 ? repeat.viewCount() : map.size - 1;\r\n overrideContext = createFullOverrideContext(repeat, map.get(key), addIndex, map.size, key);\r\n repeat.insertView(map.size - 1, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'delete':\r\n if (record.oldValue === undefined) {\r\n return;\r\n }\r\n removeIndex = this._getViewIndexByKey(repeat, key);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n break;\r\n case 'clear':\r\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n break;\r\n default:\r\n continue;\r\n }\r\n }\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(function () {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n }\r\n else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n };\r\n MapRepeatStrategy.prototype._getViewIndexByKey = function (repeat, key) {\r\n var i;\r\n var ii;\r\n var child;\r\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\r\n child = repeat.view(i);\r\n if (child.bindingContext[repeat.key] === key) {\r\n return i;\r\n }\r\n }\r\n return undefined;\r\n };\r\n return MapRepeatStrategy;\r\n}());\n\nvar NullRepeatStrategy = (function () {\r\n function NullRepeatStrategy() {\r\n }\r\n NullRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n repeat.removeAllViews(true);\r\n };\r\n NullRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n };\r\n return NullRepeatStrategy;\r\n}());\n\nvar NumberRepeatStrategy = (function () {\r\n function NumberRepeatStrategy() {\r\n }\r\n NumberRepeatStrategy.prototype.getCollectionObserver = function () {\r\n return null;\r\n };\r\n NumberRepeatStrategy.prototype.instanceChanged = function (repeat, value) {\r\n var _this = this;\r\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(function () { return _this._standardProcessItems(repeat, value); });\r\n return;\r\n }\r\n this._standardProcessItems(repeat, value);\r\n };\r\n NumberRepeatStrategy.prototype._standardProcessItems = function (repeat, value) {\r\n var childrenLength = repeat.viewCount();\r\n var i;\r\n var ii;\r\n var overrideContext;\r\n var viewsToRemove;\r\n value = Math.floor(value);\r\n viewsToRemove = childrenLength - value;\r\n if (viewsToRemove > 0) {\r\n if (viewsToRemove > childrenLength) {\r\n viewsToRemove = childrenLength;\r\n }\r\n for (i = 0, ii = viewsToRemove; i < ii; ++i) {\r\n repeat.removeView(childrenLength - (i + 1), true, !repeat.viewsRequireLifecycle);\r\n }\r\n return;\r\n }\r\n for (i = childrenLength, ii = value; i < ii; ++i) {\r\n overrideContext = createFullOverrideContext(repeat, i, i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n updateOverrideContexts(repeat.views(), 0);\r\n };\r\n return NumberRepeatStrategy;\r\n}());\n\nvar SetRepeatStrategy = (function () {\r\n function SetRepeatStrategy() {\r\n }\r\n SetRepeatStrategy.prototype.getCollectionObserver = function (observerLocator, items) {\r\n return observerLocator.getSetObserver(items);\r\n };\r\n SetRepeatStrategy.prototype.instanceChanged = function (repeat, items) {\r\n var _this = this;\r\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(function () { return _this._standardProcessItems(repeat, items); });\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n };\r\n SetRepeatStrategy.prototype._standardProcessItems = function (repeat, items) {\r\n var index = 0;\r\n var overrideContext;\r\n items.forEach(function (value) {\r\n overrideContext = createFullOverrideContext(repeat, value, index, items.size);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n ++index;\r\n });\r\n };\r\n SetRepeatStrategy.prototype.instanceMutated = function (repeat, set, records) {\r\n var value;\r\n var i;\r\n var ii;\r\n var overrideContext;\r\n var removeIndex;\r\n var record;\r\n var rmPromises = [];\r\n var viewOrPromise;\r\n for (i = 0, ii = records.length; i < ii; ++i) {\r\n record = records[i];\r\n value = record.value;\r\n switch (record.type) {\r\n case 'add':\r\n var size = Math.max(set.size - 1, 0);\r\n overrideContext = createFullOverrideContext(repeat, value, size, set.size);\r\n repeat.insertView(size, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'delete':\r\n removeIndex = this._getViewIndexByValue(repeat, value);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n break;\r\n case 'clear':\r\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n break;\r\n default:\r\n continue;\r\n }\r\n }\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(function () {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n }\r\n else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n };\r\n SetRepeatStrategy.prototype._getViewIndexByValue = function (repeat, value) {\r\n var i;\r\n var ii;\r\n var child;\r\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\r\n child = repeat.view(i);\r\n if (child.bindingContext[repeat.local] === value) {\r\n return i;\r\n }\r\n }\r\n return undefined;\r\n };\r\n return SetRepeatStrategy;\r\n}());\n\nvar RepeatStrategyLocator = (function () {\r\n function RepeatStrategyLocator() {\r\n this.matchers = [];\r\n this.strategies = [];\r\n this.addStrategy(function (items) { return items === null || items === undefined; }, new NullRepeatStrategy());\r\n this.addStrategy(function (items) { return items instanceof Array; }, new ArrayRepeatStrategy());\r\n this.addStrategy(function (items) { return items instanceof Map; }, new MapRepeatStrategy());\r\n this.addStrategy(function (items) { return items instanceof Set; }, new SetRepeatStrategy());\r\n this.addStrategy(function (items) { return typeof items === 'number'; }, new NumberRepeatStrategy());\r\n }\r\n RepeatStrategyLocator.prototype.addStrategy = function (matcher, strategy) {\r\n this.matchers.push(matcher);\r\n this.strategies.push(strategy);\r\n };\r\n RepeatStrategyLocator.prototype.getStrategy = function (items) {\r\n var matchers = this.matchers;\r\n for (var i = 0, ii = matchers.length; i < ii; ++i) {\r\n if (matchers[i](items)) {\r\n return this.strategies[i];\r\n }\r\n }\r\n return null;\r\n };\r\n return RepeatStrategyLocator;\r\n}());\n\nvar lifecycleOptionalBehaviors = ['focus', 'if', 'else', 'repeat', 'show', 'hide', 'with'];\r\nfunction behaviorRequiresLifecycle(instruction) {\r\n var t = instruction.type;\r\n var name = t.elementName !== null ? t.elementName : t.attributeName;\r\n return lifecycleOptionalBehaviors.indexOf(name) === -1 && (t.handlesAttached || t.handlesBind || t.handlesCreated || t.handlesDetached || t.handlesUnbind)\r\n || t.viewFactory && viewsRequireLifecycle(t.viewFactory)\r\n || instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\nfunction targetRequiresLifecycle(instruction) {\r\n var behaviors = instruction.behaviorInstructions;\r\n if (behaviors) {\r\n var i = behaviors.length;\r\n while (i--) {\r\n if (behaviorRequiresLifecycle(behaviors[i])) {\r\n return true;\r\n }\r\n }\r\n }\r\n return instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\nfunction viewsRequireLifecycle(viewFactory) {\r\n if ('_viewsRequireLifecycle' in viewFactory) {\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n viewFactory._viewsRequireLifecycle = false;\r\n if (viewFactory.viewFactory) {\r\n viewFactory._viewsRequireLifecycle = viewsRequireLifecycle(viewFactory.viewFactory);\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n if (viewFactory.template.querySelector('.au-animate')) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n for (var id in viewFactory.instructions) {\r\n if (targetRequiresLifecycle(viewFactory.instructions[id])) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n }\r\n viewFactory._viewsRequireLifecycle = false;\r\n return false;\r\n}\n\nvar AbstractRepeater = (function () {\r\n function AbstractRepeater(options) {\r\n Object.assign(this, {\r\n local: 'items',\r\n viewsRequireLifecycle: true\r\n }, options);\r\n }\r\n AbstractRepeater.prototype.viewCount = function () {\r\n throw new Error('subclass must implement `viewCount`');\r\n };\r\n AbstractRepeater.prototype.views = function () {\r\n throw new Error('subclass must implement `views`');\r\n };\r\n AbstractRepeater.prototype.view = function (index) {\r\n throw new Error('subclass must implement `view`');\r\n };\r\n AbstractRepeater.prototype.matcher = function () {\r\n throw new Error('subclass must implement `matcher`');\r\n };\r\n AbstractRepeater.prototype.addView = function (bindingContext, overrideContext) {\r\n throw new Error('subclass must implement `addView`');\r\n };\r\n AbstractRepeater.prototype.insertView = function (index, bindingContext, overrideContext) {\r\n throw new Error('subclass must implement `insertView`');\r\n };\r\n AbstractRepeater.prototype.moveView = function (sourceIndex, targetIndex) {\r\n throw new Error('subclass must implement `moveView`');\r\n };\r\n AbstractRepeater.prototype.removeAllViews = function (returnToCache, skipAnimation) {\r\n throw new Error('subclass must implement `removeAllViews`');\r\n };\r\n AbstractRepeater.prototype.removeViews = function (viewsToRemove, returnToCache, skipAnimation) {\r\n throw new Error('subclass must implement `removeView`');\r\n };\r\n AbstractRepeater.prototype.removeView = function (index, returnToCache, skipAnimation) {\r\n throw new Error('subclass must implement `removeView`');\r\n };\r\n AbstractRepeater.prototype.updateBindings = function (view) {\r\n throw new Error('subclass must implement `updateBindings`');\r\n };\r\n return AbstractRepeater;\r\n}());\n\nvar matcherExtractionMarker = '__marker_extracted__';\r\nvar Repeat = (function (_super) {\r\n __extends(Repeat, _super);\r\n function Repeat(viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator) {\r\n var _this = _super.call(this, {\r\n local: 'item',\r\n viewsRequireLifecycle: viewsRequireLifecycle(viewFactory)\r\n }) || this;\r\n _this.viewFactory = viewFactory;\r\n _this.instruction = instruction;\r\n _this.viewSlot = viewSlot;\r\n _this.lookupFunctions = viewResources.lookupFunctions;\r\n _this.observerLocator = observerLocator;\r\n _this.key = 'key';\r\n _this.value = 'value';\r\n _this.strategyLocator = strategyLocator;\r\n _this.ignoreMutation = false;\r\n _this.sourceExpression = getItemsSourceExpression(_this.instruction, 'repeat.for');\r\n _this.isOneTime = isOneTime(_this.sourceExpression);\r\n _this.viewsRequireLifecycle = viewsRequireLifecycle(viewFactory);\r\n return _this;\r\n }\r\n Repeat_1 = Repeat;\r\n Repeat.prototype.call = function (context, changes) {\r\n this[context](this.items, changes);\r\n };\r\n Repeat.prototype.bind = function (bindingContext, overrideContext) {\r\n this.scope = { bindingContext: bindingContext, overrideContext: overrideContext };\r\n var instruction = this.instruction;\r\n if (!(matcherExtractionMarker in instruction)) {\r\n instruction[matcherExtractionMarker] = this._captureAndRemoveMatcherBinding();\r\n }\r\n this.matcherBinding = instruction[matcherExtractionMarker];\r\n this.itemsChanged();\r\n };\r\n Repeat.prototype.unbind = function () {\r\n this.scope = null;\r\n this.items = null;\r\n this.matcherBinding = null;\r\n this.viewSlot.removeAll(true, true);\r\n this._unsubscribeCollection();\r\n };\r\n Repeat.prototype._unsubscribeCollection = function () {\r\n if (this.collectionObserver) {\r\n this.collectionObserver.unsubscribe(this.callContext, this);\r\n this.collectionObserver = null;\r\n this.callContext = null;\r\n }\r\n };\r\n Repeat.prototype.itemsChanged = function () {\r\n var _this = this;\r\n this._unsubscribeCollection();\r\n if (!this.scope) {\r\n return;\r\n }\r\n var items = this.items;\r\n this.strategy = this.strategyLocator.getStrategy(items);\r\n if (!this.strategy) {\r\n throw new Error(\"Value for '\".concat(this.sourceExpression, \"' is non-repeatable\"));\r\n }\r\n if (!this.isOneTime && !this._observeInnerCollection()) {\r\n this._observeCollection();\r\n }\r\n this.ignoreMutation = true;\r\n this.strategy.instanceChanged(this, items);\r\n this.observerLocator.taskQueue.queueMicroTask(function () {\r\n _this.ignoreMutation = false;\r\n });\r\n };\r\n Repeat.prototype._getInnerCollection = function () {\r\n var expression = unwrapExpression(this.sourceExpression);\r\n if (!expression) {\r\n return null;\r\n }\r\n return expression.evaluate(this.scope, null);\r\n };\r\n Repeat.prototype.handleCollectionMutated = function (collection, changes) {\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.strategy.instanceMutated(this, collection, changes);\r\n };\r\n Repeat.prototype.handleInnerCollectionMutated = function (collection, changes) {\r\n var _this = this;\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.ignoreMutation = true;\r\n var newItems = this.sourceExpression.evaluate(this.scope, this.lookupFunctions);\r\n this.observerLocator.taskQueue.queueMicroTask(function () { return _this.ignoreMutation = false; });\r\n if (newItems === this.items) {\r\n this.itemsChanged();\r\n }\r\n else {\r\n this.items = newItems;\r\n }\r\n };\r\n Repeat.prototype._observeInnerCollection = function () {\r\n var items = this._getInnerCollection();\r\n var strategy = this.strategyLocator.getStrategy(items);\r\n if (!strategy) {\r\n return false;\r\n }\r\n this.collectionObserver = strategy.getCollectionObserver(this.observerLocator, items);\r\n if (!this.collectionObserver) {\r\n return false;\r\n }\r\n this.callContext = 'handleInnerCollectionMutated';\r\n this.collectionObserver.subscribe(this.callContext, this);\r\n return true;\r\n };\r\n Repeat.prototype._observeCollection = function () {\r\n var items = this.items;\r\n this.collectionObserver = this.strategy.getCollectionObserver(this.observerLocator, items);\r\n if (this.collectionObserver) {\r\n this.callContext = 'handleCollectionMutated';\r\n this.collectionObserver.subscribe(this.callContext, this);\r\n }\r\n };\r\n Repeat.prototype._captureAndRemoveMatcherBinding = function () {\r\n var viewFactory = this.viewFactory.viewFactory;\r\n if (viewFactory) {\r\n var template = viewFactory.template;\r\n var instructions = viewFactory.instructions;\r\n if (Repeat_1.useInnerMatcher) {\r\n return extractMatcherBindingExpression(instructions);\r\n }\r\n if (getChildrenCount(template) > 1) {\r\n return undefined;\r\n }\r\n var repeatedElement = getFirstElementChild(template);\r\n if (!repeatedElement.hasAttribute('au-target-id')) {\r\n return undefined;\r\n }\r\n var repeatedElementTargetId = repeatedElement.getAttribute('au-target-id');\r\n return extractMatcherBindingExpression(instructions, repeatedElementTargetId);\r\n }\r\n return undefined;\r\n };\r\n Repeat.prototype.viewCount = function () { return this.viewSlot.children.length; };\r\n Repeat.prototype.views = function () { return this.viewSlot.children; };\r\n Repeat.prototype.view = function (index) { return this.viewSlot.children[index]; };\r\n Repeat.prototype.matcher = function () {\r\n var matcherBinding = this.matcherBinding;\r\n return matcherBinding\r\n ? matcherBinding.sourceExpression.evaluate(this.scope, matcherBinding.lookupFunctions)\r\n : null;\r\n };\r\n Repeat.prototype.addView = function (bindingContext, overrideContext) {\r\n var view = this.viewFactory.create();\r\n view.bind(bindingContext, overrideContext);\r\n this.viewSlot.add(view);\r\n };\r\n Repeat.prototype.insertView = function (index, bindingContext, overrideContext) {\r\n var view = this.viewFactory.create();\r\n view.bind(bindingContext, overrideContext);\r\n this.viewSlot.insert(index, view);\r\n };\r\n Repeat.prototype.moveView = function (sourceIndex, targetIndex) {\r\n this.viewSlot.move(sourceIndex, targetIndex);\r\n };\r\n Repeat.prototype.removeAllViews = function (returnToCache, skipAnimation) {\r\n return this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n };\r\n Repeat.prototype.removeViews = function (viewsToRemove, returnToCache, skipAnimation) {\r\n return this.viewSlot.removeMany(viewsToRemove, returnToCache, skipAnimation);\r\n };\r\n Repeat.prototype.removeView = function (index, returnToCache, skipAnimation) {\r\n return this.viewSlot.removeAt(index, returnToCache, skipAnimation);\r\n };\r\n Repeat.prototype.updateBindings = function (view) {\r\n var $view = view;\r\n var j = $view.bindings.length;\r\n while (j--) {\r\n updateOneTimeBinding($view.bindings[j]);\r\n }\r\n j = $view.controllers.length;\r\n while (j--) {\r\n var k = $view.controllers[j].boundProperties.length;\r\n while (k--) {\r\n var binding = $view.controllers[j].boundProperties[k].binding;\r\n updateOneTimeBinding(binding);\r\n }\r\n }\r\n };\r\n var Repeat_1;\r\n Repeat.useInnerMatcher = true;\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"items\", void 0);\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"local\", void 0);\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"key\", void 0);\r\n __decorate([\r\n bindable\r\n ], Repeat.prototype, \"value\", void 0);\r\n Repeat = Repeat_1 = __decorate([\r\n customAttribute('repeat'),\r\n templateController,\r\n inject(BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, ObserverLocator, RepeatStrategyLocator)\r\n ], Repeat);\r\n return Repeat;\r\n}(AbstractRepeater));\r\nvar extractMatcherBindingExpression = function (instructions, targetedElementId) {\r\n var instructionIds = Object.keys(instructions);\r\n for (var i = 0; i < instructionIds.length; i++) {\r\n var instructionId = instructionIds[i];\r\n if (targetedElementId !== undefined && instructionId !== targetedElementId) {\r\n continue;\r\n }\r\n var expressions = instructions[instructionId].expressions;\r\n if (expressions) {\r\n for (var ii = 0; ii < expressions.length; ii++) {\r\n if (expressions[ii].targetProperty === 'matcher') {\r\n var matcherBindingExpression = expressions[ii];\r\n expressions.splice(ii, 1);\r\n return matcherBindingExpression;\r\n }\r\n }\r\n }\r\n }\r\n};\r\nvar getChildrenCount = function (el) {\r\n var childNodes = el.childNodes;\r\n var count = 0;\r\n for (var i = 0, ii = childNodes.length; ii > i; ++i) {\r\n if (childNodes[i].nodeType === 1) {\r\n ++count;\r\n }\r\n }\r\n return count;\r\n};\r\nvar getFirstElementChild = function (el) {\r\n var firstChild = el.firstChild;\r\n while (firstChild !== null) {\r\n if (firstChild.nodeType === 1) {\r\n return firstChild;\r\n }\r\n firstChild = firstChild.nextSibling;\r\n }\r\n return null;\r\n};\n\nvar aureliaHideClassName = 'aurelia-hide';\r\nvar aureliaHideClass = \".\".concat(aureliaHideClassName, \" { display:none !important; }\");\r\nfunction injectAureliaHideStyleAtHead() {\r\n DOM.injectStyles(aureliaHideClass);\r\n}\r\nfunction injectAureliaHideStyleAtBoundary(domBoundary) {\r\n if (FEATURE.shadowDOM && domBoundary && !domBoundary.hasAureliaHideStyle) {\r\n domBoundary.hasAureliaHideStyle = true;\r\n DOM.injectStyles(aureliaHideClass, domBoundary);\r\n }\r\n}\n\nvar Show = (function () {\r\n function Show(element, animator, domBoundary) {\r\n this.element = element;\r\n this.animator = animator;\r\n this.domBoundary = domBoundary;\r\n }\r\n Show.inject = function () {\r\n return [DOM.Element, Animator, Optional.of(DOM.boundary, true)];\r\n };\r\n Show.prototype.created = function () {\r\n injectAureliaHideStyleAtBoundary(this.domBoundary);\r\n };\r\n Show.prototype.valueChanged = function (newValue) {\r\n var element = this.element;\r\n var animator = this.animator;\r\n if (newValue) {\r\n animator.removeClass(element, aureliaHideClassName);\r\n }\r\n else {\r\n animator.addClass(element, aureliaHideClassName);\r\n }\r\n };\r\n Show.prototype.bind = function (bindingContext) {\r\n this.valueChanged(this.value);\r\n };\r\n Show = __decorate([\r\n customAttribute('show')\r\n ], Show);\r\n return Show;\r\n}());\n\nvar Hide = (function () {\r\n function Hide(element, animator, domBoundary) {\r\n this.element = element;\r\n this.animator = animator;\r\n this.domBoundary = domBoundary;\r\n }\r\n Hide.inject = function () {\r\n return [DOM.Element, Animator, Optional.of(DOM.boundary, true)];\r\n };\r\n Hide.prototype.created = function () {\r\n injectAureliaHideStyleAtBoundary(this.domBoundary);\r\n };\r\n Hide.prototype.valueChanged = function (newValue) {\r\n if (newValue) {\r\n this.animator.addClass(this.element, aureliaHideClassName);\r\n }\r\n else {\r\n this.animator.removeClass(this.element, aureliaHideClassName);\r\n }\r\n };\r\n Hide.prototype.bind = function (bindingContext) {\r\n this.valueChanged(this.value);\r\n };\r\n Hide.prototype.value = function (value) {\r\n throw new Error('Method not implemented.');\r\n };\r\n Hide = __decorate([\r\n customAttribute('hide')\r\n ], Hide);\r\n return Hide;\r\n}());\n\nvar HTMLSanitizer = (function () {\r\n function HTMLSanitizer() {\r\n }\r\n HTMLSanitizer.prototype.sanitize = function (input) {\r\n throw new Error(\"To protect the application against a wide variety of sophisticated XSS attacks.\\nPlease see https://aurelia.io/docs/binding/basics#element-content for instructions on how to use a secure solution like DOMPurify or sanitize-html.\");\r\n };\r\n return HTMLSanitizer;\r\n}());\n\nvar SanitizeHTMLValueConverter = (function () {\r\n function SanitizeHTMLValueConverter(sanitizer) {\r\n this.sanitizer = sanitizer;\r\n }\r\n SanitizeHTMLValueConverter.prototype.toView = function (untrustedMarkup) {\r\n if (untrustedMarkup === null || untrustedMarkup === undefined) {\r\n return null;\r\n }\r\n return this.sanitizer.sanitize(untrustedMarkup);\r\n };\r\n SanitizeHTMLValueConverter = __decorate([\r\n valueConverter('sanitizeHTML'),\r\n inject(HTMLSanitizer)\r\n ], SanitizeHTMLValueConverter);\r\n return SanitizeHTMLValueConverter;\r\n}());\n\nvar Replaceable = (function () {\r\n function Replaceable(viewFactory, viewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.view = null;\r\n }\r\n Replaceable.prototype.bind = function (bindingContext, overrideContext) {\r\n if (this.view === null) {\r\n this.view = this.viewFactory.create();\r\n this.viewSlot.add(this.view);\r\n }\r\n this.view.bind(bindingContext, overrideContext);\r\n };\r\n Replaceable.prototype.unbind = function () {\r\n this.view.unbind();\r\n };\r\n Replaceable = __decorate([\r\n customAttribute('replaceable'),\r\n templateController,\r\n inject(BoundViewFactory, ViewSlot)\r\n ], Replaceable);\r\n return Replaceable;\r\n}());\n\nvar Focus = (function () {\r\n function Focus(element, taskQueue) {\r\n this.element = element;\r\n this.taskQueue = taskQueue;\r\n this.isAttached = false;\r\n this.needsApply = false;\r\n }\r\n Focus.inject = function () {\r\n return [DOM.Element, TaskQueue];\r\n };\r\n Focus.prototype.valueChanged = function () {\r\n if (this.isAttached) {\r\n this._apply();\r\n }\r\n else {\r\n this.needsApply = true;\r\n }\r\n };\r\n Focus.prototype._apply = function () {\r\n var _this = this;\r\n if (this.value) {\r\n this.taskQueue.queueMicroTask(function () {\r\n if (_this.value) {\r\n _this.element.focus();\r\n }\r\n });\r\n }\r\n else {\r\n this.element.blur();\r\n }\r\n };\r\n Focus.prototype.attached = function () {\r\n this.isAttached = true;\r\n if (this.needsApply) {\r\n this.needsApply = false;\r\n this._apply();\r\n }\r\n this.element.addEventListener('focus', this);\r\n this.element.addEventListener('blur', this);\r\n };\r\n Focus.prototype.detached = function () {\r\n this.isAttached = false;\r\n this.element.removeEventListener('focus', this);\r\n this.element.removeEventListener('blur', this);\r\n };\r\n Focus.prototype.handleEvent = function (e) {\r\n if (e.type === 'focus') {\r\n this.value = true;\r\n }\r\n else if (DOM.activeElement !== this.element) {\r\n this.value = false;\r\n }\r\n };\r\n Focus = __decorate([\r\n customAttribute('focus', bindingMode.twoWay)\r\n ], Focus);\r\n return Focus;\r\n}());\n\nvar cssUrlMatcher = /url\\((?!['\"]data)([^)]+)\\)/gi;\r\nfunction fixupCSSUrls(address, css) {\r\n if (typeof css !== 'string') {\r\n throw new Error(\"Failed loading required CSS file: \".concat(address));\r\n }\r\n return css.replace(cssUrlMatcher, function (match, p1) {\r\n var quote = p1.charAt(0);\r\n if (quote === '\\'' || quote === '\"') {\r\n p1 = p1.substr(1, p1.length - 2);\r\n }\r\n return 'url(\\'' + relativeToFile(p1, address) + '\\')';\r\n });\r\n}\r\nvar CSSResource = (function () {\r\n function CSSResource(address) {\r\n this.address = address;\r\n this._scoped = null;\r\n this._global = false;\r\n this._alreadyGloballyInjected = false;\r\n }\r\n CSSResource.prototype.initialize = function (container, Target) {\r\n this._scoped = new Target(this);\r\n };\r\n CSSResource.prototype.register = function (registry, name) {\r\n if (name === 'scoped') {\r\n registry.registerViewEngineHooks(this._scoped);\r\n }\r\n else {\r\n this._global = true;\r\n }\r\n };\r\n CSSResource.prototype.load = function (container) {\r\n var _this = this;\r\n return container.get(Loader)\r\n .loadText(this.address)\r\n .catch(function () { return null; })\r\n .then(function (text) {\r\n text = fixupCSSUrls(_this.address, text);\r\n _this._scoped.css = text;\r\n if (_this._global) {\r\n _this._alreadyGloballyInjected = true;\r\n DOM.injectStyles(text);\r\n }\r\n return _this;\r\n });\r\n };\r\n return CSSResource;\r\n}());\r\nvar CSSViewEngineHooks = (function () {\r\n function CSSViewEngineHooks(owner) {\r\n this.owner = owner;\r\n this.css = null;\r\n }\r\n CSSViewEngineHooks.prototype.beforeCompile = function (content, resources, instruction) {\r\n if (instruction.targetShadowDOM) {\r\n DOM.injectStyles(this.css, content, true);\r\n }\r\n else if (FEATURE.scopedCSS) {\r\n var styleNode = DOM.injectStyles(this.css, content, true);\r\n styleNode.setAttribute('scoped', 'scoped');\r\n }\r\n else if (this._global && !this.owner._alreadyGloballyInjected) {\r\n DOM.injectStyles(this.css);\r\n this.owner._alreadyGloballyInjected = true;\r\n }\r\n };\r\n return CSSViewEngineHooks;\r\n}());\r\nfunction _createCSSResource(address) {\r\n var ViewCSS = (function (_super) {\r\n __extends(ViewCSS, _super);\r\n function ViewCSS() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ViewCSS = __decorate([\r\n resource(new CSSResource(address))\r\n ], ViewCSS);\r\n return ViewCSS;\r\n }(CSSViewEngineHooks));\r\n return ViewCSS;\r\n}\n\nvar AttrBindingBehavior = (function () {\r\n function AttrBindingBehavior() {\r\n }\r\n AttrBindingBehavior.prototype.bind = function (binding, source) {\r\n binding.targetObserver = new DataAttributeObserver(binding.target, binding.targetProperty);\r\n };\r\n AttrBindingBehavior.prototype.unbind = function (binding, source) {\r\n };\r\n AttrBindingBehavior = __decorate([\r\n bindingBehavior('attr')\r\n ], AttrBindingBehavior);\r\n return AttrBindingBehavior;\r\n}());\n\nvar modeBindingBehavior = {\r\n bind: function (binding, source, lookupFunctions) {\r\n binding.originalMode = binding.mode;\r\n binding.mode = this.mode;\r\n },\r\n unbind: function (binding, source) {\r\n binding.mode = binding.originalMode;\r\n binding.originalMode = null;\r\n }\r\n};\r\nvar OneTimeBindingBehavior = (function () {\r\n function OneTimeBindingBehavior() {\r\n this.mode = bindingMode.oneTime;\r\n }\r\n OneTimeBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('oneTime')\r\n ], OneTimeBindingBehavior);\r\n return OneTimeBindingBehavior;\r\n}());\r\nvar OneWayBindingBehavior = (function () {\r\n function OneWayBindingBehavior() {\r\n this.mode = bindingMode.toView;\r\n }\r\n OneWayBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('oneWay')\r\n ], OneWayBindingBehavior);\r\n return OneWayBindingBehavior;\r\n}());\r\nvar ToViewBindingBehavior = (function () {\r\n function ToViewBindingBehavior() {\r\n this.mode = bindingMode.toView;\r\n }\r\n ToViewBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('toView')\r\n ], ToViewBindingBehavior);\r\n return ToViewBindingBehavior;\r\n}());\r\nvar FromViewBindingBehavior = (function () {\r\n function FromViewBindingBehavior() {\r\n this.mode = bindingMode.fromView;\r\n }\r\n FromViewBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('fromView')\r\n ], FromViewBindingBehavior);\r\n return FromViewBindingBehavior;\r\n}());\r\nvar TwoWayBindingBehavior = (function () {\r\n function TwoWayBindingBehavior() {\r\n this.mode = bindingMode.twoWay;\r\n }\r\n TwoWayBindingBehavior = __decorate([\r\n mixin(modeBindingBehavior),\r\n bindingBehavior('twoWay')\r\n ], TwoWayBindingBehavior);\r\n return TwoWayBindingBehavior;\r\n}());\n\nfunction throttle(newValue) {\r\n var _this = this;\r\n var state = this.throttleState;\r\n var elapsed = +new Date() - state.last;\r\n if (elapsed >= state.delay) {\r\n clearTimeout(state.timeoutId);\r\n state.timeoutId = null;\r\n state.last = +new Date();\r\n this.throttledMethod(newValue);\r\n return;\r\n }\r\n state.newValue = newValue;\r\n if (state.timeoutId === null) {\r\n state.timeoutId = setTimeout(function () {\r\n state.timeoutId = null;\r\n state.last = +new Date();\r\n _this.throttledMethod(state.newValue);\r\n }, state.delay - elapsed);\r\n }\r\n}\r\nvar ThrottleBindingBehavior = (function () {\r\n function ThrottleBindingBehavior() {\r\n }\r\n ThrottleBindingBehavior.prototype.bind = function (binding, source, delay) {\r\n if (delay === void 0) { delay = 200; }\r\n var methodToThrottle = 'updateTarget';\r\n if (binding.callSource) {\r\n methodToThrottle = 'callSource';\r\n }\r\n else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\r\n methodToThrottle = 'updateSource';\r\n }\r\n binding.throttledMethod = binding[methodToThrottle];\r\n binding.throttledMethod.originalName = methodToThrottle;\r\n binding[methodToThrottle] = throttle;\r\n binding.throttleState = {\r\n delay: delay,\r\n last: 0,\r\n timeoutId: null\r\n };\r\n };\r\n ThrottleBindingBehavior.prototype.unbind = function (binding, source) {\r\n var methodToRestore = binding.throttledMethod.originalName;\r\n binding[methodToRestore] = binding.throttledMethod;\r\n binding.throttledMethod = null;\r\n clearTimeout(binding.throttleState.timeoutId);\r\n binding.throttleState = null;\r\n };\r\n ThrottleBindingBehavior = __decorate([\r\n bindingBehavior('throttle')\r\n ], ThrottleBindingBehavior);\r\n return ThrottleBindingBehavior;\r\n}());\n\nvar unset = {};\r\nfunction debounceCallSource(event) {\r\n var _this = this;\r\n var state = this.debounceState;\r\n clearTimeout(state.timeoutId);\r\n state.timeoutId = setTimeout(function () { return _this.debouncedMethod(event); }, state.delay);\r\n}\r\nfunction debounceCall(context, newValue, oldValue) {\r\n var _this = this;\r\n var state = this.debounceState;\r\n clearTimeout(state.timeoutId);\r\n if (context !== state.callContextToDebounce) {\r\n state.oldValue = unset;\r\n this.debouncedMethod(context, newValue, oldValue);\r\n return;\r\n }\r\n if (state.oldValue === unset) {\r\n state.oldValue = oldValue;\r\n }\r\n state.timeoutId = setTimeout(function () {\r\n var _oldValue = state.oldValue;\r\n state.oldValue = unset;\r\n _this.debouncedMethod(context, newValue, _oldValue);\r\n }, state.delay);\r\n}\r\nvar DebounceBindingBehavior = (function () {\r\n function DebounceBindingBehavior() {\r\n }\r\n DebounceBindingBehavior.prototype.bind = function (binding, source, delay) {\r\n if (delay === void 0) { delay = 200; }\r\n var isCallSource = binding.callSource !== undefined;\r\n var methodToDebounce = isCallSource ? 'callSource' : 'call';\r\n var debouncer = isCallSource ? debounceCallSource : debounceCall;\r\n var mode = binding.mode;\r\n var callContextToDebounce = mode === bindingMode.twoWay || mode === bindingMode.fromView ? targetContext : sourceContext;\r\n binding.debouncedMethod = binding[methodToDebounce];\r\n binding.debouncedMethod.originalName = methodToDebounce;\r\n binding[methodToDebounce] = debouncer;\r\n binding.debounceState = {\r\n callContextToDebounce: callContextToDebounce,\r\n delay: delay,\r\n timeoutId: 0,\r\n oldValue: unset\r\n };\r\n };\r\n DebounceBindingBehavior.prototype.unbind = function (binding, source) {\r\n var methodToRestore = binding.debouncedMethod.originalName;\r\n binding[methodToRestore] = binding.debouncedMethod;\r\n binding.debouncedMethod = null;\r\n clearTimeout(binding.debounceState.timeoutId);\r\n binding.debounceState = null;\r\n };\r\n DebounceBindingBehavior = __decorate([\r\n bindingBehavior('debounce')\r\n ], DebounceBindingBehavior);\r\n return DebounceBindingBehavior;\r\n}());\n\nfunction findOriginalEventTarget(event) {\r\n return (event.path && event.path[0]) || (event.deepPath && event.deepPath[0]) || event.target;\r\n}\r\nfunction handleSelfEvent(event) {\r\n var target = findOriginalEventTarget(event);\r\n if (this.target !== target) {\r\n return;\r\n }\r\n this.selfEventCallSource(event);\r\n}\r\nvar SelfBindingBehavior = (function () {\r\n function SelfBindingBehavior() {\r\n }\r\n SelfBindingBehavior.prototype.bind = function (binding, source) {\r\n if (!binding.callSource || !binding.targetEvent) {\r\n throw new Error('Self binding behavior only supports event.');\r\n }\r\n binding.selfEventCallSource = binding.callSource;\r\n binding.callSource = handleSelfEvent;\r\n };\r\n SelfBindingBehavior.prototype.unbind = function (binding, source) {\r\n binding.callSource = binding.selfEventCallSource;\r\n binding.selfEventCallSource = null;\r\n };\r\n SelfBindingBehavior = __decorate([\r\n bindingBehavior('self')\r\n ], SelfBindingBehavior);\r\n return SelfBindingBehavior;\r\n}());\n\nvar BindingSignaler = (function () {\r\n function BindingSignaler() {\r\n this.signals = {};\r\n }\r\n BindingSignaler.prototype.signal = function (name) {\r\n var bindings = this.signals[name];\r\n if (!bindings) {\r\n return;\r\n }\r\n var i = bindings.length;\r\n while (i--) {\r\n bindings[i].call(sourceContext);\r\n }\r\n };\r\n return BindingSignaler;\r\n}());\n\nvar SignalBindingBehavior = (function () {\r\n function SignalBindingBehavior(bindingSignaler) {\r\n this.signals = bindingSignaler.signals;\r\n }\r\n SignalBindingBehavior.inject = function () { return [BindingSignaler]; };\r\n SignalBindingBehavior.prototype.bind = function (binding, source) {\r\n var names = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n names[_i - 2] = arguments[_i];\r\n }\r\n if (!binding.updateTarget) {\r\n throw new Error('Only property bindings and string interpolation bindings can be signaled. Trigger, delegate and call bindings cannot be signaled.');\r\n }\r\n var signals = this.signals;\r\n if (names.length === 1) {\r\n var name_1 = names[0];\r\n var bindings = signals[name_1] || (signals[name_1] = []);\r\n bindings.push(binding);\r\n binding.signalName = name_1;\r\n }\r\n else if (names.length > 1) {\r\n var i = names.length;\r\n while (i--) {\r\n var name_2 = names[i];\r\n var bindings = signals[name_2] || (signals[name_2] = []);\r\n bindings.push(binding);\r\n }\r\n binding.signalName = names;\r\n }\r\n else {\r\n throw new Error('Signal name is required.');\r\n }\r\n };\r\n SignalBindingBehavior.prototype.unbind = function (binding, source) {\r\n var signals = this.signals;\r\n var name = binding.signalName;\r\n binding.signalName = null;\r\n if (Array.isArray(name)) {\r\n var names = name;\r\n var i = names.length;\r\n while (i--) {\r\n var n = names[i];\r\n var bindings = signals[n];\r\n bindings.splice(bindings.indexOf(binding), 1);\r\n }\r\n }\r\n else {\r\n var bindings = signals[name];\r\n bindings.splice(bindings.indexOf(binding), 1);\r\n }\r\n };\r\n SignalBindingBehavior = __decorate([\r\n bindingBehavior('signal')\r\n ], SignalBindingBehavior);\r\n return SignalBindingBehavior;\r\n}());\n\nvar eventNamesRequired = 'The updateTrigger binding behavior requires at least one event name argument: eg ';\r\nvar notApplicableMessage = 'The updateTrigger binding behavior can only be applied to two-way/ from-view bindings on input/select elements.';\r\nvar UpdateTriggerBindingBehavior = (function () {\r\n function UpdateTriggerBindingBehavior() {\r\n }\r\n UpdateTriggerBindingBehavior.prototype.bind = function (binding, source) {\r\n var events = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n events[_i - 2] = arguments[_i];\r\n }\r\n if (events.length === 0) {\r\n throw new Error(eventNamesRequired);\r\n }\r\n if (binding.mode !== bindingMode.twoWay && binding.mode !== bindingMode.fromView) {\r\n throw new Error(notApplicableMessage);\r\n }\r\n var targetObserver = binding.observerLocator.getObserver(binding.target, binding.targetProperty);\r\n if (!targetObserver.handler) {\r\n throw new Error(notApplicableMessage);\r\n }\r\n binding.targetObserver = targetObserver;\r\n targetObserver.originalHandler = binding.targetObserver.handler;\r\n var handler = new EventSubscriber(events);\r\n targetObserver.handler = handler;\r\n };\r\n UpdateTriggerBindingBehavior.prototype.unbind = function (binding, source) {\r\n var targetObserver = binding.targetObserver;\r\n targetObserver.handler.dispose();\r\n targetObserver.handler = targetObserver.originalHandler;\r\n targetObserver.originalHandler = null;\r\n };\r\n UpdateTriggerBindingBehavior = __decorate([\r\n bindingBehavior('updateTrigger')\r\n ], UpdateTriggerBindingBehavior);\r\n return UpdateTriggerBindingBehavior;\r\n}());\n\nfunction _createDynamicElement(_a) {\r\n var name = _a.name, viewUrl = _a.viewUrl, bindableNames = _a.bindableNames, useShadowDOMmode = _a.useShadowDOMmode;\r\n var DynamicElement = (function () {\r\n function DynamicElement() {\r\n }\r\n DynamicElement.prototype.bind = function (bindingContext) {\r\n this.$parent = bindingContext;\r\n };\r\n DynamicElement = __decorate([\r\n customElement(name),\r\n useView(viewUrl)\r\n ], DynamicElement);\r\n return DynamicElement;\r\n }());\r\n for (var i = 0, ii = bindableNames.length; i < ii; ++i) {\r\n bindable(bindableNames[i])(DynamicElement);\r\n }\r\n switch (useShadowDOMmode) {\r\n case 'open':\r\n useShadowDOM({ mode: 'open' })(DynamicElement);\r\n break;\r\n case 'closed':\r\n useShadowDOM({ mode: 'closed' })(DynamicElement);\r\n break;\r\n case '':\r\n useShadowDOM(DynamicElement);\r\n break;\r\n case null:\r\n break;\r\n default:\r\n getLogger('aurelia-html-only-element')\r\n .warn(\"Expected 'use-shadow-dom' value to be \\\"close\\\", \\\"open\\\" or \\\"\\\", received \".concat(useShadowDOMmode));\r\n break;\r\n }\r\n return DynamicElement;\r\n}\n\nfunction getElementName(address) {\r\n return /([^\\/^\\?]+)\\.html/i.exec(address)[1].toLowerCase();\r\n}\r\nfunction configure$1(config) {\r\n var viewEngine = config.container.get(ViewEngine);\r\n var loader = config.aurelia.loader;\r\n viewEngine.addResourcePlugin('.html', {\r\n 'fetch': function (viewUrl) {\r\n return loader.loadTemplate(viewUrl).then(function (registryEntry) {\r\n var _a;\r\n var bindableNames = registryEntry.template.getAttribute('bindable');\r\n var useShadowDOMmode = registryEntry.template.getAttribute('use-shadow-dom');\r\n var name = getElementName(viewUrl);\r\n if (bindableNames) {\r\n bindableNames = bindableNames.split(',').map(function (x) { return x.trim(); });\r\n registryEntry.template.removeAttribute('bindable');\r\n }\r\n else {\r\n bindableNames = [];\r\n }\r\n return _a = {}, _a[name] = _createDynamicElement({ name: name, viewUrl: viewUrl, bindableNames: bindableNames, useShadowDOMmode: useShadowDOMmode }), _a;\r\n });\r\n }\r\n });\r\n}\n\nfunction configure(config) {\r\n injectAureliaHideStyleAtHead();\r\n config.globalResources(Compose, If, Else, With, Repeat, Show, Hide, Replaceable, Focus, SanitizeHTMLValueConverter, OneTimeBindingBehavior, OneWayBindingBehavior, ToViewBindingBehavior, FromViewBindingBehavior, TwoWayBindingBehavior, ThrottleBindingBehavior, DebounceBindingBehavior, SelfBindingBehavior, SignalBindingBehavior, UpdateTriggerBindingBehavior, AttrBindingBehavior);\r\n configure$1(config);\r\n var viewEngine = config.container.get(ViewEngine);\r\n var styleResourcePlugin = {\r\n fetch: function (address) {\r\n var _a;\r\n return _a = {}, _a[address] = _createCSSResource(address), _a;\r\n }\r\n };\r\n ['.css', '.less', '.sass', '.scss', '.styl'].forEach(function (ext) { return viewEngine.addResourcePlugin(ext, styleResourcePlugin); });\r\n}\n\nexport { AbstractRepeater, ArrayRepeatStrategy, AttrBindingBehavior, BindingSignaler, Compose, DebounceBindingBehavior, Else, Focus, FromViewBindingBehavior, HTMLSanitizer, Hide, If, MapRepeatStrategy, NullRepeatStrategy, NumberRepeatStrategy, OneTimeBindingBehavior, OneWayBindingBehavior, Repeat, RepeatStrategyLocator, Replaceable, SanitizeHTMLValueConverter, SelfBindingBehavior, SetRepeatStrategy, Show, SignalBindingBehavior, ThrottleBindingBehavior, ToViewBindingBehavior, TwoWayBindingBehavior, UpdateTriggerBindingBehavior, With, configure, createFullOverrideContext, getItemsSourceExpression, isOneTime, unwrapExpression, updateOneTimeBinding, updateOverrideContext, viewsRequireLifecycle };\n//# sourceMappingURL=aurelia-templating-resources.js.map\n","import { Router, RouteLoader, AppRouter } from 'aurelia-router';\nimport { Origin } from 'aurelia-metadata';\nimport { relativeToFile } from 'aurelia-path';\nimport { BehaviorInstruction, ShadowDOM, ViewSlot, ViewLocator, CompositionTransaction, CompositionEngine, SwapStrategies, inlineView, customElement, useView } from 'aurelia-templating';\nimport { Container } from 'aurelia-dependency-injection';\nimport { createOverrideContext } from 'aurelia-binding';\nimport { DOM } from 'aurelia-pal';\nimport * as LogManager from 'aurelia-logging';\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/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar EmptyLayoutViewModel = (function () {\r\n function EmptyLayoutViewModel() {\r\n }\r\n return EmptyLayoutViewModel;\r\n}());\r\nvar RouterView = (function () {\r\n function RouterView(element, container, viewSlot, router, viewLocator, compositionTransaction, compositionEngine) {\r\n this.element = element;\r\n this.container = container;\r\n this.viewSlot = viewSlot;\r\n this.router = router;\r\n this.viewLocator = viewLocator;\r\n this.compositionTransaction = compositionTransaction;\r\n this.compositionEngine = compositionEngine;\r\n this.router.registerViewPort(this, this.element.getAttribute('name'));\r\n if (!('initialComposition' in compositionTransaction)) {\r\n compositionTransaction.initialComposition = true;\r\n this.compositionTransactionNotifier = compositionTransaction.enlist();\r\n }\r\n }\r\n RouterView.inject = function () {\r\n return [DOM.Element, Container, ViewSlot, Router, ViewLocator, CompositionTransaction, CompositionEngine];\r\n };\r\n RouterView.prototype.created = function (owningView) {\r\n this.owningView = owningView;\r\n };\r\n RouterView.prototype.bind = function (bindingContext, overrideContext) {\r\n this.container.viewModel = bindingContext;\r\n this.overrideContext = overrideContext;\r\n };\r\n RouterView.prototype.process = function ($viewPortInstruction, waitToSwap) {\r\n var _this = this;\r\n var viewPortInstruction = $viewPortInstruction;\r\n var component = viewPortInstruction.component;\r\n var childContainer = component.childContainer;\r\n var viewModel = component.viewModel;\r\n var viewModelResource = component.viewModelResource;\r\n var metadata = viewModelResource.metadata;\r\n var config = component.router.currentInstruction.config;\r\n var viewPortConfig = config.viewPorts ? (config.viewPorts[viewPortInstruction.name] || {}) : {};\r\n childContainer.get(RouterViewLocator)._notify(this);\r\n var layoutInstruction = {\r\n viewModel: viewPortConfig.layoutViewModel || config.layoutViewModel || this.layoutViewModel,\r\n view: viewPortConfig.layoutView || config.layoutView || this.layoutView,\r\n model: viewPortConfig.layoutModel || config.layoutModel || this.layoutModel,\r\n router: viewPortInstruction.component.router,\r\n childContainer: childContainer,\r\n viewSlot: this.viewSlot\r\n };\r\n var viewStrategy = this.viewLocator.getViewStrategy(component.view || viewModel);\r\n if (viewStrategy && component.view) {\r\n viewStrategy.makeRelativeTo(Origin.get(component.router.container.viewModel.constructor).moduleId);\r\n }\r\n return metadata\r\n .load(childContainer, viewModelResource.value, null, viewStrategy, true)\r\n .then(function (viewFactory) {\r\n if (!_this.compositionTransactionNotifier) {\r\n _this.compositionTransactionOwnershipToken = _this.compositionTransaction.tryCapture();\r\n }\r\n if (layoutInstruction.viewModel || layoutInstruction.view) {\r\n viewPortInstruction.layoutInstruction = layoutInstruction;\r\n }\r\n var viewPortComponentBehaviorInstruction = BehaviorInstruction.dynamic(_this.element, viewModel, viewFactory);\r\n viewPortInstruction.controller = metadata.create(childContainer, viewPortComponentBehaviorInstruction);\r\n if (waitToSwap) {\r\n return null;\r\n }\r\n _this.swap(viewPortInstruction);\r\n });\r\n };\r\n RouterView.prototype.swap = function ($viewPortInstruction) {\r\n var _this = this;\r\n var viewPortInstruction = $viewPortInstruction;\r\n var viewPortController = viewPortInstruction.controller;\r\n var layoutInstruction = viewPortInstruction.layoutInstruction;\r\n var previousView = this.view;\r\n var work = function () {\r\n var swapStrategy = SwapStrategies[_this.swapOrder] || SwapStrategies.after;\r\n var viewSlot = _this.viewSlot;\r\n swapStrategy(viewSlot, previousView, function () { return Promise.resolve(viewSlot.add(_this.view)); }).then(function () {\r\n _this._notify();\r\n });\r\n };\r\n var ready = function (owningView_or_layoutView) {\r\n viewPortController.automate(_this.overrideContext, owningView_or_layoutView);\r\n var transactionOwnerShipToken = _this.compositionTransactionOwnershipToken;\r\n if (transactionOwnerShipToken) {\r\n return transactionOwnerShipToken\r\n .waitForCompositionComplete()\r\n .then(function () {\r\n _this.compositionTransactionOwnershipToken = null;\r\n return work();\r\n });\r\n }\r\n return work();\r\n };\r\n if (layoutInstruction) {\r\n if (!layoutInstruction.viewModel) {\r\n layoutInstruction.viewModel = new EmptyLayoutViewModel();\r\n }\r\n return this.compositionEngine\r\n .createController(layoutInstruction)\r\n .then(function (layoutController) {\r\n var layoutView = layoutController.view;\r\n ShadowDOM.distributeView(viewPortController.view, layoutController.slots || layoutView.slots);\r\n layoutController.automate(createOverrideContext(layoutInstruction.viewModel), _this.owningView);\r\n layoutView.children.push(viewPortController.view);\r\n return layoutView || layoutController;\r\n })\r\n .then(function (newView) {\r\n _this.view = newView;\r\n return ready(newView);\r\n });\r\n }\r\n this.view = viewPortController.view;\r\n return ready(this.owningView);\r\n };\r\n RouterView.prototype._notify = function () {\r\n var notifier = this.compositionTransactionNotifier;\r\n if (notifier) {\r\n notifier.done();\r\n this.compositionTransactionNotifier = null;\r\n }\r\n };\r\n RouterView.$view = null;\r\n RouterView.$resource = {\r\n name: 'router-view',\r\n bindables: ['swapOrder', 'layoutView', 'layoutViewModel', 'layoutModel', 'inherit-binding-context']\r\n };\r\n return RouterView;\r\n}());\r\nvar RouterViewLocator = (function () {\r\n function RouterViewLocator() {\r\n var _this = this;\r\n this.promise = new Promise(function (resolve) { return _this.resolve = resolve; });\r\n }\r\n RouterViewLocator.prototype.findNearest = function () {\r\n return this.promise;\r\n };\r\n RouterViewLocator.prototype._notify = function (routerView) {\r\n this.resolve(routerView);\r\n };\r\n return RouterViewLocator;\r\n}());\n\nvar EmptyClass = (function () {\r\n function EmptyClass() {\r\n }\r\n return EmptyClass;\r\n}());\r\ninlineView('')(EmptyClass);\r\nvar TemplatingRouteLoader = (function (_super) {\r\n __extends(TemplatingRouteLoader, _super);\r\n function TemplatingRouteLoader(compositionEngine) {\r\n var _this = _super.call(this) || this;\r\n _this.compositionEngine = compositionEngine;\r\n return _this;\r\n }\r\n TemplatingRouteLoader.prototype.resolveViewModel = function (router, config) {\r\n return new Promise(function (resolve, reject) {\r\n var viewModel;\r\n if ('moduleId' in config) {\r\n var moduleId = config.moduleId;\r\n if (moduleId === null) {\r\n viewModel = EmptyClass;\r\n }\r\n else {\r\n moduleId = relativeToFile(moduleId, Origin.get(router.container.viewModel.constructor).moduleId);\r\n if (/\\.html/i.test(moduleId)) {\r\n viewModel = createDynamicClass(moduleId);\r\n }\r\n else {\r\n viewModel = moduleId;\r\n }\r\n }\r\n return resolve(viewModel);\r\n }\r\n reject(new Error('Invalid route config. No \"moduleId\" found.'));\r\n });\r\n };\r\n TemplatingRouteLoader.prototype.createChildContainer = function (router) {\r\n var childContainer = router.container.createChild();\r\n childContainer.registerSingleton(RouterViewLocator);\r\n childContainer.getChildRouter = function () {\r\n var childRouter;\r\n childContainer.registerHandler(Router, function () { return childRouter || (childRouter = router.createChild(childContainer)); });\r\n return childContainer.get(Router);\r\n };\r\n return childContainer;\r\n };\r\n TemplatingRouteLoader.prototype.loadRoute = function (router, config, navInstruction) {\r\n var _this = this;\r\n return this\r\n .resolveViewModel(router, config)\r\n .then(function (viewModel) { return _this.compositionEngine.ensureViewModel({\r\n viewModel: viewModel,\r\n childContainer: _this.createChildContainer(router),\r\n view: config.view || config.viewStrategy,\r\n router: router\r\n }); });\r\n };\r\n TemplatingRouteLoader.inject = [CompositionEngine];\r\n return TemplatingRouteLoader;\r\n}(RouteLoader));\r\nfunction createDynamicClass(moduleId) {\r\n var name = /([^\\/^\\?]+)\\.html/i.exec(moduleId)[1];\r\n var DynamicClass = (function () {\r\n function DynamicClass() {\r\n }\r\n DynamicClass.prototype.bind = function (bindingContext) {\r\n this.$parent = bindingContext;\r\n };\r\n return DynamicClass;\r\n }());\r\n customElement(name)(DynamicClass);\r\n useView(moduleId)(DynamicClass);\r\n return DynamicClass;\r\n}\n\nvar logger = LogManager.getLogger('route-href');\r\nvar RouteHref = (function () {\r\n function RouteHref(router, element) {\r\n this.router = router;\r\n this.element = element;\r\n this.attribute = 'href';\r\n }\r\n RouteHref.inject = function () {\r\n return [Router, DOM.Element];\r\n };\r\n RouteHref.prototype.bind = function () {\r\n this.isActive = true;\r\n this.processChange();\r\n };\r\n RouteHref.prototype.unbind = function () {\r\n this.isActive = false;\r\n };\r\n RouteHref.prototype.attributeChanged = function (value, previous) {\r\n if (previous) {\r\n this.element.removeAttribute(previous);\r\n }\r\n return this.processChange();\r\n };\r\n RouteHref.prototype.processChange = function () {\r\n var _this = this;\r\n return this.router\r\n .ensureConfigured()\r\n .then(function () {\r\n if (!_this.isActive) {\r\n return null;\r\n }\r\n var element = _this.element;\r\n var href = _this.router.generate(_this.route, _this.params);\r\n if (element.au.controller) {\r\n element.au.controller.viewModel[_this.attribute] = href;\r\n }\r\n else {\r\n element.setAttribute(_this.attribute, href);\r\n }\r\n return null;\r\n })\r\n .catch(function (reason) {\r\n logger.error(reason);\r\n });\r\n };\r\n RouteHref.$resource = {\r\n type: 'attribute',\r\n name: 'route-href',\r\n bindables: [\r\n { name: 'route', changeHandler: 'processChange', primaryProperty: true },\r\n { name: 'params', changeHandler: 'processChange' },\r\n 'attribute'\r\n ]\r\n };\r\n return RouteHref;\r\n}());\n\nfunction configure(config) {\r\n config\r\n .singleton(RouteLoader, TemplatingRouteLoader)\r\n .singleton(Router, AppRouter)\r\n .globalResources(RouterView, RouteHref);\r\n config.container.registerAlias(Router, AppRouter);\r\n}\n\nexport { RouteHref, RouterView, RouterViewLocator, TemplatingRouteLoader, configure };\n//# sourceMappingURL=aurelia-templating-router.js.map\n"],"names":["_typeof","Symbol","iterator","obj","constructor","prototype","makeRequestFlushFromTimer","flush","timeoutHandle","setTimeout","handleFlushTimer","intervalHandle","setInterval","clearTimeout","clearInterval","TaskQueue","observer","val","node","values","_this","this","flushing","longStacks","microTaskQueue","microTaskQueueCapacity","taskQueue","requestFlushMicroTaskQueue","flushMicroTaskQueue","Object","create","a","b","observe","characterData","data","requestFlushTaskQueue","flushTaskQueue","_flushQueue","queue","capacity","index","task","length","stack","undefined","call","scan","newLength","error","filterFlushStack","onError","queueMicroTask","prepareQueueStack","push","queueTask","Number","MAX_VALUE","separator","replace","filterQueueStack","Error","e","captureStack","lastIndexOf","substr","extendStatics","d","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","AttributeMap","svg","elements","allElements","registerUniversal","register","elementName","attributeName","propertyName","toLowerCase","map","isStandardSvgAttribute","element","test","inject","InterpolationBindingExpression","observerLocator","targetProperty","parts","mode","lookupFunctions","attribute","attrToRemove","discrete","createBinding","ChildInterpolationBinding","InterpolationBinding","validateTarget","info","parentElement","nodeName","targetAccessor","getAccessor","interpolate","isBound","value","ii","concat","setValue","updateOneTimeBindings","child","bind","source","unbind","binding","sourceExpression","left","right","parent","updateTarget","toString","rawValue","evaluate","_version","connect","observeArray","unobserve","LetExpression","toBindingContext","LetBinding","context","bindingContext","overrideContext","arg0","LetInterpolationBindingExpression","LetInterpolationBinding","interpolationBinding","createInterpolationBinding","SyntaxInterpreter","parser","eventManager","attributeMap","interpret","resources","existingInstruction","command","handleUnknownCommand","warn","determineDefaultBindingMode","attrName","tagName","type","contentEditable","attributes","defaultBindingMode","instruction","parse","attrValue","trigger","capture","delegate","options","current","language","name","inString","inEscape","foundName","trim","_getPrimaryPropertyName","inspectAttribute","createAttributeInstruction","getAttribute","primaryProperty","keyValue","isDestructuring","match","split","local","items","TemplatingBindingLanguage","_super","syntaxInterpreter","emptyStringExpression","toBindingContextAttr","__","__extends","expression","interpolationParts","parseInterpolation","theInfo","createLetExpressions","letElement","attr","expressions","hasAttribute","nodeValue","inspectTextContent","char","interpolationStart","indexOf","pos","open","quote","partIndex","substring","configure","config","container","registerSingleton","registerAlias","ActivationStrategy","TypeError","String","Compose","compositionEngine","viewSlot","viewResources","activationStrategy","InvokeLifecycle","currentController","currentViewModel","changes","Container","created","owningView","view","viewModel","model","pendingTask","processChanges","removeAll","modelChanged","newValue","oldValue","requestUpdate","viewChanged","viewModelChanged","composer","vm","determineActivationStrategy","Replace","needsReInitialization","assign","host","swapOrder","createInstruction","compose","then","controller","activate","Promise","resolve","tryActivateViewModel","completeCompositionTask","reason","_","isEmpty","updateRequested","IfCore","viewFactory","showing","cache","isCaching","remove","returnToCache","_show","add","_hide","removed","_unbindView","If","apply","condition","conditionChanged","_update","show","promise","animating","elseVm","_swap","all","Else","_registerInIf","ifVm","previous","anchor","previousSibling","au","if","With","parentOverrideContext","valueChanged","oneTime","updateOverrideContexts","views","startIndex","updateOverrideContext","createFullOverrideContext","repeat","scope","first","last","even","$index","$first","$last","$middle","$odd","$even","updateOneTimeBinding","array","item","matcher","ArrayRepeatStrategy","getCollectionObserver","getArrayObserver","instanceChanged","$repeat","itemsLength","children","viewsLength","viewsRequireLifecycle","childrenSnapshot","slice","itemNameInBindingContext","matcher_1","itemsPreviouslyInViews_1","viewsToRemove","oldItem","updateViews","removePromise","removeViews","indexOfView","insertView","splice","moveView","_inPlaceProcessItems","removeAllViews","_standardProcessInstanceChanged","addView","viewCount","removeView","middle","updateBindings","instanceMutated","splices","__queuedSplices","_a","addedCount","__array","maybePromise","_runSplices","queuedSplices_1","runQueuedSplices_1","nextPromise","removeDelta","rmPromises","j","jj","viewOrPromise","spliceIndexLow","_handleAddedSplices","spliceIndex","arrayLength","addIndex","end","MapRepeatStrategy","getMapObserver","_standardProcessItems","forEach","size","records","removeIndex","record","_getViewIndexByKey","get","NullRepeatStrategy","NumberRepeatStrategy","childrenLength","Math","floor","SetRepeatStrategy","getSetObserver","set","max","_getViewIndexByValue","RepeatStrategyLocator","matchers","strategies","addStrategy","Map","Set","strategy","getStrategy","lifecycleOptionalBehaviors","behaviorRequiresLifecycle","t","handlesAttached","handlesBind","handlesCreated","handlesDetached","handlesUnbind","targetRequiresLifecycle","behaviors","behaviorInstructions","_viewsRequireLifecycle","template","querySelector","id","instructions","AbstractRepeater","sourceIndex","targetIndex","skipAnimation","matcherExtractionMarker","Repeat","strategyLocator","ignoreMutation","filter","bi","originalAttrName","getItemsSourceExpression","isOneTime","Repeat_1","_captureAndRemoveMatcherBinding","matcherBinding","itemsChanged","_unsubscribeCollection","collectionObserver","unsubscribe","callContext","_observeInnerCollection","_observeCollection","_getInnerCollection","unwrapped","unwrapExpression","handleCollectionMutated","collection","handleInnerCollectionMutated","newItems","subscribe","useInnerMatcher","extractMatcherBindingExpression","getChildrenCount","repeatedElement","getFirstElementChild","repeatedElementTargetId","insert","move","removeMany","removeAt","$view","bindings","controllers","k","boundProperties","targetedElementId","instructionIds","keys","instructionId","matcherBindingExpression","el","childNodes","count","nodeType","firstChild","nextSibling","aureliaHideClassName","aureliaHideClass","injectAureliaHideStyleAtBoundary","domBoundary","hasAureliaHideStyle","Show","animator","Optional","removeClass","addClass","Hide","HTMLSanitizer","sanitize","input","SanitizeHTMLValueConverter","sanitizer","toView","untrustedMarkup","Replaceable","Focus","isAttached","needsApply","_apply","focus","blur","attached","addEventListener","detached","removeEventListener","handleEvent","cssUrlMatcher","CSSResource","address","_scoped","_global","_alreadyGloballyInjected","initialize","Target","registry","registerViewEngineHooks","load","loadText","catch","text","css","p1","charAt","fixupCSSUrls","CSSViewEngineHooks","owner","beforeCompile","content","targetShadowDOM","setAttribute","AttrBindingBehavior","targetObserver","modeBindingBehavior","originalMode","OneTimeBindingBehavior","OneWayBindingBehavior","ToViewBindingBehavior","FromViewBindingBehavior","TwoWayBindingBehavior","throttle","state","throttleState","elapsed","Date","delay","timeoutId","throttledMethod","ThrottleBindingBehavior","methodToThrottle","callSource","updateSource","originalName","unset","debounceCallSource","event","debounceState","debouncedMethod","debounceCall","callContextToDebounce","_oldValue","DebounceBindingBehavior","isCallSource","methodToDebounce","debouncer","handleSelfEvent","path","deepPath","findOriginalEventTarget","selfEventCallSource","SelfBindingBehavior","targetEvent","BindingSignaler","signals","signal","SignalBindingBehavior","bindingSignaler","names","_i","name_1","signalName","name_2","isArray","eventNamesRequired","notApplicableMessage","UpdateTriggerBindingBehavior","events","getObserver","handler","originalHandler","dispose","globalResources","viewEngine","loader","aurelia","addResourcePlugin","viewUrl","loadTemplate","registryEntry","bindableNames","useShadowDOMmode","exec","x","removeAttribute","DynamicElement","$parent","getLogger","_createDynamicElement","configure$1","styleResourcePlugin","fetch","ViewCSS","_createCSSResource","ext","EmptyLayoutViewModel","RouterView","router","viewLocator","compositionTransaction","registerViewPort","initialComposition","compositionTransactionNotifier","enlist","process","$viewPortInstruction","waitToSwap","viewPortInstruction","component","childContainer","viewModelResource","metadata","currentInstruction","viewPortConfig","viewPorts","RouterViewLocator","_notify","layoutInstruction","layoutViewModel","layoutView","layoutModel","viewStrategy","getViewStrategy","makeRelativeTo","moduleId","compositionTransactionOwnershipToken","tryCapture","viewPortComponentBehaviorInstruction","swap","viewPortController","previousView","work","swapStrategy","ready","owningView_or_layoutView","automate","transactionOwnerShipToken","waitForCompositionComplete","createController","layoutController","slots","newView","notifier","done","$resource","bindables","findNearest","routerView","EmptyClass","TemplatingRouteLoader","resolveViewModel","reject","DynamicClass","createDynamicClass","createChildContainer","createChild","getChildRouter","childRouter","registerHandler","loadRoute","navInstruction","ensureViewModel","logger","RouteHref","isActive","processChange","attributeChanged","ensureConfigured","href","generate","route","params","changeHandler","singleton"],"sourceRoot":""}