event.js 870 B

1234567891011121314151617181920
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. import { Emitter } from '../common/event.js';
  6. export class DomEmitter {
  7. get event() {
  8. return this.emitter.event;
  9. }
  10. constructor(element, type, useCapture) {
  11. const fn = (e) => this.emitter.fire(e);
  12. this.emitter = new Emitter({
  13. onWillAddFirstListener: () => element.addEventListener(type, fn, useCapture),
  14. onDidRemoveLastListener: () => element.removeEventListener(type, fn, useCapture)
  15. });
  16. }
  17. dispose() {
  18. this.emitter.dispose();
  19. }
  20. }