model.ts — vue Source File
Architecture documentation for model.ts, a typescript file in the vue codebase. 2 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR fcca8701_d9a7_87d6_1289_ab39e40418c1["model.ts"] 156bf2e1_8a13_f22d_5437_54f14bcef8fa["util"] fcca8701_d9a7_87d6_1289_ab39e40418c1 --> 156bf2e1_8a13_f22d_5437_54f14bcef8fa 81ed4f13_7d68_6e21_7425_cf978f68576f["vnode"] fcca8701_d9a7_87d6_1289_ab39e40418c1 --> 81ed4f13_7d68_6e21_7425_cf978f68576f 083fac44_960c_224b_9690_d2743ae34b45["index.ts"] 083fac44_960c_224b_9690_d2743ae34b45 --> fcca8701_d9a7_87d6_1289_ab39e40418c1 style fcca8701_d9a7_87d6_1289_ab39e40418c1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { looseEqual, looseIndexOf } from 'shared/util'
import type { VNodeDirective, VNodeWithData } from 'types/vnode'
// this is only applied for <select v-model> because it is the only edge case
// that must be done at runtime instead of compile time.
export default function model(node: VNodeWithData, dir: VNodeDirective) {
if (!node.children) return
const value = dir.value
const isMultiple = node.data.attrs && node.data.attrs.multiple
for (let i = 0, l = node.children.length; i < l; i++) {
const option = node.children[i]
if (option.tag === 'option') {
if (isMultiple) {
const selected =
Array.isArray(value) && looseIndexOf(value, getValue(option)) > -1
if (selected) {
setSelected(option)
}
} else {
if (looseEqual(value, getValue(option))) {
setSelected(option)
return
}
}
}
}
}
function getValue(option) {
const data = option.data || {}
return (
(data.attrs && data.attrs.value) ||
(data.domProps && data.domProps.value) ||
(option.children && option.children[0] && option.children[0].text)
)
}
function setSelected(option) {
const data = option.data || (option.data = {})
const attrs = data.attrs || (data.attrs = {})
attrs.selected = ''
}
Domain
Subdomains
Functions
Dependencies
- util
- vnode
Imported By
Source
Frequently Asked Questions
What does model.ts do?
model.ts is a source file in the vue codebase, written in typescript. It belongs to the ServerRenderer domain, TemplateRenderer subdomain.
What functions are defined in model.ts?
model.ts defines 3 function(s): getValue, model, setSelected.
What does model.ts depend on?
model.ts imports 2 module(s): util, vnode.
What files import model.ts?
model.ts is imported by 1 file(s): index.ts.
Where is model.ts in the architecture?
model.ts is located at packages/server-renderer/src/directives/model.ts (domain: ServerRenderer, subdomain: TemplateRenderer, directory: packages/server-renderer/src/directives).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free