@civet/events
Version:
136 lines (135 loc) • 4.74 kB
JavaScript
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 };