(elt, source, args, runtime2)
| 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 | } |
nothing calls this directly
no test coverage detected