lwc 2.30.1 → 2.30.3

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 (39) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +207 -75
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +207 -75
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +204 -72
  5. package/dist/engine-dom/iife/es5/engine-dom.js +254 -118
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +251 -115
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +207 -75
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +204 -72
  11. package/dist/engine-dom/umd/es5/engine-dom.js +254 -118
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +251 -115
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +128 -48
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +128 -48
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +7 -4
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +7 -4
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  20. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +7 -4
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +7 -4
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  23. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +7 -4
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +7 -4
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  26. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +7 -4
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +7 -4
  28. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  29. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +7 -4
  30. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  31. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  34. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  35. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  36. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  37. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  38. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  39. package/package.json +7 -7
@@ -89,7 +89,6 @@
89
89
  setPrototypeOf = Object.setPrototypeOf;
90
90
  var isArray$1 = Array.isArray;
91
91
  var _Array$prototype = Array.prototype,
92
- ArrayConcat$1 = _Array$prototype.concat,
93
92
  ArrayFilter = _Array$prototype.filter,
94
93
  ArrayIndexOf = _Array$prototype.indexOf,
95
94
  ArrayJoin = _Array$prototype.join,
@@ -190,6 +189,7 @@
190
189
  AriaPropNameToAttrNameMap: AriaPropNameToAttrNameMap
191
190
  };
192
191
  }(),
192
+ AriaAttrNameToPropNameMap = _ref.AriaAttrNameToPropNameMap,
193
193
  AriaPropNameToAttrNameMap = _ref.AriaPropNameToAttrNameMap;
194
194
 
195
195
  /*
@@ -247,15 +247,43 @@
247
247
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
248
248
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
249
249
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
250
- /**
251
- * Map composed of properties to attributes not following the HTML property to attribute mapping
252
- * convention.
250
+
251
+ /*
252
+ * Copyright (c) 2020, salesforce.com, inc.
253
+ * All rights reserved.
254
+ * SPDX-License-Identifier: MIT
255
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
253
256
  */
254
- var NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING = new Map([['accessKey', 'accesskey'], ['readOnly', 'readonly'], ['tabIndex', 'tabindex'], ['bgColor', 'bgcolor'], ['colSpan', 'colspan'], ['rowSpan', 'rowspan'], ['contentEditable', 'contenteditable'], ['crossOrigin', 'crossorigin'], ['dateTime', 'datetime'], ['formAction', 'formaction'], ['isMap', 'ismap'], ['maxLength', 'maxlength'], ['minLength', 'minlength'], ['noValidate', 'novalidate'], ['useMap', 'usemap'], ['htmlFor', 'for']]);
257
+ var CAMEL_REGEX = /-([a-z])/g;
258
+ // Convoluted map generation so that @lwc/shared remains fully tree-shakable (verify-treeshakable)
259
+ var _ref2 = /*#__PURE__*/function () {
260
+ /**
261
+ * Map composed of properties to attributes not following the HTML property to attribute mapping
262
+ * convention.
263
+ */
264
+ var NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING = new Map([['accessKey', 'accesskey'], ['readOnly', 'readonly'], ['tabIndex', 'tabindex'], ['bgColor', 'bgcolor'], ['colSpan', 'colspan'], ['rowSpan', 'rowspan'], ['contentEditable', 'contenteditable'], ['crossOrigin', 'crossorigin'], ['dateTime', 'datetime'], ['formAction', 'formaction'], ['isMap', 'ismap'], ['maxLength', 'maxlength'], ['minLength', 'minlength'], ['noValidate', 'novalidate'], ['useMap', 'usemap'], ['htmlFor', 'for']]);
265
+ /**
266
+ * Inverted map with attribute name key and property name value.
267
+ */
268
+ var NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING = new Map();
269
+ NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING.forEach(function (value, key) {
270
+ return NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING.set(value, key);
271
+ });
272
+ return {
273
+ NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING: NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING,
274
+ NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING: NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING
275
+ };
276
+ }(),
277
+ NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING = _ref2.NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING,
278
+ NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING = _ref2.NO_STANDARD_PROPERTY_ATTRIBUTE_MAPPING;
255
279
  /**
256
280
  * Map associating previously transformed HTML property into HTML attribute.
257
281
  */
258
282
  var CACHED_PROPERTY_ATTRIBUTE_MAPPING = new Map();
283
+ /**
284
+ * Map associating previously transformed HTML attribute into HTML property.
285
+ */
286
+ var CACHED_ATTRIBUTE_PROPERTY_MAPPING = new Map();
259
287
  function htmlPropertyToAttribute(propName) {
260
288
  var ariaAttributeName = AriaPropNameToAttrNameMap[propName];
261
289
  if (!isUndefined$1(ariaAttributeName)) {
@@ -284,7 +312,26 @@
284
312
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
285
313
  return attributeName;
286
314
  }
287
- /** version: 2.30.1 */
315
+ function htmlAttributeToProperty(attrName) {
316
+ var ariaPropertyName = AriaAttrNameToPropNameMap[attrName];
317
+ if (!isUndefined$1(ariaPropertyName)) {
318
+ return ariaPropertyName;
319
+ }
320
+ var specialPropertyName = NO_STANDARD_ATTRIBUTE_PROPERTY_MAPPING.get(attrName);
321
+ if (!isUndefined$1(specialPropertyName)) {
322
+ return specialPropertyName;
323
+ }
324
+ var cachedPropertyName = CACHED_ATTRIBUTE_PROPERTY_MAPPING.get(attrName);
325
+ if (!isUndefined$1(cachedPropertyName)) {
326
+ return cachedPropertyName;
327
+ }
328
+ var propertyName = StringReplace.call(attrName, CAMEL_REGEX, function (g) {
329
+ return g[1].toUpperCase();
330
+ });
331
+ CACHED_ATTRIBUTE_PROPERTY_MAPPING.set(attrName, propertyName);
332
+ return propertyName;
333
+ }
334
+ /** version: 2.30.3 */
288
335
 
289
336
  /**
290
337
  * Copyright (C) 2018 salesforce.com, inc.
@@ -365,7 +412,7 @@
365
412
  patch$1(propName);
366
413
  }
367
414
  }
368
- /** version: 2.30.1 */
415
+ /** version: 2.30.3 */
369
416
 
370
417
  /**
371
418
  * Copyright (C) 2018 salesforce.com, inc.
@@ -2749,7 +2796,7 @@
2749
2796
  * SPDX-License-Identifier: MIT
2750
2797
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
2751
2798
  */
2752
- var ColonCharCode = 58;
2799
+ var ColonCharCode$1 = 58;
2753
2800
  function patchAttributes(oldVnode, vnode, renderer) {
2754
2801
  var attrs = vnode.data.attrs;
2755
2802
  if (isUndefined$1(attrs)) {
@@ -2767,10 +2814,10 @@
2767
2814
  var old = oldAttrs[key];
2768
2815
  if (old !== cur) {
2769
2816
  unlockAttribute(elm, key);
2770
- if (StringCharCodeAt.call(key, 3) === ColonCharCode) {
2817
+ if (StringCharCodeAt.call(key, 3) === ColonCharCode$1) {
2771
2818
  // Assume xml namespace
2772
2819
  setAttribute(elm, key, cur, XML_NAMESPACE);
2773
- } else if (StringCharCodeAt.call(key, 5) === ColonCharCode) {
2820
+ } else if (StringCharCodeAt.call(key, 5) === ColonCharCode$1) {
2774
2821
  // Assume xlink namespace
2775
2822
  setAttribute(elm, key, cur, XLINK_NAMESPACE);
2776
2823
  } else if (isNull(cur) || isUndefined$1(cur)) {
@@ -2783,6 +2830,45 @@
2783
2830
  }
2784
2831
  }
2785
2832
 
2833
+ /*
2834
+ * Copyright (c) 2018, salesforce.com, inc.
2835
+ * All rights reserved.
2836
+ * SPDX-License-Identifier: MIT
2837
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
2838
+ */
2839
+ var ColonCharCode = 58;
2840
+ function patchAttrUnlessProp(oldVnode, vnode, renderer) {
2841
+ var attrs = vnode.data.attrs,
2842
+ elm = vnode.elm;
2843
+ if (isUndefined$1(attrs)) {
2844
+ return;
2845
+ }
2846
+ var removeAttribute = renderer.removeAttribute,
2847
+ setAttribute = renderer.setAttribute,
2848
+ setProperty = renderer.setProperty;
2849
+ var oldAttrs = isNull(oldVnode) ? EmptyObject : oldVnode.data.attrs;
2850
+ for (var name in attrs) {
2851
+ var cur = attrs[name];
2852
+ var old = oldAttrs[name];
2853
+ if (old !== cur) {
2854
+ var _propName2 = htmlAttributeToProperty(name);
2855
+ if (_propName2 in elm) {
2856
+ setProperty(elm, name, cur);
2857
+ } else if (StringCharCodeAt.call(name, 3) === ColonCharCode) {
2858
+ // Assume xml namespace
2859
+ setAttribute(elm, name, cur, XML_NAMESPACE);
2860
+ } else if (StringCharCodeAt.call(name, 5) === ColonCharCode) {
2861
+ // Assume xlink namespace
2862
+ setAttribute(elm, name, cur, XLINK_NAMESPACE);
2863
+ } else if (isNull(cur) || isUndefined$1(cur)) {
2864
+ removeAttribute(elm, name);
2865
+ } else {
2866
+ setAttribute(elm, name, cur);
2867
+ }
2868
+ }
2869
+ }
2870
+ }
2871
+
2786
2872
  /*
2787
2873
  * Copyright (c) 2018, salesforce.com, inc.
2788
2874
  * All rights reserved.
@@ -3147,16 +3233,16 @@
3147
3233
  // the custom element from the registry is expecting an upgrade callback
3148
3234
  vm = createViewModelHook(elm, vnode, renderer);
3149
3235
  };
3150
- var connectedCallback = function connectedCallback(elm) {
3151
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
3236
+ var connectedCallback;
3237
+ var disconnectedCallback;
3238
+ if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
3239
+ connectedCallback = function connectedCallback(elm) {
3152
3240
  connectRootElement(elm);
3153
- }
3154
- };
3155
- var disconnectedCallback = function disconnectedCallback(elm) {
3156
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
3241
+ };
3242
+ disconnectedCallback = function disconnectedCallback(elm) {
3157
3243
  disconnectRootElement(elm);
3158
- }
3159
- };
3244
+ };
3245
+ }
3160
3246
  // Should never get a tag with upper case letter at this point; the compiler
3161
3247
  // should produce only tags with lowercase letters. However, the Java
3162
3248
  // compiler may generate tagnames with uppercase letters so - for backwards
@@ -3305,7 +3391,11 @@
3305
3391
  // value is set before type=radio.
3306
3392
  patchClassAttribute(oldVnode, vnode, renderer);
3307
3393
  patchStyleAttribute(oldVnode, vnode, renderer);
3308
- patchAttributes(oldVnode, vnode, renderer);
3394
+ if (vnode.data.external) {
3395
+ patchAttrUnlessProp(oldVnode, vnode, renderer);
3396
+ } else {
3397
+ patchAttributes(oldVnode, vnode, renderer);
3398
+ }
3309
3399
  patchProps(oldVnode, vnode, renderer);
3310
3400
  }
3311
3401
  function applyStyleScoping(elm, owner, renderer) {
@@ -3666,38 +3756,39 @@
3666
3756
  // [s]lot element node
3667
3757
  function s(slotName, data, children, slotset) {
3668
3758
  if (!isUndefined$1(slotset) && !isUndefined$1(slotset.slotAssignments) && !isUndefined$1(slotset.slotAssignments[slotName]) && slotset.slotAssignments[slotName].length !== 0) {
3669
- children = slotset.slotAssignments[slotName].reduce(function (accumulator, vnode) {
3670
- if (vnode) {
3759
+ var newChildren = [];
3760
+ var slotAssignments = slotset.slotAssignments[slotName];
3761
+ for (var _i19 = 0; _i19 < slotAssignments.length; _i19++) {
3762
+ var vnode = slotAssignments[_i19];
3763
+ if (!isNull(vnode)) {
3671
3764
  var assignedNodeIsScopedSlot = isVScopedSlotFragment(vnode);
3672
3765
  // The only sniff test for a scoped <slot> element is the presence of `slotData`
3673
3766
  var isScopedSlotElement = !isUndefined$1(data.slotData);
3674
3767
  // Check if slot types of parent and child are matching
3675
3768
  if (assignedNodeIsScopedSlot !== isScopedSlotElement) {
3676
3769
  // Ignore slot content from parent
3677
- return accumulator;
3770
+ continue;
3678
3771
  }
3679
3772
  // If the passed slot content is factory, evaluate it and add the produced vnodes
3680
3773
  if (assignedNodeIsScopedSlot) {
3681
3774
  var vmBeingRenderedInception = getVMBeingRendered();
3682
- var scopedSlotChildren = [];
3683
3775
  // Evaluate in the scope of the slot content's owner
3684
3776
  // if a slotset is provided, there will always be an owner. The only case where owner is
3685
3777
  // undefined is for root components, but root components cannot accept slotted content
3686
3778
  setVMBeingRendered(slotset.owner);
3687
3779
  try {
3688
- scopedSlotChildren = vnode.factory(data.slotData);
3780
+ ArrayPush$1.apply(newChildren, vnode.factory(data.slotData));
3689
3781
  } finally {
3690
3782
  setVMBeingRendered(vmBeingRenderedInception);
3691
3783
  }
3692
- return ArrayConcat$1.call(accumulator, scopedSlotChildren);
3693
3784
  } else {
3694
3785
  // If the slot content is standard type, the content is static, no additional
3695
3786
  // processing needed on the vnode
3696
- return ArrayConcat$1.call(accumulator, vnode);
3787
+ ArrayPush$1.call(newChildren, vnode);
3697
3788
  }
3698
3789
  }
3699
- return accumulator;
3700
- }, []);
3790
+ }
3791
+ children = newChildren;
3701
3792
  }
3702
3793
  var vmBeingRendered = getVMBeingRendered();
3703
3794
  var renderMode = vmBeingRendered.renderMode,
@@ -4047,23 +4138,23 @@
4047
4138
  var classAttrToken = hasScopedStyles && hasStyleToken ? " class=\"".concat(stylesheetToken, "\"") : '';
4048
4139
  var attrToken = hasStyleToken && isSyntheticShadow ? ' ' + stylesheetToken : '';
4049
4140
  var htmlFragment = '';
4050
- for (var _i19 = 0, n = keys.length; _i19 < n; _i19++) {
4051
- switch (keys[_i19]) {
4141
+ for (var _i20 = 0, n = keys.length; _i20 < n; _i20++) {
4142
+ switch (keys[_i20]) {
4052
4143
  case 0:
4053
4144
  // styleToken in existing class attr
4054
- htmlFragment += strings[_i19] + classToken;
4145
+ htmlFragment += strings[_i20] + classToken;
4055
4146
  break;
4056
4147
  case 1:
4057
4148
  // styleToken for added class attr
4058
- htmlFragment += strings[_i19] + classAttrToken;
4149
+ htmlFragment += strings[_i20] + classAttrToken;
4059
4150
  break;
4060
4151
  case 2:
4061
4152
  // styleToken as attr
4062
- htmlFragment += strings[_i19] + attrToken;
4153
+ htmlFragment += strings[_i20] + attrToken;
4063
4154
  break;
4064
4155
  case 3:
4065
4156
  // ${1}${2}
4066
- htmlFragment += strings[_i19] + classAttrToken + attrToken;
4157
+ htmlFragment += strings[_i20] + classAttrToken + attrToken;
4067
4158
  break;
4068
4159
  }
4069
4160
  }
@@ -4154,8 +4245,8 @@
4154
4245
  function computeHasScopedStyles(template) {
4155
4246
  var stylesheets = template.stylesheets;
4156
4247
  if (!isUndefined$1(stylesheets)) {
4157
- for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4158
- if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4248
+ for (var _i21 = 0; _i21 < stylesheets.length; _i21++) {
4249
+ if (isTrue(stylesheets[_i21][KEY__SCOPED_CSS])) {
4159
4250
  return true;
4160
4251
  }
4161
4252
  }
@@ -4252,8 +4343,8 @@
4252
4343
  */
4253
4344
  function registerComponent(
4254
4345
  // We typically expect a LightningElementConstructor, but technically you can call this with anything
4255
- Ctor, _ref2) {
4256
- var tmpl = _ref2.tmpl;
4346
+ Ctor, _ref3) {
4347
+ var tmpl = _ref3.tmpl;
4257
4348
  if (isFunction$1(Ctor)) {
4258
4349
  signedTemplateMap.set(Ctor, tmpl);
4259
4350
  }
@@ -4313,8 +4404,8 @@
4313
4404
  * subject to change or being removed.
4314
4405
  */
4315
4406
  function register(service) {
4316
- for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
4317
- var hookName = hooks[_i21];
4407
+ for (var _i22 = 0; _i22 < hooks.length; ++_i22) {
4408
+ var hookName = hooks[_i22];
4318
4409
  if (hookName in service) {
4319
4410
  var l = Services[hookName];
4320
4411
  if (isUndefined$1(l)) {
@@ -4328,8 +4419,8 @@
4328
4419
  var component = vm.component,
4329
4420
  def = vm.def,
4330
4421
  context = vm.context;
4331
- for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
4332
- cbs[_i22].call(undefined, component, {}, def, context);
4422
+ for (var _i23 = 0, len = cbs.length; _i23 < len; ++_i23) {
4423
+ cbs[_i23].call(undefined, component, {}, def, context);
4333
4424
  }
4334
4425
  }
4335
4426
 
@@ -4575,17 +4666,17 @@
4575
4666
  return a.idx - b.idx;
4576
4667
  });
4577
4668
  rehydrateQueue = []; // reset to a new queue
4578
- for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
4579
- var vm = vms[_i23];
4669
+ for (var _i24 = 0, len = vms.length; _i24 < len; _i24 += 1) {
4670
+ var vm = vms[_i24];
4580
4671
  try {
4581
4672
  rehydrate(vm);
4582
4673
  } catch (error) {
4583
- if (_i23 + 1 < len) {
4674
+ if (_i24 + 1 < len) {
4584
4675
  // pieces of the queue are still pending to be rehydrated, those should have priority
4585
4676
  if (rehydrateQueue.length === 0) {
4586
4677
  addCallbackToNextTick(flushRehydrationQueue);
4587
4678
  }
4588
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
4679
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i24 + 1));
4589
4680
  }
4590
4681
  // we need to end the measure before throwing.
4591
4682
  logGlobalOperationEnd(8 /* OperationId.GlobalRehydrate */);
@@ -4651,8 +4742,8 @@
4651
4742
  var vCustomElementCollection = vm.velements;
4652
4743
  // Reporting disconnection for every child in inverse order since they are
4653
4744
  // inserted in reserved order.
4654
- for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
4655
- var elm = vCustomElementCollection[_i24].elm;
4745
+ for (var _i25 = vCustomElementCollection.length - 1; _i25 >= 0; _i25 -= 1) {
4746
+ var elm = vCustomElementCollection[_i25].elm;
4656
4747
  // There are two cases where the element could be undefined:
4657
4748
  // * when there is an error during the construction phase, and an error
4658
4749
  // boundary picks it, there is a possibility that the VCustomElement
@@ -4683,8 +4774,8 @@
4683
4774
  * defined on its shadow.
4684
4775
  */
4685
4776
  function recursivelyDisconnectChildren(vnodes) {
4686
- for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
4687
- var vnode = vnodes[_i25];
4777
+ for (var _i26 = 0, len = vnodes.length; _i26 < len; _i26 += 1) {
4778
+ var vnode = vnodes[_i26];
4688
4779
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
4689
4780
  switch (vnode.type) {
4690
4781
  case 2 /* VNodeType.Element */:
@@ -4708,8 +4799,8 @@
4708
4799
  var children = vm.children,
4709
4800
  renderRoot = vm.renderRoot,
4710
4801
  remove = vm.renderer.remove;
4711
- for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
4712
- var child = children[_i26];
4802
+ for (var _i27 = 0, len = children.length; _i27 < len; _i27++) {
4803
+ var child = children[_i27];
4713
4804
  if (!isNull(child) && !isUndefined$1(child.elm)) {
4714
4805
  remove(child.elm, renderRoot);
4715
4806
  }
@@ -4775,10 +4866,10 @@
4775
4866
  var WireContextRegistrationEvent = /*#__PURE__*/function (_CustomEvent) {
4776
4867
  _inherits(WireContextRegistrationEvent, _CustomEvent);
4777
4868
  var _super5 = _createSuper(WireContextRegistrationEvent);
4778
- function WireContextRegistrationEvent(adapterToken, _ref3) {
4869
+ function WireContextRegistrationEvent(adapterToken, _ref4) {
4779
4870
  var _this4;
4780
- var setNewContext = _ref3.setNewContext,
4781
- setDisconnectedCallback = _ref3.setDisconnectedCallback;
4871
+ var setNewContext = _ref4.setNewContext,
4872
+ setDisconnectedCallback = _ref4.setDisconnectedCallback;
4782
4873
  _classCallCheck(this, WireContextRegistrationEvent);
4783
4874
  _this4 = _super5.call(this, adapterToken, {
4784
4875
  bubbles: true,
@@ -5005,16 +5096,16 @@
5005
5096
  }
5006
5097
  function connectWireAdapters(vm) {
5007
5098
  var wiredConnecting = vm.context.wiredConnecting;
5008
- for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
5009
- wiredConnecting[_i27]();
5099
+ for (var _i28 = 0, len = wiredConnecting.length; _i28 < len; _i28 += 1) {
5100
+ wiredConnecting[_i28]();
5010
5101
  }
5011
5102
  }
5012
5103
  function disconnectWireAdapters(vm) {
5013
5104
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5014
5105
  runWithBoundaryProtection(vm, vm, noop, function () {
5015
5106
  // job
5016
- for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
5017
- wiredDisconnecting[_i28]();
5107
+ for (var _i29 = 0, len = wiredDisconnecting.length; _i29 < len; _i29 += 1) {
5108
+ wiredDisconnecting[_i29]();
5018
5109
  }
5019
5110
  }, noop);
5020
5111
  }
@@ -5224,8 +5315,8 @@
5224
5315
  var nextNode = node;
5225
5316
  var anchor = null;
5226
5317
  var renderer = owner.renderer;
5227
- for (var _i29 = 0; _i29 < children.length; _i29++) {
5228
- var childVnode = children[_i29];
5318
+ for (var _i30 = 0; _i30 < children.length; _i30++) {
5319
+ var childVnode = children[_i30];
5229
5320
  if (!isNull(childVnode)) {
5230
5321
  if (nextNode) {
5231
5322
  nextNode = hydrateNode(nextNode, childVnode, renderer);
@@ -5286,8 +5377,8 @@
5286
5377
  var nodesAreCompatible = true;
5287
5378
  // Validate attributes, though we could always recovery from those by running the update mods.
5288
5379
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
5289
- for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
5290
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i30], 2),
5380
+ for (var _i31 = 0, _Object$entries = Object.entries(attrs); _i31 < _Object$entries.length; _i31++) {
5381
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i31], 2),
5291
5382
  attrName = _Object$entries$_i[0],
5292
5383
  attrValue = _Object$entries$_i[1];
5293
5384
  vnode.owner;
@@ -5374,8 +5465,8 @@
5374
5465
  var parsedVnodeStyle = parseStyleText(elmStyle);
5375
5466
  var expectedStyle = [];
5376
5467
  // styleMap is used when style is set to static value.
5377
- for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
5378
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i31], 3),
5468
+ for (var _i32 = 0, n = styleDecls.length; _i32 < n; _i32++) {
5469
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i32], 3),
5379
5470
  prop = _styleDecls$_i2[0],
5380
5471
  value = _styleDecls$_i2[1],
5381
5472
  important = _styleDecls$_i2[2];
@@ -5660,9 +5751,11 @@
5660
5751
  // Another benefit is that only LWC can create components that actually do anything – if you do
5661
5752
  // `customElements.define('x-foo')`, then you don't have access to the upgradeCallback, so it's a dummy custom element.
5662
5753
  // This class should be created once per tag name.
5663
- var createUpgradableConstructor = function createUpgradableConstructor(_connectedCallback, _disconnectedCallback) {
5754
+ var createUpgradableConstructor = function createUpgradableConstructor(connectedCallback, disconnectedCallback) {
5755
+ var hasConnectedCallback = !isUndefined$1(connectedCallback);
5756
+ var hasDisconnectedCallback = !isUndefined$1(disconnectedCallback);
5664
5757
  // TODO [#2972]: this class should expose observedAttributes as necessary
5665
- return /*#__PURE__*/function (_HTMLElement) {
5758
+ var UpgradableConstructor = /*#__PURE__*/function (_HTMLElement) {
5666
5759
  _inherits(UpgradableConstructor, _HTMLElement);
5667
5760
  var _super7 = _createSuper(UpgradableConstructor);
5668
5761
  function UpgradableConstructor(upgradeCallback) {
@@ -5673,32 +5766,34 @@
5673
5766
  // then elementBeingUpgraded will be false
5674
5767
  if (elementBeingUpgradedByLWC) {
5675
5768
  upgradeCallback(_assertThisInitialized(_this5));
5676
- } else {
5677
- // keep track of elements that were not created by lwc.createElement,
5678
- // so we can ignore their lifecycle hooks
5769
+ } else if (hasConnectedCallback || hasDisconnectedCallback) {
5770
+ // If this element has connected or disconnected callbacks, then we need to keep track of
5771
+ // instances that were created outside LWC (i.e. not created by `lwc.createElement()`).
5772
+ // If the element has no connected or disconnected callbacks, then we don't need to track this.
5679
5773
  elementsUpgradedOutsideLWC.add(_assertThisInitialized(_this5));
5680
5774
  // TODO [#2970]: LWC elements cannot be upgraded via new Ctor()
5681
5775
  // Do we want to support this? Throw an error? Currently for backwards compat it's a no-op.
5682
5776
  }
5683
5777
  return _this5;
5684
5778
  }
5685
- _createClass(UpgradableConstructor, [{
5686
- key: "connectedCallback",
5687
- value: function connectedCallback() {
5688
- if (!elementsUpgradedOutsideLWC.has(this)) {
5689
- _connectedCallback(this);
5690
- }
5779
+ return _createClass(UpgradableConstructor);
5780
+ }( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); // Do not unnecessarily add a connectedCallback/disconnectedCallback, as it introduces perf overhead
5781
+ // See: https://github.com/salesforce/lwc/pull/3162#issuecomment-1311851174
5782
+ if (hasConnectedCallback) {
5783
+ UpgradableConstructor.prototype.connectedCallback = function () {
5784
+ if (!elementsUpgradedOutsideLWC.has(this)) {
5785
+ connectedCallback(this);
5691
5786
  }
5692
- }, {
5693
- key: "disconnectedCallback",
5694
- value: function disconnectedCallback() {
5695
- if (!elementsUpgradedOutsideLWC.has(this)) {
5696
- _disconnectedCallback(this);
5697
- }
5787
+ };
5788
+ }
5789
+ if (hasDisconnectedCallback) {
5790
+ UpgradableConstructor.prototype.disconnectedCallback = function () {
5791
+ if (!elementsUpgradedOutsideLWC.has(this)) {
5792
+ disconnectedCallback(this);
5698
5793
  }
5699
- }]);
5700
- return UpgradableConstructor;
5701
- }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
5794
+ };
5795
+ }
5796
+ return UpgradableConstructor;
5702
5797
  };
5703
5798
  var createCustomElementVanilla = function createCustomElementVanilla(tagName, upgradeCallback, connectedCallback, disconnectedCallback) {
5704
5799
  // use global custom elements registry
@@ -5758,17 +5853,27 @@
5758
5853
  var _constructor$prototyp = constructor.prototype,
5759
5854
  connectedCallback = _constructor$prototyp.connectedCallback,
5760
5855
  disconnectedCallback = _constructor$prototyp.disconnectedCallback,
5856
+ formAssociatedCallback = _constructor$prototyp.formAssociatedCallback,
5857
+ formDisabledCallback = _constructor$prototyp.formDisabledCallback,
5858
+ formResetCallback = _constructor$prototyp.formResetCallback,
5859
+ formStateRestoreCallback = _constructor$prototyp.formStateRestoreCallback,
5761
5860
  adoptedCallback = _constructor$prototyp.adoptedCallback,
5762
5861
  attributeChangedCallback = _constructor$prototyp.attributeChangedCallback;
5862
+ var formAssociated = Boolean(constructor.formAssociated);
5763
5863
  var observedAttributes = new Set((_a = constructor.observedAttributes) !== null && _a !== void 0 ? _a : []);
5764
5864
  return {
5765
5865
  UserCtor: constructor,
5766
5866
  PivotCtor: undefined,
5767
5867
  connectedCallback: connectedCallback,
5768
5868
  disconnectedCallback: disconnectedCallback,
5869
+ formAssociatedCallback: formAssociatedCallback,
5870
+ formDisabledCallback: formDisabledCallback,
5871
+ formResetCallback: formResetCallback,
5872
+ formStateRestoreCallback: formStateRestoreCallback,
5769
5873
  adoptedCallback: adoptedCallback,
5770
5874
  attributeChangedCallback: attributeChangedCallback,
5771
- observedAttributes: observedAttributes
5875
+ observedAttributes: observedAttributes,
5876
+ formAssociated: formAssociated
5772
5877
  };
5773
5878
  }
5774
5879
  // Helper to create stand-in element for each tagName registered that delegates out to the registry for the given
@@ -5847,6 +5952,34 @@
5847
5952
  }
5848
5953
  }
5849
5954
  }
5955
+ }, {
5956
+ key: "formAssociatedCallback",
5957
+ value: function formAssociatedCallback(form) {
5958
+ var _a;
5959
+ var definition = definitionForElement.get(this);
5960
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formAssociatedCallback) === null || _a === void 0 ? void 0 : _a.call(this, form);
5961
+ }
5962
+ }, {
5963
+ key: "formDisabledCallback",
5964
+ value: function formDisabledCallback(disabled) {
5965
+ var _a;
5966
+ var definition = definitionForElement.get(this);
5967
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formDisabledCallback) === null || _a === void 0 ? void 0 : _a.call(this, disabled);
5968
+ }
5969
+ }, {
5970
+ key: "formResetCallback",
5971
+ value: function formResetCallback() {
5972
+ var _a;
5973
+ var definition = definitionForElement.get(this);
5974
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formResetCallback) === null || _a === void 0 ? void 0 : _a.call(this);
5975
+ }
5976
+ }, {
5977
+ key: "formStateRestoreCallback",
5978
+ value: function formStateRestoreCallback(state, mode) {
5979
+ var _a;
5980
+ var definition = definitionForElement.get(this);
5981
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formStateRestoreCallback) === null || _a === void 0 ? void 0 : _a.call(this, state, mode);
5982
+ }
5850
5983
  }, {
5851
5984
  key: "adoptedCallback",
5852
5985
  value: function adoptedCallback() {
@@ -5870,6 +6003,8 @@
5870
6003
  return PivotCtor;
5871
6004
  }(NativeHTMLElement);
5872
6005
  PivotCtor.observedAttributes = _toConsumableArray(registeredDefinition.observedAttributes);
6006
+ // TODO [#3000]: support case where registeredDefinition is not form-associated, but later definition is.
6007
+ PivotCtor.formAssociated = registeredDefinition.formAssociated;
5873
6008
  registeredPivotCtors.add(PivotCtor);
5874
6009
  return PivotCtor;
5875
6010
  }
@@ -6240,9 +6375,9 @@
6240
6375
  // Creates a constructor that is intended to be used as the UserConstructor in a scoped (pivots) registry.
6241
6376
  // In this case, the upgradeCallback only needs to be defined once because we create these on-demand,
6242
6377
  // multiple times per tag name.
6243
- var createUserConstructor = function createUserConstructor(upgradeCallback, _connectedCallback2, _disconnectedCallback2, HTMLElementToExtend) {
6378
+ var createUserConstructor = function createUserConstructor(HTMLElementToExtend, upgradeCallback, connectedCallback, disconnectedCallback) {
6244
6379
  // TODO [#2972]: this class should expose observedAttributes as necessary
6245
- return /*#__PURE__*/function (_HTMLElementToExtend) {
6380
+ var UserConstructor = /*#__PURE__*/function (_HTMLElementToExtend) {
6246
6381
  _inherits(UserConstructor, _HTMLElementToExtend);
6247
6382
  var _super9 = _createSuper(UserConstructor);
6248
6383
  function UserConstructor() {
@@ -6252,26 +6387,27 @@
6252
6387
  upgradeCallback(_assertThisInitialized(_this7));
6253
6388
  return _this7;
6254
6389
  }
6255
- _createClass(UserConstructor, [{
6256
- key: "connectedCallback",
6257
- value: function connectedCallback() {
6258
- _connectedCallback2(this);
6259
- }
6260
- }, {
6261
- key: "disconnectedCallback",
6262
- value: function disconnectedCallback() {
6263
- _disconnectedCallback2(this);
6264
- }
6265
- }]);
6266
- return UserConstructor;
6267
- }(HTMLElementToExtend);
6390
+ return _createClass(UserConstructor);
6391
+ }(HTMLElementToExtend); // Do not unnecessarily add a connectedCallback/disconnectedCallback, as it introduces perf overhead
6392
+ // See: https://github.com/salesforce/lwc/pull/3162#issuecomment-1311851174
6393
+ if (!isUndefined$1(connectedCallback)) {
6394
+ UserConstructor.prototype.connectedCallback = function () {
6395
+ connectedCallback(this);
6396
+ };
6397
+ }
6398
+ if (!isUndefined$1(disconnectedCallback)) {
6399
+ UserConstructor.prototype.disconnectedCallback = function () {
6400
+ disconnectedCallback(this);
6401
+ };
6402
+ }
6403
+ return UserConstructor;
6268
6404
  };
6269
6405
  function createCustomElementScoped(tagName, upgradeCallback, connectedCallback, disconnectedCallback) {
6270
6406
  if (isUndefined$1(createScopedConstructor) || isUndefined$1(CachedHTMLElement)) {
6271
6407
  // This error should be impossible to hit
6272
6408
  throw new Error('The flag ENABLE_SCOPED_CUSTOM_ELEMENT_REGISTRY must be set to true to use this feature');
6273
6409
  }
6274
- var UserConstructor = createUserConstructor(upgradeCallback, connectedCallback, disconnectedCallback, CachedHTMLElement);
6410
+ var UserConstructor = createUserConstructor(CachedHTMLElement, upgradeCallback, connectedCallback, disconnectedCallback);
6275
6411
  var ScopedConstructor = createScopedConstructor(tagName, UserConstructor);
6276
6412
  return new ScopedConstructor(UserConstructor);
6277
6413
  }
@@ -6366,7 +6502,7 @@
6366
6502
  function isNull(obj) {
6367
6503
  return obj === null;
6368
6504
  }
6369
- /** version: 2.30.1 */
6505
+ /** version: 2.30.3 */
6370
6506
 
6371
6507
  /*
6372
6508
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6444,7 +6580,7 @@
6444
6580
  doc.body.innerHTML = html;
6445
6581
  var content = doc.body;
6446
6582
  if (!isUndefined(wrapperTags)) {
6447
- for (var _i32 = 0; _i32 < wrapperTags.length; _i32++) {
6583
+ for (var _i33 = 0; _i33 < wrapperTags.length; _i33++) {
6448
6584
  content = content.firstChild;
6449
6585
  }
6450
6586
  }
@@ -6637,8 +6773,8 @@
6637
6773
  tagName: element.tagName.toLowerCase(),
6638
6774
  hydrated: true
6639
6775
  });
6640
- for (var _i33 = 0, _Object$entries2 = Object.entries(props); _i33 < _Object$entries2.length; _i33++) {
6641
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i33], 2),
6776
+ for (var _i34 = 0, _Object$entries2 = Object.entries(props); _i34 < _Object$entries2.length; _i34++) {
6777
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i34], 2),
6642
6778
  key = _Object$entries2$_i[0],
6643
6779
  value = _Object$entries2$_i[1];
6644
6780
  element[key] = value;
@@ -6844,16 +6980,16 @@
6844
6980
  DisconnectingSlot.set(elm, disconnectRootElement);
6845
6981
  }
6846
6982
  };
6847
- var connectedCallback = function connectedCallback(elm) {
6848
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6983
+ var connectedCallback;
6984
+ var disconnectedCallback;
6985
+ if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6986
+ connectedCallback = function connectedCallback(elm) {
6849
6987
  connectRootElement(elm);
6850
- }
6851
- };
6852
- var disconnectedCallback = function disconnectedCallback(elm) {
6853
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6988
+ };
6989
+ disconnectedCallback = function disconnectedCallback(elm) {
6854
6990
  disconnectRootElement(elm);
6855
- }
6856
- };
6991
+ };
6992
+ }
6857
6993
  var element = createCustomElement(tagName, upgradeCallback, connectedCallback, disconnectedCallback);
6858
6994
  return element;
6859
6995
  }
@@ -6925,7 +7061,7 @@
6925
7061
  });
6926
7062
  freeze(LightningElement);
6927
7063
  seal(LightningElement.prototype);
6928
- /* version: 2.30.1 */
7064
+ /* version: 2.30.3 */
6929
7065
 
6930
7066
  exports.LightningElement = LightningElement;
6931
7067
  exports.__unstable__ProfilerControl = profilerControl;