SimpleExpressionNode,
TemplateChildNode,
} from '@vue/compiler-dom'
-import type { Prettify } from '@vue/shared'
+import type { Namespace, Prettify } from '@vue/shared'
import type { DirectiveTransform, NodeTransform } from '../transform'
import type { IRProp, IRProps, IRSlots } from './component'
type: IRNodeTypes.ROOT
node: RootNode
source: string
- template: Map<string, number>
+ template: Map<string, Namespace>
templateIndexMap: Map<string, number>
rootTemplateIndex?: number
component: Set<string>
import { mathmlNS, svgNS } from '@vue/runtime-dom'
import { adoptTemplate, currentHydrationNode, isHydrating } from './hydration'
import { child, createTextNode } from './node'
+import { type Namespace, Namespaces } from '@vue/shared'
let t: HTMLTemplateElement
let st: HTMLTemplateElement
let mt: HTMLTemplateElement
/*! #__NO_SIDE_EFFECTS__ */
-export function template(html: string, root?: boolean, ns?: number) {
+export function template(html: string, root?: boolean, ns?: Namespace) {
let node: Node
return (): Node & { $root?: true } => {
if (isHydrating) {
t = t || document.createElement('template')
t.innerHTML = html
node = child(t.content)
- } else if (ns === 1) {
+ } else if (ns === Namespaces.SVG) {
st = st || document.createElementNS(svgNS, 'template')
st.innerHTML = html
node = child(st)