UNPKG

46.5 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
6var _set = require('@babel/runtime/helpers/set');
7var _get = require('@babel/runtime/helpers/get');
8var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
9var _inherits = require('@babel/runtime/helpers/inherits');
10var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
11var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
12var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
13var _defineProperty = require('@babel/runtime/helpers/defineProperty');
14var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
15var _createClass = require('@babel/runtime/helpers/createClass');
16var _typeof = require('@babel/runtime/helpers/typeof');
17
18function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
20var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
21var _set__default = /*#__PURE__*/_interopDefaultLegacy(_set);
22var _get__default = /*#__PURE__*/_interopDefaultLegacy(_get);
23var _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);
24var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
25var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
26var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
27var _wrapNativeSuper__default = /*#__PURE__*/_interopDefaultLegacy(_wrapNativeSuper);
28var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
29var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
30var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
31var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
32
33function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
34
35function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
36
37function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
38
39function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
40
41/**
42 * Assert a condition.
43 * @param condition The condition that it should satisfy.
44 * @param message The error message.
45 * @param args The arguments for replacing placeholders in the message.
46 */
47function assertType(condition, message) {
48 if (!condition) {
49 for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
50 args[_key - 2] = arguments[_key];
51 }
52
53 throw new TypeError(format(message, args));
54 }
55}
56/**
57 * Convert a text and arguments to one string.
58 * @param message The formating text
59 * @param args The arguments.
60 */
61
62
63function format(message, args) {
64 var i = 0;
65 return message.replace(/%[os]/g, function () {
66 return anyToString(args[i++]);
67 });
68}
69/**
70 * Convert a value to a string representation.
71 * @param x The value to get the string representation.
72 */
73
74
75function anyToString(x) {
76 if (_typeof__default['default'](x) !== "object" || x === null) {
77 return String(x);
78 }
79
80 return Object.prototype.toString.call(x);
81}
82
83var currentErrorHandler;
84/**
85 * Set the error handler.
86 * @param value The error handler to set.
87 */
88
89function setErrorHandler(value) {
90 assertType(typeof value === "function" || value === undefined, "The error handler must be a function or undefined, but got %o.", value);
91 currentErrorHandler = value;
92}
93/**
94 * Print a error message.
95 * @param maybeError The error object.
96 */
97
98
99function reportError(maybeError) {
100 try {
101 var error = maybeError instanceof Error ? maybeError : new Error(anyToString(maybeError)); // Call the user-defined error handler if exists.
102
103 if (currentErrorHandler) {
104 currentErrorHandler(error);
105 return;
106 } // Dispatch an `error` event if this is on a browser.
107
108
109 if (typeof dispatchEvent === "function" && typeof ErrorEvent === "function") {
110 dispatchEvent(new ErrorEvent("error", {
111 error: error,
112 message: error.message
113 }));
114 } // Emit an `uncaughtException` event if this is on Node.js.
115 //istanbul ignore else
116 else if (typeof process !== "undefined" && typeof process.emit === "function") {
117 process.emit("uncaughtException", error);
118 return;
119 } // Otherwise, print the error.
120
121
122 console.error(error);
123 } catch (_a) {// ignore.
124 }
125}
126/**
127 * The global object.
128 */
129//istanbul ignore next
130
131
132var Global = typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : typeof globalThis !== "undefined" ? globalThis : undefined;
133var currentWarnHandler;
134/**
135 * Set the warning handler.
136 * @param value The warning handler to set.
137 */
138
139function setWarningHandler(value) {
140 assertType(typeof value === "function" || value === undefined, "The warning handler must be a function or undefined, but got %o.", value);
141 currentWarnHandler = value;
142}
143/**
144 * The warning information.
145 */
146
147
148var Warning = /*#__PURE__*/function () {
149 function Warning(code, message) {
150 _classCallCheck__default['default'](this, Warning);
151
152 this.code = code;
153 this.message = message;
154 }
155 /**
156 * Report this warning.
157 * @param args The arguments of the warning.
158 */
159
160
161 _createClass__default['default'](Warning, [{
162 key: "warn",
163 value: function warn() {
164 var _a;
165
166 try {
167 var _console;
168
169 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
170 args[_key2] = arguments[_key2];
171 }
172
173 // Call the user-defined warning handler if exists.
174 if (currentWarnHandler) {
175 currentWarnHandler(_objectSpread(_objectSpread({}, this), {}, {
176 args: args
177 }));
178 return;
179 } // Otherwise, print the warning.
180
181
182 var stack = ((_a = new Error().stack) !== null && _a !== void 0 ? _a : "").replace(/^(?:(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+?\n){2}/g, "\n");
183
184 (_console = console).warn.apply(_console, [this.message].concat(args, [stack]));
185 } catch (_b) {// Ignore.
186 }
187 }
188 }]);
189
190 return Warning;
191}();
192
193var InitEventWasCalledWhileDispatching = new Warning("W01", "Unable to initialize event under dispatching.");
194var FalsyWasAssignedToCancelBubble = new Warning("W02", "Assigning any falsy value to 'cancelBubble' property has no effect.");
195var TruthyWasAssignedToReturnValue = new Warning("W03", "Assigning any truthy value to 'returnValue' property has no effect.");
196var NonCancelableEventWasCanceled = new Warning("W04", "Unable to preventDefault on non-cancelable events.");
197var CanceledInPassiveListener = new Warning("W05", "Unable to preventDefault inside passive event listener invocation.");
198var EventListenerWasDuplicated = new Warning("W06", "An event listener wasn't added because it has been added already: %o, %o");
199var OptionWasIgnored = new Warning("W07", "The %o option value was abandoned because the event listener wasn't added as duplicated.");
200var InvalidEventListener = new Warning("W08", "The 'callback' argument must be a function or an object that has 'handleEvent' method: %o");
201var InvalidAttributeHandler = new Warning("W09", "Event attribute handler must be a function: %o");
202/*eslint-disable class-methods-use-this */
203
204/**
205 * An implementation of `Event` interface, that wraps a given event object.
206 * `EventTarget` shim can control the internal state of this `Event` objects.
207 * @see https://dom.spec.whatwg.org/#event
208 */
209
210var Event = /*#__PURE__*/function () {
211 _createClass__default['default'](Event, null, [{
212 key: "NONE",
213
214 /**
215 * @see https://dom.spec.whatwg.org/#dom-event-none
216 */
217 get: function get() {
218 return NONE;
219 }
220 /**
221 * @see https://dom.spec.whatwg.org/#dom-event-capturing_phase
222 */
223
224 }, {
225 key: "CAPTURING_PHASE",
226 get: function get() {
227 return CAPTURING_PHASE;
228 }
229 /**
230 * @see https://dom.spec.whatwg.org/#dom-event-at_target
231 */
232
233 }, {
234 key: "AT_TARGET",
235 get: function get() {
236 return AT_TARGET;
237 }
238 /**
239 * @see https://dom.spec.whatwg.org/#dom-event-bubbling_phase
240 */
241
242 }, {
243 key: "BUBBLING_PHASE",
244 get: function get() {
245 return BUBBLING_PHASE;
246 }
247 /**
248 * Initialize this event instance.
249 * @param type The type of this event.
250 * @param eventInitDict Options to initialize.
251 * @see https://dom.spec.whatwg.org/#dom-event-event
252 */
253
254 }]);
255
256 function Event(type, eventInitDict) {
257 _classCallCheck__default['default'](this, Event);
258
259 Object.defineProperty(this, "isTrusted", {
260 value: false,
261 enumerable: true
262 });
263 var opts = eventInitDict !== null && eventInitDict !== void 0 ? eventInitDict : {};
264 internalDataMap.set(this, {
265 type: String(type),
266 bubbles: Boolean(opts.bubbles),
267 cancelable: Boolean(opts.cancelable),
268 composed: Boolean(opts.composed),
269 target: null,
270 currentTarget: null,
271 stopPropagationFlag: false,
272 stopImmediatePropagationFlag: false,
273 canceledFlag: false,
274 inPassiveListenerFlag: false,
275 dispatchFlag: false,
276 timeStamp: Date.now()
277 });
278 }
279 /**
280 * The type of this event.
281 * @see https://dom.spec.whatwg.org/#dom-event-type
282 */
283
284
285 _createClass__default['default'](Event, [{
286 key: "composedPath",
287
288 /**
289 * The event target of the current dispatching.
290 * This doesn't support node tree.
291 * @see https://dom.spec.whatwg.org/#dom-event-composedpath
292 */
293 value: function composedPath() {
294 var currentTarget = $(this).currentTarget;
295
296 if (currentTarget) {
297 return [currentTarget];
298 }
299
300 return [];
301 }
302 /**
303 * @see https://dom.spec.whatwg.org/#dom-event-none
304 */
305
306 }, {
307 key: "stopPropagation",
308
309 /**
310 * Stop event bubbling.
311 * Because this shim doesn't support node tree, this merely changes the `cancelBubble` property value.
312 * @see https://dom.spec.whatwg.org/#dom-event-stoppropagation
313 */
314 value: function stopPropagation() {
315 $(this).stopPropagationFlag = true;
316 }
317 /**
318 * `true` if event bubbling was stopped.
319 * @deprecated
320 * @see https://dom.spec.whatwg.org/#dom-event-cancelbubble
321 */
322
323 }, {
324 key: "stopImmediatePropagation",
325
326 /**
327 * Stop event bubbling and subsequent event listener callings.
328 * @see https://dom.spec.whatwg.org/#dom-event-stopimmediatepropagation
329 */
330 value: function stopImmediatePropagation() {
331 var data = $(this);
332 data.stopPropagationFlag = data.stopImmediatePropagationFlag = true;
333 }
334 /**
335 * `true` if this event will bubble.
336 * @see https://dom.spec.whatwg.org/#dom-event-bubbles
337 */
338
339 }, {
340 key: "preventDefault",
341
342 /**
343 * Cancel the default behavior.
344 * @see https://dom.spec.whatwg.org/#dom-event-preventdefault
345 */
346 value: function preventDefault() {
347 setCancelFlag($(this));
348 }
349 /**
350 * `true` if the default behavior was canceled.
351 * @see https://dom.spec.whatwg.org/#dom-event-defaultprevented
352 */
353
354 }, {
355 key: "initEvent",
356
357 /**
358 * @deprecated Don't use this method. The constructor did initialization.
359 */
360 value: function initEvent(type) {
361 var bubbles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
362 var cancelable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
363 var data = $(this);
364
365 if (data.dispatchFlag) {
366 InitEventWasCalledWhileDispatching.warn();
367 return;
368 }
369
370 internalDataMap.set(this, _objectSpread(_objectSpread({}, data), {}, {
371 type: String(type),
372 bubbles: Boolean(bubbles),
373 cancelable: Boolean(cancelable),
374 target: null,
375 currentTarget: null,
376 stopPropagationFlag: false,
377 stopImmediatePropagationFlag: false,
378 canceledFlag: false
379 }));
380 }
381 }, {
382 key: "type",
383 get: function get() {
384 return $(this).type;
385 }
386 /**
387 * The event target of the current dispatching.
388 * @see https://dom.spec.whatwg.org/#dom-event-target
389 */
390
391 }, {
392 key: "target",
393 get: function get() {
394 return $(this).target;
395 }
396 /**
397 * The event target of the current dispatching.
398 * @deprecated Use the `target` property instead.
399 * @see https://dom.spec.whatwg.org/#dom-event-srcelement
400 */
401
402 }, {
403 key: "srcElement",
404 get: function get() {
405 return $(this).target;
406 }
407 /**
408 * The event target of the current dispatching.
409 * @see https://dom.spec.whatwg.org/#dom-event-currenttarget
410 */
411
412 }, {
413 key: "currentTarget",
414 get: function get() {
415 return $(this).currentTarget;
416 }
417 }, {
418 key: "NONE",
419 get: function get() {
420 return NONE;
421 }
422 /**
423 * @see https://dom.spec.whatwg.org/#dom-event-capturing_phase
424 */
425
426 }, {
427 key: "CAPTURING_PHASE",
428 get: function get() {
429 return CAPTURING_PHASE;
430 }
431 /**
432 * @see https://dom.spec.whatwg.org/#dom-event-at_target
433 */
434
435 }, {
436 key: "AT_TARGET",
437 get: function get() {
438 return AT_TARGET;
439 }
440 /**
441 * @see https://dom.spec.whatwg.org/#dom-event-bubbling_phase
442 */
443
444 }, {
445 key: "BUBBLING_PHASE",
446 get: function get() {
447 return BUBBLING_PHASE;
448 }
449 /**
450 * The current event phase.
451 * @see https://dom.spec.whatwg.org/#dom-event-eventphase
452 */
453
454 }, {
455 key: "eventPhase",
456 get: function get() {
457 return $(this).dispatchFlag ? 2 : 0;
458 }
459 }, {
460 key: "cancelBubble",
461 get: function get() {
462 return $(this).stopPropagationFlag;
463 }
464 /**
465 * Stop event bubbling if `true` is set.
466 * @deprecated Use the `stopPropagation()` method instead.
467 * @see https://dom.spec.whatwg.org/#dom-event-cancelbubble
468 */
469 ,
470 set: function set(value) {
471 if (value) {
472 $(this).stopPropagationFlag = true;
473 } else {
474 FalsyWasAssignedToCancelBubble.warn();
475 }
476 }
477 }, {
478 key: "bubbles",
479 get: function get() {
480 return $(this).bubbles;
481 }
482 /**
483 * `true` if this event can be canceled by the `preventDefault()` method.
484 * @see https://dom.spec.whatwg.org/#dom-event-cancelable
485 */
486
487 }, {
488 key: "cancelable",
489 get: function get() {
490 return $(this).cancelable;
491 }
492 /**
493 * `true` if the default behavior will act.
494 * @deprecated Use the `defaultPrevented` proeprty instead.
495 * @see https://dom.spec.whatwg.org/#dom-event-returnvalue
496 */
497
498 }, {
499 key: "returnValue",
500 get: function get() {
501 return !$(this).canceledFlag;
502 }
503 /**
504 * Cancel the default behavior if `false` is set.
505 * @deprecated Use the `preventDefault()` method instead.
506 * @see https://dom.spec.whatwg.org/#dom-event-returnvalue
507 */
508 ,
509 set: function set(value) {
510 if (!value) {
511 setCancelFlag($(this));
512 } else {
513 TruthyWasAssignedToReturnValue.warn();
514 }
515 }
516 }, {
517 key: "defaultPrevented",
518 get: function get() {
519 return $(this).canceledFlag;
520 }
521 /**
522 * @see https://dom.spec.whatwg.org/#dom-event-composed
523 */
524
525 }, {
526 key: "composed",
527 get: function get() {
528 return $(this).composed;
529 }
530 /**
531 * @see https://dom.spec.whatwg.org/#dom-event-istrusted
532 */
533 //istanbul ignore next
534
535 }, {
536 key: "isTrusted",
537 get: function get() {
538 return false;
539 }
540 /**
541 * @see https://dom.spec.whatwg.org/#dom-event-timestamp
542 */
543
544 }, {
545 key: "timeStamp",
546 get: function get() {
547 return $(this).timeStamp;
548 }
549 }]);
550
551 return Event;
552}(); //------------------------------------------------------------------------------
553// Helpers
554//------------------------------------------------------------------------------
555
556
557var NONE = 0;
558var CAPTURING_PHASE = 1;
559var AT_TARGET = 2;
560var BUBBLING_PHASE = 3;
561/**
562 * Private data for event wrappers.
563 */
564
565var internalDataMap = new WeakMap();
566/**
567 * Get private data.
568 * @param event The event object to get private data.
569 * @param name The variable name to report.
570 * @returns The private data of the event.
571 */
572
573function $(event) {
574 var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "this";
575 var retv = internalDataMap.get(event);
576 assertType(retv != null, "'%s' must be an object that Event constructor created, but got another one: %o", name, event);
577 return retv;
578}
579/**
580 * https://dom.spec.whatwg.org/#set-the-canceled-flag
581 * @param data private data.
582 */
583
584
585function setCancelFlag(data) {
586 if (data.inPassiveListenerFlag) {
587 CanceledInPassiveListener.warn();
588 return;
589 }
590
591 if (!data.cancelable) {
592 NonCancelableEventWasCanceled.warn();
593 return;
594 }
595
596 data.canceledFlag = true;
597} // Set enumerable
598
599
600Object.defineProperty(Event, "NONE", {
601 enumerable: true
602});
603Object.defineProperty(Event, "CAPTURING_PHASE", {
604 enumerable: true
605});
606Object.defineProperty(Event, "AT_TARGET", {
607 enumerable: true
608});
609Object.defineProperty(Event, "BUBBLING_PHASE", {
610 enumerable: true
611});
612var keys = Object.getOwnPropertyNames(Event.prototype);
613
614for (var i = 0; i < keys.length; ++i) {
615 if (keys[i] === "constructor") {
616 continue;
617 }
618
619 Object.defineProperty(Event.prototype, keys[i], {
620 enumerable: true
621 });
622} // Ensure `event instanceof window.Event` is `true`.
623
624
625if (typeof Global !== "undefined" && typeof Global.Event !== "undefined") {
626 Object.setPrototypeOf(Event.prototype, Global.Event.prototype);
627}
628/**
629 * Create a new InvalidStateError instance.
630 * @param message The error message.
631 */
632
633
634function createInvalidStateError(message) {
635 if (Global.DOMException) {
636 return new Global.DOMException(message, "InvalidStateError");
637 }
638
639 if (DOMException == null) {
640 DOMException = /*#__PURE__*/function (_Error) {
641 _inherits__default['default'](DOMException, _Error);
642
643 var _super = _createSuper(DOMException);
644
645 function DOMException(msg) {
646 var _this;
647
648 _classCallCheck__default['default'](this, DOMException);
649
650 _this = _super.call(this, msg);
651
652 if (Error.captureStackTrace) {
653 Error.captureStackTrace(_assertThisInitialized__default['default'](_this), DOMException);
654 }
655
656 return _this;
657 } // eslint-disable-next-line class-methods-use-this
658
659
660 _createClass__default['default'](DOMException, [{
661 key: "code",
662 get: function get() {
663 return 11;
664 } // eslint-disable-next-line class-methods-use-this
665
666 }, {
667 key: "name",
668 get: function get() {
669 return "InvalidStateError";
670 }
671 }]);
672
673 return DOMException;
674 }( /*#__PURE__*/_wrapNativeSuper__default['default'](Error));
675
676 Object.defineProperties(DOMException.prototype, {
677 code: {
678 enumerable: true
679 },
680 name: {
681 enumerable: true
682 }
683 });
684 defineErrorCodeProperties(DOMException);
685 defineErrorCodeProperties(DOMException.prototype);
686 }
687
688 return new DOMException(message);
689} //------------------------------------------------------------------------------
690// Helpers
691//------------------------------------------------------------------------------
692
693
694var DOMException;
695var ErrorCodeMap = {
696 INDEX_SIZE_ERR: 1,
697 DOMSTRING_SIZE_ERR: 2,
698 HIERARCHY_REQUEST_ERR: 3,
699 WRONG_DOCUMENT_ERR: 4,
700 INVALID_CHARACTER_ERR: 5,
701 NO_DATA_ALLOWED_ERR: 6,
702 NO_MODIFICATION_ALLOWED_ERR: 7,
703 NOT_FOUND_ERR: 8,
704 NOT_SUPPORTED_ERR: 9,
705 INUSE_ATTRIBUTE_ERR: 10,
706 INVALID_STATE_ERR: 11,
707 SYNTAX_ERR: 12,
708 INVALID_MODIFICATION_ERR: 13,
709 NAMESPACE_ERR: 14,
710 INVALID_ACCESS_ERR: 15,
711 VALIDATION_ERR: 16,
712 TYPE_MISMATCH_ERR: 17,
713 SECURITY_ERR: 18,
714 NETWORK_ERR: 19,
715 ABORT_ERR: 20,
716 URL_MISMATCH_ERR: 21,
717 QUOTA_EXCEEDED_ERR: 22,
718 TIMEOUT_ERR: 23,
719 INVALID_NODE_TYPE_ERR: 24,
720 DATA_CLONE_ERR: 25
721};
722
723function defineErrorCodeProperties(obj) {
724 var keys = Object.keys(ErrorCodeMap);
725
726 var _loop = function _loop(_i) {
727 var key = keys[_i];
728 var value = ErrorCodeMap[key];
729 Object.defineProperty(obj, key, {
730 get: function get() {
731 return value;
732 },
733 configurable: true,
734 enumerable: true
735 });
736 };
737
738 for (var _i = 0; _i < keys.length; ++_i) {
739 _loop(_i);
740 }
741}
742/**
743 * An implementation of `Event` interface, that wraps a given event object.
744 * This class controls the internal state of `Event`.
745 * @see https://dom.spec.whatwg.org/#interface-event
746 */
747
748
749var EventWrapper = /*#__PURE__*/function (_Event) {
750 _inherits__default['default'](EventWrapper, _Event);
751
752 var _super2 = _createSuper(EventWrapper);
753
754 _createClass__default['default'](EventWrapper, null, [{
755 key: "wrap",
756
757 /**
758 * Wrap a given event object to control states.
759 * @param event The event-like object to wrap.
760 */
761 value: function wrap(event) {
762 return new (getWrapperClassOf(event))(event);
763 }
764 }]);
765
766 function EventWrapper(event) {
767 var _thisSuper, _thisSuper2, _this2;
768
769 _classCallCheck__default['default'](this, EventWrapper);
770
771 _this2 = _super2.call(this, event.type, {
772 bubbles: event.bubbles,
773 cancelable: event.cancelable,
774 composed: event.composed
775 });
776
777 if (event.cancelBubble) {
778 _get__default['default']((_thisSuper = _assertThisInitialized__default['default'](_this2), _getPrototypeOf__default['default'](EventWrapper.prototype)), "stopPropagation", _thisSuper).call(_thisSuper);
779 }
780
781 if (event.defaultPrevented) {
782 _get__default['default']((_thisSuper2 = _assertThisInitialized__default['default'](_this2), _getPrototypeOf__default['default'](EventWrapper.prototype)), "preventDefault", _thisSuper2).call(_thisSuper2);
783 }
784
785 internalDataMap$1.set(_assertThisInitialized__default['default'](_this2), {
786 original: event
787 }); // Define accessors
788
789 var keys = Object.keys(event);
790
791 for (var _i2 = 0; _i2 < keys.length; ++_i2) {
792 var key = keys[_i2];
793
794 if (!(key in _assertThisInitialized__default['default'](_this2))) {
795 Object.defineProperty(_assertThisInitialized__default['default'](_this2), key, defineRedirectDescriptor(event, key));
796 }
797 }
798
799 return _this2;
800 }
801
802 _createClass__default['default'](EventWrapper, [{
803 key: "stopPropagation",
804 value: function stopPropagation() {
805 _get__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "stopPropagation", this).call(this);
806
807 var _$$ = $$1(this),
808 original = _$$.original;
809
810 if ("stopPropagation" in original) {
811 original.stopPropagation();
812 }
813 }
814 }, {
815 key: "stopImmediatePropagation",
816 value: function stopImmediatePropagation() {
817 _get__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "stopImmediatePropagation", this).call(this);
818
819 var _$$2 = $$1(this),
820 original = _$$2.original;
821
822 if ("stopImmediatePropagation" in original) {
823 original.stopImmediatePropagation();
824 }
825 }
826 }, {
827 key: "preventDefault",
828 value: function preventDefault() {
829 _get__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "preventDefault", this).call(this);
830
831 var _$$3 = $$1(this),
832 original = _$$3.original;
833
834 if ("preventDefault" in original) {
835 original.preventDefault();
836 }
837 }
838 }, {
839 key: "cancelBubble",
840 get: function get() {
841 return _get__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "cancelBubble", this);
842 },
843 set: function set(value) {
844 _set__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "cancelBubble", value, this, true);
845
846 var _$$4 = $$1(this),
847 original = _$$4.original;
848
849 if ("cancelBubble" in original) {
850 original.cancelBubble = value;
851 }
852 }
853 }, {
854 key: "returnValue",
855 get: function get() {
856 return _get__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "returnValue", this);
857 },
858 set: function set(value) {
859 _set__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "returnValue", value, this, true);
860
861 var _$$5 = $$1(this),
862 original = _$$5.original;
863
864 if ("returnValue" in original) {
865 original.returnValue = value;
866 }
867 }
868 }, {
869 key: "timeStamp",
870 get: function get() {
871 var _$$6 = $$1(this),
872 original = _$$6.original;
873
874 if ("timeStamp" in original) {
875 return original.timeStamp;
876 }
877
878 return _get__default['default'](_getPrototypeOf__default['default'](EventWrapper.prototype), "timeStamp", this);
879 }
880 }]);
881
882 return EventWrapper;
883}(Event);
884/**
885 * Private data for event wrappers.
886 */
887
888
889var internalDataMap$1 = new WeakMap();
890/**
891 * Get private data.
892 * @param event The event object to get private data.
893 * @returns The private data of the event.
894 */
895
896function $$1(event) {
897 var retv = internalDataMap$1.get(event);
898 assertType(retv != null, "'this' is expected an Event object, but got", event);
899 return retv;
900}
901/**
902 * Cache for wrapper classes.
903 * @type {WeakMap<Object, Function>}
904 * @private
905 */
906
907
908var wrapperClassCache = new WeakMap(); // Make association for wrappers.
909
910wrapperClassCache.set(Object.prototype, EventWrapper);
911
912if (typeof Global !== "undefined" && typeof Global.Event !== "undefined") {
913 wrapperClassCache.set(Global.Event.prototype, EventWrapper);
914}
915/**
916 * Get the wrapper class of a given prototype.
917 * @param originalEvent The event object to wrap.
918 */
919
920
921function getWrapperClassOf(originalEvent) {
922 var prototype = Object.getPrototypeOf(originalEvent);
923
924 if (prototype == null) {
925 return EventWrapper;
926 }
927
928 var wrapper = wrapperClassCache.get(prototype);
929
930 if (wrapper == null) {
931 wrapper = defineWrapper(getWrapperClassOf(prototype), prototype);
932 wrapperClassCache.set(prototype, wrapper);
933 }
934
935 return wrapper;
936}
937/**
938 * Define new wrapper class.
939 * @param BaseEventWrapper The base wrapper class.
940 * @param originalPrototype The prototype of the original event.
941 */
942
943
944function defineWrapper(BaseEventWrapper, originalPrototype) {
945 var CustomEventWrapper = /*#__PURE__*/function (_BaseEventWrapper) {
946 _inherits__default['default'](CustomEventWrapper, _BaseEventWrapper);
947
948 var _super3 = _createSuper(CustomEventWrapper);
949
950 function CustomEventWrapper() {
951 _classCallCheck__default['default'](this, CustomEventWrapper);
952
953 return _super3.apply(this, arguments);
954 }
955
956 return CustomEventWrapper;
957 }(BaseEventWrapper);
958
959 var keys = Object.keys(originalPrototype);
960
961 for (var _i3 = 0; _i3 < keys.length; ++_i3) {
962 Object.defineProperty(CustomEventWrapper.prototype, keys[_i3], defineRedirectDescriptor(originalPrototype, keys[_i3]));
963 }
964
965 return CustomEventWrapper;
966}
967/**
968 * Get the property descriptor to redirect a given property.
969 */
970
971
972function defineRedirectDescriptor(obj, key) {
973 var d = Object.getOwnPropertyDescriptor(obj, key);
974 return {
975 get: function get() {
976 var original = $$1(this).original;
977 var value = original[key];
978
979 if (typeof value === "function") {
980 return value.bind(original);
981 }
982
983 return value;
984 },
985 set: function set(value) {
986 var original = $$1(this).original;
987 original[key] = value;
988 },
989 configurable: d.configurable,
990 enumerable: d.enumerable
991 };
992}
993/**
994 * Create a new listener.
995 * @param callback The callback function.
996 * @param capture The capture flag.
997 * @param passive The passive flag.
998 * @param once The once flag.
999 * @param signal The abort signal.
1000 * @param signalListener The abort event listener for the abort signal.
1001 */
1002
1003
1004function createListener(callback, capture, passive, once, signal, signalListener) {
1005 return {
1006 callback: callback,
1007 flags: (capture ? 1
1008 /* Capture */
1009 : 0) | (passive ? 2
1010 /* Passive */
1011 : 0) | (once ? 4
1012 /* Once */
1013 : 0),
1014 signal: signal,
1015 signalListener: signalListener
1016 };
1017}
1018/**
1019 * Set the `removed` flag to the given listener.
1020 * @param listener The listener to check.
1021 */
1022
1023
1024function setRemoved(listener) {
1025 listener.flags |= 8
1026 /* Removed */
1027 ;
1028}
1029/**
1030 * Check if the given listener has the `capture` flag or not.
1031 * @param listener The listener to check.
1032 */
1033
1034
1035function isCapture(listener) {
1036 return (listener.flags & 1
1037 /* Capture */
1038 ) === 1
1039 /* Capture */
1040 ;
1041}
1042/**
1043 * Check if the given listener has the `passive` flag or not.
1044 * @param listener The listener to check.
1045 */
1046
1047
1048function isPassive(listener) {
1049 return (listener.flags & 2
1050 /* Passive */
1051 ) === 2
1052 /* Passive */
1053 ;
1054}
1055/**
1056 * Check if the given listener has the `once` flag or not.
1057 * @param listener The listener to check.
1058 */
1059
1060
1061function isOnce(listener) {
1062 return (listener.flags & 4
1063 /* Once */
1064 ) === 4
1065 /* Once */
1066 ;
1067}
1068/**
1069 * Check if the given listener has the `removed` flag or not.
1070 * @param listener The listener to check.
1071 */
1072
1073
1074function isRemoved(listener) {
1075 return (listener.flags & 8
1076 /* Removed */
1077 ) === 8
1078 /* Removed */
1079 ;
1080}
1081/**
1082 * Call an event listener.
1083 * @param listener The listener to call.
1084 * @param target The event target object for `thisArg`.
1085 * @param event The event object for the first argument.
1086 * @param attribute `true` if this callback is an event attribute handler.
1087 */
1088
1089
1090function invokeCallback(_ref, target, event) {
1091 var callback = _ref.callback;
1092
1093 try {
1094 if (typeof callback === "function") {
1095 callback.call(target, event);
1096 } else if (typeof callback.handleEvent === "function") {
1097 callback.handleEvent(event);
1098 }
1099 } catch (thrownError) {
1100 reportError(thrownError);
1101 }
1102}
1103/**
1104 * Find the index of given listener.
1105 * This returns `-1` if not found.
1106 * @param list The listener list.
1107 * @param callback The callback function to find.
1108 * @param capture The capture flag to find.
1109 */
1110
1111
1112function findIndexOfListener(_ref2, callback, capture) {
1113 var listeners = _ref2.listeners;
1114
1115 for (var _i4 = 0; _i4 < listeners.length; ++_i4) {
1116 if (listeners[_i4].callback === callback && isCapture(listeners[_i4]) === capture) {
1117 return _i4;
1118 }
1119 }
1120
1121 return -1;
1122}
1123/**
1124 * Add the given listener.
1125 * Does copy-on-write if needed.
1126 * @param list The listener list.
1127 * @param callback The callback function.
1128 * @param capture The capture flag.
1129 * @param passive The passive flag.
1130 * @param once The once flag.
1131 * @param signal The abort signal.
1132 */
1133
1134
1135function addListener(list, callback, capture, passive, once, signal) {
1136 var signalListener;
1137
1138 if (signal) {
1139 signalListener = removeListener.bind(null, list, callback, capture);
1140 signal.addEventListener("abort", signalListener);
1141 }
1142
1143 var listener = createListener(callback, capture, passive, once, signal, signalListener);
1144
1145 if (list.cow) {
1146 list.cow = false;
1147 list.listeners = [].concat(_toConsumableArray__default['default'](list.listeners), [listener]);
1148 } else {
1149 list.listeners.push(listener);
1150 }
1151
1152 return listener;
1153}
1154/**
1155 * Remove a listener.
1156 * @param list The listener list.
1157 * @param callback The callback function to find.
1158 * @param capture The capture flag to find.
1159 * @returns `true` if it mutated the list directly.
1160 */
1161
1162
1163function removeListener(list, callback, capture) {
1164 var index = findIndexOfListener(list, callback, capture);
1165
1166 if (index !== -1) {
1167 return removeListenerAt(list, index);
1168 }
1169
1170 return false;
1171}
1172/**
1173 * Remove a listener.
1174 * @param list The listener list.
1175 * @param index The index of the target listener.
1176 * @param disableCow Disable copy-on-write if true.
1177 * @returns `true` if it mutated the `listeners` array directly.
1178 */
1179
1180
1181function removeListenerAt(list, index) {
1182 var disableCow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1183 var listener = list.listeners[index]; // Set the removed flag.
1184
1185 setRemoved(listener); // Dispose the abort signal listener if exists.
1186
1187 if (listener.signal) {
1188 listener.signal.removeEventListener("abort", listener.signalListener);
1189 } // Remove it from the array.
1190
1191
1192 if (list.cow && !disableCow) {
1193 list.cow = false;
1194 list.listeners = list.listeners.filter(function (_, i) {
1195 return i !== index;
1196 });
1197 return false;
1198 }
1199
1200 list.listeners.splice(index, 1);
1201 return true;
1202}
1203/**
1204 * Create a new `ListenerListMap` object.
1205 */
1206
1207
1208function createListenerListMap() {
1209 return Object.create(null);
1210}
1211/**
1212 * Get the listener list of the given type.
1213 * If the listener list has not been initialized, initialize and return it.
1214 * @param listenerMap The listener list map.
1215 * @param type The event type to get.
1216 */
1217
1218
1219function ensureListenerList(listenerMap, type) {
1220 var _a;
1221
1222 return (_a = listenerMap[type]) !== null && _a !== void 0 ? _a : listenerMap[type] = {
1223 attrCallback: undefined,
1224 attrListener: undefined,
1225 cow: false,
1226 listeners: []
1227 };
1228}
1229/**
1230 * An implementation of the `EventTarget` interface.
1231 * @see https://dom.spec.whatwg.org/#eventtarget
1232 */
1233
1234
1235var EventTarget = /*#__PURE__*/function () {
1236 /**
1237 * Initialize this instance.
1238 */
1239 function EventTarget() {
1240 _classCallCheck__default['default'](this, EventTarget);
1241
1242 internalDataMap$2.set(this, createListenerListMap());
1243 } // Implementation
1244
1245
1246 _createClass__default['default'](EventTarget, [{
1247 key: "addEventListener",
1248 value: function addEventListener(type0, callback0, options0) {
1249 var listenerMap = $$2(this);
1250
1251 var _normalizeAddOptions = normalizeAddOptions(type0, callback0, options0),
1252 callback = _normalizeAddOptions.callback,
1253 capture = _normalizeAddOptions.capture,
1254 once = _normalizeAddOptions.once,
1255 passive = _normalizeAddOptions.passive,
1256 signal = _normalizeAddOptions.signal,
1257 type = _normalizeAddOptions.type;
1258
1259 if (callback == null || (signal === null || signal === void 0 ? void 0 : signal.aborted)) {
1260 return;
1261 }
1262
1263 var list = ensureListenerList(listenerMap, type); // Find existing listener.
1264
1265 var i = findIndexOfListener(list, callback, capture);
1266
1267 if (i !== -1) {
1268 warnDuplicate(list.listeners[i], passive, once, signal);
1269 return;
1270 } // Add the new listener.
1271
1272
1273 addListener(list, callback, capture, passive, once, signal);
1274 } // Implementation
1275
1276 }, {
1277 key: "removeEventListener",
1278 value: function removeEventListener(type0, callback0, options0) {
1279 var listenerMap = $$2(this);
1280
1281 var _normalizeOptions = normalizeOptions(type0, callback0, options0),
1282 callback = _normalizeOptions.callback,
1283 capture = _normalizeOptions.capture,
1284 type = _normalizeOptions.type;
1285
1286 var list = listenerMap[type];
1287
1288 if (callback != null && list) {
1289 removeListener(list, callback, capture);
1290 }
1291 } // Implementation
1292
1293 }, {
1294 key: "dispatchEvent",
1295 value: function dispatchEvent(e) {
1296 var list = $$2(this)[String(e.type)];
1297
1298 if (list == null) {
1299 return true;
1300 }
1301
1302 var event = e instanceof Event ? e : EventWrapper.wrap(e);
1303 var eventData = $(event, "event");
1304
1305 if (eventData.dispatchFlag) {
1306 throw createInvalidStateError("This event has been in dispatching.");
1307 }
1308
1309 eventData.dispatchFlag = true;
1310 eventData.target = eventData.currentTarget = this;
1311
1312 if (!eventData.stopPropagationFlag) {
1313 var cow = list.cow,
1314 listeners = list.listeners; // Set copy-on-write flag.
1315
1316 list.cow = true; // Call listeners.
1317
1318 for (var _i5 = 0; _i5 < listeners.length; ++_i5) {
1319 var listener = listeners[_i5]; // Skip if removed.
1320
1321 if (isRemoved(listener)) {
1322 continue;
1323 } // Remove this listener if has the `once` flag.
1324
1325
1326 if (isOnce(listener) && removeListenerAt(list, _i5, !cow)) {
1327 // Because this listener was removed, the next index is the
1328 // same as the current value.
1329 _i5 -= 1;
1330 } // Call this listener with the `passive` flag.
1331
1332
1333 eventData.inPassiveListenerFlag = isPassive(listener);
1334 invokeCallback(listener, this, event);
1335 eventData.inPassiveListenerFlag = false; // Stop if the `event.stopImmediatePropagation()` method was called.
1336
1337 if (eventData.stopImmediatePropagationFlag) {
1338 break;
1339 }
1340 } // Restore copy-on-write flag.
1341
1342
1343 if (!cow) {
1344 list.cow = false;
1345 }
1346 }
1347
1348 eventData.target = null;
1349 eventData.currentTarget = null;
1350 eventData.stopImmediatePropagationFlag = false;
1351 eventData.stopPropagationFlag = false;
1352 eventData.dispatchFlag = false;
1353 return !eventData.canceledFlag;
1354 }
1355 }]);
1356
1357 return EventTarget;
1358}();
1359/**
1360 * Internal data.
1361 */
1362
1363
1364var internalDataMap$2 = new WeakMap();
1365/**
1366 * Get private data.
1367 * @param target The event target object to get private data.
1368 * @param name The variable name to report.
1369 * @returns The private data of the event.
1370 */
1371
1372function $$2(target) {
1373 var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "this";
1374 var retv = internalDataMap$2.get(target);
1375 assertType(retv != null, "'%s' must be an object that EventTarget constructor created, but got another one: %o", name, target);
1376 return retv;
1377}
1378/**
1379 * Normalize options.
1380 * @param options The options to normalize.
1381 */
1382
1383
1384function normalizeAddOptions(type, callback, options) {
1385 var _a;
1386
1387 assertCallback(callback);
1388
1389 if (_typeof__default['default'](options) === "object" && options !== null) {
1390 return {
1391 type: String(type),
1392 callback: callback !== null && callback !== void 0 ? callback : undefined,
1393 capture: Boolean(options.capture),
1394 passive: Boolean(options.passive),
1395 once: Boolean(options.once),
1396 signal: (_a = options.signal) !== null && _a !== void 0 ? _a : undefined
1397 };
1398 }
1399
1400 return {
1401 type: String(type),
1402 callback: callback !== null && callback !== void 0 ? callback : undefined,
1403 capture: Boolean(options),
1404 passive: false,
1405 once: false,
1406 signal: undefined
1407 };
1408}
1409/**
1410 * Normalize options.
1411 * @param options The options to normalize.
1412 */
1413
1414
1415function normalizeOptions(type, callback, options) {
1416 assertCallback(callback);
1417
1418 if (_typeof__default['default'](options) === "object" && options !== null) {
1419 return {
1420 type: String(type),
1421 callback: callback !== null && callback !== void 0 ? callback : undefined,
1422 capture: Boolean(options.capture)
1423 };
1424 }
1425
1426 return {
1427 type: String(type),
1428 callback: callback !== null && callback !== void 0 ? callback : undefined,
1429 capture: Boolean(options)
1430 };
1431}
1432/**
1433 * Assert the type of 'callback' argument.
1434 * @param callback The callback to check.
1435 */
1436
1437
1438function assertCallback(callback) {
1439 if (typeof callback === "function" || _typeof__default['default'](callback) === "object" && callback !== null && typeof callback.handleEvent === "function") {
1440 return;
1441 }
1442
1443 if (callback == null || _typeof__default['default'](callback) === "object") {
1444 InvalidEventListener.warn(callback);
1445 return;
1446 }
1447
1448 throw new TypeError(format(InvalidEventListener.message, [callback]));
1449}
1450/**
1451 * Print warning for duplicated.
1452 * @param listener The current listener that is duplicated.
1453 * @param passive The passive flag of the new duplicated listener.
1454 * @param once The once flag of the new duplicated listener.
1455 * @param signal The signal object of the new duplicated listener.
1456 */
1457
1458
1459function warnDuplicate(listener, passive, once, signal) {
1460 EventListenerWasDuplicated.warn(isCapture(listener) ? "capture" : "bubble", listener.callback);
1461
1462 if (isPassive(listener) !== passive) {
1463 OptionWasIgnored.warn("passive");
1464 }
1465
1466 if (isOnce(listener) !== once) {
1467 OptionWasIgnored.warn("once");
1468 }
1469
1470 if (listener.signal !== signal) {
1471 OptionWasIgnored.warn("signal");
1472 }
1473} // Set enumerable
1474
1475
1476var keys$1 = Object.getOwnPropertyNames(EventTarget.prototype);
1477
1478for (var _i6 = 0; _i6 < keys$1.length; ++_i6) {
1479 if (keys$1[_i6] === "constructor") {
1480 continue;
1481 }
1482
1483 Object.defineProperty(EventTarget.prototype, keys$1[_i6], {
1484 enumerable: true
1485 });
1486} // Ensure `eventTarget instanceof window.EventTarget` is `true`.
1487
1488
1489if (typeof Global !== "undefined" && typeof Global.EventTarget !== "undefined") {
1490 Object.setPrototypeOf(EventTarget.prototype, Global.EventTarget.prototype);
1491}
1492/**
1493 * Get the current value of a given event attribute.
1494 * @param target The `EventTarget` object to get.
1495 * @param type The event type.
1496 */
1497
1498
1499function getEventAttributeValue(target, type) {
1500 var _a, _b;
1501
1502 var listMap = $$2(target, "target");
1503 return (_b = (_a = listMap[type]) === null || _a === void 0 ? void 0 : _a.attrCallback) !== null && _b !== void 0 ? _b : null;
1504}
1505/**
1506 * Set an event listener to a given event attribute.
1507 * @param target The `EventTarget` object to set.
1508 * @param type The event type.
1509 * @param callback The event listener.
1510 */
1511
1512
1513function setEventAttributeValue(target, type, callback) {
1514 if (callback != null && typeof callback !== "function") {
1515 InvalidAttributeHandler.warn(callback);
1516 }
1517
1518 if (typeof callback === "function" || _typeof__default['default'](callback) === "object" && callback !== null) {
1519 upsertEventAttributeListener(target, type, callback);
1520 } else {
1521 removeEventAttributeListener(target, type);
1522 }
1523} //------------------------------------------------------------------------------
1524// Helpers
1525//------------------------------------------------------------------------------
1526
1527/**
1528 * Update or insert the given event attribute handler.
1529 * @param target The `EventTarget` object to set.
1530 * @param type The event type.
1531 * @param callback The event listener.
1532 */
1533
1534
1535function upsertEventAttributeListener(target, type, callback) {
1536 var list = ensureListenerList($$2(target, "target"), String(type));
1537 list.attrCallback = callback;
1538
1539 if (list.attrListener == null) {
1540 list.attrListener = addListener(list, defineEventAttributeCallback(list), false, false, false, undefined);
1541 }
1542}
1543/**
1544 * Remove the given event attribute handler.
1545 * @param target The `EventTarget` object to remove.
1546 * @param type The event type.
1547 * @param callback The event listener.
1548 */
1549
1550
1551function removeEventAttributeListener(target, type) {
1552 var listMap = $$2(target, "target");
1553 var list = listMap[String(type)];
1554
1555 if (list && list.attrListener) {
1556 removeListener(list, list.attrListener.callback, false);
1557 list.attrCallback = list.attrListener = undefined;
1558 }
1559}
1560/**
1561 * Define the callback function for the given listener list object.
1562 * It calls `attrCallback` property if the property value is a function.
1563 * @param list The `ListenerList` object.
1564 */
1565
1566
1567function defineEventAttributeCallback(list) {
1568 return function (event) {
1569 var callback = list.attrCallback;
1570
1571 if (typeof callback === "function") {
1572 callback.call(this, event);
1573 }
1574 };
1575}
1576/**
1577 * Define an `EventTarget` class that has event attibutes.
1578 * @param types The types to define event attributes.
1579 * @deprecated Use `getEventAttributeValue`/`setEventAttributeValue` pair on your derived class instead because of static analysis friendly.
1580 */
1581
1582
1583function defineCustomEventTarget() {
1584 var CustomEventTarget = /*#__PURE__*/function (_EventTarget) {
1585 _inherits__default['default'](CustomEventTarget, _EventTarget);
1586
1587 var _super4 = _createSuper(CustomEventTarget);
1588
1589 function CustomEventTarget() {
1590 _classCallCheck__default['default'](this, CustomEventTarget);
1591
1592 return _super4.apply(this, arguments);
1593 }
1594
1595 return CustomEventTarget;
1596 }(EventTarget);
1597
1598 for (var _i7 = 0; _i7 < arguments.length; ++_i7) {
1599 defineEventAttribute(CustomEventTarget.prototype, _i7 < 0 || arguments.length <= _i7 ? undefined : arguments[_i7]);
1600 }
1601
1602 return CustomEventTarget;
1603}
1604/**
1605 * Define an event attribute.
1606 * @param target The `EventTarget` object to define an event attribute.
1607 * @param type The event type to define.
1608 * @param _eventClass Unused, but to infer `Event` class type.
1609 * @deprecated Use `getEventAttributeValue`/`setEventAttributeValue` pair on your derived class instead because of static analysis friendly.
1610 */
1611
1612
1613function defineEventAttribute(target, type, _eventClass) {
1614 Object.defineProperty(target, "on".concat(type), {
1615 get: function get() {
1616 return getEventAttributeValue(this, type);
1617 },
1618 set: function set(value) {
1619 setEventAttributeValue(this, type, value);
1620 },
1621 configurable: true,
1622 enumerable: true
1623 });
1624}
1625
1626exports.Event = Event;
1627exports.EventTarget = EventTarget;
1628exports.default = EventTarget;
1629exports.defineCustomEventTarget = defineCustomEventTarget;
1630exports.defineEventAttribute = defineEventAttribute;
1631exports.getEventAttributeValue = getEventAttributeValue;
1632exports.setErrorHandler = setErrorHandler;
1633exports.setEventAttributeValue = setEventAttributeValue;
1634exports.setWarningHandler = setWarningHandler;