MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / install

Method install

tools/common/_hyperscript.iife.js:8698–8856  ·  view source on GitHub ↗
(elt, source, args, runtime2)

Source from the content-addressed store, hash-verified

8696 start.execute(ctx);
8697 }
8698 install(elt, source, args, runtime2) {
8699 const onFeature = this;
8700 const displayName = this.displayName;
8701 const errorHandler = this.errorHandler;
8702 const errorSymbol = this.errorSymbol;
8703 const finallyHandler = this.finallyHandler;
8704 for (const eventSpec of onFeature.events) {
8705 var targets;
8706 if (eventSpec.elsewhere) {
8707 targets = [document];
8708 } else if (eventSpec.from) {
8709 targets = eventSpec.from.evaluate(runtime2.makeContext(elt, onFeature, elt, null));
8710 } else {
8711 targets = [elt];
8712 }
8713 var internalData = runtime2.getInternalData(elt);
8714 if (!internalData.eventState) internalData.eventState = /* @__PURE__ */ new Map();
8715 if (!internalData.eventState.has(eventSpec)) {
8716 internalData.eventState.set(eventSpec, { execCount: 0, debounced: void 0, lastExec: void 0 });
8717 }
8718 var eventState = internalData.eventState.get(eventSpec);
8719 runtime2.implicitLoop(targets, function(target) {
8720 var eventName = eventSpec.on;
8721 if (target == null) {
8722 console.warn("'%s' feature ignored because target does not exists:", displayName, elt);
8723 return;
8724 }
8725 var eltData = runtime2.getInternalData(elt);
8726 if (!eltData.listeners) eltData.listeners = [];
8727 if (!eltData.observers) eltData.observers = [];
8728 if (eventSpec.mutationSpec) {
8729 eventName = "hyperscript:mutation";
8730 const observer = new MutationObserver(function(mutationList, observer2) {
8731 if (!onFeature.executing) {
8732 runtime2.triggerEvent(target, eventName, {
8733 mutationList,
8734 observer: observer2
8735 });
8736 }
8737 });
8738 observer.observe(target, eventSpec.mutationSpec);
8739 eltData.observers.push(observer);
8740 }
8741 if (eventSpec.intersectionSpec) {
8742 eventName = "hyperscript:intersection";
8743 const observer = new IntersectionObserver(function(entries) {
8744 for (const entry of entries) {
8745 var detail = {
8746 observer
8747 };
8748 detail = Object.assign(detail, entry);
8749 detail["intersecting"] = entry.isIntersecting;
8750 runtime2.triggerEvent(target, eventName, detail);
8751 }
8752 }, eventSpec.intersectionSpec);
8753 observer.observe(target);
8754 eltData.observers.push(observer);
8755 }

Callers

nothing calls this directly

Calls 11

clearTimeoutFunction · 0.70
setTimeoutFunction · 0.70
evaluateMethod · 0.45
makeContextMethod · 0.45
getInternalDataMethod · 0.45
setMethod · 0.45
getMethod · 0.45
implicitLoopMethod · 0.45
triggerEventMethod · 0.45
containsMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected