UNPKG

aurelia-bootstrap

Version:
55 lines (40 loc) 2 kB
/* */ define(['exports', 'aurelia-binding'], function (exports, _aureliaBinding) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdateTriggerBindingBehavior = undefined; var _class, _temp; var eventNamesRequired = 'The updateTrigger binding behavior requires at least one event name argument: eg <input value.bind="firstName & updateTrigger:\'blur\'">'; var notApplicableMessage = 'The updateTrigger binding behavior can only be applied to two-way bindings on input/select elements.'; var UpdateTriggerBindingBehavior = exports.UpdateTriggerBindingBehavior = (_temp = _class = function () { function UpdateTriggerBindingBehavior(eventManager) { this.eventManager = eventManager; } UpdateTriggerBindingBehavior.prototype.bind = function bind(binding, source) { for (var _len = arguments.length, events = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { events[_key - 2] = arguments[_key]; } if (events.length === 0) { throw new Error(eventNamesRequired); } if (binding.mode !== _aureliaBinding.bindingMode.twoWay) { throw new Error(notApplicableMessage); } var targetObserver = binding.observerLocator.getObserver(binding.target, binding.targetProperty); if (!targetObserver.handler) { throw new Error(notApplicableMessage); } binding.targetObserver = targetObserver; targetObserver.originalHandler = binding.targetObserver.handler; var handler = this.eventManager.createElementHandler(events); targetObserver.handler = handler; }; UpdateTriggerBindingBehavior.prototype.unbind = function unbind(binding, source) { binding.targetObserver.handler = binding.targetObserver.originalHandler; binding.targetObserver.originalHandler = null; }; return UpdateTriggerBindingBehavior; }(), _class.inject = [_aureliaBinding.EventManager], _temp); });