mount-observer 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Events.js +9 -0
- package/Events.ts +12 -0
- package/MountObserver.js +21 -0
- package/MountObserver.ts +27 -0
- package/README.md +406 -69
- package/{DefineCustomElementHandler.js → handlers/DefineCustomElement.js} +103 -99
- package/handlers/DefineCustomElement.ts +123 -0
- package/handlers/EnhanceMountedElement.js +99 -0
- package/handlers/EnhanceMountedElement.ts +116 -0
- package/handlers/Events.js +110 -0
- package/handlers/EvtRt.js +59 -0
- package/handlers/GenIds.js +37 -0
- package/handlers/GenIds.ts +45 -0
- package/handlers/HTMLInclude.js +393 -0
- package/handlers/HTMLInclude.ts +453 -0
- package/handlers/HoistTemplate.js +77 -0
- package/handlers/HoistTemplate.ts +89 -0
- package/handlers/MountObserver.js +941 -0
- package/handlers/MountObserverScript.js +78 -0
- package/handlers/MountObserverScript.ts +89 -0
- package/handlers/ScriptExport.js +83 -0
- package/handlers/ScriptExport.ts +97 -0
- package/handlers/SharedMutationObserver.js +78 -0
- package/handlers/arr.js +16 -0
- package/handlers/connectionMonitor.js +122 -0
- package/handlers/elementIntersection.js +73 -0
- package/handlers/emitEvents.js +187 -0
- package/handlers/getRegistryRoot.js +52 -0
- package/handlers/loadImports.js +129 -0
- package/handlers/mediaQuery.js +90 -0
- package/handlers/rootSizeObserver.js +131 -0
- package/handlers/upShadowSearch.js +70 -0
- package/handlers/withScopePerimeter.js +22 -0
- package/index.js +2 -2
- package/index.ts +2 -2
- package/package.json +13 -3
- package/types/assign-gingerly/types.d.ts +244 -0
- package/types/be-a-beacon/types.d.ts +3 -0
- package/types/global.d.ts +29 -0
- package/types/id-generation/types.d.ts +26 -0
- package/types/mount-observer/types.d.ts +330 -0
- package/upShadowSearch.js +6 -3
- package/upShadowSearch.ts +6 -3
|
@@ -0,0 +1,941 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
39
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
+
function step(op) {
|
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
44
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
+
switch (op[0]) {
|
|
47
|
+
case 0: case 1: t = op; break;
|
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
+
default:
|
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
+
if (t[2]) _.ops.pop();
|
|
57
|
+
_.trys.pop(); continue;
|
|
58
|
+
}
|
|
59
|
+
op = body.call(thisArg, _);
|
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
65
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
66
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
67
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
68
|
+
};
|
|
69
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
70
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
71
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
72
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
73
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
74
|
+
};
|
|
75
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
|
+
exports.MountObserver = void 0;
|
|
77
|
+
var arr_js_1 = require("./arr.js");
|
|
78
|
+
var Events_js_1 = require("./Events.js");
|
|
79
|
+
var SharedMutationObserver_js_1 = require("./SharedMutationObserver.js");
|
|
80
|
+
var withScopePerimeter_js_1 = require("./withScopePerimeter.js");
|
|
81
|
+
var MountObserver = /** @class */ (function (_super) {
|
|
82
|
+
__extends(MountObserver, _super);
|
|
83
|
+
function MountObserver(config, options) {
|
|
84
|
+
if (options === void 0) { options = {}; }
|
|
85
|
+
var _this = _super.call(this) || this;
|
|
86
|
+
_MountObserver_instances.add(_this);
|
|
87
|
+
_MountObserver_init.set(_this, void 0);
|
|
88
|
+
_MountObserver_options.set(_this, void 0);
|
|
89
|
+
_MountObserver_abortController.set(_this, void 0);
|
|
90
|
+
_MountObserver_modules.set(_this, []);
|
|
91
|
+
_MountObserver_configFromPromise.set(_this, void 0);
|
|
92
|
+
_MountObserver_mountedElements.set(_this, {
|
|
93
|
+
weakSet: new WeakSet(),
|
|
94
|
+
setWeak: new Set()
|
|
95
|
+
});
|
|
96
|
+
_MountObserver_processedDoForElement.set(_this, new WeakSet());
|
|
97
|
+
_MountObserver_processedEventsForElement.set(_this, new WeakMap());
|
|
98
|
+
_MountObserver_mutationCallback.set(_this, void 0);
|
|
99
|
+
_MountObserver_rootNode.set(_this, void 0);
|
|
100
|
+
_MountObserver_importsLoaded.set(_this, false);
|
|
101
|
+
_MountObserver_mediaQueryCleanup.set(_this, void 0);
|
|
102
|
+
_MountObserver_rootSizeCleanup.set(_this, void 0);
|
|
103
|
+
_MountObserver_intersectionCleanup.set(_this, void 0);
|
|
104
|
+
_MountObserver_connectionCleanup.set(_this, void 0);
|
|
105
|
+
_MountObserver_intersectionObserver.set(_this, void 0);
|
|
106
|
+
_MountObserver_mediaMatches.set(_this, true);
|
|
107
|
+
_MountObserver_rootSizeMatches.set(_this, true);
|
|
108
|
+
_MountObserver_connectionMatches.set(_this, true);
|
|
109
|
+
_MountObserver_asgMtSource.set(_this, void 0);
|
|
110
|
+
_MountObserver_asgDisMtSource.set(_this, void 0);
|
|
111
|
+
_MountObserver_stageMtSource.set(_this, void 0);
|
|
112
|
+
_MountObserver_stageReversals.set(_this, new WeakMap());
|
|
113
|
+
_MountObserver_assignTentatively.set(_this, void 0);
|
|
114
|
+
_MountObserver_elementNotifiers.set(_this, new WeakMap());
|
|
115
|
+
_MountObserver_notifierMountedElements.set(_this, new WeakSet());
|
|
116
|
+
_MountObserver_subObservers.set(_this, void 0);
|
|
117
|
+
_MountObserver_whenDefinedResolved.set(_this, false);
|
|
118
|
+
// Merge handler defaults if do is a string reference
|
|
119
|
+
var mergedConfig = __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_mergeHandlerDefaults).call(_this, config);
|
|
120
|
+
__classPrivateFieldSet(_this, _MountObserver_init, mergedConfig, "f");
|
|
121
|
+
__classPrivateFieldSet(_this, _MountObserver_options, options, "f");
|
|
122
|
+
__classPrivateFieldSet(_this, _MountObserver_abortController, new AbortController(), "f");
|
|
123
|
+
var assignOnMount = mergedConfig.assignOnMount, assignOnDismount = mergedConfig.assignOnDismount, stageOnMount = mergedConfig.stageOnMount, doValue = mergedConfig.do, loadingEagerness = mergedConfig.loadingEagerness, imp = mergedConfig.import, configFrom = mergedConfig.configFrom;
|
|
124
|
+
// Make a copy of assignOnMount config using structuredClone
|
|
125
|
+
if (assignOnMount !== undefined) {
|
|
126
|
+
__classPrivateFieldSet(_this, _MountObserver_asgMtSource, structuredClone(assignOnMount), "f");
|
|
127
|
+
}
|
|
128
|
+
if (assignOnDismount !== undefined) {
|
|
129
|
+
__classPrivateFieldSet(_this, _MountObserver_asgDisMtSource, structuredClone(assignOnDismount), "f");
|
|
130
|
+
}
|
|
131
|
+
if (stageOnMount !== undefined) {
|
|
132
|
+
__classPrivateFieldSet(_this, _MountObserver_stageMtSource, structuredClone(stageOnMount), "f");
|
|
133
|
+
}
|
|
134
|
+
if (options.disconnectedSignal) {
|
|
135
|
+
options.disconnectedSignal.addEventListener('abort', function () {
|
|
136
|
+
_this.disconnect();
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
// Validate do property if it contains string references
|
|
140
|
+
if (doValue !== undefined) {
|
|
141
|
+
__classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_validateDoHandlers).call(_this);
|
|
142
|
+
}
|
|
143
|
+
// Load configFrom modules if specified
|
|
144
|
+
if (configFrom !== undefined) {
|
|
145
|
+
__classPrivateFieldSet(_this, _MountObserver_configFromPromise, __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_loadConfigFrom).call(_this), "f");
|
|
146
|
+
}
|
|
147
|
+
// Start loading imports if eager
|
|
148
|
+
if (loadingEagerness === 'eager' && imp) {
|
|
149
|
+
__classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_loadImports).call(_this);
|
|
150
|
+
}
|
|
151
|
+
return _this;
|
|
152
|
+
}
|
|
153
|
+
MountObserver.define = function (name, handler) {
|
|
154
|
+
if (__classPrivateFieldGet(this, _a, "f", _MountObserver_handlerRegistry).has(name)) {
|
|
155
|
+
throw new Error("".concat(name, " already in use"));
|
|
156
|
+
}
|
|
157
|
+
__classPrivateFieldGet(this, _a, "f", _MountObserver_handlerRegistry).set(name, handler);
|
|
158
|
+
};
|
|
159
|
+
Object.defineProperty(MountObserver.prototype, "disconnectedSignal", {
|
|
160
|
+
get: function () {
|
|
161
|
+
return __classPrivateFieldGet(this, _MountObserver_abortController, "f").signal;
|
|
162
|
+
},
|
|
163
|
+
enumerable: false,
|
|
164
|
+
configurable: true
|
|
165
|
+
});
|
|
166
|
+
Object.defineProperty(MountObserver.prototype, "mountedElements", {
|
|
167
|
+
get: function () {
|
|
168
|
+
var elements = [];
|
|
169
|
+
for (var _i = 0, _b = __classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak; _i < _b.length; _i++) {
|
|
170
|
+
var ref = _b[_i];
|
|
171
|
+
var element = ref.deref();
|
|
172
|
+
if (element !== undefined) {
|
|
173
|
+
elements.push(element);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return elements;
|
|
177
|
+
},
|
|
178
|
+
enumerable: false,
|
|
179
|
+
configurable: true
|
|
180
|
+
});
|
|
181
|
+
MountObserver.prototype.getNotifier = function (element) {
|
|
182
|
+
// Return cached notifier if it exists
|
|
183
|
+
var notifier = __classPrivateFieldGet(this, _MountObserver_elementNotifiers, "f").get(element);
|
|
184
|
+
if (notifier) {
|
|
185
|
+
return notifier;
|
|
186
|
+
}
|
|
187
|
+
// Create new EventTarget for this element
|
|
188
|
+
notifier = new EventTarget();
|
|
189
|
+
__classPrivateFieldGet(this, _MountObserver_elementNotifiers, "f").set(element, notifier);
|
|
190
|
+
return notifier;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Begins observing elements within the provided node.
|
|
194
|
+
*
|
|
195
|
+
* @param observedNode - The node to observe for matching elements. This is the root
|
|
196
|
+
* of the observation scope where the mutation observer will be
|
|
197
|
+
* registered. All matching elements within this node (and its
|
|
198
|
+
* descendants) will trigger mount callbacks.
|
|
199
|
+
*
|
|
200
|
+
* Common values:
|
|
201
|
+
* - `document` - Observe the entire document
|
|
202
|
+
* - `element` - Observe a specific subtree
|
|
203
|
+
* - `shadowRoot` - Observe within a shadow DOM
|
|
204
|
+
*/
|
|
205
|
+
MountObserver.prototype.observe = function (observedNode) {
|
|
206
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
207
|
+
var assignTentatively, observerConfig;
|
|
208
|
+
var _this = this;
|
|
209
|
+
return __generator(this, function (_b) {
|
|
210
|
+
switch (_b.label) {
|
|
211
|
+
case 0:
|
|
212
|
+
if (__classPrivateFieldGet(this, _MountObserver_rootNode, "f")) {
|
|
213
|
+
throw new Error('Already observing');
|
|
214
|
+
}
|
|
215
|
+
if (!__classPrivateFieldGet(this, _MountObserver_configFromPromise, "f")) return [3 /*break*/, 2];
|
|
216
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_configFromPromise, "f")];
|
|
217
|
+
case 1:
|
|
218
|
+
_b.sent();
|
|
219
|
+
_b.label = 2;
|
|
220
|
+
case 2:
|
|
221
|
+
if (!(__classPrivateFieldGet(this, _MountObserver_asgMtSource, "f") || __classPrivateFieldGet(this, _MountObserver_asgDisMtSource, "f"))) return [3 /*break*/, 4];
|
|
222
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('assign-gingerly/object-extension.js'); })];
|
|
223
|
+
case 3:
|
|
224
|
+
_b.sent();
|
|
225
|
+
_b.label = 4;
|
|
226
|
+
case 4:
|
|
227
|
+
if (!__classPrivateFieldGet(this, _MountObserver_stageMtSource, "f")) return [3 /*break*/, 6];
|
|
228
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('assign-gingerly/assignTentatively.js'); })];
|
|
229
|
+
case 5:
|
|
230
|
+
assignTentatively = (_b.sent()).assignTentatively;
|
|
231
|
+
__classPrivateFieldSet(this, _MountObserver_assignTentatively, assignTentatively, "f");
|
|
232
|
+
_b.label = 6;
|
|
233
|
+
case 6:
|
|
234
|
+
__classPrivateFieldSet(this, _MountObserver_rootNode, new WeakRef(observedNode), "f");
|
|
235
|
+
// Wait for whenDefined if specified (must be first check)
|
|
236
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_waitForWhenDefined).call(this, observedNode)];
|
|
237
|
+
case 7:
|
|
238
|
+
// Wait for whenDefined if specified (must be first check)
|
|
239
|
+
_b.sent();
|
|
240
|
+
// Create sub-observers from `with` property
|
|
241
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_createSubObservers).call(this, observedNode)];
|
|
242
|
+
case 8:
|
|
243
|
+
// Create sub-observers from `with` property
|
|
244
|
+
_b.sent();
|
|
245
|
+
if (!__classPrivateFieldGet(this, _MountObserver_init, "f").withMediaMatching) return [3 /*break*/, 10];
|
|
246
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_setupMediaQuery).call(this)];
|
|
247
|
+
case 9:
|
|
248
|
+
_b.sent();
|
|
249
|
+
_b.label = 10;
|
|
250
|
+
case 10:
|
|
251
|
+
if (!__classPrivateFieldGet(this, _MountObserver_init, "f").whereObservedRootSizeMatches) return [3 /*break*/, 12];
|
|
252
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_setupRootSizeObserver).call(this)];
|
|
253
|
+
case 11:
|
|
254
|
+
_b.sent();
|
|
255
|
+
_b.label = 12;
|
|
256
|
+
case 12:
|
|
257
|
+
if (!__classPrivateFieldGet(this, _MountObserver_init, "f").whereElementIntersectsWith) return [3 /*break*/, 14];
|
|
258
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_setupElementIntersection).call(this)];
|
|
259
|
+
case 13:
|
|
260
|
+
_b.sent();
|
|
261
|
+
_b.label = 14;
|
|
262
|
+
case 14:
|
|
263
|
+
if (!__classPrivateFieldGet(this, _MountObserver_init, "f").whereConnectionHas) return [3 /*break*/, 16];
|
|
264
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_setupConnectionMonitor).call(this)];
|
|
265
|
+
case 15:
|
|
266
|
+
_b.sent();
|
|
267
|
+
_b.label = 16;
|
|
268
|
+
case 16:
|
|
269
|
+
if (!(__classPrivateFieldGet(this, _MountObserver_init, "f").loadingEagerness === 'eager' && __classPrivateFieldGet(this, _MountObserver_init, "f").import && !__classPrivateFieldGet(this, _MountObserver_importsLoaded, "f"))) return [3 /*break*/, 18];
|
|
270
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_loadImports).call(this)];
|
|
271
|
+
case 17:
|
|
272
|
+
_b.sent();
|
|
273
|
+
_b.label = 18;
|
|
274
|
+
case 18:
|
|
275
|
+
// Process existing elements only if all conditions match
|
|
276
|
+
if (__classPrivateFieldGet(this, _MountObserver_mediaMatches, "f") && __classPrivateFieldGet(this, _MountObserver_rootSizeMatches, "f") && __classPrivateFieldGet(this, _MountObserver_connectionMatches, "f")) {
|
|
277
|
+
__classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_processNode).call(this, observedNode);
|
|
278
|
+
}
|
|
279
|
+
// Create mutation callback
|
|
280
|
+
__classPrivateFieldSet(this, _MountObserver_mutationCallback, function (mutations) {
|
|
281
|
+
// Skip processing if any condition doesn't match
|
|
282
|
+
if (!__classPrivateFieldGet(_this, _MountObserver_mediaMatches, "f") || !__classPrivateFieldGet(_this, _MountObserver_rootSizeMatches, "f") || !__classPrivateFieldGet(_this, _MountObserver_connectionMatches, "f")) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {
|
|
286
|
+
var mutation = mutations_1[_i];
|
|
287
|
+
if (mutation.type === 'childList') {
|
|
288
|
+
for (var _b = 0, _c = mutation.addedNodes; _b < _c.length; _b++) {
|
|
289
|
+
var node = _c[_b];
|
|
290
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
291
|
+
__classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_processNode).call(_this, node);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
mutation.removedNodes.forEach(function (node) {
|
|
295
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
296
|
+
__classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_handleRemoval).call(_this, node);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}, "f");
|
|
302
|
+
observerConfig = {
|
|
303
|
+
childList: true,
|
|
304
|
+
subtree: true
|
|
305
|
+
};
|
|
306
|
+
// Register with shared mutation observer
|
|
307
|
+
(0, SharedMutationObserver_js_1.registerSharedObserver)(observedNode, __classPrivateFieldGet(this, _MountObserver_mutationCallback, "f"), observerConfig);
|
|
308
|
+
return [2 /*return*/];
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
};
|
|
313
|
+
MountObserver.prototype.disconnect = function () {
|
|
314
|
+
var _b;
|
|
315
|
+
var rootNode = (_b = __classPrivateFieldGet(this, _MountObserver_rootNode, "f")) === null || _b === void 0 ? void 0 : _b.deref();
|
|
316
|
+
// Disconnect all sub-observers first (recursive)
|
|
317
|
+
if (__classPrivateFieldGet(this, _MountObserver_subObservers, "f")) {
|
|
318
|
+
for (var _i = 0, _c = __classPrivateFieldGet(this, _MountObserver_subObservers, "f").values(); _i < _c.length; _i++) {
|
|
319
|
+
var subObserver = _c[_i];
|
|
320
|
+
subObserver.disconnect();
|
|
321
|
+
}
|
|
322
|
+
__classPrivateFieldGet(this, _MountObserver_subObservers, "f").clear();
|
|
323
|
+
__classPrivateFieldSet(this, _MountObserver_subObservers, undefined, "f");
|
|
324
|
+
}
|
|
325
|
+
// Unregister from shared mutation observer
|
|
326
|
+
if (rootNode && __classPrivateFieldGet(this, _MountObserver_mutationCallback, "f")) {
|
|
327
|
+
(0, SharedMutationObserver_js_1.unregisterSharedObserver)(rootNode, __classPrivateFieldGet(this, _MountObserver_mutationCallback, "f"));
|
|
328
|
+
__classPrivateFieldSet(this, _MountObserver_mutationCallback, undefined, "f");
|
|
329
|
+
}
|
|
330
|
+
// Remove media query listener
|
|
331
|
+
if (__classPrivateFieldGet(this, _MountObserver_mediaQueryCleanup, "f")) {
|
|
332
|
+
__classPrivateFieldGet(this, _MountObserver_mediaQueryCleanup, "f").call(this);
|
|
333
|
+
__classPrivateFieldSet(this, _MountObserver_mediaQueryCleanup, undefined, "f");
|
|
334
|
+
}
|
|
335
|
+
// Remove root size observer
|
|
336
|
+
if (__classPrivateFieldGet(this, _MountObserver_rootSizeCleanup, "f")) {
|
|
337
|
+
__classPrivateFieldGet(this, _MountObserver_rootSizeCleanup, "f").call(this);
|
|
338
|
+
__classPrivateFieldSet(this, _MountObserver_rootSizeCleanup, undefined, "f");
|
|
339
|
+
}
|
|
340
|
+
// Remove intersection observer
|
|
341
|
+
if (__classPrivateFieldGet(this, _MountObserver_intersectionCleanup, "f")) {
|
|
342
|
+
__classPrivateFieldGet(this, _MountObserver_intersectionCleanup, "f").call(this);
|
|
343
|
+
__classPrivateFieldSet(this, _MountObserver_intersectionCleanup, undefined, "f");
|
|
344
|
+
}
|
|
345
|
+
// Remove connection monitor
|
|
346
|
+
if (__classPrivateFieldGet(this, _MountObserver_connectionCleanup, "f")) {
|
|
347
|
+
__classPrivateFieldGet(this, _MountObserver_connectionCleanup, "f").call(this);
|
|
348
|
+
__classPrivateFieldSet(this, _MountObserver_connectionCleanup, undefined, "f");
|
|
349
|
+
}
|
|
350
|
+
__classPrivateFieldGet(this, _MountObserver_abortController, "f").abort();
|
|
351
|
+
__classPrivateFieldSet(this, _MountObserver_rootNode, undefined, "f");
|
|
352
|
+
};
|
|
353
|
+
MountObserver.prototype.assignGingerly = function (config) {
|
|
354
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
355
|
+
var _i, _b, ref, element;
|
|
356
|
+
return __generator(this, function (_c) {
|
|
357
|
+
switch (_c.label) {
|
|
358
|
+
case 0:
|
|
359
|
+
// Handle undefined case
|
|
360
|
+
if (config === undefined) {
|
|
361
|
+
__classPrivateFieldSet(this, _MountObserver_asgMtSource, undefined, "f");
|
|
362
|
+
return [2 /*return*/];
|
|
363
|
+
}
|
|
364
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('assign-gingerly/object-extension.js'); })];
|
|
365
|
+
case 1:
|
|
366
|
+
_c.sent();
|
|
367
|
+
// Update the source config for future mounted elements
|
|
368
|
+
if (__classPrivateFieldGet(this, _MountObserver_asgMtSource, "f") === undefined) {
|
|
369
|
+
// No existing config, just clone the passed in object
|
|
370
|
+
__classPrivateFieldSet(this, _MountObserver_asgMtSource, structuredClone(config), "f");
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
// Merge into existing config using assignGingerly
|
|
374
|
+
__classPrivateFieldGet(this, _MountObserver_asgMtSource, "f").assignGingerly(config);
|
|
375
|
+
//assignGingerly(this.#asgMtSource, config);
|
|
376
|
+
}
|
|
377
|
+
// Apply to already mounted elements using setWeak for iteration
|
|
378
|
+
for (_i = 0, _b = __classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak; _i < _b.length; _i++) {
|
|
379
|
+
ref = _b[_i];
|
|
380
|
+
element = ref.deref();
|
|
381
|
+
if (element) {
|
|
382
|
+
element.assignGingerly(config);
|
|
383
|
+
//assignGingerly(element, config);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return [2 /*return*/];
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
});
|
|
390
|
+
};
|
|
391
|
+
var _MountObserver_instances, _a, _MountObserver_handlerRegistry, _MountObserver_init, _MountObserver_options, _MountObserver_abortController, _MountObserver_modules, _MountObserver_configFromPromise, _MountObserver_mountedElements, _MountObserver_processedDoForElement, _MountObserver_processedEventsForElement, _MountObserver_mutationCallback, _MountObserver_rootNode, _MountObserver_importsLoaded, _MountObserver_mediaQueryCleanup, _MountObserver_rootSizeCleanup, _MountObserver_intersectionCleanup, _MountObserver_connectionCleanup, _MountObserver_intersectionObserver, _MountObserver_mediaMatches, _MountObserver_rootSizeMatches, _MountObserver_connectionMatches, _MountObserver_asgMtSource, _MountObserver_asgDisMtSource, _MountObserver_stageMtSource, _MountObserver_stageReversals, _MountObserver_assignTentatively, _MountObserver_elementNotifiers, _MountObserver_notifierMountedElements, _MountObserver_subObservers, _MountObserver_whenDefinedResolved, _MountObserver_mergeHandlerDefaults, _MountObserver_validateDoHandlers, _MountObserver_loadConfigFrom, _MountObserver_waitForWhenDefined, _MountObserver_createSubObservers, _MountObserver_setupMediaQuery, _MountObserver_setupRootSizeObserver, _MountObserver_setupElementIntersection, _MountObserver_setupConnectionMonitor, _MountObserver_loadImports, _MountObserver_processNode, _MountObserver_matchesSelector, _MountObserver_handleMatch, _MountObserver_handleRemoval;
|
|
392
|
+
_a = MountObserver, _MountObserver_init = new WeakMap(), _MountObserver_options = new WeakMap(), _MountObserver_abortController = new WeakMap(), _MountObserver_modules = new WeakMap(), _MountObserver_configFromPromise = new WeakMap(), _MountObserver_mountedElements = new WeakMap(), _MountObserver_processedDoForElement = new WeakMap(), _MountObserver_processedEventsForElement = new WeakMap(), _MountObserver_mutationCallback = new WeakMap(), _MountObserver_rootNode = new WeakMap(), _MountObserver_importsLoaded = new WeakMap(), _MountObserver_mediaQueryCleanup = new WeakMap(), _MountObserver_rootSizeCleanup = new WeakMap(), _MountObserver_intersectionCleanup = new WeakMap(), _MountObserver_connectionCleanup = new WeakMap(), _MountObserver_intersectionObserver = new WeakMap(), _MountObserver_mediaMatches = new WeakMap(), _MountObserver_rootSizeMatches = new WeakMap(), _MountObserver_connectionMatches = new WeakMap(), _MountObserver_asgMtSource = new WeakMap(), _MountObserver_asgDisMtSource = new WeakMap(), _MountObserver_stageMtSource = new WeakMap(), _MountObserver_stageReversals = new WeakMap(), _MountObserver_assignTentatively = new WeakMap(), _MountObserver_elementNotifiers = new WeakMap(), _MountObserver_notifierMountedElements = new WeakMap(), _MountObserver_subObservers = new WeakMap(), _MountObserver_whenDefinedResolved = new WeakMap(), _MountObserver_instances = new WeakSet(), _MountObserver_mergeHandlerDefaults = function _MountObserver_mergeHandlerDefaults(config) {
|
|
393
|
+
var doValue = config.do;
|
|
394
|
+
// Only process if do is a string (single handler reference)
|
|
395
|
+
if (typeof doValue !== 'string') {
|
|
396
|
+
return config;
|
|
397
|
+
}
|
|
398
|
+
// Look up the handler class
|
|
399
|
+
var HandlerClass = __classPrivateFieldGet(_a, _a, "f", _MountObserver_handlerRegistry).get(doValue);
|
|
400
|
+
if (!HandlerClass) {
|
|
401
|
+
// Validation will catch this later
|
|
402
|
+
return config;
|
|
403
|
+
}
|
|
404
|
+
// Extract static properties from the handler class
|
|
405
|
+
var handlerDefaults = {};
|
|
406
|
+
var proto = HandlerClass;
|
|
407
|
+
// Get all static properties
|
|
408
|
+
for (var _i = 0, _b = Object.getOwnPropertyNames(proto); _i < _b.length; _i++) {
|
|
409
|
+
var key = _b[_i];
|
|
410
|
+
if (key !== 'prototype' && key !== 'length' && key !== 'name') {
|
|
411
|
+
handlerDefaults[key] = proto[key];
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
// Merge: handler defaults first, then inline config (inline trumps)
|
|
415
|
+
// Using object spread - inline config overwrites handler defaults
|
|
416
|
+
return __assign(__assign({}, handlerDefaults), config);
|
|
417
|
+
}, _MountObserver_validateDoHandlers = function _MountObserver_validateDoHandlers() {
|
|
418
|
+
var doValue = __classPrivateFieldGet(this, _MountObserver_init, "f").do;
|
|
419
|
+
if (doValue === undefined)
|
|
420
|
+
return;
|
|
421
|
+
var handlers = Array.isArray(doValue) ? doValue : [doValue];
|
|
422
|
+
for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {
|
|
423
|
+
var handler = handlers_1[_i];
|
|
424
|
+
if (typeof handler === 'string') {
|
|
425
|
+
if (!__classPrivateFieldGet(_a, _a, "f", _MountObserver_handlerRegistry).has(handler)) {
|
|
426
|
+
throw new Error("No handler defined for ".concat(handler));
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}, _MountObserver_loadConfigFrom = function _MountObserver_loadConfigFrom() {
|
|
431
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
432
|
+
var configFrom, configPaths, pathSet, _i, configPaths_1, path, loadedConfigs, _b, configPaths_2, path, module, error_1, inlineConfig, mergedConfig, _c, loadedConfigs_1, loadedConfig;
|
|
433
|
+
return __generator(this, function (_d) {
|
|
434
|
+
switch (_d.label) {
|
|
435
|
+
case 0:
|
|
436
|
+
configFrom = __classPrivateFieldGet(this, _MountObserver_init, "f").configFrom;
|
|
437
|
+
if (!configFrom)
|
|
438
|
+
return [2 /*return*/];
|
|
439
|
+
configPaths = Array.isArray(configFrom) ? configFrom : [configFrom];
|
|
440
|
+
pathSet = new Set();
|
|
441
|
+
for (_i = 0, configPaths_1 = configPaths; _i < configPaths_1.length; _i++) {
|
|
442
|
+
path = configPaths_1[_i];
|
|
443
|
+
if (pathSet.has(path)) {
|
|
444
|
+
throw new Error("Duplicate configFrom module: '".concat(path, "'"));
|
|
445
|
+
}
|
|
446
|
+
pathSet.add(path);
|
|
447
|
+
}
|
|
448
|
+
loadedConfigs = [];
|
|
449
|
+
_b = 0, configPaths_2 = configPaths;
|
|
450
|
+
_d.label = 1;
|
|
451
|
+
case 1:
|
|
452
|
+
if (!(_b < configPaths_2.length)) return [3 /*break*/, 6];
|
|
453
|
+
path = configPaths_2[_b];
|
|
454
|
+
_d.label = 2;
|
|
455
|
+
case 2:
|
|
456
|
+
_d.trys.push([2, 4, , 5]);
|
|
457
|
+
return [4 /*yield*/, Promise.resolve("".concat(path)).then(function (s) { return require(s); })];
|
|
458
|
+
case 3:
|
|
459
|
+
module = _d.sent();
|
|
460
|
+
if (!module.mountConfig) {
|
|
461
|
+
throw new Error("Module '".concat(path, "' does not export 'mountConfig'"));
|
|
462
|
+
}
|
|
463
|
+
if (typeof module.mountConfig !== 'object' || module.mountConfig === null) {
|
|
464
|
+
throw new Error("Module '".concat(path, "' exports invalid mountConfig: must be an object"));
|
|
465
|
+
}
|
|
466
|
+
loadedConfigs.push(module.mountConfig);
|
|
467
|
+
return [3 /*break*/, 5];
|
|
468
|
+
case 4:
|
|
469
|
+
error_1 = _d.sent();
|
|
470
|
+
// Re-throw with better context if it's not already our error
|
|
471
|
+
if (error_1 instanceof Error && !error_1.message.includes(path)) {
|
|
472
|
+
throw new Error("Failed to load config from '".concat(path, "': ").concat(error_1.message));
|
|
473
|
+
}
|
|
474
|
+
throw error_1;
|
|
475
|
+
case 5:
|
|
476
|
+
_b++;
|
|
477
|
+
return [3 /*break*/, 1];
|
|
478
|
+
case 6:
|
|
479
|
+
inlineConfig = __assign({}, __classPrivateFieldGet(this, _MountObserver_init, "f"));
|
|
480
|
+
mergedConfig = {};
|
|
481
|
+
for (_c = 0, loadedConfigs_1 = loadedConfigs; _c < loadedConfigs_1.length; _c++) {
|
|
482
|
+
loadedConfig = loadedConfigs_1[_c];
|
|
483
|
+
mergedConfig = Object.assign(mergedConfig, loadedConfig);
|
|
484
|
+
}
|
|
485
|
+
// Inline config takes final precedence
|
|
486
|
+
mergedConfig = Object.assign(mergedConfig, inlineConfig);
|
|
487
|
+
// Update the init config with merged result
|
|
488
|
+
__classPrivateFieldSet(this, _MountObserver_init, mergedConfig, "f");
|
|
489
|
+
return [2 /*return*/];
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
});
|
|
493
|
+
}, _MountObserver_waitForWhenDefined = function _MountObserver_waitForWhenDefined(rootNode) {
|
|
494
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
495
|
+
var registry, tagNames;
|
|
496
|
+
return __generator(this, function (_b) {
|
|
497
|
+
switch (_b.label) {
|
|
498
|
+
case 0:
|
|
499
|
+
// Skip if already resolved or not configured
|
|
500
|
+
if (__classPrivateFieldGet(this, _MountObserver_whenDefinedResolved, "f") || !__classPrivateFieldGet(this, _MountObserver_init, "f").whenDefined) {
|
|
501
|
+
return [2 /*return*/];
|
|
502
|
+
}
|
|
503
|
+
registry = rootNode.customElementRegistry || customElements;
|
|
504
|
+
tagNames = (0, arr_js_1.arr)(__classPrivateFieldGet(this, _MountObserver_init, "f").whenDefined);
|
|
505
|
+
// Wait for all tags to be defined
|
|
506
|
+
return [4 /*yield*/, Promise.all(tagNames.map(function (tag) { return registry.whenDefined(tag); }))];
|
|
507
|
+
case 1:
|
|
508
|
+
// Wait for all tags to be defined
|
|
509
|
+
_b.sent();
|
|
510
|
+
// Mark as resolved so we don't check again
|
|
511
|
+
__classPrivateFieldSet(this, _MountObserver_whenDefinedResolved, true, "f");
|
|
512
|
+
return [2 /*return*/];
|
|
513
|
+
}
|
|
514
|
+
});
|
|
515
|
+
});
|
|
516
|
+
}, _MountObserver_createSubObservers = function _MountObserver_createSubObservers(rootNode) {
|
|
517
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
518
|
+
var withConfig, _i, _b, _c, key, subConfig, subObserver;
|
|
519
|
+
return __generator(this, function (_d) {
|
|
520
|
+
switch (_d.label) {
|
|
521
|
+
case 0:
|
|
522
|
+
withConfig = __classPrivateFieldGet(this, _MountObserver_init, "f").with;
|
|
523
|
+
if (!withConfig)
|
|
524
|
+
return [2 /*return*/];
|
|
525
|
+
__classPrivateFieldSet(this, _MountObserver_subObservers, new Map(), "f");
|
|
526
|
+
_i = 0, _b = Object.entries(withConfig);
|
|
527
|
+
_d.label = 1;
|
|
528
|
+
case 1:
|
|
529
|
+
if (!(_i < _b.length)) return [3 /*break*/, 4];
|
|
530
|
+
_c = _b[_i], key = _c[0], subConfig = _c[1];
|
|
531
|
+
subObserver = new _a(subConfig);
|
|
532
|
+
__classPrivateFieldGet(this, _MountObserver_subObservers, "f").set(key, subObserver);
|
|
533
|
+
return [4 /*yield*/, subObserver.observe(rootNode)];
|
|
534
|
+
case 2:
|
|
535
|
+
_d.sent();
|
|
536
|
+
_d.label = 3;
|
|
537
|
+
case 3:
|
|
538
|
+
_i++;
|
|
539
|
+
return [3 /*break*/, 1];
|
|
540
|
+
case 4: return [2 /*return*/];
|
|
541
|
+
}
|
|
542
|
+
});
|
|
543
|
+
});
|
|
544
|
+
}, _MountObserver_setupMediaQuery = function _MountObserver_setupMediaQuery() {
|
|
545
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
546
|
+
var setupMediaQuery, result;
|
|
547
|
+
var _this = this;
|
|
548
|
+
return __generator(this, function (_b) {
|
|
549
|
+
switch (_b.label) {
|
|
550
|
+
case 0:
|
|
551
|
+
if (!__classPrivateFieldGet(this, _MountObserver_rootNode, "f")) {
|
|
552
|
+
throw new Error('Cannot setup media query before observe() is called');
|
|
553
|
+
}
|
|
554
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./mediaQuery.js'); })];
|
|
555
|
+
case 1:
|
|
556
|
+
setupMediaQuery = (_b.sent()).setupMediaQuery;
|
|
557
|
+
result = setupMediaQuery(__classPrivateFieldGet(this, _MountObserver_init, "f"), __classPrivateFieldGet(this, _MountObserver_rootNode, "f"), __classPrivateFieldGet(this, _MountObserver_mountedElements, "f"), __classPrivateFieldGet(this, _MountObserver_modules, "f"), this, function (node) { return __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_processNode).call(_this, node); });
|
|
558
|
+
__classPrivateFieldSet(this, _MountObserver_mediaMatches, result.mediaMatches, "f");
|
|
559
|
+
__classPrivateFieldSet(this, _MountObserver_mediaQueryCleanup, result.cleanup, "f");
|
|
560
|
+
return [2 /*return*/];
|
|
561
|
+
}
|
|
562
|
+
});
|
|
563
|
+
});
|
|
564
|
+
}, _MountObserver_setupRootSizeObserver = function _MountObserver_setupRootSizeObserver() {
|
|
565
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
566
|
+
var setupRootSizeObserver, result;
|
|
567
|
+
var _this = this;
|
|
568
|
+
return __generator(this, function (_b) {
|
|
569
|
+
switch (_b.label) {
|
|
570
|
+
case 0:
|
|
571
|
+
if (!__classPrivateFieldGet(this, _MountObserver_rootNode, "f")) {
|
|
572
|
+
throw new Error('Cannot setup root size observer before observe() is called');
|
|
573
|
+
}
|
|
574
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./rootSizeObserver.js'); })];
|
|
575
|
+
case 1:
|
|
576
|
+
setupRootSizeObserver = (_b.sent()).setupRootSizeObserver;
|
|
577
|
+
result = setupRootSizeObserver(__classPrivateFieldGet(this, _MountObserver_init, "f"), __classPrivateFieldGet(this, _MountObserver_rootNode, "f"), __classPrivateFieldGet(this, _MountObserver_mountedElements, "f"), __classPrivateFieldGet(this, _MountObserver_modules, "f"), this, function (node) { return __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_processNode).call(_this, node); });
|
|
578
|
+
__classPrivateFieldSet(this, _MountObserver_rootSizeMatches, result.conditionMatches, "f");
|
|
579
|
+
__classPrivateFieldSet(this, _MountObserver_rootSizeCleanup, result.cleanup, "f");
|
|
580
|
+
return [2 /*return*/];
|
|
581
|
+
}
|
|
582
|
+
});
|
|
583
|
+
});
|
|
584
|
+
}, _MountObserver_setupElementIntersection = function _MountObserver_setupElementIntersection() {
|
|
585
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
586
|
+
var setupElementIntersection, result;
|
|
587
|
+
var _this = this;
|
|
588
|
+
return __generator(this, function (_b) {
|
|
589
|
+
switch (_b.label) {
|
|
590
|
+
case 0:
|
|
591
|
+
if (!__classPrivateFieldGet(this, _MountObserver_rootNode, "f")) {
|
|
592
|
+
throw new Error('Cannot setup element intersection before observe() is called');
|
|
593
|
+
}
|
|
594
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./elementIntersection.js'); })];
|
|
595
|
+
case 1:
|
|
596
|
+
setupElementIntersection = (_b.sent()).setupElementIntersection;
|
|
597
|
+
result = setupElementIntersection(__classPrivateFieldGet(this, _MountObserver_init, "f"), __classPrivateFieldGet(this, _MountObserver_rootNode, "f"), __classPrivateFieldGet(this, _MountObserver_mountedElements, "f"), __classPrivateFieldGet(this, _MountObserver_modules, "f"), this, function (element) { return __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_matchesSelector).call(_this, element); }, function (element) { return __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_handleMatch).call(_this, element); });
|
|
598
|
+
__classPrivateFieldSet(this, _MountObserver_intersectionObserver, result.intersectionObserver, "f");
|
|
599
|
+
__classPrivateFieldSet(this, _MountObserver_intersectionCleanup, result.cleanup, "f");
|
|
600
|
+
return [2 /*return*/];
|
|
601
|
+
}
|
|
602
|
+
});
|
|
603
|
+
});
|
|
604
|
+
}, _MountObserver_setupConnectionMonitor = function _MountObserver_setupConnectionMonitor() {
|
|
605
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
606
|
+
var setupConnectionMonitor, result;
|
|
607
|
+
var _this = this;
|
|
608
|
+
return __generator(this, function (_b) {
|
|
609
|
+
switch (_b.label) {
|
|
610
|
+
case 0:
|
|
611
|
+
if (!__classPrivateFieldGet(this, _MountObserver_rootNode, "f")) {
|
|
612
|
+
throw new Error('Cannot setup connection monitor before observe() is called');
|
|
613
|
+
}
|
|
614
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./connectionMonitor.js'); })];
|
|
615
|
+
case 1:
|
|
616
|
+
setupConnectionMonitor = (_b.sent()).setupConnectionMonitor;
|
|
617
|
+
result = setupConnectionMonitor(__classPrivateFieldGet(this, _MountObserver_init, "f"), __classPrivateFieldGet(this, _MountObserver_rootNode, "f"), __classPrivateFieldGet(this, _MountObserver_mountedElements, "f"), __classPrivateFieldGet(this, _MountObserver_modules, "f"), this, function (node) { return __classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_processNode).call(_this, node); });
|
|
618
|
+
__classPrivateFieldSet(this, _MountObserver_connectionMatches, result.conditionMatches, "f");
|
|
619
|
+
__classPrivateFieldSet(this, _MountObserver_connectionCleanup, result.cleanup, "f");
|
|
620
|
+
return [2 /*return*/];
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
});
|
|
624
|
+
}, _MountObserver_loadImports = function _MountObserver_loadImports() {
|
|
625
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
626
|
+
var loadImports, _b;
|
|
627
|
+
return __generator(this, function (_c) {
|
|
628
|
+
switch (_c.label) {
|
|
629
|
+
case 0:
|
|
630
|
+
if (__classPrivateFieldGet(this, _MountObserver_importsLoaded, "f") || !__classPrivateFieldGet(this, _MountObserver_init, "f").import) {
|
|
631
|
+
return [2 /*return*/];
|
|
632
|
+
}
|
|
633
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./loadImports.js'); })];
|
|
634
|
+
case 1:
|
|
635
|
+
loadImports = (_c.sent()).loadImports;
|
|
636
|
+
_b = [this, _MountObserver_modules];
|
|
637
|
+
return [4 /*yield*/, loadImports(__classPrivateFieldGet(this, _MountObserver_init, "f").import)];
|
|
638
|
+
case 2:
|
|
639
|
+
__classPrivateFieldSet.apply(void 0, _b.concat([_c.sent(), "f"]));
|
|
640
|
+
__classPrivateFieldSet(this, _MountObserver_importsLoaded, true, "f");
|
|
641
|
+
this.dispatchEvent(new Events_js_1.LoadEvent(__classPrivateFieldGet(this, _MountObserver_modules, "f"), __classPrivateFieldGet(this, _MountObserver_init, "f")));
|
|
642
|
+
return [2 /*return*/];
|
|
643
|
+
}
|
|
644
|
+
});
|
|
645
|
+
});
|
|
646
|
+
}, _MountObserver_processNode = function _MountObserver_processNode(node) {
|
|
647
|
+
var _this = this;
|
|
648
|
+
// If it's an element node, check if it matches
|
|
649
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
650
|
+
var element = node;
|
|
651
|
+
// If intersection observer is active, start observing the element
|
|
652
|
+
// The intersection callback will handle mounting when it intersects
|
|
653
|
+
if (__classPrivateFieldGet(this, _MountObserver_intersectionObserver, "f")) {
|
|
654
|
+
__classPrivateFieldGet(this, _MountObserver_intersectionObserver, "f").observe(element);
|
|
655
|
+
}
|
|
656
|
+
else if (__classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_matchesSelector).call(this, element)) {
|
|
657
|
+
__classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_handleMatch).call(this, element);
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
// Process children
|
|
661
|
+
if ('querySelectorAll' in node && __classPrivateFieldGet(this, _MountObserver_init, "f").matching) {
|
|
662
|
+
var root = node;
|
|
663
|
+
// Get all elements matching the CSS selector first
|
|
664
|
+
var matches = root.querySelectorAll(__classPrivateFieldGet(this, _MountObserver_init, "f").matching);
|
|
665
|
+
matches.forEach(function (child) {
|
|
666
|
+
// If intersection observer is active, start observing the element
|
|
667
|
+
if (__classPrivateFieldGet(_this, _MountObserver_intersectionObserver, "f")) {
|
|
668
|
+
__classPrivateFieldGet(_this, _MountObserver_intersectionObserver, "f").observe(child);
|
|
669
|
+
}
|
|
670
|
+
else if (__classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_matchesSelector).call(_this, child)) {
|
|
671
|
+
__classPrivateFieldGet(_this, _MountObserver_instances, "m", _MountObserver_handleMatch).call(_this, child);
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
}
|
|
675
|
+
}, _MountObserver_matchesSelector = function _MountObserver_matchesSelector(element) {
|
|
676
|
+
var _b;
|
|
677
|
+
//TODO: reduce redundncy with this.#init?
|
|
678
|
+
// Check matching condition
|
|
679
|
+
if (!__classPrivateFieldGet(this, _MountObserver_init, "f").matching) {
|
|
680
|
+
return false;
|
|
681
|
+
}
|
|
682
|
+
var matchesElement = element.matches(__classPrivateFieldGet(this, _MountObserver_init, "f").matching);
|
|
683
|
+
if (!matchesElement) {
|
|
684
|
+
return false;
|
|
685
|
+
}
|
|
686
|
+
// Check that element's customElementRegistry matches root node's registry
|
|
687
|
+
var rootNode = (_b = __classPrivateFieldGet(this, _MountObserver_rootNode, "f")) === null || _b === void 0 ? void 0 : _b.deref();
|
|
688
|
+
if (rootNode) {
|
|
689
|
+
var registriesMatch = rootNode.customElementRegistry === element.customElementRegistry;
|
|
690
|
+
// If whereDifferentCustomElementRegistry is true, exclude matching registries
|
|
691
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").whereDifferentCustomElementRegistry) {
|
|
692
|
+
if (registriesMatch)
|
|
693
|
+
return false;
|
|
694
|
+
}
|
|
695
|
+
else {
|
|
696
|
+
// Default behavior: exclude non-matching registries
|
|
697
|
+
if (!registriesMatch)
|
|
698
|
+
return false;
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
// Check withScopePerimeter condition if specified (donut hole scoping)
|
|
702
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").withScopePerimeter) {
|
|
703
|
+
if (!rootNode || !(0, withScopePerimeter_js_1.withScopePerimeter)(rootNode, element, __classPrivateFieldGet(this, _MountObserver_init, "f").withScopePerimeter)) {
|
|
704
|
+
return false;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
// Check whereObservedRootSizeMatches condition if specified
|
|
708
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").whereObservedRootSizeMatches && !__classPrivateFieldGet(this, _MountObserver_rootSizeMatches, "f")) {
|
|
709
|
+
return false;
|
|
710
|
+
}
|
|
711
|
+
// Check whereInstanceOf condition if specified
|
|
712
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").whereInstanceOf) {
|
|
713
|
+
var constructors = (0, arr_js_1.arr)(__classPrivateFieldGet(this, _MountObserver_init, "f").whereInstanceOf);
|
|
714
|
+
// Element must be an instance of at least one constructor (OR logic for array)
|
|
715
|
+
var matchesInstanceOf = constructors.some(function (constructor) { return element instanceof constructor; });
|
|
716
|
+
if (!matchesInstanceOf) {
|
|
717
|
+
return false;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
// Check whereLocalNameMatches condition if specified
|
|
721
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").whereLocalNameMatches) {
|
|
722
|
+
var pattern = typeof __classPrivateFieldGet(this, _MountObserver_init, "f").whereLocalNameMatches === 'string'
|
|
723
|
+
? new RegExp(__classPrivateFieldGet(this, _MountObserver_init, "f").whereLocalNameMatches)
|
|
724
|
+
: __classPrivateFieldGet(this, _MountObserver_init, "f").whereLocalNameMatches;
|
|
725
|
+
if (!pattern.test(element.localName)) {
|
|
726
|
+
return false;
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
// All conditions passed
|
|
730
|
+
return true;
|
|
731
|
+
}, _MountObserver_handleMatch = function _MountObserver_handleMatch(element) {
|
|
732
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
733
|
+
var rootNode, context, _i, _b, _c, key, subObserver, shouldMount, _d, _e, ref, _f, _g, ref, reversal, notifierExistedBeforeDo, doHandlers, _h, doHandlers_1, handler, HandlerClass, mountEvent, notifier, emitMountedElementEvents;
|
|
734
|
+
var _j;
|
|
735
|
+
return __generator(this, function (_k) {
|
|
736
|
+
switch (_k.label) {
|
|
737
|
+
case 0:
|
|
738
|
+
if (__classPrivateFieldGet(this, _MountObserver_processedDoForElement, "f").has(element)) {
|
|
739
|
+
return [2 /*return*/];
|
|
740
|
+
}
|
|
741
|
+
if (!(!__classPrivateFieldGet(this, _MountObserver_importsLoaded, "f") && __classPrivateFieldGet(this, _MountObserver_init, "f").import)) return [3 /*break*/, 2];
|
|
742
|
+
return [4 /*yield*/, __classPrivateFieldGet(this, _MountObserver_instances, "m", _MountObserver_loadImports).call(this)];
|
|
743
|
+
case 1:
|
|
744
|
+
_k.sent();
|
|
745
|
+
_k.label = 2;
|
|
746
|
+
case 2:
|
|
747
|
+
__classPrivateFieldGet(this, _MountObserver_processedDoForElement, "f").add(element);
|
|
748
|
+
// Add to both WeakSet and Set<WeakRef> for efficient operations
|
|
749
|
+
if (!__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").weakSet.has(element)) {
|
|
750
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").weakSet.add(element);
|
|
751
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak.add(new WeakRef(element));
|
|
752
|
+
}
|
|
753
|
+
rootNode = (_j = __classPrivateFieldGet(this, _MountObserver_rootNode, "f")) === null || _j === void 0 ? void 0 : _j.deref();
|
|
754
|
+
if (!rootNode) {
|
|
755
|
+
// Root node was garbage collected
|
|
756
|
+
return [2 /*return*/];
|
|
757
|
+
}
|
|
758
|
+
context = {
|
|
759
|
+
modules: __classPrivateFieldGet(this, _MountObserver_modules, "f"),
|
|
760
|
+
observer: this,
|
|
761
|
+
rootNode: rootNode,
|
|
762
|
+
mountConfig: __classPrivateFieldGet(this, _MountObserver_init, "f"),
|
|
763
|
+
};
|
|
764
|
+
// Add withObservers if sub-observers exist
|
|
765
|
+
if (__classPrivateFieldGet(this, _MountObserver_subObservers, "f") && __classPrivateFieldGet(this, _MountObserver_subObservers, "f").size > 0) {
|
|
766
|
+
context.withObservers = {};
|
|
767
|
+
for (_i = 0, _b = __classPrivateFieldGet(this, _MountObserver_subObservers, "f").entries(); _i < _b.length; _i++) {
|
|
768
|
+
_c = _b[_i], key = _c[0], subObserver = _c[1];
|
|
769
|
+
context.withObservers[key] = subObserver;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
// Check shouldMount condition if specified (final gate before mounting)
|
|
773
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").shouldMount) {
|
|
774
|
+
try {
|
|
775
|
+
shouldMount = __classPrivateFieldGet(this, _MountObserver_init, "f").shouldMount(element, context);
|
|
776
|
+
if (!shouldMount) {
|
|
777
|
+
// shouldMount returned false - don't mount this element
|
|
778
|
+
// Remove from processed set so it can be re-evaluated later
|
|
779
|
+
__classPrivateFieldGet(this, _MountObserver_processedDoForElement, "f").delete(element);
|
|
780
|
+
// Remove from mounted elements tracking
|
|
781
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").weakSet.delete(element);
|
|
782
|
+
for (_d = 0, _e = __classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak; _d < _e.length; _d++) {
|
|
783
|
+
ref = _e[_d];
|
|
784
|
+
if (ref.deref() === element) {
|
|
785
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak.delete(ref);
|
|
786
|
+
break;
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
return [2 /*return*/];
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
catch (error) {
|
|
793
|
+
// shouldMount threw an error - treat as false and log
|
|
794
|
+
console.error('shouldMount check failed:', error);
|
|
795
|
+
// Remove from processed set so it can be re-evaluated later
|
|
796
|
+
__classPrivateFieldGet(this, _MountObserver_processedDoForElement, "f").delete(element);
|
|
797
|
+
// Remove from mounted elements tracking
|
|
798
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").weakSet.delete(element);
|
|
799
|
+
for (_f = 0, _g = __classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak; _f < _g.length; _f++) {
|
|
800
|
+
ref = _g[_f];
|
|
801
|
+
if (ref.deref() === element) {
|
|
802
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak.delete(ref);
|
|
803
|
+
break;
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
return [2 /*return*/];
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
// Apply assignGingerly if specified
|
|
810
|
+
if (__classPrivateFieldGet(this, _MountObserver_asgMtSource, "f")) {
|
|
811
|
+
element.assignGingerly(__classPrivateFieldGet(this, _MountObserver_asgMtSource, "f"));
|
|
812
|
+
}
|
|
813
|
+
// Apply assignTentatively if specified (staged assignments)
|
|
814
|
+
if (__classPrivateFieldGet(this, _MountObserver_stageMtSource, "f") && __classPrivateFieldGet(this, _MountObserver_assignTentatively, "f")) {
|
|
815
|
+
reversal = {};
|
|
816
|
+
__classPrivateFieldGet(this, _MountObserver_assignTentatively, "f").call(this, element, __classPrivateFieldGet(this, _MountObserver_stageMtSource, "f"), { reversal: reversal });
|
|
817
|
+
__classPrivateFieldGet(this, _MountObserver_stageReversals, "f").set(element, reversal);
|
|
818
|
+
}
|
|
819
|
+
notifierExistedBeforeDo = __classPrivateFieldGet(this, _MountObserver_elementNotifiers, "f").has(element);
|
|
820
|
+
// Call do callback(s) - can be string, function, or array
|
|
821
|
+
if (__classPrivateFieldGet(this, _MountObserver_init, "f").do !== undefined) {
|
|
822
|
+
doHandlers = Array.isArray(__classPrivateFieldGet(this, _MountObserver_init, "f").do) ? __classPrivateFieldGet(this, _MountObserver_init, "f").do : [__classPrivateFieldGet(this, _MountObserver_init, "f").do];
|
|
823
|
+
for (_h = 0, doHandlers_1 = doHandlers; _h < doHandlers_1.length; _h++) {
|
|
824
|
+
handler = doHandlers_1[_h];
|
|
825
|
+
if (typeof handler === 'string') {
|
|
826
|
+
HandlerClass = __classPrivateFieldGet(_a, _a, "f", _MountObserver_handlerRegistry).get(handler);
|
|
827
|
+
if (HandlerClass) {
|
|
828
|
+
new HandlerClass(element, context);
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
else if (typeof handler === 'function') {
|
|
832
|
+
// Inline function
|
|
833
|
+
handler(element, context);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
mountEvent = new Events_js_1.MountEvent(element, __classPrivateFieldGet(this, _MountObserver_modules, "f"), __classPrivateFieldGet(this, _MountObserver_init, "f"), context);
|
|
838
|
+
this.dispatchEvent(mountEvent);
|
|
839
|
+
// Dispatch to element-specific notifier only if:
|
|
840
|
+
// 1. Notifier existed before do callback (wasn't just created), AND
|
|
841
|
+
// 2. Element hasn't already received a mount event on its notifier
|
|
842
|
+
if (notifierExistedBeforeDo && !__classPrivateFieldGet(this, _MountObserver_notifierMountedElements, "f").has(element)) {
|
|
843
|
+
notifier = __classPrivateFieldGet(this, _MountObserver_elementNotifiers, "f").get(element);
|
|
844
|
+
if (notifier) {
|
|
845
|
+
__classPrivateFieldGet(this, _MountObserver_notifierMountedElements, "f").add(element);
|
|
846
|
+
notifier.dispatchEvent(mountEvent);
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
if (!__classPrivateFieldGet(this, _MountObserver_init, "f").mountedElemEmits) return [3 /*break*/, 5];
|
|
850
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return require('./emitEvents.js'); })];
|
|
851
|
+
case 3:
|
|
852
|
+
emitMountedElementEvents = (_k.sent()).emitMountedElementEvents;
|
|
853
|
+
return [4 /*yield*/, emitMountedElementEvents(element, __classPrivateFieldGet(this, _MountObserver_init, "f"), __classPrivateFieldGet(this, _MountObserver_processedEventsForElement, "f"))];
|
|
854
|
+
case 4:
|
|
855
|
+
_k.sent();
|
|
856
|
+
_k.label = 5;
|
|
857
|
+
case 5: return [2 /*return*/];
|
|
858
|
+
}
|
|
859
|
+
});
|
|
860
|
+
});
|
|
861
|
+
}, _MountObserver_handleRemoval = function _MountObserver_handleRemoval(element) {
|
|
862
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
863
|
+
var reversal, _i, _b, ref, rootNode, context, _c, _d, _e, key, subObserver, dismountEvent, notifier;
|
|
864
|
+
var _this = this;
|
|
865
|
+
var _f;
|
|
866
|
+
return __generator(this, function (_g) {
|
|
867
|
+
if (!__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").weakSet.has(element)) {
|
|
868
|
+
return [2 /*return*/];
|
|
869
|
+
}
|
|
870
|
+
// Reverse tentative assignments first (restore original values)
|
|
871
|
+
if (__classPrivateFieldGet(this, _MountObserver_stageMtSource, "f") && __classPrivateFieldGet(this, _MountObserver_assignTentatively, "f")) {
|
|
872
|
+
reversal = __classPrivateFieldGet(this, _MountObserver_stageReversals, "f").get(element);
|
|
873
|
+
if (reversal) {
|
|
874
|
+
__classPrivateFieldGet(this, _MountObserver_assignTentatively, "f").call(this, element, reversal);
|
|
875
|
+
__classPrivateFieldGet(this, _MountObserver_stageReversals, "f").delete(element);
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
// Apply assignGingerly if specified for dismount
|
|
879
|
+
if (__classPrivateFieldGet(this, _MountObserver_asgDisMtSource, "f")) {
|
|
880
|
+
element.assignGingerly(__classPrivateFieldGet(this, _MountObserver_asgDisMtSource, "f"));
|
|
881
|
+
}
|
|
882
|
+
// Remove from both structures
|
|
883
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").weakSet.delete(element);
|
|
884
|
+
for (_i = 0, _b = __classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak; _i < _b.length; _i++) {
|
|
885
|
+
ref = _b[_i];
|
|
886
|
+
if (ref.deref() === element) {
|
|
887
|
+
__classPrivateFieldGet(this, _MountObserver_mountedElements, "f").setWeak.delete(ref);
|
|
888
|
+
break;
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
// Remove from processed set so element can be re-mounted
|
|
892
|
+
__classPrivateFieldGet(this, _MountObserver_processedDoForElement, "f").delete(element);
|
|
893
|
+
// Remove from notifier mounted tracking so mount event can fire again
|
|
894
|
+
__classPrivateFieldGet(this, _MountObserver_notifierMountedElements, "f").delete(element);
|
|
895
|
+
rootNode = (_f = __classPrivateFieldGet(this, _MountObserver_rootNode, "f")) === null || _f === void 0 ? void 0 : _f.deref();
|
|
896
|
+
if (!rootNode) {
|
|
897
|
+
// Root node was garbage collected
|
|
898
|
+
return [2 /*return*/];
|
|
899
|
+
}
|
|
900
|
+
context = {
|
|
901
|
+
modules: __classPrivateFieldGet(this, _MountObserver_modules, "f"),
|
|
902
|
+
observer: this,
|
|
903
|
+
rootNode: rootNode,
|
|
904
|
+
mountConfig: __classPrivateFieldGet(this, _MountObserver_init, "f"),
|
|
905
|
+
};
|
|
906
|
+
// Add withObservers if sub-observers exist
|
|
907
|
+
if (__classPrivateFieldGet(this, _MountObserver_subObservers, "f") && __classPrivateFieldGet(this, _MountObserver_subObservers, "f").size > 0) {
|
|
908
|
+
context.withObservers = {};
|
|
909
|
+
for (_c = 0, _d = __classPrivateFieldGet(this, _MountObserver_subObservers, "f").entries(); _c < _d.length; _c++) {
|
|
910
|
+
_e = _d[_c], key = _e[0], subObserver = _e[1];
|
|
911
|
+
context.withObservers[key] = subObserver;
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
dismountEvent = new Events_js_1.DismountEvent(element, 'with-matching-failed', __classPrivateFieldGet(this, _MountObserver_init, "f"));
|
|
915
|
+
this.dispatchEvent(dismountEvent);
|
|
916
|
+
notifier = __classPrivateFieldGet(this, _MountObserver_elementNotifiers, "f").get(element);
|
|
917
|
+
if (notifier) {
|
|
918
|
+
notifier.dispatchEvent(dismountEvent);
|
|
919
|
+
}
|
|
920
|
+
// Check if element is being moved within the same root
|
|
921
|
+
// If it's truly disconnected, dispatch disconnect event
|
|
922
|
+
setTimeout(function () {
|
|
923
|
+
if (!rootNode.contains(element)) {
|
|
924
|
+
var disconnectEvent = new Events_js_1.DisconnectEvent(element, __classPrivateFieldGet(_this, _MountObserver_init, "f"));
|
|
925
|
+
_this.dispatchEvent(disconnectEvent);
|
|
926
|
+
// Dispatch to element-specific notifier
|
|
927
|
+
var notifier_1 = __classPrivateFieldGet(_this, _MountObserver_elementNotifiers, "f").get(element);
|
|
928
|
+
if (notifier_1) {
|
|
929
|
+
notifier_1.dispatchEvent(disconnectEvent);
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
}, 0);
|
|
933
|
+
return [2 /*return*/];
|
|
934
|
+
});
|
|
935
|
+
});
|
|
936
|
+
};
|
|
937
|
+
// Static registry for registered handlers
|
|
938
|
+
_MountObserver_handlerRegistry = { value: new Map() };
|
|
939
|
+
return MountObserver;
|
|
940
|
+
}(EventTarget));
|
|
941
|
+
exports.MountObserver = MountObserver;
|