Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | 43x 43x 43x 43x 43x 43x 503x 35x 35x 35x 43x 136x 43x 43x 367x 367x 367x 367x 367x 367x 43x 43x 42x 42x 1x 1x 1x 42x 42x 42x 42x 42x 42x 367x 43x 35x 35x 35x 35x 35x 35x 34x 34x 34x 35x 402x 123x 402x 2x 2x 2x 2x 2x 77x 2x 2x 1x 2x 75x 75x 43x 68x 54x 54x 54x 61x 63x 43x 55x 43x 59x 59x 56x 54x 177x 67x 78x 43x 43x 43x 43x 8x 8x 8x 8x 43x | import { createRenderer, createHydrationRenderer, warn, RootRenderFunction, CreateAppFunction, Renderer, HydrationRenderer, App, RootHydrateFunction, isRuntimeOnly, DeprecationTypes, compatUtils } from '@vue/runtime-core' import { nodeOps } from './nodeOps' import { patchProp } from './patchProp' // Importing from the compiler, will be tree-shaken in prod import { isFunction, isString, isHTMLTag, isSVGTag, extend, NOOP } from '@vue/shared' declare module '@vue/reactivity' { export interface RefUnwrapBailTypes { // Note: if updating this, also update `types/refBail.d.ts`. runtimeDOMBailTypes: Node | Window } } const rendererOptions = /*#__PURE__*/ extend({ patchProp }, nodeOps) // lazy create the renderer - this makes core renderer logic tree-shakable // in case the user only imports reactivity utilities from Vue. let renderer: Renderer<Element | ShadowRoot> | HydrationRenderer let enabledHydration = false function ensureRenderer() { return ( renderer || (renderer = createRenderer<Node, Element | ShadowRoot>(rendererOptions)) ) } function ensureHydrationRenderer() { renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions) enabledHydration = true return renderer as HydrationRenderer } // use explicit type casts here to avoid import() calls in rolled-up d.ts export const render = ((...args) => { ensureRenderer().render(...args) }) as RootRenderFunction<Element | ShadowRoot> export const hydrate = ((...args) => { ensureHydrationRenderer().hydrate(...args) }) as RootHydrateFunction export const createApp = ((...args) => { const app = ensureRenderer().createApp(...args) if (__DEV__) { injectNativeTagCheck(app) injectCompilerOptionsCheck(app) } const { mount } = app app.mount = (containerOrSelector: Element | ShadowRoot | string): any => { const container = normalizeContainer(containerOrSelector) if (!container) return const component = app._component if (!isFunction(component) && !component.render && !component.template) { // __UNSAFE__ // Reason: potential execution of JS expressions in in-DOM template. // The user must make sure the in-DOM template is trusted. If it's // rendered by the server, the template should not contain any user data. component.template = container.innerHTML // 2.x compat check if (__COMPAT__ && __DEV__) { for (let i = 0; i < container.attributes.length; i++) { const attr = container.attributes[i] Iif (attr.name !== 'v-cloak' && /^(v-|:|@)/.test(attr.name)) { compatUtils.warnDeprecation( DeprecationTypes.GLOBAL_MOUNT_CONTAINER, null ) break } } } } // clear content before mounting container.innerHTML = '' const proxy = mount(container, false, container instanceof SVGElement) if (container instanceof Element) { container.removeAttribute('v-cloak') container.setAttribute('data-v-app', '') } return proxy } return app }) as CreateAppFunction<Element> export const createSSRApp = ((...args) => { const app = ensureHydrationRenderer().createApp(...args) if (__DEV__) { injectNativeTagCheck(app) injectCompilerOptionsCheck(app) } const { mount } = app app.mount = (containerOrSelector: Element | ShadowRoot | string): any => { const container = normalizeContainer(containerOrSelector) if (container) { return mount(container, true, container instanceof SVGElement) } } return app }) as CreateAppFunction<Element> function injectNativeTagCheck(app: App) { // Inject `isNativeTag` // this is used for component name validation (dev only) Object.defineProperty(app.config, 'isNativeTag', { value: (tag: string) => isHTMLTag(tag) || isSVGTag(tag), writable: false }) } // dev only function injectCompilerOptionsCheck(app: App) { if (isRuntimeOnly()) { const isCustomElement = app.config.isCustomElement Object.defineProperty(app.config, 'isCustomElement', { get() { return isCustomElement }, set() { warn( `The \`isCustomElement\` config option is deprecated. Use ` + `\`compilerOptions.isCustomElement\` instead.` ) } }) const compilerOptions = app.config.compilerOptions const msg = `The \`compilerOptions\` config option is only respected when using ` + `a build of Vue.js that includes the runtime compiler (aka "full build"). ` + `Since you are using the runtime-only build, \`compilerOptions\` ` + `must be passed to \`@vue/compiler-dom\` in the build setup instead.\n` + `- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option.\n` + `- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n` + `- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom` Object.defineProperty(app.config, 'compilerOptions', { get() { warn(msg) return compilerOptions }, set() { warn(msg) } }) } } function normalizeContainer( container: Element | ShadowRoot | string ): Element | null { if (isString(container)) { const res = document.querySelector(container) if (__DEV__ && !res) { warn( `Failed to mount app: mount target selector "${container}" returned null.` ) } return res } Iif ( __DEV__ && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === 'closed' ) { warn( `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` ) } return container as any } // Custom element support export { defineCustomElement, defineSSRCustomElement, VueElement, VueElementConstructor } from './apiCustomElement' // SFC CSS utilities export { useCssModule } from './helpers/useCssModule' export { useCssVars } from './helpers/useCssVars' // DOM-only components export { Transition, TransitionProps } from './components/Transition' export { TransitionGroup, TransitionGroupProps } from './components/TransitionGroup' // **Internal** DOM-only runtime directive helpers export { vModelText, vModelCheckbox, vModelRadio, vModelSelect, vModelDynamic } from './directives/vModel' export { withModifiers, withKeys } from './directives/vOn' export { vShow } from './directives/vShow' import { initVModelForSSR } from './directives/vModel' import { initVShowForSSR } from './directives/vShow' let ssrDirectiveInitialized = false /** * @internal */ export const initDirectivesForSSR = __SSR__ ? () => { if (!ssrDirectiveInitialized) { ssrDirectiveInitialized = true initVModelForSSR() initVShowForSSR() } } : NOOP // re-export everything from core // h, Component, reactivity API, nextTick, flags & types export * from '@vue/runtime-core' |