events.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  7. var __export = (target, all) => {
  8. for (var name in all)
  9. __defProp(target, name, { get: all[name], enumerable: true });
  10. };
  11. var __copyProps = (to, from, except, desc) => {
  12. if (from && typeof from === "object" || typeof from === "function") {
  13. for (let key of __getOwnPropNames(from))
  14. if (!__hasOwnProp.call(to, key) && key !== except)
  15. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  16. }
  17. return to;
  18. };
  19. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  20. // src/primitives/events.js
  21. var events_exports = {};
  22. __export(events_exports, {
  23. Event: () => Event,
  24. EventTarget: () => EventTarget,
  25. FetchEvent: () => FetchEvent,
  26. PromiseRejectionEvent: () => PromiseRejectionEvent
  27. });
  28. module.exports = __toCommonJS(events_exports);
  29. // <define:process>
  30. var define_process_default = { env: {}, versions: { node: "16.6.0" } };
  31. // ../../node_modules/.pnpm/event-target-shim@6.0.2/node_modules/event-target-shim/index.mjs
  32. function assertType(condition, message, ...args) {
  33. if (!condition) {
  34. throw new TypeError(format(message, args));
  35. }
  36. }
  37. __name(assertType, "assertType");
  38. function format(message, args) {
  39. let i = 0;
  40. return message.replace(/%[os]/gu, () => anyToString(args[i++]));
  41. }
  42. __name(format, "format");
  43. function anyToString(x) {
  44. if (typeof x !== "object" || x === null) {
  45. return String(x);
  46. }
  47. return Object.prototype.toString.call(x);
  48. }
  49. __name(anyToString, "anyToString");
  50. var currentErrorHandler;
  51. function reportError(maybeError) {
  52. try {
  53. const error = maybeError instanceof Error ? maybeError : new Error(anyToString(maybeError));
  54. if (currentErrorHandler) {
  55. currentErrorHandler(error);
  56. return;
  57. }
  58. if (typeof dispatchEvent === "function" && typeof ErrorEvent === "function") {
  59. dispatchEvent(new ErrorEvent("error", { error, message: error.message }));
  60. } else if (typeof define_process_default !== "undefined" && typeof define_process_default.emit === "function") {
  61. define_process_default.emit("uncaughtException", error);
  62. return;
  63. }
  64. console.error(error);
  65. } catch (_a) {
  66. }
  67. }
  68. __name(reportError, "reportError");
  69. var Global = typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : typeof globalThis !== "undefined" ? globalThis : void 0;
  70. var currentWarnHandler;
  71. var Warning = class {
  72. constructor(code, message) {
  73. this.code = code;
  74. this.message = message;
  75. }
  76. warn(...args) {
  77. var _a;
  78. try {
  79. if (currentWarnHandler) {
  80. currentWarnHandler({ ...this, args });
  81. return;
  82. }
  83. const stack = ((_a = new Error().stack) !== null && _a !== void 0 ? _a : "").replace(/^(?:.+?\n){2}/gu, "\n");
  84. console.warn(this.message, ...args, stack);
  85. } catch (_b) {
  86. }
  87. }
  88. };
  89. __name(Warning, "Warning");
  90. var InitEventWasCalledWhileDispatching = new Warning("W01", "Unable to initialize event under dispatching.");
  91. var FalsyWasAssignedToCancelBubble = new Warning("W02", "Assigning any falsy value to 'cancelBubble' property has no effect.");
  92. var TruthyWasAssignedToReturnValue = new Warning("W03", "Assigning any truthy value to 'returnValue' property has no effect.");
  93. var NonCancelableEventWasCanceled = new Warning("W04", "Unable to preventDefault on non-cancelable events.");
  94. var CanceledInPassiveListener = new Warning("W05", "Unable to preventDefault inside passive event listener invocation.");
  95. var EventListenerWasDuplicated = new Warning("W06", "An event listener wasn't added because it has been added already: %o, %o");
  96. var OptionWasIgnored = new Warning("W07", "The %o option value was abandoned because the event listener wasn't added as duplicated.");
  97. var InvalidEventListener = new Warning("W08", "The 'callback' argument must be a function or an object that has 'handleEvent' method: %o");
  98. var InvalidAttributeHandler = new Warning("W09", "Event attribute handler must be a function: %o");
  99. var Event = class {
  100. static get NONE() {
  101. return NONE;
  102. }
  103. static get CAPTURING_PHASE() {
  104. return CAPTURING_PHASE;
  105. }
  106. static get AT_TARGET() {
  107. return AT_TARGET;
  108. }
  109. static get BUBBLING_PHASE() {
  110. return BUBBLING_PHASE;
  111. }
  112. constructor(type, eventInitDict) {
  113. Object.defineProperty(this, "isTrusted", {
  114. value: false,
  115. enumerable: true
  116. });
  117. const opts = eventInitDict !== null && eventInitDict !== void 0 ? eventInitDict : {};
  118. internalDataMap.set(this, {
  119. type: String(type),
  120. bubbles: Boolean(opts.bubbles),
  121. cancelable: Boolean(opts.cancelable),
  122. composed: Boolean(opts.composed),
  123. target: null,
  124. currentTarget: null,
  125. stopPropagationFlag: false,
  126. stopImmediatePropagationFlag: false,
  127. canceledFlag: false,
  128. inPassiveListenerFlag: false,
  129. dispatchFlag: false,
  130. timeStamp: Date.now()
  131. });
  132. }
  133. get type() {
  134. return $(this).type;
  135. }
  136. get target() {
  137. return $(this).target;
  138. }
  139. get srcElement() {
  140. return $(this).target;
  141. }
  142. get currentTarget() {
  143. return $(this).currentTarget;
  144. }
  145. composedPath() {
  146. const currentTarget = $(this).currentTarget;
  147. if (currentTarget) {
  148. return [currentTarget];
  149. }
  150. return [];
  151. }
  152. get NONE() {
  153. return NONE;
  154. }
  155. get CAPTURING_PHASE() {
  156. return CAPTURING_PHASE;
  157. }
  158. get AT_TARGET() {
  159. return AT_TARGET;
  160. }
  161. get BUBBLING_PHASE() {
  162. return BUBBLING_PHASE;
  163. }
  164. get eventPhase() {
  165. return $(this).dispatchFlag ? 2 : 0;
  166. }
  167. stopPropagation() {
  168. $(this).stopPropagationFlag = true;
  169. }
  170. get cancelBubble() {
  171. return $(this).stopPropagationFlag;
  172. }
  173. set cancelBubble(value) {
  174. if (value) {
  175. $(this).stopPropagationFlag = true;
  176. } else {
  177. FalsyWasAssignedToCancelBubble.warn();
  178. }
  179. }
  180. stopImmediatePropagation() {
  181. const data = $(this);
  182. data.stopPropagationFlag = data.stopImmediatePropagationFlag = true;
  183. }
  184. get bubbles() {
  185. return $(this).bubbles;
  186. }
  187. get cancelable() {
  188. return $(this).cancelable;
  189. }
  190. get returnValue() {
  191. return !$(this).canceledFlag;
  192. }
  193. set returnValue(value) {
  194. if (!value) {
  195. setCancelFlag($(this));
  196. } else {
  197. TruthyWasAssignedToReturnValue.warn();
  198. }
  199. }
  200. preventDefault() {
  201. setCancelFlag($(this));
  202. }
  203. get defaultPrevented() {
  204. return $(this).canceledFlag;
  205. }
  206. get composed() {
  207. return $(this).composed;
  208. }
  209. get isTrusted() {
  210. return false;
  211. }
  212. get timeStamp() {
  213. return $(this).timeStamp;
  214. }
  215. initEvent(type, bubbles = false, cancelable = false) {
  216. const data = $(this);
  217. if (data.dispatchFlag) {
  218. InitEventWasCalledWhileDispatching.warn();
  219. return;
  220. }
  221. internalDataMap.set(this, {
  222. ...data,
  223. type: String(type),
  224. bubbles: Boolean(bubbles),
  225. cancelable: Boolean(cancelable),
  226. target: null,
  227. currentTarget: null,
  228. stopPropagationFlag: false,
  229. stopImmediatePropagationFlag: false,
  230. canceledFlag: false
  231. });
  232. }
  233. };
  234. __name(Event, "Event");
  235. var NONE = 0;
  236. var CAPTURING_PHASE = 1;
  237. var AT_TARGET = 2;
  238. var BUBBLING_PHASE = 3;
  239. var internalDataMap = /* @__PURE__ */ new WeakMap();
  240. function $(event, name = "this") {
  241. const retv = internalDataMap.get(event);
  242. assertType(retv != null, "'%s' must be an object that Event constructor created, but got another one: %o", name, event);
  243. return retv;
  244. }
  245. __name($, "$");
  246. function setCancelFlag(data) {
  247. if (data.inPassiveListenerFlag) {
  248. CanceledInPassiveListener.warn();
  249. return;
  250. }
  251. if (!data.cancelable) {
  252. NonCancelableEventWasCanceled.warn();
  253. return;
  254. }
  255. data.canceledFlag = true;
  256. }
  257. __name(setCancelFlag, "setCancelFlag");
  258. Object.defineProperty(Event, "NONE", { enumerable: true });
  259. Object.defineProperty(Event, "CAPTURING_PHASE", { enumerable: true });
  260. Object.defineProperty(Event, "AT_TARGET", { enumerable: true });
  261. Object.defineProperty(Event, "BUBBLING_PHASE", { enumerable: true });
  262. var keys = Object.getOwnPropertyNames(Event.prototype);
  263. for (let i = 0; i < keys.length; ++i) {
  264. if (keys[i] === "constructor") {
  265. continue;
  266. }
  267. Object.defineProperty(Event.prototype, keys[i], { enumerable: true });
  268. }
  269. if (typeof Global !== "undefined" && typeof Global.Event !== "undefined") {
  270. Object.setPrototypeOf(Event.prototype, Global.Event.prototype);
  271. }
  272. function createInvalidStateError(message) {
  273. if (Global.DOMException) {
  274. return new Global.DOMException(message, "InvalidStateError");
  275. }
  276. if (DOMException == null) {
  277. DOMException = /* @__PURE__ */ __name(class DOMException2 extends Error {
  278. constructor(msg) {
  279. super(msg);
  280. if (Error.captureStackTrace) {
  281. Error.captureStackTrace(this, DOMException2);
  282. }
  283. }
  284. get code() {
  285. return 11;
  286. }
  287. get name() {
  288. return "InvalidStateError";
  289. }
  290. }, "DOMException");
  291. Object.defineProperties(DOMException.prototype, {
  292. code: { enumerable: true },
  293. name: { enumerable: true }
  294. });
  295. defineErrorCodeProperties(DOMException);
  296. defineErrorCodeProperties(DOMException.prototype);
  297. }
  298. return new DOMException(message);
  299. }
  300. __name(createInvalidStateError, "createInvalidStateError");
  301. var DOMException;
  302. var ErrorCodeMap = {
  303. INDEX_SIZE_ERR: 1,
  304. DOMSTRING_SIZE_ERR: 2,
  305. HIERARCHY_REQUEST_ERR: 3,
  306. WRONG_DOCUMENT_ERR: 4,
  307. INVALID_CHARACTER_ERR: 5,
  308. NO_DATA_ALLOWED_ERR: 6,
  309. NO_MODIFICATION_ALLOWED_ERR: 7,
  310. NOT_FOUND_ERR: 8,
  311. NOT_SUPPORTED_ERR: 9,
  312. INUSE_ATTRIBUTE_ERR: 10,
  313. INVALID_STATE_ERR: 11,
  314. SYNTAX_ERR: 12,
  315. INVALID_MODIFICATION_ERR: 13,
  316. NAMESPACE_ERR: 14,
  317. INVALID_ACCESS_ERR: 15,
  318. VALIDATION_ERR: 16,
  319. TYPE_MISMATCH_ERR: 17,
  320. SECURITY_ERR: 18,
  321. NETWORK_ERR: 19,
  322. ABORT_ERR: 20,
  323. URL_MISMATCH_ERR: 21,
  324. QUOTA_EXCEEDED_ERR: 22,
  325. TIMEOUT_ERR: 23,
  326. INVALID_NODE_TYPE_ERR: 24,
  327. DATA_CLONE_ERR: 25
  328. };
  329. function defineErrorCodeProperties(obj) {
  330. const keys2 = Object.keys(ErrorCodeMap);
  331. for (let i = 0; i < keys2.length; ++i) {
  332. const key = keys2[i];
  333. const value = ErrorCodeMap[key];
  334. Object.defineProperty(obj, key, {
  335. get() {
  336. return value;
  337. },
  338. configurable: true,
  339. enumerable: true
  340. });
  341. }
  342. }
  343. __name(defineErrorCodeProperties, "defineErrorCodeProperties");
  344. var EventWrapper = class extends Event {
  345. static wrap(event) {
  346. return new (getWrapperClassOf(event))(event);
  347. }
  348. constructor(event) {
  349. super(event.type, {
  350. bubbles: event.bubbles,
  351. cancelable: event.cancelable,
  352. composed: event.composed
  353. });
  354. if (event.cancelBubble) {
  355. super.stopPropagation();
  356. }
  357. if (event.defaultPrevented) {
  358. super.preventDefault();
  359. }
  360. internalDataMap$1.set(this, { original: event });
  361. const keys2 = Object.keys(event);
  362. for (let i = 0; i < keys2.length; ++i) {
  363. const key = keys2[i];
  364. if (!(key in this)) {
  365. Object.defineProperty(this, key, defineRedirectDescriptor(event, key));
  366. }
  367. }
  368. }
  369. stopPropagation() {
  370. super.stopPropagation();
  371. const { original } = $$1(this);
  372. if ("stopPropagation" in original) {
  373. original.stopPropagation();
  374. }
  375. }
  376. get cancelBubble() {
  377. return super.cancelBubble;
  378. }
  379. set cancelBubble(value) {
  380. super.cancelBubble = value;
  381. const { original } = $$1(this);
  382. if ("cancelBubble" in original) {
  383. original.cancelBubble = value;
  384. }
  385. }
  386. stopImmediatePropagation() {
  387. super.stopImmediatePropagation();
  388. const { original } = $$1(this);
  389. if ("stopImmediatePropagation" in original) {
  390. original.stopImmediatePropagation();
  391. }
  392. }
  393. get returnValue() {
  394. return super.returnValue;
  395. }
  396. set returnValue(value) {
  397. super.returnValue = value;
  398. const { original } = $$1(this);
  399. if ("returnValue" in original) {
  400. original.returnValue = value;
  401. }
  402. }
  403. preventDefault() {
  404. super.preventDefault();
  405. const { original } = $$1(this);
  406. if ("preventDefault" in original) {
  407. original.preventDefault();
  408. }
  409. }
  410. get timeStamp() {
  411. const { original } = $$1(this);
  412. if ("timeStamp" in original) {
  413. return original.timeStamp;
  414. }
  415. return super.timeStamp;
  416. }
  417. };
  418. __name(EventWrapper, "EventWrapper");
  419. var internalDataMap$1 = /* @__PURE__ */ new WeakMap();
  420. function $$1(event) {
  421. const retv = internalDataMap$1.get(event);
  422. assertType(retv != null, "'this' is expected an Event object, but got", event);
  423. return retv;
  424. }
  425. __name($$1, "$$1");
  426. var wrapperClassCache = /* @__PURE__ */ new WeakMap();
  427. wrapperClassCache.set(Object.prototype, EventWrapper);
  428. if (typeof Global !== "undefined" && typeof Global.Event !== "undefined") {
  429. wrapperClassCache.set(Global.Event.prototype, EventWrapper);
  430. }
  431. function getWrapperClassOf(originalEvent) {
  432. const prototype = Object.getPrototypeOf(originalEvent);
  433. if (prototype == null) {
  434. return EventWrapper;
  435. }
  436. let wrapper = wrapperClassCache.get(prototype);
  437. if (wrapper == null) {
  438. wrapper = defineWrapper(getWrapperClassOf(prototype), prototype);
  439. wrapperClassCache.set(prototype, wrapper);
  440. }
  441. return wrapper;
  442. }
  443. __name(getWrapperClassOf, "getWrapperClassOf");
  444. function defineWrapper(BaseEventWrapper, originalPrototype) {
  445. class CustomEventWrapper extends BaseEventWrapper {
  446. }
  447. __name(CustomEventWrapper, "CustomEventWrapper");
  448. const keys2 = Object.keys(originalPrototype);
  449. for (let i = 0; i < keys2.length; ++i) {
  450. Object.defineProperty(CustomEventWrapper.prototype, keys2[i], defineRedirectDescriptor(originalPrototype, keys2[i]));
  451. }
  452. return CustomEventWrapper;
  453. }
  454. __name(defineWrapper, "defineWrapper");
  455. function defineRedirectDescriptor(obj, key) {
  456. const d = Object.getOwnPropertyDescriptor(obj, key);
  457. return {
  458. get() {
  459. const original = $$1(this).original;
  460. const value = original[key];
  461. if (typeof value === "function") {
  462. return value.bind(original);
  463. }
  464. return value;
  465. },
  466. set(value) {
  467. const original = $$1(this).original;
  468. original[key] = value;
  469. },
  470. configurable: d.configurable,
  471. enumerable: d.enumerable
  472. };
  473. }
  474. __name(defineRedirectDescriptor, "defineRedirectDescriptor");
  475. function createListener(callback, capture, passive, once, signal, signalListener) {
  476. return {
  477. callback,
  478. flags: (capture ? 1 : 0) | (passive ? 2 : 0) | (once ? 4 : 0),
  479. signal,
  480. signalListener
  481. };
  482. }
  483. __name(createListener, "createListener");
  484. function setRemoved(listener) {
  485. listener.flags |= 8;
  486. }
  487. __name(setRemoved, "setRemoved");
  488. function isCapture(listener) {
  489. return (listener.flags & 1) === 1;
  490. }
  491. __name(isCapture, "isCapture");
  492. function isPassive(listener) {
  493. return (listener.flags & 2) === 2;
  494. }
  495. __name(isPassive, "isPassive");
  496. function isOnce(listener) {
  497. return (listener.flags & 4) === 4;
  498. }
  499. __name(isOnce, "isOnce");
  500. function isRemoved(listener) {
  501. return (listener.flags & 8) === 8;
  502. }
  503. __name(isRemoved, "isRemoved");
  504. function invokeCallback({ callback }, target, event) {
  505. try {
  506. if (typeof callback === "function") {
  507. callback.call(target, event);
  508. } else if (typeof callback.handleEvent === "function") {
  509. callback.handleEvent(event);
  510. }
  511. } catch (thrownError) {
  512. reportError(thrownError);
  513. }
  514. }
  515. __name(invokeCallback, "invokeCallback");
  516. function findIndexOfListener({ listeners }, callback, capture) {
  517. for (let i = 0; i < listeners.length; ++i) {
  518. if (listeners[i].callback === callback && isCapture(listeners[i]) === capture) {
  519. return i;
  520. }
  521. }
  522. return -1;
  523. }
  524. __name(findIndexOfListener, "findIndexOfListener");
  525. function addListener(list, callback, capture, passive, once, signal) {
  526. let signalListener;
  527. if (signal) {
  528. signalListener = removeListener.bind(null, list, callback, capture);
  529. signal.addEventListener("abort", signalListener);
  530. }
  531. const listener = createListener(callback, capture, passive, once, signal, signalListener);
  532. if (list.cow) {
  533. list.cow = false;
  534. list.listeners = [...list.listeners, listener];
  535. } else {
  536. list.listeners.push(listener);
  537. }
  538. return listener;
  539. }
  540. __name(addListener, "addListener");
  541. function removeListener(list, callback, capture) {
  542. const index = findIndexOfListener(list, callback, capture);
  543. if (index !== -1) {
  544. return removeListenerAt(list, index);
  545. }
  546. return false;
  547. }
  548. __name(removeListener, "removeListener");
  549. function removeListenerAt(list, index, disableCow = false) {
  550. const listener = list.listeners[index];
  551. setRemoved(listener);
  552. if (listener.signal) {
  553. listener.signal.removeEventListener("abort", listener.signalListener);
  554. }
  555. if (list.cow && !disableCow) {
  556. list.cow = false;
  557. list.listeners = list.listeners.filter((_, i) => i !== index);
  558. return false;
  559. }
  560. list.listeners.splice(index, 1);
  561. return true;
  562. }
  563. __name(removeListenerAt, "removeListenerAt");
  564. function createListenerListMap() {
  565. return /* @__PURE__ */ Object.create(null);
  566. }
  567. __name(createListenerListMap, "createListenerListMap");
  568. function ensureListenerList(listenerMap, type) {
  569. var _a;
  570. return (_a = listenerMap[type]) !== null && _a !== void 0 ? _a : listenerMap[type] = {
  571. attrCallback: void 0,
  572. attrListener: void 0,
  573. cow: false,
  574. listeners: []
  575. };
  576. }
  577. __name(ensureListenerList, "ensureListenerList");
  578. var EventTarget = class {
  579. constructor() {
  580. internalDataMap$2.set(this, createListenerListMap());
  581. }
  582. addEventListener(type0, callback0, options0) {
  583. const listenerMap = $$2(this);
  584. const { callback, capture, once, passive, signal, type } = normalizeAddOptions(type0, callback0, options0);
  585. if (callback == null || (signal === null || signal === void 0 ? void 0 : signal.aborted)) {
  586. return;
  587. }
  588. const list = ensureListenerList(listenerMap, type);
  589. const i = findIndexOfListener(list, callback, capture);
  590. if (i !== -1) {
  591. warnDuplicate(list.listeners[i], passive, once, signal);
  592. return;
  593. }
  594. addListener(list, callback, capture, passive, once, signal);
  595. }
  596. removeEventListener(type0, callback0, options0) {
  597. const listenerMap = $$2(this);
  598. const { callback, capture, type } = normalizeOptions(type0, callback0, options0);
  599. const list = listenerMap[type];
  600. if (callback != null && list) {
  601. removeListener(list, callback, capture);
  602. }
  603. }
  604. dispatchEvent(e) {
  605. const list = $$2(this)[String(e.type)];
  606. if (list == null) {
  607. return true;
  608. }
  609. const event = e instanceof Event ? e : EventWrapper.wrap(e);
  610. const eventData = $(event, "event");
  611. if (eventData.dispatchFlag) {
  612. throw createInvalidStateError("This event has been in dispatching.");
  613. }
  614. eventData.dispatchFlag = true;
  615. eventData.target = eventData.currentTarget = this;
  616. if (!eventData.stopPropagationFlag) {
  617. const { cow, listeners } = list;
  618. list.cow = true;
  619. for (let i = 0; i < listeners.length; ++i) {
  620. const listener = listeners[i];
  621. if (isRemoved(listener)) {
  622. continue;
  623. }
  624. if (isOnce(listener) && removeListenerAt(list, i, !cow)) {
  625. i -= 1;
  626. }
  627. eventData.inPassiveListenerFlag = isPassive(listener);
  628. invokeCallback(listener, this, event);
  629. eventData.inPassiveListenerFlag = false;
  630. if (eventData.stopImmediatePropagationFlag) {
  631. break;
  632. }
  633. }
  634. if (!cow) {
  635. list.cow = false;
  636. }
  637. }
  638. eventData.target = null;
  639. eventData.currentTarget = null;
  640. eventData.stopImmediatePropagationFlag = false;
  641. eventData.stopPropagationFlag = false;
  642. eventData.dispatchFlag = false;
  643. return !eventData.canceledFlag;
  644. }
  645. };
  646. __name(EventTarget, "EventTarget");
  647. var internalDataMap$2 = /* @__PURE__ */ new WeakMap();
  648. function $$2(target, name = "this") {
  649. const retv = internalDataMap$2.get(target);
  650. assertType(retv != null, "'%s' must be an object that EventTarget constructor created, but got another one: %o", name, target);
  651. return retv;
  652. }
  653. __name($$2, "$$2");
  654. function normalizeAddOptions(type, callback, options) {
  655. var _a;
  656. assertCallback(callback);
  657. if (typeof options === "object" && options !== null) {
  658. return {
  659. type: String(type),
  660. callback: callback !== null && callback !== void 0 ? callback : void 0,
  661. capture: Boolean(options.capture),
  662. passive: Boolean(options.passive),
  663. once: Boolean(options.once),
  664. signal: (_a = options.signal) !== null && _a !== void 0 ? _a : void 0
  665. };
  666. }
  667. return {
  668. type: String(type),
  669. callback: callback !== null && callback !== void 0 ? callback : void 0,
  670. capture: Boolean(options),
  671. passive: false,
  672. once: false,
  673. signal: void 0
  674. };
  675. }
  676. __name(normalizeAddOptions, "normalizeAddOptions");
  677. function normalizeOptions(type, callback, options) {
  678. assertCallback(callback);
  679. if (typeof options === "object" && options !== null) {
  680. return {
  681. type: String(type),
  682. callback: callback !== null && callback !== void 0 ? callback : void 0,
  683. capture: Boolean(options.capture)
  684. };
  685. }
  686. return {
  687. type: String(type),
  688. callback: callback !== null && callback !== void 0 ? callback : void 0,
  689. capture: Boolean(options)
  690. };
  691. }
  692. __name(normalizeOptions, "normalizeOptions");
  693. function assertCallback(callback) {
  694. if (typeof callback === "function" || typeof callback === "object" && callback !== null && typeof callback.handleEvent === "function") {
  695. return;
  696. }
  697. if (callback == null || typeof callback === "object") {
  698. InvalidEventListener.warn(callback);
  699. return;
  700. }
  701. throw new TypeError(format(InvalidEventListener.message, [callback]));
  702. }
  703. __name(assertCallback, "assertCallback");
  704. function warnDuplicate(listener, passive, once, signal) {
  705. EventListenerWasDuplicated.warn(isCapture(listener) ? "capture" : "bubble", listener.callback);
  706. if (isPassive(listener) !== passive) {
  707. OptionWasIgnored.warn("passive");
  708. }
  709. if (isOnce(listener) !== once) {
  710. OptionWasIgnored.warn("once");
  711. }
  712. if (listener.signal !== signal) {
  713. OptionWasIgnored.warn("signal");
  714. }
  715. }
  716. __name(warnDuplicate, "warnDuplicate");
  717. var keys$1 = Object.getOwnPropertyNames(EventTarget.prototype);
  718. for (let i = 0; i < keys$1.length; ++i) {
  719. if (keys$1[i] === "constructor") {
  720. continue;
  721. }
  722. Object.defineProperty(EventTarget.prototype, keys$1[i], { enumerable: true });
  723. }
  724. if (typeof Global !== "undefined" && typeof Global.EventTarget !== "undefined") {
  725. Object.setPrototypeOf(EventTarget.prototype, Global.EventTarget.prototype);
  726. }
  727. // src/primitives/events.js
  728. var FetchEvent = class extends Event {
  729. constructor(request) {
  730. super("fetch");
  731. this.request = request;
  732. this.response = null;
  733. this.awaiting = /* @__PURE__ */ new Set();
  734. }
  735. respondWith(response) {
  736. this.response = response;
  737. }
  738. waitUntil(promise) {
  739. this.awaiting.add(promise);
  740. promise.finally(() => this.awaiting.delete(promise));
  741. }
  742. };
  743. __name(FetchEvent, "FetchEvent");
  744. var PromiseRejectionEvent = class extends Event {
  745. constructor(type, init) {
  746. super(type, { cancelable: true });
  747. this.promise = init.promise;
  748. this.reason = init.reason;
  749. }
  750. };
  751. __name(PromiseRejectionEvent, "PromiseRejectionEvent");
  752. // Annotate the CommonJS export names for ESM import in node:
  753. 0 && (module.exports = {
  754. Event,
  755. EventTarget,
  756. FetchEvent,
  757. PromiseRejectionEvent
  758. });