UNPKG

aurelia-templating-resources

Version:

A standard set of behaviors, converters and other resources for use with the Aurelia templating library.

29 lines (24 loc) 883 B
/* eslint-disable @typescript-eslint/no-unused-vars */ import { bindingBehavior } from 'aurelia-binding'; function findOriginalEventTarget(event) { return (event.path && event.path[0]) || (event.deepPath && event.deepPath[0]) || event.target; } function handleSelfEvent(event) { let target = findOriginalEventTarget(event); if (this.target !== target) { return; } this.selfEventCallSource(event); } @bindingBehavior('self') export class SelfBindingBehavior { bind(binding, source) { if (!binding.callSource || !binding.targetEvent) { throw new Error('Self binding behavior only supports event.'); } binding.selfEventCallSource = binding.callSource; binding.callSource = handleSelfEvent; } unbind(binding, source) { binding.callSource = binding.selfEventCallSource; binding.selfEventCallSource = null; } }