@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.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]}
|
package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../common/html.cjs.js"),o=new Set([t.TAG_ID.DD,t.TAG_ID.DT,t.TAG_ID.LI,t.TAG_ID.OPTGROUP,t.TAG_ID.OPTION,t.TAG_ID.P,t.TAG_ID.RB,t.TAG_ID.RP,t.TAG_ID.RT,t.TAG_ID.RTC]),r=new Set([...o,t.TAG_ID.CAPTION,t.TAG_ID.COLGROUP,t.TAG_ID.TBODY,t.TAG_ID.TD,t.TAG_ID.TFOOT,t.TAG_ID.TH,t.TAG_ID.THEAD,t.TAG_ID.TR]),n=new Set([t.TAG_ID.APPLET,t.TAG_ID.CAPTION,t.TAG_ID.HTML,t.TAG_ID.MARQUEE,t.TAG_ID.OBJECT,t.TAG_ID.TABLE,t.TAG_ID.TD,t.TAG_ID.TEMPLATE,t.TAG_ID.TH]),c=new Set([...n,t.TAG_ID.OL,t.TAG_ID.UL]),I=new Set([...n,t.TAG_ID.BUTTON]),a=new Set([t.TAG_ID.ANNOTATION_XML,t.TAG_ID.MI,t.TAG_ID.MN,t.TAG_ID.MO,t.TAG_ID.MS,t.TAG_ID.MTEXT]),h=new Set([t.TAG_ID.DESC,t.TAG_ID.FOREIGN_OBJECT,t.TAG_ID.TITLE]),p=new Set([t.TAG_ID.TR,t.TAG_ID.TEMPLATE,t.TAG_ID.HTML]),_=new Set([t.TAG_ID.TBODY,t.TAG_ID.TFOOT,t.TAG_ID.THEAD,t.TAG_ID.TEMPLATE,t.TAG_ID.HTML]),u=new Set([t.TAG_ID.TABLE,t.TAG_ID.TEMPLATE,t.TAG_ID.HTML]),A=new Set([t.TAG_ID.TD,t.TAG_ID.TH]);class D{get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}constructor(e,s,i){this.treeAdapter=s,this.handler=i,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=t.TAG_ID.UNKNOWN,this.current=e}_indexOf(e){return this.items.lastIndexOf(e,this.stackTop)}_isInTemplate(){return this.currentTagId===t.TAG_ID.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===t.NS.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop]}push(e,s){this.stackTop++,this.items[this.stackTop]=e,this.current=e,this.tagIDs[this.stackTop]=s,this.currentTagId=s,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(e,s,!0)}pop(){const e=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!0)}replace(e,s){const i=this._indexOf(e);this.items[i]=s,i===this.stackTop&&(this.current=s)}insertAfter(e,s,i){const T=this._indexOf(e)+1;this.items.splice(T,0,s),this.tagIDs.splice(T,0,i),this.stackTop++,T===this.stackTop&&this._updateCurrentElement(),this.current&&this.currentTagId!==void 0&&this.handler.onItemPush(this.current,this.currentTagId,T===this.stackTop)}popUntilTagNamePopped(e){let s=this.stackTop+1;do s=this.tagIDs.lastIndexOf(e,s-1);while(s>0&&this.treeAdapter.getNamespaceURI(this.items[s])!==t.NS.HTML);this.shortenToLength(Math.max(s,0))}shortenToLength(e){for(;this.stackTop>=e;){const s=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(s,this.stackTop<e)}}popUntilElementPopped(e){const s=this._indexOf(e);this.shortenToLength(Math.max(s,0))}popUntilPopped(e,s){const i=this._indexOfTagNames(e,s);this.shortenToLength(Math.max(i,0))}popUntilNumberedHeaderPopped(){this.popUntilPopped(t.NUMBERED_HEADERS,t.NS.HTML)}popUntilTableCellPopped(){this.popUntilPopped(A,t.NS.HTML)}popAllUpToHtmlElement(){this.tmplCount=0,this.shortenToLength(1)}_indexOfTagNames(e,s){for(let i=this.stackTop;i>=0;i--)if(e.has(this.tagIDs[i])&&this.treeAdapter.getNamespaceURI(this.items[i])===s)return i;return-1}clearBackTo(e,s){const i=this._indexOfTagNames(e,s);this.shortenToLength(i+1)}clearBackToTableContext(){this.clearBackTo(u,t.NS.HTML)}clearBackToTableBodyContext(){this.clearBackTo(_,t.NS.HTML)}clearBackToTableRowContext(){this.clearBackTo(p,t.NS.HTML)}remove(e){const s=this._indexOf(e);s>=0&&(s===this.stackTop?this.pop():(this.items.splice(s,1),this.tagIDs.splice(s,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===t.TAG_ID.BODY?this.items[1]:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){const s=this._indexOf(e)-1;return s>=0?this.items[s]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===t.TAG_ID.HTML}hasInDynamicScope(e,s){for(let i=this.stackTop;i>=0;i--){const T=this.tagIDs[i];switch(this.treeAdapter.getNamespaceURI(this.items[i])){case t.NS.HTML:{if(T===e)return!0;if(s.has(T))return!1;break}case t.NS.SVG:{if(h.has(T))return!1;break}case t.NS.MATHML:{if(a.has(T))return!1;break}}}return!0}hasInScope(e){return this.hasInDynamicScope(e,n)}hasInListItemScope(e){return this.hasInDynamicScope(e,c)}hasInButtonScope(e){return this.hasInDynamicScope(e,I)}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){const s=this.tagIDs[e];switch(this.treeAdapter.getNamespaceURI(this.items[e])){case t.NS.HTML:{if(t.NUMBERED_HEADERS.has(s))return!0;if(n.has(s))return!1;break}case t.NS.SVG:{if(h.has(s))return!1;break}case t.NS.MATHML:{if(a.has(s))return!1;break}}}return!0}hasInTableScope(e){for(let s=this.stackTop;s>=0;s--)if(this.treeAdapter.getNamespaceURI(this.items[s])===t.NS.HTML)switch(this.tagIDs[s]){case e:return!0;case t.TAG_ID.TABLE:case t.TAG_ID.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--)if(this.treeAdapter.getNamespaceURI(this.items[e])===t.NS.HTML)switch(this.tagIDs[e]){case t.TAG_ID.TBODY:case t.TAG_ID.THEAD:case t.TAG_ID.TFOOT:return!0;case t.TAG_ID.TABLE:case t.TAG_ID.HTML:return!1}return!0}hasInSelectScope(e){for(let s=this.stackTop;s>=0;s--)if(this.treeAdapter.getNamespaceURI(this.items[s])===t.NS.HTML)switch(this.tagIDs[s]){case e:return!0;case t.TAG_ID.OPTION:case t.TAG_ID.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;this.currentTagId!==void 0&&o.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;this.currentTagId!==void 0&&r.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(e){for(;this.currentTagId!==void 0&&this.currentTagId!==e&&r.has(this.currentTagId);)this.pop()}}exports.OpenElementStack=D;
|
|
2
|
-
//# sourceMappingURL=open-element-stack.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open-element-stack.cjs.js","sources":["../../../../../../../../node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.js"],"sourcesContent":["import { TAG_ID as $, NS, NUMBERED_HEADERS } from '../common/html.js';\n//Element utils\nconst IMPLICIT_END_TAG_REQUIRED = new Set([$.DD, $.DT, $.LI, $.OPTGROUP, $.OPTION, $.P, $.RB, $.RP, $.RT, $.RTC]);\nconst IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([\n ...IMPLICIT_END_TAG_REQUIRED,\n $.CAPTION,\n $.COLGROUP,\n $.TBODY,\n $.TD,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TR,\n]);\nconst SCOPING_ELEMENTS_HTML = new Set([\n $.APPLET,\n $.CAPTION,\n $.HTML,\n $.MARQUEE,\n $.OBJECT,\n $.TABLE,\n $.TD,\n $.TEMPLATE,\n $.TH,\n]);\nconst SCOPING_ELEMENTS_HTML_LIST = new Set([...SCOPING_ELEMENTS_HTML, $.OL, $.UL]);\nconst SCOPING_ELEMENTS_HTML_BUTTON = new Set([...SCOPING_ELEMENTS_HTML, $.BUTTON]);\nconst SCOPING_ELEMENTS_MATHML = new Set([$.ANNOTATION_XML, $.MI, $.MN, $.MO, $.MS, $.MTEXT]);\nconst SCOPING_ELEMENTS_SVG = new Set([$.DESC, $.FOREIGN_OBJECT, $.TITLE]);\nconst TABLE_ROW_CONTEXT = new Set([$.TR, $.TEMPLATE, $.HTML]);\nconst TABLE_BODY_CONTEXT = new Set([$.TBODY, $.TFOOT, $.THEAD, $.TEMPLATE, $.HTML]);\nconst TABLE_CONTEXT = new Set([$.TABLE, $.TEMPLATE, $.HTML]);\nconst TABLE_CELLS = new Set([$.TD, $.TH]);\n//Stack of open elements\nexport class OpenElementStack {\n get currentTmplContentOrNode() {\n return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;\n }\n constructor(document, treeAdapter, handler) {\n this.treeAdapter = treeAdapter;\n this.handler = handler;\n this.items = [];\n this.tagIDs = [];\n this.stackTop = -1;\n this.tmplCount = 0;\n this.currentTagId = $.UNKNOWN;\n this.current = document;\n }\n //Index of element\n _indexOf(element) {\n return this.items.lastIndexOf(element, this.stackTop);\n }\n //Update current element\n _isInTemplate() {\n return this.currentTagId === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagId = this.tagIDs[this.stackTop];\n }\n //Mutations\n push(element, tagID) {\n this.stackTop++;\n this.items[this.stackTop] = element;\n this.current = element;\n this.tagIDs[this.stackTop] = tagID;\n this.currentTagId = tagID;\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n this.handler.onItemPush(element, tagID, true);\n }\n pop() {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, true);\n }\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n this.items[idx] = newElement;\n if (idx === this.stackTop) {\n this.current = newElement;\n }\n }\n insertAfter(referenceElement, newElement, newElementID) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n this.items.splice(insertionIdx, 0, newElement);\n this.tagIDs.splice(insertionIdx, 0, newElementID);\n this.stackTop++;\n if (insertionIdx === this.stackTop) {\n this._updateCurrentElement();\n }\n if (this.current && this.currentTagId !== undefined) {\n this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);\n }\n }\n popUntilTagNamePopped(tagName) {\n let targetIdx = this.stackTop + 1;\n do {\n targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);\n } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);\n this.shortenToLength(Math.max(targetIdx, 0));\n }\n shortenToLength(idx) {\n while (this.stackTop >= idx) {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount -= 1;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, this.stackTop < idx);\n }\n }\n popUntilElementPopped(element) {\n const idx = this._indexOf(element);\n this.shortenToLength(Math.max(idx, 0));\n }\n popUntilPopped(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(Math.max(idx, 0));\n }\n popUntilNumberedHeaderPopped() {\n this.popUntilPopped(NUMBERED_HEADERS, NS.HTML);\n }\n popUntilTableCellPopped() {\n this.popUntilPopped(TABLE_CELLS, NS.HTML);\n }\n popAllUpToHtmlElement() {\n //NOTE: here we assume that the root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.tmplCount = 0;\n this.shortenToLength(1);\n }\n _indexOfTagNames(tagNames, namespace) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (tagNames.has(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {\n return i;\n }\n }\n return -1;\n }\n clearBackTo(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx + 1);\n }\n clearBackToTableContext() {\n this.clearBackTo(TABLE_CONTEXT, NS.HTML);\n }\n clearBackToTableBodyContext() {\n this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML);\n }\n clearBackToTableRowContext() {\n this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML);\n }\n remove(element) {\n const idx = this._indexOf(element);\n if (idx >= 0) {\n if (idx === this.stackTop) {\n this.pop();\n }\n else {\n this.items.splice(idx, 1);\n this.tagIDs.splice(idx, 1);\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(element, false);\n }\n }\n }\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n return this.stackTop >= 1 && this.tagIDs[1] === $.BODY ? this.items[1] : null;\n }\n contains(element) {\n return this._indexOf(element) > -1;\n }\n getCommonAncestor(element) {\n const elementIdx = this._indexOf(element) - 1;\n return elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.tagIDs[0] === $.HTML;\n }\n //Element in scope\n hasInDynamicScope(tagName, htmlScope) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n switch (this.treeAdapter.getNamespaceURI(this.items[i])) {\n case NS.HTML: {\n if (tn === tagName)\n return true;\n if (htmlScope.has(tn))\n return false;\n break;\n }\n case NS.SVG: {\n if (SCOPING_ELEMENTS_SVG.has(tn))\n return false;\n break;\n }\n case NS.MATHML: {\n if (SCOPING_ELEMENTS_MATHML.has(tn))\n return false;\n break;\n }\n }\n }\n return true;\n }\n hasInScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML);\n }\n hasInListItemScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST);\n }\n hasInButtonScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON);\n }\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n switch (this.treeAdapter.getNamespaceURI(this.items[i])) {\n case NS.HTML: {\n if (NUMBERED_HEADERS.has(tn))\n return true;\n if (SCOPING_ELEMENTS_HTML.has(tn))\n return false;\n break;\n }\n case NS.SVG: {\n if (SCOPING_ELEMENTS_SVG.has(tn))\n return false;\n break;\n }\n case NS.MATHML: {\n if (SCOPING_ELEMENTS_MATHML.has(tn))\n return false;\n break;\n }\n }\n }\n return true;\n }\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case tagName: {\n return true;\n }\n case $.TABLE:\n case $.HTML: {\n return false;\n }\n }\n }\n return true;\n }\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n return true;\n }\n case $.TABLE:\n case $.HTML: {\n return false;\n }\n }\n }\n return true;\n }\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case tagName: {\n return true;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n break;\n }\n default: {\n return false;\n }\n }\n }\n return true;\n }\n //Implied end tags\n generateImpliedEndTags() {\n while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsThoroughly() {\n while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsWithExclusion(exclusionId) {\n while (this.currentTagId !== undefined &&\n this.currentTagId !== exclusionId &&\n IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n}\n"],"names":["IMPLICIT_END_TAG_REQUIRED","$","IMPLICIT_END_TAG_REQUIRED_THOROUGHLY","SCOPING_ELEMENTS_HTML","SCOPING_ELEMENTS_HTML_LIST","SCOPING_ELEMENTS_HTML_BUTTON","SCOPING_ELEMENTS_MATHML","SCOPING_ELEMENTS_SVG","TABLE_ROW_CONTEXT","TABLE_BODY_CONTEXT","TABLE_CONTEXT","TABLE_CELLS","OpenElementStack","document","treeAdapter","handler","element","NS","tagID","popped","oldElement","newElement","idx","referenceElement","newElementID","insertionIdx","tagName","targetIdx","tagNames","targetNS","NUMBERED_HEADERS","namespace","elementIdx","htmlScope","tn","i","exclusionId"],"mappings":"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","x_google_ignoreList":[0]}
|