Commit Graph

479 Commits

Author SHA1 Message Date
Doctor Wu f31d782e46
fix(runtime-dom): fix option selected update failed (#10200)
close #10194
close #10267
2024-02-06 16:58:51 +08:00
Evan You 2ffb956efe perf(v-model): optimize v-model multiple select w/ large lists
close #10014
2024-01-18 19:55:15 +08:00
cyx cd419aec3c
fix(runtime-dom): unify behavior for v-show + style display binding (#10075)
close #10074
2024-01-11 17:11:35 +08:00
白雾三语 c379bc29ef
fix(types): allow `null` type for textarea value (#9997)
close #9904
2024-01-08 22:58:27 +08:00
zhoulixiang 2701355e8e
fix(hydration): avoid hydration mismatch warning for styles with different order (#10011)
close #10000
close #10006
2024-01-08 16:36:27 +08:00
三咲智子 Kevin Deng bfe6b459d3
style: update format & lint config (#9162)
Co-authored-by: 丶远方 <yangpanteng@gmail.com>
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
Co-authored-by: Guo Xingjun <99574369+Plumbiu@users.noreply.github.com>
2023-12-26 19:39:47 +08:00
Evan You 95f6fffea2 chore: Merge branch 'main' into minor 2023-12-19 18:16:16 +08:00
Thorsten Lünborg 04d2c05054
fix(runtime-dom): cache event handlers by key/modifiers (#9851)
close #9849
2023-12-16 21:54:37 +08:00
Evan You 9f64d2b681 chore: Merge branch 'main' into minor 2023-12-16 14:37:21 +08:00
丶远方 0a387dfb1d
fix(sfc/cssVars): fix loss of CSS v-bind variables when setting inline style with string value (#9824)
close #9821
2023-12-15 09:56:01 +08:00
Mehmet fd0b6ba016
feat(types): export AriaAttributes type (#8909) 2023-12-11 22:05:48 +08:00
Evan You 982a145d38 chore: Merge branch 'main' into minor 2023-12-11 22:03:28 +08:00
丶远方 0d61b429ec
fix(types): add `xmlns:xlink` to `SVGAttributes` (#9300)
close #9299
2023-12-08 22:16:25 +08:00
Fabian Gündel d42b6ba3f5
feat: MathML support (#7836)
close #7820
2023-12-08 18:25:01 +08:00
Evan You 5b002869c5 fix(runtime-dom): fix width and height prop check condition
close #9762
2023-12-07 10:09:26 +08:00
sunjiang0018 af909b7d45
chore: fix typo (#9752) [ci skip] 2023-12-05 12:05:53 +08:00
Carlos Rodrigues 43c3cfdec5
fix(types): improve return type withKeys and withModifiers (#9734) 2023-12-04 07:59:01 +08:00
Evan You da4a4fb5e8 perf(runtime-dom): cache modifier wrapper functions
close #8882
2023-11-30 19:00:00 +08:00
Evan You 6fcec3b2c7 chore: fix width/height check condition 2023-11-30 18:34:06 +08:00
Evan You 9845f1d2a1 chore: optimize widht/height element check 2023-11-30 17:59:27 +08:00
Evan You 38aaa8c886 perf: optimize on* prop check 2023-11-30 17:52:51 +08:00
zhoulixiang bfc1838f31
fix(runtime-dom): set width/height with units as attribute (#8781)
Technically, width / height on `<img>`, `<video>` etc must be integers and cannot contain units. When set as a DOM property, the DOM force converts strings with units to 0. However, this is such a common mistake that most browsers nowadays supports such usage, and it makes sense for Vue to at least let it be set as an attribute.
2023-11-30 17:27:23 +08:00
renovate[bot] 16a6438236
chore(deps): update lint (#9627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-18 10:33:24 +08:00
Evan You 5d077c8754 fix(types): revert class type restrictions
reverts #8012 due to breakage in downstream types
2023-11-13 15:23:16 +08:00
Evan You 2424013059 fix(types): widen ClassValue type 2023-11-10 15:36:30 +08:00
Basil Gor 46e33744c8
fix(types): more precise types for class bindings (#8012) 2023-11-10 15:15:54 +08:00
Evan You 5a41231352 chore: fix formatting + remove duplicated property in jsx type 2023-11-10 15:01:05 +08:00
bqy_fe 58e2a94871
fix(types): update jsx type definitions (#8607) 2023-11-10 14:30:45 +08:00
Yuchao 17aa92b79b
fix(types): allow falsy value types in `StyleValue` (#7954)
close #7955
2023-11-10 14:23:54 +08:00
Rudy 5d932a8e6d
fix(types): defineCustomElement using defineComponent return type with emits (#7937)
close #7782
2023-11-10 13:52:54 +08:00
白雾三语 40f4b77bb5
fix(v-model): avoid overwriting number input with same value (#7004)
close #7003
2023-11-09 15:14:38 +08:00
Kaine 72fdafa0cf
types(runtime-dom): update aria-relevant type (#9043) 2023-10-30 15:15:17 +08:00
白雾三语 26ca89e5cf
fix(types): support contenteditable="plaintext-only" (#8796) 2023-10-20 17:35:53 +08:00
丶远方 2ffe3d5b3e
refactor: use symbol for private properties (#8681) 2023-08-22 16:57:15 +08:00
丶远方 24d98f0327
perf(custom-element): cancel `MutationObserver` listener when disconnected (#8666) 2023-07-12 11:13:20 +08:00
Anthony Fu 438027cf9e
perf: mark `defineComponent` as side-effects-free (#8512) 2023-07-11 17:52:43 +08:00
Kid ceb0732e0b
fix(types/jsx): add `inert` attribute and missing `hidden` values (#8090) 2023-07-11 17:30:01 +08:00
JayMe DotDot 364dc53c7c
fix(types): support correct types for style on svg elements (#6322) 2023-07-10 17:59:44 +08:00
Innei 68d6b43f7e
fix(types/jsx): add missing loading attr for img element (#6160) 2023-07-10 17:58:53 +08:00
OrbisK 7121c925c5
types: update `TextareaHTMLAttributes` and `InputHTMLAttributes` (#6294)
* types: update `TextareaHTMLAttributes` and `InputHTMLAttributes`

add `InputTypeHTMLAttribute` (from `@types/react`) to `InputHTMLAttributes['type' ]`

* chore: format

---------

Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-07-09 13:05:18 +08:00
Evan You 96c76facb7 fix(transition): handle possible auto value for transition/animation durations
close #8409
2023-06-14 12:12:22 +08:00
linghaoSu 4495373d28
fix(runtime-dom): check attribute value when setting option value (#8246)
fix #8227
2023-05-08 15:26:14 +08:00
ntnyq bf16697e25
chore: fix broken vite plugin url in warning message (#8224) 2023-05-08 14:47:02 +08:00
Evan You bdf557f6f2 fix(types): retain type parameters order for public types 2023-04-05 22:30:50 +08:00
三咲智子 Kevin Deng 5a2f5d59cf
feat(types/slots): support slot presence / props type checks via `defineSlots` macro and `slots` option (#7982) 2023-04-03 16:49:16 +08:00
Haoqun Jiang ffe679c490
fix(types/jsx): move JSX DOM types back to `@vue/runtime-dom` (#7979) 2023-03-29 20:22:29 +08:00
Evan You 58e5c51149 build: upgrade to TypeScript 5.x 2023-03-23 17:11:35 +08:00
Evan You eb0c1e7025 build: remove api-extractor 2023-02-03 15:57:00 +08:00
Evan You 124373db50 wip: isolatedModules + use rollup-plugin-esbuild 2023-02-03 04:30:19 +08:00
Evan You 3a6f5eb0f7 fix(build): ensure BaseTransition functions can be tree-shaken 2023-02-02 21:38:57 +08:00
René Koller efe2efd210
fix(compat): fix custom transition classes in compat mode (#7435)
fix #6253
2023-02-01 03:21:50 -05:00
yurj26 b7cfa6f539
fix(runtime-dom): style update error when component use shorthand properties (#7425)
* fix(runtime-dom): style update error when component use shorthand properties

* test(runtime-dom): style update with shorthand properties
2023-01-09 15:16:08 +01:00
Evan You ce363e55a8 chore: fix assertNumber for undefined value 2022-11-14 16:57:44 +08:00
Evan You 7d0c63ff43 fix(custom-elements): use strict number casting
close #4946
close #2598
close #2604

This commit also refactors internal usage of previous loose
implementation of `toNumber` to the stricter version where applicable.
Use of `looseToNumber` is preserved for `v-model.number` modifier to
ensure backwards compatibility and consistency with Vue 2 behavior.
2022-11-14 16:20:12 +08:00
ysy945 67890daad1
fix(custom-elements): custom element should re-instantiate when inserted again (#6966)
fix #6934
2022-11-11 04:06:21 -05:00
Thorsten Lünborg 55382aed58
fix(custom-elements): define declared properties in constructor (#5328) 2022-11-11 02:46:01 -05:00
Evan You 89f37ceb62 fix(custom-elements): fix number type props casting check
fix #5793
adapted from #5794
2022-11-11 15:20:28 +08:00
Evan You afe889999c fix(custom-elements): properties set pre-upgrade should not show up in $attrs 2022-11-11 14:42:42 +08:00
Evan You 5e50909100 fix(custom-elements): should not reflect non-decalred properties set before upgrade 2022-11-11 14:14:55 +08:00
Thorsten Lünborg 665f2ae121
fix(custom-elements): fix event emitting for async custom elements (#5601)
fix #5599
2022-11-10 23:33:17 -05:00
Thorsten Lünborg 0b39e46192
fix(custom-elements): also dispatch hyphenated version of emitted events (#5378)
fix #5373
2022-11-10 23:01:10 -05:00
Thorsten Lünborg 192dcb648c
fix(custom-elements): ensure custom elements can inherit provides from ancestors (#5098)
fix #5096
2022-11-10 21:33:17 -05:00
Evan You 42239cf284 fix(teleport/css-v-bind): fix css v-bind for teleported content
fix #4605
close #4609 (used tests from this PR)
2022-11-10 14:41:45 +08:00
skirtle 9a816dcec0
dx(runtime-dom): warn when a style value ends in a semicolon (#7062) 2022-11-09 08:16:34 -05:00
Rudy e4de623ea7
fix(types): support inferring injected properties in options api (#6804)
close #3031
close #5931
2022-11-08 01:09:53 -05:00
Thorsten Lünborg f67bb500b6
fix(runtime-dom): ensure customElement handles empty props correctly. (#6182)
fix Scoped attribute in Vue file affects the use of web component #6163,#6895
2022-11-01 09:49:06 +01:00
webfansplz 183e4e6152
refactor(types): use template literal types insteads of any (#4166) 2022-10-26 04:31:09 -04:00
Thorsten Lünborg b0b74a160c
fix(runtime-core): custom-element: ensure number casting of camelCase props. (fix: #5374) (#5377) 2022-10-22 11:20:46 +02:00
Evan You 5ee40532a6 fix(runtime-dom): fix event timestamp check in iframes
fix #2513
fix #3933
close #5474
2022-10-14 16:00:03 +08:00
Evan You b1817fe9ee fix(runtime-dom): fix unnecessary warning when setting coerced dom property value
fix #6616
2022-09-27 16:39:15 +08:00
Evan You ab8bfac0a1 chore: remove no longer used cloneNode implementation in nodeOps 2022-09-27 16:17:14 +08:00
Kid 96ba71d0cf
chore: fix typos (#6708) 2022-09-24 15:13:39 +08:00
Evan You 0739f8909a fix(custom-element): fix event listeners with capital letter event names on custom elements
close https://github.com/vuejs/docs/issues/1708
close https://github.com/vuejs/docs/pull/1890
2022-08-30 14:07:35 +08:00
zhangenming 3bdc41dff3
perf: improve the performance of getNow (#5944) 2022-05-22 20:36:57 -04:00
edison dddbd96dfe
fix(transition): fix cancel leave regression (#5974)
fix #5973
2022-05-22 20:02:15 -04:00
Roan Kattouw c03459b9b6
fix(ssr): support client-compiled v-model with dynamic type during ssr (#5787)
fix #5786
2022-05-17 05:52:44 -04:00
小刘(liulinboyi) 71066b5afe
fix(v-model): fix case where .trim and .number modifiers are used together (#5842)
fix #5839
2022-05-12 19:52:16 -04:00
Evan You 8c51c6514f fix(v-model): exclude range from lazy guard logic
fix #5875
2022-05-12 18:39:17 +08:00
Evan You 59cf2958e7 fix(transition): handle edge case of cancel leave before next frame
fix #4462
2022-05-12 15:39:34 +08:00
edison cd659fc86f
fix(ssr): should de-optimize on vnode with PatchFlags.BAIL (#4818)
fix #4679
fix #5771
2022-05-10 06:35:34 -04:00
Julian Hundeloh e58277f6ea
fix(runtime-dom): "el._assign is not a function" in compat mode (#4121) 2022-05-09 21:58:51 -04:00
Evan You 4a3237ad93 refactor: use Event constructor
close #5723

Since we no longer support IE11, it is safe to use Event() constructor
2022-04-16 11:26:00 +08:00
Thorsten Lünborg 85af139863
fix(runtime-dom): properly handle style properties with undefined values (#5348)
fix #5322
2022-04-13 06:20:39 -04:00
宋铄运 (Alan Song) c6eb3cccce
build: improve treeshakeability (#5682) 2022-04-13 05:39:02 -04:00
zhoulixiang 57ca32b096
chore: remove superfluous code (#5683) 2022-04-13 05:30:22 -04:00
zscumt123 fa1d14c2c8
fix(runtime-dom): catch more cases of DOM property setting error (#5552)
close #5545
2022-04-13 05:25:11 -04:00
木杉 2c09969b13
fix(runtime-dom): patch translate as an attr (#5485)
close #5462
2022-04-13 05:16:33 -04:00
Evan You 9aa5dfd4bb fix(runtime-dom): fix static content re-insertion
fix #5308

The regression was introduced in ed9eb62. In the cached code path,
we attempt re-insertion by cloning cached nodes. However if the static
fragment was removed as component root, it loses the nodes between
start and end because each node was removed individually. Therefore
the cached path can only be taken if the fragment has a single node, or
it was removed as part of a parent tree so the sibling information is
still available.
2022-01-23 21:44:32 +08:00
Thorsten Lünborg c35ec47d73
fix(runtime-core): ensure mergeProps skips undefined event handlers (#5299)
fix #5296
2022-01-21 01:13:29 -05:00
Evan You ed9eb62e59 perf: improve memory usage for static vnodes
Use the already mounted nodes as cache instead of separate caching via
template. This reduces memory usage by 30%+ in VitePress.
2022-01-16 21:10:26 +08:00
Che Guevara 595a93715b
refactor(types): use `DOMRect` instead of the `Position` type (#5012) 2021-12-05 23:19:47 -05:00
n2ptune 772574febb
chore(custom-element): fix comment typo (#5028) [skip ci] 2021-12-03 10:10:54 +01:00
Stefan Mayer 1701bf3968
fix(runtime-dom): patchDOMProps should not set _value if element is custom element (#4839)
Co-authored-by: Stefan Mayer <stefan.m.mayer@daimler.com>
2021-11-25 05:30:32 -05:00
Thorsten Lünborg 89b2f924fc
fix(runtime-dom): fix option element value patching edge case (#4959)
fix #4956
2021-11-25 05:05:02 -05:00
Evan You 4b7f76e36a fix(custom-element): fix custom element props access on initial render
ref: #4792
2021-11-02 13:20:31 +08:00
Evan You 3f38d599f5 fix(runtime-dom): fix behavior regression for v-show + style display binding
fix #4768
2021-10-09 19:31:52 -04:00
Evan You 3ca83179d1 fix(custom-element): fix initial attr type casting for programmtically created elements
fix #4772
2021-10-09 18:34:54 -04:00
Evan You 87c86e4cc2 refactor: ensure ssr branches are included in esm-bundler build 2021-09-23 15:02:19 -04:00
Evan You 0cfa2112ce fix(custom-elements): fix number prop casting
fix #4370, close #4393
2021-09-16 19:15:15 -04:00
Evan You d534515836 fix(runtime-dom): style patching shoud always preserve v-show display property
close #4424
2021-09-07 12:25:00 -04:00
dependabot[bot] 305883a12f
build(deps-dev): bump typescript from 4.3.5 to 4.4.2 (#4482)
* build(deps-dev): bump typescript from 4.3.5 to 4.4.2

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.5 to 4.4.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.5...v4.4.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps-dev): bump typescript from 4.3.5 to 4.4.2

* test: fix nodeOps types

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodrigues <carlos@hypermob.co.uk>
Co-authored-by: Evan You <yyx990803@gmail.com>
2021-09-02 09:53:57 -04:00
webfansplz 0627765b36
chore(types): remove unnecessary type assertions (#4336) 2021-08-16 18:19:44 -04:00
skirtle 620a69b871
fix(runtime-dom): consistently remove boolean attributes for falsy values (#4348) 2021-08-16 18:18:36 -04:00
edison e7b0a9d3cf
fix(runtime-dom): patch `textContent` on svg properly (#4301)
fix #4296
2021-08-11 10:53:54 -04:00
Evan You c421fb91b2 feat(runtime-dom): support async component in defineCustomElement
close #4261
2021-08-06 19:15:55 -04:00
hfutsora bc7dd93f92
fix(runtime-dom): fix shadowRoot instanceof check in unsupported browsers (#4238) 2021-08-02 09:41:41 -04:00
Evan You ac74e1dd33 fix(v-model): avoid resetting value of in-focus & lazy input
fix #4182
2021-07-23 15:44:56 -04:00
Evan You bff4ea74c5 fix(hmr): fix custom elements hmr edge cases 2021-07-22 18:54:26 -04:00
Evan You 5b76843b69 feat(runtime-dom): support passing initial props to custom element constructor 2021-07-22 18:19:58 -04:00
Evan You 7a7e1d8e9f feat(runtime-dom): hmr for custom elements 2021-07-22 17:48:15 -04:00
Evan You a7fa4ac28a feat(runtime-dom): support specifying shadow dom styles in defineCustomElement 2021-07-22 16:33:32 -04:00
Evan You ff0c810300 fix(runtime-dom): defer setting value
fix #2325, fix #4024
2021-07-21 16:38:01 -04:00
Evan You 47f488350c chore: run updated prettier 2021-07-19 18:24:18 -04:00
Evan You 3056e9b3dc fix(v-model): properly detect input type=number
fix #3813
2021-07-19 17:46:04 -04:00
Evan You 49dc2dd1e4 fix(sfc/style-vars): properly re-apply style vars on component root elements change
Now uses MutationObserver to ensure it works even for HOCs

fix #3894
2021-07-16 14:30:49 -04:00
Evan You de32cfa43e fix: ensure customElements API ssr compatibility
fix #4129
2021-07-16 14:30:49 -04:00
Evan You 1c7d737cc8 feat: support v-bind .prop & .attr modifiers
Also allows render function usage like the following:

```js
h({
  '.prop': 1, // force set as property
  '^attr': 'foo' // force set as attribute
})
```
2021-07-16 14:30:49 -04:00
Evan You 00f0b3c465 feat: custom element reflection, casting and edge cases 2021-07-16 14:30:49 -04:00
Evan You 8610e1c9e2 feat(runtime-dom): defineCustomElement 2021-07-16 14:30:49 -04:00
HcySunYang 3756270272
fix(runtime-dom): capture errors when setting value for IDL (#3578)
fix #3576
2021-07-15 16:32:25 -04:00
Evan You 7013e8f578 fix(runtime-dom): remove class attribute on nullish values
close #3173
2021-07-15 13:45:43 -04:00
Evan You c0db807844 refactor: simplify static content insertion 2021-07-15 13:16:19 -04:00
Evan You 2937530bef fix(v-model): handle mutations of v-model bound array/sets
fix #4096
2021-07-15 12:14:19 -04:00
edison 6a0c7cd905
fix(sfc): fix style variables injection on static vnode (#3847)
fix #3841
2021-07-14 18:08:12 -04:00
Evan You ba89ca9eca fix(runtime-dom): fix static node content caching edge cases
reverts fded1e8

fix #4023, #4031, #4037
2021-07-01 19:19:53 -04:00
Evan You 4de5d24aa7 perf: improve static content insertion perf
Especially on multiple insertions of the same static node.

fix #3090
2021-06-21 14:38:29 -04:00
HcySunYang ecd97ee6e4
fix(runtime-dom/v-model): only set selectedIndex when the value changes (#3845) 2021-05-29 20:42:13 -04:00
Evan You 6fbf0dd315 chore: use variable instead of literal 2021-05-28 15:56:07 -04:00
GU Yiling e3f5dcb99b
fix(runtime-dom): should remove attribute when binding `null` to `value` (#3564) 2021-05-28 15:48:22 -04:00
Evan You 071986a2c6 fix(transition): fix higher order transition components with merged listeners
fix #3227
2021-05-28 15:42:08 -04:00
Cédric Exbrayat f01aadf2a1
fix(compat): enum coercion warning (#3755) 2021-05-12 17:47:00 -04:00
Evan You 3963f2e963 wip: more tests for v2 compat 2021-04-29 14:45:22 -04:00
Evan You 091e6d67bf feat(config): support configuring runtime compiler via `app.config.compilerOptions`
- `config.isCustomElement` is deprecated - use `app.config.compilerOptions.isCustomElement` instead.
2021-04-26 11:46:29 -04:00
Evan You c55f3ed0e8 wip: fix render fn compat detection 2021-04-11 11:15:40 -04:00
Evan You a2f441dc0e wip: refactor compat check utils 2021-04-09 23:51:50 -04:00
Evan You 7a25cbb7a7 wip: fix compat utils usage 2021-04-09 23:21:54 -04:00
Evan You f8e2361d83 wip: make tests pass again 2021-04-08 16:33:53 -04:00
Evan You c1e5cfe7d6 wip: attr coersion compat 2021-04-07 17:42:03 -04:00
Evan You cf6bcdf895 wip: transition group root compat 2021-04-07 16:19:25 -04:00
Evan You 1c2c77eb9f wip: apply compat enabled flags to currently implemented features 2021-04-07 16:19:25 -04:00
Evan You e2fc84c773 wip: compat configuration 2021-04-07 16:19:24 -04:00
Evan You 068d93b9e5 wip: keyCode compat 2021-04-07 16:19:24 -04:00
Evan You 9828ef0845 wip: transition class compat 2021-04-07 16:19:24 -04:00
Evan You 53b8127a9c wip: progress 2021-04-07 16:19:24 -04:00
Evan You 40e3dd28e1 wip: restructure compat code + global api alignment 2021-04-07 16:19:24 -04:00
Evan You e2d6ff845b wip: root mount api compat 2021-04-07 16:19:24 -04:00
Evan You 24850a99c6 wip: initial compat build setup 2021-04-07 16:19:24 -04:00
HcySunYang 33ba0e3229
fix(runtime-dom): fix event listeners call in firefox <= 53 (#3501)
fix #3485
2021-03-29 19:15:12 -04:00
HcySunYang 2451dd8ae6
fix(runtime-core): the select tag's multiple prop should be set before the children mounting (#3202)
fix #3199
2021-03-25 16:49:34 -04:00
HcySunYang 5dbe834858
fix(rumtime-core): custom dom props should be cloned when cloning a hoisted DOM (#3080)
fix #3072
2021-03-25 10:21:57 -04:00