UNPKG

@civet/events

Version:
136 lines (135 loc) 4.74 kB
import { createContext as e, useContext as t, useEffect as n, useMemo as r, useState as i } from "react"; import { Notifier as a, createPlugin as o, useResourceContext as s } from "@civet/core"; import { Fragment as c, jsx as l } from "react/jsx-runtime"; //#region \0rolldown/runtime.js var u = Object.create, d = Object.defineProperty, f = Object.getOwnPropertyDescriptor, p = Object.getOwnPropertyNames, m = Object.getPrototypeOf, h = Object.prototype.hasOwnProperty, g = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), _ = (e, t, n, r) => { if (t && typeof t == "object" || typeof t == "function") for (var i = p(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !h.call(e, s) && s !== n && d(e, s, { get: ((e) => t[e]).bind(null, s), enumerable: !(r = f(t, s)) || r.enumerable }); return e; }, v = (e, t, n) => (n = e == null ? {} : u(m(e)), _(t || !e || !e.__esModule ? d(n, "default", { value: e, enumerable: !0 }) : n, e)), y = e({}); y.displayName = "Events.ConfigContext"; var b = y.Consumer, x = () => t(y); //#endregion //#region lib/composeHandlers.ts function S(...e) { return (...t) => e.reduce((e, n) => e || (typeof n == "function" ? n(...t) : !1), !1); } //#endregion //#region lib/EventReceiver.ts var C = class { _inferEvent; _inferResource; _inferOptions; subscribe(e, t, n) { if (typeof n != "function") throw Error("Handler must be a function"); let r = e instanceof a ? e : new a(), i = this.handleSubscribe(r, t, n); return e instanceof a || r.trigger(e), typeof i != "function" && console.warn("EventReceiver.handleSubscribe should return a callback to cancel the subscription. Ignoring this warning may result in the execution of obsolete handlers and potential memory leaks."), i; } }, w = (e) => e instanceof C; //#endregion //#region lib/ConfigProvider.tsx function T({ eventReceiver: e, children: t }) { let n = r(() => ({ eventReceiver: e }), [e]); return /* @__PURE__ */ l(y.Provider, { value: n, children: t }); } //#endregion //#region lib/useEventHandler.ts var E = /* @__PURE__ */ v((/* @__PURE__ */ g(((e, t) => { t.exports = function e(t, n) { if (t === n) return !0; if (t && n && typeof t == "object" && typeof n == "object") { if (t.constructor !== n.constructor) return !1; var r, i, a; if (Array.isArray(t)) { if (r = t.length, r != n.length) return !1; for (i = r; i-- !== 0;) if (!e(t[i], n[i])) return !1; return !0; } if (t.constructor === RegExp) return t.source === n.source && t.flags === n.flags; if (t.valueOf !== Object.prototype.valueOf) return t.valueOf() === n.valueOf(); if (t.toString !== Object.prototype.toString) return t.toString() === n.toString(); if (a = Object.keys(t), r = a.length, r !== Object.keys(n).length) return !1; for (i = r; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(n, a[i])) return !1; for (i = r; i-- !== 0;) { var o = a[i]; if (!e(t[o], n[o])) return !1; } return !0; } return t !== t && n !== n; }; })))(), 1); function D({ eventReceiver: e, resource: t, disabled: r, options: o, onEvent: c, onNotify: l }) { let u = x(), d = e || u.eventReceiver, f = s(), p = t === null ? void 0 : t || f, [m, h] = i(p); p?.request !== m?.request && h(p); let [g, _] = i(o); (0, E.default)(g, o) || _(o); let v = !!(r || p?.isDisabled), [[y, b, S] = [], C] = i(); n(() => { if (d == null || v) { C(void 0); return; } let e = new a(), t = d.subscribe(e, g, (e) => { if ((e?.length || 0) === 0) return; let t; if (t = typeof c == "function" ? e.filter((e) => !c(e)) : e, t.length === 0 || typeof m?.notify != "function") return; let n = m.notify(); typeof l == "function" && n.then((e) => l(e, t)); }); return e.trigger(m), C([ m?.request, m?.revision, e ]), t; }, [ d, v, m, g, c, l ]), n(() => { S == null || p?.request !== y || p?.revision === b || S.trigger(p); }, [ S, p, y, b ]); } //#endregion //#region lib/EventHandler.tsx function O({ eventReceiver: e, resource: t, disabled: n, options: r, onEvent: i, onNotify: a, children: o }) { return D({ eventReceiver: e, resource: t, disabled: n, options: r, onEvent: i, onNotify: a }), /* @__PURE__ */ l(c, { children: o }); } //#endregion //#region lib/eventPlugin.ts var k = o((e) => class extends e { extend(e) { super.extend(e), e.context((e, { events: t = !1 }) => (D(typeof t == "boolean" ? { disabled: !t, resource: e } : { ...t, resource: e }), e)); } }); //#endregion export { b as ConfigConsumer, T as ConfigProvider, O as EventHandler, C as EventReceiver, S as composeHandlers, k as eventPlugin, w as isEventReceiver, x as useConfigContext, D as useEventHandler };