UNPKG

next

Version:

The React Framework

546 lines (542 loc) • 18.2 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // <define:process> var init_define_process = __esm({ "<define:process>"() { } }); // ../../node_modules/.pnpm/event-target-shim@5.0.1/node_modules/event-target-shim/dist/event-target-shim.js var require_event_target_shim = __commonJS({ "../../node_modules/.pnpm/event-target-shim@5.0.1/node_modules/event-target-shim/dist/event-target-shim.js"(exports, module2) { "use strict"; init_define_process(); Object.defineProperty(exports, "__esModule", { value: true }); var privateData = /* @__PURE__ */ new WeakMap(); var wrappers = /* @__PURE__ */ new WeakMap(); function pd(event) { const retv = privateData.get(event); console.assert(retv != null, "'this' is expected an Event object, but got", event); return retv; } __name(pd, "pd"); function setCancelFlag(data) { if (data.passiveListener != null) { if (typeof console !== "undefined" && typeof console.error === "function") { console.error("Unable to preventDefault inside passive event listener invocation.", data.passiveListener); } return; } if (!data.event.cancelable) { return; } data.canceled = true; if (typeof data.event.preventDefault === "function") { data.event.preventDefault(); } } __name(setCancelFlag, "setCancelFlag"); function Event2(eventTarget, event) { privateData.set(this, { eventTarget, event, eventPhase: 2, currentTarget: eventTarget, canceled: false, stopped: false, immediateStopped: false, passiveListener: null, timeStamp: event.timeStamp || Date.now() }); Object.defineProperty(this, "isTrusted", { value: false, enumerable: true }); const keys = Object.keys(event); for (let i = 0; i < keys.length; ++i) { const key = keys[i]; if (!(key in this)) { Object.defineProperty(this, key, defineRedirectDescriptor(key)); } } } __name(Event2, "Event"); Event2.prototype = { get type() { return pd(this).event.type; }, get target() { return pd(this).eventTarget; }, get currentTarget() { return pd(this).currentTarget; }, composedPath() { const currentTarget = pd(this).currentTarget; if (currentTarget == null) { return []; } return [currentTarget]; }, get NONE() { return 0; }, get CAPTURING_PHASE() { return 1; }, get AT_TARGET() { return 2; }, get BUBBLING_PHASE() { return 3; }, get eventPhase() { return pd(this).eventPhase; }, stopPropagation() { const data = pd(this); data.stopped = true; if (typeof data.event.stopPropagation === "function") { data.event.stopPropagation(); } }, stopImmediatePropagation() { const data = pd(this); data.stopped = true; data.immediateStopped = true; if (typeof data.event.stopImmediatePropagation === "function") { data.event.stopImmediatePropagation(); } }, get bubbles() { return Boolean(pd(this).event.bubbles); }, get cancelable() { return Boolean(pd(this).event.cancelable); }, preventDefault() { setCancelFlag(pd(this)); }, get defaultPrevented() { return pd(this).canceled; }, get composed() { return Boolean(pd(this).event.composed); }, get timeStamp() { return pd(this).timeStamp; }, get srcElement() { return pd(this).eventTarget; }, get cancelBubble() { return pd(this).stopped; }, set cancelBubble(value) { if (!value) { return; } const data = pd(this); data.stopped = true; if (typeof data.event.cancelBubble === "boolean") { data.event.cancelBubble = true; } }, get returnValue() { return !pd(this).canceled; }, set returnValue(value) { if (!value) { setCancelFlag(pd(this)); } }, initEvent() { } }; Object.defineProperty(Event2.prototype, "constructor", { value: Event2, configurable: true, writable: true }); if (typeof window !== "undefined" && typeof window.Event !== "undefined") { Object.setPrototypeOf(Event2.prototype, window.Event.prototype); wrappers.set(window.Event.prototype, Event2); } function defineRedirectDescriptor(key) { return { get() { return pd(this).event[key]; }, set(value) { pd(this).event[key] = value; }, configurable: true, enumerable: true }; } __name(defineRedirectDescriptor, "defineRedirectDescriptor"); function defineCallDescriptor(key) { return { value() { const event = pd(this).event; return event[key].apply(event, arguments); }, configurable: true, enumerable: true }; } __name(defineCallDescriptor, "defineCallDescriptor"); function defineWrapper(BaseEvent, proto) { const keys = Object.keys(proto); if (keys.length === 0) { return BaseEvent; } function CustomEvent(eventTarget, event) { BaseEvent.call(this, eventTarget, event); } __name(CustomEvent, "CustomEvent"); CustomEvent.prototype = Object.create(BaseEvent.prototype, { constructor: { value: CustomEvent, configurable: true, writable: true } }); for (let i = 0; i < keys.length; ++i) { const key = keys[i]; if (!(key in BaseEvent.prototype)) { const descriptor = Object.getOwnPropertyDescriptor(proto, key); const isFunc = typeof descriptor.value === "function"; Object.defineProperty(CustomEvent.prototype, key, isFunc ? defineCallDescriptor(key) : defineRedirectDescriptor(key)); } } return CustomEvent; } __name(defineWrapper, "defineWrapper"); function getWrapper(proto) { if (proto == null || proto === Object.prototype) { return Event2; } let wrapper = wrappers.get(proto); if (wrapper == null) { wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto); wrappers.set(proto, wrapper); } return wrapper; } __name(getWrapper, "getWrapper"); function wrapEvent(eventTarget, event) { const Wrapper = getWrapper(Object.getPrototypeOf(event)); return new Wrapper(eventTarget, event); } __name(wrapEvent, "wrapEvent"); function isStopped(event) { return pd(event).immediateStopped; } __name(isStopped, "isStopped"); function setEventPhase(event, eventPhase) { pd(event).eventPhase = eventPhase; } __name(setEventPhase, "setEventPhase"); function setCurrentTarget(event, currentTarget) { pd(event).currentTarget = currentTarget; } __name(setCurrentTarget, "setCurrentTarget"); function setPassiveListener(event, passiveListener) { pd(event).passiveListener = passiveListener; } __name(setPassiveListener, "setPassiveListener"); var listenersMap = /* @__PURE__ */ new WeakMap(); var CAPTURE = 1; var BUBBLE = 2; var ATTRIBUTE = 3; function isObject(x) { return x !== null && typeof x === "object"; } __name(isObject, "isObject"); function getListeners(eventTarget) { const listeners = listenersMap.get(eventTarget); if (listeners == null) { throw new TypeError("'this' is expected an EventTarget object, but got another value."); } return listeners; } __name(getListeners, "getListeners"); function defineEventAttributeDescriptor(eventName) { return { get() { const listeners = getListeners(this); let node = listeners.get(eventName); while (node != null) { if (node.listenerType === ATTRIBUTE) { return node.listener; } node = node.next; } return null; }, set(listener) { if (typeof listener !== "function" && !isObject(listener)) { listener = null; } const listeners = getListeners(this); let prev = null; let node = listeners.get(eventName); while (node != null) { if (node.listenerType === ATTRIBUTE) { if (prev !== null) { prev.next = node.next; } else if (node.next !== null) { listeners.set(eventName, node.next); } else { listeners.delete(eventName); } } else { prev = node; } node = node.next; } if (listener !== null) { const newNode = { listener, listenerType: ATTRIBUTE, passive: false, once: false, next: null }; if (prev === null) { listeners.set(eventName, newNode); } else { prev.next = newNode; } } }, configurable: true, enumerable: true }; } __name(defineEventAttributeDescriptor, "defineEventAttributeDescriptor"); function defineEventAttribute(eventTargetPrototype, eventName) { Object.defineProperty(eventTargetPrototype, `on${eventName}`, defineEventAttributeDescriptor(eventName)); } __name(defineEventAttribute, "defineEventAttribute"); function defineCustomEventTarget(eventNames) { function CustomEventTarget() { EventTarget2.call(this); } __name(CustomEventTarget, "CustomEventTarget"); CustomEventTarget.prototype = Object.create(EventTarget2.prototype, { constructor: { value: CustomEventTarget, configurable: true, writable: true } }); for (let i = 0; i < eventNames.length; ++i) { defineEventAttribute(CustomEventTarget.prototype, eventNames[i]); } return CustomEventTarget; } __name(defineCustomEventTarget, "defineCustomEventTarget"); function EventTarget2() { if (this instanceof EventTarget2) { listenersMap.set(this, /* @__PURE__ */ new Map()); return; } if (arguments.length === 1 && Array.isArray(arguments[0])) { return defineCustomEventTarget(arguments[0]); } if (arguments.length > 0) { const types = new Array(arguments.length); for (let i = 0; i < arguments.length; ++i) { types[i] = arguments[i]; } return defineCustomEventTarget(types); } throw new TypeError("Cannot call a class as a function"); } __name(EventTarget2, "EventTarget"); EventTarget2.prototype = { addEventListener(eventName, listener, options) { if (listener == null) { return; } if (typeof listener !== "function" && !isObject(listener)) { throw new TypeError("'listener' should be a function or an object."); } const listeners = getListeners(this); const optionsIsObj = isObject(options); const capture = optionsIsObj ? Boolean(options.capture) : Boolean(options); const listenerType = capture ? CAPTURE : BUBBLE; const newNode = { listener, listenerType, passive: optionsIsObj && Boolean(options.passive), once: optionsIsObj && Boolean(options.once), next: null }; let node = listeners.get(eventName); if (node === void 0) { listeners.set(eventName, newNode); return; } let prev = null; while (node != null) { if (node.listener === listener && node.listenerType === listenerType) { return; } prev = node; node = node.next; } prev.next = newNode; }, removeEventListener(eventName, listener, options) { if (listener == null) { return; } const listeners = getListeners(this); const capture = isObject(options) ? Boolean(options.capture) : Boolean(options); const listenerType = capture ? CAPTURE : BUBBLE; let prev = null; let node = listeners.get(eventName); while (node != null) { if (node.listener === listener && node.listenerType === listenerType) { if (prev !== null) { prev.next = node.next; } else if (node.next !== null) { listeners.set(eventName, node.next); } else { listeners.delete(eventName); } return; } prev = node; node = node.next; } }, dispatchEvent(event) { if (event == null || typeof event.type !== "string") { throw new TypeError('"event.type" should be a string.'); } const listeners = getListeners(this); const eventName = event.type; let node = listeners.get(eventName); if (node == null) { return true; } const wrappedEvent = wrapEvent(this, event); let prev = null; while (node != null) { if (node.once) { if (prev !== null) { prev.next = node.next; } else if (node.next !== null) { listeners.set(eventName, node.next); } else { listeners.delete(eventName); } } else { prev = node; } setPassiveListener(wrappedEvent, node.passive ? node.listener : null); if (typeof node.listener === "function") { try { node.listener.call(this, wrappedEvent); } catch (err) { if (typeof console !== "undefined" && typeof console.error === "function") { console.error(err); } } } else if (node.listenerType !== ATTRIBUTE && typeof node.listener.handleEvent === "function") { node.listener.handleEvent(wrappedEvent); } if (isStopped(wrappedEvent)) { break; } node = node.next; } setPassiveListener(wrappedEvent, null); setEventPhase(wrappedEvent, 0); setCurrentTarget(wrappedEvent, null); return !wrappedEvent.defaultPrevented; } }; Object.defineProperty(EventTarget2.prototype, "constructor", { value: EventTarget2, configurable: true, writable: true }); if (typeof window !== "undefined" && typeof window.EventTarget !== "undefined") { Object.setPrototypeOf(EventTarget2.prototype, window.EventTarget.prototype); } exports.defineEventAttribute = defineEventAttribute; exports.EventTarget = EventTarget2; exports.default = EventTarget2; module2.exports = EventTarget2; module2.exports.EventTarget = module2.exports["default"] = EventTarget2; module2.exports.defineEventAttribute = defineEventAttribute; } }); // src/primitives/events.js var events_exports = {}; __export(events_exports, { Event: () => Event, EventTarget: () => EventTarget, FetchEvent: () => FetchEvent, PromiseRejectionEvent: () => PromiseRejectionEvent }); module.exports = __toCommonJS(events_exports); init_define_process(); var import_event_target_shim = __toESM(require_event_target_shim()); var EventTarget = import_event_target_shim.default.EventTarget; var Event = class extends import_event_target_shim.default { }; __name(Event, "Event"); var FetchEvent = class extends Event { constructor(request) { super("fetch"); this.request = request; this.response = null; this.awaiting = /* @__PURE__ */ new Set(); } respondWith(response) { this.response = response; } waitUntil(promise) { this.awaiting.add(promise); promise.finally(() => this.awaiting.delete(promise)); } }; __name(FetchEvent, "FetchEvent"); var PromiseRejectionEvent = class extends Event { constructor(type, init) { super(type, { cancelable: true }); this.promise = init.promise; this.reason = init.reason; } }; __name(PromiseRejectionEvent, "PromiseRejectionEvent"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { Event, EventTarget, FetchEvent, PromiseRejectionEvent });