in packages/shared/src/event.ts [347:378]
detachEvents(container?: EventContainer) {
if (!container) {
this.containers.forEach((container) => {
this.detachEvents(container)
})
return
}
if (isWindow(container)) {
return this.detachEvents(container.document)
}
if (!container[ATTACHED_SYMBOL]) return
container[ATTACHED_SYMBOL].forEach((driver) => {
driver.detach(container)
})
this[DRIVER_INSTANCES_SYMBOL] = this[DRIVER_INSTANCES_SYMBOL] || []
this[DRIVER_INSTANCES_SYMBOL] = this[DRIVER_INSTANCES_SYMBOL].reduce(
(drivers, driver) => {
if (driver.container === container) {
driver.detach(container)
return drivers
}
return drivers.concat(driver)
},
[]
)
this.containers = this.containers.filter((item) => item !== container)
delete container[ATTACHED_SYMBOL]
delete container[EVENTS_SYMBOL]
delete container[EVENTS_ONCE_SYMBOL]
delete container[EVENTS_BATCH_SYMBOL]
}