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 | 2x 2x 2x 14x 14x 2x 11x 11x 11x 11x 11x 11x 3x 11x 5x 3x 2x 11x 3x 11x 11x 2x 28x 28x 28x 28x 28x 28x 9x 28x 13x 7x 6x 28x 6x 28x 28x | import { isArray, looseEqual, looseIndexOf } from '@vue/shared' import { ssrRenderAttr } from './ssrRenderAttrs' export const ssrLooseEqual = looseEqual as (a: unknown, b: unknown) => boolean export function ssrLooseContain(arr: unknown[], value: unknown): boolean { return looseIndexOf(arr, value) > -1 } // for <input :type="type" v-model="model" value="value"> export function ssrRenderDynamicModel( type: unknown, model: unknown, value: unknown, ): string { switch (type) { case 'radio': return looseEqual(model, value) ? ' checked' : '' case 'checkbox': return (isArray(model) ? ssrLooseContain(model, value) : model) ? ' checked' : '' default: // text types return ssrRenderAttr('value', model) } } // for <input v-bind="obj" v-model="model"> export function ssrGetDynamicModelProps( existingProps: any = {}, model: unknown, ): { checked: true } | { value: any } | null { const { type, value } = existingProps switch (type) { case 'radio': return looseEqual(model, value) ? { checked: true } : null case 'checkbox': return (isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null default: // text types return { value: model } } } |