(elt, source, args, runtime2)
| 9146 | start.execute(ctx); |
| 9147 | } |
| 9148 | install(elt, source, args, runtime2) { |
| 9149 | const onFeature = this; |
| 9150 | const displayName = this.displayName; |
| 9151 | const errorHandler = this.errorHandler; |
| 9152 | const errorSymbol = this.errorSymbol; |
| 9153 | const finallyHandler = this.finallyHandler; |
| 9154 | for (const eventSpec of onFeature.events) { |
| 9155 | var targets; |
| 9156 | if (eventSpec.elsewhere) { |
| 9157 | targets = [document]; |
| 9158 | } else if (eventSpec.from) { |
| 9159 | targets = eventSpec.from.evaluate(runtime2.makeContext(elt, onFeature, elt, null)); |
| 9160 | } else { |
| 9161 | targets = [elt]; |
| 9162 | } |
| 9163 | var internalData = runtime2.getInternalData(elt); |
| 9164 | if (!internalData.eventState) internalData.eventState = /* @__PURE__ */ new Map(); |
| 9165 | if (!internalData.eventState.has(eventSpec)) { |
| 9166 | internalData.eventState.set(eventSpec, { execCount: 0, debounced: void 0, lastExec: void 0 }); |
| 9167 | } |
| 9168 | var eventState = internalData.eventState.get(eventSpec); |
| 9169 | runtime2.implicitLoop(targets, function(target) { |
| 9170 | var eventName = eventSpec.on; |
| 9171 | if (target == null) { |
| 9172 | console.warn("'%s' feature ignored because target does not exists:", displayName, elt); |
| 9173 | return; |
| 9174 | } |
| 9175 | var eltData = runtime2.getInternalData(elt); |
| 9176 | if (!eltData.listeners) eltData.listeners = []; |
| 9177 | if (!eltData.observers) eltData.observers = []; |
| 9178 | if (eventSpec.mutationSpec) { |
| 9179 | eventName = "hyperscript:mutation"; |
| 9180 | const observer = new MutationObserver(function(mutationList, observer2) { |
| 9181 | if (!onFeature.executing) { |
| 9182 | runtime2.triggerEvent(target, eventName, { |
| 9183 | mutationList, |
| 9184 | observer: observer2 |
| 9185 | }); |
| 9186 | } |
| 9187 | }); |
| 9188 | observer.observe(target, eventSpec.mutationSpec); |
| 9189 | eltData.observers.push(observer); |
| 9190 | } |
| 9191 | if (eventSpec.intersectionSpec) { |
| 9192 | eventName = "hyperscript:intersection"; |
| 9193 | const observer = new IntersectionObserver(function(entries) { |
| 9194 | for (const entry of entries) { |
| 9195 | var detail = { |
| 9196 | observer |
| 9197 | }; |
| 9198 | detail = Object.assign(detail, entry); |
| 9199 | detail["intersecting"] = entry.isIntersecting; |
| 9200 | runtime2.triggerEvent(target, eventName, detail); |
| 9201 | } |
| 9202 | }, eventSpec.intersectionSpec); |
| 9203 | observer.observe(target); |
| 9204 | eltData.observers.push(observer); |
| 9205 | } |
nothing calls this directly
no test coverage detected