lwc 2.45.5 → 2.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +5 -11
  2. package/dist/engine-dom/esm/es2017/engine-dom.js +60 -115
  3. package/dist/engine-dom/esm/es2017/engine-dom.js.map +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom.js +60 -115
  5. package/dist/engine-dom/iife/es2017/engine-dom.js.map +1 -1
  6. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +58 -113
  8. package/dist/engine-dom/iife/es2017/engine-dom_debug.js.map +1 -1
  9. package/dist/engine-dom/iife/es5/engine-dom.js +54 -110
  10. package/dist/engine-dom/iife/es5/engine-dom.js.map +1 -1
  11. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  12. package/dist/engine-dom/iife/es5/engine-dom_debug.js +52 -108
  13. package/dist/engine-dom/iife/es5/engine-dom_debug.js.map +1 -1
  14. package/dist/engine-dom/umd/es2017/engine-dom.js +60 -115
  15. package/dist/engine-dom/umd/es2017/engine-dom.js.map +1 -1
  16. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  17. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +58 -113
  18. package/dist/engine-dom/umd/es2017/engine-dom_debug.js.map +1 -1
  19. package/dist/engine-dom/umd/es5/engine-dom.js +54 -110
  20. package/dist/engine-dom/umd/es5/engine-dom.js.map +1 -1
  21. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  22. package/dist/engine-dom/umd/es5/engine-dom_debug.js +52 -108
  23. package/dist/engine-dom/umd/es5/engine-dom_debug.js.map +1 -1
  24. package/dist/engine-server/commonjs/es2017/engine-server.js +58 -114
  25. package/dist/engine-server/commonjs/es2017/engine-server.js.map +1 -1
  26. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  27. package/dist/engine-server/esm/es2017/engine-server.js +58 -114
  28. package/dist/engine-server/esm/es2017/engine-server.js.map +1 -1
  29. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  30. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js.map +1 -1
  31. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  32. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js.map +1 -1
  33. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  34. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js.map +1 -1
  35. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  36. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js.map +1 -1
  37. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  38. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js.map +1 -1
  39. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  40. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js.map +1 -1
  41. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  42. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js.map +1 -1
  43. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  44. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js.map +1 -1
  45. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  46. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js.map +1 -1
  47. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  48. package/dist/wire-service/esm/es2017/wire-service.js.map +1 -1
  49. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  50. package/dist/wire-service/iife/es2017/wire-service.js.map +1 -1
  51. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  52. package/dist/wire-service/iife/es2017/wire-service_debug.js.map +1 -1
  53. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  54. package/dist/wire-service/iife/es5/wire-service.js.map +1 -1
  55. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  56. package/dist/wire-service/iife/es5/wire-service_debug.js.map +1 -1
  57. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  58. package/dist/wire-service/umd/es2017/wire-service.js.map +1 -1
  59. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  60. package/dist/wire-service/umd/es2017/wire-service_debug.js.map +1 -1
  61. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  62. package/dist/wire-service/umd/es5/wire-service.js.map +1 -1
  63. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  64. package/dist/wire-service/umd/es5/wire-service_debug.js.map +1 -1
  65. package/package.json +7 -7
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
- Lightning Web Components (LWC) is an enterprise-grade web components foundation for building user interfaces. LWC provides a simple authoring format for UI Components. LWC compiles this authoring format into low-level Web Component APIs. The `lwc` package is the main entry point for dependencies.
1
+ Lightning Web Components (LWC) is an enterprise-grade web components foundation for building user interfaces. LWC provides a simple authoring format for UI components, which is compiled into low-level Web Component APIs. The `lwc` package is the main entry point for dependencies.
2
2
 
3
3
  - Develop components quickly and declaratively using HTML, JavaScript, and CSS.
4
4
  - Develop accessible components so that everyone can understand and navigate your app.
5
- - Components are encapsulated in all browsers via the `@lwc/synthetic-shadow` package, which polyfills the Shadow DOM.
5
+ - Components are encapsulated in Shadow DOM, with the `@lwc/synthetic-shadow` package as an optional polyfill for older browsers.
6
6
 
7
- Developing a Lightning web component is this easy.
7
+ Developing a Lightning web component is this easy:
8
8
 
9
9
  ```ascii
10
10
  counter
@@ -58,16 +58,10 @@ For IE 11, LWC uses compatibility mode. Code is transpiled down to ES5 and the r
58
58
 
59
59
  [lwc.dev](https://lwc.dev) has all the information you need to develop components using LWC, including [code recipes](https://recipes.lwc.dev/) and code playgrounds.
60
60
 
61
- Get started fast using the [`create-lwc-app`](https://www.npmjs.com/package/create-lwc-app) tool.
62
-
63
- ```bash
64
- npx create-lwc-app my-app
65
- cd my-app
66
- npm run watch
67
- ```
68
-
69
61
  For support, use the `lwc` tag on [Stack Overflow](https://stackoverflow.com/questions/tagged/lwc) or the `lightning-web-components` tag on [Salesforce Stack Exchange](https://salesforce.stackexchange.com/questions/tagged/lightning-web-components).
70
62
 
63
+ When filing a bug, it's useful to use [playground.lwc.dev](https://playground.lwc.dev/) to create a live reproduction of the issue.
64
+
71
65
  ## Release Notes
72
66
 
73
67
  Changes are documented at [github.com/salesforce/lwc/releases](https://github.com/salesforce/lwc/releases).
@@ -246,55 +246,35 @@ const XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
246
246
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
247
247
  */
248
248
  const CAMEL_REGEX = /-([a-z])/g;
249
- // Convoluted map generation so that @lwc/shared remains fully tree-shakable (verify-treeshakable)
250
- const { NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING, NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING } =
251
- /*#__PURE__*/ (() => {
252
- /**
253
- * Map composed of properties to attributes not following the HTML property to attribute mapping
254
- * convention.
255
- */
256
- const NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING = new Map([
257
- ['accessKey', 'accesskey'],
258
- ['readOnly', 'readonly'],
259
- ['tabIndex', 'tabindex'],
260
- ['bgColor', 'bgcolor'],
261
- ['colSpan', 'colspan'],
262
- ['rowSpan', 'rowspan'],
263
- ['contentEditable', 'contenteditable'],
264
- ['crossOrigin', 'crossorigin'],
265
- ['dateTime', 'datetime'],
266
- ['formAction', 'formaction'],
267
- ['isMap', 'ismap'],
268
- ['maxLength', 'maxlength'],
269
- ['minLength', 'minlength'],
270
- ['noValidate', 'novalidate'],
271
- ['useMap', 'usemap'],
272
- ['htmlFor', 'for'],
273
- ]);
274
- /**
275
- * Inverted map with attribute name key and property name value.
276
- */
277
- const NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING = new Map();
278
- NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING.forEach((value, key) => NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING.set(value, key));
279
- return {
280
- NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING,
281
- NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING,
282
- };
283
- })();
249
+ // These are HTML standard prop/attribute IDL mappings, but are not predictable based on camel/kebab-case conversion
250
+ const SPECIAL_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map([
251
+ ['accessKey', 'accesskey'],
252
+ ['readOnly', 'readonly'],
253
+ ['tabIndex', 'tabindex'],
254
+ ['bgColor', 'bgcolor'],
255
+ ['colSpan', 'colspan'],
256
+ ['rowSpan', 'rowspan'],
257
+ ['contentEditable', 'contenteditable'],
258
+ ['crossOrigin', 'crossorigin'],
259
+ ['dateTime', 'datetime'],
260
+ ['formAction', 'formaction'],
261
+ ['isMap', 'ismap'],
262
+ ['maxLength', 'maxlength'],
263
+ ['minLength', 'minlength'],
264
+ ['noValidate', 'novalidate'],
265
+ ['useMap', 'usemap'],
266
+ ['htmlFor', 'for'],
267
+ ]);
284
268
  /**
285
269
  * Map associating previously transformed HTML property into HTML attribute.
286
270
  */
287
271
  const CACHED_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map();
288
- /**
289
- * Map associating previously transformed HTML attribute into HTML property.
290
- */
291
- const CACHED_ATTRIBUTE_PROPERTY_MAPPING = /*@__PURE__@*/ new Map();
292
272
  function htmlPropertyToAttribute(propName) {
293
273
  const ariaAttributeName = AriaPropNameToAttrNameMap[propName];
294
274
  if (!isUndefined$1(ariaAttributeName)) {
295
275
  return ariaAttributeName;
296
276
  }
297
- const specialAttributeName = NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING.get(propName);
277
+ const specialAttributeName = SPECIAL_PROPERTY_ATTRIBUTE_MAPPING.get(propName);
298
278
  if (!isUndefined$1(specialAttributeName)) {
299
279
  return specialAttributeName;
300
280
  }
@@ -317,22 +297,17 @@ function htmlPropertyToAttribute(propName) {
317
297
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
318
298
  return attributeName;
319
299
  }
320
- function htmlAttributeToProperty(attrName) {
321
- const ariaPropertyName = AriaAttrNameToPropNameMap[attrName];
322
- if (!isUndefined$1(ariaPropertyName)) {
323
- return ariaPropertyName;
324
- }
325
- const specialPropertyName = NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING.get(attrName);
326
- if (!isUndefined$1(specialPropertyName)) {
327
- return specialPropertyName;
328
- }
329
- const cachedPropertyName = CACHED_ATTRIBUTE_PROPERTY_MAPPING.get(attrName);
330
- if (!isUndefined$1(cachedPropertyName)) {
331
- return cachedPropertyName;
300
+ /**
301
+ * Map associating previously transformed kabab-case attributes into camel-case props.
302
+ */
303
+ const CACHED_KEBAB_CAMEL_MAPPING = /*@__PURE__@*/ new Map();
304
+ function kebabCaseToCamelCase(attrName) {
305
+ let result = CACHED_KEBAB_CAMEL_MAPPING.get(attrName);
306
+ if (isUndefined$1(result)) {
307
+ result = StringReplace.call(attrName, CAMEL_REGEX, (g) => g[1].toUpperCase());
308
+ CACHED_KEBAB_CAMEL_MAPPING.set(attrName, result);
332
309
  }
333
- const propertyName = StringReplace.call(attrName, CAMEL_REGEX, (g) => g[1].toUpperCase());
334
- CACHED_ATTRIBUTE_PROPERTY_MAPPING.set(attrName, propertyName);
335
- return propertyName;
310
+ return result;
336
311
  }
337
312
 
338
313
  /*
@@ -342,9 +317,9 @@ function htmlAttributeToProperty(attrName) {
342
317
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
343
318
  */
344
319
  // Increment whenever the LWC template compiler changes
345
- const LWC_VERSION = "2.45.5";
320
+ const LWC_VERSION = "2.46.0";
346
321
  const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
347
- /** version: 2.45.5 */
322
+ /** version: 2.46.0 */
348
323
 
349
324
  /* proxy-compat-disable */
350
325
  /**
@@ -423,7 +398,7 @@ function setFeatureFlagForTest(name, value) {
423
398
  setFeatureFlag(name, value);
424
399
  }
425
400
  }
426
- /** version: 2.45.5 */
401
+ /** version: 2.46.0 */
427
402
 
428
403
  /* proxy-compat-disable */
429
404
  /**
@@ -488,7 +463,7 @@ function applyAriaReflection(prototype = Element.prototype) {
488
463
  }
489
464
  }
490
465
  }
491
- /** version: 2.45.5 */
466
+ /** version: 2.46.0 */
492
467
 
493
468
  /*
494
469
  * Copyright (c) 2018, salesforce.com, inc.
@@ -3793,27 +3768,35 @@ function isVScopedSlotFragment(vnode) {
3793
3768
  * SPDX-License-Identifier: MIT
3794
3769
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
3795
3770
  */
3796
- const ColonCharCode$1 = 58;
3771
+ const ColonCharCode = 58;
3797
3772
  function patchAttributes(oldVnode, vnode, renderer) {
3798
- const { attrs } = vnode.data;
3773
+ const { attrs, external } = vnode.data;
3799
3774
  if (isUndefined$1(attrs)) {
3800
3775
  return;
3801
3776
  }
3802
3777
  const oldAttrs = isNull(oldVnode) ? EmptyObject : oldVnode.data.attrs;
3778
+ // Attrs may be the same due to the static content optimization, so we can skip diffing
3803
3779
  if (oldAttrs === attrs) {
3804
3780
  return;
3805
3781
  }
3806
3782
  const { elm } = vnode;
3807
- const { setAttribute, removeAttribute } = renderer;
3783
+ const { setAttribute, removeAttribute, setProperty } = renderer;
3808
3784
  for (const key in attrs) {
3809
3785
  const cur = attrs[key];
3810
3786
  const old = oldAttrs[key];
3811
3787
  if (old !== cur) {
3812
- if (StringCharCodeAt.call(key, 3) === ColonCharCode$1) {
3788
+ let propName;
3789
+ // For external custom elements, sniff to see if the attr should be considered a prop.
3790
+ // Use kebabCaseToCamelCase directly because we don't want to set props like `ariaLabel` or `tabIndex`
3791
+ // on a custom element versus just using the more reliable attribute format.
3792
+ if (external && (propName = kebabCaseToCamelCase(key)) in elm) {
3793
+ setProperty(elm, propName, cur);
3794
+ }
3795
+ else if (StringCharCodeAt.call(key, 3) === ColonCharCode) {
3813
3796
  // Assume xml namespace
3814
3797
  setAttribute(elm, key, cur, XML_NAMESPACE);
3815
3798
  }
3816
- else if (StringCharCodeAt.call(key, 5) === ColonCharCode$1) {
3799
+ else if (StringCharCodeAt.call(key, 5) === ColonCharCode) {
3817
3800
  // Assume xlink namespace
3818
3801
  setAttribute(elm, key, cur, XLINK_NAMESPACE);
3819
3802
  }
@@ -3827,46 +3810,6 @@ function patchAttributes(oldVnode, vnode, renderer) {
3827
3810
  }
3828
3811
  }
3829
3812
 
3830
- /*
3831
- * Copyright (c) 2018, salesforce.com, inc.
3832
- * All rights reserved.
3833
- * SPDX-License-Identifier: MIT
3834
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
3835
- */
3836
- const ColonCharCode = 58;
3837
- function patchAttrUnlessProp(oldVnode, vnode, renderer) {
3838
- const { data: { attrs }, elm, } = vnode;
3839
- if (isUndefined$1(attrs)) {
3840
- return;
3841
- }
3842
- const { removeAttribute, setAttribute, setProperty } = renderer;
3843
- const oldAttrs = isNull(oldVnode) ? EmptyObject : oldVnode.data.attrs;
3844
- for (const name in attrs) {
3845
- const cur = attrs[name];
3846
- const old = oldAttrs[name];
3847
- if (old !== cur) {
3848
- const propName = htmlAttributeToProperty(name);
3849
- if (propName in elm) {
3850
- setProperty(elm, name, cur);
3851
- }
3852
- else if (StringCharCodeAt.call(name, 3) === ColonCharCode) {
3853
- // Assume xml namespace
3854
- setAttribute(elm, name, cur, XML_NAMESPACE);
3855
- }
3856
- else if (StringCharCodeAt.call(name, 5) === ColonCharCode) {
3857
- // Assume xlink namespace
3858
- setAttribute(elm, name, cur, XLINK_NAMESPACE);
3859
- }
3860
- else if (isNull(cur) || isUndefined$1(cur)) {
3861
- removeAttribute(elm, name);
3862
- }
3863
- else {
3864
- setAttribute(elm, name, cur);
3865
- }
3866
- }
3867
- }
3868
- }
3869
-
3870
3813
  /*
3871
3814
  * Copyright (c) 2018, salesforce.com, inc.
3872
3815
  * All rights reserved.
@@ -3888,6 +3831,7 @@ function patchProps(oldVnode, vnode, renderer) {
3888
3831
  if (!isNull(oldVnode)) {
3889
3832
  oldProps = oldVnode.data.props;
3890
3833
  const oldSpread = oldVnode.data.spread;
3834
+ // Props may be the same due to the static content optimization, so we can skip diffing
3891
3835
  if (oldProps === props && oldSpread === spread) {
3892
3836
  return;
3893
3837
  }
@@ -4018,7 +3962,9 @@ function patchStyleAttribute(oldVnode, vnode, renderer) {
4018
3962
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
4019
3963
  */
4020
3964
  function applyEventListeners(vnode, renderer) {
4021
- const { elm, data: { on }, } = vnode;
3965
+ var _a;
3966
+ const { elm } = vnode;
3967
+ const on = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on;
4022
3968
  if (isUndefined$1(on)) {
4023
3969
  return;
4024
3970
  }
@@ -4230,6 +4176,8 @@ function mountStatic(vnode, parent, anchor, renderer) {
4230
4176
  }
4231
4177
  }
4232
4178
  insertNode(elm, parent, anchor, renderer);
4179
+ // Event listeners are only applied once when mounting, so they are allowed for static vnodes
4180
+ applyEventListeners(vnode, renderer);
4233
4181
  }
4234
4182
  function mountCustomElement(vnode, parent, anchor, renderer) {
4235
4183
  const { sel, owner } = vnode;
@@ -4457,12 +4405,7 @@ function patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {
4457
4405
  // value is set before type=radio.
4458
4406
  patchClassAttribute(oldVnode, vnode, renderer);
4459
4407
  patchStyleAttribute(oldVnode, vnode, renderer);
4460
- if (vnode.data.external) {
4461
- patchAttrUnlessProp(oldVnode, vnode, renderer);
4462
- }
4463
- else {
4464
- patchAttributes(oldVnode, vnode, renderer);
4465
- }
4408
+ patchAttributes(oldVnode, vnode, renderer);
4466
4409
  patchProps(oldVnode, vnode, renderer);
4467
4410
  }
4468
4411
  function applyStyleScoping(elm, owner, renderer) {
@@ -4862,7 +4805,7 @@ function ssf(slotName, factory) {
4862
4805
  };
4863
4806
  }
4864
4807
  // [st]atic node
4865
- function st(fragment, key) {
4808
+ function st(fragment, key, data) {
4866
4809
  return {
4867
4810
  type: 4 /* VNodeType.Static */,
4868
4811
  sel: undefined,
@@ -4870,6 +4813,7 @@ function st(fragment, key) {
4870
4813
  elm: undefined,
4871
4814
  fragment,
4872
4815
  owner: getVMBeingRendered(),
4816
+ data,
4873
4817
  };
4874
4818
  }
4875
4819
  // [fr]agment node
@@ -6773,6 +6717,7 @@ function hydrateStaticElement(elm, vnode, renderer) {
6773
6717
  return handleMismatch(elm, vnode, renderer);
6774
6718
  }
6775
6719
  vnode.elm = elm;
6720
+ applyEventListeners(vnode, renderer);
6776
6721
  return elm;
6777
6722
  }
6778
6723
  function hydrateFragment(elm, vnode, renderer) {
@@ -7380,7 +7325,7 @@ function readonly(obj) {
7380
7325
  }
7381
7326
  return getReadOnlyProxy(obj);
7382
7327
  }
7383
- /** version: 2.45.5 */
7328
+ /** version: 2.46.0 */
7384
7329
 
7385
7330
  /*
7386
7331
  * Copyright (c) 2018, salesforce.com, inc.
@@ -7810,7 +7755,7 @@ function rendererFactory(baseRenderer) {
7810
7755
  function isNull(obj) {
7811
7756
  return obj === null;
7812
7757
  }
7813
- /** version: 2.45.5 */
7758
+ /** version: 2.46.0 */
7814
7759
 
7815
7760
  /*
7816
7761
  * Copyright (c) 2023, salesforce.com, inc.
@@ -8429,7 +8374,7 @@ function registerContextProvider(elm, adapterContextToken, onContextSubscription
8429
8374
  });
8430
8375
  }));
8431
8376
  }
8432
- /** version: 2.45.5 */
8377
+ /** version: 2.46.0 */
8433
8378
 
8434
8379
  export { LightningElement, profilerControl as __unstable__ProfilerControl, reportingControl as __unstable__ReportingControl, api$1 as api, deprecatedBuildCustomElementConstructor as buildCustomElementConstructor, createContextProvider, createElement, freezeTemplate, getComponentConstructor, getComponentDef, hydrateComponent, isComponentConstructor, isNodeShadowed as isNodeFromTemplate, parseFragment, parseSVGFragment, readonly, register, registerComponent, registerDecorators, registerTemplate, renderer, rendererFactory, sanitizeAttribute, setFeatureFlag, setFeatureFlagForTest, setHooks, swapComponent, swapStyle, swapTemplate, track, unwrap, wire };
8435
8380
  //# sourceMappingURL=engine-dom.js.map