{"version":3,"sources":["../src/aurelia-bootstrapper.ts","../node_modules/tslib/tslib.es6.js","../../src/injection.ts","../../src/resolvers.ts","../../src/container.ts","../../src/invokers.ts","../../src/registrations.ts","../src/framework-configuration.ts","../src/aurelia.ts","../src/link-handler.ts","../src/browser-history.ts","../src/aurelia-history-browser.ts","../src/index.ts","../src/navigation-instruction.ts","../src/nav-model.ts","../src/util.ts","../src/router-configuration.ts","../src/router.ts","../src/next.ts","../src/pipeline.ts","../src/navigation-commands.ts","../src/navigation-plan.ts","../src/step-build-navigation-plan.ts","../src/utilities-route-loading.ts","../src/route-loader.ts","../src/step-load-route.ts","../src/step-commit-changes.ts","../src/activation-strategy.ts","../src/utilities-activation.ts","../src/step-activation.ts","../src/pipeline-provider.ts","../src/app-router.ts","../src/pipeline-status.ts","../src/router-event.ts","../src/pipeline-slot-name.ts","../src/element-events.ts","../src/instructions.ts","../src/behavior-property-observer.ts","../src/bindable-property.ts","../src/view-locator.ts","../src/binding-language.ts","../src/shadow-dom.ts","../src/composition-transaction.ts","../src/view.ts","../src/animator.ts","../src/view-slot.ts","../src/view-factory.ts","../src/view-compiler.ts","../src/view-engine-hooks-resource.ts","../src/module-analyzer.ts","../src/view-engine.ts","../src/controller.ts","../src/html-behavior.ts","../src/view-resources.ts","../src/view-strategy.ts","../src/swap-strategies.ts","../src/composition-engine.ts","../src/animation-event.ts","../src/child-observation.ts","../src/element-config.ts","../src/decorators.ts","../src/templating-engine.ts","../src/attribute-map.ts","../src/interpolation-binding-expression.ts","../src/let-expression.ts","../src/let-interpolation-expression.ts","../src/syntax-interpreter.ts","../src/aurelia-templating-binding.ts","../src/compose.ts","../src/if-core.ts","../src/if.ts","../src/else.ts","../src/with.ts","../src/repeat-utilities.ts","../src/array-repeat-strategy.ts","../src/map-repeat-strategy.ts","../src/null-repeat-strategy.ts","../src/number-repeat-strategy.ts","../src/set-repeat-strategy.ts","../src/repeat-strategy-locator.ts","../src/analyze-view-factory.ts","../src/abstract-repeater.ts","../src/repeat.ts","../src/aurelia-hide-style.ts","../src/show.ts","../src/hide.ts","../src/html-sanitizer.ts","../src/sanitize-html.ts","../src/replaceable.ts","../src/focus.ts","../src/css-resource.ts","../src/attr-binding-behavior.ts","../src/binding-mode-behaviors.ts","../src/throttle-binding-behavior.ts","../src/debounce-binding-behavior.ts","../src/self-binding-behavior.ts","../src/binding-signaler.ts","../src/signal-binding-behavior.ts","../src/update-trigger-binding-behavior.ts","../src/dynamic-element.ts","../src/html-resource-plugin.ts","../src/aurelia-templating-resources.ts","../src/router-view.ts","../src/route-href.ts","../src/aurelia-templating-router.ts"],"names":["PLATFORM","isInitialized","metadata","protocol","Strategy","AggregateError","TheLogManager","ViewEngine","join","HtmlBehaviorResource","DOM","Container","ViewResources","Loader","BindingLanguage","TemplatingEngine","CompositionTransaction","relativeToFile","ViewSlot","tslib_1.__extends","History","RouteRecognizer","LogManager.getLogger","EventAggregator","PipelineStatus","RouterEvent","PipelineSlotName","subscriberCollection","bindingMode","Origin","createOverrideContext","resolver","FEATURE","TemplateRegistryEntry","ValueConverterResource","BindingBehaviorResource","LogManager","ObserverLocator","TaskQueue","camelCase","inject","EventManager","SVGAnalyzer","enqueueBindingConnect","connectable","sourceContext","BehaviorInstruction","BindingExpression","ListenerExpression","delegationStrategy","CallExpression","Parser","NameExpression","LiteralString","ActivationStrategy","CompositionEngine","bindable","noView","customElement","customAttribute","templateController","BoundViewFactory","BindingBehavior","ValueConverter","mergeSplice","TargetInstruction","Animator","Optional","valueConverter","resource","DataAttributeObserver","bindingBehavior","mixin","targetContext","EventSubscriber","useView","useShadowDOM","getLogger","configure","configureHtmlResourcePlugin","Router","ViewLocator","SwapStrategies","ShadowDOM","inlineView","RouteLoader","AppRouter"],"mappings":"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","file":"vendor-bundle.js","sourcesContent":[null,"/*! *****************************************************************************\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\nexport function __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\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __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}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { metadata } from 'aurelia-metadata';\r\nimport { _emptyParameters } from './container';\r\nimport { Args, Impl, DependencyCtor } from './types';\r\n\r\n// tslint:disable-next-line:ban-types\r\nexport type Injectable = Function & { inject?: any[] | (() => any[]) };\r\n\r\nfunction isInjectable(potentialTarget: any): potentialTarget is Injectable {\r\n return !!potentialTarget;\r\n}\r\n\r\n/**\r\n * Decorator: Directs the TypeScript transpiler to write-out type metadata for\r\n * the decorated class.\r\n */\r\nexport function autoinject(\r\n potentialTarget?: TPotential\r\n): TPotential extends Injectable ? void : (target: Injectable) => void {\r\n const deco = (target: Injectable): void => {\r\n if (!target.hasOwnProperty('inject')) {\r\n target.inject = (\r\n (metadata.getOwn(metadata.paramTypes, target) as any[]) ||\r\n _emptyParameters\r\n ).slice();\r\n if (target.inject && target.inject.length > 0) {\r\n // TypeScript 3.0 metadata for \"...rest\" gives type \"Object\"\r\n // if last parameter is \"Object\", assume it's a ...rest and remove that\r\n // metadata.\r\n if (target.inject[target.inject.length - 1] === Object) {\r\n target.inject.splice(-1, 1);\r\n }\r\n }\r\n }\r\n };\r\n if (isInjectable(potentialTarget)) {\r\n return deco(potentialTarget) as TPotential extends Injectable ? void : (target: Injectable) => void;\r\n }\r\n return deco as TPotential extends Injectable ? void : (target: Injectable) => void;\r\n}\r\n/**\r\n * Decorator: Specifies the dependencies that should be injected by the DI Container into the decorated class/function.\r\n */\r\nexport function inject<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n>(...rest: TArgs[number][]): any {\r\n return (\r\n target: DependencyCtor & { inject: any },\r\n _key: any,\r\n descriptor: any) => {\r\n // handle when used as a constructor parameter decorator\r\n if (typeof descriptor === 'number') {\r\n autoinject(target);\r\n if (rest.length === 1) {\r\n target.inject[descriptor] = rest[0];\r\n }\r\n return;\r\n }\r\n // if it's true then we injecting rest into function and not Class constructor\r\n if (descriptor) {\r\n const fn = descriptor.value;\r\n fn.inject = rest;\r\n } else {\r\n target.inject = rest;\r\n }\r\n };\r\n}\r\n","import { protocol } from 'aurelia-metadata';\r\nimport { Container } from './container';\r\nimport { autoinject } from './injection';\r\nimport type {\r\n PrimitiveOrDependencyCtor,\r\n DependencyCtorOrFunctor,\r\n PrimitiveOrDependencyCtorOrFunctor,\r\n DependencyCtor,\r\n DependencyFunctor,\r\n ImplOrAny,\r\n Impl,\r\n Args\r\n} from './types';\r\n\r\n/**\r\n * Decorator: Indicates that the decorated class/object is a custom resolver.\r\n */\r\nexport const resolver: {\r\n decorates?: (key: any) => key is { get(container: Container, key: any): any };\r\n} & (() => any) = ((protocol as unknown) as { create(...args: any[]): any }).create(\r\n 'aurelia:resolver',\r\n (target): string | boolean => {\r\n if (!(typeof target.get === 'function')) {\r\n return 'Resolvers must implement: get(container: Container, key: any): any';\r\n }\r\n\r\n return true;\r\n }\r\n);\r\n\r\n/**\r\n * Used to allow functions/classes to specify custom dependency resolution logic.\r\n */\r\nexport interface Resolver {\r\n /**\r\n * Called by the container to allow custom resolution of dependencies for a\r\n * function/class.\r\n * @param container The container to resolve from.\r\n * @param key The key that the resolver was registered as.\r\n * @return Returns the resolved object.\r\n */\r\n get(container: Container, key: any): any;\r\n}\r\n\r\nexport enum Strategy {\r\n instance = 0,\r\n singleton = 1,\r\n transient = 2,\r\n function = 3,\r\n array = 4,\r\n alias = 5\r\n}\r\nexport type IStrategy = 1 | 2 | 3 | 4 | 5;\r\n\r\nexport type StrategyFunctor<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n > = (\r\n container?: Container,\r\n ctor?: PrimitiveOrDependencyCtorOrFunctor,\r\n strategyResolver?: any\r\n ) => TImpl;\r\n\r\nexport interface StrategyState<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n > {\r\n [Strategy.instance]: TImpl;\r\n [Strategy.singleton]: DependencyCtorOrFunctor;\r\n [Strategy.transient]: DependencyCtorOrFunctor;\r\n [Strategy.function]: StrategyFunctor;\r\n /**\r\n * For typings purposes, this is done as ({ get: StrategyFunctor } | TImpl)[]\r\n * But it should be understood, and used as [{ get: StrategyFunctor }, ...TImp[]]\r\n */\r\n [Strategy.array]: ({\r\n get: (\r\n container: Container,\r\n key: PrimitiveOrDependencyCtor\r\n ) => TImpl\r\n } | TImpl)[];\r\n [Strategy.alias]: any;\r\n}\r\n\r\nfunction isStrategy<\r\n TBase,\r\n TImpl extends Impl,\r\n TArgs extends Args,\r\n TKey extends keyof StrategyState\r\n>(\r\n actual: Strategy,\r\n expected: TKey,\r\n state):\r\n state is StrategyState[TKey] {\r\n return actual === expected;\r\n}\r\n/**\r\n * Used to resolve instances, singletons, transients, aliases\r\n */\r\n@resolver()\r\nexport class StrategyResolver<\r\n TBase,\r\n TImpl extends Impl,\r\n TArgs extends Args,\r\n TStrategyKey extends keyof StrategyState> {\r\n\r\n public strategy: keyof StrategyState;\r\n public state: StrategyState[keyof StrategyState];\r\n\r\n /**\r\n * Creates an instance of the StrategyResolver class.\r\n * @param strategy The type of resolution strategy.\r\n * @param state The state associated with the resolution strategy.\r\n */\r\n constructor(strategy: TStrategyKey, state: StrategyState[TStrategyKey]) {\r\n this.strategy = strategy;\r\n this.state = state;\r\n }\r\n\r\n /**\r\n * Called by the container to allow custom resolution of dependencies for a\r\n * function/class.\r\n * @param container The container to resolve from.\r\n * @param key The key that the resolver was registered as.\r\n * @return Returns the resolved object.\r\n */\r\n public get(container: Container, key: PrimitiveOrDependencyCtor) {\r\n if (isStrategy(this.strategy, Strategy.instance, this.state)) {\r\n return this.state;\r\n }\r\n if (isStrategy(this.strategy, Strategy.singleton, this.state)) {\r\n const singleton = container.invoke(this.state);\r\n this.state = singleton;\r\n this.strategy = 0;\r\n return singleton;\r\n }\r\n if (isStrategy(this.strategy, Strategy.transient, this.state)) {\r\n return container.invoke(this.state);\r\n }\r\n if (isStrategy(this.strategy, Strategy.function, this.state)) {\r\n return this.state(container, key, this);\r\n }\r\n if (isStrategy(this.strategy, Strategy.array, this.state)) {\r\n return (this.state[0] as { get: StrategyFunctor }).get(container, key);\r\n }\r\n if (isStrategy(this.strategy, Strategy.alias, this.state)) {\r\n return container.get(this.state) as TImpl;\r\n }\r\n throw new Error('Invalid strategy: ' + this.strategy);\r\n }\r\n}\r\n\r\n/**\r\n * Used to allow functions/classes to specify lazy resolution logic.\r\n */\r\n@resolver()\r\nexport class Lazy = Impl,\r\n TArgs extends Args = Args> {\r\n /** @internal */\r\n public _key: PrimitiveOrDependencyCtor;\r\n\r\n /**\r\n * A non existent property to help TS distinguish resolvers\r\n *\r\n * This is semi-private, and should not be used by application\r\n */\r\n __resolver_type__!: 'lazy';\r\n\r\n /**\r\n * Creates an instance of the Lazy class.\r\n * @param key The key to lazily resolve.\r\n */\r\n constructor(key: PrimitiveOrDependencyCtor) {\r\n this._key = key;\r\n }\r\n\r\n /**\r\n * Called by the container to lazily resolve the dependency into a lazy locator\r\n * function.\r\n * @param container The container to resolve from.\r\n * @return Returns a function which can be invoked at a later time to obtain\r\n * the actual dependency.\r\n */\r\n public get(container: Container): () => ImplOrAny {\r\n return () => container.get(this._key);\r\n }\r\n\r\n /**\r\n * Creates a Lazy Resolver for the supplied key.\r\n * @param key The key to lazily resolve.\r\n * @return Returns an instance of Lazy for the key.\r\n */\r\n public static of<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor\r\n ) {\r\n return new Lazy(key);\r\n }\r\n}\r\n\r\n/**\r\n * Used to allow functions/classes to specify resolution of all matches to a key.\r\n */\r\n@resolver()\r\nexport class All = Impl,\r\n TArgs extends Args = Args> {\r\n /** @internal */\r\n public _key: PrimitiveOrDependencyCtor;\r\n\r\n /**\r\n * A non existent property to help TS distinguish resolvers\r\n *\r\n * This is semi-private, and should not be used by application\r\n */\r\n __resolver_type__!: 'all';\r\n\r\n /**\r\n * Creates an instance of the All class.\r\n * @param key The key to lazily resolve all matches for.\r\n */\r\n constructor(key: PrimitiveOrDependencyCtor) {\r\n this._key = key;\r\n }\r\n\r\n /**\r\n * Called by the container to resolve all matching dependencies as an array of\r\n * instances.\r\n * @param container The container to resolve from.\r\n * @return Returns an array of all matching instances.\r\n */\r\n public get(container: Container): TImpl[] {\r\n return container.getAll(this._key);\r\n }\r\n\r\n /**\r\n * Creates an All Resolver for the supplied key.\r\n * @param key The key to resolve all instances for.\r\n * @return Returns an instance of All for the key.\r\n */\r\n public static of = Impl,\r\n TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor\r\n ): All {\r\n return new All(key);\r\n }\r\n}\r\n\r\n/**\r\n * Used to allow functions/classes to specify an optional dependency, which will\r\n * be resolved only if already registred with the container.\r\n */\r\n@resolver()\r\nexport class Optional = Impl,\r\n TArgs extends Args = Args> {\r\n /** @internal */\r\n public _key: PrimitiveOrDependencyCtor;\r\n\r\n /** @internal */\r\n public _checkParent: boolean;\r\n\r\n /**\r\n * A non existent property to help TS distinguish resolvers\r\n *\r\n * This is semi-private, and should not be used by application\r\n */\r\n __resolver_type__!: 'optional';\r\n\r\n /**\r\n * Creates an instance of the Optional class.\r\n * @param key The key to optionally resolve for.\r\n * @param checkParent Indicates whether or not the parent container hierarchy\r\n * should be checked.\r\n */\r\n constructor(key: PrimitiveOrDependencyCtor, checkParent: boolean = true) {\r\n this._key = key;\r\n this._checkParent = checkParent;\r\n }\r\n\r\n /**\r\n * Called by the container to provide optional resolution of the key.\r\n * @param container The container to resolve from.\r\n * @return Returns the instance if found; otherwise null.\r\n */\r\n public get(container: Container): TImpl | null {\r\n if (container.hasResolver(this._key, this._checkParent)) {\r\n return container.get(this._key);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Creates an Optional Resolver for the supplied key.\r\n * @param key The key to optionally resolve for.\r\n * @param [checkParent=true] Indicates whether or not the parent container\r\n * hierarchy should be checked.\r\n * @return Returns an instance of Optional for the key.\r\n */\r\n public static of = Impl,\r\n TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor,\r\n checkParent: boolean = true): Optional {\r\n return new Optional(key, checkParent);\r\n }\r\n}\r\n\r\n/**\r\n * Used to inject the dependency from the parent container instead of the current\r\n * one.\r\n */\r\n@resolver()\r\nexport class Parent = Impl,\r\n TArgs extends Args = Args> {\r\n /** @internal */\r\n public _key: PrimitiveOrDependencyCtor;\r\n\r\n /**\r\n * A non existent property to help TS distinguish resolvers\r\n *\r\n * This is semi-private, and should not be used by application\r\n */\r\n __resolver_type__!: 'parent';\r\n\r\n /**\r\n * Creates an instance of the Parent class.\r\n * @param key The key to resolve from the parent container.\r\n */\r\n constructor(key: PrimitiveOrDependencyCtor) {\r\n this._key = key;\r\n }\r\n\r\n /**\r\n * Called by the container to load the dependency from the parent container\r\n * @param container The container to resolve the parent from.\r\n * @return Returns the matching instance from the parent container\r\n */\r\n public get(container: Container): TImpl | null {\r\n return container.parent ? container.parent.get(this._key) : null;\r\n }\r\n\r\n /**\r\n * Creates a Parent Resolver for the supplied key.\r\n * @param key The key to resolve.\r\n * @return Returns an instance of Parent for the key.\r\n */\r\n public static of = Impl,\r\n TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor\r\n ): Parent {\r\n return new Parent(key);\r\n }\r\n}\r\n\r\n/**\r\n * Used to allow injecting dependencies but also passing data to the constructor.\r\n */\r\n@resolver()\r\nexport class Factory = Impl,\r\n TArgs extends Args = Args> {\r\n /** @internal */\r\n public _key: PrimitiveOrDependencyCtorOrFunctor;\r\n\r\n /**\r\n * A non existent property to help TS distinguish resolvers\r\n *\r\n * This is semi-private, and should not be used by application\r\n */\r\n __resolver_type__!: 'factory';\r\n\r\n /**\r\n * Creates an instance of the Factory class.\r\n * @param key The key to resolve from the parent container.\r\n */\r\n constructor(key: PrimitiveOrDependencyCtorOrFunctor) {\r\n this._key = key;\r\n }\r\n\r\n /**\r\n * Called by the container to pass the dependencies to the constructor.\r\n * @param container The container to invoke the constructor with dependencies\r\n * and other parameters.\r\n * @return Returns a function that can be invoked to resolve dependencies\r\n * later, and the rest of the parameters.\r\n */\r\n public get(container: Container): DependencyFunctor {\r\n let fn = this._key;\r\n const resolver = container.getResolver(fn);\r\n if (resolver && resolver.strategy === Strategy.function) {\r\n fn = resolver.state;\r\n }\r\n\r\n return (...rest) => container.invoke(fn as DependencyCtorOrFunctor, rest);\r\n }\r\n\r\n /**\r\n * Creates a Factory Resolver for the supplied key.\r\n * @param key The key to resolve.\r\n * @return Returns an instance of Factory for the key.\r\n */\r\n public static of = Impl,\r\n TArgs extends Args = Args>(\r\n key: DependencyCtor\r\n ): Factory {\r\n return new Factory(key);\r\n }\r\n}\r\n\r\n/**\r\n * Used to inject a new instance of a dependency, without regard for existing\r\n * instances in the container. Instances can optionally be registered in the\r\n * container\r\n * under a different key by supplying a key using the `as` method.\r\n */\r\n@resolver()\r\nexport class NewInstance<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args> {\r\n /** @internal */\r\n public key: PrimitiveOrDependencyCtorOrFunctor;\r\n /** @internal */\r\n public asKey: PrimitiveOrDependencyCtorOrFunctor;\r\n /** @internal */\r\n public dynamicDependencies: TArgs[number][];\r\n\r\n /**\r\n * A non existent property to help TS distinguish resolvers\r\n *\r\n * This is semi-private, and should not be used by application\r\n */\r\n __resolver_type__!: 'newInstance';\r\n\r\n /**\r\n * Creates an instance of the NewInstance class.\r\n * @param key The key to resolve/instantiate.\r\n * @param dynamicDependencies An optional list of dynamic dependencies.\r\n */\r\n constructor(key: PrimitiveOrDependencyCtorOrFunctor, ...dynamicDependencies: TArgs[number][]) {\r\n this.key = key;\r\n this.asKey = key;\r\n this.dynamicDependencies = dynamicDependencies;\r\n }\r\n\r\n /**\r\n * Called by the container to instantiate the dependency and potentially\r\n * register\r\n * as another key if the `as` method was used.\r\n * @param container The container to resolve the parent from.\r\n * @return Returns the matching instance from the parent container\r\n */\r\n public get(container: Container) {\r\n const dynamicDependencies =\r\n this.dynamicDependencies.length > 0\r\n ? this.dynamicDependencies.map(dependency =>\r\n dependency['protocol:aurelia:resolver']\r\n ? dependency.get(container)\r\n : container.get(dependency)\r\n )\r\n : undefined;\r\n\r\n let fn = this.key;\r\n const resolver = container.getResolver(fn);\r\n if (resolver && resolver.strategy === 3) {\r\n fn = resolver.state;\r\n }\r\n\r\n const instance = container.invoke(fn as DependencyCtorOrFunctor, dynamicDependencies);\r\n container.registerInstance(this.asKey, instance);\r\n return instance;\r\n }\r\n\r\n /**\r\n * Instructs the NewInstance resolver to register the resolved instance using\r\n * the supplied key.\r\n * @param key The key to register the instance with.\r\n * @return Returns the NewInstance resolver.\r\n */\r\n public as(key: PrimitiveOrDependencyCtorOrFunctor) {\r\n this.asKey = key;\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates an NewInstance Resolver for the supplied key.\r\n * @param key The key to resolve/instantiate.\r\n * @param dynamicDependencies An optional list of dynamic dependencies.\r\n * @return Returns an instance of NewInstance for the key.\r\n */\r\n public static of = Impl,\r\n TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtorOrFunctor,\r\n ...dynamicDependencies: TArgs[number][]): NewInstance {\r\n return new NewInstance(key, ...dynamicDependencies);\r\n }\r\n}\r\n\r\n/**\r\n * Used by parameter decorators to call autoinject for the target and retrieve\r\n * the target's inject property.\r\n * @param target The target class.\r\n * @return Returns the target's own inject property.\r\n */\r\nexport function getDecoratorDependencies<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n target: DependencyCtor & { inject?: TArgs[number][] }\r\n ) {\r\n autoinject(target);\r\n\r\n return target.inject;\r\n}\r\n\r\n/**\r\n * Decorator: Specifies the dependency should be lazy loaded\r\n */\r\nexport function lazy<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n keyValue: any\r\n ) {\r\n return (\r\n target: { new (...args: TArgs): TBase | TImpl },\r\n _key,\r\n index: number\r\n ) => {\r\n const inject = getDecoratorDependencies(target)!;\r\n inject[index] = Lazy.of(keyValue);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator: Specifies the dependency should load all instances of the given\r\n * key.\r\n */\r\nexport function all<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n keyValue: any\r\n ) {\r\n return (\r\n target: DependencyCtor & { inject?: TArgs[number][] },\r\n _key,\r\n index: number\r\n ) => {\r\n const inject = getDecoratorDependencies(target)!;\r\n inject[index] = All.of(keyValue);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator: Specifies the dependency as optional\r\n */\r\nexport function optional<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n checkParentOrTarget: boolean = true) {\r\n const deco = (checkParent: boolean) => {\r\n return (\r\n target: DependencyCtor & { inject?: TArgs[number][] },\r\n _key,\r\n index: number) => {\r\n const inject = getDecoratorDependencies(target)!;\r\n inject[index] = Optional.of(inject[index], checkParent);\r\n };\r\n };\r\n if (typeof checkParentOrTarget === 'boolean') {\r\n return deco(checkParentOrTarget);\r\n }\r\n return deco(true);\r\n}\r\n\r\n/**\r\n * Decorator: Specifies the dependency to look at the parent container for\r\n * resolution\r\n */\r\nexport function parent<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n target: DependencyCtor & { inject?: TArgs[number][] },\r\n _key,\r\n index: number) {\r\n const inject = getDecoratorDependencies(target)!;\r\n inject[index] = Parent.of(inject[index]);\r\n}\r\n\r\n/**\r\n * Decorator: Specifies the dependency to create a factory method, that can\r\n * accept optional arguments\r\n */\r\nexport function factory<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n keyValue: any\r\n ) {\r\n return (\r\n target: DependencyCtor & { inject?: TArgs[number][] },\r\n _key,\r\n index: number\r\n ) => {\r\n const inject = getDecoratorDependencies(target)!;\r\n inject[index] = Factory.of(keyValue);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator: Specifies the dependency as a new instance. Instances can optionally be registered in the container\r\n * under a different key and/or use dynamic dependencies\r\n */\r\nexport function newInstance<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n>(\r\n asKeyOrTarget?: PrimitiveOrDependencyCtor & { inject?: TArgs[number][] },\r\n ...dynamicDependencies: TArgs[number][]\r\n) {\r\n const deco = (asKey?: typeof asKeyOrTarget) => {\r\n return (\r\n target: { new (...args: any[]): any },\r\n _key,\r\n index: number\r\n ) => {\r\n const inject = getDecoratorDependencies(target)!;\r\n inject[index] = NewInstance.of(inject[index], ...dynamicDependencies);\r\n if (!!asKey) {\r\n inject[index].as(asKey);\r\n }\r\n };\r\n };\r\n if (arguments.length >= 1) {\r\n return deco(asKeyOrTarget);\r\n }\r\n return deco();\r\n}\r\n","import './internal';\r\nimport { metadata } from 'aurelia-metadata';\r\nimport { AggregateError } from 'aurelia-pal';\r\nimport { resolver, StrategyResolver, Resolver, Strategy, StrategyState, Factory, NewInstance, Lazy, Optional, All, Parent } from './resolvers';\r\nimport { Invoker } from './invokers';\r\nimport {\r\n DependencyCtorOrFunctor,\r\n DependencyCtor,\r\n PrimitiveOrDependencyCtor,\r\n PrimitiveOrDependencyCtorOrFunctor,\r\n ImplOrAny,\r\n Impl,\r\n Args,\r\n Primitive\r\n} from './types';\r\n\r\nlet currentContainer: Container | null = null;\r\n\r\nfunction validateKey(key: any) {\r\n if (key === null || key === undefined) {\r\n throw new Error(\r\n 'key/value cannot be null or undefined. Are you trying to inject/register something that doesn\\'t exist with DI?'\r\n );\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const _emptyParameters = Object.freeze([]) as [];\r\n\r\nmetadata.registration = 'aurelia:registration';\r\nmetadata.invoker = 'aurelia:invoker';\r\n\r\nconst resolverDecorates = resolver.decorates!;\r\n\r\n/**\r\n * Stores the information needed to invoke a function.\r\n */\r\nexport class InvocationHandler<\r\n TBase,\r\n TImpl extends Impl,\r\n TArgs extends Args\r\n > {\r\n /**\r\n * The function to be invoked by this handler.\r\n */\r\n public fn: DependencyCtorOrFunctor;\r\n\r\n /**\r\n * The invoker implementation that will be used to actually invoke the function.\r\n */\r\n public invoker: Invoker;\r\n\r\n /**\r\n * The statically known dependencies of this function invocation.\r\n */\r\n public dependencies: TArgs;\r\n\r\n /**\r\n * Instantiates an InvocationDescription.\r\n * @param fn The Function described by this description object.\r\n * @param invoker The strategy for invoking the function.\r\n * @param dependencies The static dependencies of the function call.\r\n */\r\n constructor(\r\n fn: DependencyCtorOrFunctor,\r\n invoker: Invoker,\r\n dependencies: TArgs\r\n ) {\r\n this.fn = fn;\r\n this.invoker = invoker;\r\n this.dependencies = dependencies;\r\n }\r\n\r\n /**\r\n * Invokes the function.\r\n * @param container The calling container.\r\n * @param dynamicDependencies Additional dependencies to use during invocation.\r\n * @return The result of the function invocation.\r\n */\r\n public invoke(container: Container, dynamicDependencies?: TArgs[]): TImpl {\r\n const previousContainer = currentContainer;\r\n currentContainer = container;\r\n try {\r\n return dynamicDependencies !== undefined\r\n ? this.invoker.invokeWithDynamicDependencies(\r\n container,\r\n this.fn,\r\n this.dependencies,\r\n dynamicDependencies\r\n )\r\n : this.invoker.invoke(container, this.fn, this.dependencies);\r\n } finally {\r\n currentContainer = previousContainer;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Used to configure a Container instance.\r\n */\r\nexport interface ContainerConfiguration {\r\n /**\r\n * An optional callback which will be called when any function needs an\r\n * InvocationHandler created (called once per Function).\r\n */\r\n onHandlerCreated?: (\r\n handler: InvocationHandler\r\n ) => InvocationHandler;\r\n\r\n handlers?: Map;\r\n}\r\n\r\nfunction invokeWithDynamicDependencies<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n>(\r\n container: Container,\r\n fn: DependencyCtorOrFunctor,\r\n staticDependencies: TArgs[number][],\r\n dynamicDependencies: TArgs[number][]\r\n) {\r\n let i = staticDependencies.length;\r\n let args = new Array(i);\r\n let lookup;\r\n\r\n while (i--) {\r\n lookup = staticDependencies[i];\r\n\r\n if (lookup === null || lookup === undefined) {\r\n throw new Error(\r\n 'Constructor Parameter with index ' +\r\n i +\r\n ' cannot be null or undefined. Are you trying to inject/register something that doesn\\'t exist with DI?'\r\n );\r\n } else {\r\n args[i] = container.get(lookup);\r\n }\r\n }\r\n\r\n if (dynamicDependencies !== undefined) {\r\n args = args.concat(dynamicDependencies);\r\n }\r\n\r\n return Reflect.construct(fn, args);\r\n}\r\n\r\nconst classInvoker: Invoker = {\r\n invoke(container, Type: DependencyCtor, deps) {\r\n const instances = deps.map((dep) => container.get(dep));\r\n return Reflect.construct(Type, instances);\r\n },\r\n invokeWithDynamicDependencies\r\n};\r\n\r\nfunction getDependencies(f) {\r\n if (!f.hasOwnProperty('inject')) {\r\n return [];\r\n }\r\n\r\n if (typeof f.inject === 'function') {\r\n return f.inject();\r\n }\r\n\r\n return f.inject;\r\n}\r\n\r\n/**\r\n * A lightweight, extensible dependency injection container.\r\n */\r\nexport class Container {\r\n /**\r\n * The global root Container instance. Available if makeGlobal() has been\r\n * called. Aurelia Framework calls makeGlobal().\r\n */\r\n public static instance: Container;\r\n\r\n /**\r\n * The parent container in the DI hierarchy.\r\n */\r\n public parent: Container | null;\r\n\r\n /**\r\n * The root container in the DI hierarchy.\r\n */\r\n public root: Container;\r\n\r\n /** @internal */\r\n public _configuration: ContainerConfiguration;\r\n\r\n /** @internal */\r\n public _onHandlerCreated: (\r\n handler: InvocationHandler\r\n ) => InvocationHandler;\r\n\r\n /** @internal */\r\n public _handlers: Map;\r\n\r\n /** @internal */\r\n public _resolvers: Map;\r\n\r\n /**\r\n * Creates an instance of Container.\r\n * @param configuration Provides some configuration for the new Container instance.\r\n */\r\n constructor(configuration?: ContainerConfiguration) {\r\n if (configuration === undefined) {\r\n configuration = {};\r\n }\r\n\r\n this._configuration = configuration;\r\n this._onHandlerCreated = configuration.onHandlerCreated!;\r\n this._handlers =\r\n configuration.handlers || (configuration.handlers = new Map());\r\n this._resolvers = new Map();\r\n this.root = this;\r\n this.parent = null;\r\n }\r\n\r\n /**\r\n * Makes this container instance globally reachable through Container.instance.\r\n */\r\n public makeGlobal(): Container {\r\n Container.instance = this;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets an invocation handler creation callback that will be called when new\r\n * InvocationsHandlers are created (called once per Function).\r\n * @param onHandlerCreated The callback to be called when an\r\n * InvocationsHandler is created.\r\n */\r\n public setHandlerCreatedCallback<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args>(\r\n onHandlerCreated: (\r\n handler: InvocationHandler\r\n ) => InvocationHandler\r\n ) {\r\n this._onHandlerCreated = onHandlerCreated;\r\n this._configuration.onHandlerCreated = onHandlerCreated;\r\n }\r\n\r\n /**\r\n * Registers an existing object instance with the container.\r\n * @param key The key that identifies the dependency at resolution time;\r\n * usually a constructor function.\r\n * @param instance The instance that will be resolved when the key is matched.\r\n * This defaults to the key value when instance is not supplied.\r\n * @return The resolver that was registered.\r\n */\r\n public registerInstance = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor,\r\n instance?: TImpl): Resolver {\r\n return this.registerResolver(\r\n key,\r\n new StrategyResolver(0, instance === undefined ? key : instance)\r\n );\r\n }\r\n\r\n /**\r\n * Registers a type (constructor function) such that the container always\r\n * returns the same instance for each request.\r\n * @param key The key that identifies the dependency at resolution time;\r\n * usually a constructor function.\r\n * @param fn The constructor function to use when the dependency needs to be\r\n * instantiated. This defaults to the key value when fn is not supplied.\r\n * @return The resolver that was registered.\r\n */\r\n public registerSingleton = Impl, TArgs extends Args = Args>(\r\n key: Primitive, fn: DependencyCtorOrFunctor): Resolver;\r\n public registerSingleton = Impl, TArgs extends Args = Args>(\r\n key: DependencyCtor, fn?: DependencyCtorOrFunctor): Resolver;\r\n public registerSingleton = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor, fn?: DependencyCtorOrFunctor): Resolver {\r\n return this.registerResolver(\r\n key,\r\n new StrategyResolver(Strategy.singleton, fn === undefined ? key as DependencyCtor : fn)\r\n );\r\n }\r\n\r\n /**\r\n * Registers a type (constructor function) such that the container returns a\r\n * new instance for each request.\r\n * @param key The key that identifies the dependency at resolution time;\r\n * usually a constructor function.\r\n * @param fn The constructor function to use when the dependency needs to be\r\n * instantiated. This defaults to the key value when fn is not supplied.\r\n * @return The resolver that was registered.\r\n */\r\n public registerTransient = Impl, TArgs extends Args = Args>(\r\n key: Primitive, fn: DependencyCtorOrFunctor): Resolver;\r\n public registerTransient = Impl, TArgs extends Args = Args>(\r\n key: DependencyCtor, fn?: DependencyCtorOrFunctor): Resolver;\r\n public registerTransient = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor, fn?: DependencyCtorOrFunctor): Resolver {\r\n return this.registerResolver(\r\n key,\r\n new StrategyResolver(2, fn === undefined ? key as DependencyCtor : fn)\r\n );\r\n }\r\n\r\n /**\r\n * Registers a custom resolution function such that the container calls this\r\n * function for each request to obtain the instance.\r\n * @param key The key that identifies the dependency at resolution time;\r\n * usually a constructor function.\r\n * @param handler The resolution function to use when the dependency is\r\n * needed.\r\n * @return The resolver that was registered.\r\n */\r\n public registerHandler = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor,\r\n handler: (container?: Container, key?: PrimitiveOrDependencyCtor, resolver?: Resolver) => any\r\n ): Resolver {\r\n return this.registerResolver(\r\n key,\r\n new StrategyResolver(Strategy.function, handler)\r\n );\r\n }\r\n\r\n /**\r\n * Registers an additional key that serves as an alias to the original DI key.\r\n * @param originalKey The key that originally identified the dependency; usually a constructor function.\r\n * @param aliasKey An alternate key which can also be used to resolve the same dependency as the original.\r\n * @return The resolver that was registered.\r\n */\r\n public registerAlias = Impl, TArgs extends Args = Args>(\r\n originalKey: PrimitiveOrDependencyCtor,\r\n aliasKey: PrimitiveOrDependencyCtor): Resolver {\r\n return this.registerResolver(\r\n aliasKey,\r\n new StrategyResolver(5, originalKey)\r\n );\r\n }\r\n\r\n /**\r\n * Registers a custom resolution function such that the container calls this\r\n * function for each request to obtain the instance.\r\n * @param key The key that identifies the dependency at resolution time;\r\n * usually a constructor function.\r\n * @param resolver The resolver to use when the dependency is needed.\r\n * @return The resolver that was registered.\r\n */\r\n public registerResolver = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor,\r\n resolver: Resolver\r\n ): Resolver {\r\n validateKey(key);\r\n\r\n const allResolvers = this._resolvers;\r\n const result = allResolvers.get(key);\r\n\r\n if (result === undefined) {\r\n allResolvers.set(key, resolver);\r\n } else if (result.strategy === 4) {\r\n result.state.push(resolver);\r\n } else {\r\n allResolvers.set(key, new StrategyResolver(4, [result, resolver]));\r\n }\r\n\r\n return resolver;\r\n }\r\n\r\n /**\r\n * Registers a type (constructor function) by inspecting its registration\r\n * annotations. If none are found, then the default singleton registration is\r\n * used.\r\n * @param key The key that identifies the dependency at resolution time;\r\n * usually a constructor function.\r\n * @param fn The constructor function to use when the dependency needs to be\r\n * instantiated. This defaults to the key value when fn is not supplied.\r\n */\r\n public autoRegister = Impl, TArgs extends Args = Args>(\r\n key: Primitive, fn: DependencyCtorOrFunctor): Resolver;\r\n public autoRegister = Impl, TArgs extends Args = Args>(\r\n key: DependencyCtor, fn?: DependencyCtorOrFunctor): Resolver;\r\n public autoRegister = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor, fn?: DependencyCtorOrFunctor): Resolver {\r\n fn = fn === undefined ? key as DependencyCtor : fn;\r\n\r\n if (typeof fn === 'function') {\r\n const registration = metadata.get(metadata.registration, fn);\r\n\r\n if (registration === undefined) {\r\n return this.registerResolver(key, new StrategyResolver(1, fn));\r\n }\r\n\r\n return registration.registerResolver(this, key, fn);\r\n }\r\n\r\n return this.registerResolver(key, new StrategyResolver(0, fn));\r\n }\r\n\r\n /**\r\n * Registers an array of types (constructor functions) by inspecting their\r\n * registration annotations. If none are found, then the default singleton\r\n * registration is used.\r\n * @param fns The constructor function to use when the dependency needs to be instantiated.\r\n */\r\n public autoRegisterAll(fns: DependencyCtor[]): void {\r\n let i = fns.length;\r\n while (i--) {\r\n this.autoRegister(fns[i]);\r\n }\r\n }\r\n\r\n /**\r\n * Unregisters based on key.\r\n * @param key The key that identifies the dependency at resolution time; usually a constructor function.\r\n */\r\n public unregister(key: any): void {\r\n this._resolvers.delete(key);\r\n }\r\n\r\n /**\r\n * Inspects the container to determine if a particular key has been registred.\r\n * @param key The key that identifies the dependency at resolution time; usually a constructor function.\r\n * @param checkParent Indicates whether or not to check the parent container hierarchy.\r\n * @return Returns true if the key has been registred; false otherwise.\r\n */\r\n public hasResolver = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor, checkParent: boolean = false): boolean {\r\n validateKey(key);\r\n\r\n return (\r\n this._resolvers.has(key) ||\r\n (checkParent &&\r\n this.parent !== null &&\r\n this.parent.hasResolver(key, checkParent))\r\n );\r\n }\r\n\r\n /**\r\n * Gets the resolver for the particular key, if it has been registered.\r\n * @param key The key that identifies the dependency at resolution time; usually a constructor function.\r\n * @return Returns the resolver, if registred, otherwise undefined.\r\n */\r\n public getResolver<\r\n TStrategyKey extends keyof StrategyState,\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n >(\r\n key: PrimitiveOrDependencyCtorOrFunctor\r\n ): StrategyResolver {\r\n return this._resolvers.get(key);\r\n }\r\n\r\n /**\r\n * Resolves a single instance based on the provided key.\r\n * @param key The key that identifies the object to resolve.\r\n * @return Returns the resolved instance.\r\n */\r\n public get | Lazy | Factory | Optional | Parent | All>(\r\n key: TResolver): ResolvedValue;\r\n public get = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor): ImplOrAny;\r\n public get = Impl, TArgs extends Args = Args>(\r\n key: typeof Container): Container;\r\n public get = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor | typeof Container): ImplOrAny | Container {\r\n validateKey(key);\r\n\r\n if (key === Container) {\r\n return this;\r\n }\r\n\r\n if (resolverDecorates(key)) {\r\n return key.get(this, key);\r\n }\r\n\r\n const resolver = this._resolvers.get(key);\r\n\r\n if (resolver === undefined) {\r\n if (this.parent === null) {\r\n return this.autoRegister(key as DependencyCtor).get(this, key);\r\n }\r\n\r\n const registration = metadata.get(metadata.registration, key);\r\n\r\n if (registration === undefined) {\r\n return this.parent._get(key);\r\n }\r\n\r\n return registration.registerResolver(\r\n this, key, key as DependencyCtorOrFunctor).get(this, key);\r\n }\r\n\r\n return resolver.get(this, key);\r\n }\r\n\r\n public _get(key) {\r\n const resolver = this._resolvers.get(key);\r\n\r\n if (resolver === undefined) {\r\n if (this.parent === null) {\r\n return this.autoRegister(key).get(this, key);\r\n }\r\n\r\n return this.parent._get(key);\r\n }\r\n\r\n return resolver.get(this, key);\r\n }\r\n\r\n /**\r\n * Resolves all instance registered under the provided key.\r\n * @param key The key that identifies the objects to resolve.\r\n * @return Returns an array of the resolved instances.\r\n */\r\n public getAll = Impl, TArgs extends Args = Args>(\r\n key: PrimitiveOrDependencyCtor): ImplOrAny[] {\r\n validateKey(key);\r\n\r\n const resolver = this._resolvers.get(key);\r\n\r\n if (resolver === undefined) {\r\n if (this.parent === null) {\r\n return _emptyParameters;\r\n }\r\n\r\n return this.parent.getAll(key);\r\n }\r\n\r\n if (resolver.strategy === 4) {\r\n const state = resolver.state;\r\n let i = state.length;\r\n const results = new Array(i);\r\n\r\n while (i--) {\r\n results[i] = state[i].get(this, key);\r\n }\r\n\r\n return results;\r\n }\r\n\r\n return [resolver.get(this, key)];\r\n }\r\n\r\n /**\r\n * Creates a new dependency injection container whose parent is the current container.\r\n * @return Returns a new container instance parented to this.\r\n */\r\n public createChild(): Container {\r\n const child = new Container(this._configuration);\r\n child.root = this.root;\r\n child.parent = this;\r\n return child;\r\n }\r\n\r\n /**\r\n * Invokes a function, recursively resolving its dependencies.\r\n * @param fn The function to invoke with the auto-resolved dependencies.\r\n * @param dynamicDependencies Additional function dependencies to use during invocation.\r\n * @return Returns the instance resulting from calling the function.\r\n */\r\n public invoke = Impl, TArgs extends Args = Args>(\r\n fn: DependencyCtorOrFunctor,\r\n dynamicDependencies?: TArgs[number][]\r\n ): ImplOrAny {\r\n try {\r\n let handler = this._handlers.get(fn);\r\n\r\n if (handler === undefined) {\r\n handler = this._createInvocationHandler(fn);\r\n this._handlers.set(fn, handler);\r\n }\r\n\r\n return handler.invoke(this, dynamicDependencies);\r\n } catch (e) {\r\n // @ts-expect-error AggregateError returns an Error in its type hence it fails (new ...) but it's fine\r\n throw new AggregateError(\r\n `Error invoking ${fn.name}. Check the inner error for details.`,\r\n e as Error | undefined,\r\n true\r\n );\r\n }\r\n }\r\n\r\n public _createInvocationHandler\r\n = Impl, TArgs extends Args = Args>(\r\n fn: DependencyCtorOrFunctor & { inject?: any; }\r\n ): InvocationHandler {\r\n let dependencies;\r\n\r\n if (fn.inject === undefined) {\r\n dependencies =\r\n metadata.getOwn(metadata.paramTypes, fn) || _emptyParameters;\r\n } else {\r\n dependencies = [];\r\n let ctor = fn;\r\n while (typeof ctor === 'function') {\r\n dependencies.push(...getDependencies(ctor));\r\n ctor = Object.getPrototypeOf(ctor);\r\n }\r\n }\r\n\r\n const invoker = metadata.getOwn(metadata.invoker, fn) || classInvoker;\r\n\r\n const handler = new InvocationHandler(fn, invoker, dependencies);\r\n return this._onHandlerCreated !== undefined\r\n ? this._onHandlerCreated(handler)\r\n : handler;\r\n }\r\n}\r\n\r\nexport type ResolvedValue =\r\n T extends (new (...args: any[]) => infer R)\r\n ? R\r\n : T extends (abstract new (...args: any[]) => infer R)\r\n ? R\r\n : T extends Factory\r\n ? (...args: unknown[]) => R\r\n : T extends Lazy\r\n ? () => R\r\n : T extends NewInstance\r\n ? R\r\n : T extends Optional\r\n ? R | null\r\n : T extends All\r\n ? R[]\r\n : T extends Parent\r\n ? R | null\r\n : T extends [infer T1, ...infer T2]\r\n ? [ResolvedValue, ...ResolvedValue]\r\n : T;\r\n\r\n/**\r\n * Resolve a key, or list of keys based on the current container.\r\n * \r\n * @example\r\n * ```ts\r\n * import { resolve } from 'aurelia-framework';\r\n * // or\r\n * // import { Container, resolve } from 'aurelia-dependency-injection';\r\n * \r\n * class MyCustomElement {\r\n * someService = resolve(MyService);\r\n * }\r\n * ```\r\n */\r\nexport function resolve(key: K): ResolvedValue;\r\nexport function resolve(...keys: K): ResolvedValue\r\nexport function resolve(...keys: K) {\r\n if (currentContainer == null) {\r\n throw new Error(`There is not a currently active container to resolve \"${String(keys)}\". Are you trying to \"new SomeClass(...)\" that has a resolve(...) call?`);\r\n }\r\n \r\n return keys.length === 1\r\n ? currentContainer.get(keys[0])\r\n : keys.map(containerGetKey, currentContainer);\r\n}\r\n\r\nfunction containerGetKey(this: Container, key: any) {\r\n return this.get(key);\r\n}\r\n","import './internal';\r\nimport { metadata } from 'aurelia-metadata';\r\nimport { Container } from './container';\r\nimport { DependencyCtorOrFunctor, ImplOrAny, Impl, Args, DependencyCtor, DependencyFunctor } from './types';\r\n\r\n/**\r\n * Decorator: Specifies a custom Invoker for the decorated item.\r\n */\r\nexport function invoker, TArgs extends Args>(\r\n value: Invoker\r\n): (target: DependencyCtor) => void {\r\n return target => {\r\n metadata.define(metadata.invoker, value, target);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator: Specifies that the decorated item should be called as a factory\r\n * function, rather than a constructor.\r\n */\r\nexport function invokeAsFactory, TArgs extends Args>(\r\n potentialTarget?: DependencyCtor\r\n): void | ((target: DependencyCtor) => void) {\r\n const deco = (target: DependencyCtor) => {\r\n metadata.define(metadata.invoker, FactoryInvoker.instance, target);\r\n };\r\n\r\n return potentialTarget ? deco(potentialTarget) : deco;\r\n}\r\n\r\n/**\r\n * A strategy for invoking a function, resulting in an object instance.\r\n */\r\nexport interface Invoker, TArgs extends Args> {\r\n /**\r\n * Invokes the function with the provided dependencies.\r\n * @param fn The constructor or factory function.\r\n * @param dependencies The dependencies of the function call.\r\n * @return The result of the function invocation.\r\n */\r\n invoke(\r\n container: Container,\r\n fn: DependencyCtorOrFunctor,\r\n dependencies: TArgs\r\n ): ImplOrAny;\r\n\r\n /**\r\n * Invokes the function with the provided dependencies.\r\n * @param fn The constructor or factory function.\r\n * @param staticDependencies The static dependencies of the function.\r\n * @param dynamicDependencies Additional dependencies to use during\r\n * invocation.\r\n * @return The result of the function invocation.\r\n */\r\n invokeWithDynamicDependencies(\r\n container: Container,\r\n fn: DependencyCtorOrFunctor,\r\n staticDependencies: TArgs[number][],\r\n dynamicDependencies: TArgs[number][]\r\n ): ImplOrAny;\r\n}\r\n\r\n/**\r\n * An Invoker that is used to invoke a factory method.\r\n */\r\nexport class FactoryInvoker<\r\n TBase,\r\n TImpl extends Impl = Impl,\r\n TArgs extends Args = Args\r\n > implements Invoker {\r\n /**\r\n * The singleton instance of the FactoryInvoker.\r\n */\r\n public static instance: FactoryInvoker;\r\n\r\n /**\r\n * Invokes the function with the provided dependencies.\r\n * @param container The calling container.\r\n * @param fn The constructor or factory function.\r\n * @param dependencies The dependencies of the function call.\r\n * @return The result of the function invocation.\r\n */\r\n public invoke(\r\n container: Container,\r\n fn: DependencyCtorOrFunctor,\r\n dependencies: TArgs\r\n ): ImplOrAny {\r\n let i = dependencies.length;\r\n const args = new Array(i);\r\n\r\n while (i--) {\r\n args[i] = container.get(dependencies[i]);\r\n }\r\n\r\n return ((fn as DependencyFunctor).apply(undefined, args as TArgs)) as ImplOrAny;\r\n }\r\n\r\n /**\r\n * Invokes the function with the provided dependencies.\r\n * @param container The calling container.\r\n * @param fn The constructor or factory function.\r\n * @param staticDependencies The static dependencies of the function.\r\n * @param dynamicDependencies Additional dependencies to use during invocation.\r\n * @return The result of the function invocation.\r\n */\r\n public invokeWithDynamicDependencies(\r\n container: Container,\r\n fn: DependencyCtorOrFunctor,\r\n staticDependencies: TArgs[number][],\r\n dynamicDependencies: TArgs[number][]\r\n ): ImplOrAny {\r\n let i = staticDependencies.length;\r\n let args = new Array(i);\r\n\r\n while (i--) {\r\n args[i] = container.get(staticDependencies[i]);\r\n }\r\n\r\n if (dynamicDependencies !== undefined) {\r\n args = args.concat(dynamicDependencies);\r\n }\r\n\r\n return (fn as DependencyFunctor).apply(undefined, args as TArgs) as ImplOrAny;\r\n }\r\n}\r\n\r\nFactoryInvoker.instance = new FactoryInvoker();\r\n","import './internal';\r\nimport { Resolver } from './resolvers';\r\nimport { Container } from './container';\r\nimport { metadata } from 'aurelia-metadata';\r\nimport {\r\n DependencyCtorOrFunctor,\r\n PrimitiveOrDependencyCtor,\r\n Impl,\r\n Args,\r\n DependencyCtor\r\n} from './types';\r\n\r\n/**\r\n * Decorator: Specifies a custom registration strategy for the decorated\r\n * class/function.\r\n */\r\nexport function registration, TArgs extends Args>(\r\n value: Registration) {\r\n return (target: DependencyCtor) => {\r\n metadata.define(metadata.registration, value, target);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator: Specifies to register the decorated item with a \"transient\"\r\n * lifetime.\r\n */\r\nexport function transient, TArgs extends Args>(\r\n key?: PrimitiveOrDependencyCtor) {\r\n return registration(new TransientRegistration(key));\r\n}\r\n\r\n/**\r\n * Decorator: Specifies to register the decorated item with a \"singleton\"\r\n * lifetime.\r\n */\r\nexport function singleton(registerInChild?: boolean);\r\nexport function singleton, TArgs extends Args>(\r\n key?: PrimitiveOrDependencyCtor, registerInChild?: boolean);\r\nexport function singleton, TArgs extends Args>(\r\n keyOrRegisterInChild?: PrimitiveOrDependencyCtor | boolean, registerInChild: boolean = false) {\r\n return registration(\r\n new SingletonRegistration(keyOrRegisterInChild, registerInChild)\r\n );\r\n}\r\n\r\n/**\r\n * Customizes how a particular function is resolved by the Container.\r\n */\r\nexport interface Registration<\r\n TBase,\r\n TImpl extends Impl,\r\n TArgs extends Args> {\r\n /**\r\n * Called by the container to register the resolver.\r\n * @param container The container the resolver is being registered with.\r\n * @param key The key the resolver should be registered as.\r\n * @param fn The function to create the resolver for.\r\n * @return The resolver that was registered.\r\n */\r\n registerResolver(\r\n container: Container,\r\n key: PrimitiveOrDependencyCtor,\r\n fn: DependencyCtorOrFunctor\r\n ): Resolver;\r\n}\r\n\r\n/**\r\n * Used to allow functions/classes to indicate that they should be registered as\r\n * transients with the container.\r\n */\r\nexport class TransientRegistration, TArgs extends Args>\r\n implements Registration {\r\n /** @internal */\r\n public _key?: PrimitiveOrDependencyCtor;\r\n\r\n /**\r\n * Creates an instance of TransientRegistration.\r\n * @param key The key to register as.\r\n */\r\n constructor(key?: PrimitiveOrDependencyCtor) {\r\n this._key = key;\r\n }\r\n\r\n /**\r\n * Called by the container to register the resolver.\r\n * @param container The container the resolver is being registered with.\r\n * @param key The key the resolver should be registered as.\r\n * @param fn The function to create the resolver for.\r\n * @return The resolver that was registered.\r\n */\r\n public registerResolver(\r\n container: Container,\r\n key: PrimitiveOrDependencyCtor,\r\n fn: DependencyCtorOrFunctor\r\n ): Resolver {\r\n const existingResolver = container.getResolver(this._key || key);\r\n return existingResolver === undefined\r\n ? container.registerTransient(\r\n (this._key || key) as string,\r\n fn as DependencyCtorOrFunctor)\r\n : existingResolver;\r\n }\r\n}\r\n\r\n/**\r\n * Used to allow functions/classes to indicate that they should be registered as\r\n * singletons with the container.\r\n */\r\nexport class SingletonRegistration, TArgs extends Args>\r\n implements Registration {\r\n /** @internal */\r\n public _registerInChild: boolean;\r\n\r\n /** @internal */\r\n public _key?: PrimitiveOrDependencyCtor;\r\n\r\n /**\r\n * Creates an instance of SingletonRegistration.\r\n * @param key The key to register as.\r\n */\r\n constructor(\r\n keyOrRegisterInChild?: PrimitiveOrDependencyCtor | boolean,\r\n registerInChild: boolean = false) {\r\n if (typeof keyOrRegisterInChild === 'boolean') {\r\n this._registerInChild = keyOrRegisterInChild;\r\n } else {\r\n this._key = keyOrRegisterInChild;\r\n this._registerInChild = registerInChild;\r\n }\r\n }\r\n\r\n /**\r\n * Called by the container to register the resolver.\r\n * @param container The container the resolver is being registered with.\r\n * @param key The key the resolver should be registered as.\r\n * @param fn The function to create the resolver for.\r\n * @return The resolver that was registered.\r\n */\r\n public registerResolver(\r\n container: Container,\r\n key: PrimitiveOrDependencyCtor,\r\n fn: DependencyCtorOrFunctor\r\n ): Resolver {\r\n const targetContainer = this._registerInChild ? container : container.root;\r\n const existingResolver = targetContainer.getResolver(this._key || key);\r\n return existingResolver === undefined\r\n ? targetContainer.registerSingleton(this._key || key, fn)\r\n : existingResolver;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport * as TheLogManager from 'aurelia-logging';\r\nimport { ViewEngine, HtmlBehaviorResource } from 'aurelia-templating';\r\nimport { join } from 'aurelia-path';\r\nimport type { Container } from 'aurelia-dependency-injection';\r\nimport type { Aurelia } from './aurelia';\r\nimport type { Loader } from 'aurelia-loader';\r\n\r\nconst logger = TheLogManager.getLogger('aurelia');\r\nconst extPattern = /\\.[^/.]+$/;\r\n\r\nfunction runTasks(config: FrameworkConfiguration, tasks) {\r\n let current;\r\n let next = () => {\r\n current = tasks.shift();\r\n if (current) {\r\n return Promise.resolve(current(config)).then(next);\r\n }\r\n\r\n return Promise.resolve();\r\n };\r\n\r\n return next();\r\n}\r\n\r\nexport interface FrameworkPluginInfo {\r\n moduleId?: string;\r\n resourcesRelativeTo?: string[];\r\n configure?: (config: FrameworkConfiguration, pluginConfig?: any) => any;\r\n config?: any;\r\n}\r\n\r\nfunction loadPlugin(fwConfig: FrameworkConfiguration, loader: Loader, info: FrameworkPluginInfo) {\r\n logger.debug(`Loading plugin ${info.moduleId}.`);\r\n if (typeof info.moduleId === 'string') {\r\n fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;\r\n\r\n let id = info.moduleId; // General plugins installed/configured by the end user.\r\n\r\n if (info.resourcesRelativeTo.length > 1 ) { // In case of bootstrapper installed plugins like `aurelia-templating-resources` or `aurelia-history-browser`.\r\n return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])\r\n .then(normalizedId => _loadPlugin(normalizedId));\r\n }\r\n\r\n return _loadPlugin(id);\r\n } else if (typeof info.configure === 'function') {\r\n if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {\r\n return Promise.resolve();\r\n }\r\n fwConfig.configuredPlugins.push(info.configure);\r\n // use info.config || {} to keep behavior consistent with loading from string\r\n return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));\r\n }\r\n throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));\r\n\r\n function _loadPlugin(moduleId) {\r\n return loader.loadModule(moduleId).then(m => { // eslint-disable-line consistent-return\r\n if ('configure' in m) {\r\n if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {\r\n return Promise.resolve();\r\n }\r\n return Promise.resolve(m.configure(fwConfig, info.config || {})).then(() => {\r\n fwConfig.configuredPlugins.push(m.configure);\r\n fwConfig.resourcesRelativeTo = null;\r\n logger.debug(`Configured plugin ${info.moduleId}.`);\r\n });\r\n }\r\n\r\n fwConfig.resourcesRelativeTo = null;\r\n logger.debug(`Loaded plugin ${info.moduleId}.`);\r\n });\r\n }\r\n}\r\n\r\nfunction loadResources(aurelia, resourcesToLoad, appResources) {\r\n // if devs want to go all in static, and remove loader\r\n // the code after this fucntion shouldn't run\r\n // add a check to make sure it only runs when there is something to do so\r\n if (Object.keys(resourcesToLoad).length === 0) {\r\n return Promise.resolve();\r\n }\r\n let viewEngine = aurelia.container.get(ViewEngine);\r\n\r\n return Promise.all(Object.keys(resourcesToLoad).map(n => _normalize(resourcesToLoad[n])))\r\n .then(loads => {\r\n let names = [];\r\n let importIds = [];\r\n\r\n loads.forEach(l => {\r\n names.push(undefined);\r\n importIds.push(l.importId);\r\n });\r\n\r\n return viewEngine.importViewResources(importIds, names, appResources);\r\n });\r\n\r\n function _normalize(load) {\r\n let moduleId = load.moduleId;\r\n let ext = getExt(moduleId);\r\n\r\n if (isOtherResource(moduleId)) {\r\n moduleId = removeExt(moduleId);\r\n }\r\n\r\n return aurelia.loader.normalize(moduleId, load.relativeTo)\r\n .then(normalized => {\r\n return {\r\n name: load.moduleId,\r\n importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized\r\n };\r\n });\r\n }\r\n\r\n function isOtherResource(name) {\r\n let ext = getExt(name);\r\n if (!ext) return false;\r\n if (ext === '') return false;\r\n if (ext === '.js' || ext === '.ts') return false;\r\n return true;\r\n }\r\n\r\n function removeExt(name) {\r\n return name.replace(extPattern, '');\r\n }\r\n\r\n function addOriginalExt(normalized, ext) {\r\n return removeExt(normalized) + '.' + ext;\r\n }\r\n}\r\n\r\nfunction getExt(name: string) { // eslint-disable-line consistent-return\r\n let match = name.match(extPattern);\r\n if (match && match.length > 0) {\r\n return (match[0].split('.'))[1];\r\n }\r\n}\r\n\r\nfunction loadBehaviors(config: FrameworkConfiguration) {\r\n return Promise.all(config.behaviorsToLoad.map(m => m.load(config.container, m.target))).then(() => {\r\n config.behaviorsToLoad = null;\r\n });\r\n}\r\n\r\nfunction assertProcessed(plugins: FrameworkConfiguration) {\r\n if (plugins.processed) {\r\n throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');\r\n }\r\n}\r\n\r\nfunction invalidConfigMsg(cfg: any, type: string) {\r\n return `Invalid ${type} [${cfg}], ${type} must be specified as functions or relative module IDs.`;\r\n}\r\n\r\n/**\r\n * Manages configuring the aurelia framework instance.\r\n */\r\nexport class FrameworkConfiguration {\r\n /**\r\n * The root DI container used by the application.\r\n */\r\n container: Container;\r\n\r\n /**\r\n * The aurelia instance.\r\n */\r\n aurelia: Aurelia;\r\n\r\n /**\r\n * Plugin / feature loading instruction\r\n * @type {FrameworkPluginInfo[]}\r\n *\r\n * @internal\r\n */\r\n info: FrameworkPluginInfo[];\r\n\r\n /** @internal */\r\n processed: boolean;\r\n\r\n /** @internal */\r\n preTasks: any[];\r\n\r\n /** @internal */\r\n postTasks: any[];\r\n\r\n /** @internal */\r\n behaviorsToLoad: any[];\r\n\r\n /** @internal */\r\n configuredPlugins: any[];\r\n\r\n /** @internal */\r\n resourcesToLoad: Record;\r\n\r\n /** @internal */\r\n bootstrapperName: string;\r\n\r\n /** @internal */\r\n resourcesRelativeTo: string[];\r\n\r\n /**\r\n * Creates an instance of FrameworkConfiguration.\r\n * @param aurelia An instance of Aurelia.\r\n */\r\n constructor(aurelia: Aurelia) {\r\n this.aurelia = aurelia;\r\n this.container = aurelia.container;\r\n this.info = [];\r\n this.processed = false;\r\n this.preTasks = [];\r\n this.postTasks = [];\r\n /**\r\n * Custom element's metadata queue for loading view factory\r\n * @type {HtmlBehaviorResource[]}\r\n */\r\n this.behaviorsToLoad = [];\r\n /**\r\n * Plugin configure functions temporary cache for avoid duplicate calls\r\n * @type {Function[]}\r\n */\r\n this.configuredPlugins = [];\r\n this.resourcesToLoad = {};\r\n this.preTask(() => aurelia.loader.normalize('aurelia-bootstrapper', undefined)\r\n .then(name => this.bootstrapperName = name));\r\n this.postTask(() => loadResources(aurelia, this.resourcesToLoad, aurelia.resources));\r\n }\r\n\r\n /**\r\n * Adds an existing object to the framework's dependency injection container.\r\n * @param type The object type of the dependency that the framework will inject.\r\n * @param instance The existing instance of the dependency that the framework will inject.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n instance(type: any, instance: any): FrameworkConfiguration {\r\n this.container.registerInstance(type, instance);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a singleton to the framework's dependency injection container.\r\n * @param type The object type of the dependency that the framework will inject.\r\n * @param implementation The constructor function of the dependency that the framework will inject.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n singleton(type: any, implementation?: Function): FrameworkConfiguration {\r\n this.container.registerSingleton(type, implementation as any);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a transient to the framework's dependency injection container.\r\n * @param type The object type of the dependency that the framework will inject.\r\n * @param implementation The constructor function of the dependency that the framework will inject.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n transient(type: any, implementation?: Function): FrameworkConfiguration {\r\n this.container.registerTransient(type, implementation as any);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds an async function that runs before the plugins are run.\r\n * @param task The function to run before start.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n preTask(task: Function): FrameworkConfiguration {\r\n assertProcessed(this);\r\n this.preTasks.push(task);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds an async function that runs after the plugins are run.\r\n * @param task The function to run after start.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n postTask(task: Function): FrameworkConfiguration {\r\n assertProcessed(this);\r\n this.postTasks.push(task);\r\n return this;\r\n }\r\n\r\n /**\r\n * Configures an internal feature plugin before Aurelia starts.\r\n * @param plugin The folder for the internal plugin to configure (expects an index.js in that folder).\r\n * @param config The configuration for the specified plugin.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n feature(plugin: string | ((config: FrameworkConfiguration, pluginConfig?: any) => any), config: any = {}): FrameworkConfiguration {\r\n switch (typeof plugin) {\r\n case 'string':\r\n let hasIndex = /\\/index$/i.test(plugin);\r\n let moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';\r\n let root = hasIndex ? plugin.slice(0, -6) : plugin;\r\n this.info.push({ moduleId, resourcesRelativeTo: [root, ''], config });\r\n break;\r\n // return this.plugin({ moduleId, resourcesRelativeTo: [root, ''], config });\r\n case 'function':\r\n this.info.push({ configure: plugin, config: config || {} });\r\n break;\r\n default:\r\n throw new Error(invalidConfigMsg(plugin, 'feature'));\r\n }\r\n return this;\r\n // return this.plugin(plugin, config);\r\n }\r\n\r\n /**\r\n * Adds globally available view resources to be imported into the Aurelia framework.\r\n * @param resources The relative module id to the resource. (Relative to the plugin's installer.)\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n globalResources(resources: string | Function | Array): FrameworkConfiguration {\r\n assertProcessed(this);\r\n\r\n // eslint-disable-next-line prefer-rest-params\r\n let toAdd = Array.isArray(resources) ? resources : arguments;\r\n let resource;\r\n let resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];\r\n\r\n for (let i = 0, ii = toAdd.length; i < ii; ++i) {\r\n resource = toAdd[i];\r\n switch (typeof resource) {\r\n case 'string':\r\n let parent = resourcesRelativeTo[0];\r\n let grandParent = resourcesRelativeTo[1];\r\n let name = resource;\r\n\r\n if ((resource.startsWith('./') || resource.startsWith('../')) && parent !== '') {\r\n name = join(parent, resource);\r\n }\r\n\r\n this.resourcesToLoad[name] = { moduleId: name, relativeTo: grandParent };\r\n break;\r\n case 'function':\r\n let meta = this.aurelia.resources.autoRegister(this.container, resource);\r\n if (meta instanceof HtmlBehaviorResource && meta.elementName !== null) {\r\n if (this.behaviorsToLoad.push(meta) === 1) {\r\n this.postTask(() => loadBehaviors(this));\r\n }\r\n }\r\n break;\r\n default:\r\n throw new Error(invalidConfigMsg(resource, 'resource'));\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Renames a global resource that was imported.\r\n * @param resourcePath The path to the resource.\r\n * @param newName The new name.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n globalName(resourcePath: string, newName: string): FrameworkConfiguration {\r\n assertProcessed(this);\r\n this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };\r\n return this;\r\n }\r\n\r\n /**\r\n * Configures an external, 3rd party plugin before Aurelia starts.\r\n * @param plugin The ID of the 3rd party plugin to configure.\r\n * @param pluginConfig The configuration for the specified plugin.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n plugin(\r\n plugin: string | ((frameworkConfig: FrameworkConfiguration) => any) | FrameworkPluginInfo,\r\n pluginConfig?: any\r\n ): FrameworkConfiguration {\r\n assertProcessed(this);\r\n\r\n let info: FrameworkPluginInfo;\r\n switch (typeof plugin) {\r\n case 'string':\r\n info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };\r\n break;\r\n case 'function':\r\n info = { configure: plugin, config: pluginConfig || {} };\r\n break;\r\n default:\r\n throw new Error(invalidConfigMsg(plugin, 'plugin'));\r\n }\r\n this.info.push(info);\r\n return this;\r\n }\r\n\r\n /** @internal */\r\n _addNormalizedPlugin(name, config?) {\r\n let plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };\r\n this.info.push(plugin);\r\n\r\n this.preTask(() => {\r\n let relativeTo = [name, this.bootstrapperName];\r\n plugin.moduleId = name;\r\n plugin.resourcesRelativeTo = relativeTo;\r\n return Promise.resolve();\r\n });\r\n\r\n return this;\r\n }\r\n\r\n // Default configuration helpers\r\n // Note: Please do NOT add PLATFORM.moduleName() around those module names.\r\n // Those functions are not guaranteed to be called, they are here to faciliate\r\n // common configurations. If they are not called, we don't want to include a\r\n // static dependency on those modules.\r\n // Including those modules in the bundle or not is a decision that must be\r\n // taken by the bundling tool, at build time.\r\n\r\n /**\r\n * Plugs in the default binding language from aurelia-templating-binding.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n defaultBindingLanguage(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-templating-binding');\r\n }\r\n\r\n /**\r\n * Plugs in the router from aurelia-templating-router.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n router(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-templating-router');\r\n }\r\n\r\n /**\r\n * Plugs in the default history implementation from aurelia-history-browser.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n history(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-history-browser');\r\n }\r\n\r\n /**\r\n * Plugs in the default templating resources (if, repeat, show, compose, etc.) from aurelia-templating-resources.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n defaultResources(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-templating-resources');\r\n }\r\n\r\n /**\r\n * Plugs in the event aggregator from aurelia-event-aggregator.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n eventAggregator(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-event-aggregator');\r\n }\r\n\r\n /**\r\n * Sets up a basic Aurelia configuration. This is equivalent to calling `.defaultBindingLanguage().defaultResources().eventAggregator();`\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n basicConfiguration(): FrameworkConfiguration {\r\n return this.defaultBindingLanguage().defaultResources().eventAggregator();\r\n }\r\n\r\n /**\r\n * Sets up the standard Aurelia configuration. This is equivalent to calling `.defaultBindingLanguage().defaultResources().eventAggregator().history().router();`\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n standardConfiguration(): FrameworkConfiguration {\r\n return this.basicConfiguration().history().router();\r\n }\r\n\r\n /**\r\n * Plugs in the ConsoleAppender and sets the log level to debug.\r\n * @param level The log level (none/error/warn/info/debug), default to 'debug'.\r\n * @return {FrameworkConfiguration} Returns the current FrameworkConfiguration instance.\r\n */\r\n developmentLogging(level?: string): FrameworkConfiguration {\r\n let logLevel = level ? TheLogManager.logLevel[level] : undefined;\r\n\r\n if (logLevel === undefined) {\r\n logLevel = TheLogManager.logLevel.debug;\r\n }\r\n\r\n this.preTask(() => {\r\n return this.aurelia.loader.normalize('aurelia-logging-console', this.bootstrapperName).then(name => {\r\n return this.aurelia.loader.loadModule(name).then(m => {\r\n TheLogManager.addAppender(new m.ConsoleAppender());\r\n TheLogManager.setLevel(logLevel);\r\n });\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Loads and configures the plugins registered with this instance.\r\n * @return Returns a promise which resolves when all plugins are loaded and configured.\r\n */\r\n apply(): Promise {\r\n if (this.processed) {\r\n return Promise.resolve();\r\n }\r\n\r\n return runTasks(this, this.preTasks).then(() => {\r\n let loader = this.aurelia.loader;\r\n let info = this.info;\r\n let current;\r\n\r\n let next = () => {\r\n current = info.shift();\r\n if (current) {\r\n return loadPlugin(this, loader, current).then(next);\r\n }\r\n\r\n this.processed = true;\r\n this.configuredPlugins = null;\r\n return Promise.resolve();\r\n };\r\n\r\n return next().then(() => runTasks(this, this.postTasks));\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\ndeclare module 'aurelia-templating' {\r\n interface HtmlBehaviorResource {\r\n elementName: string | null;\r\n }\r\n}\r\n","import * as TheLogManager from 'aurelia-logging';\r\nimport {Container} from 'aurelia-dependency-injection';\r\nimport {Loader} from 'aurelia-loader';\r\nimport {BindingLanguage, ViewSlot, ViewResources, TemplatingEngine, CompositionTransaction, View, CompositionContext} from 'aurelia-templating';\r\nimport {DOM, PLATFORM} from 'aurelia-pal';\r\nimport {relativeToFile} from 'aurelia-path';\r\nimport {FrameworkConfiguration} from './framework-configuration';\r\n\r\nfunction preventActionlessFormSubmit() {\r\n DOM.addEventListener('submit', evt => {\r\n const target = evt.target as HTMLFormElement;\r\n const action = target.action;\r\n\r\n if (target.tagName.toLowerCase() === 'form' && !action) {\r\n evt.preventDefault();\r\n }\r\n }, false);\r\n}\r\n\r\n/**\r\n * The framework core that provides the main Aurelia object.\r\n */\r\nexport class Aurelia {\r\n /**\r\n * The DOM Element that Aurelia will attach to.\r\n */\r\n host: Element;\r\n /**\r\n /**\r\n * The loader used by the application.\r\n */\r\n loader: Loader;\r\n /**\r\n * The root DI container used by the application.\r\n */\r\n container: Container;\r\n /**\r\n * The global view resources used by the application.\r\n */\r\n resources: ViewResources;\r\n\r\n /**\r\n * The configuration used during application startup.\r\n */\r\n use: FrameworkConfiguration;\r\n\r\n /** @internal */\r\n private logger: TheLogManager.Logger;\r\n\r\n /** @internal */\r\n _started: Promise;\r\n\r\n /** @internal */\r\n private hostConfigured: boolean;\r\n\r\n /** @internal */\r\n private root: View;\r\n\r\n /** @internal */\r\n private configModuleId: string;\r\n\r\n /** @internal */\r\n private hostSlot: ViewSlot;\r\n\r\n /**\r\n * Creates an instance of Aurelia.\r\n * @param loader The loader for this Aurelia instance to use. If a loader is not specified, Aurelia will use the loader type specified by PLATFORM.Loader.\r\n * @param container The dependency injection container for this Aurelia instance to use. If a container is not specified, Aurelia will create an empty, global container.\r\n * @param resources The resource registry for this Aurelia instance to use. If a resource registry is not specified, Aurelia will create an empty registry.\r\n */\r\n constructor(loader?: Loader, container?: Container, resources?: ViewResources) {\r\n this.loader = loader || new PLATFORM.Loader();\r\n this.container = container || (new Container()).makeGlobal();\r\n this.resources = resources || new ViewResources();\r\n this.use = new FrameworkConfiguration(this);\r\n this.logger = TheLogManager.getLogger('aurelia');\r\n this.hostConfigured = false;\r\n this.host = null;\r\n\r\n this.use.instance(Aurelia, this);\r\n this.use.instance(Loader, this.loader);\r\n this.use.instance(ViewResources, this.resources);\r\n }\r\n\r\n /**\r\n * Loads plugins, then resources, and then starts the Aurelia instance.\r\n * @return Returns a Promise with the started Aurelia instance.\r\n */\r\n start(): Promise {\r\n if (this._started) {\r\n return this._started;\r\n }\r\n\r\n this.logger.info('Aurelia Starting');\r\n return this._started = this.use.apply().then(() => {\r\n preventActionlessFormSubmit();\r\n\r\n if (!this.container.hasResolver(BindingLanguage)) {\r\n let message = 'You must configure Aurelia with a BindingLanguage implementation.';\r\n this.logger.error(message);\r\n throw new Error(message);\r\n }\r\n\r\n this.logger.info('Aurelia Started');\r\n let evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });\r\n DOM.dispatchEvent(evt);\r\n return this;\r\n });\r\n }\r\n\r\n /**\r\n * Enhances the host's existing elements with behaviors and bindings.\r\n * @param bindingContext A binding context for the enhanced elements.\r\n * @param applicationHost The DOM object that Aurelia will enhance.\r\n * @return Returns a Promise for the current Aurelia instance.\r\n */\r\n enhance(bindingContext: object = {}, applicationHost: string | Element = null): Promise {\r\n this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);\r\n\r\n return new Promise(resolve => {\r\n let engine = this.container.get(TemplatingEngine) as TemplatingEngine;\r\n this.root = engine.enhance({container: this.container, element: this.host, resources: this.resources, bindingContext: bindingContext});\r\n this.root.attached();\r\n this._onAureliaComposed();\r\n resolve(this);\r\n });\r\n }\r\n\r\n /**\r\n * Instantiates the root component and adds it to the DOM.\r\n * @param root The root component to load upon bootstrap.\r\n * @param applicationHost The DOM object that Aurelia will attach to.\r\n * @return Returns a Promise of the current Aurelia instance.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n setRoot(root: string | Function = null, applicationHost: string | Element = null): Promise {\r\n let instruction = {} as CompositionContext;\r\n\r\n if (this.root && this.root.viewModel && this.root.viewModel.router) {\r\n this.root.viewModel.router.deactivate();\r\n this.root.viewModel.router.reset();\r\n }\r\n\r\n this._configureHost(applicationHost);\r\n\r\n let engine = this.container.get(TemplatingEngine) as TemplatingEngine;\r\n let transaction = this.container.get(CompositionTransaction);\r\n delete (transaction as any).initialComposition;\r\n\r\n if (!root) {\r\n if (this.configModuleId) {\r\n root = relativeToFile('./app', this.configModuleId);\r\n } else {\r\n root = 'app';\r\n }\r\n }\r\n\r\n instruction.viewModel = root;\r\n instruction.container = instruction.childContainer = this.container;\r\n instruction.viewSlot = this.hostSlot;\r\n instruction.host = this.host;\r\n\r\n return engine.compose(instruction).then((r: View) => {\r\n this.root = r;\r\n instruction.viewSlot.attached();\r\n this._onAureliaComposed();\r\n return this;\r\n });\r\n }\r\n\r\n /** @internal */\r\n _configureHost(applicationHost) {\r\n if (this.hostConfigured) {\r\n return;\r\n }\r\n applicationHost = applicationHost || this.host;\r\n\r\n if (!applicationHost || typeof applicationHost === 'string') {\r\n this.host = DOM.getElementById(applicationHost || 'applicationHost');\r\n } else {\r\n this.host = applicationHost;\r\n }\r\n\r\n if (!this.host) {\r\n throw new Error('No applicationHost was specified.');\r\n }\r\n\r\n this.hostConfigured = true;\r\n (this.host as any).aurelia = this;\r\n this.hostSlot = new ViewSlot(this.host, true);\r\n this.hostSlot.transformChildNodesIntoView();\r\n this.container.registerInstance(DOM.boundary, this.host);\r\n }\r\n\r\n /** @internal */\r\n _onAureliaComposed() {\r\n let evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });\r\n setTimeout(() => DOM.dispatchEvent(evt), 1);\r\n }\r\n}\r\n\r\n/** @internal */\r\ndeclare module 'aurelia-templating' {\r\n interface View {\r\n viewModel: any;\r\n }\r\n}\r\n","import { DOM, PLATFORM } from 'aurelia-pal';\nimport { BrowserHistory } from './browser-history';\nimport { AnchorEventInfo } from './interfaces';\n\n/**\n * Class responsible for handling interactions that should trigger browser history navigations.\n */\nexport class LinkHandler {\n /**\n * Activate the instance.\n *\n * @param history The BrowserHistory instance that navigations should be dispatched to.\n */\n activate(history: BrowserHistory): void {/**/}\n\n /**\n * Deactivate the instance. Event handlers and other resources should be cleaned up here.\n */\n deactivate(): void {/**/}\n}\n\n/**\n * The default LinkHandler implementation. Navigations are triggered by click events on\n * anchor elements with relative hrefs when the history instance is using pushstate.\n */\nexport class DefaultLinkHandler extends LinkHandler {\n\n /**@internal */\n handler: (e: Event) => void;\n\n /**@internal */\n history: BrowserHistory;\n /**\n * Creates an instance of DefaultLinkHandler.\n */\n constructor() {\n super();\n\n this.handler = (e) => {\n let { shouldHandleEvent, href } = DefaultLinkHandler.getEventInfo(e);\n\n if (shouldHandleEvent) {\n e.preventDefault();\n this.history.navigate(href);\n }\n };\n }\n\n /**\n * Activate the instance.\n *\n * @param history The BrowserHistory instance that navigations should be dispatched to.\n */\n activate(history: BrowserHistory): void {\n if (history._hasPushState) {\n this.history = history;\n DOM.addEventListener('click', this.handler, true);\n }\n }\n\n /**\n * Deactivate the instance. Event handlers and other resources should be cleaned up here.\n */\n deactivate(): void {\n DOM.removeEventListener('click', this.handler, true);\n }\n\n /**\n * Gets the href and a \"should handle\" recommendation, given an Event.\n *\n * @param event The Event to inspect for target anchor and href.\n */\n static getEventInfo(event: Event): AnchorEventInfo {\n let $event = event as MouseEvent;\n let info = {\n shouldHandleEvent: false,\n href: null,\n anchor: null\n };\n\n let target = DefaultLinkHandler.findClosestAnchor($event.target as Element);\n if (!target || !DefaultLinkHandler.targetIsThisWindow(target)) {\n return info;\n }\n\n if (hasAttribute(target, 'download')\n || hasAttribute(target, 'router-ignore')\n || hasAttribute(target, 'data-router-ignore')\n ) {\n return info;\n }\n\n if ($event.altKey || $event.ctrlKey || $event.metaKey || $event.shiftKey) {\n return info;\n }\n\n let href = target.getAttribute('href');\n info.anchor = target;\n info.href = href;\n\n let leftButtonClicked = $event.which === 1;\n let isRelative = href && !(href.charAt(0) === '#' || (/^[a-z]+:/i).test(href));\n\n info.shouldHandleEvent = leftButtonClicked && isRelative;\n return info;\n }\n\n /**\n * Finds the closest ancestor that's an anchor element.\n *\n * @param el The element to search upward from.\n * @returns The link element that is the closest ancestor.\n */\n static findClosestAnchor(el: Element): Element {\n while (el) {\n if (el.tagName === 'A') {\n return el;\n }\n\n el = el.parentNode as Element;\n }\n }\n\n /**\n * Gets a value indicating whether or not an anchor targets the current window.\n *\n * @param target The anchor element whose target should be inspected.\n * @returns True if the target of the link element is this window; false otherwise.\n */\n static targetIsThisWindow(target: Element): boolean {\n let targetWindow = target.getAttribute('target');\n let win = PLATFORM.global;\n\n return !targetWindow ||\n targetWindow === win.name ||\n targetWindow === '_self';\n }\n}\n\nconst hasAttribute = (el: Element, attr: string) => el.hasAttribute(attr);\n","import { DOM, PLATFORM } from 'aurelia-pal';\nimport { LinkHandler } from './link-handler';\nimport { History } from 'aurelia-history';\n\n/**\n * An implementation of the basic history API.\n */\nexport class BrowserHistory extends History {\n /**@internal */\n static inject = [LinkHandler];\n\n /**@internal */\n _isActive: boolean;\n\n /**@internal*/\n _checkUrlCallback: any;\n /**@internal*/\n location: Location;\n /**@internal*/\n history: typeof PLATFORM['history'];\n /**@internal*/\n linkHandler: LinkHandler;\n /**@internal*/\n options: any;\n /**@internal*/\n root: string;\n /**@internal*/\n _wantsHashChange: boolean;\n /**@internal*/\n _hasPushState: boolean;\n /**@internal*/\n fragment: string;\n\n /**\n * Creates an instance of BrowserHistory\n * @param linkHandler An instance of LinkHandler.\n */\n constructor(linkHandler: LinkHandler) {\n super();\n\n this._isActive = false;\n this._checkUrlCallback = this._checkUrl.bind(this);\n\n this.location = PLATFORM.location;\n this.history = PLATFORM.history;\n this.linkHandler = linkHandler;\n }\n\n /**\n * Activates the history object.\n * @param options The set of options to activate history with.\n * @returns Whether or not activation occurred.\n */\n activate(options?: Object): boolean {\n if (this._isActive) {\n throw new Error('History has already been activated.');\n }\n\n let $history = this.history;\n let wantsPushState = !!(options as any).pushState;\n\n this._isActive = true;\n let normalizedOptions = this.options = Object.assign({}, { root: '/' }, this.options, options);\n\n // Normalize root to always include a leading and trailing slash.\n let rootUrl = this.root = ('/' + normalizedOptions.root + '/').replace(rootStripper, '/');\n\n let wantsHashChange = this._wantsHashChange = normalizedOptions.hashChange !== false;\n let hasPushState = this._hasPushState = !!(normalizedOptions.pushState && $history && $history.pushState);\n\n // Determine how we check the URL state.\n let eventName: string;\n if (hasPushState) {\n eventName = 'popstate';\n } else if (wantsHashChange) {\n eventName = 'hashchange';\n }\n\n PLATFORM.addEventListener(eventName, this._checkUrlCallback);\n\n // Determine if we need to change the base url, for a pushState link\n // opened by a non-pushState browser.\n if (wantsHashChange && wantsPushState) {\n // Transition from hashChange to pushState or vice versa if both are requested.\n let $location = this.location;\n let atRoot = $location.pathname.replace(/[^\\/]$/, '$&/') === rootUrl;\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!hasPushState && !atRoot) {\n let fragment = this.fragment = this._getFragment(null, true);\n $location.replace(rootUrl + $location.search + '#' + fragment);\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (hasPushState && atRoot && $location.hash) {\n let fragment = this.fragment = this._getHash().replace(routeStripper, '');\n $history.replaceState({}, DOM.title, rootUrl + fragment + $location.search);\n }\n }\n\n if (!this.fragment) {\n this.fragment = this._getFragment('');\n }\n\n this.linkHandler.activate(this);\n\n if (!normalizedOptions.silent) {\n return this._loadUrl('');\n }\n }\n\n /**\n * Deactivates the history object.\n */\n deactivate(): void {\n const handler = this._checkUrlCallback;\n PLATFORM.removeEventListener('popstate', handler);\n PLATFORM.removeEventListener('hashchange', handler);\n this._isActive = false;\n this.linkHandler.deactivate();\n }\n\n /**\n * Returns the fully-qualified root of the current history object.\n * @returns The absolute root of the application.\n */\n getAbsoluteRoot(): string {\n let $location = this.location;\n let origin = createOrigin($location.protocol, $location.hostname, $location.port);\n return `${origin}${this.root}`;\n }\n\n /**\n * Causes a history navigation to occur.\n *\n * @param fragment The history fragment to navigate to.\n * @param options The set of options that specify how the navigation should occur.\n * @return Promise if triggering navigation, otherwise true/false indicating if navigation occurred.\n */\n navigate(fragment?: string, {trigger = true, replace = false} = {}): boolean {\n let location = this.location;\n if (fragment && absoluteUrl.test(fragment)) {\n location.href = fragment;\n return true;\n }\n\n if (!this._isActive) {\n return false;\n }\n\n fragment = this._getFragment(fragment || '');\n\n if (this.fragment === fragment && !replace) {\n return false;\n }\n\n this.fragment = fragment;\n\n let url = this.root + fragment;\n\n // Don't include a trailing slash on the root.\n if (fragment === '' && url !== '/') {\n url = url.slice(0, -1);\n }\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._hasPushState) {\n url = url.replace('//', '/');\n this.history[replace ? 'replaceState' : 'pushState']({}, DOM.title, url);\n } else if (this._wantsHashChange) {\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n updateHash(location, fragment, replace);\n } else {\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n location.assign(url);\n }\n\n if (trigger) {\n return this._loadUrl(fragment);\n }\n\n return true;\n }\n\n /**\n * Causes the history state to navigate back.\n */\n navigateBack(): void {\n this.history.back();\n }\n\n /**\n * Sets the document title.\n */\n setTitle(title: string): void {\n DOM.title = title;\n }\n\n /**\n * Sets a key in the history page state.\n * @param key The key for the value.\n * @param value The value to set.\n */\n setState(key: string, value: any): void {\n let $history = this.history;\n let state = Object.assign({}, $history.state);\n let { pathname, search, hash } = this.location;\n state[key] = value;\n $history.replaceState(state, null, `${pathname}${search}${hash}`);\n }\n\n /**\n * Gets a key in the history page state.\n * @param key The key for the value.\n * @return The value for the key.\n */\n getState(key: string): any {\n let state = Object.assign({}, this.history.state);\n return state[key];\n }\n\n /**\n * Returns the current index in the navigation history.\n * @returns The current index.\n */\n getHistoryIndex(): number {\n let historyIndex = this.getState('HistoryIndex');\n if (historyIndex === undefined) {\n historyIndex = this.history.length - 1;\n this.setState('HistoryIndex', historyIndex);\n }\n return historyIndex;\n }\n\n /**\n * Move to a specific position in the navigation history.\n * @param movement The amount of steps, positive or negative, to move.\n */\n go(movement: number): void {\n this.history.go(movement);\n }\n\n /**\n * @internal\n */\n _getHash(): string {\n return this.location.hash.substr(1);\n }\n\n /**\n * @internal\n */\n _getFragment(fragment: string, forcePushState?: boolean): string {\n let rootUrl: string;\n\n if (!fragment) {\n if (this._hasPushState || !this._wantsHashChange || forcePushState) {\n let location = this.location;\n fragment = location.pathname + location.search;\n rootUrl = this.root.replace(trailingSlash, '');\n if (!fragment.indexOf(rootUrl)) {\n fragment = fragment.substr(rootUrl.length);\n }\n } else {\n fragment = this._getHash();\n }\n }\n\n return '/' + fragment.replace(routeStripper, '');\n }\n\n /**\n * Url change handler.\n * Invoked when current fragment is different with previous fragment\n * @internal\n */\n _checkUrl(): void {\n let current = this._getFragment('');\n if (current !== this.fragment) {\n this._loadUrl('');\n }\n }\n\n /**\n * invoke routeHandler\n * @internal\n */\n _loadUrl(fragmentOverride: string): boolean {\n let fragment = this.fragment = this._getFragment(fragmentOverride);\n\n return this.options.routeHandler ?\n this.options.routeHandler(fragment) :\n false;\n }\n}\n\n// Cached regex for stripping a leading hash/slash and trailing space.\nconst routeStripper = /^#?\\/*|\\s+$/g;\n\n// Cached regex for stripping leading and trailing slashes.\nconst rootStripper = /^\\/+|\\/+$/g;\n\n// Cached regex for removing a trailing slash.\nconst trailingSlash = /\\/$/;\n\n// Cached regex for detecting if a URL is absolute,\n// i.e., starts with a scheme or is scheme-relative.\n// See http://www.ietf.org/rfc/rfc2396.txt section 3.1 for valid scheme format\nconst absoluteUrl = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\n\n// Update the hash location, either replacing the current entry, or adding\n// a new one to the browser history.\nfunction updateHash($location: Location, fragment: string, replace: boolean) {\n if (replace) {\n let href = $location.href.replace(/(javascript:|#).*$/, '');\n $location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n $location.hash = '#' + fragment;\n }\n}\n\nfunction createOrigin(protocol: string, hostname: string, port: string) {\n return `${protocol}//${hostname}${port ? ':' + port : ''}`;\n}\n","import {History} from 'aurelia-history';\nimport {LinkHandler, DefaultLinkHandler} from './link-handler';\nimport { BrowserHistory } from './browser-history';\n\n/**\n * Configures the plugin by registering BrowserHistory as the implementation of History in the DI container.\n * @param config The FrameworkConfiguration object provided by Aurelia.\n */\nexport function configure(config: Object): void {\n // work around for converting to TS without breaking compat\n const $config = config as any;\n $config.singleton(History, BrowserHistory);\n $config.transient(LinkHandler, DefaultLinkHandler);\n}\n\nexport {\n LinkHandler,\n DefaultLinkHandler,\n BrowserHistory\n};\n",null,"import { ViewPortInstruction, RouteConfig, ViewPort, LifecycleArguments, ViewPortComponent } from './interfaces';\nimport { Router } from './router';\nimport { ActivationStrategyType, InternalActivationStrategy } from './activation-strategy';\n\n/**\n * Initialization options for a navigation instruction\n */\nexport interface NavigationInstructionInit {\n fragment: string;\n queryString?: string;\n params?: Record;\n queryParams?: Record;\n config: RouteConfig;\n parentInstruction?: NavigationInstruction;\n previousInstruction?: NavigationInstruction;\n router: Router;\n options?: Object;\n plan?: Record;\n}\n\nexport interface ViewPortInstructionInit {\n name: string;\n strategy: ActivationStrategyType;\n moduleId: string;\n component: ViewPortComponent;\n}\n\n/**\n * Class used to represent an instruction during a navigation.\n */\nexport class NavigationInstruction {\n /**\n * The URL fragment.\n */\n fragment: string;\n\n /**\n * The query string.\n */\n queryString: string;\n\n /**\n * Parameters extracted from the route pattern.\n */\n params: any;\n\n /**\n * Parameters extracted from the query string.\n */\n queryParams: any;\n\n /**\n * The route config for the route matching this instruction.\n */\n config: RouteConfig;\n\n /**\n * The parent instruction, if this instruction was created by a child router.\n */\n parentInstruction: NavigationInstruction;\n\n parentCatchHandler: any;\n\n /**\n * The instruction being replaced by this instruction in the current router.\n */\n previousInstruction: NavigationInstruction;\n\n /**\n * viewPort instructions to used activation.\n */\n viewPortInstructions: Record;\n\n /**\n * The router instance.\n */\n router: Router;\n\n /**\n * Current built viewport plan of this nav instruction\n */\n plan: Record = null;\n\n options: Record = {};\n\n /**@internal */\n lifecycleArgs: LifecycleArguments;\n /**@internal */\n resolve?: (val?: any) => void;\n\n constructor(init: NavigationInstructionInit) {\n Object.assign(this, init);\n\n this.params = this.params || {};\n this.viewPortInstructions = {};\n\n let ancestorParams = [];\n let current: NavigationInstruction = this;\n do {\n let currentParams = Object.assign({}, current.params);\n if (current.config && current.config.hasChildRouter) {\n // remove the param for the injected child route segment\n delete currentParams[current.getWildCardName()];\n }\n\n ancestorParams.unshift(currentParams);\n current = current.parentInstruction;\n } while (current);\n\n let allParams = Object.assign({}, this.queryParams, ...ancestorParams);\n this.lifecycleArgs = [allParams, this.config, this];\n }\n\n /**\n * Gets an array containing this instruction and all child instructions for the current navigation.\n */\n getAllInstructions(): Array {\n let instructions: NavigationInstruction[] = [this];\n let viewPortInstructions: Record = this.viewPortInstructions;\n\n for (let key in viewPortInstructions) {\n let childInstruction = viewPortInstructions[key].childNavigationInstruction;\n if (childInstruction) {\n instructions.push(...childInstruction.getAllInstructions());\n }\n }\n\n return instructions;\n }\n\n /**\n * Gets an array containing the instruction and all child instructions for the previous navigation.\n * Previous instructions are no longer available after navigation completes.\n */\n getAllPreviousInstructions(): Array {\n return this.getAllInstructions().map(c => c.previousInstruction).filter(c => c);\n }\n\n /**\n * Adds a viewPort instruction. Returns the newly created instruction based on parameters\n */\n addViewPortInstruction(initOptions: ViewPortInstructionInit): /*ViewPortInstruction*/ any;\n addViewPortInstruction(viewPortName: string, strategy: ActivationStrategyType, moduleId: string, component: any): /*ViewPortInstruction*/ any;\n addViewPortInstruction(\n nameOrInitOptions: string | ViewPortInstructionInit,\n strategy?: ActivationStrategyType,\n moduleId?: string,\n component?: any\n ): /*ViewPortInstruction*/ any {\n\n let viewPortInstruction: ViewPortInstruction;\n let viewPortName = typeof nameOrInitOptions === 'string' ? nameOrInitOptions : nameOrInitOptions.name;\n const lifecycleArgs = this.lifecycleArgs;\n const config: RouteConfig = Object.assign({}, lifecycleArgs[1], { currentViewPort: viewPortName });\n\n if (typeof nameOrInitOptions === 'string') {\n viewPortInstruction = {\n name: nameOrInitOptions,\n strategy: strategy,\n moduleId: moduleId,\n component: component,\n childRouter: component.childRouter,\n lifecycleArgs: [lifecycleArgs[0], config, lifecycleArgs[2]] as LifecycleArguments\n };\n } else {\n viewPortInstruction = {\n name: viewPortName,\n strategy: nameOrInitOptions.strategy,\n component: nameOrInitOptions.component,\n moduleId: nameOrInitOptions.moduleId,\n childRouter: nameOrInitOptions.component.childRouter,\n lifecycleArgs: [lifecycleArgs[0], config, lifecycleArgs[2]] as LifecycleArguments\n };\n }\n\n return this.viewPortInstructions[viewPortName] = viewPortInstruction;\n }\n\n /**\n * Gets the name of the route pattern's wildcard parameter, if applicable.\n */\n getWildCardName(): string {\n // todo: potential issue, or at least unsafe typings\n let configRoute = this.config.route as string;\n let wildcardIndex = configRoute.lastIndexOf('*');\n return configRoute.substr(wildcardIndex + 1);\n }\n\n /**\n * Gets the path and query string created by filling the route\n * pattern's wildcard parameter with the matching param.\n */\n getWildcardPath(): string {\n let wildcardName = this.getWildCardName();\n let path = this.params[wildcardName] || '';\n let queryString = this.queryString;\n\n if (queryString) {\n path += '?' + queryString;\n }\n\n return path;\n }\n\n /**\n * Gets the instruction's base URL, accounting for wildcard route parameters.\n */\n getBaseUrl(): string {\n let $encodeURI = encodeURI;\n let fragment = decodeURI(this.fragment);\n\n if (fragment === '') {\n let nonEmptyRoute = this.router.routes.find(route => {\n return route.name === this.config.name &&\n route.route !== '';\n });\n if (nonEmptyRoute) {\n fragment = nonEmptyRoute.route as any;\n }\n }\n\n if (!this.params) {\n return $encodeURI(fragment);\n }\n\n let wildcardName = this.getWildCardName();\n let path = this.params[wildcardName] || '';\n\n if (!path) {\n return $encodeURI(fragment);\n }\n\n return $encodeURI(fragment.substr(0, fragment.lastIndexOf(path)));\n }\n\n /**\n * Finalize a viewport instruction\n * @internal\n */\n _commitChanges(waitToSwap: boolean): Promise {\n let router = this.router;\n router.currentInstruction = this;\n\n const previousInstruction = this.previousInstruction;\n if (previousInstruction) {\n previousInstruction.config.navModel.isActive = false;\n }\n\n this.config.navModel.isActive = true;\n\n router.refreshNavigation();\n\n let loads: Promise[] = [];\n let delaySwaps: ISwapPlan[] = [];\n let viewPortInstructions: Record = this.viewPortInstructions;\n\n for (let viewPortName in viewPortInstructions) {\n let viewPortInstruction = viewPortInstructions[viewPortName];\n let viewPort = router.viewPorts[viewPortName];\n\n if (!viewPort) {\n throw new Error(`There was no router-view found in the view for ${viewPortInstruction.moduleId}.`);\n }\n\n let childNavInstruction = viewPortInstruction.childNavigationInstruction;\n if (viewPortInstruction.strategy === InternalActivationStrategy.Replace) {\n if (childNavInstruction && childNavInstruction.parentCatchHandler) {\n loads.push(childNavInstruction._commitChanges(waitToSwap));\n } else {\n if (waitToSwap) {\n delaySwaps.push({ viewPort, viewPortInstruction });\n }\n loads.push(\n viewPort\n .process(viewPortInstruction, waitToSwap)\n .then(() => childNavInstruction\n ? childNavInstruction._commitChanges(waitToSwap)\n : Promise.resolve()\n )\n );\n }\n } else {\n if (childNavInstruction) {\n loads.push(childNavInstruction._commitChanges(waitToSwap));\n }\n }\n }\n\n return Promise\n .all(loads)\n .then(() => {\n delaySwaps.forEach(x => x.viewPort.swap(x.viewPortInstruction));\n return null;\n })\n .then(() => prune(this));\n }\n\n /**@internal */\n _updateTitle(): void {\n let router = this.router;\n let title = this._buildTitle(router.titleSeparator);\n if (title) {\n router.history.setTitle(title);\n }\n }\n\n /**@internal */\n _buildTitle(separator: string = ' | '): string {\n let title = '';\n let childTitles = [];\n let navModelTitle = this.config.navModel.title;\n let instructionRouter = this.router;\n let viewPortInstructions: Record = this.viewPortInstructions;\n\n if (navModelTitle) {\n title = instructionRouter.transformTitle(navModelTitle);\n }\n\n for (let viewPortName in viewPortInstructions) {\n let viewPortInstruction = viewPortInstructions[viewPortName];\n let child_nav_instruction = viewPortInstruction.childNavigationInstruction;\n\n if (child_nav_instruction) {\n let childTitle = child_nav_instruction._buildTitle(separator);\n if (childTitle) {\n childTitles.push(childTitle);\n }\n }\n }\n\n if (childTitles.length) {\n title = childTitles.join(separator) + (title ? separator : '') + title;\n }\n\n if (instructionRouter.title) {\n title += (title ? separator : '') + instructionRouter.transformTitle(instructionRouter.title);\n }\n\n return title;\n }\n}\n\nconst prune = (instruction: NavigationInstruction): void => {\n instruction.previousInstruction = null;\n instruction.plan = null;\n};\n\ninterface ISwapPlan {\n viewPort: ViewPort;\n viewPortInstruction: ViewPortInstruction;\n}\n","import { Router } from './router';\nimport { RouteConfig } from './interfaces';\n\n/**\n* Class for storing and interacting with a route's navigation settings.\n*/\nexport class NavModel {\n\n /**\n * True if this nav item is currently active.\n */\n isActive: boolean = false;\n\n /**\n * The title.\n */\n title: string = null;\n\n /**\n * This nav item's absolute href.\n */\n href: string = null;\n\n /**\n * This nav item's relative href.\n */\n relativeHref: string = null;\n\n /**\n * Data attached to the route at configuration time.\n */\n settings: any = {};\n\n /**\n * The route config.\n */\n config: RouteConfig = null;\n\n /**\n * The router associated with this navigation model.\n */\n router: Router;\n\n order: number | boolean;\n\n constructor(router: Router, relativeHref: string) {\n this.router = router;\n this.relativeHref = relativeHref;\n }\n\n /**\n * Sets the route's title and updates document.title.\n * If the a navigation is in progress, the change will be applied\n * to document.title when the navigation completes.\n *\n * @param title The new title.\n */\n setTitle(title: string): void {\n this.title = title;\n\n if (this.isActive) {\n this.router.updateTitle();\n }\n }\n}\n",null,"import { RouteConfig, PipelineStep, RouteConfigSpecifier } from './interfaces';\nimport { _ensureArrayWithSingleRoutePerConfig } from './util';\nimport { Router } from './router';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { PipelineSlotName } from './pipeline-slot-name';\n\n/**\n * Class used to configure a [[Router]] instance.\n *\n * @constructor\n */\nexport class RouterConfiguration {\n instructions: Array<(router: Router) => void> = [];\n options: {\n [key: string]: any;\n compareQueryParams?: boolean;\n root?: string;\n pushState?: boolean;\n hashChange?: boolean;\n silent?: boolean;\n } = {};\n pipelineSteps: Array<{ name: string, step: Function | PipelineStep }> = [];\n title: string;\n titleSeparator: string;\n unknownRouteConfig: RouteConfigSpecifier;\n viewPortDefaults: Record;\n\n /**@internal */\n _fallbackRoute: string;\n\n /**\n * Adds a step to be run during the [[Router]]'s navigation pipeline.\n *\n * @param name The name of the pipeline slot to insert the step into.\n * @param step The pipeline step.\n * @chainable\n */\n addPipelineStep(name: string, step: Function | PipelineStep): RouterConfiguration {\n if (step === null || step === undefined) {\n throw new Error('Pipeline step cannot be null or undefined.');\n }\n this.pipelineSteps.push({ name, step });\n return this;\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s authorize pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addAuthorizeStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.Authorize, step);\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s preActivate pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addPreActivateStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.PreActivate, step);\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s preRender pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addPreRenderStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.PreRender, step);\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s postRender pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addPostRenderStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.PostRender, step);\n }\n\n /**\n * Configures a route that will be used if there is no previous location available on navigation cancellation.\n *\n * @param fragment The URL fragment to use as the navigation destination.\n * @chainable\n */\n fallbackRoute(fragment: string): RouterConfiguration {\n this._fallbackRoute = fragment;\n return this;\n }\n\n /**\n * Maps one or more routes to be registered with the router.\n *\n * @param route The [[RouteConfig]] to map, or an array of [[RouteConfig]] to map.\n * @chainable\n */\n map(route: RouteConfig | RouteConfig[]): RouterConfiguration {\n if (Array.isArray(route)) {\n route.forEach(r => this.map(r));\n return this;\n }\n\n return this.mapRoute(route);\n }\n\n /**\n * Configures defaults to use for any view ports.\n *\n * @param viewPortConfig a view port configuration object to use as a\n * default, of the form { viewPortName: { moduleId } }.\n * @chainable\n */\n useViewPortDefaults(viewPortConfig: Record): RouterConfiguration {\n this.viewPortDefaults = viewPortConfig;\n return this;\n }\n\n /**\n * Maps a single route to be registered with the router.\n *\n * @param route The [[RouteConfig]] to map.\n * @chainable\n */\n mapRoute(config: RouteConfig): RouterConfiguration {\n this.instructions.push(router => {\n let routeConfigs = _ensureArrayWithSingleRoutePerConfig(config);\n\n let navModel;\n for (let i = 0, ii = routeConfigs.length; i < ii; ++i) {\n let routeConfig = routeConfigs[i];\n routeConfig.settings = routeConfig.settings || {};\n if (!navModel) {\n navModel = router.createNavModel(routeConfig);\n }\n\n router.addRoute(routeConfig, navModel);\n }\n });\n\n return this;\n }\n\n /**\n * Registers an unknown route handler to be run when the URL fragment doesn't match any registered routes.\n *\n * @param config A string containing a moduleId to load, or a [[RouteConfig]], or a function that takes the\n * [[NavigationInstruction]] and selects a moduleId to load.\n * @chainable\n */\n mapUnknownRoutes(config: RouteConfigSpecifier): RouterConfiguration {\n this.unknownRouteConfig = config;\n return this;\n }\n\n /**\n * Applies the current configuration to the specified [[Router]].\n *\n * @param router The [[Router]] to apply the configuration to.\n */\n exportToRouter(router: Router): void {\n let instructions = this.instructions;\n for (let i = 0, ii = instructions.length; i < ii; ++i) {\n instructions[i](router);\n }\n\n let { title, titleSeparator, unknownRouteConfig, _fallbackRoute, viewPortDefaults } = this;\n\n if (title) {\n router.title = title;\n }\n\n if (titleSeparator) {\n router.titleSeparator = titleSeparator;\n }\n\n if (unknownRouteConfig) {\n router.handleUnknownRoutes(unknownRouteConfig);\n }\n\n if (_fallbackRoute) {\n router.fallbackRoute = _fallbackRoute;\n }\n\n if (viewPortDefaults) {\n router.useViewPortDefaults(viewPortDefaults);\n }\n\n Object.assign(router.options, this.options);\n\n let pipelineSteps = this.pipelineSteps;\n let pipelineStepCount = pipelineSteps.length;\n if (pipelineStepCount) {\n if (!router.isRoot) {\n throw new Error('Pipeline steps can only be added to the root router');\n }\n\n let pipelineProvider = router.pipelineProvider;\n for (let i = 0, ii = pipelineStepCount; i < ii; ++i) {\n let { name, step } = pipelineSteps[i];\n pipelineProvider.addStep(name, step);\n }\n }\n }\n}\n","import { RouteRecognizer, RouteHandler, ConfigurableRoute, State, RecognizedRoute } from 'aurelia-route-recognizer';\nimport { Container } from 'aurelia-dependency-injection';\nimport { History, NavigationOptions } from 'aurelia-history';\nimport { NavigationInstruction, NavigationInstructionInit } from './navigation-instruction';\nimport { NavModel } from './nav-model';\nimport { RouterConfiguration } from './router-configuration';\nimport {\n _ensureArrayWithSingleRoutePerConfig,\n _normalizeAbsolutePath,\n _createRootedPath,\n _resolveUrl\n} from './util';\nimport { RouteConfig, RouteConfigSpecifier, ViewPortInstruction } from './interfaces';\nimport { PipelineProvider } from './pipeline-provider';\n\n/**@internal */\ndeclare module 'aurelia-history' {\n interface History {\n // This is wrong, as it's an implementation detail from aurelia-history-browser\n // but we are poking it in here so probably will need to make it official in `aurelia-history`\n /**\n * A private flag of Aurelia History implementation to indicate if push state should be used\n */\n _hasPushState: boolean;\n\n previousLocation: string;\n }\n}\n\n/**@internal */\ndeclare module 'aurelia-route-recognizer' {\n interface State {\n types: {\n dynamics: DynamicSegment;\n stars: StarSegment;\n };\n }\n\n interface RouteHandler {\n navigationStrategy?: (instruction: NavigationInstruction) => any;\n }\n\n interface RecognizedRoute {\n config?: RouteConfig;\n queryParams?: Record;\n }\n}\n\ntype RouterConfigurationResolution = RouterConfiguration | ((cfg: RouterConfiguration) => void | RouterConfiguration | Promise);\n\n/**\n * The primary class responsible for handling routing and navigation.\n */\nexport class Router {\n\n /**\n * Container associated with this router. Also used to create child container for creating child router.\n */\n container: Container;\n\n /**\n * History instance of Aurelia abstract class for wrapping platform history global object\n */\n history: History;\n\n /**\n * A registry of registered viewport. Will be used to handle process navigation instruction route loading\n * and dom swapping\n */\n viewPorts: Record;\n\n /**\n * List of route configs registered with this router\n */\n routes: RouteConfig[];\n\n /**\n * The [[Router]]'s current base URL, typically based on the [[Router.currentInstruction]].\n */\n baseUrl: string;\n\n /**\n * If defined, used in generation of document title for [[Router]]'s routes.\n */\n title: string | undefined;\n\n /**\n * The separator used in the document title between [[Router]]'s routes.\n */\n titleSeparator: string | undefined;\n\n /**\n * True if the [[Router]] has been configured.\n */\n isConfigured: boolean;\n\n /**\n * True if the [[Router]] is currently processing a navigation.\n */\n isNavigating: boolean;\n\n /**\n * True if the [[Router]] is navigating due to explicit call to navigate function(s).\n */\n isExplicitNavigation: boolean;\n\n /**\n * True if the [[Router]] is navigating due to explicit call to navigateBack function.\n */\n isExplicitNavigationBack: boolean;\n\n /**\n * True if the [[Router]] is navigating into the app for the first time in the browser session.\n */\n isNavigatingFirst: boolean;\n\n /**\n * True if the [[Router]] is navigating to a page instance not in the browser session history.\n */\n isNavigatingNew: boolean;\n\n /**\n * True if the [[Router]] is navigating forward in the browser session history.\n */\n isNavigatingForward: boolean;\n\n /**\n * True if the [[Router]] is navigating back in the browser session history.\n */\n isNavigatingBack: boolean;\n\n /**\n * True if the [[Router]] is navigating due to a browser refresh.\n */\n isNavigatingRefresh: boolean;\n\n /**\n * True if the previous instruction successfully completed the CanDeactivatePreviousStep in the current navigation.\n */\n couldDeactivate: boolean;\n\n /**\n * The currently active navigation tracker.\n */\n currentNavigationTracker: number;\n\n /**\n * The navigation models for routes that specified [[RouteConfig.nav]].\n */\n navigation: NavModel[];\n\n /**\n * The currently active navigation instruction.\n */\n currentInstruction: NavigationInstruction;\n\n /**\n * The parent router, or null if this instance is not a child router.\n */\n parent: Router = null;\n\n options: any = {};\n\n /**\n * The defaults used when a viewport lacks specified content\n */\n viewPortDefaults: Record = {};\n\n /**@internal */\n catchAllHandler: (instruction: NavigationInstruction) => NavigationInstruction | Promise;\n /**@internal */\n fallbackRoute: string;\n /**@internal */\n pipelineProvider: PipelineProvider;\n /**@internal */\n _fallbackOrder: number;\n /**@internal */\n _recognizer: RouteRecognizer;\n /**@internal */\n _childRecognizer: RouteRecognizer;\n /**@internal */\n _configuredPromise: Promise;\n /**@internal */\n _resolveConfiguredPromise: (value?: any) => void;\n\n /**\n * Extension point to transform the document title before it is built and displayed.\n * By default, child routers delegate to the parent router, and the app router\n * returns the title unchanged.\n */\n transformTitle: (title: string) => string = (title: string) => {\n if (this.parent) {\n return this.parent.transformTitle(title);\n }\n return title;\n }\n\n /**\n * @param container The [[Container]] to use when child routers.\n * @param history The [[History]] implementation to delegate navigation requests to.\n */\n constructor(container: Container, history: History) {\n this.container = container;\n this.history = history;\n this.reset();\n }\n\n /**\n * Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\n * Use with caution (actually, avoid using this). Do not use this to simply change your navigation model.\n */\n reset() {\n this.viewPorts = {};\n this.routes = [];\n this.baseUrl = '';\n this.isConfigured = false;\n this.isNavigating = false;\n this.isExplicitNavigation = false;\n this.isExplicitNavigationBack = false;\n this.isNavigatingFirst = false;\n this.isNavigatingNew = false;\n this.isNavigatingRefresh = false;\n this.isNavigatingForward = false;\n this.isNavigatingBack = false;\n this.couldDeactivate = false;\n this.navigation = [];\n this.currentInstruction = null;\n this.viewPortDefaults = {};\n this._fallbackOrder = 100;\n this._recognizer = new RouteRecognizer();\n this._childRecognizer = new RouteRecognizer();\n this._configuredPromise = new Promise(resolve => {\n this._resolveConfiguredPromise = resolve;\n });\n }\n\n /**\n * Gets a value indicating whether or not this [[Router]] is the root in the router tree. I.e., it has no parent.\n */\n get isRoot(): boolean {\n return !this.parent;\n }\n\n /**\n * Registers a viewPort to be used as a rendering target for activated routes.\n *\n * @param viewPort The viewPort.\n * @param name The name of the viewPort. 'default' if unspecified.\n */\n registerViewPort(viewPort: /*ViewPort*/any, name?: string): void {\n name = name || 'default';\n this.viewPorts[name] = viewPort;\n }\n\n /**\n * Returns a Promise that resolves when the router is configured.\n */\n ensureConfigured(): Promise {\n return this._configuredPromise;\n }\n\n /**\n * Configures the router.\n *\n * @param callbackOrConfig The [[RouterConfiguration]] or a callback that takes a [[RouterConfiguration]].\n */\n configure(callbackOrConfig: RouterConfiguration | ((config: RouterConfiguration) => RouterConfiguration)): Promise {\n this.isConfigured = true;\n\n let result: RouterConfigurationResolution = callbackOrConfig as RouterConfiguration;\n let config: RouterConfiguration;\n if (typeof callbackOrConfig === 'function') {\n config = new RouterConfiguration();\n result = callbackOrConfig(config);\n }\n\n return Promise\n .resolve(result)\n .then((c) => {\n if (c && (c as RouterConfiguration).exportToRouter) {\n config = c;\n }\n\n config.exportToRouter(this);\n this.isConfigured = true;\n this._resolveConfiguredPromise();\n });\n }\n\n /**\n * Navigates to a new location.\n *\n * @param fragment The URL fragment to use as the navigation destination.\n * @param options The navigation options.\n */\n navigate(fragment: string, options?: NavigationOptions): boolean {\n if (!this.isConfigured && this.parent) {\n return this.parent.navigate(fragment, options);\n }\n\n this.isExplicitNavigation = true;\n return this.history.navigate(_resolveUrl(fragment, this.baseUrl, this.history._hasPushState), options);\n }\n\n /**\n * Navigates to a new location corresponding to the route and params specified. Equivallent to [[Router.generate]] followed\n * by [[Router.navigate]].\n *\n * @param route The name of the route to use when generating the navigation location.\n * @param params The route parameters to be used when populating the route pattern.\n * @param options The navigation options.\n */\n navigateToRoute(route: string, params?: any, options?: NavigationOptions): boolean {\n let path = this.generate(route, params);\n return this.navigate(path, options);\n }\n\n /**\n * Navigates back to the most recent location in history.\n */\n navigateBack(): void {\n this.isExplicitNavigationBack = true;\n this.history.navigateBack();\n }\n\n /**\n * Creates a child router of the current router.\n *\n * @param container The [[Container]] to provide to the child router. Uses the current [[Router]]'s [[Container]] if unspecified.\n * @returns {Router} The new child Router.\n */\n createChild(container?: Container): Router {\n let childRouter = new Router(container || this.container.createChild(), this.history);\n childRouter.parent = this;\n return childRouter;\n }\n\n /**\n * Generates a URL fragment matching the specified route pattern.\n *\n * @param name The name of the route whose pattern should be used to generate the fragment.\n * @param params The route params to be used to populate the route pattern.\n * @param options If options.absolute = true, then absolute url will be generated; otherwise, it will be relative url.\n * @returns {string} A string containing the generated URL fragment.\n */\n generate(nameOrRoute: string | RouteConfig, params: any = {}, options: any = {}): string {\n // A child recognizer generates routes for potential child routes. Any potential child route is added\n // to the childRoute property of params for the childRouter to recognize. When generating routes, we\n // use the childRecognizer when childRoute params are available to generate a child router enabled route.\n let recognizer = 'childRoute' in params ? this._childRecognizer : this._recognizer;\n let hasRoute = recognizer.hasRoute(nameOrRoute as string | RouteHandler);\n if (!hasRoute) {\n if (this.parent) {\n return this.parent.generate(nameOrRoute, params, options);\n }\n throw new Error(`A route with name '${nameOrRoute}' could not be found. Check that \\`name: '${nameOrRoute}'\\` was specified in the route's config.`);\n }\n let path = recognizer.generate(nameOrRoute as string | RouteHandler, params);\n let rootedPath = _createRootedPath(path, this.baseUrl, this.history._hasPushState, options.absolute);\n return options.absolute ? `${this.history.getAbsoluteRoot()}${rootedPath}` : rootedPath;\n }\n\n /**\n * Creates a [[NavModel]] for the specified route config.\n *\n * @param config The route config.\n */\n createNavModel(config: RouteConfig): NavModel {\n let navModel = new NavModel(\n this,\n 'href' in config\n ? config.href\n // potential error when config.route is a string[] ?\n : config.route as string);\n navModel.title = config.title;\n navModel.order = config.nav;\n navModel.href = config.href;\n navModel.settings = config.settings;\n navModel.config = config;\n\n return navModel;\n }\n\n /**\n * Registers a new route with the router.\n *\n * @param config The [[RouteConfig]].\n * @param navModel The [[NavModel]] to use for the route. May be omitted for single-pattern routes.\n */\n addRoute(config: RouteConfig, navModel?: NavModel): void {\n if (Array.isArray(config.route)) {\n let routeConfigs = _ensureArrayWithSingleRoutePerConfig(config);\n // the following is wrong. todo: fix this after TS refactoring release\n routeConfigs.forEach(this.addRoute.bind(this));\n return;\n }\n\n validateRouteConfig(config);\n\n if (!('viewPorts' in config) && !config.navigationStrategy) {\n config.viewPorts = {\n 'default': {\n moduleId: config.moduleId,\n view: config.view\n }\n };\n }\n\n if (!navModel) {\n navModel = this.createNavModel(config);\n }\n\n this.routes.push(config);\n\n let path = config.route;\n if (path.charAt(0) === '/') {\n path = path.substr(1);\n }\n let caseSensitive = config.caseSensitive === true;\n let state: State = this._recognizer.add({\n path: path,\n handler: config as RouteHandler,\n caseSensitive: caseSensitive\n } as ConfigurableRoute);\n\n if (path) {\n let settings = config.settings;\n delete config.settings;\n let withChild = JSON.parse(JSON.stringify(config));\n config.settings = settings;\n withChild.route = `${path}/*childRoute`;\n withChild.hasChildRouter = true;\n this._childRecognizer.add({\n path: withChild.route,\n handler: withChild,\n caseSensitive: caseSensitive\n });\n\n withChild.navModel = navModel;\n withChild.settings = config.settings;\n withChild.navigationStrategy = config.navigationStrategy;\n }\n\n config.navModel = navModel;\n\n let navigation = this.navigation;\n\n if ((navModel.order || navModel.order === 0) && navigation.indexOf(navModel) === -1) {\n if ((!navModel.href && navModel.href !== '') && (state.types.dynamics || state.types.stars)) {\n throw new Error('Invalid route config for \"' + config.route + '\" : dynamic routes must specify an \"href:\" to be included in the navigation model.');\n }\n\n if (typeof navModel.order !== 'number') {\n navModel.order = ++this._fallbackOrder;\n }\n\n navigation.push(navModel);\n // this is a potential error / inconsistency between browsers\n //\n // MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort\n // If compareFunction(a, b) returns 0, leave a and b unchanged with respect to each other,\n // but sorted with respect to all different elements.\n // Note: the ECMAscript standard does not guarantee this behaviour,\n // and thus not all browsers (e.g. Mozilla versions dating back to at least 2003) respect this.\n navigation.sort((a, b) => a.order - b.order);\n }\n }\n\n /**\n * Gets a value indicating whether or not this [[Router]] or one of its ancestors has a route registered with the specified name.\n *\n * @param name The name of the route to check.\n */\n hasRoute(name: string): boolean {\n return !!(this._recognizer.hasRoute(name) || this.parent && this.parent.hasRoute(name));\n }\n\n /**\n * Gets a value indicating whether or not this [[Router]] has a route registered with the specified name.\n *\n * @param name The name of the route to check.\n */\n hasOwnRoute(name: string): boolean {\n return this._recognizer.hasRoute(name);\n }\n\n /**\n * Register a handler to use when the incoming URL fragment doesn't match any registered routes.\n *\n * @param config The moduleId, or a function that selects the moduleId, or a [[RouteConfig]].\n */\n handleUnknownRoutes(config?: RouteConfigSpecifier): void {\n if (!config) {\n throw new Error('Invalid unknown route handler');\n }\n\n this.catchAllHandler = instruction => {\n return this\n ._createRouteConfig(config, instruction)\n .then(c => {\n instruction.config = c;\n return instruction;\n });\n };\n }\n\n /**\n * Updates the document title using the current navigation instruction.\n */\n updateTitle(): void {\n let parentRouter = this.parent;\n if (parentRouter) {\n return parentRouter.updateTitle();\n }\n\n let currentInstruction = this.currentInstruction;\n if (currentInstruction) {\n currentInstruction._updateTitle();\n }\n return undefined;\n }\n\n /**\n * Updates the navigation routes with hrefs relative to the current location.\n * Note: This method will likely move to a plugin in a future release.\n */\n refreshNavigation(): void {\n let nav = this.navigation;\n\n for (let i = 0, length = nav.length; i < length; i++) {\n let current = nav[i];\n if (!current.config.href) {\n current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState);\n } else {\n current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState);\n }\n }\n }\n\n /**\n * Sets the default configuration for the view ports. This specifies how to\n * populate a view port for which no module is specified. The default is\n * an empty view/view-model pair.\n */\n useViewPortDefaults($viewPortDefaults: Record): void {\n // a workaround to have strong typings while not requiring to expose interface ViewPortInstruction\n let viewPortDefaults: Record = $viewPortDefaults;\n for (let viewPortName in viewPortDefaults) {\n let viewPortConfig = viewPortDefaults[viewPortName];\n this.viewPortDefaults[viewPortName] = {\n moduleId: viewPortConfig.moduleId\n };\n }\n }\n\n /**@internal */\n _refreshBaseUrl(): void {\n let parentRouter = this.parent;\n if (parentRouter) {\n this.baseUrl = generateBaseUrl(parentRouter, parentRouter.currentInstruction);\n }\n }\n\n /**@internal */\n _createNavigationInstruction(url: string = '', parentInstruction: NavigationInstruction = null): Promise {\n let fragment = url;\n let queryString = '';\n\n let queryIndex = url.indexOf('?');\n if (queryIndex !== -1) {\n fragment = url.substr(0, queryIndex);\n queryString = url.substr(queryIndex + 1);\n }\n\n let urlRecognizationResults = this._recognizer.recognize(url) as IRouteRecognizationResults;\n if (!urlRecognizationResults || !urlRecognizationResults.length) {\n urlRecognizationResults = this._childRecognizer.recognize(url) as IRouteRecognizationResults;\n }\n\n let instructionInit: NavigationInstructionInit = {\n fragment,\n queryString,\n config: null,\n parentInstruction,\n previousInstruction: this.currentInstruction,\n router: this,\n options: {\n compareQueryParams: this.options.compareQueryParams\n }\n };\n\n let result: Promise;\n\n if (urlRecognizationResults && urlRecognizationResults.length) {\n let first = urlRecognizationResults[0];\n let instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: first.params,\n queryParams: first.queryParams || urlRecognizationResults.queryParams,\n config: first.config || first.handler\n }));\n\n if (typeof first.handler === 'function') {\n result = evaluateNavigationStrategy(instruction, first.handler, first);\n } else if (first.handler && typeof first.handler.navigationStrategy === 'function') {\n result = evaluateNavigationStrategy(instruction, first.handler.navigationStrategy, first.handler);\n } else {\n result = Promise.resolve(instruction);\n }\n } else if (this.catchAllHandler) {\n let instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: { path: fragment },\n queryParams: urlRecognizationResults ? urlRecognizationResults.queryParams : {},\n config: null // config will be created by the catchAllHandler\n }));\n\n result = evaluateNavigationStrategy(instruction, this.catchAllHandler);\n } else if (this.parent) {\n let router = this._parentCatchAllHandler(this.parent);\n\n if (router) {\n let newParentInstruction = this._findParentInstructionFromRouter(router, parentInstruction);\n\n let instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: { path: fragment },\n queryParams: urlRecognizationResults ? urlRecognizationResults.queryParams : {},\n router: router,\n parentInstruction: newParentInstruction,\n parentCatchHandler: true,\n config: null // config will be created by the chained parent catchAllHandler\n }));\n\n result = evaluateNavigationStrategy(instruction, router.catchAllHandler);\n }\n }\n\n if (result && parentInstruction) {\n this.baseUrl = generateBaseUrl(this.parent, parentInstruction);\n }\n\n return result || Promise.reject(new Error(`Route not found: ${url}`));\n }\n\n /**@internal */\n _findParentInstructionFromRouter(router: Router, instruction: NavigationInstruction): NavigationInstruction {\n if (instruction.router === router) {\n instruction.fragment = router.baseUrl; // need to change the fragment in case of a redirect instead of moduleId\n return instruction;\n } else if (instruction.parentInstruction) {\n return this._findParentInstructionFromRouter(router, instruction.parentInstruction);\n }\n return undefined;\n }\n\n /**@internal */\n _parentCatchAllHandler(router: Router): Router | false {\n if (router.catchAllHandler) {\n return router;\n } else if (router.parent) {\n return this._parentCatchAllHandler(router.parent);\n }\n return false;\n }\n\n /**\n * @internal\n */\n _createRouteConfig(config: RouteConfigSpecifier, instruction: NavigationInstruction): Promise {\n return Promise\n .resolve(config)\n .then((c: any) => {\n if (typeof c === 'string') {\n return { moduleId: c } as RouteConfig;\n } else if (typeof c === 'function') {\n return c(instruction);\n }\n\n return c;\n })\n // typing here could be either RouteConfig or RedirectConfig\n // but temporarily treat both as RouteConfig\n // todo: improve typings precision\n .then((c: string | RouteConfig) => typeof c === 'string' ? { moduleId: c } as RouteConfig : c)\n .then((c: RouteConfig) => {\n c.route = instruction.params.path;\n validateRouteConfig(c);\n\n if (!c.navModel) {\n c.navModel = this.createNavModel(c);\n }\n\n return c;\n });\n }\n}\n\n/* @internal exported for unit testing */\nexport const generateBaseUrl = (router: Router, instruction: NavigationInstruction): string => {\n return `${router.baseUrl || ''}${instruction.getBaseUrl() || ''}`;\n};\n\n/* @internal exported for unit testing */\nexport const validateRouteConfig = (config: RouteConfig): void => {\n if (typeof config !== 'object') {\n throw new Error('Invalid Route Config');\n }\n\n if (typeof config.route !== 'string') {\n let name = config.name || '(no name)';\n throw new Error('Invalid Route Config for \"' + name + '\": You must specify a \"route:\" pattern.');\n }\n\n if (!('redirect' in config || config.moduleId || config.navigationStrategy || config.viewPorts)) {\n throw new Error('Invalid Route Config for \"' + config.route + '\": You must specify a \"moduleId:\", \"redirect:\", \"navigationStrategy:\", or \"viewPorts:\".');\n }\n};\n\n/* @internal exported for unit testing */\nexport const evaluateNavigationStrategy = (\n instruction: NavigationInstruction,\n evaluator: Function,\n context?: any\n): Promise => {\n return Promise\n .resolve(evaluator.call(context, instruction))\n .then(() => {\n if (!('viewPorts' in instruction.config)) {\n instruction.config.viewPorts = {\n 'default': {\n moduleId: instruction.config.moduleId\n }\n };\n }\n\n return instruction;\n });\n};\n\ninterface IRouteRecognizationResults extends Array {\n queryParams: Record;\n}\n","import { PipelineStatus } from './pipeline-status';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { Next, StepRunnerFunction, NextCompletionHandler } from './interfaces';\n\n/**@internal exported for unit testing */\nexport const createNextFn = (instruction: NavigationInstruction, steps: StepRunnerFunction[]): Next => {\n let index = -1;\n const next: Next = function() {\n index++;\n\n if (index < steps.length) {\n let currentStep = steps[index];\n\n try {\n return currentStep(instruction, next);\n } catch (e) {\n return next.reject(e);\n }\n } else {\n return next.complete();\n }\n } as Next;\n\n next.complete = createCompletionHandler(next, PipelineStatus.Completed);\n next.cancel = createCompletionHandler(next, PipelineStatus.Canceled);\n next.reject = createCompletionHandler(next, PipelineStatus.Rejected);\n\n return next;\n};\n\n/**@internal exported for unit testing */\nexport const createCompletionHandler = (next: Next, status: PipelineStatus): NextCompletionHandler => {\n return (output: any) => Promise\n .resolve({\n status,\n output,\n completed: status === PipelineStatus.Completed\n });\n};\n","import { PipelineStep, PipelineResult, Next, StepRunnerFunction, IPipelineSlot } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { createNextFn } from './next';\n\n/**\n * The class responsible for managing and processing the navigation pipeline.\n */\nexport class Pipeline {\n /**\n * The pipeline steps. And steps added via addStep will be converted to a function\n * The actualy running functions with correct step contexts of this pipeline\n */\n steps: StepRunnerFunction[] = [];\n\n /**\n * Adds a step to the pipeline.\n *\n * @param step The pipeline step.\n */\n addStep(step: StepRunnerFunction | PipelineStep | IPipelineSlot): Pipeline {\n let run;\n\n if (typeof step === 'function') {\n run = step;\n } else if (typeof step.getSteps === 'function') {\n // getSteps is to enable support open slots\n // where devs can add multiple steps into the same slot name\n let steps = step.getSteps();\n for (let i = 0, l = steps.length; i < l; i++) {\n this.addStep(steps[i]);\n }\n\n return this;\n } else {\n run = (step as PipelineStep).run.bind(step);\n }\n\n this.steps.push(run);\n\n return this;\n }\n\n /**\n * Runs the pipeline.\n *\n * @param instruction The navigation instruction to process.\n */\n run(instruction: NavigationInstruction): Promise {\n const nextFn = createNextFn(instruction, this.steps);\n return nextFn();\n }\n}\n","import { NavigationOptions } from 'aurelia-history';\nimport { Router } from './router';\n\n/**@internal */\ndeclare module 'aurelia-history' {\n interface NavigationOptions {\n useAppRouter?: boolean;\n }\n}\n\n/**\n* When a navigation command is encountered, the current navigation\n* will be cancelled and control will be passed to the navigation\n* command so it can determine the correct action.\n*/\nexport interface NavigationCommand {\n navigate: (router: Router) => void;\n /**@internal */\n shouldContinueProcessing?: boolean;\n /**@internal */\n setRouter?: (router: Router) => void;\n}\n\n/**\n* Determines if the provided object is a navigation command.\n* A navigation command is anything with a navigate method.\n*\n* @param obj The object to check.\n*/\nexport function isNavigationCommand(obj: any): obj is NavigationCommand {\n return obj && typeof obj.navigate === 'function';\n}\n\n/**\n* Used during the activation lifecycle to cause a redirect.\n*/\nexport class Redirect implements NavigationCommand {\n\n url: string;\n /**@internal */\n options: NavigationOptions;\n /**@internal */\n shouldContinueProcessing: boolean;\n\n private router: Router;\n\n /**\n * @param url The URL fragment to use as the navigation destination.\n * @param options The navigation options.\n */\n constructor(url: string, options: NavigationOptions = {}) {\n this.url = url;\n this.options = Object.assign({ trigger: true, replace: true }, options);\n this.shouldContinueProcessing = false;\n }\n\n /**\n * Called by the activation system to set the child router.\n *\n * @param router The router.\n */\n setRouter(router: Router): void {\n this.router = router;\n }\n\n /**\n * Called by the navigation pipeline to navigate.\n *\n * @param appRouter The router to be redirected.\n */\n navigate(appRouter: Router): void {\n let navigatingRouter = this.options.useAppRouter ? appRouter : (this.router || appRouter);\n navigatingRouter.navigate(this.url, this.options);\n }\n}\n\n/**\n * Used during the activation lifecycle to cause a redirect to a named route.\n */\nexport class RedirectToRoute implements NavigationCommand {\n\n route: string;\n params: any;\n /**@internal */\n options: NavigationOptions;\n\n /**@internal */\n shouldContinueProcessing: boolean;\n\n /**@internal */\n router: Router;\n\n /**\n * @param route The name of the route.\n * @param params The parameters to be sent to the activation method.\n * @param options The options to use for navigation.\n */\n constructor(route: string, params: any = {}, options: NavigationOptions = {}) {\n this.route = route;\n this.params = params;\n this.options = Object.assign({ trigger: true, replace: true }, options);\n this.shouldContinueProcessing = false;\n }\n\n /**\n * Called by the activation system to set the child router.\n *\n * @param router The router.\n */\n setRouter(router: Router): void {\n this.router = router;\n }\n\n /**\n * Called by the navigation pipeline to navigate.\n *\n * @param appRouter The router to be redirected.\n */\n navigate(appRouter: Router): void {\n let navigatingRouter = this.options.useAppRouter ? appRouter : (this.router || appRouter);\n navigatingRouter.navigateToRoute(this.route, this.params, this.options);\n }\n}\n","import { ViewPortPlan, ViewPortInstruction, RouteConfig, ViewPort } from './interfaces';\nimport { Redirect } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { InternalActivationStrategy, ActivationStrategyType } from './activation-strategy';\n\ntype ViewPortPlansRecord = Record;\n\n/**\n * @internal exported for unit testing\n */\nexport function _buildNavigationPlan(\n instruction: NavigationInstruction,\n forceLifecycleMinimum?: boolean\n): Promise {\n let config = instruction.config;\n\n if ('redirect' in config) {\n return buildRedirectPlan(instruction);\n }\n\n const prevInstruction = instruction.previousInstruction;\n const defaultViewPortConfigs = instruction.router.viewPortDefaults;\n\n if (prevInstruction) {\n return buildTransitionPlans(instruction, prevInstruction, defaultViewPortConfigs, forceLifecycleMinimum);\n }\n\n // first navigation, only need to prepare a few information for each viewport plan\n const viewPortPlans: ViewPortPlansRecord = {};\n let viewPortConfigs = config.viewPorts;\n for (let viewPortName in viewPortConfigs) {\n let viewPortConfig = viewPortConfigs[viewPortName];\n if (viewPortConfig.moduleId === null && viewPortName in defaultViewPortConfigs) {\n viewPortConfig = defaultViewPortConfigs[viewPortName];\n }\n viewPortPlans[viewPortName] = {\n name: viewPortName,\n strategy: InternalActivationStrategy.Replace,\n config: viewPortConfig\n };\n }\n\n return Promise.resolve(viewPortPlans);\n}\n\n/**\n * Build redirect plan based on config of a navigation instruction\n * @internal exported for unit testing\n */\nexport const buildRedirectPlan = (instruction: NavigationInstruction) => {\n const config = instruction.config;\n const router = instruction.router;\n return router\n ._createNavigationInstruction(config.redirect)\n .then(redirectInstruction => {\n\n const params: Record = {};\n const originalInstructionParams = instruction.params;\n const redirectInstructionParams = redirectInstruction.params;\n\n for (let key in redirectInstructionParams) {\n // If the param on the redirect points to another param, e.g. { route: first/:this, redirect: second/:this }\n let val = redirectInstructionParams[key];\n if (typeof val === 'string' && val[0] === ':') {\n val = val.slice(1);\n // And if that param is found on the original instruction then use it\n if (val in originalInstructionParams) {\n params[key] = originalInstructionParams[val];\n }\n } else {\n params[key] = redirectInstructionParams[key];\n }\n }\n let redirectLocation = router.generate(redirectInstruction.config, params, instruction.options);\n\n // Special handling for child routes\n for (let key in originalInstructionParams) {\n redirectLocation = redirectLocation.replace(`:${key}`, originalInstructionParams[key]);\n }\n\n let queryString = instruction.queryString;\n if (queryString) {\n redirectLocation += '?' + queryString;\n }\n\n return Promise.resolve(new Redirect(redirectLocation));\n });\n};\n\n/**\n * @param viewPortPlans the Plan record that holds information about built plans\n * @internal exported for unit testing\n */\nexport const buildTransitionPlans = (\n currentInstruction: NavigationInstruction,\n previousInstruction: NavigationInstruction,\n defaultViewPortConfigs: Record,\n forceLifecycleMinimum?: boolean\n): Promise => {\n\n let viewPortPlans: ViewPortPlansRecord = {};\n let newInstructionConfig = currentInstruction.config;\n let hasNewParams = hasDifferentParameterValues(previousInstruction, currentInstruction);\n let pending: Promise[] = [];\n let previousViewPortInstructions = previousInstruction.viewPortInstructions as Record;\n\n for (let viewPortName in previousViewPortInstructions) {\n\n const prevViewPortInstruction = previousViewPortInstructions[viewPortName];\n const prevViewPortComponent = prevViewPortInstruction.component;\n const newInstructionViewPortConfigs = newInstructionConfig.viewPorts as Record;\n\n // if this is invoked on a viewport without any changes, based on new url,\n // newViewPortConfig will be the existing viewport instruction\n let nextViewPortConfig = viewPortName in newInstructionViewPortConfigs\n ? newInstructionViewPortConfigs[viewPortName]\n : prevViewPortInstruction;\n\n if (nextViewPortConfig.moduleId === null && viewPortName in defaultViewPortConfigs) {\n nextViewPortConfig = defaultViewPortConfigs[viewPortName];\n }\n\n const viewPortActivationStrategy = determineActivationStrategy(\n currentInstruction,\n prevViewPortInstruction,\n nextViewPortConfig,\n hasNewParams,\n forceLifecycleMinimum\n );\n const viewPortPlan = viewPortPlans[viewPortName] = {\n name: viewPortName,\n // ViewPortInstruction can quack like a RouteConfig\n config: nextViewPortConfig as RouteConfig,\n prevComponent: prevViewPortComponent,\n prevModuleId: prevViewPortInstruction.moduleId,\n strategy: viewPortActivationStrategy\n } as ViewPortPlan;\n\n // recursively build nav plans for all existing child routers/viewports of this viewport\n // this is possible because existing child viewports and routers already have necessary information\n // to process the wildcard path from parent instruction\n if (viewPortActivationStrategy !== InternalActivationStrategy.Replace && prevViewPortInstruction.childRouter) {\n const path = currentInstruction.getWildcardPath();\n const task: Promise = prevViewPortInstruction\n .childRouter\n ._createNavigationInstruction(path, currentInstruction)\n .then((childInstruction: NavigationInstruction) => {\n viewPortPlan.childNavigationInstruction = childInstruction;\n\n return _buildNavigationPlan(\n childInstruction,\n // is it safe to assume viewPortPlan has not been changed from previous assignment?\n // if so, can just use local variable viewPortPlanStrategy\n // there could be user code modifying viewport plan during _createNavigationInstruction?\n viewPortPlan.strategy === InternalActivationStrategy.InvokeLifecycle\n )\n .then(childPlan => {\n if (childPlan instanceof Redirect) {\n return Promise.reject(childPlan);\n }\n childInstruction.plan = childPlan;\n // for bluebird ?\n return null;\n });\n });\n\n pending.push(task);\n }\n }\n\n return Promise.all(pending).then(() => viewPortPlans);\n};\n\n/**\n * @param newViewPortConfig if this is invoked on a viewport without any changes, based on new url, newViewPortConfig will be the existing viewport instruction\n * @internal exported for unit testing\n */\nexport const determineActivationStrategy = (\n currentNavInstruction: NavigationInstruction,\n prevViewPortInstruction: ViewPortInstruction,\n newViewPortConfig: RouteConfig | ViewPortInstruction,\n // indicates whether there is difference between old and new url params\n hasNewParams: boolean,\n forceLifecycleMinimum?: boolean\n): ActivationStrategyType => {\n\n let newInstructionConfig = currentNavInstruction.config;\n let prevViewPortViewModel = prevViewPortInstruction.component.viewModel;\n let viewPortPlanStrategy: ActivationStrategyType;\n\n if (prevViewPortInstruction.moduleId !== newViewPortConfig.moduleId) {\n viewPortPlanStrategy = InternalActivationStrategy.Replace;\n } else if ('determineActivationStrategy' in prevViewPortViewModel) {\n viewPortPlanStrategy = prevViewPortViewModel.determineActivationStrategy(...currentNavInstruction.lifecycleArgs);\n } else if (newInstructionConfig.activationStrategy) {\n viewPortPlanStrategy = newInstructionConfig.activationStrategy;\n } else if (hasNewParams || forceLifecycleMinimum) {\n viewPortPlanStrategy = InternalActivationStrategy.InvokeLifecycle;\n } else {\n viewPortPlanStrategy = InternalActivationStrategy.NoChange;\n }\n return viewPortPlanStrategy;\n};\n\n/**@internal exported for unit testing */\nexport const hasDifferentParameterValues = (prev: NavigationInstruction, next: NavigationInstruction): boolean => {\n let prevParams = prev.params;\n let nextParams = next.params;\n let nextWildCardName = next.config.hasChildRouter ? next.getWildCardName() : null;\n\n for (let key in nextParams) {\n if (key === nextWildCardName) {\n continue;\n }\n\n if (prevParams[key] !== nextParams[key]) {\n return true;\n }\n }\n\n for (let key in prevParams) {\n if (key === nextWildCardName) {\n continue;\n }\n\n if (prevParams[key] !== nextParams[key]) {\n return true;\n }\n }\n\n if (!next.options.compareQueryParams) {\n return false;\n }\n\n let prevQueryParams = prev.queryParams;\n let nextQueryParams = next.queryParams;\n for (let key in nextQueryParams) {\n if (prevQueryParams[key] !== nextQueryParams[key]) {\n return true;\n }\n }\n\n for (let key in prevQueryParams) {\n if (prevQueryParams[key] !== nextQueryParams[key]) {\n return true;\n }\n }\n\n return false;\n};\n","import { Next } from './interfaces';\nimport { Redirect } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { _buildNavigationPlan } from './navigation-plan';\n\n/**\n * Transform a navigation instruction into viewport plan record object,\n * or a redirect request if user viewmodel demands\n */\nexport class BuildNavigationPlanStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return _buildNavigationPlan(navigationInstruction)\n .then(plan => {\n if (plan instanceof Redirect) {\n return next.cancel(plan);\n }\n navigationInstruction.plan = plan;\n return next();\n })\n .catch(next.cancel);\n }\n}\n","import { RouteConfig, ViewPortComponent, ViewPortPlan, ViewPortInstruction } from './interfaces';\nimport { Redirect } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { _buildNavigationPlan } from './navigation-plan';\nimport { InternalActivationStrategy } from './activation-strategy';\nimport { RouteLoader } from './route-loader';\n\n/**\n * Loading plan calculated based on a navigration-instruction and a viewport plan\n */\ninterface ILoadingPlan {\n viewPortPlan: ViewPortPlan;\n navigationInstruction: NavigationInstruction;\n}\n\n/**\n * @internal Exported for unit testing\n */\nexport const loadNewRoute = (\n routeLoader: RouteLoader,\n navigationInstruction: NavigationInstruction\n): Promise => {\n let loadingPlans = determineLoadingPlans(navigationInstruction);\n let loadPromises = loadingPlans.map((loadingPlan: ILoadingPlan) => loadRoute(\n routeLoader,\n loadingPlan.navigationInstruction,\n loadingPlan.viewPortPlan\n ));\n\n return Promise.all(loadPromises);\n};\n\n/**\n * @internal Exported for unit testing\n */\nexport const determineLoadingPlans = (\n navigationInstruction: NavigationInstruction,\n loadingPlans: ILoadingPlan[] = []\n): ILoadingPlan[] => {\n let viewPortPlans: Record = navigationInstruction.plan;\n\n for (let viewPortName in viewPortPlans) {\n let viewPortPlan = viewPortPlans[viewPortName];\n let childNavInstruction = viewPortPlan.childNavigationInstruction;\n\n if (viewPortPlan.strategy === InternalActivationStrategy.Replace) {\n loadingPlans.push({ viewPortPlan, navigationInstruction } as ILoadingPlan);\n\n if (childNavInstruction) {\n determineLoadingPlans(childNavInstruction, loadingPlans);\n }\n } else {\n let viewPortInstruction = navigationInstruction.addViewPortInstruction({\n name: viewPortName,\n strategy: viewPortPlan.strategy,\n moduleId: viewPortPlan.prevModuleId,\n component: viewPortPlan.prevComponent\n }) as ViewPortInstruction;\n\n if (childNavInstruction) {\n viewPortInstruction.childNavigationInstruction = childNavInstruction;\n determineLoadingPlans(childNavInstruction, loadingPlans);\n }\n }\n }\n\n return loadingPlans;\n};\n\n/**\n * @internal Exported for unit testing\n */\nexport const loadRoute = (\n routeLoader: RouteLoader,\n navigationInstruction: NavigationInstruction,\n viewPortPlan: ViewPortPlan\n): Promise => {\n let planConfig = viewPortPlan.config;\n let moduleId = planConfig ? planConfig.moduleId : null;\n\n return loadComponent(routeLoader, navigationInstruction, planConfig)\n .then((component) => {\n let viewPortInstruction = navigationInstruction.addViewPortInstruction({\n name: viewPortPlan.name,\n strategy: viewPortPlan.strategy,\n moduleId: moduleId,\n component: component\n }) as ViewPortInstruction;\n\n let childRouter = component.childRouter;\n if (childRouter) {\n let path = navigationInstruction.getWildcardPath();\n\n return childRouter\n ._createNavigationInstruction(path, navigationInstruction)\n .then((childInstruction) => {\n viewPortPlan.childNavigationInstruction = childInstruction;\n\n return _buildNavigationPlan(childInstruction)\n .then((childPlan) => {\n if (childPlan instanceof Redirect) {\n return Promise.reject(childPlan);\n }\n childInstruction.plan = childPlan;\n viewPortInstruction.childNavigationInstruction = childInstruction;\n\n return loadNewRoute(routeLoader, childInstruction);\n });\n });\n }\n // ts complains without this, though they are same\n return void 0;\n });\n};\n\n/**\n * Load a routed-component based on navigation instruction and route config\n * @internal exported for unit testing only\n */\nexport const loadComponent = (\n routeLoader: RouteLoader,\n navigationInstruction: NavigationInstruction,\n config: RouteConfig\n): Promise => {\n let router = navigationInstruction.router;\n let lifecycleArgs = navigationInstruction.lifecycleArgs;\n\n return Promise.resolve()\n .then(() => routeLoader.loadRoute(router, config, navigationInstruction))\n .then(\n /**\n * @param component an object carrying information about loaded route\n * typically contains information about view model, childContainer, view and router\n */\n (component: ViewPortComponent) => {\n let { viewModel, childContainer } = component;\n component.router = router;\n component.config = config;\n\n if ('configureRouter' in viewModel) {\n let childRouter = childContainer.getChildRouter();\n component.childRouter = childRouter;\n\n return childRouter\n .configure(c => viewModel.configureRouter(c, childRouter, lifecycleArgs[0], lifecycleArgs[1], lifecycleArgs[2]))\n .then(() => component);\n }\n\n return component;\n }\n );\n};\n",null,"import { Next } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { loadNewRoute } from './utilities-route-loading';\nimport { RouteLoader } from './route-loader';\n/**\n * A pipeline step responsible for loading a route config of a navigation instruction\n */\nexport class LoadRouteStep {\n /**@internal */\n static inject() { return [RouteLoader]; }\n /**\n * Route loader isntance that will handle loading route config\n * @internal\n */\n routeLoader: RouteLoader;\n constructor(routeLoader: RouteLoader) {\n this.routeLoader = routeLoader;\n }\n /**\n * Run the internal to load route config of a navigation instruction to prepare for next steps in the pipeline\n */\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return loadNewRoute(this.routeLoader, navigationInstruction)\n .then(next, next.cancel);\n }\n}\n","import { NavigationInstruction } from './navigation-instruction';\n\n/**\n * A pipeline step for instructing a piepline to commit changes on a navigation instruction\n */\nexport class CommitChangesStep {\n run(navigationInstruction: NavigationInstruction, next: Function): Promise {\n return navigationInstruction\n ._commitChanges(/*wait to swap?*/ true)\n .then(() => {\n navigationInstruction._updateTitle();\n return next();\n });\n }\n}\n","/**\n * An optional interface describing the available activation strategies.\n * @internal Used internally.\n */\nexport const enum InternalActivationStrategy {\n /**\n * Reuse the existing view model, without invoking Router lifecycle hooks.\n */\n NoChange = 'no-change',\n /**\n * Reuse the existing view model, invoking Router lifecycle hooks.\n */\n InvokeLifecycle = 'invoke-lifecycle',\n /**\n * Replace the existing view model, invoking Router lifecycle hooks.\n */\n Replace = 'replace'\n}\n\n/**\n * The strategy to use when activating modules during navigation.\n */\n// kept for compat reason\nexport const activationStrategy: ActivationStrategy = {\n noChange: InternalActivationStrategy.NoChange,\n invokeLifecycle: InternalActivationStrategy.InvokeLifecycle,\n replace: InternalActivationStrategy.Replace\n};\n\n/**\n * An optional interface describing the available activation strategies.\n */\nexport interface ActivationStrategy {\n /**\n * Reuse the existing view model, without invoking Router lifecycle hooks.\n */\n noChange: 'no-change';\n /**\n * Reuse the existing view model, invoking Router lifecycle hooks.\n */\n invokeLifecycle: 'invoke-lifecycle';\n /**\n * Replace the existing view model, invoking Router lifecycle hooks.\n */\n replace: 'replace';\n}\n\n/**\n * Enum like type for activation strategy built-in values\n */\nexport type ActivationStrategyType = ActivationStrategy[keyof ActivationStrategy];\n","import { Next, ViewPortComponent, ViewPortPlan, ViewPortInstruction, LifecycleArguments } from './interfaces';\nimport { isNavigationCommand } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { activationStrategy } from './activation-strategy';\nimport { Router } from './router';\n\n/**\n * Recursively find list of deactivate-able view models\n * and invoke the either 'canDeactivate' or 'deactivate' on each\n * @internal exported for unit testing\n */\nexport const processDeactivatable = (\n navigationInstruction: NavigationInstruction,\n callbackName: 'canDeactivate' | 'deactivate',\n next: Next,\n ignoreResult?: boolean\n): Promise => {\n let plan: Record = navigationInstruction.plan;\n let infos = findDeactivatable(plan, callbackName);\n let i = infos.length; // query from inside out\n\n function inspect(val: any): Promise {\n if (ignoreResult || shouldContinue(val)) {\n return iterate();\n }\n\n return next.cancel(val);\n }\n\n function iterate(): Promise {\n if (i--) {\n try {\n let viewModel = infos[i];\n let result = viewModel[callbackName](navigationInstruction);\n return processPotential(result, inspect, next.cancel);\n } catch (error) {\n return next.cancel(error);\n }\n }\n\n navigationInstruction.router.couldDeactivate = true;\n\n return next();\n }\n\n return iterate();\n};\n\n/**\n * Recursively find and returns a list of deactivate-able view models\n * @internal exported for unit testing\n */\nexport const findDeactivatable = (\n plan: Record,\n callbackName: string,\n list: IActivatableInfo[] = []\n): any[] => {\n for (let viewPortName in plan) {\n let viewPortPlan = plan[viewPortName];\n let prevComponent = viewPortPlan.prevComponent;\n\n if ((viewPortPlan.strategy === activationStrategy.invokeLifecycle || viewPortPlan.strategy === activationStrategy.replace)\n && prevComponent\n ) {\n let viewModel = prevComponent.viewModel;\n\n if (callbackName in viewModel) {\n list.push(viewModel);\n }\n }\n\n if (viewPortPlan.strategy === activationStrategy.replace && prevComponent) {\n addPreviousDeactivatable(prevComponent, callbackName, list);\n } else if (viewPortPlan.childNavigationInstruction) {\n findDeactivatable(viewPortPlan.childNavigationInstruction.plan, callbackName, list);\n }\n }\n\n return list;\n};\n\n/**\n * @internal exported for unit testing\n */\nexport const addPreviousDeactivatable = (\n component: ViewPortComponent,\n callbackName: string,\n list: IActivatableInfo[]\n): void => {\n let childRouter = component.childRouter;\n\n if (childRouter && childRouter.currentInstruction) {\n let viewPortInstructions = childRouter.currentInstruction.viewPortInstructions;\n\n for (let viewPortName in viewPortInstructions) {\n let viewPortInstruction = viewPortInstructions[viewPortName];\n let prevComponent = viewPortInstruction.component;\n let prevViewModel = prevComponent.viewModel;\n\n if (callbackName in prevViewModel) {\n list.push(prevViewModel);\n }\n\n addPreviousDeactivatable(prevComponent, callbackName, list);\n }\n }\n};\n\n/**\n * @internal exported for unit testing\n */\nexport const processActivatable = (\n navigationInstruction: NavigationInstruction,\n callbackName: 'canActivate' | 'activate',\n next: Next,\n ignoreResult?: boolean\n): Promise => {\n let infos = findActivatable(navigationInstruction, callbackName);\n let length = infos.length;\n let i = -1; // query from top down\n\n function inspect(val: any, router: Router): Promise {\n if (ignoreResult || shouldContinue(val, router)) {\n return iterate();\n }\n\n return next.cancel(val);\n }\n\n function iterate(): Promise {\n i++;\n\n if (i < length) {\n try {\n let current = infos[i];\n let result = current.viewModel[callbackName](...current.lifecycleArgs);\n return processPotential(result, (val: any) => inspect(val, current.router), next.cancel);\n } catch (error) {\n return next.cancel(error);\n }\n }\n\n return next();\n }\n\n return iterate();\n};\n\ninterface IActivatableInfo {\n viewModel: any;\n lifecycleArgs: LifecycleArguments;\n router: Router;\n}\n\n/**\n * Find list of activatable view model and add to list (3rd parameter)\n * @internal exported for unit testing\n */\nexport const findActivatable = (\n navigationInstruction: NavigationInstruction,\n callbackName: 'canActivate' | 'activate',\n list: IActivatableInfo[] = [],\n router?: Router\n): IActivatableInfo[] => {\n let plan: Record = navigationInstruction.plan;\n\n Object\n .keys(plan)\n .forEach((viewPortName) => {\n let viewPortPlan = plan[viewPortName];\n let viewPortInstruction = navigationInstruction.viewPortInstructions[viewPortName] as ViewPortInstruction;\n let viewPortComponent = viewPortInstruction.component;\n let viewModel = viewPortComponent.viewModel;\n\n if (\n (viewPortPlan.strategy === activationStrategy.invokeLifecycle\n || viewPortPlan.strategy === activationStrategy.replace\n )\n && callbackName in viewModel\n ) {\n list.push({\n viewModel,\n lifecycleArgs: viewPortInstruction.lifecycleArgs,\n router\n });\n }\n\n let childNavInstruction = viewPortPlan.childNavigationInstruction;\n\n if (childNavInstruction) {\n findActivatable(\n childNavInstruction,\n callbackName,\n list,\n viewPortComponent.childRouter || router\n );\n }\n });\n\n return list;\n};\n\nconst shouldContinue = (output: T, router?: Router): boolean | T => {\n if (output instanceof Error) {\n return false;\n }\n\n if (isNavigationCommand(output)) {\n if (typeof output.setRouter === 'function') {\n output.setRouter(router);\n }\n\n return !!output.shouldContinueProcessing;\n }\n\n if (output === undefined) {\n return true;\n }\n\n return output;\n};\n\n/**\n * A basic interface for an Observable type\n */\nexport interface IObservable {\n subscribe(sub?: IObservableConfig): ISubscription;\n}\n\nexport interface IObservableConfig {\n next(): void;\n error(err?: any): void;\n complete(): void;\n}\n\n/**\n * A basic interface for a Subscription to an Observable\n */\ninterface ISubscription {\n unsubscribe(): void;\n}\n\ntype SafeSubscriptionFunc = (sub: SafeSubscription) => ISubscription;\n\n/**\n * wraps a subscription, allowing unsubscribe calls even if\n * the first value comes synchronously\n */\nclass SafeSubscription {\n\n private _subscribed: boolean;\n private _subscription: ISubscription;\n\n constructor(subscriptionFunc: SafeSubscriptionFunc) {\n this._subscribed = true;\n this._subscription = subscriptionFunc(this);\n\n if (!this._subscribed) {\n this.unsubscribe();\n }\n }\n\n get subscribed(): boolean {\n return this._subscribed;\n }\n\n unsubscribe(): void {\n if (this._subscribed && this._subscription) {\n this._subscription.unsubscribe();\n }\n\n this._subscribed = false;\n }\n}\n\n/**\n * A function to process return value from `activate`/`canActivate` steps\n * Supports observable/promise\n *\n * For observable, resolve at first next() or on complete()\n */\nconst processPotential = (obj: any, resolve: (val?: any) => any, reject: (err?: any) => any): any => {\n // if promise like\n if (obj && typeof obj.then === 'function') {\n return Promise.resolve(obj).then(resolve).catch(reject);\n }\n\n // if observable\n if (obj && typeof obj.subscribe === 'function') {\n let obs: IObservable = obj;\n return new SafeSubscription(sub => obs.subscribe({\n next() {\n if (sub.subscribed) {\n sub.unsubscribe();\n resolve(obj);\n }\n },\n error(error) {\n if (sub.subscribed) {\n sub.unsubscribe();\n reject(error);\n }\n },\n complete() {\n if (sub.subscribed) {\n sub.unsubscribe();\n resolve(obj);\n }\n }\n }));\n }\n\n // else just resolve\n try {\n return resolve(obj);\n } catch (error) {\n return reject(error);\n }\n};\n","import { Next } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { processDeactivatable, processActivatable } from './utilities-activation';\n\n/**\n * A pipeline step responsible for finding and activating method `canDeactivate` on a view model of a route\n */\nexport class CanDeactivatePreviousStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processDeactivatable(navigationInstruction, 'canDeactivate', next);\n }\n}\n\n/**\n * A pipeline step responsible for finding and activating method `canActivate` on a view model of a route\n */\nexport class CanActivateNextStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processActivatable(navigationInstruction, 'canActivate', next);\n }\n}\n\n/**\n * A pipeline step responsible for finding and activating method `deactivate` on a view model of a route\n */\nexport class DeactivatePreviousStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processDeactivatable(navigationInstruction, 'deactivate', next, true);\n }\n}\n\n/**\n * A pipeline step responsible for finding and activating method `activate` on a view model of a route\n */\nexport class ActivateNextStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processActivatable(navigationInstruction, 'activate', next, true);\n }\n}\n","import { Container } from 'aurelia-dependency-injection';\nimport { Pipeline } from './pipeline';\nimport { BuildNavigationPlanStep } from './step-build-navigation-plan';\nimport { LoadRouteStep } from './step-load-route';\nimport { CommitChangesStep } from './step-commit-changes';\nimport { CanDeactivatePreviousStep, CanActivateNextStep, DeactivatePreviousStep, ActivateNextStep } from './step-activation';\nimport { PipelineStep, StepRunnerFunction, IPipelineSlot } from './interfaces';\nimport { PipelineSlotName } from './pipeline-slot-name';\n\n/**\n * A multi-slots Pipeline Placeholder Step for hooking into a pipeline execution\n */\nclass PipelineSlot implements IPipelineSlot {\n\n /**@internal */\n container: Container;\n /**@internal */\n slotName: string;\n /**@internal */\n slotAlias?: string;\n\n steps: (Function | PipelineStep)[] = [];\n\n constructor(container: Container, name: string, alias?: string) {\n this.container = container;\n this.slotName = name;\n this.slotAlias = alias;\n }\n\n getSteps(): (StepRunnerFunction | IPipelineSlot | PipelineStep)[] {\n return this.steps.map(x => this.container.get(x));\n }\n}\n\n/**\n * Class responsible for creating the navigation pipeline.\n */\nexport class PipelineProvider {\n\n /**@internal */\n static inject() { return [Container]; }\n /**@internal */\n container: Container;\n /**@internal */\n steps: (Function | PipelineSlot)[];\n\n constructor(container: Container) {\n this.container = container;\n this.steps = [\n BuildNavigationPlanStep,\n CanDeactivatePreviousStep, // optional\n LoadRouteStep,\n createPipelineSlot(container, PipelineSlotName.Authorize),\n CanActivateNextStep, // optional\n createPipelineSlot(container, PipelineSlotName.PreActivate, 'modelbind'),\n // NOTE: app state changes start below - point of no return\n DeactivatePreviousStep, // optional\n ActivateNextStep, // optional\n createPipelineSlot(container, PipelineSlotName.PreRender, 'precommit'),\n CommitChangesStep,\n createPipelineSlot(container, PipelineSlotName.PostRender, 'postcomplete')\n ];\n }\n\n /**\n * Create the navigation pipeline.\n */\n createPipeline(useCanDeactivateStep: boolean = true): Pipeline {\n let pipeline = new Pipeline();\n this.steps.forEach(step => {\n if (useCanDeactivateStep || step !== CanDeactivatePreviousStep) {\n pipeline.addStep(this.container.get(step));\n }\n });\n return pipeline;\n }\n\n /**@internal */\n _findStep(name: string): PipelineSlot {\n // Steps that are not PipelineSlots are constructor functions, and they will automatically fail. Probably.\n return this.steps.find(x => (x as PipelineSlot).slotName === name || (x as PipelineSlot).slotAlias === name) as PipelineSlot;\n }\n\n /**\n * Adds a step into the pipeline at a known slot location.\n */\n addStep(name: string, step: PipelineStep | Function): void {\n let found = this._findStep(name);\n if (found) {\n let slotSteps = found.steps;\n // prevent duplicates\n if (!slotSteps.includes(step)) {\n slotSteps.push(step);\n }\n } else {\n throw new Error(`Invalid pipeline slot name: ${name}.`);\n }\n }\n\n /**\n * Removes a step from a slot in the pipeline\n */\n removeStep(name: string, step: PipelineStep): void {\n let slot = this._findStep(name);\n if (slot) {\n let slotSteps = slot.steps;\n slotSteps.splice(slotSteps.indexOf(step), 1);\n }\n }\n\n /**\n * Clears all steps from a slot in the pipeline\n * @internal\n */\n _clearSteps(name: string = ''): void {\n let slot = this._findStep(name);\n if (slot) {\n slot.steps = [];\n }\n }\n\n /**\n * Resets all pipeline slots\n */\n reset(): void {\n this._clearSteps(PipelineSlotName.Authorize);\n this._clearSteps(PipelineSlotName.PreActivate);\n this._clearSteps(PipelineSlotName.PreRender);\n this._clearSteps(PipelineSlotName.PostRender);\n }\n}\n\n/**@internal */\nconst createPipelineSlot = (container: Container, name: PipelineSlotName, alias?: string): PipelineSlot => {\n return new PipelineSlot(container, name, alias);\n};\n","import * as LogManager from 'aurelia-logging';\nimport { Container } from 'aurelia-dependency-injection';\nimport { History, NavigationOptions } from 'aurelia-history';\nimport { Router } from './router';\nimport { PipelineProvider } from './pipeline-provider';\nimport { isNavigationCommand } from './navigation-commands';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { ViewPort, ConfiguresRouter, PipelineResult } from './interfaces';\nimport { RouterEvent } from './router-event';\nimport { RouterConfiguration } from './router-configuration';\n\n/**@internal */\ndeclare module 'aurelia-dependency-injection' {\n interface Container {\n viewModel?: any;\n }\n}\n\nconst logger = LogManager.getLogger('app-router');\n\n/**\n * The main application router.\n */\nexport class AppRouter extends Router {\n\n /**@internal */\n static inject() { return [Container, History, PipelineProvider, EventAggregator]; }\n\n events: EventAggregator;\n /**@internal */\n maxInstructionCount: number;\n /**@internal */\n _queue: NavigationInstruction[];\n /**@internal */\n isActive: boolean;\n\n constructor(container: Container, history: History, pipelineProvider: PipelineProvider, events: EventAggregator) {\n super(container, history); // Note the super will call reset internally.\n this.pipelineProvider = pipelineProvider;\n this.events = events;\n }\n\n /**\n * Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\n * Use with caution (actually, avoid using this). Do not use this to simply change your navigation model.\n */\n reset(): void {\n super.reset();\n this.maxInstructionCount = 10;\n if (!this._queue) {\n this._queue = [];\n } else {\n this._queue.length = 0;\n }\n }\n\n /**\n * Loads the specified URL.\n *\n * @param url The URL fragment to load.\n */\n loadUrl(url: string): Promise {\n return this\n ._createNavigationInstruction(url)\n .then(instruction => this._queueInstruction(instruction))\n .catch(error => {\n logger.error(error);\n restorePreviousLocation(this);\n });\n }\n\n /**\n * Registers a viewPort to be used as a rendering target for activated routes.\n *\n * @param viewPort The viewPort. This is typically a element in Aurelia default impl\n * @param name The name of the viewPort. 'default' if unspecified.\n */\n registerViewPort(viewPort: /*ViewPort*/ any, name?: string): Promise {\n // having strong typing without changing public API\n const $viewPort: ViewPort = viewPort;\n super.registerViewPort($viewPort, name);\n\n // beside adding viewport to the registry of this instance\n // AppRouter also configure routing/history to start routing functionality\n // There are situation where there are more than 1 element at root view\n // in that case, still only activate once via the following guard\n if (!this.isActive) {\n const viewModel = this._findViewModel($viewPort);\n if ('configureRouter' in viewModel) {\n // If there are more than one element at root view\n // use this flag to guard against configure method being invoked multiple times\n // this flag is set inside method configure\n if (!this.isConfigured) {\n // replace the real resolve with a noop to guarantee that any action in base class Router\n // won't resolve the configurePromise prematurely\n const resolveConfiguredPromise = this._resolveConfiguredPromise;\n this._resolveConfiguredPromise = () => {/**/};\n return this\n .configure(config =>\n Promise\n .resolve(viewModel.configureRouter(config, this))\n // an issue with configure interface. Should be fixed there\n // todo: fix this via configure interface in router\n .then(() => config) as any\n )\n .then(() => {\n this.activate();\n resolveConfiguredPromise();\n });\n }\n } else {\n this.activate();\n }\n }\n // when a viewport is added dynamically to a root view that is already activated\n // just process the navigation instruction\n else {\n this._dequeueInstruction();\n }\n\n return Promise.resolve();\n }\n\n /**\n * Activates the router. This instructs the router to begin listening for history changes and processing instructions.\n *\n * @params options The set of options to activate the router with.\n */\n activate(options?: NavigationOptions): void {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n // route handler property is responsible for handling url change\n // the interface of aurelia-history isn't clear on this perspective\n this.options = Object.assign({ routeHandler: this.loadUrl.bind(this) }, this.options, options);\n this.history.activate(this.options);\n this._dequeueInstruction();\n }\n\n /**\n * Deactivates the router.\n */\n deactivate(): void {\n this.isActive = false;\n this.history.deactivate();\n }\n\n /**@internal */\n _queueInstruction(instruction: NavigationInstruction): Promise {\n return new Promise((resolve) => {\n instruction.resolve = resolve;\n this._queue.unshift(instruction);\n this._dequeueInstruction();\n });\n }\n\n /**@internal */\n _dequeueInstruction(instructionCount: number = 0): Promise {\n return Promise.resolve().then(() => {\n if (this.isNavigating && !instructionCount) {\n // ts complains about inconsistent returns without void 0\n return void 0;\n }\n\n let instruction = this._queue.shift();\n this._queue.length = 0;\n\n if (!instruction) {\n // ts complains about inconsistent returns without void 0\n return void 0;\n }\n\n this.isNavigating = true;\n\n let navtracker: number = this.history.getState('NavigationTracker');\n let currentNavTracker = this.currentNavigationTracker;\n\n if (!navtracker && !currentNavTracker) {\n this.isNavigatingFirst = true;\n this.isNavigatingNew = true;\n } else if (!navtracker) {\n this.isNavigatingNew = true;\n } else if (!currentNavTracker) {\n this.isNavigatingRefresh = true;\n } else if (currentNavTracker < navtracker) {\n this.isNavigatingForward = true;\n } else if (currentNavTracker > navtracker) {\n this.isNavigatingBack = true;\n } if (!navtracker) {\n navtracker = Date.now();\n this.history.setState('NavigationTracker', navtracker);\n }\n this.currentNavigationTracker = navtracker;\n\n instruction.previousInstruction = this.currentInstruction;\n\n let maxInstructionCount = this.maxInstructionCount;\n\n if (!instructionCount) {\n this.events.publish(RouterEvent.Processing, { instruction });\n } else if (instructionCount === maxInstructionCount - 1) {\n logger.error(`${instructionCount + 1} navigation instructions have been attempted without success. Restoring last known good location.`);\n restorePreviousLocation(this);\n return this._dequeueInstruction(instructionCount + 1);\n } else if (instructionCount > maxInstructionCount) {\n throw new Error('Maximum navigation attempts exceeded. Giving up.');\n }\n\n let pipeline = this.pipelineProvider.createPipeline(!this.couldDeactivate);\n\n return pipeline\n .run(instruction)\n .then(result => processResult(instruction, result, instructionCount, this))\n .catch(error => {\n return { output: error instanceof Error ? error : new Error(error) } as PipelineResult;\n })\n .then(result => resolveInstruction(instruction, result, !!instructionCount, this));\n });\n }\n\n /**@internal */\n _findViewModel(viewPort: ViewPort): ConfiguresRouter | undefined {\n if (this.container.viewModel) {\n return this.container.viewModel;\n }\n\n if (viewPort.container) {\n let container = viewPort.container;\n\n while (container) {\n if (container.viewModel) {\n this.container.viewModel = container.viewModel;\n return container.viewModel;\n }\n\n container = container.parent;\n }\n }\n\n return undefined;\n }\n}\n\nconst processResult = (\n instruction: NavigationInstruction,\n result: PipelineResult,\n instructionCount: number,\n router: AppRouter\n): Promise => {\n if (!(result && 'completed' in result && 'output' in result)) {\n result = result || {} as PipelineResult;\n result.output = new Error(`Expected router pipeline to return a navigation result, but got [${JSON.stringify(result)}] instead.`);\n }\n\n let finalResult: PipelineResult = null;\n let navigationCommandResult = null;\n if (isNavigationCommand(result.output)) {\n navigationCommandResult = result.output.navigate(router);\n } else {\n finalResult = result;\n\n if (!result.completed) {\n if (result.output instanceof Error) {\n logger.error(result.output.toString());\n }\n\n restorePreviousLocation(router);\n }\n }\n\n return Promise.resolve(navigationCommandResult)\n .then(_ => router._dequeueInstruction(instructionCount + 1))\n .then(innerResult => finalResult || innerResult || result);\n};\n\nconst resolveInstruction = (\n instruction: NavigationInstruction,\n result: PipelineResult,\n isInnerInstruction: boolean,\n router: AppRouter\n): PipelineResult => {\n instruction.resolve(result);\n\n let eventAggregator = router.events;\n let eventArgs = { instruction, result };\n if (!isInnerInstruction) {\n router.isNavigating = false;\n router.isExplicitNavigation = false;\n router.isExplicitNavigationBack = false;\n router.isNavigatingFirst = false;\n router.isNavigatingNew = false;\n router.isNavigatingRefresh = false;\n router.isNavigatingForward = false;\n router.isNavigatingBack = false;\n router.couldDeactivate = false;\n\n let eventName: string;\n\n if (result.output instanceof Error) {\n eventName = RouterEvent.Error;\n } else if (!result.completed) {\n eventName = RouterEvent.Canceled;\n } else {\n let queryString = instruction.queryString ? ('?' + instruction.queryString) : '';\n router.history.previousLocation = instruction.fragment + queryString;\n eventName = RouterEvent.Success;\n }\n\n eventAggregator.publish(eventName, eventArgs);\n eventAggregator.publish(RouterEvent.Complete, eventArgs);\n } else {\n eventAggregator.publish(RouterEvent.ChildComplete, eventArgs);\n }\n\n return result;\n};\n\nconst restorePreviousLocation = (router: AppRouter): void => {\n let previousLocation = router.history.previousLocation;\n if (previousLocation) {\n router.navigate(previousLocation, { trigger: false, replace: true });\n } else if (router.fallbackRoute) {\n router.navigate(router.fallbackRoute, { trigger: true, replace: true });\n } else {\n logger.error('Router navigation failed, and no previous location or fallbackRoute could be restored.');\n }\n};\n","/**\n* The status of a Pipeline.\n*/\nexport const enum PipelineStatus {\n Completed = 'completed',\n Canceled = 'canceled',\n Rejected = 'rejected',\n Running = 'running'\n}\n","/**\n * A list of known router events used by the Aurelia router\n * to signal the pipeline has come to a certain state\n */\n// const enum is preserved in tsconfig\nexport const enum RouterEvent {\n Processing = 'router:navigation:processing',\n Error = 'router:navigation:error',\n Canceled = 'router:navigation:canceled',\n Complete = 'router:navigation:complete',\n Success = 'router:navigation:success',\n ChildComplete = 'router:navigation:child:complete'\n}\n","/**\n * Available pipeline slot names to insert interceptor into router pipeline\n */\n// const enum is preserved in tsconfig\nexport const enum PipelineSlotName {\n /**\n * Authorization slot. Invoked early in the pipeline,\n * before `canActivate` hook of incoming route\n */\n Authorize = 'authorize',\n /**\n * Pre-activation slot. Invoked early in the pipeline,\n * Invoked timing:\n * - after Authorization slot\n * - after canActivate hook on new view model\n * - before deactivate hook on old view model\n * - before activate hook on new view model\n */\n PreActivate = 'preActivate',\n /**\n * Pre-render slot. Invoked later in the pipeline\n * Invokcation timing:\n * - after activate hook on new view model\n * - before commit step on new navigation instruction\n */\n PreRender = 'preRender',\n /**\n * Post-render slot. Invoked last in the pipeline\n */\n PostRender = 'postRender'\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { Container } from 'aurelia-dependency-injection';\r\nimport { DOM } from 'aurelia-pal';\r\nimport { TaskQueue } from 'aurelia-task-queue';\r\nimport { bindable, CompositionContext, CompositionEngine, customElement, noView, View, ViewResources, ViewSlot } from 'aurelia-templating';\r\n\r\n/**\r\n * Available activation strategies for the view and view-model bound to `` element\r\n *\r\n * @export\r\n * @enum {string}\r\n */\r\nexport enum ActivationStrategy {\r\n /**\r\n * Default activation strategy; the 'activate' lifecycle hook will be invoked when the model changes.\r\n */\r\n InvokeLifecycle = 'invoke-lifecycle',\r\n /**\r\n * The view/view-model will be recreated, when the \"model\" changes.\r\n */\r\n Replace = 'replace'\r\n}\r\n\r\n/**\r\n * Used to compose a new view / view-model template or bind to an existing instance.\r\n */\r\n@noView\r\n@customElement('compose')\r\nexport class Compose {\r\n\r\n /**@internal */\r\n static inject() {\r\n return [DOM.Element, Container, CompositionEngine, ViewSlot, ViewResources, TaskQueue];\r\n }\r\n\r\n /**\r\n * Model to bind the custom element to.\r\n *\r\n * @property model\r\n * @type {CustomElement}\r\n */\r\n @bindable model: any;\r\n /**\r\n * View to bind the custom element to.\r\n *\r\n * @property view\r\n * @type {HtmlElement}\r\n */\r\n @bindable view: any;\r\n /**\r\n * View-model to bind the custom element's template to.\r\n *\r\n * @property viewModel\r\n * @type {Class}\r\n */\r\n @bindable viewModel: any;\r\n\r\n /**\r\n * Strategy to activate the view-model. Default is \"invoke-lifecycle\".\r\n * Bind \"replace\" to recreate the view/view-model when the model changes.\r\n *\r\n * @property activationStrategy\r\n * @type {ActivationStrategy}\r\n */\r\n @bindable activationStrategy: ActivationStrategy = ActivationStrategy.InvokeLifecycle;\r\n\r\n /**\r\n * SwapOrder to control the swapping order of the custom element's view.\r\n *\r\n * @property view\r\n * @type {String}\r\n */\r\n @bindable swapOrder: any;\r\n\r\n /**\r\n *@internal\r\n */\r\n element: any;\r\n /**\r\n *@internal\r\n */\r\n container: any;\r\n /**\r\n *@internal\r\n */\r\n compositionEngine: any;\r\n /**\r\n *@internal\r\n */\r\n viewSlot: any;\r\n /**\r\n *@internal\r\n */\r\n viewResources: any;\r\n /**\r\n *@internal\r\n */\r\n taskQueue: any;\r\n /**\r\n *@internal\r\n */\r\n currentController: any;\r\n /**\r\n *@internal\r\n */\r\n currentViewModel: any;\r\n /**\r\n *@internal\r\n */\r\n changes: any;\r\n /**\r\n *@internal\r\n */\r\n owningView: View;\r\n /**\r\n *@internal\r\n */\r\n bindingContext: any;\r\n /**\r\n *@internal\r\n */\r\n overrideContext: any;\r\n /**\r\n *@internal\r\n */\r\n pendingTask: any;\r\n /**\r\n *@internal\r\n */\r\n updateRequested: any;\r\n\r\n /**\r\n * Creates an instance of Compose.\r\n * @param element The Compose element.\r\n * @param container The dependency injection container instance.\r\n * @param compositionEngine CompositionEngine instance to compose the element.\r\n * @param viewSlot The slot the view is injected in to.\r\n * @param viewResources Collection of resources used to compile the the view.\r\n * @param taskQueue The TaskQueue instance.\r\n */\r\n constructor(element, container, compositionEngine, viewSlot, viewResources, taskQueue) {\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\r\n /**\r\n * Invoked when the component has been created.\r\n *\r\n * @param owningView The view that this component was created inside of.\r\n */\r\n created(owningView: View) {\r\n this.owningView = owningView;\r\n }\r\n\r\n /**\r\n * Used to set the bindingContext.\r\n *\r\n * @param bindingContext The context in which the view model is executed in.\r\n * @param overrideContext The context in which the view model is executed in.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n let 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\r\n /**\r\n * Unbinds the Compose.\r\n */\r\n unbind() {\r\n this.changes = Object.create(null);\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n let returnToCache = true;\r\n let skipAnimation = true;\r\n this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound model changes.\r\n * @param newValue The new value.\r\n * @param oldValue The old value.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n modelChanged(newValue, oldValue) {\r\n this.changes.model = newValue;\r\n requestUpdate(this);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound view changes.\r\n * @param newValue The new value.\r\n * @param oldValue The old value.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n viewChanged(newValue, oldValue) {\r\n this.changes.view = newValue;\r\n requestUpdate(this);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound view model changes.\r\n * @param newValue The new value.\r\n * @param oldValue The old value.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n viewModelChanged(newValue, oldValue) {\r\n this.changes.viewModel = newValue;\r\n requestUpdate(this);\r\n }\r\n}\r\n\r\nfunction isEmpty(obj) {\r\n for (const _ in obj) {\r\n return false;\r\n }\r\n return true;\r\n}\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\n\r\nfunction createInstruction(composer: Compose, instruction: CompositionContext): CompositionContext {\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\n\r\nfunction processChanges(composer: Compose) {\r\n const changes = composer.changes;\r\n composer.changes = Object.create(null);\r\n\r\n const activationStrategy = determineActivationStrategy(composer);\r\n if (needsReInitialization(activationStrategy, changes)) {\r\n //when using `replace` activation strategy - we cant force the creation of a new VM\r\n const currentViewModel = activationStrategy === ActivationStrategy.Replace ? null : composer.currentViewModel;\r\n\r\n // init context\r\n let instruction = {\r\n view: composer.view,\r\n viewModel: currentViewModel || composer.viewModel,\r\n model: composer.model\r\n } as CompositionContext;\r\n\r\n // apply changes\r\n instruction = Object.assign(instruction, changes);\r\n\r\n // create context\r\n instruction = createInstruction(composer, instruction);\r\n\r\n composer.pendingTask = composer.compositionEngine.compose(instruction).then(controller => {\r\n composer.currentController = controller;\r\n composer.currentViewModel = controller ? controller.viewModel : null;\r\n });\r\n } else {\r\n // just try to activate the current view model\r\n composer.pendingTask = tryActivateViewModel(composer.currentViewModel, changes.model);\r\n if (!composer.pendingTask) { return; }\r\n }\r\n\r\n composer.pendingTask = composer.pendingTask\r\n .then(() => {\r\n completeCompositionTask(composer);\r\n }, reason => {\r\n completeCompositionTask(composer);\r\n throw reason;\r\n });\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\n\r\nfunction requestUpdate(composer: Compose) {\r\n if (composer.pendingTask || composer.updateRequested) { return; }\r\n composer.updateRequested = true;\r\n composer.taskQueue.queueMicroTask(() => {\r\n composer.updateRequested = false;\r\n processChanges(composer);\r\n });\r\n}\r\n\r\nfunction determineActivationStrategy(composer: Compose): ActivationStrategy {\r\n let activationStrategy = composer.activationStrategy;\r\n const vm = composer.currentViewModel;\r\n if (vm && typeof vm.determineActivationStrategy === 'function') {\r\n activationStrategy = vm.determineActivationStrategy();\r\n }\r\n return activationStrategy;\r\n}\r\n\r\nfunction needsReInitialization(activationStrategy: ActivationStrategy, changes: any): boolean {\r\n return 'view' in changes\r\n || 'viewModel' in changes\r\n || activationStrategy === ActivationStrategy.Replace;\r\n}\r\n","import { ViewFactory, ViewSlot } from 'aurelia-templating';\r\n\r\n/**\r\n * For internal use only. May change without warning.\r\n */\r\nexport class IfCore {\r\n /**\r\n * @internal\r\n */\r\n viewFactory: ViewFactory;\r\n /**\r\n * @internal\r\n */\r\n viewSlot: ViewSlot;\r\n /**\r\n * @internal\r\n */\r\n view: any;\r\n /**\r\n * @internal\r\n */\r\n bindingContext: any;\r\n /**\r\n * @internal\r\n */\r\n overrideContext: any;\r\n /**\r\n * @internal\r\n */\r\n showing: boolean;\r\n /**\r\n * @internal\r\n */\r\n cache: boolean | string;\r\n\r\n constructor(viewFactory: ViewFactory, viewSlot: 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 // If the child view is animated, `value` might not reflect the internal\r\n // state anymore, so we use `showing` for that.\r\n // Eventually, `showing` and `value` should be consistent.\r\n this.showing = false;\r\n this.cache = true;\r\n }\r\n\r\n bind(bindingContext, overrideContext) {\r\n // Store parent bindingContext, so we can pass it down\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n }\r\n\r\n unbind() {\r\n if (this.view === null) {\r\n return;\r\n }\r\n\r\n this.view.unbind();\r\n\r\n // It seems to me that this code is subject to race conditions when animating.\r\n // For example a view could be returned to the cache and reused while it's still\r\n // attached to the DOM and animated.\r\n if (!this.viewFactory.isCaching) {\r\n return;\r\n }\r\n\r\n if (this.showing) {\r\n this.showing = false;\r\n this.viewSlot.remove(this.view, /*returnToCache:*/true, /*skipAnimation:*/true);\r\n } else {\r\n this.view.returnToCache();\r\n }\r\n\r\n this.view = null;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _show() {\r\n if (this.showing) {\r\n // Ensures the view is bound.\r\n // It might not be the case when the if was unbound but not detached, then rebound.\r\n // Typical case where this happens is nested ifs\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n return;\r\n }\r\n\r\n if (this.view === null) {\r\n this.view = (this.viewFactory as any).create();\r\n }\r\n\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n\r\n this.showing = true;\r\n return this.viewSlot.add(this.view); // Promise or void\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _hide() {\r\n if (!this.showing) {\r\n return;\r\n }\r\n\r\n this.showing = false;\r\n let removed = this.viewSlot.remove(this.view); // Promise or View\r\n\r\n if (removed instanceof Promise) {\r\n return removed.then(() => {\r\n this._unbindView();\r\n });\r\n }\r\n\r\n this._unbindView();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _unbindView() {\r\n const 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}\r\n","import {BoundViewFactory, ViewSlot, bindable, customAttribute, templateController} from 'aurelia-templating';\r\nimport {inject} from 'aurelia-dependency-injection';\r\nimport {IfCore} from './if-core';\r\n\r\n/**\r\n * Binding to conditionally include or not include template logic depending on returned result\r\n * - value should be Boolean or will be treated as such (truthy / falsey)\r\n */\r\n@customAttribute('if')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class If extends IfCore {\r\n @bindable({ primaryProperty: true }) condition: any;\r\n @bindable swapOrder: 'before'|'with'|'after';\r\n @bindable cache: boolean|string = true;\r\n\r\n /**@internal*/\r\n animating: any;\r\n /**@internal*/\r\n elseVm: any;\r\n\r\n /**\r\n * Binds the if to the binding context and override context\r\n * @param bindingContext The binding context\r\n * @param overrideContext An override context for binding.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n super.bind(bindingContext, overrideContext);\r\n if (this.condition) {\r\n this._show();\r\n } else {\r\n this._hide();\r\n }\r\n }\r\n\r\n /**\r\n * Invoked everytime value property changes.\r\n * @param newValue The new value\r\n */\r\n conditionChanged(newValue) {\r\n this._update(newValue);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _update(show) {\r\n if (this.animating) {\r\n return;\r\n }\r\n\r\n let promise;\r\n if (this.elseVm) {\r\n promise = show ? this._swap(this.elseVm, this) : this._swap(this, this.elseVm);\r\n } else {\r\n promise = show ? this._show() : this._hide();\r\n }\r\n\r\n if (promise) {\r\n this.animating = true;\r\n promise.then(() => {\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\r\n /**\r\n * @internal\r\n */\r\n _swap(remove, add) {\r\n switch (this.swapOrder) {\r\n case 'before':\r\n return Promise.resolve(add._show()).then(() => remove._hide());\r\n case 'with':\r\n return Promise.all([ remove._hide(), add._show() ]);\r\n default: // \"after\", default and unknown values\r\n let promise = remove._hide();\r\n return promise ? promise.then(() => add._show()) : add._show();\r\n }\r\n }\r\n}\r\n","import { inject } from 'aurelia-dependency-injection';\r\nimport { BoundViewFactory, customAttribute, templateController, ViewSlot } from 'aurelia-templating';\r\nimport { IfCore } from './if-core';\r\n\r\n@customAttribute('else')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class Else extends IfCore {\r\n\r\n /**\r\n * @internal\r\n */\r\n ifVm: any;\r\n\r\n constructor(viewFactory, viewSlot) {\r\n super(viewFactory, viewSlot);\r\n this._registerInIf();\r\n }\r\n\r\n bind(bindingContext, overrideContext) {\r\n super.bind(bindingContext, overrideContext);\r\n // Render on initial\r\n if (this.ifVm.condition) {\r\n this._hide();\r\n } else {\r\n this._show();\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _registerInIf() {\r\n // We support the pattern
.\r\n // Obvisouly between the two, we must accepts text (spaces) and comments.\r\n // The `if` node is expected to be a comment anchor, because of `@templateController`.\r\n // To simplify the code we basically walk up to the first Aurelia predecessor,\r\n // so having static tags in between (no binding) would work but is not intended to be supported.\r\n let previous = (this.viewSlot as ViewSlot & { anchor: any}).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}\r\n","import {inject} from 'aurelia-dependency-injection';\r\nimport {BoundViewFactory, ViewSlot, customAttribute, templateController, ViewFactory} from 'aurelia-templating';\r\nimport {createOverrideContext} from 'aurelia-binding';\r\n\r\n/**\r\n * Creates a binding context for decandant elements to bind to.\r\n */\r\n@customAttribute('with')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class With {\r\n\r\n /**@internal*/\r\n viewFactory: any;\r\n /**@internal*/\r\n viewSlot: any;\r\n /**@internal*/\r\n parentOverrideContext: any;\r\n /**@internal*/\r\n view: any;\r\n\r\n value: any;\r\n\r\n /**\r\n * Creates an instance of With.\r\n * @param viewFactory The factory generating the view.\r\n * @param viewSlot The slot the view is injected in to.\r\n */\r\n constructor(viewFactory: ViewFactory, viewSlot: 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\r\n /**\r\n * Binds the With with provided binding context and override context.\r\n * @param bindingContext The binding context.\r\n * @param overrideContext An override context for binding.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n this.parentOverrideContext = overrideContext;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound value changes.\r\n * @param newValue The new value.\r\n */\r\n valueChanged(newValue) {\r\n let overrideContext = createOverrideContext(newValue, this.parentOverrideContext);\r\n let 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 } else {\r\n view.bind(newValue, overrideContext);\r\n }\r\n }\r\n\r\n /**\r\n * Unbinds With\r\n */\r\n unbind() {\r\n let view = this.view;\r\n this.parentOverrideContext = null;\r\n\r\n if (view) {\r\n view.unbind();\r\n }\r\n }\r\n}\r\n","import {\r\n createOverrideContext,\r\n BindingBehavior,\r\n ValueConverter,\r\n sourceContext,\r\n bindingMode,\r\n OverrideContext\r\n} from 'aurelia-binding';\r\n\r\nconst oneTime = bindingMode.oneTime;\r\n\r\n/**\r\n * Update the override context.\r\n * @param startIndex index in collection where to start updating.\r\n */\r\nexport function updateOverrideContexts(views, startIndex) {\r\n let length = views.length;\r\n\r\n if (startIndex > 0) {\r\n startIndex = startIndex - 1;\r\n }\r\n\r\n for (; startIndex < length; ++startIndex) {\r\n updateOverrideContext(views[startIndex].overrideContext, startIndex, length);\r\n }\r\n}\r\n\r\n/**\r\n * Creates a complete override context.\r\n * @param data The item's value.\r\n * @param index The item's index.\r\n * @param length The collections total length.\r\n * @param key The key in a key/value pair.\r\n */\r\nexport function createFullOverrideContext(repeat, data, index, length, key?: string): OverrideContext {\r\n let bindingContext = {};\r\n let overrideContext = createOverrideContext(bindingContext, repeat.scope.overrideContext);\r\n // is key/value pair (Map)\r\n if (typeof key !== 'undefined') {\r\n bindingContext[repeat.key] = key;\r\n bindingContext[repeat.value] = data;\r\n } else {\r\n bindingContext[repeat.local] = data;\r\n }\r\n updateOverrideContext(overrideContext, index, length);\r\n return overrideContext;\r\n}\r\n\r\n/**\r\n * Updates the override context.\r\n * @param context The context to be updated.\r\n * @param index The context's index.\r\n * @param length The collection's length.\r\n */\r\nexport function updateOverrideContext(overrideContext, index, length) {\r\n let first = (index === 0);\r\n let last = (index === length - 1);\r\n let even = index % 2 === 0;\r\n\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\n\r\n/**\r\n * Gets a repeat instruction's source expression.\r\n */\r\nexport function getItemsSourceExpression(instruction, attrName) {\r\n return instruction.behaviorInstructions\r\n .filter(bi => bi.originalAttrName === attrName)[0]\r\n .attributes\r\n .items\r\n .sourceExpression;\r\n}\r\n\r\n/**\r\n * Unwraps an expression to expose the inner, pre-converted / behavior-free expression.\r\n */\r\nexport function unwrapExpression(expression) {\r\n let 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\n\r\n/**\r\n * Returns whether an expression has the OneTimeBindingBehavior applied.\r\n */\r\nexport function 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\n\r\n/**\r\n * Forces a binding instance to reevaluate.\r\n */\r\nexport function updateOneTimeBinding(binding) {\r\n if (binding.call && binding.mode === oneTime) {\r\n binding.call(sourceContext);\r\n } else if (binding.updateOneTimeBindings) {\r\n binding.updateOneTimeBindings();\r\n }\r\n}\r\n\r\n/**\r\n * Returns the index of the element in an array, optionally using a matcher function.\r\n */\r\nexport function indexOf(array, item, matcher, startIndex?: number) {\r\n if (!matcher) {\r\n // native indexOf is more performant than a for loop\r\n return array.indexOf(item);\r\n }\r\n const length = array.length;\r\n for (let 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}\r\n","import {createFullOverrideContext, updateOverrideContexts, updateOverrideContext, indexOf} from './repeat-utilities';\r\nimport {mergeSplice} from 'aurelia-binding';\r\nimport { Repeat } from './repeat';\r\n\r\n/**\r\n * A strategy for repeating a template over an array.\r\n */\r\nexport class ArrayRepeatStrategy {\r\n /**\r\n * Gets an observer for the specified collection.\r\n * @param observerLocator The observer locator instance.\r\n * @param items The items to be observed.\r\n */\r\n getCollectionObserver(observerLocator, items) {\r\n return observerLocator.getArrayObserver(items);\r\n }\r\n\r\n /**\r\n * Handle the repeat's collection instance changing.\r\n * @param repeat The repeater instance.\r\n * @param items The new array instance.\r\n */\r\n instanceChanged(repeat, items) {\r\n const $repeat = repeat as Repeat;\r\n const itemsLength = items.length;\r\n\r\n // if the new instance does not contain any items,\r\n // just remove all views and don't do any further processing\r\n if (!items || itemsLength === 0) {\r\n $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n return;\r\n }\r\n\r\n const children = $repeat.views();\r\n const viewsLength = children.length;\r\n\r\n // likewise, if we previously didn't have any views,\r\n // simply make them and return\r\n if (viewsLength === 0) {\r\n this._standardProcessInstanceChanged($repeat, items);\r\n return;\r\n }\r\n\r\n if ($repeat.viewsRequireLifecycle) {\r\n const childrenSnapshot = children.slice(0);\r\n const itemNameInBindingContext = $repeat.local;\r\n const matcher = $repeat.matcher();\r\n\r\n // the cache of the current state (it will be transformed along with the views to keep track of indicies)\r\n let itemsPreviouslyInViews = [];\r\n const viewsToRemove = [];\r\n\r\n for (let index = 0; index < viewsLength; index++) {\r\n const view = childrenSnapshot[index];\r\n const oldItem = view.bindingContext[itemNameInBindingContext];\r\n\r\n if (indexOf(items, oldItem, matcher) === -1) {\r\n // remove the item if no longer in the new instance of items\r\n viewsToRemove.push(view);\r\n } else {\r\n // or add the item to the cache list\r\n itemsPreviouslyInViews.push(oldItem);\r\n }\r\n }\r\n\r\n let updateViews;\r\n let removePromise;\r\n\r\n if (itemsPreviouslyInViews.length > 0) {\r\n removePromise = $repeat.removeViews(viewsToRemove, true, !$repeat.viewsRequireLifecycle);\r\n updateViews = () => {\r\n // update views (create new and move existing)\r\n for (let index = 0; index < itemsLength; index++) {\r\n const item = items[index];\r\n const indexOfView = indexOf(itemsPreviouslyInViews, item, matcher, index);\r\n let view;\r\n\r\n if (indexOfView === -1) { // create views for new items\r\n const overrideContext = createFullOverrideContext($repeat, items[index], index, itemsLength);\r\n $repeat.insertView(index, overrideContext.bindingContext, overrideContext);\r\n // reflect the change in our cache list so indicies are valid\r\n itemsPreviouslyInViews.splice(index, 0, undefined);\r\n } else if (indexOfView === index) { // leave unchanged items\r\n view = children[indexOfView];\r\n itemsPreviouslyInViews[indexOfView] = undefined;\r\n } else { // move the element to the right place\r\n view = children[indexOfView];\r\n $repeat.moveView(indexOfView, index);\r\n itemsPreviouslyInViews.splice(indexOfView, 1);\r\n itemsPreviouslyInViews.splice(index, 0, undefined);\r\n }\r\n\r\n if (view) {\r\n updateOverrideContext(view.overrideContext, index, itemsLength);\r\n }\r\n }\r\n\r\n // remove extraneous elements in case of duplicates,\r\n // also update binding contexts if objects changed using the matcher function\r\n this._inPlaceProcessItems($repeat, items);\r\n };\r\n } else {\r\n // if all of the items are different, remove all and add all from scratch\r\n removePromise = $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n updateViews = () => this._standardProcessInstanceChanged($repeat, items);\r\n }\r\n\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(updateViews);\r\n } else {\r\n updateViews();\r\n }\r\n } else {\r\n // no lifecycle needed, use the fast in-place processing\r\n this._inPlaceProcessItems($repeat, items);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessInstanceChanged(repeat, items) {\r\n for (let i = 0, ii = items.length; i < ii; i++) {\r\n let overrideContext = createFullOverrideContext(repeat, items[i], i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _inPlaceProcessItems(repeat, items) {\r\n let itemsLength = items.length;\r\n let viewsLength = repeat.viewCount();\r\n // remove unneeded views.\r\n while (viewsLength > itemsLength) {\r\n viewsLength--;\r\n repeat.removeView(viewsLength, true, !repeat.viewsRequireLifecycle);\r\n }\r\n // avoid repeated evaluating the property-getter for the \"local\" property.\r\n let local = repeat.local;\r\n // re-evaluate bindings on existing views.\r\n for (let i = 0; i < viewsLength; i++) {\r\n let view = repeat.view(i);\r\n let last = i === itemsLength - 1;\r\n let middle = i !== 0 && !last;\r\n let bindingContext = view.bindingContext;\r\n let overrideContext = view.overrideContext;\r\n // any changes to the binding context?\r\n if (bindingContext[local] === items[i]\r\n && overrideContext.$middle === middle\r\n && overrideContext.$last === last) {\r\n // no changes. continue...\r\n continue;\r\n }\r\n // update the binding context and refresh the bindings.\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 // add new views\r\n for (let i = viewsLength; i < itemsLength; i++) {\r\n let overrideContext = createFullOverrideContext(repeat, items[i], i, itemsLength);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n\r\n /**\r\n * Handle the repeat's collection instance mutating.\r\n * @param repeat The repeat instance.\r\n * @param array The modified array.\r\n * @param splices Records of array changes.\r\n */\r\n instanceMutated(repeat, array, splices) {\r\n if (repeat.__queuedSplices) {\r\n for (let i = 0, ii = splices.length; i < ii; ++i) {\r\n let {index, removed, addedCount} = splices[i];\r\n mergeSplice(repeat.__queuedSplices, index, removed, addedCount);\r\n }\r\n // Array.prototype.slice is used here to clone the array\r\n repeat.__array = array.slice(0);\r\n return;\r\n }\r\n\r\n // Array.prototype.slice is used here to clone the array\r\n let maybePromise = this._runSplices(repeat, array.slice(0), splices);\r\n if (maybePromise instanceof Promise) {\r\n let queuedSplices = repeat.__queuedSplices = [];\r\n\r\n let runQueuedSplices = () => {\r\n if (!queuedSplices.length) {\r\n repeat.__queuedSplices = undefined;\r\n repeat.__array = undefined;\r\n return;\r\n }\r\n\r\n let nextPromise = this._runSplices(repeat, repeat.__array, queuedSplices) || Promise.resolve();\r\n queuedSplices = repeat.__queuedSplices = [];\r\n nextPromise.then(runQueuedSplices);\r\n };\r\n\r\n maybePromise.then(runQueuedSplices);\r\n }\r\n }\r\n\r\n /**\r\n * Run a normalised set of splices against the viewSlot children.\r\n * @param repeat The repeat instance.\r\n * @param array The modified array.\r\n * @param splices Records of array changes.\r\n * @return {Promise|undefined} A promise if animations have to be run.\r\n * @pre The splices must be normalised so as:\r\n * * Any item added may not be later removed.\r\n * * Removals are ordered by asending index\r\n * @internal\r\n */\r\n _runSplices(repeat, array, splices) {\r\n let removeDelta = 0;\r\n let rmPromises = [];\r\n\r\n for (let i = 0, ii = splices.length; i < ii; ++i) {\r\n let splice = splices[i];\r\n let removed = splice.removed;\r\n\r\n for (let j = 0, jj = removed.length; j < jj; ++j) {\r\n // the rmPromises.length correction works due to the ordered removal precondition\r\n let 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\r\n if (rmPromises.length > 0) {\r\n return Promise.all(rmPromises).then(() => {\r\n let spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n });\r\n }\r\n\r\n let spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _handleAddedSplices(repeat, array, splices) {\r\n let spliceIndex: number;\r\n let spliceIndexLow: number;\r\n let arrayLength = array.length;\r\n for (let i = 0, ii = splices.length; i < ii; ++i) {\r\n let splice = splices[i];\r\n let addIndex = spliceIndex = splice.index;\r\n let end = splice.index + splice.addedCount;\r\n\r\n if (typeof spliceIndexLow === 'undefined' || spliceIndexLow === null || spliceIndexLow > splice.index) {\r\n spliceIndexLow = spliceIndex;\r\n }\r\n\r\n for (; addIndex < end; ++addIndex) {\r\n let overrideContext = createFullOverrideContext(repeat, array[addIndex], addIndex, arrayLength);\r\n repeat.insertView(addIndex, overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n\r\n return spliceIndexLow;\r\n }\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts} from './repeat-utilities';\r\n\r\n/**\r\n * A strategy for repeating a template over a Map.\r\n */\r\nexport class MapRepeatStrategy {\r\n /**\r\n * Gets a Map observer.\r\n * @param items The items to be observed.\r\n */\r\n getCollectionObserver(observerLocator, items) {\r\n return observerLocator.getMapObserver(items);\r\n }\r\n\r\n /**\r\n * Process the provided Map entries.\r\n * @param items The entries to process.\r\n */\r\n instanceChanged(repeat, items) {\r\n let removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(() => this._standardProcessItems(repeat, items));\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessItems(repeat, items) {\r\n let index = 0;\r\n let overrideContext;\r\n\r\n items.forEach((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\r\n /**\r\n * Handle changes in a Map collection.\r\n * @param map The underlying Map collection.\r\n * @param records The change records.\r\n */\r\n instanceMutated(repeat, map, records) {\r\n let key;\r\n let i;\r\n let ii;\r\n let overrideContext;\r\n let removeIndex;\r\n let addIndex;\r\n let record;\r\n let rmPromises = [];\r\n let viewOrPromise;\r\n\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) { return; }\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\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(() => {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n } else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getViewIndexByKey(repeat, key) {\r\n let i: number;\r\n let ii: number;\r\n let child;\r\n\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\r\n return undefined;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/**\r\n * A strategy for repeating a template over null or undefined (does nothing)\r\n */\r\nexport class NullRepeatStrategy {\r\n instanceChanged(repeat, items): void {\r\n repeat.removeAllViews(true);\r\n }\r\n\r\n getCollectionObserver(observerLocator, items): any {\r\n // empty\r\n }\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts} from './repeat-utilities';\r\n\r\n/**\r\n * A strategy for repeating a template over a number.\r\n */\r\nexport class NumberRepeatStrategy {\r\n /**\r\n * Return the strategies collection observer. In this case none.\r\n */\r\n getCollectionObserver() {\r\n return null;\r\n }\r\n\r\n /**\r\n * Process the provided Number.\r\n * @param value The Number of how many time to iterate.\r\n */\r\n instanceChanged(repeat, value) {\r\n let removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(() => this._standardProcessItems(repeat, value));\r\n return;\r\n }\r\n this._standardProcessItems(repeat, value);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessItems(repeat, value) {\r\n let childrenLength = repeat.viewCount();\r\n let i;\r\n let ii;\r\n let overrideContext;\r\n let viewsToRemove;\r\n\r\n value = Math.floor(value);\r\n viewsToRemove = childrenLength - value;\r\n\r\n if (viewsToRemove > 0) {\r\n if (viewsToRemove > childrenLength) {\r\n viewsToRemove = childrenLength;\r\n }\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\r\n return;\r\n }\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\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts} from './repeat-utilities';\r\n\r\n/**\r\n * A strategy for repeating a template over a Set.\r\n */\r\nexport class SetRepeatStrategy {\r\n /**\r\n * Gets a Set observer.\r\n * @param items The items to be observed.\r\n */\r\n getCollectionObserver(observerLocator, items) {\r\n return observerLocator.getSetObserver(items);\r\n }\r\n\r\n /**\r\n * Process the provided Set entries.\r\n * @param items The entries to process.\r\n */\r\n instanceChanged(repeat, items) {\r\n let removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(() => this._standardProcessItems(repeat, items));\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessItems(repeat, items) {\r\n let index = 0;\r\n let overrideContext;\r\n\r\n items.forEach(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\r\n /**\r\n * Handle changes in a Set collection.\r\n * @param repeat The repeat instance.\r\n * @param set The underlying Set collection.\r\n * @param records The change records.\r\n */\r\n instanceMutated(repeat, set, records) {\r\n let value;\r\n let i;\r\n let ii;\r\n let overrideContext;\r\n let removeIndex;\r\n let record;\r\n let rmPromises = [];\r\n let viewOrPromise;\r\n\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 let 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\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(() => {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n } else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getViewIndexByValue(repeat, value) {\r\n let i;\r\n let ii;\r\n let child;\r\n\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\r\n return undefined;\r\n }\r\n}\r\n","import { ArrayRepeatStrategy } from './array-repeat-strategy';\r\nimport { MapRepeatStrategy } from './map-repeat-strategy';\r\nimport { NullRepeatStrategy } from './null-repeat-strategy';\r\nimport { NumberRepeatStrategy } from './number-repeat-strategy';\r\nimport { Repeat } from './repeat';\r\nimport { SetRepeatStrategy } from './set-repeat-strategy';\r\n\r\n/**\r\n * A strategy is for repeating a template over an iterable or iterable-like object.\r\n */\r\nexport interface RepeatStrategy {\r\n instanceChanged(repeat: Repeat, items: any): void;\r\n instanceMutated(repeat: Repeat, items: any, changes: any): void;\r\n getCollectionObserver(observerLocator: any, items: any): any;\r\n}\r\n\r\n/**\r\n * Locates the best strategy to best repeating a template over different types of collections.\r\n * Custom strategies can be plugged in as well.\r\n */\r\nexport class RepeatStrategyLocator {\r\n\r\n /**@internal*/\r\n matchers: any[];\r\n /**@internal*/\r\n strategies: any[];\r\n\r\n /**\r\n * Creates a new RepeatStrategyLocator.\r\n */\r\n constructor() {\r\n this.matchers = [];\r\n this.strategies = [];\r\n\r\n this.addStrategy(items => items === null || items === undefined, new NullRepeatStrategy() as RepeatStrategy);\r\n this.addStrategy(items => items instanceof Array, new ArrayRepeatStrategy());\r\n this.addStrategy(items => items instanceof Map, new MapRepeatStrategy());\r\n this.addStrategy(items => items instanceof Set, new SetRepeatStrategy());\r\n this.addStrategy(items => typeof items === 'number', new NumberRepeatStrategy() as Partial as RepeatStrategy);\r\n }\r\n\r\n /**\r\n * Adds a repeat strategy to be located when repeating a template over different collection types.\r\n * @param strategy A repeat strategy that can iterate a specific collection type.\r\n */\r\n addStrategy(matcher: (items: any) => boolean, strategy: RepeatStrategy) {\r\n this.matchers.push(matcher);\r\n this.strategies.push(strategy);\r\n }\r\n\r\n /**\r\n * Gets the best strategy to handle iteration.\r\n */\r\n getStrategy(items: any): RepeatStrategy {\r\n let matchers = this.matchers;\r\n\r\n for (let 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\r\n return null;\r\n }\r\n}\r\n","/**\r\n* Behaviors that do not require the composition lifecycle callbacks when replacing\r\n* their binding context.\r\n*/\r\nexport const lifecycleOptionalBehaviors = ['focus', 'if', 'else', 'repeat', 'show', 'hide', 'with'];\r\n\r\nfunction behaviorRequiresLifecycle(instruction) {\r\n let t = instruction.type;\r\n let 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\n\r\nfunction targetRequiresLifecycle(instruction) {\r\n // check each behavior instruction.\r\n let behaviors = instruction.behaviorInstructions;\r\n if (behaviors) {\r\n let 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\r\n // check the instruction's view factory (if it has one).\r\n return instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\n\r\nexport function viewsRequireLifecycle(viewFactory) {\r\n // already analyzed?\r\n if ('_viewsRequireLifecycle' in viewFactory) {\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n\r\n // set prop to avoid infinite recursion.\r\n viewFactory._viewsRequireLifecycle = false;\r\n\r\n // access inner view factory.\r\n if (viewFactory.viewFactory) {\r\n viewFactory._viewsRequireLifecycle = viewsRequireLifecycle(viewFactory.viewFactory);\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n\r\n // template uses animation?\r\n if (viewFactory.template.querySelector('.au-animate')) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n\r\n // target instructions require lifecycle?\r\n for (let 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\r\n // safe to skip lifecycle.\r\n viewFactory._viewsRequireLifecycle = false;\r\n return false;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { View } from 'aurelia-templating';\r\n\r\n/**\r\n* An abstract base class for elements and attributes that repeat\r\n* views.\r\n*/\r\nexport class AbstractRepeater {\r\n constructor(options) {\r\n Object.assign(this, {\r\n local: 'items',\r\n viewsRequireLifecycle: true\r\n }, options);\r\n }\r\n\r\n /**\r\n * Returns the number of views the repeater knows about.\r\n *\r\n * @return the number of views.\r\n */\r\n viewCount(): number {\r\n throw new Error('subclass must implement `viewCount`');\r\n }\r\n\r\n /**\r\n * Returns all of the repeaters views as an array.\r\n *\r\n * @return The repeater's array of views;\r\n */\r\n views(): any[] {\r\n throw new Error('subclass must implement `views`');\r\n }\r\n\r\n /**\r\n * Returns a single view from the repeater at the provided index.\r\n *\r\n * @param index The index of the requested view.\r\n * @return {View|ViewSlot} The requested view.\r\n */\r\n view(index: number): any {\r\n throw new Error('subclass must implement `view`');\r\n }\r\n\r\n /**\r\n * Returns the matcher function to be used by the repeater, or null if strict matching is to be performed.\r\n *\r\n * @return The requested matcher function.\r\n */\r\n matcher(): Function | null {\r\n throw new Error('subclass must implement `matcher`');\r\n }\r\n\r\n /**\r\n * Adds a view to the repeater, binding the view to the\r\n * provided contexts.\r\n *\r\n * @param {Object} bindingContext The binding context to bind the new view to.\r\n * @param {Object} overrideContext A secondary binding context that can override the primary context.\r\n */\r\n addView(bindingContext, overrideContext): any {\r\n throw new Error('subclass must implement `addView`');\r\n }\r\n\r\n /**\r\n * Inserts a view to the repeater at a specific index, binding the view to the\r\n * provided contexts.\r\n *\r\n * @param {Number} index The index at which to create the new view at.\r\n * @param {Object} bindingContext The binding context to bind the new view to.\r\n * @param {Object} overrideContext A secondary binding context that can override the primary context.\r\n */\r\n insertView(index, bindingContext, overrideContext): any {\r\n throw new Error('subclass must implement `insertView`');\r\n }\r\n\r\n /**\r\n * Moves a view across the repeater.\r\n *\r\n * @param {Number} sourceIndex The index of the view to be moved.\r\n * @param {Number} sourceIndex The index where the view should be placed at.\r\n */\r\n moveView(sourceIndex, targetIndex): any {\r\n throw new Error('subclass must implement `moveView`');\r\n }\r\n\r\n /**\r\n * Removes all views from the repeater.\r\n * @param {Boolean} returnToCache Should the view be returned to the view cache?\r\n * @param {Boolean} skipAnimation Should the removal animation be skipped?\r\n * @return {Promise|null}\r\n */\r\n removeAllViews(returnToCache?: boolean, skipAnimation?: boolean): any {\r\n throw new Error('subclass must implement `removeAllViews`');\r\n }\r\n\r\n /**\r\n * Removes an array of Views from the repeater.\r\n *\r\n * @param {Array} viewsToRemove The array of views to be removed.\r\n * @param {Boolean} returnToCache Should the view be returned to the view cache?\r\n * @param {Boolean} skipAnimation Should the removal animation be skipped?\r\n */\r\n removeViews(viewsToRemove: Array, returnToCache?: boolean, skipAnimation?: boolean): any {\r\n throw new Error('subclass must implement `removeView`');\r\n }\r\n\r\n /**\r\n * Removes a view from the repeater at a specific index.\r\n *\r\n * @param {Number} index The index of the view to be removed.\r\n * @param {Boolean} returnToCache Should the view be returned to the view cache?\r\n * @param {Boolean} skipAnimation Should the removal animation be skipped?\r\n */\r\n removeView(index: number, returnToCache?: boolean, skipAnimation?: boolean): any {\r\n throw new Error('subclass must implement `removeView`');\r\n }\r\n\r\n /**\r\n * Forces a particular view to update it's bindings, called as part of\r\n * an in-place processing of items for better performance\r\n *\r\n * @param {Object} view the target view for bindings updates\r\n */\r\n updateBindings(view: View) {\r\n throw new Error('subclass must implement `updateBindings`');\r\n }\r\n}\r\n","/*eslint no-loop-func:0, no-unused-vars:0*/\r\nimport {inject} from 'aurelia-dependency-injection';\r\nimport {ObserverLocator, BindingExpression} from 'aurelia-binding';\r\nimport {\r\n BoundViewFactory,\r\n TargetInstruction,\r\n ViewSlot,\r\n ViewResources,\r\n customAttribute,\r\n bindable,\r\n templateController,\r\n View,\r\n ViewFactory\r\n} from 'aurelia-templating';\r\nimport {RepeatStrategyLocator} from './repeat-strategy-locator';\r\nimport {\r\n getItemsSourceExpression,\r\n unwrapExpression,\r\n isOneTime,\r\n updateOneTimeBinding\r\n} from './repeat-utilities';\r\nimport {viewsRequireLifecycle} from './analyze-view-factory';\r\nimport {AbstractRepeater} from './abstract-repeater';\r\n\r\nconst matcherExtractionMarker = '__marker_extracted__';\r\n\r\n/**\r\n * Binding to iterate over iterable objects (Array, Map and Number) to genereate a template for each iteration.\r\n */\r\n@customAttribute('repeat')\r\n@templateController\r\n@inject(BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, ObserverLocator, RepeatStrategyLocator)\r\nexport class Repeat extends AbstractRepeater {\r\n\r\n /**\r\n * Setting this to `true` to enable legacy behavior, where a repeat would take first `matcher` binding\r\n * any where inside its view if there's no `matcher` binding on the repeated element itself.\r\n *\r\n * Default value is true to avoid breaking change\r\n * @default true\r\n */\r\n static useInnerMatcher = true;\r\n\r\n /**\r\n * List of items to bind the repeater to.\r\n *\r\n * @property items\r\n */\r\n @bindable items;\r\n /**\r\n * Local variable which gets assigned on each iteration.\r\n *\r\n * @property local\r\n */\r\n @bindable local;\r\n /**\r\n * Key when iterating over Maps.\r\n *\r\n * @property key\r\n */\r\n @bindable key;\r\n /**\r\n * Value when iterating over Maps.\r\n *\r\n * @property value\r\n */\r\n @bindable value;\r\n\r\n /**@internal*/\r\n viewFactory: any;\r\n /**@internal*/\r\n instruction: any;\r\n /**@internal*/\r\n viewSlot: any;\r\n /**@internal*/\r\n lookupFunctions: any;\r\n /**@internal*/\r\n observerLocator: any;\r\n /**@internal*/\r\n strategyLocator: any;\r\n /**@internal*/\r\n ignoreMutation: boolean;\r\n /**@internal*/\r\n sourceExpression: any;\r\n /**@internal*/\r\n isOneTime: any;\r\n /**@internal*/\r\n viewsRequireLifecycle: any;\r\n /**@internal*/\r\n scope: { bindingContext: any; overrideContext: any; };\r\n /**@internal*/\r\n matcherBinding: any;\r\n /**@internal*/\r\n collectionObserver: any;\r\n /**@internal*/\r\n strategy: any;\r\n /**@internal */\r\n callContext: 'handleCollectionMutated' | 'handleInnerCollectionMutated';\r\n\r\n /**\r\n * Creates an instance of Repeat.\r\n * @param viewFactory The factory generating the view\r\n * @param instruction The instructions for how the element should be enhanced.\r\n * @param viewResources Collection of resources used to compile the the views.\r\n * @param viewSlot The slot the view is injected in to.\r\n * @param observerLocator The observer locator instance.\r\n * @param collectionStrategyLocator The strategy locator to locate best strategy to iterate the collection.\r\n */\r\n constructor(viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator) {\r\n super({\r\n local: 'item',\r\n viewsRequireLifecycle: viewsRequireLifecycle(viewFactory)\r\n });\r\n\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 }\r\n\r\n call(context, changes) {\r\n this[context](this.items, changes);\r\n }\r\n\r\n /**\r\n * Binds the repeat to the binding context and override context.\r\n * @param bindingContext The binding context.\r\n * @param overrideContext An override context for binding.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n this.scope = { bindingContext, overrideContext };\r\n const 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\r\n /**\r\n * Unbinds the repeat\r\n */\r\n unbind() {\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\r\n /**\r\n * @internal\r\n */\r\n _unsubscribeCollection() {\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\r\n /**\r\n * Invoked everytime the item property changes.\r\n */\r\n itemsChanged() {\r\n this._unsubscribeCollection();\r\n\r\n // still bound?\r\n if (!this.scope) {\r\n return;\r\n }\r\n\r\n let items = this.items;\r\n this.strategy = this.strategyLocator.getStrategy(items);\r\n if (!this.strategy) {\r\n throw new Error(`Value for '${this.sourceExpression}' is non-repeatable`);\r\n }\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(() => {\r\n this.ignoreMutation = false;\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getInnerCollection() {\r\n let 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\r\n /**\r\n * Invoked when the underlying collection changes.\r\n */\r\n handleCollectionMutated(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\r\n /**\r\n * Invoked when the underlying inner collection changes.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n handleInnerCollectionMutated(collection, changes) {\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n // guard against source expressions that have observable side-effects that could\r\n // cause an infinite loop- eg a value converter that mutates the source array.\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.ignoreMutation = true;\r\n let newItems = this.sourceExpression.evaluate(this.scope, this.lookupFunctions);\r\n this.observerLocator.taskQueue.queueMicroTask(() => this.ignoreMutation = false);\r\n\r\n // call itemsChanged...\r\n if (newItems === this.items) {\r\n // call itemsChanged directly.\r\n this.itemsChanged();\r\n } else {\r\n // call itemsChanged indirectly by assigning the new collection value to\r\n // the items property, which will trigger the self-subscriber to call itemsChanged.\r\n this.items = newItems;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _observeInnerCollection() {\r\n let items = this._getInnerCollection();\r\n let 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\r\n /**\r\n * @internal\r\n */\r\n _observeCollection() {\r\n let 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\r\n /**\r\n * Capture and remove matcher binding is a way to cache matcher binding + reduce redundant work\r\n * caused by multiple unnecessary matcher bindings\r\n * @internal\r\n */\r\n _captureAndRemoveMatcherBinding() {\r\n const viewFactory: ViewFactory = this.viewFactory.viewFactory;\r\n if (viewFactory) {\r\n const template = viewFactory.template;\r\n const instructions = viewFactory.instructions as Record;\r\n // legacy behavior enabled when Repeat.useInnerMathcer === true\r\n if (Repeat.useInnerMatcher) {\r\n return extractMatcherBindingExpression(instructions);\r\n }\r\n // if the template has more than 1 immediate child element\r\n // it's a repeat put on a