laif-ds 0.2.78 → 0.2.80

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.
Files changed (48) hide show
  1. package/dist/CHANGELOG.md +25 -0
  2. package/dist/_virtual/index3.js +5 -5
  3. package/dist/_virtual/index4.js +5 -5
  4. package/dist/_virtual/index5.js +4 -4
  5. package/dist/agent-docs/adoption-report.json +10 -10
  6. package/dist/agent-docs/components/AppEditor.md +4 -4
  7. package/dist/agent-docs/components/AppSelect.md +46 -0
  8. package/dist/agent-docs/manifest.json +5 -3
  9. package/dist/components/editor/editor-ui/content-editable.js +15 -8
  10. package/dist/components/ui/app-editor.js +88 -76
  11. package/dist/components/ui/app-select.js +232 -143
  12. package/dist/components/ui/date-picker.js +184 -153
  13. package/dist/components/ui/markdown-renderer.js +40 -30
  14. package/dist/index.d.ts +3 -1
  15. package/dist/node_modules/comma-separated-tokens/index.js +16 -5
  16. package/dist/node_modules/entities/dist/esm/decode-codepoint.js +39 -0
  17. package/dist/node_modules/entities/dist/esm/decode.js +246 -0
  18. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.js +8 -0
  19. package/dist/node_modules/eventemitter3/index.js +1 -1
  20. package/dist/node_modules/hast-util-from-parse5/lib/index.js +146 -0
  21. package/dist/node_modules/hast-util-parse-selector/lib/index.js +21 -0
  22. package/dist/node_modules/hast-util-raw/lib/index.js +218 -0
  23. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  24. package/dist/node_modules/hast-util-to-parse5/lib/index.js +119 -0
  25. package/dist/node_modules/hastscript/lib/create-h.js +113 -0
  26. package/dist/node_modules/hastscript/lib/index.js +9 -0
  27. package/dist/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js +45 -0
  28. package/dist/node_modules/parse5/dist/common/doctype.js +99 -0
  29. package/dist/node_modules/parse5/dist/common/error-codes.js +8 -0
  30. package/dist/node_modules/parse5/dist/common/foreign-content.js +211 -0
  31. package/dist/node_modules/parse5/dist/common/html.js +251 -0
  32. package/dist/node_modules/parse5/dist/common/token.js +15 -0
  33. package/dist/node_modules/parse5/dist/common/unicode.js +74 -0
  34. package/dist/node_modules/parse5/dist/parser/formatting-element-list.js +85 -0
  35. package/dist/node_modules/parse5/dist/parser/index.js +2272 -0
  36. package/dist/node_modules/parse5/dist/parser/open-element-stack.js +241 -0
  37. package/dist/node_modules/parse5/dist/serializer/index.js +3 -0
  38. package/dist/node_modules/parse5/dist/tokenizer/index.js +1941 -0
  39. package/dist/node_modules/parse5/dist/tokenizer/preprocessor.js +89 -0
  40. package/dist/node_modules/parse5/dist/tree-adapters/default.js +163 -0
  41. package/dist/node_modules/recharts/es6/util/Events.js +1 -1
  42. package/dist/node_modules/rehype-raw/lib/index.js +13 -0
  43. package/dist/node_modules/space-separated-tokens/index.js +8 -3
  44. package/dist/node_modules/unified/lib/index.js +1 -1
  45. package/dist/node_modules/vfile-location/lib/index.js +43 -0
  46. package/dist/node_modules/web-namespaces/index.js +12 -0
  47. package/dist/styles.v3.css +1 -1
  48. package/package.json +2 -1
@@ -0,0 +1,2272 @@
1
+ "use client";
2
+ import { Tokenizer as Ie, TokenizerMode as d } from "../tokenizer/index.js";
3
+ import { OpenElementStack as _e } from "./open-element-stack.js";
4
+ import { FormattingElementList as Ae, EntryType as he } from "./formatting-element-list.js";
5
+ import { defaultTreeAdapter as fe } from "../tree-adapters/default.js";
6
+ import { getDocumentMode as ge, isConforming as Ne } from "../common/doctype.js";
7
+ import { isIntegrationPoint as Le, causesExit as ue, adjustTokenMathMLAttrs as Q, adjustTokenSVGTagName as Oe, adjustTokenSVGAttrs as j, adjustTokenXMLAttrs as k } from "../common/foreign-content.js";
8
+ import { ERR as l } from "../common/error-codes.js";
9
+ import { CODE_POINTS as Ce, REPLACEMENT_CHARACTER as Re } from "../common/unicode.js";
10
+ import { getTagID as J, TAG_ID as a, TAG_NAMES as I, NS as o, SPECIAL_ELEMENTS as Me, DOCUMENT_MODE as w, NUMBERED_HEADERS as be, ATTRS as Be } from "../common/html.js";
11
+ import { TokenType as T, getTokenAttr as De } from "../common/token.js";
12
+ const Se = "hidden", Pe = 8, Fe = 3;
13
+ var s;
14
+ (function(e) {
15
+ e[e.INITIAL = 0] = "INITIAL", e[e.BEFORE_HTML = 1] = "BEFORE_HTML", e[e.BEFORE_HEAD = 2] = "BEFORE_HEAD", e[e.IN_HEAD = 3] = "IN_HEAD", e[e.IN_HEAD_NO_SCRIPT = 4] = "IN_HEAD_NO_SCRIPT", e[e.AFTER_HEAD = 5] = "AFTER_HEAD", e[e.IN_BODY = 6] = "IN_BODY", e[e.TEXT = 7] = "TEXT", e[e.IN_TABLE = 8] = "IN_TABLE", e[e.IN_TABLE_TEXT = 9] = "IN_TABLE_TEXT", e[e.IN_CAPTION = 10] = "IN_CAPTION", e[e.IN_COLUMN_GROUP = 11] = "IN_COLUMN_GROUP", e[e.IN_TABLE_BODY = 12] = "IN_TABLE_BODY", e[e.IN_ROW = 13] = "IN_ROW", e[e.IN_CELL = 14] = "IN_CELL", e[e.IN_SELECT = 15] = "IN_SELECT", e[e.IN_SELECT_IN_TABLE = 16] = "IN_SELECT_IN_TABLE", e[e.IN_TEMPLATE = 17] = "IN_TEMPLATE", e[e.AFTER_BODY = 18] = "AFTER_BODY", e[e.IN_FRAMESET = 19] = "IN_FRAMESET", e[e.AFTER_FRAMESET = 20] = "AFTER_FRAMESET", e[e.AFTER_AFTER_BODY = 21] = "AFTER_AFTER_BODY", e[e.AFTER_AFTER_FRAMESET = 22] = "AFTER_AFTER_FRAMESET";
16
+ })(s || (s = {}));
17
+ const He = {
18
+ startLine: -1,
19
+ startCol: -1,
20
+ startOffset: -1,
21
+ endLine: -1,
22
+ endCol: -1,
23
+ endOffset: -1
24
+ }, q = /* @__PURE__ */ new Set([a.TABLE, a.TBODY, a.TFOOT, a.THEAD, a.TR]), z = {
25
+ scriptingEnabled: !0,
26
+ sourceCodeLocationInfo: !1,
27
+ treeAdapter: fe,
28
+ onParseError: null
29
+ };
30
+ class ua {
31
+ constructor(t, n, r = null, i = null) {
32
+ this.fragmentContext = r, this.scriptHandler = i, this.currentToken = null, this.stopped = !1, this.insertionMode = s.INITIAL, this.originalInsertionMode = s.INITIAL, this.headElement = null, this.formElement = null, this.currentNotInHTML = !1, this.tmplInsertionModeStack = [], this.pendingCharacterTokens = [], this.hasNonWhitespacePendingCharacterToken = !1, this.framesetOk = !0, this.skipNextNewLine = !1, this.fosterParentingEnabled = !1, this.options = {
33
+ ...z,
34
+ ...t
35
+ }, this.treeAdapter = this.options.treeAdapter, this.onParseError = this.options.onParseError, this.onParseError && (this.options.sourceCodeLocationInfo = !0), this.document = n ?? this.treeAdapter.createDocument(), this.tokenizer = new Ie(this.options, this), this.activeFormattingElements = new Ae(this.treeAdapter), this.fragmentContextID = r ? J(this.treeAdapter.getTagName(r)) : a.UNKNOWN, this._setContextModes(r ?? this.document, this.fragmentContextID), this.openElements = new _e(this.document, this.treeAdapter, this);
36
+ }
37
+ // API
38
+ static parse(t, n) {
39
+ const r = new this(n);
40
+ return r.tokenizer.write(t, !0), r.document;
41
+ }
42
+ static getFragmentParser(t, n) {
43
+ const r = {
44
+ ...z,
45
+ ...n
46
+ };
47
+ t ?? (t = r.treeAdapter.createElement(I.TEMPLATE, o.HTML, []));
48
+ const i = r.treeAdapter.createElement("documentmock", o.HTML, []), c = new this(r, i, t);
49
+ return c.fragmentContextID === a.TEMPLATE && c.tmplInsertionModeStack.unshift(s.IN_TEMPLATE), c._initTokenizerForFragmentParsing(), c._insertFakeRootElement(), c._resetInsertionMode(), c._findFormInFragmentContext(), c;
50
+ }
51
+ getFragment() {
52
+ const t = this.treeAdapter.getFirstChild(this.document), n = this.treeAdapter.createDocumentFragment();
53
+ return this._adoptNodes(t, n), n;
54
+ }
55
+ //Errors
56
+ /** @internal */
57
+ _err(t, n, r) {
58
+ var i;
59
+ if (!this.onParseError)
60
+ return;
61
+ const c = (i = t.location) !== null && i !== void 0 ? i : He, E = {
62
+ code: n,
63
+ startLine: c.startLine,
64
+ startCol: c.startCol,
65
+ startOffset: c.startOffset,
66
+ endLine: r ? c.startLine : c.endLine,
67
+ endCol: r ? c.startCol : c.endCol,
68
+ endOffset: r ? c.startOffset : c.endOffset
69
+ };
70
+ this.onParseError(E);
71
+ }
72
+ //Stack events
73
+ /** @internal */
74
+ onItemPush(t, n, r) {
75
+ var i, c;
76
+ (c = (i = this.treeAdapter).onItemPush) === null || c === void 0 || c.call(i, t), r && this.openElements.stackTop > 0 && this._setContextModes(t, n);
77
+ }
78
+ /** @internal */
79
+ onItemPop(t, n) {
80
+ var r, i;
81
+ if (this.options.sourceCodeLocationInfo && this._setEndLocation(t, this.currentToken), (i = (r = this.treeAdapter).onItemPop) === null || i === void 0 || i.call(r, t, this.openElements.current), n) {
82
+ let c, E;
83
+ this.openElements.stackTop === 0 && this.fragmentContext ? (c = this.fragmentContext, E = this.fragmentContextID) : { current: c, currentTagId: E } = this.openElements, this._setContextModes(c, E);
84
+ }
85
+ }
86
+ _setContextModes(t, n) {
87
+ const r = t === this.document || t && this.treeAdapter.getNamespaceURI(t) === o.HTML;
88
+ this.currentNotInHTML = !r, this.tokenizer.inForeignNode = !r && t !== void 0 && n !== void 0 && !this._isIntegrationPoint(n, t);
89
+ }
90
+ /** @protected */
91
+ _switchToTextParsing(t, n) {
92
+ this._insertElement(t, o.HTML), this.tokenizer.state = n, this.originalInsertionMode = this.insertionMode, this.insertionMode = s.TEXT;
93
+ }
94
+ switchToPlaintextParsing() {
95
+ this.insertionMode = s.TEXT, this.originalInsertionMode = s.IN_BODY, this.tokenizer.state = d.PLAINTEXT;
96
+ }
97
+ //Fragment parsing
98
+ /** @protected */
99
+ _getAdjustedCurrentElement() {
100
+ return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current;
101
+ }
102
+ /** @protected */
103
+ _findFormInFragmentContext() {
104
+ let t = this.fragmentContext;
105
+ for (; t; ) {
106
+ if (this.treeAdapter.getTagName(t) === I.FORM) {
107
+ this.formElement = t;
108
+ break;
109
+ }
110
+ t = this.treeAdapter.getParentNode(t);
111
+ }
112
+ }
113
+ _initTokenizerForFragmentParsing() {
114
+ if (!(!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== o.HTML))
115
+ switch (this.fragmentContextID) {
116
+ case a.TITLE:
117
+ case a.TEXTAREA: {
118
+ this.tokenizer.state = d.RCDATA;
119
+ break;
120
+ }
121
+ case a.STYLE:
122
+ case a.XMP:
123
+ case a.IFRAME:
124
+ case a.NOEMBED:
125
+ case a.NOFRAMES:
126
+ case a.NOSCRIPT: {
127
+ this.tokenizer.state = d.RAWTEXT;
128
+ break;
129
+ }
130
+ case a.SCRIPT: {
131
+ this.tokenizer.state = d.SCRIPT_DATA;
132
+ break;
133
+ }
134
+ case a.PLAINTEXT: {
135
+ this.tokenizer.state = d.PLAINTEXT;
136
+ break;
137
+ }
138
+ }
139
+ }
140
+ //Tree mutation
141
+ /** @protected */
142
+ _setDocumentType(t) {
143
+ const n = t.name || "", r = t.publicId || "", i = t.systemId || "";
144
+ if (this.treeAdapter.setDocumentType(this.document, n, r, i), t.location) {
145
+ const E = this.treeAdapter.getChildNodes(this.document).find((A) => this.treeAdapter.isDocumentTypeNode(A));
146
+ E && this.treeAdapter.setNodeSourceCodeLocation(E, t.location);
147
+ }
148
+ }
149
+ /** @protected */
150
+ _attachElementToTree(t, n) {
151
+ if (this.options.sourceCodeLocationInfo) {
152
+ const r = n && {
153
+ ...n,
154
+ startTag: n
155
+ };
156
+ this.treeAdapter.setNodeSourceCodeLocation(t, r);
157
+ }
158
+ if (this._shouldFosterParentOnInsertion())
159
+ this._fosterParentElement(t);
160
+ else {
161
+ const r = this.openElements.currentTmplContentOrNode;
162
+ this.treeAdapter.appendChild(r ?? this.document, t);
163
+ }
164
+ }
165
+ /**
166
+ * For self-closing tags. Add an element to the tree, but skip adding it
167
+ * to the stack.
168
+ */
169
+ /** @protected */
170
+ _appendElement(t, n) {
171
+ const r = this.treeAdapter.createElement(t.tagName, n, t.attrs);
172
+ this._attachElementToTree(r, t.location);
173
+ }
174
+ /** @protected */
175
+ _insertElement(t, n) {
176
+ const r = this.treeAdapter.createElement(t.tagName, n, t.attrs);
177
+ this._attachElementToTree(r, t.location), this.openElements.push(r, t.tagID);
178
+ }
179
+ /** @protected */
180
+ _insertFakeElement(t, n) {
181
+ const r = this.treeAdapter.createElement(t, o.HTML, []);
182
+ this._attachElementToTree(r, null), this.openElements.push(r, n);
183
+ }
184
+ /** @protected */
185
+ _insertTemplate(t) {
186
+ const n = this.treeAdapter.createElement(t.tagName, o.HTML, t.attrs), r = this.treeAdapter.createDocumentFragment();
187
+ this.treeAdapter.setTemplateContent(n, r), this._attachElementToTree(n, t.location), this.openElements.push(n, t.tagID), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(r, null);
188
+ }
189
+ /** @protected */
190
+ _insertFakeRootElement() {
191
+ const t = this.treeAdapter.createElement(I.HTML, o.HTML, []);
192
+ this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(t, null), this.treeAdapter.appendChild(this.openElements.current, t), this.openElements.push(t, a.HTML);
193
+ }
194
+ /** @protected */
195
+ _appendCommentNode(t, n) {
196
+ const r = this.treeAdapter.createCommentNode(t.data);
197
+ this.treeAdapter.appendChild(n, r), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(r, t.location);
198
+ }
199
+ /** @protected */
200
+ _insertCharacters(t) {
201
+ let n, r;
202
+ if (this._shouldFosterParentOnInsertion() ? ({ parent: n, beforeElement: r } = this._findFosterParentingLocation(), r ? this.treeAdapter.insertTextBefore(n, t.chars, r) : this.treeAdapter.insertText(n, t.chars)) : (n = this.openElements.currentTmplContentOrNode, this.treeAdapter.insertText(n, t.chars)), !t.location)
203
+ return;
204
+ const i = this.treeAdapter.getChildNodes(n), c = r ? i.lastIndexOf(r) : i.length, E = i[c - 1];
205
+ if (this.treeAdapter.getNodeSourceCodeLocation(E)) {
206
+ const { endLine: B, endCol: X, endOffset: de } = t.location;
207
+ this.treeAdapter.updateNodeSourceCodeLocation(E, { endLine: B, endCol: X, endOffset: de });
208
+ } else this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(E, t.location);
209
+ }
210
+ /** @protected */
211
+ _adoptNodes(t, n) {
212
+ for (let r = this.treeAdapter.getFirstChild(t); r; r = this.treeAdapter.getFirstChild(t))
213
+ this.treeAdapter.detachNode(r), this.treeAdapter.appendChild(n, r);
214
+ }
215
+ /** @protected */
216
+ _setEndLocation(t, n) {
217
+ if (this.treeAdapter.getNodeSourceCodeLocation(t) && n.location) {
218
+ const r = n.location, i = this.treeAdapter.getTagName(t), c = (
219
+ // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing
220
+ // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.
221
+ n.type === T.END_TAG && i === n.tagName ? {
222
+ endTag: { ...r },
223
+ endLine: r.endLine,
224
+ endCol: r.endCol,
225
+ endOffset: r.endOffset
226
+ } : {
227
+ endLine: r.startLine,
228
+ endCol: r.startCol,
229
+ endOffset: r.startOffset
230
+ }
231
+ );
232
+ this.treeAdapter.updateNodeSourceCodeLocation(t, c);
233
+ }
234
+ }
235
+ //Token processing
236
+ shouldProcessStartTagTokenInForeignContent(t) {
237
+ if (!this.currentNotInHTML)
238
+ return !1;
239
+ let n, r;
240
+ return this.openElements.stackTop === 0 && this.fragmentContext ? (n = this.fragmentContext, r = this.fragmentContextID) : { current: n, currentTagId: r } = this.openElements, t.tagID === a.SVG && this.treeAdapter.getTagName(n) === I.ANNOTATION_XML && this.treeAdapter.getNamespaceURI(n) === o.MATHML ? !1 : (
241
+ // Check that `current` is not an integration point for HTML or MathML elements.
242
+ this.tokenizer.inForeignNode || // If it _is_ an integration point, then we might have to check that it is not an HTML
243
+ // integration point.
244
+ (t.tagID === a.MGLYPH || t.tagID === a.MALIGNMARK) && r !== void 0 && !this._isIntegrationPoint(r, n, o.HTML)
245
+ );
246
+ }
247
+ /** @protected */
248
+ _processToken(t) {
249
+ switch (t.type) {
250
+ case T.CHARACTER: {
251
+ this.onCharacter(t);
252
+ break;
253
+ }
254
+ case T.NULL_CHARACTER: {
255
+ this.onNullCharacter(t);
256
+ break;
257
+ }
258
+ case T.COMMENT: {
259
+ this.onComment(t);
260
+ break;
261
+ }
262
+ case T.DOCTYPE: {
263
+ this.onDoctype(t);
264
+ break;
265
+ }
266
+ case T.START_TAG: {
267
+ this._processStartTag(t);
268
+ break;
269
+ }
270
+ case T.END_TAG: {
271
+ this.onEndTag(t);
272
+ break;
273
+ }
274
+ case T.EOF: {
275
+ this.onEof(t);
276
+ break;
277
+ }
278
+ case T.WHITESPACE_CHARACTER: {
279
+ this.onWhitespaceCharacter(t);
280
+ break;
281
+ }
282
+ }
283
+ }
284
+ //Integration points
285
+ /** @protected */
286
+ _isIntegrationPoint(t, n, r) {
287
+ const i = this.treeAdapter.getNamespaceURI(n), c = this.treeAdapter.getAttrList(n);
288
+ return Le(t, i, c, r);
289
+ }
290
+ //Active formatting elements reconstruction
291
+ /** @protected */
292
+ _reconstructActiveFormattingElements() {
293
+ const t = this.activeFormattingElements.entries.length;
294
+ if (t) {
295
+ const n = this.activeFormattingElements.entries.findIndex((i) => i.type === he.Marker || this.openElements.contains(i.element)), r = n === -1 ? t - 1 : n - 1;
296
+ for (let i = r; i >= 0; i--) {
297
+ const c = this.activeFormattingElements.entries[i];
298
+ this._insertElement(c.token, this.treeAdapter.getNamespaceURI(c.element)), c.element = this.openElements.current;
299
+ }
300
+ }
301
+ }
302
+ //Close elements
303
+ /** @protected */
304
+ _closeTableCell() {
305
+ this.openElements.generateImpliedEndTags(), this.openElements.popUntilTableCellPopped(), this.activeFormattingElements.clearToLastMarker(), this.insertionMode = s.IN_ROW;
306
+ }
307
+ /** @protected */
308
+ _closePElement() {
309
+ this.openElements.generateImpliedEndTagsWithExclusion(a.P), this.openElements.popUntilTagNamePopped(a.P);
310
+ }
311
+ //Insertion modes
312
+ /** @protected */
313
+ _resetInsertionMode() {
314
+ for (let t = this.openElements.stackTop; t >= 0; t--)
315
+ switch (t === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[t]) {
316
+ case a.TR: {
317
+ this.insertionMode = s.IN_ROW;
318
+ return;
319
+ }
320
+ case a.TBODY:
321
+ case a.THEAD:
322
+ case a.TFOOT: {
323
+ this.insertionMode = s.IN_TABLE_BODY;
324
+ return;
325
+ }
326
+ case a.CAPTION: {
327
+ this.insertionMode = s.IN_CAPTION;
328
+ return;
329
+ }
330
+ case a.COLGROUP: {
331
+ this.insertionMode = s.IN_COLUMN_GROUP;
332
+ return;
333
+ }
334
+ case a.TABLE: {
335
+ this.insertionMode = s.IN_TABLE;
336
+ return;
337
+ }
338
+ case a.BODY: {
339
+ this.insertionMode = s.IN_BODY;
340
+ return;
341
+ }
342
+ case a.FRAMESET: {
343
+ this.insertionMode = s.IN_FRAMESET;
344
+ return;
345
+ }
346
+ case a.SELECT: {
347
+ this._resetInsertionModeForSelect(t);
348
+ return;
349
+ }
350
+ case a.TEMPLATE: {
351
+ this.insertionMode = this.tmplInsertionModeStack[0];
352
+ return;
353
+ }
354
+ case a.HTML: {
355
+ this.insertionMode = this.headElement ? s.AFTER_HEAD : s.BEFORE_HEAD;
356
+ return;
357
+ }
358
+ case a.TD:
359
+ case a.TH: {
360
+ if (t > 0) {
361
+ this.insertionMode = s.IN_CELL;
362
+ return;
363
+ }
364
+ break;
365
+ }
366
+ case a.HEAD: {
367
+ if (t > 0) {
368
+ this.insertionMode = s.IN_HEAD;
369
+ return;
370
+ }
371
+ break;
372
+ }
373
+ }
374
+ this.insertionMode = s.IN_BODY;
375
+ }
376
+ /** @protected */
377
+ _resetInsertionModeForSelect(t) {
378
+ if (t > 0)
379
+ for (let n = t - 1; n > 0; n--) {
380
+ const r = this.openElements.tagIDs[n];
381
+ if (r === a.TEMPLATE)
382
+ break;
383
+ if (r === a.TABLE) {
384
+ this.insertionMode = s.IN_SELECT_IN_TABLE;
385
+ return;
386
+ }
387
+ }
388
+ this.insertionMode = s.IN_SELECT;
389
+ }
390
+ //Foster parenting
391
+ /** @protected */
392
+ _isElementCausesFosterParenting(t) {
393
+ return q.has(t);
394
+ }
395
+ /** @protected */
396
+ _shouldFosterParentOnInsertion() {
397
+ return this.fosterParentingEnabled && this.openElements.currentTagId !== void 0 && this._isElementCausesFosterParenting(this.openElements.currentTagId);
398
+ }
399
+ /** @protected */
400
+ _findFosterParentingLocation() {
401
+ for (let t = this.openElements.stackTop; t >= 0; t--) {
402
+ const n = this.openElements.items[t];
403
+ switch (this.openElements.tagIDs[t]) {
404
+ case a.TEMPLATE: {
405
+ if (this.treeAdapter.getNamespaceURI(n) === o.HTML)
406
+ return { parent: this.treeAdapter.getTemplateContent(n), beforeElement: null };
407
+ break;
408
+ }
409
+ case a.TABLE: {
410
+ const r = this.treeAdapter.getParentNode(n);
411
+ return r ? { parent: r, beforeElement: n } : { parent: this.openElements.items[t - 1], beforeElement: null };
412
+ }
413
+ }
414
+ }
415
+ return { parent: this.openElements.items[0], beforeElement: null };
416
+ }
417
+ /** @protected */
418
+ _fosterParentElement(t) {
419
+ const n = this._findFosterParentingLocation();
420
+ n.beforeElement ? this.treeAdapter.insertBefore(n.parent, t, n.beforeElement) : this.treeAdapter.appendChild(n.parent, t);
421
+ }
422
+ //Special elements
423
+ /** @protected */
424
+ _isSpecialElement(t, n) {
425
+ const r = this.treeAdapter.getNamespaceURI(t);
426
+ return Me[r].has(n);
427
+ }
428
+ /** @internal */
429
+ onCharacter(t) {
430
+ if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) {
431
+ Ea(this, t);
432
+ return;
433
+ }
434
+ switch (this.insertionMode) {
435
+ case s.INITIAL: {
436
+ g(this, t);
437
+ break;
438
+ }
439
+ case s.BEFORE_HTML: {
440
+ L(this, t);
441
+ break;
442
+ }
443
+ case s.BEFORE_HEAD: {
444
+ u(this, t);
445
+ break;
446
+ }
447
+ case s.IN_HEAD: {
448
+ O(this, t);
449
+ break;
450
+ }
451
+ case s.IN_HEAD_NO_SCRIPT: {
452
+ C(this, t);
453
+ break;
454
+ }
455
+ case s.AFTER_HEAD: {
456
+ R(this, t);
457
+ break;
458
+ }
459
+ case s.IN_BODY:
460
+ case s.IN_CAPTION:
461
+ case s.IN_CELL:
462
+ case s.IN_TEMPLATE: {
463
+ $(this, t);
464
+ break;
465
+ }
466
+ case s.TEXT:
467
+ case s.IN_SELECT:
468
+ case s.IN_SELECT_IN_TABLE: {
469
+ this._insertCharacters(t);
470
+ break;
471
+ }
472
+ case s.IN_TABLE:
473
+ case s.IN_TABLE_BODY:
474
+ case s.IN_ROW: {
475
+ y(this, t);
476
+ break;
477
+ }
478
+ case s.IN_TABLE_TEXT: {
479
+ re(this, t);
480
+ break;
481
+ }
482
+ case s.IN_COLUMN_GROUP: {
483
+ S(this, t);
484
+ break;
485
+ }
486
+ case s.AFTER_BODY: {
487
+ P(this, t);
488
+ break;
489
+ }
490
+ case s.AFTER_AFTER_BODY: {
491
+ D(this, t);
492
+ break;
493
+ }
494
+ }
495
+ }
496
+ /** @internal */
497
+ onNullCharacter(t) {
498
+ if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) {
499
+ ca(this, t);
500
+ return;
501
+ }
502
+ switch (this.insertionMode) {
503
+ case s.INITIAL: {
504
+ g(this, t);
505
+ break;
506
+ }
507
+ case s.BEFORE_HTML: {
508
+ L(this, t);
509
+ break;
510
+ }
511
+ case s.BEFORE_HEAD: {
512
+ u(this, t);
513
+ break;
514
+ }
515
+ case s.IN_HEAD: {
516
+ O(this, t);
517
+ break;
518
+ }
519
+ case s.IN_HEAD_NO_SCRIPT: {
520
+ C(this, t);
521
+ break;
522
+ }
523
+ case s.AFTER_HEAD: {
524
+ R(this, t);
525
+ break;
526
+ }
527
+ case s.TEXT: {
528
+ this._insertCharacters(t);
529
+ break;
530
+ }
531
+ case s.IN_TABLE:
532
+ case s.IN_TABLE_BODY:
533
+ case s.IN_ROW: {
534
+ y(this, t);
535
+ break;
536
+ }
537
+ case s.IN_COLUMN_GROUP: {
538
+ S(this, t);
539
+ break;
540
+ }
541
+ case s.AFTER_BODY: {
542
+ P(this, t);
543
+ break;
544
+ }
545
+ case s.AFTER_AFTER_BODY: {
546
+ D(this, t);
547
+ break;
548
+ }
549
+ }
550
+ }
551
+ /** @internal */
552
+ onComment(t) {
553
+ if (this.skipNextNewLine = !1, this.currentNotInHTML) {
554
+ Y(this, t);
555
+ return;
556
+ }
557
+ switch (this.insertionMode) {
558
+ case s.INITIAL:
559
+ case s.BEFORE_HTML:
560
+ case s.BEFORE_HEAD:
561
+ case s.IN_HEAD:
562
+ case s.IN_HEAD_NO_SCRIPT:
563
+ case s.AFTER_HEAD:
564
+ case s.IN_BODY:
565
+ case s.IN_TABLE:
566
+ case s.IN_CAPTION:
567
+ case s.IN_COLUMN_GROUP:
568
+ case s.IN_TABLE_BODY:
569
+ case s.IN_ROW:
570
+ case s.IN_CELL:
571
+ case s.IN_SELECT:
572
+ case s.IN_SELECT_IN_TABLE:
573
+ case s.IN_TEMPLATE:
574
+ case s.IN_FRAMESET:
575
+ case s.AFTER_FRAMESET: {
576
+ Y(this, t);
577
+ break;
578
+ }
579
+ case s.IN_TABLE_TEXT: {
580
+ N(this, t);
581
+ break;
582
+ }
583
+ case s.AFTER_BODY: {
584
+ we(this, t);
585
+ break;
586
+ }
587
+ case s.AFTER_AFTER_BODY:
588
+ case s.AFTER_AFTER_FRAMESET: {
589
+ Ge(this, t);
590
+ break;
591
+ }
592
+ }
593
+ }
594
+ /** @internal */
595
+ onDoctype(t) {
596
+ switch (this.skipNextNewLine = !1, this.insertionMode) {
597
+ case s.INITIAL: {
598
+ ve(this, t);
599
+ break;
600
+ }
601
+ case s.BEFORE_HEAD:
602
+ case s.IN_HEAD:
603
+ case s.IN_HEAD_NO_SCRIPT:
604
+ case s.AFTER_HEAD: {
605
+ this._err(t, l.misplacedDoctype);
606
+ break;
607
+ }
608
+ case s.IN_TABLE_TEXT: {
609
+ N(this, t);
610
+ break;
611
+ }
612
+ }
613
+ }
614
+ /** @internal */
615
+ onStartTag(t) {
616
+ this.skipNextNewLine = !1, this.currentToken = t, this._processStartTag(t), t.selfClosing && !t.ackSelfClosing && this._err(t, l.nonVoidHtmlElementStartTagWithTrailingSolidus);
617
+ }
618
+ /**
619
+ * Processes a given start tag.
620
+ *
621
+ * `onStartTag` checks if a self-closing tag was recognized. When a token
622
+ * is moved inbetween multiple insertion modes, this check for self-closing
623
+ * could lead to false positives. To avoid this, `_processStartTag` is used
624
+ * for nested calls.
625
+ *
626
+ * @param token The token to process.
627
+ * @protected
628
+ */
629
+ _processStartTag(t) {
630
+ this.shouldProcessStartTagTokenInForeignContent(t) ? Ta(this, t) : this._startTagOutsideForeignContent(t);
631
+ }
632
+ /** @protected */
633
+ _startTagOutsideForeignContent(t) {
634
+ switch (this.insertionMode) {
635
+ case s.INITIAL: {
636
+ g(this, t);
637
+ break;
638
+ }
639
+ case s.BEFORE_HTML: {
640
+ We(this, t);
641
+ break;
642
+ }
643
+ case s.BEFORE_HEAD: {
644
+ ze(this, t);
645
+ break;
646
+ }
647
+ case s.IN_HEAD: {
648
+ _(this, t);
649
+ break;
650
+ }
651
+ case s.IN_HEAD_NO_SCRIPT: {
652
+ Qe(this, t);
653
+ break;
654
+ }
655
+ case s.AFTER_HEAD: {
656
+ Je(this, t);
657
+ break;
658
+ }
659
+ case s.IN_BODY: {
660
+ m(this, t);
661
+ break;
662
+ }
663
+ case s.IN_TABLE: {
664
+ f(this, t);
665
+ break;
666
+ }
667
+ case s.IN_TABLE_TEXT: {
668
+ N(this, t);
669
+ break;
670
+ }
671
+ case s.IN_CAPTION: {
672
+ Kt(this, t);
673
+ break;
674
+ }
675
+ case s.IN_COLUMN_GROUP: {
676
+ W(this, t);
677
+ break;
678
+ }
679
+ case s.IN_TABLE_BODY: {
680
+ p(this, t);
681
+ break;
682
+ }
683
+ case s.IN_ROW: {
684
+ U(this, t);
685
+ break;
686
+ }
687
+ case s.IN_CELL: {
688
+ jt(this, t);
689
+ break;
690
+ }
691
+ case s.IN_SELECT: {
692
+ ce(this, t);
693
+ break;
694
+ }
695
+ case s.IN_SELECT_IN_TABLE: {
696
+ qt(this, t);
697
+ break;
698
+ }
699
+ case s.IN_TEMPLATE: {
700
+ $t(this, t);
701
+ break;
702
+ }
703
+ case s.AFTER_BODY: {
704
+ ta(this, t);
705
+ break;
706
+ }
707
+ case s.IN_FRAMESET: {
708
+ aa(this, t);
709
+ break;
710
+ }
711
+ case s.AFTER_FRAMESET: {
712
+ na(this, t);
713
+ break;
714
+ }
715
+ case s.AFTER_AFTER_BODY: {
716
+ ia(this, t);
717
+ break;
718
+ }
719
+ case s.AFTER_AFTER_FRAMESET: {
720
+ oa(this, t);
721
+ break;
722
+ }
723
+ }
724
+ }
725
+ /** @internal */
726
+ onEndTag(t) {
727
+ this.skipNextNewLine = !1, this.currentToken = t, this.currentNotInHTML ? la(this, t) : this._endTagOutsideForeignContent(t);
728
+ }
729
+ /** @protected */
730
+ _endTagOutsideForeignContent(t) {
731
+ switch (this.insertionMode) {
732
+ case s.INITIAL: {
733
+ g(this, t);
734
+ break;
735
+ }
736
+ case s.BEFORE_HTML: {
737
+ Xe(this, t);
738
+ break;
739
+ }
740
+ case s.BEFORE_HEAD: {
741
+ Ke(this, t);
742
+ break;
743
+ }
744
+ case s.IN_HEAD: {
745
+ Ve(this, t);
746
+ break;
747
+ }
748
+ case s.IN_HEAD_NO_SCRIPT: {
749
+ je(this, t);
750
+ break;
751
+ }
752
+ case s.AFTER_HEAD: {
753
+ qe(this, t);
754
+ break;
755
+ }
756
+ case s.IN_BODY: {
757
+ H(this, t);
758
+ break;
759
+ }
760
+ case s.TEXT: {
761
+ yt(this, t);
762
+ break;
763
+ }
764
+ case s.IN_TABLE: {
765
+ M(this, t);
766
+ break;
767
+ }
768
+ case s.IN_TABLE_TEXT: {
769
+ N(this, t);
770
+ break;
771
+ }
772
+ case s.IN_CAPTION: {
773
+ Vt(this, t);
774
+ break;
775
+ }
776
+ case s.IN_COLUMN_GROUP: {
777
+ Qt(this, t);
778
+ break;
779
+ }
780
+ case s.IN_TABLE_BODY: {
781
+ x(this, t);
782
+ break;
783
+ }
784
+ case s.IN_ROW: {
785
+ oe(this, t);
786
+ break;
787
+ }
788
+ case s.IN_CELL: {
789
+ Jt(this, t);
790
+ break;
791
+ }
792
+ case s.IN_SELECT: {
793
+ Ee(this, t);
794
+ break;
795
+ }
796
+ case s.IN_SELECT_IN_TABLE: {
797
+ Zt(this, t);
798
+ break;
799
+ }
800
+ case s.IN_TEMPLATE: {
801
+ ea(this, t);
802
+ break;
803
+ }
804
+ case s.AFTER_BODY: {
805
+ le(this, t);
806
+ break;
807
+ }
808
+ case s.IN_FRAMESET: {
809
+ sa(this, t);
810
+ break;
811
+ }
812
+ case s.AFTER_FRAMESET: {
813
+ ra(this, t);
814
+ break;
815
+ }
816
+ case s.AFTER_AFTER_BODY: {
817
+ D(this, t);
818
+ break;
819
+ }
820
+ }
821
+ }
822
+ /** @internal */
823
+ onEof(t) {
824
+ switch (this.insertionMode) {
825
+ case s.INITIAL: {
826
+ g(this, t);
827
+ break;
828
+ }
829
+ case s.BEFORE_HTML: {
830
+ L(this, t);
831
+ break;
832
+ }
833
+ case s.BEFORE_HEAD: {
834
+ u(this, t);
835
+ break;
836
+ }
837
+ case s.IN_HEAD: {
838
+ O(this, t);
839
+ break;
840
+ }
841
+ case s.IN_HEAD_NO_SCRIPT: {
842
+ C(this, t);
843
+ break;
844
+ }
845
+ case s.AFTER_HEAD: {
846
+ R(this, t);
847
+ break;
848
+ }
849
+ case s.IN_BODY:
850
+ case s.IN_TABLE:
851
+ case s.IN_CAPTION:
852
+ case s.IN_COLUMN_GROUP:
853
+ case s.IN_TABLE_BODY:
854
+ case s.IN_ROW:
855
+ case s.IN_CELL:
856
+ case s.IN_SELECT:
857
+ case s.IN_SELECT_IN_TABLE: {
858
+ se(this, t);
859
+ break;
860
+ }
861
+ case s.TEXT: {
862
+ Yt(this, t);
863
+ break;
864
+ }
865
+ case s.IN_TABLE_TEXT: {
866
+ N(this, t);
867
+ break;
868
+ }
869
+ case s.IN_TEMPLATE: {
870
+ Te(this, t);
871
+ break;
872
+ }
873
+ case s.AFTER_BODY:
874
+ case s.IN_FRAMESET:
875
+ case s.AFTER_FRAMESET:
876
+ case s.AFTER_AFTER_BODY:
877
+ case s.AFTER_AFTER_FRAMESET: {
878
+ v(this, t);
879
+ break;
880
+ }
881
+ }
882
+ }
883
+ /** @internal */
884
+ onWhitespaceCharacter(t) {
885
+ if (this.skipNextNewLine && (this.skipNextNewLine = !1, t.chars.charCodeAt(0) === Ce.LINE_FEED)) {
886
+ if (t.chars.length === 1)
887
+ return;
888
+ t.chars = t.chars.substr(1);
889
+ }
890
+ if (this.tokenizer.inForeignNode) {
891
+ this._insertCharacters(t);
892
+ return;
893
+ }
894
+ switch (this.insertionMode) {
895
+ case s.IN_HEAD:
896
+ case s.IN_HEAD_NO_SCRIPT:
897
+ case s.AFTER_HEAD:
898
+ case s.TEXT:
899
+ case s.IN_COLUMN_GROUP:
900
+ case s.IN_SELECT:
901
+ case s.IN_SELECT_IN_TABLE:
902
+ case s.IN_FRAMESET:
903
+ case s.AFTER_FRAMESET: {
904
+ this._insertCharacters(t);
905
+ break;
906
+ }
907
+ case s.IN_BODY:
908
+ case s.IN_CAPTION:
909
+ case s.IN_CELL:
910
+ case s.IN_TEMPLATE:
911
+ case s.AFTER_BODY:
912
+ case s.AFTER_AFTER_BODY:
913
+ case s.AFTER_AFTER_FRAMESET: {
914
+ Z(this, t);
915
+ break;
916
+ }
917
+ case s.IN_TABLE:
918
+ case s.IN_TABLE_BODY:
919
+ case s.IN_ROW: {
920
+ y(this, t);
921
+ break;
922
+ }
923
+ case s.IN_TABLE_TEXT: {
924
+ ne(this, t);
925
+ break;
926
+ }
927
+ }
928
+ }
929
+ }
930
+ function pe(e, t) {
931
+ let n = e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);
932
+ return n ? e.openElements.contains(n.element) ? e.openElements.hasInScope(t.tagID) || (n = null) : (e.activeFormattingElements.removeEntry(n), n = null) : ae(e, t), n;
933
+ }
934
+ function Ue(e, t) {
935
+ let n = null, r = e.openElements.stackTop;
936
+ for (; r >= 0; r--) {
937
+ const i = e.openElements.items[r];
938
+ if (i === t.element)
939
+ break;
940
+ e._isSpecialElement(i, e.openElements.tagIDs[r]) && (n = i);
941
+ }
942
+ return n || (e.openElements.shortenToLength(Math.max(r, 0)), e.activeFormattingElements.removeEntry(t)), n;
943
+ }
944
+ function ye(e, t, n) {
945
+ let r = t, i = e.openElements.getCommonAncestor(t);
946
+ for (let c = 0, E = i; E !== n; c++, E = i) {
947
+ i = e.openElements.getCommonAncestor(E);
948
+ const A = e.activeFormattingElements.getElementEntry(E), B = A && c >= Fe;
949
+ !A || B ? (B && e.activeFormattingElements.removeEntry(A), e.openElements.remove(E)) : (E = Ye(e, A), r === t && (e.activeFormattingElements.bookmark = A), e.treeAdapter.detachNode(r), e.treeAdapter.appendChild(E, r), r = E);
950
+ }
951
+ return r;
952
+ }
953
+ function Ye(e, t) {
954
+ const n = e.treeAdapter.getNamespaceURI(t.element), r = e.treeAdapter.createElement(t.token.tagName, n, t.token.attrs);
955
+ return e.openElements.replace(t.element, r), t.element = r, r;
956
+ }
957
+ function xe(e, t, n) {
958
+ const r = e.treeAdapter.getTagName(t), i = J(r);
959
+ if (e._isElementCausesFosterParenting(i))
960
+ e._fosterParentElement(n);
961
+ else {
962
+ const c = e.treeAdapter.getNamespaceURI(t);
963
+ i === a.TEMPLATE && c === o.HTML && (t = e.treeAdapter.getTemplateContent(t)), e.treeAdapter.appendChild(t, n);
964
+ }
965
+ }
966
+ function ke(e, t, n) {
967
+ const r = e.treeAdapter.getNamespaceURI(n.element), { token: i } = n, c = e.treeAdapter.createElement(i.tagName, r, i.attrs);
968
+ e._adoptNodes(t, c), e.treeAdapter.appendChild(t, c), e.activeFormattingElements.insertElementAfterBookmark(c, i), e.activeFormattingElements.removeEntry(n), e.openElements.remove(n.element), e.openElements.insertAfter(t, c, i.tagID);
969
+ }
970
+ function G(e, t) {
971
+ for (let n = 0; n < Pe; n++) {
972
+ const r = pe(e, t);
973
+ if (!r)
974
+ break;
975
+ const i = Ue(e, r);
976
+ if (!i)
977
+ break;
978
+ e.activeFormattingElements.bookmark = r;
979
+ const c = ye(e, i, r.element), E = e.openElements.getCommonAncestor(r.element);
980
+ e.treeAdapter.detachNode(c), E && xe(e, E, c), ke(e, i, r);
981
+ }
982
+ }
983
+ function Y(e, t) {
984
+ e._appendCommentNode(t, e.openElements.currentTmplContentOrNode);
985
+ }
986
+ function we(e, t) {
987
+ e._appendCommentNode(t, e.openElements.items[0]);
988
+ }
989
+ function Ge(e, t) {
990
+ e._appendCommentNode(t, e.document);
991
+ }
992
+ function v(e, t) {
993
+ if (e.stopped = !0, t.location) {
994
+ const n = e.fragmentContext ? 0 : 2;
995
+ for (let r = e.openElements.stackTop; r >= n; r--)
996
+ e._setEndLocation(e.openElements.items[r], t);
997
+ if (!e.fragmentContext && e.openElements.stackTop >= 0) {
998
+ const r = e.openElements.items[0], i = e.treeAdapter.getNodeSourceCodeLocation(r);
999
+ if (i && !i.endTag && (e._setEndLocation(r, t), e.openElements.stackTop >= 1)) {
1000
+ const c = e.openElements.items[1], E = e.treeAdapter.getNodeSourceCodeLocation(c);
1001
+ E && !E.endTag && e._setEndLocation(c, t);
1002
+ }
1003
+ }
1004
+ }
1005
+ }
1006
+ function ve(e, t) {
1007
+ e._setDocumentType(t);
1008
+ const n = t.forceQuirks ? w.QUIRKS : ge(t);
1009
+ Ne(t) || e._err(t, l.nonConformingDoctype), e.treeAdapter.setDocumentMode(e.document, n), e.insertionMode = s.BEFORE_HTML;
1010
+ }
1011
+ function g(e, t) {
1012
+ e._err(t, l.missingDoctype, !0), e.treeAdapter.setDocumentMode(e.document, w.QUIRKS), e.insertionMode = s.BEFORE_HTML, e._processToken(t);
1013
+ }
1014
+ function We(e, t) {
1015
+ t.tagID === a.HTML ? (e._insertElement(t, o.HTML), e.insertionMode = s.BEFORE_HEAD) : L(e, t);
1016
+ }
1017
+ function Xe(e, t) {
1018
+ const n = t.tagID;
1019
+ (n === a.HTML || n === a.HEAD || n === a.BODY || n === a.BR) && L(e, t);
1020
+ }
1021
+ function L(e, t) {
1022
+ e._insertFakeRootElement(), e.insertionMode = s.BEFORE_HEAD, e._processToken(t);
1023
+ }
1024
+ function ze(e, t) {
1025
+ switch (t.tagID) {
1026
+ case a.HTML: {
1027
+ m(e, t);
1028
+ break;
1029
+ }
1030
+ case a.HEAD: {
1031
+ e._insertElement(t, o.HTML), e.headElement = e.openElements.current, e.insertionMode = s.IN_HEAD;
1032
+ break;
1033
+ }
1034
+ default:
1035
+ u(e, t);
1036
+ }
1037
+ }
1038
+ function Ke(e, t) {
1039
+ const n = t.tagID;
1040
+ n === a.HEAD || n === a.BODY || n === a.HTML || n === a.BR ? u(e, t) : e._err(t, l.endTagWithoutMatchingOpenElement);
1041
+ }
1042
+ function u(e, t) {
1043
+ e._insertFakeElement(I.HEAD, a.HEAD), e.headElement = e.openElements.current, e.insertionMode = s.IN_HEAD, e._processToken(t);
1044
+ }
1045
+ function _(e, t) {
1046
+ switch (t.tagID) {
1047
+ case a.HTML: {
1048
+ m(e, t);
1049
+ break;
1050
+ }
1051
+ case a.BASE:
1052
+ case a.BASEFONT:
1053
+ case a.BGSOUND:
1054
+ case a.LINK:
1055
+ case a.META: {
1056
+ e._appendElement(t, o.HTML), t.ackSelfClosing = !0;
1057
+ break;
1058
+ }
1059
+ case a.TITLE: {
1060
+ e._switchToTextParsing(t, d.RCDATA);
1061
+ break;
1062
+ }
1063
+ case a.NOSCRIPT: {
1064
+ e.options.scriptingEnabled ? e._switchToTextParsing(t, d.RAWTEXT) : (e._insertElement(t, o.HTML), e.insertionMode = s.IN_HEAD_NO_SCRIPT);
1065
+ break;
1066
+ }
1067
+ case a.NOFRAMES:
1068
+ case a.STYLE: {
1069
+ e._switchToTextParsing(t, d.RAWTEXT);
1070
+ break;
1071
+ }
1072
+ case a.SCRIPT: {
1073
+ e._switchToTextParsing(t, d.SCRIPT_DATA);
1074
+ break;
1075
+ }
1076
+ case a.TEMPLATE: {
1077
+ e._insertTemplate(t), e.activeFormattingElements.insertMarker(), e.framesetOk = !1, e.insertionMode = s.IN_TEMPLATE, e.tmplInsertionModeStack.unshift(s.IN_TEMPLATE);
1078
+ break;
1079
+ }
1080
+ case a.HEAD: {
1081
+ e._err(t, l.misplacedStartTagForHeadElement);
1082
+ break;
1083
+ }
1084
+ default:
1085
+ O(e, t);
1086
+ }
1087
+ }
1088
+ function Ve(e, t) {
1089
+ switch (t.tagID) {
1090
+ case a.HEAD: {
1091
+ e.openElements.pop(), e.insertionMode = s.AFTER_HEAD;
1092
+ break;
1093
+ }
1094
+ case a.BODY:
1095
+ case a.BR:
1096
+ case a.HTML: {
1097
+ O(e, t);
1098
+ break;
1099
+ }
1100
+ case a.TEMPLATE: {
1101
+ h(e, t);
1102
+ break;
1103
+ }
1104
+ default:
1105
+ e._err(t, l.endTagWithoutMatchingOpenElement);
1106
+ }
1107
+ }
1108
+ function h(e, t) {
1109
+ e.openElements.tmplCount > 0 ? (e.openElements.generateImpliedEndTagsThoroughly(), e.openElements.currentTagId !== a.TEMPLATE && e._err(t, l.closingOfElementWithOpenChildElements), e.openElements.popUntilTagNamePopped(a.TEMPLATE), e.activeFormattingElements.clearToLastMarker(), e.tmplInsertionModeStack.shift(), e._resetInsertionMode()) : e._err(t, l.endTagWithoutMatchingOpenElement);
1110
+ }
1111
+ function O(e, t) {
1112
+ e.openElements.pop(), e.insertionMode = s.AFTER_HEAD, e._processToken(t);
1113
+ }
1114
+ function Qe(e, t) {
1115
+ switch (t.tagID) {
1116
+ case a.HTML: {
1117
+ m(e, t);
1118
+ break;
1119
+ }
1120
+ case a.BASEFONT:
1121
+ case a.BGSOUND:
1122
+ case a.HEAD:
1123
+ case a.LINK:
1124
+ case a.META:
1125
+ case a.NOFRAMES:
1126
+ case a.STYLE: {
1127
+ _(e, t);
1128
+ break;
1129
+ }
1130
+ case a.NOSCRIPT: {
1131
+ e._err(t, l.nestedNoscriptInHead);
1132
+ break;
1133
+ }
1134
+ default:
1135
+ C(e, t);
1136
+ }
1137
+ }
1138
+ function je(e, t) {
1139
+ switch (t.tagID) {
1140
+ case a.NOSCRIPT: {
1141
+ e.openElements.pop(), e.insertionMode = s.IN_HEAD;
1142
+ break;
1143
+ }
1144
+ case a.BR: {
1145
+ C(e, t);
1146
+ break;
1147
+ }
1148
+ default:
1149
+ e._err(t, l.endTagWithoutMatchingOpenElement);
1150
+ }
1151
+ }
1152
+ function C(e, t) {
1153
+ const n = t.type === T.EOF ? l.openElementsLeftAfterEof : l.disallowedContentInNoscriptInHead;
1154
+ e._err(t, n), e.openElements.pop(), e.insertionMode = s.IN_HEAD, e._processToken(t);
1155
+ }
1156
+ function Je(e, t) {
1157
+ switch (t.tagID) {
1158
+ case a.HTML: {
1159
+ m(e, t);
1160
+ break;
1161
+ }
1162
+ case a.BODY: {
1163
+ e._insertElement(t, o.HTML), e.framesetOk = !1, e.insertionMode = s.IN_BODY;
1164
+ break;
1165
+ }
1166
+ case a.FRAMESET: {
1167
+ e._insertElement(t, o.HTML), e.insertionMode = s.IN_FRAMESET;
1168
+ break;
1169
+ }
1170
+ case a.BASE:
1171
+ case a.BASEFONT:
1172
+ case a.BGSOUND:
1173
+ case a.LINK:
1174
+ case a.META:
1175
+ case a.NOFRAMES:
1176
+ case a.SCRIPT:
1177
+ case a.STYLE:
1178
+ case a.TEMPLATE:
1179
+ case a.TITLE: {
1180
+ e._err(t, l.abandonedHeadElementChild), e.openElements.push(e.headElement, a.HEAD), _(e, t), e.openElements.remove(e.headElement);
1181
+ break;
1182
+ }
1183
+ case a.HEAD: {
1184
+ e._err(t, l.misplacedStartTagForHeadElement);
1185
+ break;
1186
+ }
1187
+ default:
1188
+ R(e, t);
1189
+ }
1190
+ }
1191
+ function qe(e, t) {
1192
+ switch (t.tagID) {
1193
+ case a.BODY:
1194
+ case a.HTML:
1195
+ case a.BR: {
1196
+ R(e, t);
1197
+ break;
1198
+ }
1199
+ case a.TEMPLATE: {
1200
+ h(e, t);
1201
+ break;
1202
+ }
1203
+ default:
1204
+ e._err(t, l.endTagWithoutMatchingOpenElement);
1205
+ }
1206
+ }
1207
+ function R(e, t) {
1208
+ e._insertFakeElement(I.BODY, a.BODY), e.insertionMode = s.IN_BODY, F(e, t);
1209
+ }
1210
+ function F(e, t) {
1211
+ switch (t.type) {
1212
+ case T.CHARACTER: {
1213
+ $(e, t);
1214
+ break;
1215
+ }
1216
+ case T.WHITESPACE_CHARACTER: {
1217
+ Z(e, t);
1218
+ break;
1219
+ }
1220
+ case T.COMMENT: {
1221
+ Y(e, t);
1222
+ break;
1223
+ }
1224
+ case T.START_TAG: {
1225
+ m(e, t);
1226
+ break;
1227
+ }
1228
+ case T.END_TAG: {
1229
+ H(e, t);
1230
+ break;
1231
+ }
1232
+ case T.EOF: {
1233
+ se(e, t);
1234
+ break;
1235
+ }
1236
+ }
1237
+ }
1238
+ function Z(e, t) {
1239
+ e._reconstructActiveFormattingElements(), e._insertCharacters(t);
1240
+ }
1241
+ function $(e, t) {
1242
+ e._reconstructActiveFormattingElements(), e._insertCharacters(t), e.framesetOk = !1;
1243
+ }
1244
+ function Ze(e, t) {
1245
+ e.openElements.tmplCount === 0 && e.treeAdapter.adoptAttributes(e.openElements.items[0], t.attrs);
1246
+ }
1247
+ function $e(e, t) {
1248
+ const n = e.openElements.tryPeekProperlyNestedBodyElement();
1249
+ n && e.openElements.tmplCount === 0 && (e.framesetOk = !1, e.treeAdapter.adoptAttributes(n, t.attrs));
1250
+ }
1251
+ function et(e, t) {
1252
+ const n = e.openElements.tryPeekProperlyNestedBodyElement();
1253
+ e.framesetOk && n && (e.treeAdapter.detachNode(n), e.openElements.popAllUpToHtmlElement(), e._insertElement(t, o.HTML), e.insertionMode = s.IN_FRAMESET);
1254
+ }
1255
+ function tt(e, t) {
1256
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._insertElement(t, o.HTML);
1257
+ }
1258
+ function at(e, t) {
1259
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e.openElements.currentTagId !== void 0 && be.has(e.openElements.currentTagId) && e.openElements.pop(), e._insertElement(t, o.HTML);
1260
+ }
1261
+ function st(e, t) {
1262
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._insertElement(t, o.HTML), e.skipNextNewLine = !0, e.framesetOk = !1;
1263
+ }
1264
+ function nt(e, t) {
1265
+ const n = e.openElements.tmplCount > 0;
1266
+ (!e.formElement || n) && (e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._insertElement(t, o.HTML), n || (e.formElement = e.openElements.current));
1267
+ }
1268
+ function rt(e, t) {
1269
+ e.framesetOk = !1;
1270
+ const n = t.tagID;
1271
+ for (let r = e.openElements.stackTop; r >= 0; r--) {
1272
+ const i = e.openElements.tagIDs[r];
1273
+ if (n === a.LI && i === a.LI || (n === a.DD || n === a.DT) && (i === a.DD || i === a.DT)) {
1274
+ e.openElements.generateImpliedEndTagsWithExclusion(i), e.openElements.popUntilTagNamePopped(i);
1275
+ break;
1276
+ }
1277
+ if (i !== a.ADDRESS && i !== a.DIV && i !== a.P && e._isSpecialElement(e.openElements.items[r], i))
1278
+ break;
1279
+ }
1280
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._insertElement(t, o.HTML);
1281
+ }
1282
+ function it(e, t) {
1283
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._insertElement(t, o.HTML), e.tokenizer.state = d.PLAINTEXT;
1284
+ }
1285
+ function ot(e, t) {
1286
+ e.openElements.hasInScope(a.BUTTON) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(a.BUTTON)), e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML), e.framesetOk = !1;
1287
+ }
1288
+ function ct(e, t) {
1289
+ const n = e.activeFormattingElements.getElementEntryInScopeWithTagName(I.A);
1290
+ n && (G(e, t), e.openElements.remove(n.element), e.activeFormattingElements.removeEntry(n)), e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t);
1291
+ }
1292
+ function Et(e, t) {
1293
+ e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t);
1294
+ }
1295
+ function Tt(e, t) {
1296
+ e._reconstructActiveFormattingElements(), e.openElements.hasInScope(a.NOBR) && (G(e, t), e._reconstructActiveFormattingElements()), e._insertElement(t, o.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t);
1297
+ }
1298
+ function lt(e, t) {
1299
+ e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML), e.activeFormattingElements.insertMarker(), e.framesetOk = !1;
1300
+ }
1301
+ function mt(e, t) {
1302
+ e.treeAdapter.getDocumentMode(e.document) !== w.QUIRKS && e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._insertElement(t, o.HTML), e.framesetOk = !1, e.insertionMode = s.IN_TABLE;
1303
+ }
1304
+ function ee(e, t) {
1305
+ e._reconstructActiveFormattingElements(), e._appendElement(t, o.HTML), e.framesetOk = !1, t.ackSelfClosing = !0;
1306
+ }
1307
+ function te(e) {
1308
+ const t = De(e, Be.TYPE);
1309
+ return t != null && t.toLowerCase() === Se;
1310
+ }
1311
+ function dt(e, t) {
1312
+ e._reconstructActiveFormattingElements(), e._appendElement(t, o.HTML), te(t) || (e.framesetOk = !1), t.ackSelfClosing = !0;
1313
+ }
1314
+ function It(e, t) {
1315
+ e._appendElement(t, o.HTML), t.ackSelfClosing = !0;
1316
+ }
1317
+ function _t(e, t) {
1318
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._appendElement(t, o.HTML), e.framesetOk = !1, t.ackSelfClosing = !0;
1319
+ }
1320
+ function At(e, t) {
1321
+ t.tagName = I.IMG, t.tagID = a.IMG, ee(e, t);
1322
+ }
1323
+ function ht(e, t) {
1324
+ e._insertElement(t, o.HTML), e.skipNextNewLine = !0, e.tokenizer.state = d.RCDATA, e.originalInsertionMode = e.insertionMode, e.framesetOk = !1, e.insertionMode = s.TEXT;
1325
+ }
1326
+ function ft(e, t) {
1327
+ e.openElements.hasInButtonScope(a.P) && e._closePElement(), e._reconstructActiveFormattingElements(), e.framesetOk = !1, e._switchToTextParsing(t, d.RAWTEXT);
1328
+ }
1329
+ function gt(e, t) {
1330
+ e.framesetOk = !1, e._switchToTextParsing(t, d.RAWTEXT);
1331
+ }
1332
+ function K(e, t) {
1333
+ e._switchToTextParsing(t, d.RAWTEXT);
1334
+ }
1335
+ function Nt(e, t) {
1336
+ e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML), e.framesetOk = !1, e.insertionMode = e.insertionMode === s.IN_TABLE || e.insertionMode === s.IN_CAPTION || e.insertionMode === s.IN_TABLE_BODY || e.insertionMode === s.IN_ROW || e.insertionMode === s.IN_CELL ? s.IN_SELECT_IN_TABLE : s.IN_SELECT;
1337
+ }
1338
+ function Lt(e, t) {
1339
+ e.openElements.currentTagId === a.OPTION && e.openElements.pop(), e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML);
1340
+ }
1341
+ function ut(e, t) {
1342
+ e.openElements.hasInScope(a.RUBY) && e.openElements.generateImpliedEndTags(), e._insertElement(t, o.HTML);
1343
+ }
1344
+ function Ot(e, t) {
1345
+ e.openElements.hasInScope(a.RUBY) && e.openElements.generateImpliedEndTagsWithExclusion(a.RTC), e._insertElement(t, o.HTML);
1346
+ }
1347
+ function Ct(e, t) {
1348
+ e._reconstructActiveFormattingElements(), Q(t), k(t), t.selfClosing ? e._appendElement(t, o.MATHML) : e._insertElement(t, o.MATHML), t.ackSelfClosing = !0;
1349
+ }
1350
+ function Rt(e, t) {
1351
+ e._reconstructActiveFormattingElements(), j(t), k(t), t.selfClosing ? e._appendElement(t, o.SVG) : e._insertElement(t, o.SVG), t.ackSelfClosing = !0;
1352
+ }
1353
+ function V(e, t) {
1354
+ e._reconstructActiveFormattingElements(), e._insertElement(t, o.HTML);
1355
+ }
1356
+ function m(e, t) {
1357
+ switch (t.tagID) {
1358
+ case a.I:
1359
+ case a.S:
1360
+ case a.B:
1361
+ case a.U:
1362
+ case a.EM:
1363
+ case a.TT:
1364
+ case a.BIG:
1365
+ case a.CODE:
1366
+ case a.FONT:
1367
+ case a.SMALL:
1368
+ case a.STRIKE:
1369
+ case a.STRONG: {
1370
+ Et(e, t);
1371
+ break;
1372
+ }
1373
+ case a.A: {
1374
+ ct(e, t);
1375
+ break;
1376
+ }
1377
+ case a.H1:
1378
+ case a.H2:
1379
+ case a.H3:
1380
+ case a.H4:
1381
+ case a.H5:
1382
+ case a.H6: {
1383
+ at(e, t);
1384
+ break;
1385
+ }
1386
+ case a.P:
1387
+ case a.DL:
1388
+ case a.OL:
1389
+ case a.UL:
1390
+ case a.DIV:
1391
+ case a.DIR:
1392
+ case a.NAV:
1393
+ case a.MAIN:
1394
+ case a.MENU:
1395
+ case a.ASIDE:
1396
+ case a.CENTER:
1397
+ case a.FIGURE:
1398
+ case a.FOOTER:
1399
+ case a.HEADER:
1400
+ case a.HGROUP:
1401
+ case a.DIALOG:
1402
+ case a.DETAILS:
1403
+ case a.ADDRESS:
1404
+ case a.ARTICLE:
1405
+ case a.SEARCH:
1406
+ case a.SECTION:
1407
+ case a.SUMMARY:
1408
+ case a.FIELDSET:
1409
+ case a.BLOCKQUOTE:
1410
+ case a.FIGCAPTION: {
1411
+ tt(e, t);
1412
+ break;
1413
+ }
1414
+ case a.LI:
1415
+ case a.DD:
1416
+ case a.DT: {
1417
+ rt(e, t);
1418
+ break;
1419
+ }
1420
+ case a.BR:
1421
+ case a.IMG:
1422
+ case a.WBR:
1423
+ case a.AREA:
1424
+ case a.EMBED:
1425
+ case a.KEYGEN: {
1426
+ ee(e, t);
1427
+ break;
1428
+ }
1429
+ case a.HR: {
1430
+ _t(e, t);
1431
+ break;
1432
+ }
1433
+ case a.RB:
1434
+ case a.RTC: {
1435
+ ut(e, t);
1436
+ break;
1437
+ }
1438
+ case a.RT:
1439
+ case a.RP: {
1440
+ Ot(e, t);
1441
+ break;
1442
+ }
1443
+ case a.PRE:
1444
+ case a.LISTING: {
1445
+ st(e, t);
1446
+ break;
1447
+ }
1448
+ case a.XMP: {
1449
+ ft(e, t);
1450
+ break;
1451
+ }
1452
+ case a.SVG: {
1453
+ Rt(e, t);
1454
+ break;
1455
+ }
1456
+ case a.HTML: {
1457
+ Ze(e, t);
1458
+ break;
1459
+ }
1460
+ case a.BASE:
1461
+ case a.LINK:
1462
+ case a.META:
1463
+ case a.STYLE:
1464
+ case a.TITLE:
1465
+ case a.SCRIPT:
1466
+ case a.BGSOUND:
1467
+ case a.BASEFONT:
1468
+ case a.TEMPLATE: {
1469
+ _(e, t);
1470
+ break;
1471
+ }
1472
+ case a.BODY: {
1473
+ $e(e, t);
1474
+ break;
1475
+ }
1476
+ case a.FORM: {
1477
+ nt(e, t);
1478
+ break;
1479
+ }
1480
+ case a.NOBR: {
1481
+ Tt(e, t);
1482
+ break;
1483
+ }
1484
+ case a.MATH: {
1485
+ Ct(e, t);
1486
+ break;
1487
+ }
1488
+ case a.TABLE: {
1489
+ mt(e, t);
1490
+ break;
1491
+ }
1492
+ case a.INPUT: {
1493
+ dt(e, t);
1494
+ break;
1495
+ }
1496
+ case a.PARAM:
1497
+ case a.TRACK:
1498
+ case a.SOURCE: {
1499
+ It(e, t);
1500
+ break;
1501
+ }
1502
+ case a.IMAGE: {
1503
+ At(e, t);
1504
+ break;
1505
+ }
1506
+ case a.BUTTON: {
1507
+ ot(e, t);
1508
+ break;
1509
+ }
1510
+ case a.APPLET:
1511
+ case a.OBJECT:
1512
+ case a.MARQUEE: {
1513
+ lt(e, t);
1514
+ break;
1515
+ }
1516
+ case a.IFRAME: {
1517
+ gt(e, t);
1518
+ break;
1519
+ }
1520
+ case a.SELECT: {
1521
+ Nt(e, t);
1522
+ break;
1523
+ }
1524
+ case a.OPTION:
1525
+ case a.OPTGROUP: {
1526
+ Lt(e, t);
1527
+ break;
1528
+ }
1529
+ case a.NOEMBED:
1530
+ case a.NOFRAMES: {
1531
+ K(e, t);
1532
+ break;
1533
+ }
1534
+ case a.FRAMESET: {
1535
+ et(e, t);
1536
+ break;
1537
+ }
1538
+ case a.TEXTAREA: {
1539
+ ht(e, t);
1540
+ break;
1541
+ }
1542
+ case a.NOSCRIPT: {
1543
+ e.options.scriptingEnabled ? K(e, t) : V(e, t);
1544
+ break;
1545
+ }
1546
+ case a.PLAINTEXT: {
1547
+ it(e, t);
1548
+ break;
1549
+ }
1550
+ case a.COL:
1551
+ case a.TH:
1552
+ case a.TD:
1553
+ case a.TR:
1554
+ case a.HEAD:
1555
+ case a.FRAME:
1556
+ case a.TBODY:
1557
+ case a.TFOOT:
1558
+ case a.THEAD:
1559
+ case a.CAPTION:
1560
+ case a.COLGROUP:
1561
+ break;
1562
+ default:
1563
+ V(e, t);
1564
+ }
1565
+ }
1566
+ function Mt(e, t) {
1567
+ if (e.openElements.hasInScope(a.BODY) && (e.insertionMode = s.AFTER_BODY, e.options.sourceCodeLocationInfo)) {
1568
+ const n = e.openElements.tryPeekProperlyNestedBodyElement();
1569
+ n && e._setEndLocation(n, t);
1570
+ }
1571
+ }
1572
+ function bt(e, t) {
1573
+ e.openElements.hasInScope(a.BODY) && (e.insertionMode = s.AFTER_BODY, le(e, t));
1574
+ }
1575
+ function Bt(e, t) {
1576
+ const n = t.tagID;
1577
+ e.openElements.hasInScope(n) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(n));
1578
+ }
1579
+ function Dt(e) {
1580
+ const t = e.openElements.tmplCount > 0, { formElement: n } = e;
1581
+ t || (e.formElement = null), (n || t) && e.openElements.hasInScope(a.FORM) && (e.openElements.generateImpliedEndTags(), t ? e.openElements.popUntilTagNamePopped(a.FORM) : n && e.openElements.remove(n));
1582
+ }
1583
+ function St(e) {
1584
+ e.openElements.hasInButtonScope(a.P) || e._insertFakeElement(I.P, a.P), e._closePElement();
1585
+ }
1586
+ function Pt(e) {
1587
+ e.openElements.hasInListItemScope(a.LI) && (e.openElements.generateImpliedEndTagsWithExclusion(a.LI), e.openElements.popUntilTagNamePopped(a.LI));
1588
+ }
1589
+ function Ft(e, t) {
1590
+ const n = t.tagID;
1591
+ e.openElements.hasInScope(n) && (e.openElements.generateImpliedEndTagsWithExclusion(n), e.openElements.popUntilTagNamePopped(n));
1592
+ }
1593
+ function Ht(e) {
1594
+ e.openElements.hasNumberedHeaderInScope() && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilNumberedHeaderPopped());
1595
+ }
1596
+ function pt(e, t) {
1597
+ const n = t.tagID;
1598
+ e.openElements.hasInScope(n) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(n), e.activeFormattingElements.clearToLastMarker());
1599
+ }
1600
+ function Ut(e) {
1601
+ e._reconstructActiveFormattingElements(), e._insertFakeElement(I.BR, a.BR), e.openElements.pop(), e.framesetOk = !1;
1602
+ }
1603
+ function ae(e, t) {
1604
+ const n = t.tagName, r = t.tagID;
1605
+ for (let i = e.openElements.stackTop; i > 0; i--) {
1606
+ const c = e.openElements.items[i], E = e.openElements.tagIDs[i];
1607
+ if (r === E && (r !== a.UNKNOWN || e.treeAdapter.getTagName(c) === n)) {
1608
+ e.openElements.generateImpliedEndTagsWithExclusion(r), e.openElements.stackTop >= i && e.openElements.shortenToLength(i);
1609
+ break;
1610
+ }
1611
+ if (e._isSpecialElement(c, E))
1612
+ break;
1613
+ }
1614
+ }
1615
+ function H(e, t) {
1616
+ switch (t.tagID) {
1617
+ case a.A:
1618
+ case a.B:
1619
+ case a.I:
1620
+ case a.S:
1621
+ case a.U:
1622
+ case a.EM:
1623
+ case a.TT:
1624
+ case a.BIG:
1625
+ case a.CODE:
1626
+ case a.FONT:
1627
+ case a.NOBR:
1628
+ case a.SMALL:
1629
+ case a.STRIKE:
1630
+ case a.STRONG: {
1631
+ G(e, t);
1632
+ break;
1633
+ }
1634
+ case a.P: {
1635
+ St(e);
1636
+ break;
1637
+ }
1638
+ case a.DL:
1639
+ case a.UL:
1640
+ case a.OL:
1641
+ case a.DIR:
1642
+ case a.DIV:
1643
+ case a.NAV:
1644
+ case a.PRE:
1645
+ case a.MAIN:
1646
+ case a.MENU:
1647
+ case a.ASIDE:
1648
+ case a.BUTTON:
1649
+ case a.CENTER:
1650
+ case a.FIGURE:
1651
+ case a.FOOTER:
1652
+ case a.HEADER:
1653
+ case a.HGROUP:
1654
+ case a.DIALOG:
1655
+ case a.ADDRESS:
1656
+ case a.ARTICLE:
1657
+ case a.DETAILS:
1658
+ case a.SEARCH:
1659
+ case a.SECTION:
1660
+ case a.SUMMARY:
1661
+ case a.LISTING:
1662
+ case a.FIELDSET:
1663
+ case a.BLOCKQUOTE:
1664
+ case a.FIGCAPTION: {
1665
+ Bt(e, t);
1666
+ break;
1667
+ }
1668
+ case a.LI: {
1669
+ Pt(e);
1670
+ break;
1671
+ }
1672
+ case a.DD:
1673
+ case a.DT: {
1674
+ Ft(e, t);
1675
+ break;
1676
+ }
1677
+ case a.H1:
1678
+ case a.H2:
1679
+ case a.H3:
1680
+ case a.H4:
1681
+ case a.H5:
1682
+ case a.H6: {
1683
+ Ht(e);
1684
+ break;
1685
+ }
1686
+ case a.BR: {
1687
+ Ut(e);
1688
+ break;
1689
+ }
1690
+ case a.BODY: {
1691
+ Mt(e, t);
1692
+ break;
1693
+ }
1694
+ case a.HTML: {
1695
+ bt(e, t);
1696
+ break;
1697
+ }
1698
+ case a.FORM: {
1699
+ Dt(e);
1700
+ break;
1701
+ }
1702
+ case a.APPLET:
1703
+ case a.OBJECT:
1704
+ case a.MARQUEE: {
1705
+ pt(e, t);
1706
+ break;
1707
+ }
1708
+ case a.TEMPLATE: {
1709
+ h(e, t);
1710
+ break;
1711
+ }
1712
+ default:
1713
+ ae(e, t);
1714
+ }
1715
+ }
1716
+ function se(e, t) {
1717
+ e.tmplInsertionModeStack.length > 0 ? Te(e, t) : v(e, t);
1718
+ }
1719
+ function yt(e, t) {
1720
+ var n;
1721
+ t.tagID === a.SCRIPT && ((n = e.scriptHandler) === null || n === void 0 || n.call(e, e.openElements.current)), e.openElements.pop(), e.insertionMode = e.originalInsertionMode;
1722
+ }
1723
+ function Yt(e, t) {
1724
+ e._err(t, l.eofInElementThatCanContainOnlyText), e.openElements.pop(), e.insertionMode = e.originalInsertionMode, e.onEof(t);
1725
+ }
1726
+ function y(e, t) {
1727
+ if (e.openElements.currentTagId !== void 0 && q.has(e.openElements.currentTagId))
1728
+ switch (e.pendingCharacterTokens.length = 0, e.hasNonWhitespacePendingCharacterToken = !1, e.originalInsertionMode = e.insertionMode, e.insertionMode = s.IN_TABLE_TEXT, t.type) {
1729
+ case T.CHARACTER: {
1730
+ re(e, t);
1731
+ break;
1732
+ }
1733
+ case T.WHITESPACE_CHARACTER: {
1734
+ ne(e, t);
1735
+ break;
1736
+ }
1737
+ }
1738
+ else
1739
+ b(e, t);
1740
+ }
1741
+ function xt(e, t) {
1742
+ e.openElements.clearBackToTableContext(), e.activeFormattingElements.insertMarker(), e._insertElement(t, o.HTML), e.insertionMode = s.IN_CAPTION;
1743
+ }
1744
+ function kt(e, t) {
1745
+ e.openElements.clearBackToTableContext(), e._insertElement(t, o.HTML), e.insertionMode = s.IN_COLUMN_GROUP;
1746
+ }
1747
+ function wt(e, t) {
1748
+ e.openElements.clearBackToTableContext(), e._insertFakeElement(I.COLGROUP, a.COLGROUP), e.insertionMode = s.IN_COLUMN_GROUP, W(e, t);
1749
+ }
1750
+ function Gt(e, t) {
1751
+ e.openElements.clearBackToTableContext(), e._insertElement(t, o.HTML), e.insertionMode = s.IN_TABLE_BODY;
1752
+ }
1753
+ function vt(e, t) {
1754
+ e.openElements.clearBackToTableContext(), e._insertFakeElement(I.TBODY, a.TBODY), e.insertionMode = s.IN_TABLE_BODY, p(e, t);
1755
+ }
1756
+ function Wt(e, t) {
1757
+ e.openElements.hasInTableScope(a.TABLE) && (e.openElements.popUntilTagNamePopped(a.TABLE), e._resetInsertionMode(), e._processStartTag(t));
1758
+ }
1759
+ function Xt(e, t) {
1760
+ te(t) ? e._appendElement(t, o.HTML) : b(e, t), t.ackSelfClosing = !0;
1761
+ }
1762
+ function zt(e, t) {
1763
+ !e.formElement && e.openElements.tmplCount === 0 && (e._insertElement(t, o.HTML), e.formElement = e.openElements.current, e.openElements.pop());
1764
+ }
1765
+ function f(e, t) {
1766
+ switch (t.tagID) {
1767
+ case a.TD:
1768
+ case a.TH:
1769
+ case a.TR: {
1770
+ vt(e, t);
1771
+ break;
1772
+ }
1773
+ case a.STYLE:
1774
+ case a.SCRIPT:
1775
+ case a.TEMPLATE: {
1776
+ _(e, t);
1777
+ break;
1778
+ }
1779
+ case a.COL: {
1780
+ wt(e, t);
1781
+ break;
1782
+ }
1783
+ case a.FORM: {
1784
+ zt(e, t);
1785
+ break;
1786
+ }
1787
+ case a.TABLE: {
1788
+ Wt(e, t);
1789
+ break;
1790
+ }
1791
+ case a.TBODY:
1792
+ case a.TFOOT:
1793
+ case a.THEAD: {
1794
+ Gt(e, t);
1795
+ break;
1796
+ }
1797
+ case a.INPUT: {
1798
+ Xt(e, t);
1799
+ break;
1800
+ }
1801
+ case a.CAPTION: {
1802
+ xt(e, t);
1803
+ break;
1804
+ }
1805
+ case a.COLGROUP: {
1806
+ kt(e, t);
1807
+ break;
1808
+ }
1809
+ default:
1810
+ b(e, t);
1811
+ }
1812
+ }
1813
+ function M(e, t) {
1814
+ switch (t.tagID) {
1815
+ case a.TABLE: {
1816
+ e.openElements.hasInTableScope(a.TABLE) && (e.openElements.popUntilTagNamePopped(a.TABLE), e._resetInsertionMode());
1817
+ break;
1818
+ }
1819
+ case a.TEMPLATE: {
1820
+ h(e, t);
1821
+ break;
1822
+ }
1823
+ case a.BODY:
1824
+ case a.CAPTION:
1825
+ case a.COL:
1826
+ case a.COLGROUP:
1827
+ case a.HTML:
1828
+ case a.TBODY:
1829
+ case a.TD:
1830
+ case a.TFOOT:
1831
+ case a.TH:
1832
+ case a.THEAD:
1833
+ case a.TR:
1834
+ break;
1835
+ default:
1836
+ b(e, t);
1837
+ }
1838
+ }
1839
+ function b(e, t) {
1840
+ const n = e.fosterParentingEnabled;
1841
+ e.fosterParentingEnabled = !0, F(e, t), e.fosterParentingEnabled = n;
1842
+ }
1843
+ function ne(e, t) {
1844
+ e.pendingCharacterTokens.push(t);
1845
+ }
1846
+ function re(e, t) {
1847
+ e.pendingCharacterTokens.push(t), e.hasNonWhitespacePendingCharacterToken = !0;
1848
+ }
1849
+ function N(e, t) {
1850
+ let n = 0;
1851
+ if (e.hasNonWhitespacePendingCharacterToken)
1852
+ for (; n < e.pendingCharacterTokens.length; n++)
1853
+ b(e, e.pendingCharacterTokens[n]);
1854
+ else
1855
+ for (; n < e.pendingCharacterTokens.length; n++)
1856
+ e._insertCharacters(e.pendingCharacterTokens[n]);
1857
+ e.insertionMode = e.originalInsertionMode, e._processToken(t);
1858
+ }
1859
+ const ie = /* @__PURE__ */ new Set([a.CAPTION, a.COL, a.COLGROUP, a.TBODY, a.TD, a.TFOOT, a.TH, a.THEAD, a.TR]);
1860
+ function Kt(e, t) {
1861
+ const n = t.tagID;
1862
+ ie.has(n) ? e.openElements.hasInTableScope(a.CAPTION) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(a.CAPTION), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = s.IN_TABLE, f(e, t)) : m(e, t);
1863
+ }
1864
+ function Vt(e, t) {
1865
+ const n = t.tagID;
1866
+ switch (n) {
1867
+ case a.CAPTION:
1868
+ case a.TABLE: {
1869
+ e.openElements.hasInTableScope(a.CAPTION) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(a.CAPTION), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = s.IN_TABLE, n === a.TABLE && M(e, t));
1870
+ break;
1871
+ }
1872
+ case a.BODY:
1873
+ case a.COL:
1874
+ case a.COLGROUP:
1875
+ case a.HTML:
1876
+ case a.TBODY:
1877
+ case a.TD:
1878
+ case a.TFOOT:
1879
+ case a.TH:
1880
+ case a.THEAD:
1881
+ case a.TR:
1882
+ break;
1883
+ default:
1884
+ H(e, t);
1885
+ }
1886
+ }
1887
+ function W(e, t) {
1888
+ switch (t.tagID) {
1889
+ case a.HTML: {
1890
+ m(e, t);
1891
+ break;
1892
+ }
1893
+ case a.COL: {
1894
+ e._appendElement(t, o.HTML), t.ackSelfClosing = !0;
1895
+ break;
1896
+ }
1897
+ case a.TEMPLATE: {
1898
+ _(e, t);
1899
+ break;
1900
+ }
1901
+ default:
1902
+ S(e, t);
1903
+ }
1904
+ }
1905
+ function Qt(e, t) {
1906
+ switch (t.tagID) {
1907
+ case a.COLGROUP: {
1908
+ e.openElements.currentTagId === a.COLGROUP && (e.openElements.pop(), e.insertionMode = s.IN_TABLE);
1909
+ break;
1910
+ }
1911
+ case a.TEMPLATE: {
1912
+ h(e, t);
1913
+ break;
1914
+ }
1915
+ case a.COL:
1916
+ break;
1917
+ default:
1918
+ S(e, t);
1919
+ }
1920
+ }
1921
+ function S(e, t) {
1922
+ e.openElements.currentTagId === a.COLGROUP && (e.openElements.pop(), e.insertionMode = s.IN_TABLE, e._processToken(t));
1923
+ }
1924
+ function p(e, t) {
1925
+ switch (t.tagID) {
1926
+ case a.TR: {
1927
+ e.openElements.clearBackToTableBodyContext(), e._insertElement(t, o.HTML), e.insertionMode = s.IN_ROW;
1928
+ break;
1929
+ }
1930
+ case a.TH:
1931
+ case a.TD: {
1932
+ e.openElements.clearBackToTableBodyContext(), e._insertFakeElement(I.TR, a.TR), e.insertionMode = s.IN_ROW, U(e, t);
1933
+ break;
1934
+ }
1935
+ case a.CAPTION:
1936
+ case a.COL:
1937
+ case a.COLGROUP:
1938
+ case a.TBODY:
1939
+ case a.TFOOT:
1940
+ case a.THEAD: {
1941
+ e.openElements.hasTableBodyContextInTableScope() && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE, f(e, t));
1942
+ break;
1943
+ }
1944
+ default:
1945
+ f(e, t);
1946
+ }
1947
+ }
1948
+ function x(e, t) {
1949
+ const n = t.tagID;
1950
+ switch (t.tagID) {
1951
+ case a.TBODY:
1952
+ case a.TFOOT:
1953
+ case a.THEAD: {
1954
+ e.openElements.hasInTableScope(n) && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE);
1955
+ break;
1956
+ }
1957
+ case a.TABLE: {
1958
+ e.openElements.hasTableBodyContextInTableScope() && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE, M(e, t));
1959
+ break;
1960
+ }
1961
+ case a.BODY:
1962
+ case a.CAPTION:
1963
+ case a.COL:
1964
+ case a.COLGROUP:
1965
+ case a.HTML:
1966
+ case a.TD:
1967
+ case a.TH:
1968
+ case a.TR:
1969
+ break;
1970
+ default:
1971
+ M(e, t);
1972
+ }
1973
+ }
1974
+ function U(e, t) {
1975
+ switch (t.tagID) {
1976
+ case a.TH:
1977
+ case a.TD: {
1978
+ e.openElements.clearBackToTableRowContext(), e._insertElement(t, o.HTML), e.insertionMode = s.IN_CELL, e.activeFormattingElements.insertMarker();
1979
+ break;
1980
+ }
1981
+ case a.CAPTION:
1982
+ case a.COL:
1983
+ case a.COLGROUP:
1984
+ case a.TBODY:
1985
+ case a.TFOOT:
1986
+ case a.THEAD:
1987
+ case a.TR: {
1988
+ e.openElements.hasInTableScope(a.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE_BODY, p(e, t));
1989
+ break;
1990
+ }
1991
+ default:
1992
+ f(e, t);
1993
+ }
1994
+ }
1995
+ function oe(e, t) {
1996
+ switch (t.tagID) {
1997
+ case a.TR: {
1998
+ e.openElements.hasInTableScope(a.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE_BODY);
1999
+ break;
2000
+ }
2001
+ case a.TABLE: {
2002
+ e.openElements.hasInTableScope(a.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE_BODY, x(e, t));
2003
+ break;
2004
+ }
2005
+ case a.TBODY:
2006
+ case a.TFOOT:
2007
+ case a.THEAD: {
2008
+ (e.openElements.hasInTableScope(t.tagID) || e.openElements.hasInTableScope(a.TR)) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = s.IN_TABLE_BODY, x(e, t));
2009
+ break;
2010
+ }
2011
+ case a.BODY:
2012
+ case a.CAPTION:
2013
+ case a.COL:
2014
+ case a.COLGROUP:
2015
+ case a.HTML:
2016
+ case a.TD:
2017
+ case a.TH:
2018
+ break;
2019
+ default:
2020
+ M(e, t);
2021
+ }
2022
+ }
2023
+ function jt(e, t) {
2024
+ const n = t.tagID;
2025
+ ie.has(n) ? (e.openElements.hasInTableScope(a.TD) || e.openElements.hasInTableScope(a.TH)) && (e._closeTableCell(), U(e, t)) : m(e, t);
2026
+ }
2027
+ function Jt(e, t) {
2028
+ const n = t.tagID;
2029
+ switch (n) {
2030
+ case a.TD:
2031
+ case a.TH: {
2032
+ e.openElements.hasInTableScope(n) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(n), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = s.IN_ROW);
2033
+ break;
2034
+ }
2035
+ case a.TABLE:
2036
+ case a.TBODY:
2037
+ case a.TFOOT:
2038
+ case a.THEAD:
2039
+ case a.TR: {
2040
+ e.openElements.hasInTableScope(n) && (e._closeTableCell(), oe(e, t));
2041
+ break;
2042
+ }
2043
+ case a.BODY:
2044
+ case a.CAPTION:
2045
+ case a.COL:
2046
+ case a.COLGROUP:
2047
+ case a.HTML:
2048
+ break;
2049
+ default:
2050
+ H(e, t);
2051
+ }
2052
+ }
2053
+ function ce(e, t) {
2054
+ switch (t.tagID) {
2055
+ case a.HTML: {
2056
+ m(e, t);
2057
+ break;
2058
+ }
2059
+ case a.OPTION: {
2060
+ e.openElements.currentTagId === a.OPTION && e.openElements.pop(), e._insertElement(t, o.HTML);
2061
+ break;
2062
+ }
2063
+ case a.OPTGROUP: {
2064
+ e.openElements.currentTagId === a.OPTION && e.openElements.pop(), e.openElements.currentTagId === a.OPTGROUP && e.openElements.pop(), e._insertElement(t, o.HTML);
2065
+ break;
2066
+ }
2067
+ case a.HR: {
2068
+ e.openElements.currentTagId === a.OPTION && e.openElements.pop(), e.openElements.currentTagId === a.OPTGROUP && e.openElements.pop(), e._appendElement(t, o.HTML), t.ackSelfClosing = !0;
2069
+ break;
2070
+ }
2071
+ case a.INPUT:
2072
+ case a.KEYGEN:
2073
+ case a.TEXTAREA:
2074
+ case a.SELECT: {
2075
+ e.openElements.hasInSelectScope(a.SELECT) && (e.openElements.popUntilTagNamePopped(a.SELECT), e._resetInsertionMode(), t.tagID !== a.SELECT && e._processStartTag(t));
2076
+ break;
2077
+ }
2078
+ case a.SCRIPT:
2079
+ case a.TEMPLATE: {
2080
+ _(e, t);
2081
+ break;
2082
+ }
2083
+ }
2084
+ }
2085
+ function Ee(e, t) {
2086
+ switch (t.tagID) {
2087
+ case a.OPTGROUP: {
2088
+ e.openElements.stackTop > 0 && e.openElements.currentTagId === a.OPTION && e.openElements.tagIDs[e.openElements.stackTop - 1] === a.OPTGROUP && e.openElements.pop(), e.openElements.currentTagId === a.OPTGROUP && e.openElements.pop();
2089
+ break;
2090
+ }
2091
+ case a.OPTION: {
2092
+ e.openElements.currentTagId === a.OPTION && e.openElements.pop();
2093
+ break;
2094
+ }
2095
+ case a.SELECT: {
2096
+ e.openElements.hasInSelectScope(a.SELECT) && (e.openElements.popUntilTagNamePopped(a.SELECT), e._resetInsertionMode());
2097
+ break;
2098
+ }
2099
+ case a.TEMPLATE: {
2100
+ h(e, t);
2101
+ break;
2102
+ }
2103
+ }
2104
+ }
2105
+ function qt(e, t) {
2106
+ const n = t.tagID;
2107
+ n === a.CAPTION || n === a.TABLE || n === a.TBODY || n === a.TFOOT || n === a.THEAD || n === a.TR || n === a.TD || n === a.TH ? (e.openElements.popUntilTagNamePopped(a.SELECT), e._resetInsertionMode(), e._processStartTag(t)) : ce(e, t);
2108
+ }
2109
+ function Zt(e, t) {
2110
+ const n = t.tagID;
2111
+ n === a.CAPTION || n === a.TABLE || n === a.TBODY || n === a.TFOOT || n === a.THEAD || n === a.TR || n === a.TD || n === a.TH ? e.openElements.hasInTableScope(n) && (e.openElements.popUntilTagNamePopped(a.SELECT), e._resetInsertionMode(), e.onEndTag(t)) : Ee(e, t);
2112
+ }
2113
+ function $t(e, t) {
2114
+ switch (t.tagID) {
2115
+ // First, handle tags that can start without a mode change
2116
+ case a.BASE:
2117
+ case a.BASEFONT:
2118
+ case a.BGSOUND:
2119
+ case a.LINK:
2120
+ case a.META:
2121
+ case a.NOFRAMES:
2122
+ case a.SCRIPT:
2123
+ case a.STYLE:
2124
+ case a.TEMPLATE:
2125
+ case a.TITLE: {
2126
+ _(e, t);
2127
+ break;
2128
+ }
2129
+ // Re-process the token in the appropriate mode
2130
+ case a.CAPTION:
2131
+ case a.COLGROUP:
2132
+ case a.TBODY:
2133
+ case a.TFOOT:
2134
+ case a.THEAD: {
2135
+ e.tmplInsertionModeStack[0] = s.IN_TABLE, e.insertionMode = s.IN_TABLE, f(e, t);
2136
+ break;
2137
+ }
2138
+ case a.COL: {
2139
+ e.tmplInsertionModeStack[0] = s.IN_COLUMN_GROUP, e.insertionMode = s.IN_COLUMN_GROUP, W(e, t);
2140
+ break;
2141
+ }
2142
+ case a.TR: {
2143
+ e.tmplInsertionModeStack[0] = s.IN_TABLE_BODY, e.insertionMode = s.IN_TABLE_BODY, p(e, t);
2144
+ break;
2145
+ }
2146
+ case a.TD:
2147
+ case a.TH: {
2148
+ e.tmplInsertionModeStack[0] = s.IN_ROW, e.insertionMode = s.IN_ROW, U(e, t);
2149
+ break;
2150
+ }
2151
+ default:
2152
+ e.tmplInsertionModeStack[0] = s.IN_BODY, e.insertionMode = s.IN_BODY, m(e, t);
2153
+ }
2154
+ }
2155
+ function ea(e, t) {
2156
+ t.tagID === a.TEMPLATE && h(e, t);
2157
+ }
2158
+ function Te(e, t) {
2159
+ e.openElements.tmplCount > 0 ? (e.openElements.popUntilTagNamePopped(a.TEMPLATE), e.activeFormattingElements.clearToLastMarker(), e.tmplInsertionModeStack.shift(), e._resetInsertionMode(), e.onEof(t)) : v(e, t);
2160
+ }
2161
+ function ta(e, t) {
2162
+ t.tagID === a.HTML ? m(e, t) : P(e, t);
2163
+ }
2164
+ function le(e, t) {
2165
+ var n;
2166
+ if (t.tagID === a.HTML) {
2167
+ if (e.fragmentContext || (e.insertionMode = s.AFTER_AFTER_BODY), e.options.sourceCodeLocationInfo && e.openElements.tagIDs[0] === a.HTML) {
2168
+ e._setEndLocation(e.openElements.items[0], t);
2169
+ const r = e.openElements.items[1];
2170
+ r && !(!((n = e.treeAdapter.getNodeSourceCodeLocation(r)) === null || n === void 0) && n.endTag) && e._setEndLocation(r, t);
2171
+ }
2172
+ } else
2173
+ P(e, t);
2174
+ }
2175
+ function P(e, t) {
2176
+ e.insertionMode = s.IN_BODY, F(e, t);
2177
+ }
2178
+ function aa(e, t) {
2179
+ switch (t.tagID) {
2180
+ case a.HTML: {
2181
+ m(e, t);
2182
+ break;
2183
+ }
2184
+ case a.FRAMESET: {
2185
+ e._insertElement(t, o.HTML);
2186
+ break;
2187
+ }
2188
+ case a.FRAME: {
2189
+ e._appendElement(t, o.HTML), t.ackSelfClosing = !0;
2190
+ break;
2191
+ }
2192
+ case a.NOFRAMES: {
2193
+ _(e, t);
2194
+ break;
2195
+ }
2196
+ }
2197
+ }
2198
+ function sa(e, t) {
2199
+ t.tagID === a.FRAMESET && !e.openElements.isRootHtmlElementCurrent() && (e.openElements.pop(), !e.fragmentContext && e.openElements.currentTagId !== a.FRAMESET && (e.insertionMode = s.AFTER_FRAMESET));
2200
+ }
2201
+ function na(e, t) {
2202
+ switch (t.tagID) {
2203
+ case a.HTML: {
2204
+ m(e, t);
2205
+ break;
2206
+ }
2207
+ case a.NOFRAMES: {
2208
+ _(e, t);
2209
+ break;
2210
+ }
2211
+ }
2212
+ }
2213
+ function ra(e, t) {
2214
+ t.tagID === a.HTML && (e.insertionMode = s.AFTER_AFTER_FRAMESET);
2215
+ }
2216
+ function ia(e, t) {
2217
+ t.tagID === a.HTML ? m(e, t) : D(e, t);
2218
+ }
2219
+ function D(e, t) {
2220
+ e.insertionMode = s.IN_BODY, F(e, t);
2221
+ }
2222
+ function oa(e, t) {
2223
+ switch (t.tagID) {
2224
+ case a.HTML: {
2225
+ m(e, t);
2226
+ break;
2227
+ }
2228
+ case a.NOFRAMES: {
2229
+ _(e, t);
2230
+ break;
2231
+ }
2232
+ }
2233
+ }
2234
+ function ca(e, t) {
2235
+ t.chars = Re, e._insertCharacters(t);
2236
+ }
2237
+ function Ea(e, t) {
2238
+ e._insertCharacters(t), e.framesetOk = !1;
2239
+ }
2240
+ function me(e) {
2241
+ for (; e.treeAdapter.getNamespaceURI(e.openElements.current) !== o.HTML && e.openElements.currentTagId !== void 0 && !e._isIntegrationPoint(e.openElements.currentTagId, e.openElements.current); )
2242
+ e.openElements.pop();
2243
+ }
2244
+ function Ta(e, t) {
2245
+ if (ue(t))
2246
+ me(e), e._startTagOutsideForeignContent(t);
2247
+ else {
2248
+ const n = e._getAdjustedCurrentElement(), r = e.treeAdapter.getNamespaceURI(n);
2249
+ r === o.MATHML ? Q(t) : r === o.SVG && (Oe(t), j(t)), k(t), t.selfClosing ? e._appendElement(t, r) : e._insertElement(t, r), t.ackSelfClosing = !0;
2250
+ }
2251
+ }
2252
+ function la(e, t) {
2253
+ if (t.tagID === a.P || t.tagID === a.BR) {
2254
+ me(e), e._endTagOutsideForeignContent(t);
2255
+ return;
2256
+ }
2257
+ for (let n = e.openElements.stackTop; n > 0; n--) {
2258
+ const r = e.openElements.items[n];
2259
+ if (e.treeAdapter.getNamespaceURI(r) === o.HTML) {
2260
+ e._endTagOutsideForeignContent(t);
2261
+ break;
2262
+ }
2263
+ const i = e.treeAdapter.getTagName(r);
2264
+ if (i.toLowerCase() === t.tagName) {
2265
+ t.tagName = i, e.openElements.shortenToLength(n);
2266
+ break;
2267
+ }
2268
+ }
2269
+ }
2270
+ export {
2271
+ ua as Parser
2272
+ };