UNPKG

181 kBSource Map (JSON)View Raw
1{"version":3,"file":"aurelia-templating-resources.js","sources":["../../node_modules/tslib/tslib.es6.js","../../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"],"sourcesContent":["/*! *****************************************************************************\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 { 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 `<compose/>` 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 if (needsReInitialization(composer, changes)) {\r\n // init context\r\n let instruction = {\r\n view: composer.view,\r\n viewModel: composer.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 needsReInitialization(composer: Compose, changes: any) {\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\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 <div if.bind=\"x\"></div><div else></div>.\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) {\r\n repeat.removeAllViews(true);\r\n }\r\n\r\n getCollectionObserver(observerLocator, items) {\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<RepeatStrategy> 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<View>, 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<string, TargetInstruction>;\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 <template/> element\r\n // not valid for matcher binding\r\n if (getChildrenCount(template) > 1) {\r\n return undefined;\r\n }\r\n // if the root element does not have any instruction\r\n // it means there's no matcher binding\r\n // no need to do any further work\r\n const repeatedElement = getFirstElementChild(template);\r\n if (!repeatedElement.hasAttribute('au-target-id')) {\r\n return undefined;\r\n }\r\n const repeatedElementTargetId = repeatedElement.getAttribute('au-target-id');\r\n return extractMatcherBindingExpression(instructions, repeatedElementTargetId);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n // @override AbstractRepeater\r\n viewCount() { return this.viewSlot.children.length; }\r\n views() { return this.viewSlot.children; }\r\n view(index) { return this.viewSlot.children[index]; }\r\n matcher() {\r\n const matcherBinding = this.matcherBinding;\r\n return matcherBinding\r\n ? matcherBinding.sourceExpression.evaluate(this.scope, matcherBinding.lookupFunctions)\r\n : null;\r\n }\r\n\r\n addView(bindingContext, overrideContext) {\r\n let view = this.viewFactory.create();\r\n view.bind(bindingContext, overrideContext);\r\n this.viewSlot.add(view);\r\n }\r\n\r\n insertView(index, bindingContext, overrideContext) {\r\n let view = this.viewFactory.create();\r\n view.bind(bindingContext, overrideContext);\r\n this.viewSlot.insert(index, view);\r\n }\r\n\r\n moveView(sourceIndex, targetIndex) {\r\n this.viewSlot.move(sourceIndex, targetIndex);\r\n }\r\n\r\n removeAllViews(returnToCache, skipAnimation) {\r\n return this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n }\r\n\r\n removeViews(viewsToRemove, returnToCache, skipAnimation) {\r\n return this.viewSlot.removeMany(viewsToRemove, returnToCache, skipAnimation);\r\n }\r\n\r\n removeView(index, returnToCache, skipAnimation) {\r\n return this.viewSlot.removeAt(index, returnToCache, skipAnimation);\r\n }\r\n\r\n updateBindings(view: View) {\r\n const $view = view as View & { bindings: any[]; controllers: any[] };\r\n let j = $view.bindings.length;\r\n while (j--) {\r\n updateOneTimeBinding($view.bindings[j]);\r\n }\r\n j = $view.controllers.length;\r\n while (j--) {\r\n let k = $view.controllers[j].boundProperties.length;\r\n while (k--) {\r\n let binding = $view.controllers[j].boundProperties[k].binding;\r\n updateOneTimeBinding(binding);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Iterate a record of TargetInstruction and their expressions to find first binding expression that targets property named \"matcher\"\r\n */\r\nconst extractMatcherBindingExpression = (instructions: Record<string, TargetInstruction>, targetedElementId?: string): BindingExpression | undefined => {\r\n const instructionIds = Object.keys(instructions);\r\n for (let i = 0; i < instructionIds.length; i++) {\r\n const instructionId = instructionIds[i];\r\n // matcher binding can only works when root element is not a <template/>\r\n // checking first el child\r\n if (targetedElementId !== undefined && instructionId !== targetedElementId) {\r\n continue;\r\n }\r\n const expressions = instructions[instructionId].expressions as BindingExpression[];\r\n if (expressions) {\r\n for (let ii = 0; ii < expressions.length; ii++) {\r\n if (expressions[ii].targetProperty === 'matcher') {\r\n const matcherBindingExpression = expressions[ii];\r\n expressions.splice(ii, 1);\r\n return matcherBindingExpression;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Calculate the number of child elements of an element\r\n *\r\n * Note: API .childElementCount/.children are not available in IE11\r\n */\r\nconst getChildrenCount = (el: Element | DocumentFragment) => {\r\n const childNodes = el.childNodes;\r\n let count = 0;\r\n for (let i = 0, ii = childNodes.length; ii > i; ++i) {\r\n if (childNodes[i].nodeType === /* element */1) {\r\n ++count;\r\n }\r\n }\r\n return count;\r\n};\r\n\r\n/**\r\n * Get the first child element of an element / doc fragment\r\n *\r\n * Note: API .firstElementChild is not available in IE11\r\n */\r\nconst getFirstElementChild = (el: Element | DocumentFragment) => {\r\n let firstChild = el.firstChild as Element;\r\n while (firstChild !== null) {\r\n if (firstChild.nodeType === /* element */1) {\r\n return firstChild;\r\n }\r\n firstChild = firstChild.nextSibling as Element;\r\n }\r\n return null;\r\n};\r\n","import {FEATURE, DOM} from 'aurelia-pal';\r\n\r\nexport const aureliaHideClassName = 'aurelia-hide';\r\n\r\nconst aureliaHideClass = `.${aureliaHideClassName} { display:none !important; }`;\r\n\r\nexport function injectAureliaHideStyleAtHead() {\r\n DOM.injectStyles(aureliaHideClass);\r\n}\r\n\r\nexport function injectAureliaHideStyleAtBoundary(domBoundary: any) {\r\n if (FEATURE.shadowDOM && domBoundary && !domBoundary.hasAureliaHideStyle) {\r\n domBoundary.hasAureliaHideStyle = true;\r\n DOM.injectStyles(aureliaHideClass, domBoundary);\r\n }\r\n}\r\n","import {Optional} from 'aurelia-dependency-injection';\r\nimport {customAttribute, Animator} from 'aurelia-templating';\r\nimport {DOM} from 'aurelia-pal';\r\nimport {injectAureliaHideStyleAtBoundary, aureliaHideClassName} from './aurelia-hide-style';\r\n\r\n/**\r\n * Binding to conditionally show markup in the DOM based on the value.\r\n * - different from \"if\" in that the markup is still added to the DOM, simply not shown.\r\n */\r\n@customAttribute('show')\r\nexport class Show {\r\n\r\n /**@internal*/\r\n element: any;\r\n /**@internal*/\r\n animator: any;\r\n /**@internal*/\r\n domBoundary: any;\r\n\r\n value: any;\r\n\r\n /**@internal */\r\n static inject() {\r\n return [DOM.Element, Animator, Optional.of(DOM.boundary, true)];\r\n }\r\n\r\n /**\r\n * Creates a new instance of Show.\r\n * @param element Target element to conditionally show.\r\n * @param animator The animator that conditionally adds or removes the aurelia-hide css class.\r\n * @param domBoundary The DOM boundary. Used when the behavior appears within a component that utilizes the shadow DOM.\r\n */\r\n constructor(element, animator, domBoundary) {\r\n this.element = element;\r\n this.animator = animator;\r\n this.domBoundary = domBoundary;\r\n }\r\n\r\n /**\r\n * Invoked when the behavior is created.\r\n */\r\n created() {\r\n injectAureliaHideStyleAtBoundary(this.domBoundary);\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 element = this.element;\r\n let animator = this.animator;\r\n if (newValue) {\r\n animator.removeClass(element, aureliaHideClassName);\r\n } else {\r\n animator.addClass(element, aureliaHideClassName);\r\n }\r\n }\r\n\r\n /**\r\n * Binds the Show attribute.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import {Optional} from 'aurelia-dependency-injection';\r\nimport {customAttribute, Animator} from 'aurelia-templating';\r\nimport {DOM} from 'aurelia-pal';\r\nimport {injectAureliaHideStyleAtBoundary, aureliaHideClassName} from './aurelia-hide-style';\r\n\r\n/**\r\n * Binding to conditionally show markup in the DOM based on the value.\r\n * - different from \"if\" in that the markup is still added to the DOM, simply not shown.\r\n */\r\n@customAttribute('hide')\r\nexport class Hide {\r\n /**\r\n * @internal\r\n */\r\n element: any;\r\n /**\r\n * @internal\r\n */\r\n animator: any;\r\n /**\r\n * @internal\r\n */\r\n domBoundary: any;\r\n\r\n /**@internal */\r\n static inject() {\r\n return [DOM.Element, Animator, Optional.of(DOM.boundary, true)];\r\n }\r\n\r\n /**\r\n * Creates a new instance of Hide.\r\n * @param element Target element to conditionally hide.\r\n * @param animator The animator that conditionally adds or removes the aurelia-hide css class.\r\n * @param domBoundary The DOM boundary. Used when the behavior appears within a component that utilizes the shadow DOM.\r\n */\r\n constructor(element, animator, domBoundary) {\r\n this.element = element;\r\n this.animator = animator;\r\n this.domBoundary = domBoundary;\r\n }\r\n\r\n /**\r\n * Invoked when the behavior is created.\r\n */\r\n created() {\r\n injectAureliaHideStyleAtBoundary(this.domBoundary);\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 if (newValue) {\r\n this.animator.addClass(this.element, aureliaHideClassName);\r\n } else {\r\n this.animator.removeClass(this.element, aureliaHideClassName);\r\n }\r\n }\r\n\r\n /**\r\n * Binds the Hide attribute.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n value(value: any) {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","/**\r\n * Default Html Sanitizer to prevent script injection.\r\n */\r\nexport class HTMLSanitizer {\r\n /**\r\n * Sanitizes the provided input.\r\n * @param input The input to be sanitized.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n sanitize(input): any {\r\n throw new Error(`To protect the application against a wide variety of sophisticated XSS attacks.\r\nPlease see https://aurelia.io/docs/binding/basics#element-content for instructions on how to use a secure solution like DOMPurify or sanitize-html.`);\r\n }\r\n}\r\n","import { valueConverter } from 'aurelia-binding';\r\nimport { inject } from 'aurelia-dependency-injection';\r\nimport { HTMLSanitizer } from './html-sanitizer';\r\n\r\n/**\r\n * Simple html sanitization converter to preserve whitelisted elements and attributes on a bound property containing html.\r\n */\r\n@valueConverter('sanitizeHTML')\r\n@inject(HTMLSanitizer)\r\nexport class SanitizeHTMLValueConverter {\r\n /**@internal */\r\n sanitizer: HTMLSanitizer;\r\n /**\r\n * Creates an instanse of the value converter.\r\n * @param sanitizer The html sanitizer.\r\n */\r\n constructor(sanitizer: HTMLSanitizer) {\r\n this.sanitizer = sanitizer;\r\n }\r\n\r\n /**\r\n * Process the provided markup that flows to the view.\r\n * @param untrustedMarkup The untrusted markup to be sanitized.\r\n */\r\n toView(untrustedMarkup) {\r\n if (untrustedMarkup === null || untrustedMarkup === undefined) {\r\n return null;\r\n }\r\n\r\n return this.sanitizer.sanitize(untrustedMarkup);\r\n }\r\n}\r\n","import {inject} from 'aurelia-dependency-injection';\r\nimport {BoundViewFactory, ViewSlot, customAttribute, templateController, ViewFactory, View} from 'aurelia-templating';\r\n\r\n/**\r\n * Marks any part of a view to be replacable by the consumer.\r\n */\r\n@customAttribute('replaceable')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class Replaceable {\r\n\r\n /**@internal*/\r\n viewFactory: ViewFactory;\r\n /**@internal*/\r\n viewSlot: ViewSlot;\r\n /**@internal*/\r\n view: View;\r\n\r\n /**\r\n * @param viewFactory target The factory generating the view.\r\n * @param viewSlot viewSlot The slot the view is injected in to.\r\n */\r\n constructor(viewFactory: ViewFactory, viewSlot: ViewSlot) {\r\n this.viewFactory = viewFactory; // This is referenced internally in the Controller's bind method.\r\n this.viewSlot = viewSlot;\r\n this.view = null;\r\n }\r\n\r\n /**\r\n * Binds the replaceable 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 if (this.view === null) {\r\n this.view = (this.viewFactory as any).create();\r\n this.viewSlot.add(this.view);\r\n }\r\n\r\n this.view.bind(bindingContext, overrideContext);\r\n }\r\n\r\n /**\r\n * Unbinds the replaceable.\r\n */\r\n unbind() {\r\n this.view.unbind();\r\n }\r\n}\r\n","import {customAttribute} from 'aurelia-templating';\r\nimport {bindingMode} from 'aurelia-binding';\r\nimport {TaskQueue} from 'aurelia-task-queue';\r\nimport {DOM} from 'aurelia-pal';\r\n\r\n/**\r\n * CustomAttribute that binds provided DOM element's focus attribute with a property on the viewmodel.\r\n */\r\n@customAttribute('focus', bindingMode.twoWay)\r\nexport class Focus {\r\n /**\r\n *@internal\r\n */\r\n element: any;\r\n /**\r\n *@internal\r\n */\r\n taskQueue: any;\r\n /**\r\n *@internal\r\n */\r\n isAttached: boolean;\r\n /**\r\n *@internal\r\n */\r\n needsApply: boolean;\r\n /**\r\n *@internal\r\n */\r\n value: any;\r\n\r\n /**@internal */\r\n static inject() {\r\n return [DOM.Element, TaskQueue];\r\n }\r\n /**\r\n * Creates an instance of Focus.\r\n * @paramelement Target element on where attribute is placed on.\r\n * @param taskQueue The TaskQueue instance.\r\n */\r\n constructor(element, taskQueue) {\r\n this.element = element;\r\n this.taskQueue = taskQueue;\r\n this.isAttached = false;\r\n this.needsApply = false;\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound value changes.\r\n */\r\n valueChanged() {\r\n if (this.isAttached) {\r\n this._apply();\r\n } else {\r\n this.needsApply = true;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _apply() {\r\n if (this.value) {\r\n this.taskQueue.queueMicroTask(() => {\r\n if (this.value) {\r\n this.element.focus();\r\n }\r\n });\r\n } else {\r\n this.element.blur();\r\n }\r\n }\r\n\r\n /**\r\n * Invoked when the attribute is attached to the DOM.\r\n */\r\n attached() {\r\n this.isAttached = true;\r\n if (this.needsApply) {\r\n this.needsApply = false;\r\n this._apply();\r\n }\r\n this.element.addEventListener('focus', this);\r\n this.element.addEventListener('blur', this);\r\n }\r\n\r\n /**\r\n * Invoked when the attribute is detached from the DOM.\r\n */\r\n detached() {\r\n this.isAttached = false;\r\n this.element.removeEventListener('focus', this);\r\n this.element.removeEventListener('blur', this);\r\n }\r\n\r\n handleEvent(e) {\r\n if (e.type === 'focus') {\r\n this.value = true;\r\n } else if (DOM.activeElement !== this.element) {\r\n this.value = false;\r\n }\r\n }\r\n}\r\n","/*eslint new-cap:0, padded-blocks:0*/\r\nimport {ViewResources, resource, ViewCompileInstruction} from 'aurelia-templating';\r\nimport {Loader} from 'aurelia-loader';\r\nimport {Container} from 'aurelia-dependency-injection';\r\nimport {relativeToFile} from 'aurelia-path';\r\nimport {DOM, FEATURE} from 'aurelia-pal';\r\n\r\nlet cssUrlMatcher = /url\\((?!['\"]data)([^)]+)\\)/gi;\r\n\r\nfunction fixupCSSUrls(address: string, css: string) {\r\n if (typeof css !== 'string') {\r\n throw new Error(`Failed loading required CSS file: ${address}`);\r\n }\r\n return css.replace(cssUrlMatcher, (match, p1) => {\r\n let quote = p1.charAt(0);\r\n if (quote === '\\'' || quote === '\"') {\r\n p1 = p1.substr(1, p1.length - 2);\r\n }\r\n return 'url(\\'' + relativeToFile(p1, address) + '\\')';\r\n });\r\n}\r\n\r\nclass CSSResource {\r\n /**\r\n *@internal\r\n */\r\n address: string;\r\n /**\r\n *@internal\r\n */\r\n _scoped: any;\r\n /**\r\n *@internal\r\n */\r\n _global: boolean;\r\n /**\r\n *@internal\r\n */\r\n _alreadyGloballyInjected: boolean;\r\n\r\n constructor(address: string) {\r\n this.address = address;\r\n this._scoped = null;\r\n this._global = false;\r\n this._alreadyGloballyInjected = false;\r\n }\r\n\r\n initialize(container: Container, Target: Function): void {\r\n this._scoped = new (Target as any)(this);\r\n }\r\n\r\n register(registry: ViewResources, name?: string): void {\r\n if (name === 'scoped') {\r\n registry.registerViewEngineHooks(this._scoped);\r\n } else {\r\n this._global = true;\r\n }\r\n }\r\n\r\n load(container: Container): Promise<CSSResource> {\r\n return container.get(Loader)\r\n .loadText(this.address)\r\n .catch(() => null)\r\n .then(text => {\r\n text = fixupCSSUrls(this.address, text);\r\n this._scoped.css = text;\r\n if (this._global) {\r\n this._alreadyGloballyInjected = true;\r\n DOM.injectStyles(text);\r\n }\r\n return this;\r\n });\r\n }\r\n}\r\n\r\nclass CSSViewEngineHooks {\r\n owner: CSSResource;\r\n css: any;\r\n _global: boolean;\r\n constructor(owner: CSSResource) {\r\n this.owner = owner;\r\n this.css = null;\r\n }\r\n\r\n beforeCompile(content: DocumentFragment, resources: ViewResources, instruction: ViewCompileInstruction): void {\r\n if (instruction.targetShadowDOM) {\r\n DOM.injectStyles(this.css, content as any, true);\r\n } else if (FEATURE.scopedCSS) {\r\n let styleNode = DOM.injectStyles(this.css, content as any, true) as Element;\r\n styleNode.setAttribute('scoped', 'scoped');\r\n } else if (this._global && !this.owner._alreadyGloballyInjected) {\r\n DOM.injectStyles(this.css);\r\n this.owner._alreadyGloballyInjected = true;\r\n }\r\n }\r\n}\r\n\r\nexport function _createCSSResource(address: string): Function {\r\n @resource(new CSSResource(address))\r\n class ViewCSS extends CSSViewEngineHooks {}\r\n return ViewCSS;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport {DataAttributeObserver, bindingBehavior} from 'aurelia-binding';\r\n\r\n@bindingBehavior('attr')\r\nexport class AttrBindingBehavior {\r\n bind(binding, source) {\r\n binding.targetObserver = new DataAttributeObserver(binding.target, binding.targetProperty);\r\n }\r\n\r\n unbind(binding, source) {\r\n // empty\r\n }\r\n}\r\n","import { bindingBehavior, bindingMode } from 'aurelia-binding';\r\nimport { mixin } from 'aurelia-metadata';\r\n\r\nlet modeBindingBehavior = {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n bind(binding, source, lookupFunctions) {\r\n binding.originalMode = binding.mode;\r\n binding.mode = this.mode;\r\n },\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unbind(binding, source) {\r\n binding.mode = binding.originalMode;\r\n binding.originalMode = null;\r\n }\r\n};\r\n\r\n@mixin(modeBindingBehavior)\r\n@bindingBehavior('oneTime')\r\nexport class OneTimeBindingBehavior {\r\n\r\n mode: bindingMode;\r\n\r\n constructor() {\r\n this.mode = bindingMode.oneTime;\r\n }\r\n}\r\n\r\n@mixin(modeBindingBehavior)\r\n@bindingBehavior('oneWay')\r\nexport class OneWayBindingBehavior {\r\n\r\n mode: bindingMode;\r\n\r\n constructor() {\r\n this.mode = bindingMode.toView;\r\n }\r\n}\r\n\r\n@mixin(modeBindingBehavior)\r\n@bindingBehavior('toView')\r\nexport class ToViewBindingBehavior {\r\n\r\n mode: bindingMode;\r\n\r\n constructor() {\r\n this.mode = bindingMode.toView;\r\n }\r\n}\r\n\r\n@mixin(modeBindingBehavior)\r\n@bindingBehavior('fromView')\r\nexport class FromViewBindingBehavior {\r\n\r\n mode: bindingMode;\r\n\r\n constructor() {\r\n this.mode = bindingMode.fromView;\r\n }\r\n}\r\n\r\n@mixin(modeBindingBehavior)\r\n@bindingBehavior('twoWay')\r\nexport class TwoWayBindingBehavior {\r\n\r\n mode: bindingMode;\r\n\r\n constructor() {\r\n this.mode = bindingMode.twoWay;\r\n }\r\n}\r\n","import {bindingMode, bindingBehavior} from 'aurelia-binding';\r\n\r\nfunction throttle(newValue) {\r\n let state = this.throttleState;\r\n let elapsed = +new Date() - state.last;\r\n if (elapsed >= state.delay) {\r\n clearTimeout(state.timeoutId);\r\n state.timeoutId = null;\r\n state.last = +new Date();\r\n this.throttledMethod(newValue);\r\n return;\r\n }\r\n state.newValue = newValue;\r\n if (state.timeoutId === null) {\r\n state.timeoutId = setTimeout(\r\n () => {\r\n state.timeoutId = null;\r\n state.last = +new Date();\r\n this.throttledMethod(state.newValue);\r\n },\r\n state.delay - elapsed);\r\n }\r\n}\r\n\r\n@bindingBehavior('throttle')\r\nexport class ThrottleBindingBehavior {\r\n bind(binding, source, delay = 200) {\r\n // determine which method to throttle.\r\n let methodToThrottle = 'updateTarget'; // one-way bindings or interpolation bindings\r\n if (binding.callSource) {\r\n methodToThrottle = 'callSource'; // listener and call bindings\r\n } else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\r\n methodToThrottle = 'updateSource'; // two-way bindings\r\n }\r\n\r\n // stash the original method and it's name.\r\n // note: a generic name like \"originalMethod\" is not used to avoid collisions\r\n // with other binding behavior types.\r\n binding.throttledMethod = binding[methodToThrottle];\r\n binding.throttledMethod.originalName = methodToThrottle;\r\n\r\n // replace the original method with the throttling version.\r\n binding[methodToThrottle] = throttle;\r\n\r\n // create the throttle state.\r\n binding.throttleState = {\r\n delay: delay,\r\n last: 0,\r\n timeoutId: null\r\n };\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unbind(binding, source) {\r\n // restore the state of the binding.\r\n let methodToRestore = binding.throttledMethod.originalName;\r\n binding[methodToRestore] = binding.throttledMethod;\r\n binding.throttledMethod = null;\r\n clearTimeout(binding.throttleState.timeoutId);\r\n binding.throttleState = null;\r\n }\r\n}\r\n","import {\r\n bindingMode,\r\n sourceContext,\r\n targetContext,\r\n bindingBehavior\r\n} from 'aurelia-binding';\r\n\r\nconst unset = {};\r\n\r\nfunction debounceCallSource(event) {\r\n const state = this.debounceState;\r\n clearTimeout(state.timeoutId);\r\n state.timeoutId = setTimeout(() => this.debouncedMethod(event), state.delay);\r\n}\r\n\r\nfunction debounceCall(context, newValue, oldValue) {\r\n const state = this.debounceState;\r\n clearTimeout(state.timeoutId);\r\n if (context !== state.callContextToDebounce) {\r\n state.oldValue = unset;\r\n this.debouncedMethod(context, newValue, oldValue);\r\n return;\r\n }\r\n if (state.oldValue === unset) {\r\n state.oldValue = oldValue;\r\n }\r\n state.timeoutId = setTimeout(() => {\r\n const _oldValue = state.oldValue;\r\n state.oldValue = unset;\r\n this.debouncedMethod(context, newValue, _oldValue);\r\n }, state.delay);\r\n}\r\n\r\n@bindingBehavior('debounce')\r\nexport class DebounceBindingBehavior {\r\n bind(binding, source, delay = 200) {\r\n const isCallSource = binding.callSource !== undefined;\r\n const methodToDebounce = isCallSource ? 'callSource' : 'call';\r\n const debouncer = isCallSource ? debounceCallSource : debounceCall;\r\n const mode = binding.mode;\r\n const callContextToDebounce = mode === bindingMode.twoWay || mode === bindingMode.fromView ? targetContext : sourceContext;\r\n\r\n // stash the original method and it's name.\r\n // note: a generic name like \"originalMethod\" is not used to avoid collisions\r\n // with other binding behavior types.\r\n binding.debouncedMethod = binding[methodToDebounce];\r\n binding.debouncedMethod.originalName = methodToDebounce;\r\n\r\n // replace the original method with the debouncing version.\r\n binding[methodToDebounce] = debouncer;\r\n\r\n // create the debounce state.\r\n binding.debounceState = {\r\n callContextToDebounce,\r\n delay,\r\n timeoutId: 0,\r\n oldValue: unset\r\n };\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unbind(binding, source) {\r\n // restore the state of the binding.\r\n const methodToRestore = binding.debouncedMethod.originalName;\r\n binding[methodToRestore] = binding.debouncedMethod;\r\n binding.debouncedMethod = null;\r\n clearTimeout(binding.debounceState.timeoutId);\r\n binding.debounceState = null;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { bindingBehavior } from 'aurelia-binding';\r\n\r\nfunction findOriginalEventTarget(event) {\r\n return (event.path && event.path[0]) || (event.deepPath && event.deepPath[0]) || event.target;\r\n}\r\n\r\nfunction handleSelfEvent(event) {\r\n let target = findOriginalEventTarget(event);\r\n if (this.target !== target) { return; }\r\n this.selfEventCallSource(event);\r\n}\r\n\r\n@bindingBehavior('self')\r\nexport class SelfBindingBehavior {\r\n bind(binding, source) {\r\n if (!binding.callSource || !binding.targetEvent) {\r\n throw new Error('Self binding behavior only supports event.');\r\n }\r\n binding.selfEventCallSource = binding.callSource;\r\n binding.callSource = handleSelfEvent;\r\n }\r\n\r\n unbind(binding, source) {\r\n binding.callSource = binding.selfEventCallSource;\r\n binding.selfEventCallSource = null;\r\n }\r\n}\r\n","import { sourceContext } from 'aurelia-binding';\r\n\r\nexport class BindingSignaler {\r\n signals = {};\r\n\r\n signal(name: string): void {\r\n let bindings = this.signals[name];\r\n if (!bindings) {\r\n return;\r\n }\r\n let i = bindings.length;\r\n while (i--) {\r\n bindings[i].call(sourceContext);\r\n }\r\n }\r\n}\r\n","import {bindingBehavior} from 'aurelia-binding';\r\nimport {BindingSignaler} from './binding-signaler';\r\n\r\n@bindingBehavior('signal')\r\nexport class SignalBindingBehavior {\r\n\r\n /**@internal */\r\n static inject() { return [BindingSignaler]; }\r\n signals;\r\n\r\n constructor(bindingSignaler) {\r\n this.signals = bindingSignaler.signals;\r\n }\r\n\r\n bind(binding, source, ...names) {\r\n if (!binding.updateTarget) {\r\n throw new Error('Only property bindings and string interpolation bindings can be signaled. Trigger, delegate and call bindings cannot be signaled.');\r\n }\r\n let signals = this.signals;\r\n if (names.length === 1) {\r\n let name = names[0];\r\n let bindings = signals[name] || (signals[name] = []);\r\n bindings.push(binding);\r\n binding.signalName = name;\r\n } else if (names.length > 1) {\r\n let i = names.length;\r\n while (i--) {\r\n let name = names[i];\r\n let bindings = signals[name] || (signals[name] = []);\r\n bindings.push(binding);\r\n }\r\n binding.signalName = names;\r\n } else {\r\n throw new Error('Signal name is required.');\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unbind(binding, source) {\r\n let signals = this.signals;\r\n let name = binding.signalName;\r\n binding.signalName = null;\r\n if (Array.isArray(name)) {\r\n let names = name;\r\n let i = names.length;\r\n while (i--) {\r\n let n = names[i];\r\n let bindings = signals[n];\r\n bindings.splice(bindings.indexOf(binding), 1);\r\n }\r\n } else {\r\n let bindings = signals[name];\r\n bindings.splice(bindings.indexOf(binding), 1);\r\n }\r\n }\r\n}\r\n","import { bindingMode, EventSubscriber, bindingBehavior } from 'aurelia-binding';\r\n\r\n// tslint:disable-next-line:max-line-length\r\nconst eventNamesRequired = 'The updateTrigger binding behavior requires at least one event name argument: eg <input value.bind=\"firstName & updateTrigger:\\'blur\\'\">';\r\nconst notApplicableMessage = 'The updateTrigger binding behavior can only be applied to two-way/ from-view bindings on input/select elements.';\r\n\r\n@bindingBehavior('updateTrigger')\r\nexport class UpdateTriggerBindingBehavior {\r\n\r\n bind(binding, source, ...events) {\r\n if (events.length === 0) {\r\n throw new Error(eventNamesRequired);\r\n }\r\n if (binding.mode !== bindingMode.twoWay && binding.mode !== bindingMode.fromView) {\r\n throw new Error(notApplicableMessage);\r\n }\r\n\r\n // ensure the binding's target observer has been set.\r\n let targetObserver = binding.observerLocator.getObserver(binding.target, binding.targetProperty);\r\n if (!targetObserver.handler) {\r\n throw new Error(notApplicableMessage);\r\n }\r\n binding.targetObserver = targetObserver;\r\n\r\n // stash the original element subscribe function.\r\n targetObserver.originalHandler = binding.targetObserver.handler;\r\n\r\n // replace the element subscribe function with one that uses the correct events.\r\n let handler = new EventSubscriber(events);\r\n targetObserver.handler = handler;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unbind(binding, source) {\r\n let targetObserver = binding.targetObserver;\r\n // restore the state of the binding.\r\n targetObserver.handler.dispose();\r\n targetObserver.handler = targetObserver.originalHandler;\r\n targetObserver.originalHandler = null;\r\n }\r\n}\r\n","/*eslint padded-blocks:0*/\r\nimport {useView, customElement, bindable, useShadowDOM} from 'aurelia-templating';\r\nimport { getLogger } from 'aurelia-logging';\r\n\r\nexport function _createDynamicElement({ name, viewUrl, bindableNames, useShadowDOMmode }: {\r\n name: string,\r\n viewUrl: string,\r\n bindableNames: string[],\r\n useShadowDOMmode: null | '' | 'open' | 'closed'\r\n}): Function {\r\n @customElement(name)\r\n @useView(viewUrl)\r\n class DynamicElement {\r\n $parent: any;\r\n bind(bindingContext) {\r\n this.$parent = bindingContext;\r\n }\r\n }\r\n\r\n for (let i = 0, ii = bindableNames.length; i < ii; ++i) {\r\n bindable(bindableNames[i])(DynamicElement);\r\n }\r\n\r\n switch (useShadowDOMmode) {\r\n case 'open':\r\n useShadowDOM({ mode: 'open' })(DynamicElement);\r\n break;\r\n\r\n case 'closed':\r\n useShadowDOM({ mode: 'closed' })(DynamicElement);\r\n break;\r\n\r\n case '':\r\n useShadowDOM(DynamicElement);\r\n break;\r\n\r\n case null:\r\n // Do not use shadow dom\r\n break;\r\n\r\n default:\r\n getLogger('aurelia-html-only-element')\r\n .warn(`Expected 'use-shadow-dom' value to be \"close\", \"open\" or \"\", received ${useShadowDOMmode}`);\r\n break;\r\n }\r\n\r\n return DynamicElement;\r\n}\r\n","import {ViewEngine} from 'aurelia-templating';\r\nimport {_createDynamicElement} from './dynamic-element';\r\n\r\nexport function getElementName(address) {\r\n return /([^\\/^\\?]+)\\.html/i.exec(address)[1].toLowerCase();\r\n}\r\n\r\nexport function configure(config) {\r\n const viewEngine = config.container.get(ViewEngine);\r\n const loader = config.aurelia.loader;\r\n\r\n viewEngine.addResourcePlugin('.html', {\r\n 'fetch': function(viewUrl) {\r\n return loader.loadTemplate(viewUrl).then(registryEntry => {\r\n let bindableNames = registryEntry.template.getAttribute('bindable');\r\n const useShadowDOMmode: null | '' | 'open' | 'closed' = registryEntry.template.getAttribute('use-shadow-dom');\r\n const name = getElementName(viewUrl);\r\n\r\n if (bindableNames) {\r\n bindableNames = bindableNames.split(',').map(x => x.trim());\r\n registryEntry.template.removeAttribute('bindable');\r\n } else {\r\n bindableNames = [];\r\n }\r\n\r\n return { [name]: _createDynamicElement({name, viewUrl, bindableNames, useShadowDOMmode}) };\r\n });\r\n }\r\n });\r\n}\r\n","import {Compose} from './compose';\r\nimport {If} from './if';\r\nimport {Else} from './else';\r\nimport {With} from './with';\r\nimport {Repeat} from './repeat';\r\nimport {Show} from './show';\r\nimport {Hide} from './hide';\r\nimport {SanitizeHTMLValueConverter} from './sanitize-html';\r\nimport {Replaceable} from './replaceable';\r\nimport {Focus} from './focus';\r\nimport {ViewEngine} from 'aurelia-templating';\r\nimport {_createCSSResource} from './css-resource';\r\nimport {HTMLSanitizer} from './html-sanitizer';\r\nimport {AttrBindingBehavior} from './attr-binding-behavior';\r\nimport {OneTimeBindingBehavior, OneWayBindingBehavior, TwoWayBindingBehavior, FromViewBindingBehavior, ToViewBindingBehavior} from './binding-mode-behaviors';\r\nimport {ThrottleBindingBehavior} from './throttle-binding-behavior';\r\nimport {DebounceBindingBehavior} from './debounce-binding-behavior';\r\nimport {SelfBindingBehavior} from './self-binding-behavior';\r\nimport {SignalBindingBehavior} from './signal-binding-behavior';\r\nimport {BindingSignaler} from './binding-signaler';\r\nimport {UpdateTriggerBindingBehavior} from './update-trigger-binding-behavior';\r\nimport {AbstractRepeater} from './abstract-repeater';\r\nimport {RepeatStrategyLocator} from './repeat-strategy-locator';\r\nimport {configure as configureHtmlResourcePlugin} from './html-resource-plugin';\r\nimport {NullRepeatStrategy} from './null-repeat-strategy';\r\nimport {ArrayRepeatStrategy} from './array-repeat-strategy';\r\nimport {MapRepeatStrategy} from './map-repeat-strategy';\r\nimport {SetRepeatStrategy} from './set-repeat-strategy';\r\nimport {NumberRepeatStrategy} from './number-repeat-strategy';\r\nimport {\r\n createFullOverrideContext,\r\n updateOverrideContext,\r\n getItemsSourceExpression,\r\n isOneTime,\r\n updateOneTimeBinding,\r\n unwrapExpression\r\n} from './repeat-utilities';\r\nimport {viewsRequireLifecycle} from './analyze-view-factory';\r\nimport {injectAureliaHideStyleAtHead} from './aurelia-hide-style';\r\nimport './interfaces';\r\n\r\nfunction configure(config: any) {\r\n injectAureliaHideStyleAtHead();\r\n\r\n config.globalResources(\r\n Compose,\r\n If,\r\n Else,\r\n With,\r\n Repeat,\r\n Show,\r\n Hide,\r\n Replaceable,\r\n Focus,\r\n SanitizeHTMLValueConverter,\r\n OneTimeBindingBehavior,\r\n OneWayBindingBehavior,\r\n ToViewBindingBehavior,\r\n FromViewBindingBehavior,\r\n TwoWayBindingBehavior,\r\n ThrottleBindingBehavior,\r\n DebounceBindingBehavior,\r\n SelfBindingBehavior,\r\n SignalBindingBehavior,\r\n UpdateTriggerBindingBehavior,\r\n AttrBindingBehavior\r\n );\r\n\r\n configureHtmlResourcePlugin(config);\r\n\r\n let viewEngine = config.container.get(ViewEngine);\r\n let styleResourcePlugin = {\r\n fetch(address) {\r\n return { [address]: _createCSSResource(address) };\r\n }\r\n };\r\n ['.css', '.less', '.sass', '.scss', '.styl'].forEach(ext => viewEngine.addResourcePlugin(ext, styleResourcePlugin));\r\n}\r\n\r\nexport {\r\n Compose,\r\n If,\r\n Else,\r\n With,\r\n Repeat,\r\n Show,\r\n Hide,\r\n HTMLSanitizer,\r\n SanitizeHTMLValueConverter,\r\n Replaceable,\r\n Focus,\r\n configure,\r\n AttrBindingBehavior,\r\n OneTimeBindingBehavior,\r\n OneWayBindingBehavior,\r\n ToViewBindingBehavior,\r\n FromViewBindingBehavior,\r\n TwoWayBindingBehavior,\r\n ThrottleBindingBehavior,\r\n DebounceBindingBehavior,\r\n SelfBindingBehavior,\r\n SignalBindingBehavior,\r\n BindingSignaler,\r\n UpdateTriggerBindingBehavior,\r\n AbstractRepeater,\r\n RepeatStrategyLocator,\r\n NullRepeatStrategy,\r\n ArrayRepeatStrategy,\r\n MapRepeatStrategy,\r\n SetRepeatStrategy,\r\n NumberRepeatStrategy,\r\n createFullOverrideContext,\r\n updateOverrideContext,\r\n getItemsSourceExpression,\r\n isOneTime,\r\n updateOneTimeBinding,\r\n unwrapExpression,\r\n viewsRequireLifecycle\r\n};\r\n"],"names":["configure","configureHtmlResourcePlugin"],"mappings":"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"}
\No newline at end of file