@ynput/ayon-frontend-shared 0.3.1 → 0.3.2
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/dist/_virtual/index.cjs10.js +1 -1
- package/dist/_virtual/index.cjs11.js +1 -1
- package/dist/_virtual/index.cjs12.js +1 -1
- package/dist/_virtual/index.es10.js +3 -3
- package/dist/_virtual/index.es11.js +5 -5
- package/dist/_virtual/index.es12.js +5 -5
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/web-namespaces/index.cjs.js +1 -1
- package/dist/node_modules/web-namespaces/index.cjs.js.map +1 -1
- package/dist/node_modules/web-namespaces/index.es.js +3 -8
- package/dist/node_modules/web-namespaces/index.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +12 -8
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +11 -7
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +66 -61
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js +6 -6
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +10 -10
- package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.es.js +86 -80
- package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +2 -1
- package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
- package/package.json +2 -1
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js +0 -63
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/index.es.js +0 -12
- package/dist/node_modules/@ungap/structured-clone/esm/index.es.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js +0 -107
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/types.es.js +0 -14
- package/dist/node_modules/@ungap/structured-clone/esm/types.es.js.map +0 -1
- package/dist/node_modules/devlop/lib/default.cjs.js +0 -2
- package/dist/node_modules/devlop/lib/default.cjs.js.map +0 -1
- package/dist/node_modules/devlop/lib/default.es.js +0 -6
- package/dist/node_modules/devlop/lib/default.es.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js +0 -2
- package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js +0 -39
- package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode.cjs.js +0 -2
- package/dist/node_modules/entities/dist/esm/decode.cjs.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode.es.js +0 -246
- package/dist/node_modules/entities/dist/esm/decode.es.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js +0 -2
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js +0 -8
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/lib/index.es.js +0 -218
- package/dist/node_modules/hast-util-raw/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js +0 -146
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js +0 -21
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js +0 -113
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js +0 -9
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js +0 -45
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js +0 -26
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js +0 -99
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js +0 -8
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js +0 -211
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js +0 -251
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js +0 -15
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js +0 -74
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js +0 -85
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js +0 -2272
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js +0 -241
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js +0 -3
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js +0 -1941
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js +0 -89
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js +0 -163
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js +0 -13
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js +0 -62
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js +0 -34
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js +0 -369
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js +0 -7
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js +0 -567
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js +0 -20
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js +0 -37
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js +0 -29
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js +0 -11
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js +0 -22
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js +0 -15
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js +0 -20
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js +0 -12
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js +0 -12
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js +0 -3
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js +0 -43
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/lib/index.es.js +0 -119
- package/dist/node_modules/hast-util-to-parse5/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js +0 -13
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js +0 -62
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js +0 -34
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js +0 -369
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js +0 -7
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js +0 -567
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js +0 -20
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js +0 -37
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js +0 -29
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js +0 -11
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js +0 -22
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js +0 -15
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js +0 -20
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js +0 -12
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js +0 -12
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js.map +0 -1
- package/dist/node_modules/rehype-raw/lib/index.cjs.js +0 -2
- package/dist/node_modules/rehype-raw/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/rehype-raw/lib/index.es.js +0 -13
- package/dist/node_modules/rehype-raw/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-is/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-is/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-is/lib/index.es.js +0 -92
- package/dist/node_modules/unist-util-is/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-position/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-position/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-position/lib/index.es.js +0 -18
- package/dist/node_modules/unist-util-position/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-visit/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-visit/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-visit/lib/index.es.js +0 -17
- package/dist/node_modules/unist-util-visit/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js +0 -2
- package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/color.es.js +0 -7
- package/dist/node_modules/unist-util-visit-parents/lib/color.es.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/index.es.js +0 -57
- package/dist/node_modules/unist-util-visit-parents/lib/index.es.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("../tokenizer/index.cjs.js"),Ie=require("./open-element-stack.cjs.js"),v=require("./formatting-element-list.cjs.js"),Ae=require("../tree-adapters/default.cjs.js"),W=require("../common/doctype.cjs.js"),l=require("../common/foreign-content.cjs.js"),E=require("../common/error-codes.cjs.js"),V=require("../common/unicode.cjs.js"),a=require("../common/html.cjs.js"),c=require("../common/token.cjs.js"),_e="hidden",le=8,De=3;var s;(function(e){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"})(s||(s={}));const me={startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1},j=new Set([a.TAG_ID.TABLE,a.TAG_ID.TBODY,a.TAG_ID.TFOOT,a.TAG_ID.THEAD,a.TAG_ID.TR]),X={scriptingEnabled:!0,sourceCodeLocationInfo:!1,treeAdapter:Ae.defaultTreeAdapter,onParseError:null};class de{constructor(t,n,T=null,r=null){this.fragmentContext=T,this.scriptHandler=r,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={...X,...t},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 A.Tokenizer(this.options,this),this.activeFormattingElements=new v.FormattingElementList(this.treeAdapter),this.fragmentContextID=T?a.getTagID(this.treeAdapter.getTagName(T)):a.TAG_ID.UNKNOWN,this._setContextModes(T??this.document,this.fragmentContextID),this.openElements=new Ie.OpenElementStack(this.document,this.treeAdapter,this)}static parse(t,n){const T=new this(n);return T.tokenizer.write(t,!0),T.document}static getFragmentParser(t,n){const T={...X,...n};t??(t=T.treeAdapter.createElement(a.TAG_NAMES.TEMPLATE,a.NS.HTML,[]));const r=T.treeAdapter.createElement("documentmock",a.NS.HTML,[]),i=new this(T,r,t);return i.fragmentContextID===a.TAG_ID.TEMPLATE&&i.tmplInsertionModeStack.unshift(s.IN_TEMPLATE),i._initTokenizerForFragmentParsing(),i._insertFakeRootElement(),i._resetInsertionMode(),i._findFormInFragmentContext(),i}getFragment(){const t=this.treeAdapter.getFirstChild(this.document),n=this.treeAdapter.createDocumentFragment();return this._adoptNodes(t,n),n}_err(t,n,T){var r;if(!this.onParseError)return;const i=(r=t.location)!==null&&r!==void 0?r:me,o={code:n,startLine:i.startLine,startCol:i.startCol,startOffset:i.startOffset,endLine:T?i.startLine:i.endLine,endCol:T?i.startCol:i.endCol,endOffset:T?i.startOffset:i.endOffset};this.onParseError(o)}onItemPush(t,n,T){var r,i;(i=(r=this.treeAdapter).onItemPush)===null||i===void 0||i.call(r,t),T&&this.openElements.stackTop>0&&this._setContextModes(t,n)}onItemPop(t,n){var T,r;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(t,this.currentToken),(r=(T=this.treeAdapter).onItemPop)===null||r===void 0||r.call(T,t,this.openElements.current),n){let i,o;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,o=this.fragmentContextID):{current:i,currentTagId:o}=this.openElements,this._setContextModes(i,o)}}_setContextModes(t,n){const T=t===this.document||t&&this.treeAdapter.getNamespaceURI(t)===a.NS.HTML;this.currentNotInHTML=!T,this.tokenizer.inForeignNode=!T&&t!==void 0&&n!==void 0&&!this._isIntegrationPoint(n,t)}_switchToTextParsing(t,n){this._insertElement(t,a.NS.HTML),this.tokenizer.state=n,this.originalInsertionMode=this.insertionMode,this.insertionMode=s.TEXT}switchToPlaintextParsing(){this.insertionMode=s.TEXT,this.originalInsertionMode=s.IN_BODY,this.tokenizer.state=A.TokenizerMode.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let t=this.fragmentContext;for(;t;){if(this.treeAdapter.getTagName(t)===a.TAG_NAMES.FORM){this.formElement=t;break}t=this.treeAdapter.getParentNode(t)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==a.NS.HTML))switch(this.fragmentContextID){case a.TAG_ID.TITLE:case a.TAG_ID.TEXTAREA:{this.tokenizer.state=A.TokenizerMode.RCDATA;break}case a.TAG_ID.STYLE:case a.TAG_ID.XMP:case a.TAG_ID.IFRAME:case a.TAG_ID.NOEMBED:case a.TAG_ID.NOFRAMES:case a.TAG_ID.NOSCRIPT:{this.tokenizer.state=A.TokenizerMode.RAWTEXT;break}case a.TAG_ID.SCRIPT:{this.tokenizer.state=A.TokenizerMode.SCRIPT_DATA;break}case a.TAG_ID.PLAINTEXT:{this.tokenizer.state=A.TokenizerMode.PLAINTEXT;break}}}_setDocumentType(t){const n=t.name||"",T=t.publicId||"",r=t.systemId||"";if(this.treeAdapter.setDocumentType(this.document,n,T,r),t.location){const o=this.treeAdapter.getChildNodes(this.document).find(D=>this.treeAdapter.isDocumentTypeNode(D));o&&this.treeAdapter.setNodeSourceCodeLocation(o,t.location)}}_attachElementToTree(t,n){if(this.options.sourceCodeLocationInfo){const T=n&&{...n,startTag:n};this.treeAdapter.setNodeSourceCodeLocation(t,T)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(t);else{const T=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(T??this.document,t)}}_appendElement(t,n){const T=this.treeAdapter.createElement(t.tagName,n,t.attrs);this._attachElementToTree(T,t.location)}_insertElement(t,n){const T=this.treeAdapter.createElement(t.tagName,n,t.attrs);this._attachElementToTree(T,t.location),this.openElements.push(T,t.tagID)}_insertFakeElement(t,n){const T=this.treeAdapter.createElement(t,a.NS.HTML,[]);this._attachElementToTree(T,null),this.openElements.push(T,n)}_insertTemplate(t){const n=this.treeAdapter.createElement(t.tagName,a.NS.HTML,t.attrs),T=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(n,T),this._attachElementToTree(n,t.location),this.openElements.push(n,t.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(T,null)}_insertFakeRootElement(){const t=this.treeAdapter.createElement(a.TAG_NAMES.HTML,a.NS.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(t,null),this.treeAdapter.appendChild(this.openElements.current,t),this.openElements.push(t,a.TAG_ID.HTML)}_appendCommentNode(t,n){const T=this.treeAdapter.createCommentNode(t.data);this.treeAdapter.appendChild(n,T),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(T,t.location)}_insertCharacters(t){let n,T;if(this._shouldFosterParentOnInsertion()?({parent:n,beforeElement:T}=this._findFosterParentingLocation(),T?this.treeAdapter.insertTextBefore(n,t.chars,T):this.treeAdapter.insertText(n,t.chars)):(n=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(n,t.chars)),!t.location)return;const r=this.treeAdapter.getChildNodes(n),i=T?r.lastIndexOf(T):r.length,o=r[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(o)){const{endLine:S,endCol:w,endOffset:Ee}=t.location;this.treeAdapter.updateNodeSourceCodeLocation(o,{endLine:S,endCol:w,endOffset:Ee})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,t.location)}_adoptNodes(t,n){for(let T=this.treeAdapter.getFirstChild(t);T;T=this.treeAdapter.getFirstChild(t))this.treeAdapter.detachNode(T),this.treeAdapter.appendChild(n,T)}_setEndLocation(t,n){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&n.location){const T=n.location,r=this.treeAdapter.getTagName(t),i=n.type===c.TokenType.END_TAG&&r===n.tagName?{endTag:{...T},endLine:T.endLine,endCol:T.endCol,endOffset:T.endOffset}:{endLine:T.startLine,endCol:T.startCol,endOffset:T.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(t,i)}}shouldProcessStartTagTokenInForeignContent(t){if(!this.currentNotInHTML)return!1;let n,T;return this.openElements.stackTop===0&&this.fragmentContext?(n=this.fragmentContext,T=this.fragmentContextID):{current:n,currentTagId:T}=this.openElements,t.tagID===a.TAG_ID.SVG&&this.treeAdapter.getTagName(n)===a.TAG_NAMES.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(n)===a.NS.MATHML?!1:this.tokenizer.inForeignNode||(t.tagID===a.TAG_ID.MGLYPH||t.tagID===a.TAG_ID.MALIGNMARK)&&T!==void 0&&!this._isIntegrationPoint(T,n,a.NS.HTML)}_processToken(t){switch(t.type){case c.TokenType.CHARACTER:{this.onCharacter(t);break}case c.TokenType.NULL_CHARACTER:{this.onNullCharacter(t);break}case c.TokenType.COMMENT:{this.onComment(t);break}case c.TokenType.DOCTYPE:{this.onDoctype(t);break}case c.TokenType.START_TAG:{this._processStartTag(t);break}case c.TokenType.END_TAG:{this.onEndTag(t);break}case c.TokenType.EOF:{this.onEof(t);break}case c.TokenType.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(t);break}}}_isIntegrationPoint(t,n,T){const r=this.treeAdapter.getNamespaceURI(n),i=this.treeAdapter.getAttrList(n);return l.isIntegrationPoint(t,r,i,T)}_reconstructActiveFormattingElements(){const t=this.activeFormattingElements.entries.length;if(t){const n=this.activeFormattingElements.entries.findIndex(r=>r.type===v.EntryType.Marker||this.openElements.contains(r.element)),T=n===-1?t-1:n-1;for(let r=T;r>=0;r--){const i=this.activeFormattingElements.entries[r];this._insertElement(i.token,this.treeAdapter.getNamespaceURI(i.element)),i.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=s.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(a.TAG_ID.P),this.openElements.popUntilTagNamePopped(a.TAG_ID.P)}_resetInsertionMode(){for(let t=this.openElements.stackTop;t>=0;t--)switch(t===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[t]){case a.TAG_ID.TR:{this.insertionMode=s.IN_ROW;return}case a.TAG_ID.TBODY:case a.TAG_ID.THEAD:case a.TAG_ID.TFOOT:{this.insertionMode=s.IN_TABLE_BODY;return}case a.TAG_ID.CAPTION:{this.insertionMode=s.IN_CAPTION;return}case a.TAG_ID.COLGROUP:{this.insertionMode=s.IN_COLUMN_GROUP;return}case a.TAG_ID.TABLE:{this.insertionMode=s.IN_TABLE;return}case a.TAG_ID.BODY:{this.insertionMode=s.IN_BODY;return}case a.TAG_ID.FRAMESET:{this.insertionMode=s.IN_FRAMESET;return}case a.TAG_ID.SELECT:{this._resetInsertionModeForSelect(t);return}case a.TAG_ID.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case a.TAG_ID.HTML:{this.insertionMode=this.headElement?s.AFTER_HEAD:s.BEFORE_HEAD;return}case a.TAG_ID.TD:case a.TAG_ID.TH:{if(t>0){this.insertionMode=s.IN_CELL;return}break}case a.TAG_ID.HEAD:{if(t>0){this.insertionMode=s.IN_HEAD;return}break}}this.insertionMode=s.IN_BODY}_resetInsertionModeForSelect(t){if(t>0)for(let n=t-1;n>0;n--){const T=this.openElements.tagIDs[n];if(T===a.TAG_ID.TEMPLATE)break;if(T===a.TAG_ID.TABLE){this.insertionMode=s.IN_SELECT_IN_TABLE;return}}this.insertionMode=s.IN_SELECT}_isElementCausesFosterParenting(t){return j.has(t)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this.openElements.currentTagId!==void 0&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let t=this.openElements.stackTop;t>=0;t--){const n=this.openElements.items[t];switch(this.openElements.tagIDs[t]){case a.TAG_ID.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(n)===a.NS.HTML)return{parent:this.treeAdapter.getTemplateContent(n),beforeElement:null};break}case a.TAG_ID.TABLE:{const T=this.treeAdapter.getParentNode(n);return T?{parent:T,beforeElement:n}:{parent:this.openElements.items[t-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(t){const n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertBefore(n.parent,t,n.beforeElement):this.treeAdapter.appendChild(n.parent,t)}_isSpecialElement(t,n){const T=this.treeAdapter.getNamespaceURI(t);return a.SPECIAL_ELEMENTS[T].has(n)}onCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){Vt(this,t);return}switch(this.insertionMode){case s.INITIAL:{G(this,t);break}case s.BEFORE_HTML:{N(this,t);break}case s.BEFORE_HEAD:{f(this,t);break}case s.IN_HEAD:{g(this,t);break}case s.IN_HEAD_NO_SCRIPT:{u(this,t);break}case s.AFTER_HEAD:{L(this,t);break}case s.IN_BODY:case s.IN_CAPTION:case s.IN_CELL:case s.IN_TEMPLATE:{Q(this,t);break}case s.TEXT:case s.IN_SELECT:case s.IN_SELECT_IN_TABLE:{this._insertCharacters(t);break}case s.IN_TABLE:case s.IN_TABLE_BODY:case s.IN_ROW:{H(this,t);break}case s.IN_TABLE_TEXT:{ae(this,t);break}case s.IN_COLUMN_GROUP:{M(this,t);break}case s.AFTER_BODY:{b(this,t);break}case s.AFTER_AFTER_BODY:{C(this,t);break}}}onNullCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){Kt(this,t);return}switch(this.insertionMode){case s.INITIAL:{G(this,t);break}case s.BEFORE_HTML:{N(this,t);break}case s.BEFORE_HEAD:{f(this,t);break}case s.IN_HEAD:{g(this,t);break}case s.IN_HEAD_NO_SCRIPT:{u(this,t);break}case s.AFTER_HEAD:{L(this,t);break}case s.TEXT:{this._insertCharacters(t);break}case s.IN_TABLE:case s.IN_TABLE_BODY:case s.IN_ROW:{H(this,t);break}case s.IN_COLUMN_GROUP:{M(this,t);break}case s.AFTER_BODY:{b(this,t);break}case s.AFTER_AFTER_BODY:{C(this,t);break}}}onComment(t){if(this.skipNextNewLine=!1,this.currentNotInHTML){U(this,t);return}switch(this.insertionMode){case s.INITIAL:case s.BEFORE_HTML:case s.BEFORE_HEAD:case s.IN_HEAD:case s.IN_HEAD_NO_SCRIPT:case s.AFTER_HEAD:case s.IN_BODY:case s.IN_TABLE:case s.IN_CAPTION:case s.IN_COLUMN_GROUP:case s.IN_TABLE_BODY:case s.IN_ROW:case s.IN_CELL:case s.IN_SELECT:case s.IN_SELECT_IN_TABLE:case s.IN_TEMPLATE:case s.IN_FRAMESET:case s.AFTER_FRAMESET:{U(this,t);break}case s.IN_TABLE_TEXT:{h(this,t);break}case s.AFTER_BODY:{Le(this,t);break}case s.AFTER_AFTER_BODY:case s.AFTER_AFTER_FRAMESET:{Oe(this,t);break}}}onDoctype(t){switch(this.skipNextNewLine=!1,this.insertionMode){case s.INITIAL:{Re(this,t);break}case s.BEFORE_HEAD:case s.IN_HEAD:case s.IN_HEAD_NO_SCRIPT:case s.AFTER_HEAD:{this._err(t,E.ERR.misplacedDoctype);break}case s.IN_TABLE_TEXT:{h(this,t);break}}}onStartTag(t){this.skipNextNewLine=!1,this.currentToken=t,this._processStartTag(t),t.selfClosing&&!t.ackSelfClosing&&this._err(t,E.ERR.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(t){this.shouldProcessStartTagTokenInForeignContent(t)?jt(this,t):this._startTagOutsideForeignContent(t)}_startTagOutsideForeignContent(t){switch(this.insertionMode){case s.INITIAL:{G(this,t);break}case s.BEFORE_HTML:{Se(this,t);break}case s.BEFORE_HEAD:{Me(this,t);break}case s.IN_HEAD:{_(this,t);break}case s.IN_HEAD_NO_SCRIPT:{Pe(this,t);break}case s.AFTER_HEAD:{pe(this,t);break}case s.IN_BODY:{I(this,t);break}case s.IN_TABLE:{d(this,t);break}case s.IN_TABLE_TEXT:{h(this,t);break}case s.IN_CAPTION:{bt(this,t);break}case s.IN_COLUMN_GROUP:{x(this,t);break}case s.IN_TABLE_BODY:{F(this,t);break}case s.IN_ROW:{p(this,t);break}case s.IN_CELL:{Ft(this,t);break}case s.IN_SELECT:{Te(this,t);break}case s.IN_SELECT_IN_TABLE:{Ht(this,t);break}case s.IN_TEMPLATE:{yt(this,t);break}case s.AFTER_BODY:{Yt(this,t);break}case s.IN_FRAMESET:{xt(this,t);break}case s.AFTER_FRAMESET:{vt(this,t);break}case s.AFTER_AFTER_BODY:{Xt(this,t);break}case s.AFTER_AFTER_FRAMESET:{zt(this,t);break}}}onEndTag(t){this.skipNextNewLine=!1,this.currentToken=t,this.currentNotInHTML?qt(this,t):this._endTagOutsideForeignContent(t)}_endTagOutsideForeignContent(t){switch(this.insertionMode){case s.INITIAL:{G(this,t);break}case s.BEFORE_HTML:{Ce(this,t);break}case s.BEFORE_HEAD:{be(this,t);break}case s.IN_HEAD:{Be(this,t);break}case s.IN_HEAD_NO_SCRIPT:{Fe(this,t);break}case s.AFTER_HEAD:{He(this,t);break}case s.IN_BODY:{P(this,t);break}case s.TEXT:{Nt(this,t);break}case s.IN_TABLE:{O(this,t);break}case s.IN_TABLE_TEXT:{h(this,t);break}case s.IN_CAPTION:{Bt(this,t);break}case s.IN_COLUMN_GROUP:{Pt(this,t);break}case s.IN_TABLE_BODY:{y(this,t);break}case s.IN_ROW:{ne(this,t);break}case s.IN_CELL:{pt(this,t);break}case s.IN_SELECT:{re(this,t);break}case s.IN_SELECT_IN_TABLE:{Ut(this,t);break}case s.IN_TEMPLATE:{kt(this,t);break}case s.AFTER_BODY:{oe(this,t);break}case s.IN_FRAMESET:{wt(this,t);break}case s.AFTER_FRAMESET:{Wt(this,t);break}case s.AFTER_AFTER_BODY:{C(this,t);break}}}onEof(t){switch(this.insertionMode){case s.INITIAL:{G(this,t);break}case s.BEFORE_HTML:{N(this,t);break}case s.BEFORE_HEAD:{f(this,t);break}case s.IN_HEAD:{g(this,t);break}case s.IN_HEAD_NO_SCRIPT:{u(this,t);break}case s.AFTER_HEAD:{L(this,t);break}case s.IN_BODY:case s.IN_TABLE:case s.IN_CAPTION:case s.IN_COLUMN_GROUP:case s.IN_TABLE_BODY:case s.IN_ROW:case s.IN_CELL:case s.IN_SELECT:case s.IN_SELECT_IN_TABLE:{ee(this,t);break}case s.TEXT:{ft(this,t);break}case s.IN_TABLE_TEXT:{h(this,t);break}case s.IN_TEMPLATE:{ie(this,t);break}case s.AFTER_BODY:case s.IN_FRAMESET:case s.AFTER_FRAMESET:case s.AFTER_AFTER_BODY:case s.AFTER_AFTER_FRAMESET:{Y(this,t);break}}}onWhitespaceCharacter(t){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.chars.charCodeAt(0)===V.CODE_POINTS.LINE_FEED)){if(t.chars.length===1)return;t.chars=t.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(t);return}switch(this.insertionMode){case s.IN_HEAD:case s.IN_HEAD_NO_SCRIPT:case s.AFTER_HEAD:case s.TEXT:case s.IN_COLUMN_GROUP:case s.IN_SELECT:case s.IN_SELECT_IN_TABLE:case s.IN_FRAMESET:case s.AFTER_FRAMESET:{this._insertCharacters(t);break}case s.IN_BODY:case s.IN_CAPTION:case s.IN_CELL:case s.IN_TEMPLATE:case s.AFTER_BODY:case s.AFTER_AFTER_BODY:case s.AFTER_AFTER_FRAMESET:{q(this,t);break}case s.IN_TABLE:case s.IN_TABLE_BODY:case s.IN_ROW:{H(this,t);break}case s.IN_TABLE_TEXT:{te(this,t);break}}}}function Ge(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagID)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):$(e,t),n}function he(e,t){let n=null,T=e.openElements.stackTop;for(;T>=0;T--){const r=e.openElements.items[T];if(r===t.element)break;e._isSpecialElement(r,e.openElements.tagIDs[T])&&(n=r)}return n||(e.openElements.shortenToLength(Math.max(T,0)),e.activeFormattingElements.removeEntry(t)),n}function Ne(e,t,n){let T=t,r=e.openElements.getCommonAncestor(t);for(let i=0,o=r;o!==n;i++,o=r){r=e.openElements.getCommonAncestor(o);const D=e.activeFormattingElements.getElementEntry(o),S=D&&i>=De;!D||S?(S&&e.activeFormattingElements.removeEntry(D),e.openElements.remove(o)):(o=fe(e,D),T===t&&(e.activeFormattingElements.bookmark=D),e.treeAdapter.detachNode(T),e.treeAdapter.appendChild(o,T),T=o)}return T}function fe(e,t){const n=e.treeAdapter.getNamespaceURI(t.element),T=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,T),t.element=T,T}function ge(e,t,n){const T=e.treeAdapter.getTagName(t),r=a.getTagID(T);if(e._isElementCausesFosterParenting(r))e._fosterParentElement(n);else{const i=e.treeAdapter.getNamespaceURI(t);r===a.TAG_ID.TEMPLATE&&i===a.NS.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function ue(e,t,n){const T=e.treeAdapter.getNamespaceURI(n.element),{token:r}=n,i=e.treeAdapter.createElement(r.tagName,T,r.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,r),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i,r.tagID)}function k(e,t){for(let n=0;n<le;n++){const T=Ge(e,t);if(!T)break;const r=he(e,T);if(!r)break;e.activeFormattingElements.bookmark=T;const i=Ne(e,r,T.element),o=e.openElements.getCommonAncestor(T.element);e.treeAdapter.detachNode(i),o&&ge(e,o,i),ue(e,r,T)}}function U(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function Le(e,t){e._appendCommentNode(t,e.openElements.items[0])}function Oe(e,t){e._appendCommentNode(t,e.document)}function Y(e,t){if(e.stopped=!0,t.location){const n=e.fragmentContext?0:2;for(let T=e.openElements.stackTop;T>=n;T--)e._setEndLocation(e.openElements.items[T],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const T=e.openElements.items[0],r=e.treeAdapter.getNodeSourceCodeLocation(T);if(r&&!r.endTag&&(e._setEndLocation(T,t),e.openElements.stackTop>=1)){const i=e.openElements.items[1],o=e.treeAdapter.getNodeSourceCodeLocation(i);o&&!o.endTag&&e._setEndLocation(i,t)}}}}function Re(e,t){e._setDocumentType(t);const n=t.forceQuirks?a.DOCUMENT_MODE.QUIRKS:W.getDocumentMode(t);W.isConforming(t)||e._err(t,E.ERR.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=s.BEFORE_HTML}function G(e,t){e._err(t,E.ERR.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,a.DOCUMENT_MODE.QUIRKS),e.insertionMode=s.BEFORE_HTML,e._processToken(t)}function Se(e,t){t.tagID===a.TAG_ID.HTML?(e._insertElement(t,a.NS.HTML),e.insertionMode=s.BEFORE_HEAD):N(e,t)}function Ce(e,t){const n=t.tagID;(n===a.TAG_ID.HTML||n===a.TAG_ID.HEAD||n===a.TAG_ID.BODY||n===a.TAG_ID.BR)&&N(e,t)}function N(e,t){e._insertFakeRootElement(),e.insertionMode=s.BEFORE_HEAD,e._processToken(t)}function Me(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.HEAD:{e._insertElement(t,a.NS.HTML),e.headElement=e.openElements.current,e.insertionMode=s.IN_HEAD;break}default:f(e,t)}}function be(e,t){const n=t.tagID;n===a.TAG_ID.HEAD||n===a.TAG_ID.BODY||n===a.TAG_ID.HTML||n===a.TAG_ID.BR?f(e,t):e._err(t,E.ERR.endTagWithoutMatchingOpenElement)}function f(e,t){e._insertFakeElement(a.TAG_NAMES.HEAD,a.TAG_ID.HEAD),e.headElement=e.openElements.current,e.insertionMode=s.IN_HEAD,e._processToken(t)}function _(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.BASE:case a.TAG_ID.BASEFONT:case a.TAG_ID.BGSOUND:case a.TAG_ID.LINK:case a.TAG_ID.META:{e._appendElement(t,a.NS.HTML),t.ackSelfClosing=!0;break}case a.TAG_ID.TITLE:{e._switchToTextParsing(t,A.TokenizerMode.RCDATA);break}case a.TAG_ID.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(t,A.TokenizerMode.RAWTEXT):(e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_HEAD_NO_SCRIPT);break}case a.TAG_ID.NOFRAMES:case a.TAG_ID.STYLE:{e._switchToTextParsing(t,A.TokenizerMode.RAWTEXT);break}case a.TAG_ID.SCRIPT:{e._switchToTextParsing(t,A.TokenizerMode.SCRIPT_DATA);break}case a.TAG_ID.TEMPLATE:{e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=s.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(s.IN_TEMPLATE);break}case a.TAG_ID.HEAD:{e._err(t,E.ERR.misplacedStartTagForHeadElement);break}default:g(e,t)}}function Be(e,t){switch(t.tagID){case a.TAG_ID.HEAD:{e.openElements.pop(),e.insertionMode=s.AFTER_HEAD;break}case a.TAG_ID.BODY:case a.TAG_ID.BR:case a.TAG_ID.HTML:{g(e,t);break}case a.TAG_ID.TEMPLATE:{m(e,t);break}default:e._err(t,E.ERR.endTagWithoutMatchingOpenElement)}}function m(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==a.TAG_ID.TEMPLATE&&e._err(t,E.ERR.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(a.TAG_ID.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,E.ERR.endTagWithoutMatchingOpenElement)}function g(e,t){e.openElements.pop(),e.insertionMode=s.AFTER_HEAD,e._processToken(t)}function Pe(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.BASEFONT:case a.TAG_ID.BGSOUND:case a.TAG_ID.HEAD:case a.TAG_ID.LINK:case a.TAG_ID.META:case a.TAG_ID.NOFRAMES:case a.TAG_ID.STYLE:{_(e,t);break}case a.TAG_ID.NOSCRIPT:{e._err(t,E.ERR.nestedNoscriptInHead);break}default:u(e,t)}}function Fe(e,t){switch(t.tagID){case a.TAG_ID.NOSCRIPT:{e.openElements.pop(),e.insertionMode=s.IN_HEAD;break}case a.TAG_ID.BR:{u(e,t);break}default:e._err(t,E.ERR.endTagWithoutMatchingOpenElement)}}function u(e,t){const n=t.type===c.TokenType.EOF?E.ERR.openElementsLeftAfterEof:E.ERR.disallowedContentInNoscriptInHead;e._err(t,n),e.openElements.pop(),e.insertionMode=s.IN_HEAD,e._processToken(t)}function pe(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.BODY:{e._insertElement(t,a.NS.HTML),e.framesetOk=!1,e.insertionMode=s.IN_BODY;break}case a.TAG_ID.FRAMESET:{e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_FRAMESET;break}case a.TAG_ID.BASE:case a.TAG_ID.BASEFONT:case a.TAG_ID.BGSOUND:case a.TAG_ID.LINK:case a.TAG_ID.META:case a.TAG_ID.NOFRAMES:case a.TAG_ID.SCRIPT:case a.TAG_ID.STYLE:case a.TAG_ID.TEMPLATE:case a.TAG_ID.TITLE:{e._err(t,E.ERR.abandonedHeadElementChild),e.openElements.push(e.headElement,a.TAG_ID.HEAD),_(e,t),e.openElements.remove(e.headElement);break}case a.TAG_ID.HEAD:{e._err(t,E.ERR.misplacedStartTagForHeadElement);break}default:L(e,t)}}function He(e,t){switch(t.tagID){case a.TAG_ID.BODY:case a.TAG_ID.HTML:case a.TAG_ID.BR:{L(e,t);break}case a.TAG_ID.TEMPLATE:{m(e,t);break}default:e._err(t,E.ERR.endTagWithoutMatchingOpenElement)}}function L(e,t){e._insertFakeElement(a.TAG_NAMES.BODY,a.TAG_ID.BODY),e.insertionMode=s.IN_BODY,B(e,t)}function B(e,t){switch(t.type){case c.TokenType.CHARACTER:{Q(e,t);break}case c.TokenType.WHITESPACE_CHARACTER:{q(e,t);break}case c.TokenType.COMMENT:{U(e,t);break}case c.TokenType.START_TAG:{I(e,t);break}case c.TokenType.END_TAG:{P(e,t);break}case c.TokenType.EOF:{ee(e,t);break}}}function q(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function Q(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function Ue(e,t){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function ye(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}function ke(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_FRAMESET)}function Ye(e,t){e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._insertElement(t,a.NS.HTML)}function xe(e,t){e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e.openElements.currentTagId!==void 0&&a.NUMBERED_HEADERS.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,a.NS.HTML)}function we(e,t){e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._insertElement(t,a.NS.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function ve(e,t){const n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._insertElement(t,a.NS.HTML),n||(e.formElement=e.openElements.current))}function We(e,t){e.framesetOk=!1;const n=t.tagID;for(let T=e.openElements.stackTop;T>=0;T--){const r=e.openElements.tagIDs[T];if(n===a.TAG_ID.LI&&r===a.TAG_ID.LI||(n===a.TAG_ID.DD||n===a.TAG_ID.DT)&&(r===a.TAG_ID.DD||r===a.TAG_ID.DT)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r);break}if(r!==a.TAG_ID.ADDRESS&&r!==a.TAG_ID.DIV&&r!==a.TAG_ID.P&&e._isSpecialElement(e.openElements.items[T],r))break}e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._insertElement(t,a.NS.HTML)}function Xe(e,t){e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._insertElement(t,a.NS.HTML),e.tokenizer.state=A.TokenizerMode.PLAINTEXT}function ze(e,t){e.openElements.hasInScope(a.TAG_ID.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(a.TAG_ID.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.HTML),e.framesetOk=!1}function Ke(e,t){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(a.TAG_NAMES.A);n&&(k(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function Ve(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function je(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(a.TAG_ID.NOBR)&&(k(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,a.NS.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function qe(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function Qe(e,t){e.treeAdapter.getDocumentMode(e.document)!==a.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._insertElement(t,a.NS.HTML),e.framesetOk=!1,e.insertionMode=s.IN_TABLE}function J(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,a.NS.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function Z(e){const t=c.getTokenAttr(e,a.ATTRS.TYPE);return t!=null&&t.toLowerCase()===_e}function Je(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,a.NS.HTML),Z(t)||(e.framesetOk=!1),t.ackSelfClosing=!0}function Ze(e,t){e._appendElement(t,a.NS.HTML),t.ackSelfClosing=!0}function $e(e,t){e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._appendElement(t,a.NS.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function et(e,t){t.tagName=a.TAG_NAMES.IMG,t.tagID=a.TAG_ID.IMG,J(e,t)}function tt(e,t){e._insertElement(t,a.NS.HTML),e.skipNextNewLine=!0,e.tokenizer.state=A.TokenizerMode.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=s.TEXT}function at(e,t){e.openElements.hasInButtonScope(a.TAG_ID.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,A.TokenizerMode.RAWTEXT)}function st(e,t){e.framesetOk=!1,e._switchToTextParsing(t,A.TokenizerMode.RAWTEXT)}function z(e,t){e._switchToTextParsing(t,A.TokenizerMode.RAWTEXT)}function nt(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.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}function Tt(e,t){e.openElements.currentTagId===a.TAG_ID.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.HTML)}function rt(e,t){e.openElements.hasInScope(a.TAG_ID.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,a.NS.HTML)}function it(e,t){e.openElements.hasInScope(a.TAG_ID.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(a.TAG_ID.RTC),e._insertElement(t,a.NS.HTML)}function ot(e,t){e._reconstructActiveFormattingElements(),l.adjustTokenMathMLAttrs(t),l.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,a.NS.MATHML):e._insertElement(t,a.NS.MATHML),t.ackSelfClosing=!0}function ct(e,t){e._reconstructActiveFormattingElements(),l.adjustTokenSVGAttrs(t),l.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,a.NS.SVG):e._insertElement(t,a.NS.SVG),t.ackSelfClosing=!0}function K(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,a.NS.HTML)}function I(e,t){switch(t.tagID){case a.TAG_ID.I:case a.TAG_ID.S:case a.TAG_ID.B:case a.TAG_ID.U:case a.TAG_ID.EM:case a.TAG_ID.TT:case a.TAG_ID.BIG:case a.TAG_ID.CODE:case a.TAG_ID.FONT:case a.TAG_ID.SMALL:case a.TAG_ID.STRIKE:case a.TAG_ID.STRONG:{Ve(e,t);break}case a.TAG_ID.A:{Ke(e,t);break}case a.TAG_ID.H1:case a.TAG_ID.H2:case a.TAG_ID.H3:case a.TAG_ID.H4:case a.TAG_ID.H5:case a.TAG_ID.H6:{xe(e,t);break}case a.TAG_ID.P:case a.TAG_ID.DL:case a.TAG_ID.OL:case a.TAG_ID.UL:case a.TAG_ID.DIV:case a.TAG_ID.DIR:case a.TAG_ID.NAV:case a.TAG_ID.MAIN:case a.TAG_ID.MENU:case a.TAG_ID.ASIDE:case a.TAG_ID.CENTER:case a.TAG_ID.FIGURE:case a.TAG_ID.FOOTER:case a.TAG_ID.HEADER:case a.TAG_ID.HGROUP:case a.TAG_ID.DIALOG:case a.TAG_ID.DETAILS:case a.TAG_ID.ADDRESS:case a.TAG_ID.ARTICLE:case a.TAG_ID.SEARCH:case a.TAG_ID.SECTION:case a.TAG_ID.SUMMARY:case a.TAG_ID.FIELDSET:case a.TAG_ID.BLOCKQUOTE:case a.TAG_ID.FIGCAPTION:{Ye(e,t);break}case a.TAG_ID.LI:case a.TAG_ID.DD:case a.TAG_ID.DT:{We(e,t);break}case a.TAG_ID.BR:case a.TAG_ID.IMG:case a.TAG_ID.WBR:case a.TAG_ID.AREA:case a.TAG_ID.EMBED:case a.TAG_ID.KEYGEN:{J(e,t);break}case a.TAG_ID.HR:{$e(e,t);break}case a.TAG_ID.RB:case a.TAG_ID.RTC:{rt(e,t);break}case a.TAG_ID.RT:case a.TAG_ID.RP:{it(e,t);break}case a.TAG_ID.PRE:case a.TAG_ID.LISTING:{we(e,t);break}case a.TAG_ID.XMP:{at(e,t);break}case a.TAG_ID.SVG:{ct(e,t);break}case a.TAG_ID.HTML:{Ue(e,t);break}case a.TAG_ID.BASE:case a.TAG_ID.LINK:case a.TAG_ID.META:case a.TAG_ID.STYLE:case a.TAG_ID.TITLE:case a.TAG_ID.SCRIPT:case a.TAG_ID.BGSOUND:case a.TAG_ID.BASEFONT:case a.TAG_ID.TEMPLATE:{_(e,t);break}case a.TAG_ID.BODY:{ye(e,t);break}case a.TAG_ID.FORM:{ve(e,t);break}case a.TAG_ID.NOBR:{je(e,t);break}case a.TAG_ID.MATH:{ot(e,t);break}case a.TAG_ID.TABLE:{Qe(e,t);break}case a.TAG_ID.INPUT:{Je(e,t);break}case a.TAG_ID.PARAM:case a.TAG_ID.TRACK:case a.TAG_ID.SOURCE:{Ze(e,t);break}case a.TAG_ID.IMAGE:{et(e,t);break}case a.TAG_ID.BUTTON:{ze(e,t);break}case a.TAG_ID.APPLET:case a.TAG_ID.OBJECT:case a.TAG_ID.MARQUEE:{qe(e,t);break}case a.TAG_ID.IFRAME:{st(e,t);break}case a.TAG_ID.SELECT:{nt(e,t);break}case a.TAG_ID.OPTION:case a.TAG_ID.OPTGROUP:{Tt(e,t);break}case a.TAG_ID.NOEMBED:case a.TAG_ID.NOFRAMES:{z(e,t);break}case a.TAG_ID.FRAMESET:{ke(e,t);break}case a.TAG_ID.TEXTAREA:{tt(e,t);break}case a.TAG_ID.NOSCRIPT:{e.options.scriptingEnabled?z(e,t):K(e,t);break}case a.TAG_ID.PLAINTEXT:{Xe(e,t);break}case a.TAG_ID.COL:case a.TAG_ID.TH:case a.TAG_ID.TD:case a.TAG_ID.TR:case a.TAG_ID.HEAD:case a.TAG_ID.FRAME:case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:case a.TAG_ID.CAPTION:case a.TAG_ID.COLGROUP:break;default:K(e,t)}}function Et(e,t){if(e.openElements.hasInScope(a.TAG_ID.BODY)&&(e.insertionMode=s.AFTER_BODY,e.options.sourceCodeLocationInfo)){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,t)}}function It(e,t){e.openElements.hasInScope(a.TAG_ID.BODY)&&(e.insertionMode=s.AFTER_BODY,oe(e,t))}function At(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function _t(e){const t=e.openElements.tmplCount>0,{formElement:n}=e;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(a.TAG_ID.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(a.TAG_ID.FORM):n&&e.openElements.remove(n))}function lt(e){e.openElements.hasInButtonScope(a.TAG_ID.P)||e._insertFakeElement(a.TAG_NAMES.P,a.TAG_ID.P),e._closePElement()}function Dt(e){e.openElements.hasInListItemScope(a.TAG_ID.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(a.TAG_ID.LI),e.openElements.popUntilTagNamePopped(a.TAG_ID.LI))}function mt(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function dt(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function Gt(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function ht(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(a.TAG_NAMES.BR,a.TAG_ID.BR),e.openElements.pop(),e.framesetOk=!1}function $(e,t){const n=t.tagName,T=t.tagID;for(let r=e.openElements.stackTop;r>0;r--){const i=e.openElements.items[r],o=e.openElements.tagIDs[r];if(T===o&&(T!==a.TAG_ID.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(T),e.openElements.stackTop>=r&&e.openElements.shortenToLength(r);break}if(e._isSpecialElement(i,o))break}}function P(e,t){switch(t.tagID){case a.TAG_ID.A:case a.TAG_ID.B:case a.TAG_ID.I:case a.TAG_ID.S:case a.TAG_ID.U:case a.TAG_ID.EM:case a.TAG_ID.TT:case a.TAG_ID.BIG:case a.TAG_ID.CODE:case a.TAG_ID.FONT:case a.TAG_ID.NOBR:case a.TAG_ID.SMALL:case a.TAG_ID.STRIKE:case a.TAG_ID.STRONG:{k(e,t);break}case a.TAG_ID.P:{lt(e);break}case a.TAG_ID.DL:case a.TAG_ID.UL:case a.TAG_ID.OL:case a.TAG_ID.DIR:case a.TAG_ID.DIV:case a.TAG_ID.NAV:case a.TAG_ID.PRE:case a.TAG_ID.MAIN:case a.TAG_ID.MENU:case a.TAG_ID.ASIDE:case a.TAG_ID.BUTTON:case a.TAG_ID.CENTER:case a.TAG_ID.FIGURE:case a.TAG_ID.FOOTER:case a.TAG_ID.HEADER:case a.TAG_ID.HGROUP:case a.TAG_ID.DIALOG:case a.TAG_ID.ADDRESS:case a.TAG_ID.ARTICLE:case a.TAG_ID.DETAILS:case a.TAG_ID.SEARCH:case a.TAG_ID.SECTION:case a.TAG_ID.SUMMARY:case a.TAG_ID.LISTING:case a.TAG_ID.FIELDSET:case a.TAG_ID.BLOCKQUOTE:case a.TAG_ID.FIGCAPTION:{At(e,t);break}case a.TAG_ID.LI:{Dt(e);break}case a.TAG_ID.DD:case a.TAG_ID.DT:{mt(e,t);break}case a.TAG_ID.H1:case a.TAG_ID.H2:case a.TAG_ID.H3:case a.TAG_ID.H4:case a.TAG_ID.H5:case a.TAG_ID.H6:{dt(e);break}case a.TAG_ID.BR:{ht(e);break}case a.TAG_ID.BODY:{Et(e,t);break}case a.TAG_ID.HTML:{It(e,t);break}case a.TAG_ID.FORM:{_t(e);break}case a.TAG_ID.APPLET:case a.TAG_ID.OBJECT:case a.TAG_ID.MARQUEE:{Gt(e,t);break}case a.TAG_ID.TEMPLATE:{m(e,t);break}default:$(e,t)}}function ee(e,t){e.tmplInsertionModeStack.length>0?ie(e,t):Y(e,t)}function Nt(e,t){var n;t.tagID===a.TAG_ID.SCRIPT&&((n=e.scriptHandler)===null||n===void 0||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function ft(e,t){e._err(t,E.ERR.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)}function H(e,t){if(e.openElements.currentTagId!==void 0&&j.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=s.IN_TABLE_TEXT,t.type){case c.TokenType.CHARACTER:{ae(e,t);break}case c.TokenType.WHITESPACE_CHARACTER:{te(e,t);break}}else R(e,t)}function gt(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_CAPTION}function ut(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_COLUMN_GROUP}function Lt(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(a.TAG_NAMES.COLGROUP,a.TAG_ID.COLGROUP),e.insertionMode=s.IN_COLUMN_GROUP,x(e,t)}function Ot(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_TABLE_BODY}function Rt(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(a.TAG_NAMES.TBODY,a.TAG_ID.TBODY),e.insertionMode=s.IN_TABLE_BODY,F(e,t)}function St(e,t){e.openElements.hasInTableScope(a.TAG_ID.TABLE)&&(e.openElements.popUntilTagNamePopped(a.TAG_ID.TABLE),e._resetInsertionMode(),e._processStartTag(t))}function Ct(e,t){Z(t)?e._appendElement(t,a.NS.HTML):R(e,t),t.ackSelfClosing=!0}function Mt(e,t){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(t,a.NS.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function d(e,t){switch(t.tagID){case a.TAG_ID.TD:case a.TAG_ID.TH:case a.TAG_ID.TR:{Rt(e,t);break}case a.TAG_ID.STYLE:case a.TAG_ID.SCRIPT:case a.TAG_ID.TEMPLATE:{_(e,t);break}case a.TAG_ID.COL:{Lt(e,t);break}case a.TAG_ID.FORM:{Mt(e,t);break}case a.TAG_ID.TABLE:{St(e,t);break}case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:{Ot(e,t);break}case a.TAG_ID.INPUT:{Ct(e,t);break}case a.TAG_ID.CAPTION:{gt(e,t);break}case a.TAG_ID.COLGROUP:{ut(e,t);break}default:R(e,t)}}function O(e,t){switch(t.tagID){case a.TAG_ID.TABLE:{e.openElements.hasInTableScope(a.TAG_ID.TABLE)&&(e.openElements.popUntilTagNamePopped(a.TAG_ID.TABLE),e._resetInsertionMode());break}case a.TAG_ID.TEMPLATE:{m(e,t);break}case a.TAG_ID.BODY:case a.TAG_ID.CAPTION:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.HTML:case a.TAG_ID.TBODY:case a.TAG_ID.TD:case a.TAG_ID.TFOOT:case a.TAG_ID.TH:case a.TAG_ID.THEAD:case a.TAG_ID.TR:break;default:R(e,t)}}function R(e,t){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,B(e,t),e.fosterParentingEnabled=n}function te(e,t){e.pendingCharacterTokens.push(t)}function ae(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function h(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)R(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)}const se=new Set([a.TAG_ID.CAPTION,a.TAG_ID.COL,a.TAG_ID.COLGROUP,a.TAG_ID.TBODY,a.TAG_ID.TD,a.TAG_ID.TFOOT,a.TAG_ID.TH,a.TAG_ID.THEAD,a.TAG_ID.TR]);function bt(e,t){const n=t.tagID;se.has(n)?e.openElements.hasInTableScope(a.TAG_ID.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(a.TAG_ID.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=s.IN_TABLE,d(e,t)):I(e,t)}function Bt(e,t){const n=t.tagID;switch(n){case a.TAG_ID.CAPTION:case a.TAG_ID.TABLE:{e.openElements.hasInTableScope(a.TAG_ID.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(a.TAG_ID.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=s.IN_TABLE,n===a.TAG_ID.TABLE&&O(e,t));break}case a.TAG_ID.BODY:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.HTML:case a.TAG_ID.TBODY:case a.TAG_ID.TD:case a.TAG_ID.TFOOT:case a.TAG_ID.TH:case a.TAG_ID.THEAD:case a.TAG_ID.TR:break;default:P(e,t)}}function x(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.COL:{e._appendElement(t,a.NS.HTML),t.ackSelfClosing=!0;break}case a.TAG_ID.TEMPLATE:{_(e,t);break}default:M(e,t)}}function Pt(e,t){switch(t.tagID){case a.TAG_ID.COLGROUP:{e.openElements.currentTagId===a.TAG_ID.COLGROUP&&(e.openElements.pop(),e.insertionMode=s.IN_TABLE);break}case a.TAG_ID.TEMPLATE:{m(e,t);break}case a.TAG_ID.COL:break;default:M(e,t)}}function M(e,t){e.openElements.currentTagId===a.TAG_ID.COLGROUP&&(e.openElements.pop(),e.insertionMode=s.IN_TABLE,e._processToken(t))}function F(e,t){switch(t.tagID){case a.TAG_ID.TR:{e.openElements.clearBackToTableBodyContext(),e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_ROW;break}case a.TAG_ID.TH:case a.TAG_ID.TD:{e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(a.TAG_NAMES.TR,a.TAG_ID.TR),e.insertionMode=s.IN_ROW,p(e,t);break}case a.TAG_ID.CAPTION:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE,d(e,t));break}default:d(e,t)}}function y(e,t){const n=t.tagID;switch(t.tagID){case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:{e.openElements.hasInTableScope(n)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE);break}case a.TAG_ID.TABLE:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE,O(e,t));break}case a.TAG_ID.BODY:case a.TAG_ID.CAPTION:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.HTML:case a.TAG_ID.TD:case a.TAG_ID.TH:case a.TAG_ID.TR:break;default:O(e,t)}}function p(e,t){switch(t.tagID){case a.TAG_ID.TH:case a.TAG_ID.TD:{e.openElements.clearBackToTableRowContext(),e._insertElement(t,a.NS.HTML),e.insertionMode=s.IN_CELL,e.activeFormattingElements.insertMarker();break}case a.TAG_ID.CAPTION:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:case a.TAG_ID.TR:{e.openElements.hasInTableScope(a.TAG_ID.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE_BODY,F(e,t));break}default:d(e,t)}}function ne(e,t){switch(t.tagID){case a.TAG_ID.TR:{e.openElements.hasInTableScope(a.TAG_ID.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE_BODY);break}case a.TAG_ID.TABLE:{e.openElements.hasInTableScope(a.TAG_ID.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE_BODY,y(e,t));break}case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:{(e.openElements.hasInTableScope(t.tagID)||e.openElements.hasInTableScope(a.TAG_ID.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=s.IN_TABLE_BODY,y(e,t));break}case a.TAG_ID.BODY:case a.TAG_ID.CAPTION:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.HTML:case a.TAG_ID.TD:case a.TAG_ID.TH:break;default:O(e,t)}}function Ft(e,t){const n=t.tagID;se.has(n)?(e.openElements.hasInTableScope(a.TAG_ID.TD)||e.openElements.hasInTableScope(a.TAG_ID.TH))&&(e._closeTableCell(),p(e,t)):I(e,t)}function pt(e,t){const n=t.tagID;switch(n){case a.TAG_ID.TD:case a.TAG_ID.TH:{e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=s.IN_ROW);break}case a.TAG_ID.TABLE:case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:case a.TAG_ID.TR:{e.openElements.hasInTableScope(n)&&(e._closeTableCell(),ne(e,t));break}case a.TAG_ID.BODY:case a.TAG_ID.CAPTION:case a.TAG_ID.COL:case a.TAG_ID.COLGROUP:case a.TAG_ID.HTML:break;default:P(e,t)}}function Te(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.OPTION:{e.openElements.currentTagId===a.TAG_ID.OPTION&&e.openElements.pop(),e._insertElement(t,a.NS.HTML);break}case a.TAG_ID.OPTGROUP:{e.openElements.currentTagId===a.TAG_ID.OPTION&&e.openElements.pop(),e.openElements.currentTagId===a.TAG_ID.OPTGROUP&&e.openElements.pop(),e._insertElement(t,a.NS.HTML);break}case a.TAG_ID.HR:{e.openElements.currentTagId===a.TAG_ID.OPTION&&e.openElements.pop(),e.openElements.currentTagId===a.TAG_ID.OPTGROUP&&e.openElements.pop(),e._appendElement(t,a.NS.HTML),t.ackSelfClosing=!0;break}case a.TAG_ID.INPUT:case a.TAG_ID.KEYGEN:case a.TAG_ID.TEXTAREA:case a.TAG_ID.SELECT:{e.openElements.hasInSelectScope(a.TAG_ID.SELECT)&&(e.openElements.popUntilTagNamePopped(a.TAG_ID.SELECT),e._resetInsertionMode(),t.tagID!==a.TAG_ID.SELECT&&e._processStartTag(t));break}case a.TAG_ID.SCRIPT:case a.TAG_ID.TEMPLATE:{_(e,t);break}}}function re(e,t){switch(t.tagID){case a.TAG_ID.OPTGROUP:{e.openElements.stackTop>0&&e.openElements.currentTagId===a.TAG_ID.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===a.TAG_ID.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===a.TAG_ID.OPTGROUP&&e.openElements.pop();break}case a.TAG_ID.OPTION:{e.openElements.currentTagId===a.TAG_ID.OPTION&&e.openElements.pop();break}case a.TAG_ID.SELECT:{e.openElements.hasInSelectScope(a.TAG_ID.SELECT)&&(e.openElements.popUntilTagNamePopped(a.TAG_ID.SELECT),e._resetInsertionMode());break}case a.TAG_ID.TEMPLATE:{m(e,t);break}}}function Ht(e,t){const n=t.tagID;n===a.TAG_ID.CAPTION||n===a.TAG_ID.TABLE||n===a.TAG_ID.TBODY||n===a.TAG_ID.TFOOT||n===a.TAG_ID.THEAD||n===a.TAG_ID.TR||n===a.TAG_ID.TD||n===a.TAG_ID.TH?(e.openElements.popUntilTagNamePopped(a.TAG_ID.SELECT),e._resetInsertionMode(),e._processStartTag(t)):Te(e,t)}function Ut(e,t){const n=t.tagID;n===a.TAG_ID.CAPTION||n===a.TAG_ID.TABLE||n===a.TAG_ID.TBODY||n===a.TAG_ID.TFOOT||n===a.TAG_ID.THEAD||n===a.TAG_ID.TR||n===a.TAG_ID.TD||n===a.TAG_ID.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(a.TAG_ID.SELECT),e._resetInsertionMode(),e.onEndTag(t)):re(e,t)}function yt(e,t){switch(t.tagID){case a.TAG_ID.BASE:case a.TAG_ID.BASEFONT:case a.TAG_ID.BGSOUND:case a.TAG_ID.LINK:case a.TAG_ID.META:case a.TAG_ID.NOFRAMES:case a.TAG_ID.SCRIPT:case a.TAG_ID.STYLE:case a.TAG_ID.TEMPLATE:case a.TAG_ID.TITLE:{_(e,t);break}case a.TAG_ID.CAPTION:case a.TAG_ID.COLGROUP:case a.TAG_ID.TBODY:case a.TAG_ID.TFOOT:case a.TAG_ID.THEAD:{e.tmplInsertionModeStack[0]=s.IN_TABLE,e.insertionMode=s.IN_TABLE,d(e,t);break}case a.TAG_ID.COL:{e.tmplInsertionModeStack[0]=s.IN_COLUMN_GROUP,e.insertionMode=s.IN_COLUMN_GROUP,x(e,t);break}case a.TAG_ID.TR:{e.tmplInsertionModeStack[0]=s.IN_TABLE_BODY,e.insertionMode=s.IN_TABLE_BODY,F(e,t);break}case a.TAG_ID.TD:case a.TAG_ID.TH:{e.tmplInsertionModeStack[0]=s.IN_ROW,e.insertionMode=s.IN_ROW,p(e,t);break}default:e.tmplInsertionModeStack[0]=s.IN_BODY,e.insertionMode=s.IN_BODY,I(e,t)}}function kt(e,t){t.tagID===a.TAG_ID.TEMPLATE&&m(e,t)}function ie(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(a.TAG_ID.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):Y(e,t)}function Yt(e,t){t.tagID===a.TAG_ID.HTML?I(e,t):b(e,t)}function oe(e,t){var n;if(t.tagID===a.TAG_ID.HTML){if(e.fragmentContext||(e.insertionMode=s.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===a.TAG_ID.HTML){e._setEndLocation(e.openElements.items[0],t);const T=e.openElements.items[1];T&&!(!((n=e.treeAdapter.getNodeSourceCodeLocation(T))===null||n===void 0)&&n.endTag)&&e._setEndLocation(T,t)}}else b(e,t)}function b(e,t){e.insertionMode=s.IN_BODY,B(e,t)}function xt(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.FRAMESET:{e._insertElement(t,a.NS.HTML);break}case a.TAG_ID.FRAME:{e._appendElement(t,a.NS.HTML),t.ackSelfClosing=!0;break}case a.TAG_ID.NOFRAMES:{_(e,t);break}}}function wt(e,t){t.tagID===a.TAG_ID.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==a.TAG_ID.FRAMESET&&(e.insertionMode=s.AFTER_FRAMESET))}function vt(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.NOFRAMES:{_(e,t);break}}}function Wt(e,t){t.tagID===a.TAG_ID.HTML&&(e.insertionMode=s.AFTER_AFTER_FRAMESET)}function Xt(e,t){t.tagID===a.TAG_ID.HTML?I(e,t):C(e,t)}function C(e,t){e.insertionMode=s.IN_BODY,B(e,t)}function zt(e,t){switch(t.tagID){case a.TAG_ID.HTML:{I(e,t);break}case a.TAG_ID.NOFRAMES:{_(e,t);break}}}function Kt(e,t){t.chars=V.REPLACEMENT_CHARACTER,e._insertCharacters(t)}function Vt(e,t){e._insertCharacters(t),e.framesetOk=!1}function ce(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==a.NS.HTML&&e.openElements.currentTagId!==void 0&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}function jt(e,t){if(l.causesExit(t))ce(e),e._startTagOutsideForeignContent(t);else{const n=e._getAdjustedCurrentElement(),T=e.treeAdapter.getNamespaceURI(n);T===a.NS.MATHML?l.adjustTokenMathMLAttrs(t):T===a.NS.SVG&&(l.adjustTokenSVGTagName(t),l.adjustTokenSVGAttrs(t)),l.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,T):e._insertElement(t,T),t.ackSelfClosing=!0}}function qt(e,t){if(t.tagID===a.TAG_ID.P||t.tagID===a.TAG_ID.BR){ce(e),e._endTagOutsideForeignContent(t);return}for(let n=e.openElements.stackTop;n>0;n--){const T=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(T)===a.NS.HTML){e._endTagOutsideForeignContent(t);break}const r=e.treeAdapter.getTagName(T);if(r.toLowerCase()===t.tagName){t.tagName=r,e.openElements.shortenToLength(n);break}}}exports.Parser=de;
|
|
2
|
-
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../../../../../../node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.js"],"sourcesContent":["import { Tokenizer, TokenizerMode } from '../tokenizer/index.js';\nimport { OpenElementStack } from './open-element-stack.js';\nimport { FormattingElementList, EntryType } from './formatting-element-list.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\nimport * as doctype from '../common/doctype.js';\nimport * as foreignContent from '../common/foreign-content.js';\nimport { ERR } from '../common/error-codes.js';\nimport * as unicode from '../common/unicode.js';\nimport { TAG_ID as $, TAG_NAMES as TN, NS, ATTRS, SPECIAL_ELEMENTS, DOCUMENT_MODE, NUMBERED_HEADERS, getTagID, } from '../common/html.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n//Insertion modes\nvar InsertionMode;\n(function (InsertionMode) {\n InsertionMode[InsertionMode[\"INITIAL\"] = 0] = \"INITIAL\";\n InsertionMode[InsertionMode[\"BEFORE_HTML\"] = 1] = \"BEFORE_HTML\";\n InsertionMode[InsertionMode[\"BEFORE_HEAD\"] = 2] = \"BEFORE_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD\"] = 3] = \"IN_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD_NO_SCRIPT\"] = 4] = \"IN_HEAD_NO_SCRIPT\";\n InsertionMode[InsertionMode[\"AFTER_HEAD\"] = 5] = \"AFTER_HEAD\";\n InsertionMode[InsertionMode[\"IN_BODY\"] = 6] = \"IN_BODY\";\n InsertionMode[InsertionMode[\"TEXT\"] = 7] = \"TEXT\";\n InsertionMode[InsertionMode[\"IN_TABLE\"] = 8] = \"IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TABLE_TEXT\"] = 9] = \"IN_TABLE_TEXT\";\n InsertionMode[InsertionMode[\"IN_CAPTION\"] = 10] = \"IN_CAPTION\";\n InsertionMode[InsertionMode[\"IN_COLUMN_GROUP\"] = 11] = \"IN_COLUMN_GROUP\";\n InsertionMode[InsertionMode[\"IN_TABLE_BODY\"] = 12] = \"IN_TABLE_BODY\";\n InsertionMode[InsertionMode[\"IN_ROW\"] = 13] = \"IN_ROW\";\n InsertionMode[InsertionMode[\"IN_CELL\"] = 14] = \"IN_CELL\";\n InsertionMode[InsertionMode[\"IN_SELECT\"] = 15] = \"IN_SELECT\";\n InsertionMode[InsertionMode[\"IN_SELECT_IN_TABLE\"] = 16] = \"IN_SELECT_IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TEMPLATE\"] = 17] = \"IN_TEMPLATE\";\n InsertionMode[InsertionMode[\"AFTER_BODY\"] = 18] = \"AFTER_BODY\";\n InsertionMode[InsertionMode[\"IN_FRAMESET\"] = 19] = \"IN_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_FRAMESET\"] = 20] = \"AFTER_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_BODY\"] = 21] = \"AFTER_AFTER_BODY\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_FRAMESET\"] = 22] = \"AFTER_AFTER_FRAMESET\";\n})(InsertionMode || (InsertionMode = {}));\nconst BASE_LOC = {\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n};\nconst TABLE_STRUCTURE_TAGS = new Set([$.TABLE, $.TBODY, $.TFOOT, $.THEAD, $.TR]);\nconst defaultParserOptions = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n treeAdapter: defaultTreeAdapter,\n onParseError: null,\n};\n//Parser\nexport class Parser {\n constructor(options, document, \n /** @internal */\n fragmentContext = null, \n /** @internal */\n scriptHandler = null) {\n this.fragmentContext = fragmentContext;\n this.scriptHandler = scriptHandler;\n this.currentToken = null;\n this.stopped = false;\n /** @internal */\n this.insertionMode = InsertionMode.INITIAL;\n /** @internal */\n this.originalInsertionMode = InsertionMode.INITIAL;\n /** @internal */\n this.headElement = null;\n /** @internal */\n this.formElement = null;\n /** Indicates that the current node is not an element in the HTML namespace */\n this.currentNotInHTML = false;\n /**\n * The template insertion mode stack is maintained from the left.\n * Ie. the topmost element will always have index 0.\n *\n * @internal\n */\n this.tmplInsertionModeStack = [];\n /** @internal */\n this.pendingCharacterTokens = [];\n /** @internal */\n this.hasNonWhitespacePendingCharacterToken = false;\n /** @internal */\n this.framesetOk = true;\n /** @internal */\n this.skipNextNewLine = false;\n /** @internal */\n this.fosterParentingEnabled = false;\n this.options = {\n ...defaultParserOptions,\n ...options,\n };\n this.treeAdapter = this.options.treeAdapter;\n this.onParseError = this.options.onParseError;\n // Always enable location info if we report parse errors.\n if (this.onParseError) {\n this.options.sourceCodeLocationInfo = true;\n }\n this.document = document !== null && document !== void 0 ? document : this.treeAdapter.createDocument();\n this.tokenizer = new Tokenizer(this.options, this);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : $.UNKNOWN;\n this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);\n this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);\n }\n // API\n static parse(html, options) {\n const parser = new this(options);\n parser.tokenizer.write(html, true);\n return parser.document;\n }\n static getFragmentParser(fragmentContext, options) {\n const opts = {\n ...defaultParserOptions,\n ...options,\n };\n //NOTE: use a <template> element as the fragment context if no context element was provided,\n //so we will parse in a \"forgiving\" manner\n fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : (fragmentContext = opts.treeAdapter.createElement(TN.TEMPLATE, NS.HTML, []));\n //NOTE: create a fake element which will be used as the `document` for fragment parsing.\n //This is important for jsdom, where a new `document` cannot be created. This led to\n //fragment parsing messing with the main `document`.\n const documentMock = opts.treeAdapter.createElement('documentmock', NS.HTML, []);\n const parser = new this(opts, documentMock, fragmentContext);\n if (parser.fragmentContextID === $.TEMPLATE) {\n parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n }\n parser._initTokenizerForFragmentParsing();\n parser._insertFakeRootElement();\n parser._resetInsertionMode();\n parser._findFormInFragmentContext();\n return parser;\n }\n getFragment() {\n const rootElement = this.treeAdapter.getFirstChild(this.document);\n const fragment = this.treeAdapter.createDocumentFragment();\n this._adoptNodes(rootElement, fragment);\n return fragment;\n }\n //Errors\n /** @internal */\n _err(token, code, beforeToken) {\n var _a;\n if (!this.onParseError)\n return;\n const loc = (_a = token.location) !== null && _a !== void 0 ? _a : BASE_LOC;\n const err = {\n code,\n startLine: loc.startLine,\n startCol: loc.startCol,\n startOffset: loc.startOffset,\n endLine: beforeToken ? loc.startLine : loc.endLine,\n endCol: beforeToken ? loc.startCol : loc.endCol,\n endOffset: beforeToken ? loc.startOffset : loc.endOffset,\n };\n this.onParseError(err);\n }\n //Stack events\n /** @internal */\n onItemPush(node, tid, isTop) {\n var _a, _b;\n (_b = (_a = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n if (isTop && this.openElements.stackTop > 0)\n this._setContextModes(node, tid);\n }\n /** @internal */\n onItemPop(node, isTop) {\n var _a, _b;\n if (this.options.sourceCodeLocationInfo) {\n this._setEndLocation(node, this.currentToken);\n }\n (_b = (_a = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a, node, this.openElements.current);\n if (isTop) {\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n this._setContextModes(current, currentTagId);\n }\n }\n _setContextModes(current, tid) {\n const isHTML = current === this.document || (current && this.treeAdapter.getNamespaceURI(current) === NS.HTML);\n this.currentNotInHTML = !isHTML;\n this.tokenizer.inForeignNode =\n !isHTML && current !== undefined && tid !== undefined && !this._isIntegrationPoint(tid, current);\n }\n /** @protected */\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = InsertionMode.TEXT;\n }\n switchToPlaintextParsing() {\n this.insertionMode = InsertionMode.TEXT;\n this.originalInsertionMode = InsertionMode.IN_BODY;\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n }\n //Fragment parsing\n /** @protected */\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n /** @protected */\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n while (node) {\n if (this.treeAdapter.getTagName(node) === TN.FORM) {\n this.formElement = node;\n break;\n }\n node = this.treeAdapter.getParentNode(node);\n }\n }\n _initTokenizerForFragmentParsing() {\n if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== NS.HTML) {\n return;\n }\n switch (this.fragmentContextID) {\n case $.TITLE:\n case $.TEXTAREA: {\n this.tokenizer.state = TokenizerMode.RCDATA;\n break;\n }\n case $.STYLE:\n case $.XMP:\n case $.IFRAME:\n case $.NOEMBED:\n case $.NOFRAMES:\n case $.NOSCRIPT: {\n this.tokenizer.state = TokenizerMode.RAWTEXT;\n break;\n }\n case $.SCRIPT: {\n this.tokenizer.state = TokenizerMode.SCRIPT_DATA;\n break;\n }\n case $.PLAINTEXT: {\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n break;\n }\n default:\n // Do nothing\n }\n }\n //Tree mutation\n /** @protected */\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n if (token.location) {\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));\n if (docTypeNode) {\n this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location);\n }\n }\n }\n /** @protected */\n _attachElementToTree(element, location) {\n if (this.options.sourceCodeLocationInfo) {\n const loc = location && {\n ...location,\n startTag: location,\n };\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n }\n else {\n const parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.appendChild(parent !== null && parent !== void 0 ? parent : this.document, element);\n }\n }\n /**\n * For self-closing tags. Add an element to the tree, but skip adding it\n * to the stack.\n */\n /** @protected */\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n }\n /** @protected */\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n this.openElements.push(element, token.tagID);\n }\n /** @protected */\n _insertFakeElement(tagName, tagID) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n this._attachElementToTree(element, null);\n this.openElements.push(element, tagID);\n }\n /** @protected */\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl, token.location);\n this.openElements.push(tmpl, token.tagID);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(content, null);\n }\n /** @protected */\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement(TN.HTML, NS.HTML, []);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(element, null);\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element, $.HTML);\n }\n /** @protected */\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n this.treeAdapter.appendChild(parent, commentNode);\n if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n }\n }\n /** @protected */\n _insertCharacters(token) {\n let parent;\n let beforeElement;\n if (this._shouldFosterParentOnInsertion()) {\n ({ parent, beforeElement } = this._findFosterParentingLocation());\n if (beforeElement) {\n this.treeAdapter.insertTextBefore(parent, token.chars, beforeElement);\n }\n else {\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n else {\n parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.insertText(parent, token.chars);\n }\n if (!token.location)\n return;\n const siblings = this.treeAdapter.getChildNodes(parent);\n const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;\n const textNode = siblings[textNodeIdx - 1];\n //NOTE: if we have a location assigned by another token, then just update the end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n }\n else if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n /** @protected */\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n /** @protected */\n _setEndLocation(element, closingToken) {\n if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n const endLoc = \n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n closingToken.type === TokenType.END_TAG && tn === closingToken.tagName\n ? {\n endTag: { ...ctLoc },\n endLine: ctLoc.endLine,\n endCol: ctLoc.endCol,\n endOffset: ctLoc.endOffset,\n }\n : {\n endLine: ctLoc.startLine,\n endCol: ctLoc.startCol,\n endOffset: ctLoc.startOffset,\n };\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n //Token processing\n shouldProcessStartTagTokenInForeignContent(token) {\n // Check that neither current === document, or ns === NS.HTML\n if (!this.currentNotInHTML)\n return false;\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n if (token.tagID === $.SVG &&\n this.treeAdapter.getTagName(current) === TN.ANNOTATION_XML &&\n this.treeAdapter.getNamespaceURI(current) === NS.MATHML) {\n return false;\n }\n return (\n // Check that `current` is not an integration point for HTML or MathML elements.\n this.tokenizer.inForeignNode ||\n // If it _is_ an integration point, then we might have to check that it is not an HTML\n // integration point.\n ((token.tagID === $.MGLYPH || token.tagID === $.MALIGNMARK) &&\n currentTagId !== undefined &&\n !this._isIntegrationPoint(currentTagId, current, NS.HTML)));\n }\n /** @protected */\n _processToken(token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n this.onCharacter(token);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.onNullCharacter(token);\n break;\n }\n case TokenType.COMMENT: {\n this.onComment(token);\n break;\n }\n case TokenType.DOCTYPE: {\n this.onDoctype(token);\n break;\n }\n case TokenType.START_TAG: {\n this._processStartTag(token);\n break;\n }\n case TokenType.END_TAG: {\n this.onEndTag(token);\n break;\n }\n case TokenType.EOF: {\n this.onEof(token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.onWhitespaceCharacter(token);\n break;\n }\n }\n }\n //Integration points\n /** @protected */\n _isIntegrationPoint(tid, element, foreignNS) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n return foreignContent.isIntegrationPoint(tid, ns, attrs, foreignNS);\n }\n //Active formatting elements reconstruction\n /** @protected */\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.entries.length;\n if (listLength) {\n const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element));\n const unopenIdx = endIndex === -1 ? listLength - 1 : endIndex - 1;\n for (let i = unopenIdx; i >= 0; i--) {\n const entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n //Close elements\n /** @protected */\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = InsertionMode.IN_ROW;\n }\n /** @protected */\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n //Insertion modes\n /** @protected */\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n //Insertion mode reset map\n switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) {\n case $.TR: {\n this.insertionMode = InsertionMode.IN_ROW;\n return;\n }\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n this.insertionMode = InsertionMode.IN_TABLE_BODY;\n return;\n }\n case $.CAPTION: {\n this.insertionMode = InsertionMode.IN_CAPTION;\n return;\n }\n case $.COLGROUP: {\n this.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n return;\n }\n case $.TABLE: {\n this.insertionMode = InsertionMode.IN_TABLE;\n return;\n }\n case $.BODY: {\n this.insertionMode = InsertionMode.IN_BODY;\n return;\n }\n case $.FRAMESET: {\n this.insertionMode = InsertionMode.IN_FRAMESET;\n return;\n }\n case $.SELECT: {\n this._resetInsertionModeForSelect(i);\n return;\n }\n case $.TEMPLATE: {\n this.insertionMode = this.tmplInsertionModeStack[0];\n return;\n }\n case $.HTML: {\n this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;\n return;\n }\n case $.TD:\n case $.TH: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_CELL;\n return;\n }\n break;\n }\n case $.HEAD: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_HEAD;\n return;\n }\n break;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_BODY;\n }\n /** @protected */\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const tn = this.openElements.tagIDs[i];\n if (tn === $.TEMPLATE) {\n break;\n }\n else if (tn === $.TABLE) {\n this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;\n return;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_SELECT;\n }\n //Foster parenting\n /** @protected */\n _isElementCausesFosterParenting(tn) {\n return TABLE_STRUCTURE_TAGS.has(tn);\n }\n /** @protected */\n _shouldFosterParentOnInsertion() {\n return (this.fosterParentingEnabled &&\n this.openElements.currentTagId !== undefined &&\n this._isElementCausesFosterParenting(this.openElements.currentTagId));\n }\n /** @protected */\n _findFosterParentingLocation() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n switch (this.openElements.tagIDs[i]) {\n case $.TEMPLATE: {\n if (this.treeAdapter.getNamespaceURI(openElement) === NS.HTML) {\n return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };\n }\n break;\n }\n case $.TABLE: {\n const parent = this.treeAdapter.getParentNode(openElement);\n if (parent) {\n return { parent, beforeElement: openElement };\n }\n return { parent: this.openElements.items[i - 1], beforeElement: null };\n }\n default:\n // Do nothing\n }\n }\n return { parent: this.openElements.items[0], beforeElement: null };\n }\n /** @protected */\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n }\n else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n //Special elements\n /** @protected */\n _isSpecialElement(element, id) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n return SPECIAL_ELEMENTS[ns].has(id);\n }\n /** @internal */\n onCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n characterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE: {\n characterInBody(this, token);\n break;\n }\n case InsertionMode.TEXT:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n characterInTableText(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onNullCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n nullCharacterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onComment(token) {\n this.skipNextNewLine = false;\n if (this.currentNotInHTML) {\n appendComment(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL:\n case InsertionMode.BEFORE_HTML:\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n appendComment(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n appendCommentToRootHtmlElement(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n appendCommentToDocument(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onDoctype(token) {\n this.skipNextNewLine = false;\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n doctypeInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD: {\n this._err(token, ERR.misplacedDoctype);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onStartTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n this._processStartTag(token);\n if (token.selfClosing && !token.ackSelfClosing) {\n this._err(token, ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n /**\n * Processes a given start tag.\n *\n * `onStartTag` checks if a self-closing tag was recognized. When a token\n * is moved inbetween multiple insertion modes, this check for self-closing\n * could lead to false positives. To avoid this, `_processStartTag` is used\n * for nested calls.\n *\n * @param token The token to process.\n * @protected\n */\n _processStartTag(token) {\n if (this.shouldProcessStartTagTokenInForeignContent(token)) {\n startTagInForeignContent(this, token);\n }\n else {\n this._startTagOutsideForeignContent(token);\n }\n }\n /** @protected */\n _startTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n startTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n startTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n startTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n startTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n startTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n startTagInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n startTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n startTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n startTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n startTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n startTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n startTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n startTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n startTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n startTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n startTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n startTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n startTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n startTagAfterAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n startTagAfterAfterFrameset(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onEndTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n if (this.currentNotInHTML) {\n endTagInForeignContent(this, token);\n }\n else {\n this._endTagOutsideForeignContent(token);\n }\n }\n /** @protected */\n _endTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n endTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n endTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n endTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n endTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n endTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n endTagInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n endTagInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n endTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n endTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n endTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n endTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n endTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n endTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n endTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n endTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n endTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n endTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n endTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n endTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onEof(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n eofInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n eofInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n eofInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n stopParsing(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onWhitespaceCharacter(token) {\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n if (token.chars.charCodeAt(0) === unicode.CODE_POINTS.LINE_FEED) {\n if (token.chars.length === 1) {\n return;\n }\n token.chars = token.chars.substr(1);\n }\n }\n if (this.tokenizer.inForeignNode) {\n this._insertCharacters(token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.TEXT:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.AFTER_BODY:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n whitespaceCharacterInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n whitespaceCharacterInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n}\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n }\n else if (!p.openElements.hasInScope(token.tagID)) {\n formattingElementEntry = null;\n }\n }\n else {\n genericEndTagInBody(p, token);\n }\n return formattingElementEntry;\n}\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n let idx = p.openElements.stackTop;\n for (; idx >= 0; idx--) {\n const element = p.openElements.items[idx];\n if (element === formattingElementEntry.element) {\n break;\n }\n if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {\n furthestBlock = element;\n }\n }\n if (!furthestBlock) {\n p.openElements.shortenToLength(Math.max(idx, 0));\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n return furthestBlock;\n}\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store the next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n p.openElements.remove(element);\n }\n else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n return lastElement;\n}\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n return newElement;\n}\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const tid = getTagID(tn);\n if (p._isElementCausesFosterParenting(tid)) {\n p._fosterParentElement(lastElement);\n }\n else {\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n if (tid === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const { token } = formattingElementEntry;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n p.activeFormattingElements.insertElementAfterBookmark(newElement, token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement, token.tagID);\n}\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n const formattingElementEntry = aaObtainFormattingElementEntry(p, token);\n if (!formattingElementEntry) {\n break;\n }\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n if (!furthestBlock) {\n break;\n }\n p.activeFormattingElements.bookmark = formattingElementEntry;\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n p.treeAdapter.detachNode(lastElement);\n if (commonAncestor)\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n//Generic token handlers\n//------------------------------------------------------------------\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContentOrNode);\n}\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\nfunction stopParsing(p, token) {\n p.stopped = true;\n // NOTE: Set end locations for elements that remain on the open element stack.\n if (token.location) {\n // NOTE: If we are not in a fragment, `html` and `body` will stay on the stack.\n // This is a problem, as we might overwrite their end position here.\n const target = p.fragmentContext ? 0 : 2;\n for (let i = p.openElements.stackTop; i >= target; i--) {\n p._setEndLocation(p.openElements.items[i], token);\n }\n // Handle `html` and `body`\n if (!p.fragmentContext && p.openElements.stackTop >= 0) {\n const htmlElement = p.openElements.items[0];\n const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement);\n if (htmlLocation && !htmlLocation.endTag) {\n p._setEndLocation(htmlElement, token);\n if (p.openElements.stackTop >= 1) {\n const bodyElement = p.openElements.items[1];\n const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement);\n if (bodyLocation && !bodyLocation.endTag) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n }\n }\n}\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n const mode = token.forceQuirks ? DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n if (!doctype.isConforming(token)) {\n p._err(token, ERR.nonConformingDoctype);\n }\n p.treeAdapter.setDocumentMode(p.document, mode);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n}\nfunction tokenInInitialMode(p, token) {\n p._err(token, ERR.missingDoctype, true);\n p.treeAdapter.setDocumentMode(p.document, DOCUMENT_MODE.QUIRKS);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n p._processToken(token);\n}\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagID === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n }\n else {\n tokenBeforeHtml(p, token);\n }\n}\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagID;\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n p._processToken(token);\n}\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.HEAD: {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n default: {\n tokenBeforeHead(p, token);\n }\n }\n}\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagID;\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement(TN.HEAD, $.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TITLE: {\n p._switchToTextParsing(token, TokenizerMode.RCDATA);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n }\n else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;\n }\n break;\n }\n case $.NOFRAMES:\n case $.STYLE: {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n break;\n }\n case $.SCRIPT: {\n p._switchToTextParsing(token, TokenizerMode.SCRIPT_DATA);\n break;\n }\n case $.TEMPLATE: {\n p._insertTemplate(token);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TEMPLATE;\n p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenInHead(p, token);\n }\n }\n}\nfunction endTagInHead(p, token) {\n switch (token.tagID) {\n case $.HEAD: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n break;\n }\n case $.BODY:\n case $.BR:\n case $.HTML: {\n tokenInHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction templateEndTagInHead(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n if (p.openElements.currentTagId !== $.TEMPLATE) {\n p._err(token, ERR.closingOfElementWithOpenChildElements);\n }\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n p._processToken(token);\n}\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASEFONT:\n case $.BGSOUND:\n case $.HEAD:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.STYLE: {\n startTagInHead(p, token);\n break;\n }\n case $.NOSCRIPT: {\n p._err(token, ERR.nestedNoscriptInHead);\n break;\n }\n default: {\n tokenInHeadNoScript(p, token);\n }\n }\n}\nfunction endTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.NOSCRIPT: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n case $.BR: {\n tokenInHeadNoScript(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenInHeadNoScript(p, token) {\n const errCode = token.type === TokenType.EOF ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n p._err(token, errCode);\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BODY: {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_BODY;\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n p._err(token, ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement, $.HEAD);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenAfterHead(p, token);\n }\n }\n}\nfunction endTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.BODY:\n case $.HTML:\n case $.BR: {\n tokenAfterHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement(TN.BODY, $.BODY);\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction modeInBody(p, token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInBody(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInBody(p, token);\n break;\n }\n case TokenType.COMMENT: {\n appendComment(p, token);\n break;\n }\n case TokenType.START_TAG: {\n startTagInBody(p, token);\n break;\n }\n case TokenType.END_TAG: {\n endTagInBody(p, token);\n break;\n }\n case TokenType.EOF: {\n eofInBody(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n }\n}\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n if (p.openElements.currentTagId !== undefined && NUMBERED_HEADERS.has(p.openElements.currentTagId)) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n const tn = token.tagID;\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const elementId = p.openElements.tagIDs[i];\n if ((tn === $.LI && elementId === $.LI) ||\n ((tn === $.DD || tn === $.DT) && (elementId === $.DD || elementId === $.DT))) {\n p.openElements.generateImpliedEndTagsWithExclusion(elementId);\n p.openElements.popUntilTagNamePopped(elementId);\n break;\n }\n if (elementId !== $.ADDRESS &&\n elementId !== $.DIV &&\n elementId !== $.P &&\n p._isSpecialElement(p.openElements.items[i], elementId)) {\n break;\n }\n }\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = TokenizerMode.PLAINTEXT;\n}\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(TN.A);\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\nfunction tableStartTagInBody(p, token) {\n if (p.treeAdapter.getDocumentMode(p.document) !== DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TABLE;\n}\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction isHiddenInput(token) {\n const inputType = getTokenAttr(token, ATTRS.TYPE);\n return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;\n}\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n if (!isHiddenInput(token)) {\n p.framesetOk = false;\n }\n token.ackSelfClosing = true;\n}\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction imageStartTagInBody(p, token) {\n token.tagName = TN.IMG;\n token.tagID = $.IMG;\n areaStartTagInBody(p, token);\n}\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = TokenizerMode.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = InsertionMode.TEXT;\n}\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\n//NOTE: here we assume that we always act as a user agent with enabled plugins/frames, so we parse\n//<noembed>/<noframes> as rawtext.\nfunction rawTextStartTagInBody(p, token) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode =\n p.insertionMode === InsertionMode.IN_TABLE ||\n p.insertionMode === InsertionMode.IN_CAPTION ||\n p.insertionMode === InsertionMode.IN_TABLE_BODY ||\n p.insertionMode === InsertionMode.IN_ROW ||\n p.insertionMode === InsertionMode.IN_CELL\n ? InsertionMode.IN_SELECT_IN_TABLE\n : InsertionMode.IN_SELECT;\n}\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n p._insertElement(token, NS.HTML);\n}\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n }\n else {\n p._insertElement(token, NS.MATHML);\n }\n token.ackSelfClosing = true;\n}\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n }\n else {\n p._insertElement(token, NS.SVG);\n }\n token.ackSelfClosing = true;\n}\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction startTagInBody(p, token) {\n switch (token.tagID) {\n case $.I:\n case $.S:\n case $.B:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n bStartTagInBody(p, token);\n break;\n }\n case $.A: {\n aStartTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderStartTagInBody(p, token);\n break;\n }\n case $.P:\n case $.DL:\n case $.OL:\n case $.UL:\n case $.DIV:\n case $.DIR:\n case $.NAV:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.DETAILS:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.SEARCH:\n case $.SECTION:\n case $.SUMMARY:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressStartTagInBody(p, token);\n break;\n }\n case $.LI:\n case $.DD:\n case $.DT: {\n listItemStartTagInBody(p, token);\n break;\n }\n case $.BR:\n case $.IMG:\n case $.WBR:\n case $.AREA:\n case $.EMBED:\n case $.KEYGEN: {\n areaStartTagInBody(p, token);\n break;\n }\n case $.HR: {\n hrStartTagInBody(p, token);\n break;\n }\n case $.RB:\n case $.RTC: {\n rbStartTagInBody(p, token);\n break;\n }\n case $.RT:\n case $.RP: {\n rtStartTagInBody(p, token);\n break;\n }\n case $.PRE:\n case $.LISTING: {\n preStartTagInBody(p, token);\n break;\n }\n case $.XMP: {\n xmpStartTagInBody(p, token);\n break;\n }\n case $.SVG: {\n svgStartTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlStartTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.LINK:\n case $.META:\n case $.STYLE:\n case $.TITLE:\n case $.SCRIPT:\n case $.BGSOUND:\n case $.BASEFONT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.BODY: {\n bodyStartTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInBody(p, token);\n break;\n }\n case $.NOBR: {\n nobrStartTagInBody(p, token);\n break;\n }\n case $.MATH: {\n mathStartTagInBody(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInBody(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInBody(p, token);\n break;\n }\n case $.PARAM:\n case $.TRACK:\n case $.SOURCE: {\n paramStartTagInBody(p, token);\n break;\n }\n case $.IMAGE: {\n imageStartTagInBody(p, token);\n break;\n }\n case $.BUTTON: {\n buttonStartTagInBody(p, token);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletStartTagInBody(p, token);\n break;\n }\n case $.IFRAME: {\n iframeStartTagInBody(p, token);\n break;\n }\n case $.SELECT: {\n selectStartTagInBody(p, token);\n break;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n optgroupStartTagInBody(p, token);\n break;\n }\n case $.NOEMBED:\n case $.NOFRAMES: {\n rawTextStartTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n framesetStartTagInBody(p, token);\n break;\n }\n case $.TEXTAREA: {\n textareaStartTagInBody(p, token);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n rawTextStartTagInBody(p, token);\n }\n else {\n genericStartTagInBody(p, token);\n }\n break;\n }\n case $.PLAINTEXT: {\n plaintextStartTagInBody(p, token);\n break;\n }\n case $.COL:\n case $.TH:\n case $.TD:\n case $.TR:\n case $.HEAD:\n case $.FRAME:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.CAPTION:\n case $.COLGROUP: {\n // Ignore token\n break;\n }\n default: {\n genericStartTagInBody(p, token);\n }\n }\n}\nfunction bodyEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n //NOTE: <body> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n}\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n endTagAfterBody(p, token);\n }\n}\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const { formElement } = p;\n if (!inTemplate) {\n p.formElement = null;\n }\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n }\n else if (formElement) {\n p.openElements.remove(formElement);\n }\n }\n}\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement(TN.P, $.P);\n }\n p._closePElement();\n}\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement(TN.BR, $.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n const tid = token.tagID;\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n const elementId = p.openElements.tagIDs[i];\n // Compare the tag name here, as the tag might not be a known tag with an ID.\n if (tid === elementId && (tid !== $.UNKNOWN || p.treeAdapter.getTagName(element) === tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tid);\n if (p.openElements.stackTop >= i)\n p.openElements.shortenToLength(i);\n break;\n }\n if (p._isSpecialElement(element, elementId)) {\n break;\n }\n }\n}\nfunction endTagInBody(p, token) {\n switch (token.tagID) {\n case $.A:\n case $.B:\n case $.I:\n case $.S:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.NOBR:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n callAdoptionAgency(p, token);\n break;\n }\n case $.P: {\n pEndTagInBody(p);\n break;\n }\n case $.DL:\n case $.UL:\n case $.OL:\n case $.DIR:\n case $.DIV:\n case $.NAV:\n case $.PRE:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.BUTTON:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.DETAILS:\n case $.SEARCH:\n case $.SECTION:\n case $.SUMMARY:\n case $.LISTING:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressEndTagInBody(p, token);\n break;\n }\n case $.LI: {\n liEndTagInBody(p);\n break;\n }\n case $.DD:\n case $.DT: {\n ddEndTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderEndTagInBody(p);\n break;\n }\n case $.BR: {\n brEndTagInBody(p);\n break;\n }\n case $.BODY: {\n bodyEndTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlEndTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formEndTagInBody(p);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletEndTagInBody(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n genericEndTagInBody(p, token);\n }\n }\n}\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStack.length > 0) {\n eofInTemplate(p, token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n var _a;\n if (token.tagID === $.SCRIPT) {\n (_a = p.scriptHandler) === null || _a === void 0 ? void 0 : _a.call(p, p.openElements.current);\n }\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\nfunction eofInText(p, token) {\n p._err(token, ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p.onEof(token);\n}\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n if (p.openElements.currentTagId !== undefined && TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {\n p.pendingCharacterTokens.length = 0;\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = InsertionMode.IN_TABLE_TEXT;\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInTableText(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInTableText(p, token);\n break;\n }\n // Ignore null\n }\n }\n else {\n tokenInTable(p, token);\n }\n}\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CAPTION;\n}\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n}\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.COLGROUP, $.COLGROUP);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n}\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n}\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.TBODY, $.TBODY);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n}\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n}\nfunction inputStartTagInTable(p, token) {\n if (isHiddenInput(token)) {\n p._appendElement(token, NS.HTML);\n }\n else {\n tokenInTable(p, token);\n }\n token.ackSelfClosing = true;\n}\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\nfunction startTagInTable(p, token) {\n switch (token.tagID) {\n case $.TD:\n case $.TH:\n case $.TR: {\n tdStartTagInTable(p, token);\n break;\n }\n case $.STYLE:\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.COL: {\n colStartTagInTable(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInTable(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInTable(p, token);\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n tbodyStartTagInTable(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInTable(p, token);\n break;\n }\n case $.CAPTION: {\n captionStartTagInTable(p, token);\n break;\n }\n case $.COLGROUP: {\n colgroupStartTagInTable(p, token);\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction endTagInTable(p, token) {\n switch (token.tagID) {\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n p.fosterParentingEnabled = true;\n // Process token in `In Body` mode\n modeInBody(p, token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\nfunction tokenInTableText(p, token) {\n let i = 0;\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n }\n else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nconst TABLE_VOID_ELEMENTS = new Set([$.CAPTION, $.COL, $.COLGROUP, $.TBODY, $.TD, $.TFOOT, $.TH, $.THEAD, $.TR]);\nfunction startTagInCaption(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCaption(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.CAPTION:\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n if (tn === $.TABLE) {\n endTagInTable(p, token);\n }\n }\n break;\n }\n case $.BODY:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.COL: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction endTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.COLGROUP: {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.COL: {\n // Ignore token\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n p._processToken(token);\n }\n}\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n switch (token.tagID) {\n case $.TR: {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_ROW;\n break;\n }\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement(TN.TR, $.TR);\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInTableBody(p, token) {\n const tn = token.tagID;\n switch (token.tagID) {\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n endTagInTable(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n switch (token.tagID) {\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CELL;\n p.activeFormattingElements.insertMarker();\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInRow(p, token) {\n switch (token.tagID) {\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(token.tagID) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH: {\n // Ignore end tag\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n startTagInRow(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCell(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.TD:\n case $.TH: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_ROW;\n }\n break;\n }\n case $.TABLE:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n endTagInRow(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.OPTGROUP: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.HR: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.INPUT:\n case $.KEYGEN:\n case $.TEXTAREA:\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n if (token.tagID !== $.SELECT) {\n p._processStartTag(token);\n }\n }\n break;\n }\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInSelect(p, token) {\n switch (token.tagID) {\n case $.OPTGROUP: {\n if (p.openElements.stackTop > 0 &&\n p.openElements.currentTagId === $.OPTION &&\n p.openElements.tagIDs[p.openElements.stackTop - 1] === $.OPTGROUP) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n break;\n }\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n else {\n startTagInSelect(p, token);\n }\n}\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p.onEndTag(token);\n }\n }\n else {\n endTagInSelect(p, token);\n }\n}\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n switch (token.tagID) {\n // First, handle tags that can start without a mode change\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n startTagInHead(p, token);\n break;\n }\n // Re-process the token in the appropriate mode\n case $.CAPTION:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n break;\n }\n case $.COL: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n break;\n }\n case $.TR: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n break;\n }\n case $.TD:\n case $.TH: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n default: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;\n p.insertionMode = InsertionMode.IN_BODY;\n startTagInBody(p, token);\n }\n }\n}\nfunction endTagInTemplate(p, token) {\n if (token.tagID === $.TEMPLATE) {\n templateEndTagInHead(p, token);\n }\n}\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n p.onEof(token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction endTagAfterBody(p, token) {\n var _a;\n if (token.tagID === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = InsertionMode.AFTER_AFTER_BODY;\n }\n //NOTE: <html> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === $.HTML) {\n p._setEndLocation(p.openElements.items[0], token);\n // Update the body element, if it doesn't have an end tag\n const bodyElement = p.openElements.items[1];\n if (bodyElement && !((_a = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a === void 0 ? void 0 : _a.endTag)) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction tokenAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.FRAME: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInFrameset(p, token) {\n if (token.tagID === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n if (!p.fragmentContext && p.openElements.currentTagId !== $.FRAMESET) {\n p.insertionMode = InsertionMode.AFTER_FRAMESET;\n }\n }\n}\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagAfterFrameset(p, token) {\n if (token.tagID === $.HTML) {\n p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;\n }\n}\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterAfterBody(p, token);\n }\n}\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction popUntilHtmlOrIntegrationPoint(p) {\n while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n p.openElements.currentTagId !== undefined &&\n !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {\n p.openElements.pop();\n }\n}\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token)) {\n popUntilHtmlOrIntegrationPoint(p);\n p._startTagOutsideForeignContent(token);\n }\n else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n }\n else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n }\n else {\n p._insertElement(token, currentNs);\n }\n token.ackSelfClosing = true;\n }\n}\nfunction endTagInForeignContent(p, token) {\n if (token.tagID === $.P || token.tagID === $.BR) {\n popUntilHtmlOrIntegrationPoint(p);\n p._endTagOutsideForeignContent(token);\n return;\n }\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._endTagOutsideForeignContent(token);\n break;\n }\n const tagName = p.treeAdapter.getTagName(element);\n if (tagName.toLowerCase() === token.tagName) {\n //NOTE: update the token tag name for `_setEndLocation`.\n token.tagName = tagName;\n p.openElements.shortenToLength(i);\n break;\n }\n }\n}\n"],"names":["HIDDEN_INPUT_TYPE","AA_OUTER_LOOP_ITER","AA_INNER_LOOP_ITER","InsertionMode","BASE_LOC","TABLE_STRUCTURE_TAGS","$","defaultParserOptions","defaultTreeAdapter","Parser","options","document","fragmentContext","scriptHandler","Tokenizer","FormattingElementList","getTagID","OpenElementStack","html","parser","opts","TN","NS","documentMock","rootElement","fragment","token","code","beforeToken","_a","loc","err","node","tid","isTop","_b","current","currentTagId","isHTML","currentToken","nextTokenizerState","TokenizerMode","name","publicId","systemId","docTypeNode","element","location","parent","namespaceURI","tagName","tagID","tmpl","content","commentNode","beforeElement","siblings","textNodeIdx","textNode","endLine","endCol","endOffset","donor","recipient","child","closingToken","ctLoc","tn","endLoc","TokenType","foreignNS","ns","attrs","foreignContent.isIntegrationPoint","listLength","endIndex","entry","EntryType","unopenIdx","i","selectIdx","openElement","id","SPECIAL_ELEMENTS","characterInForeignContent","tokenInInitialMode","tokenBeforeHtml","tokenBeforeHead","tokenInHead","tokenInHeadNoScript","tokenAfterHead","characterInBody","characterInTable","characterInTableText","tokenInColumnGroup","tokenAfterBody","tokenAfterAfterBody","nullCharacterInForeignContent","appendComment","tokenInTableText","appendCommentToRootHtmlElement","appendCommentToDocument","doctypeInInitialMode","ERR","startTagInForeignContent","startTagBeforeHtml","startTagBeforeHead","startTagInHead","startTagInHeadNoScript","startTagAfterHead","startTagInBody","startTagInTable","startTagInCaption","startTagInColumnGroup","startTagInTableBody","startTagInRow","startTagInCell","startTagInSelect","startTagInSelectInTable","startTagInTemplate","startTagAfterBody","startTagInFrameset","startTagAfterFrameset","startTagAfterAfterBody","startTagAfterAfterFrameset","endTagInForeignContent","endTagBeforeHtml","endTagBeforeHead","endTagInHead","endTagInHeadNoScript","endTagAfterHead","endTagInBody","endTagInText","endTagInTable","endTagInCaption","endTagInColumnGroup","endTagInTableBody","endTagInRow","endTagInCell","endTagInSelect","endTagInSelectInTable","endTagInTemplate","endTagAfterBody","endTagInFrameset","endTagAfterFrameset","eofInBody","eofInText","eofInTemplate","stopParsing","unicode.CODE_POINTS","whitespaceCharacterInBody","whitespaceCharacterInTableText","aaObtainFormattingElementEntry","p","formattingElementEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","idx","aaInnerLoop","formattingElement","lastElement","nextElement","elementEntry","counterOverflow","aaRecreateElementFromEntry","newElement","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","callAdoptionAgency","target","htmlElement","htmlLocation","bodyElement","bodyLocation","mode","DOCUMENT_MODE","doctype.getDocumentMode","doctype.isConforming","templateEndTagInHead","errCode","modeInBody","htmlStartTagInBody","bodyStartTagInBody","framesetStartTagInBody","addressStartTagInBody","numberedHeaderStartTagInBody","NUMBERED_HEADERS","preStartTagInBody","formStartTagInBody","inTemplate","listItemStartTagInBody","elementId","plaintextStartTagInBody","buttonStartTagInBody","aStartTagInBody","activeElementEntry","bStartTagInBody","nobrStartTagInBody","appletStartTagInBody","tableStartTagInBody","areaStartTagInBody","isHiddenInput","inputType","getTokenAttr","ATTRS","inputStartTagInBody","paramStartTagInBody","hrStartTagInBody","imageStartTagInBody","textareaStartTagInBody","xmpStartTagInBody","iframeStartTagInBody","rawTextStartTagInBody","selectStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","rtStartTagInBody","mathStartTagInBody","foreignContent.adjustTokenMathMLAttrs","foreignContent.adjustTokenXMLAttrs","svgStartTagInBody","foreignContent.adjustTokenSVGAttrs","genericStartTagInBody","bodyEndTagInBody","htmlEndTagInBody","addressEndTagInBody","formEndTagInBody","formElement","pEndTagInBody","liEndTagInBody","ddEndTagInBody","numberedHeaderEndTagInBody","appletEndTagInBody","brEndTagInBody","tokenInTable","captionStartTagInTable","colgroupStartTagInTable","colStartTagInTable","tbodyStartTagInTable","tdStartTagInTable","tableStartTagInTable","inputStartTagInTable","formStartTagInTable","savedFosterParentingState","TABLE_VOID_ELEMENTS","unicode.REPLACEMENT_CHARACTER","popUntilHtmlOrIntegrationPoint","foreignContent.causesExit","currentNs","foreignContent.adjustTokenSVGTagName"],"mappings":"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","x_google_ignoreList":[0]}
|