lwc 2.30.0 → 2.30.2

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 +89 -42
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +89 -44
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +83 -42
  5. package/dist/engine-dom/iife/es5/engine-dom.js +108 -63
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +102 -61
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +89 -44
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +83 -42
  11. package/dist/engine-dom/umd/es5/engine-dom.js +108 -63
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +102 -61
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +16 -16
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +16 -14
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  20. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  22. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  24. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  25. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  26. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  27. package/dist/wire-service/iife/es2017/wire-service.js +2 -4
  28. package/dist/wire-service/iife/es2017/wire-service.min.js +1 -1
  29. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -4
  30. package/dist/wire-service/iife/es5/wire-service.js +2 -4
  31. package/dist/wire-service/iife/es5/wire-service.min.js +1 -1
  32. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -4
  33. package/dist/wire-service/umd/es2017/wire-service.js +2 -4
  34. package/dist/wire-service/umd/es2017/wire-service.min.js +1 -1
  35. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -4
  36. package/dist/wire-service/umd/es5/wire-service.js +2 -4
  37. package/dist/wire-service/umd/es5/wire-service.min.js +1 -1
  38. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -4
  39. package/package.json +7 -7
@@ -281,7 +281,7 @@ var LWC = (function (exports) {
281
281
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
282
282
  return attributeName;
283
283
  }
284
- /** version: 2.30.0 */
284
+ /** version: 2.30.2 */
285
285
 
286
286
  /**
287
287
  * Copyright (C) 2018 salesforce.com, inc.
@@ -362,7 +362,7 @@ var LWC = (function (exports) {
362
362
  patch$1(propName);
363
363
  }
364
364
  }
365
- /** version: 2.30.0 */
365
+ /** version: 2.30.2 */
366
366
 
367
367
  /**
368
368
  * Copyright (C) 2018 salesforce.com, inc.
@@ -3144,16 +3144,16 @@ var LWC = (function (exports) {
3144
3144
  // the custom element from the registry is expecting an upgrade callback
3145
3145
  vm = createViewModelHook(elm, vnode, renderer);
3146
3146
  };
3147
- var connectedCallback = function connectedCallback(elm) {
3148
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
3147
+ var connectedCallback;
3148
+ var disconnectedCallback;
3149
+ if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
3150
+ connectedCallback = function connectedCallback(elm) {
3149
3151
  connectRootElement(elm);
3150
- }
3151
- };
3152
- var disconnectedCallback = function disconnectedCallback(elm) {
3153
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
3152
+ };
3153
+ disconnectedCallback = function disconnectedCallback(elm) {
3154
3154
  disconnectRootElement(elm);
3155
- }
3156
- };
3155
+ };
3156
+ }
3157
3157
  // Should never get a tag with upper case letter at this point; the compiler
3158
3158
  // should produce only tags with lowercase letters. However, the Java
3159
3159
  // compiler may generate tagnames with uppercase letters so - for backwards
@@ -4768,7 +4768,6 @@ var LWC = (function (exports) {
4768
4768
  */
4769
4769
  var DeprecatedWiredElementHost = '$$DeprecatedWiredElementHostKey$$';
4770
4770
  var DeprecatedWiredParamsMeta = '$$DeprecatedWiredParamsMetaKey$$';
4771
- var WIRE_DEBUG_ENTRY = '@wire';
4772
4771
  var WireMetaMap = new Map();
4773
4772
  var WireContextRegistrationEvent = /*#__PURE__*/function (_CustomEvent) {
4774
4773
  _inherits(WireContextRegistrationEvent, _CustomEvent);
@@ -4971,7 +4970,6 @@ var LWC = (function (exports) {
4971
4970
  function installWireAdapters(vm) {
4972
4971
  var context = vm.context,
4973
4972
  wire = vm.def.wire;
4974
- vm.debugInfo[WIRE_DEBUG_ENTRY] = create(null);
4975
4973
  var wiredConnecting = context.wiredConnecting = [];
4976
4974
  var wiredDisconnecting = context.wiredDisconnecting = [];
4977
4975
  for (var fieldNameOrMethod in wire) {
@@ -5659,9 +5657,11 @@ var LWC = (function (exports) {
5659
5657
  // Another benefit is that only LWC can create components that actually do anything – if you do
5660
5658
  // `customElements.define('x-foo')`, then you don't have access to the upgradeCallback, so it's a dummy custom element.
5661
5659
  // This class should be created once per tag name.
5662
- var createUpgradableConstructor = function createUpgradableConstructor(_connectedCallback, _disconnectedCallback) {
5660
+ var createUpgradableConstructor = function createUpgradableConstructor(connectedCallback, disconnectedCallback) {
5661
+ var hasConnectedCallback = !isUndefined$1(connectedCallback);
5662
+ var hasDisconnectedCallback = !isUndefined$1(disconnectedCallback);
5663
5663
  // TODO [#2972]: this class should expose observedAttributes as necessary
5664
- return /*#__PURE__*/function (_HTMLElement) {
5664
+ var UpgradableConstructor = /*#__PURE__*/function (_HTMLElement) {
5665
5665
  _inherits(UpgradableConstructor, _HTMLElement);
5666
5666
  var _super7 = _createSuper(UpgradableConstructor);
5667
5667
  function UpgradableConstructor(upgradeCallback) {
@@ -5672,32 +5672,34 @@ var LWC = (function (exports) {
5672
5672
  // then elementBeingUpgraded will be false
5673
5673
  if (elementBeingUpgradedByLWC) {
5674
5674
  upgradeCallback(_assertThisInitialized(_this5));
5675
- } else {
5676
- // keep track of elements that were not created by lwc.createElement,
5677
- // so we can ignore their lifecycle hooks
5675
+ } else if (hasConnectedCallback || hasDisconnectedCallback) {
5676
+ // If this element has connected or disconnected callbacks, then we need to keep track of
5677
+ // instances that were created outside LWC (i.e. not created by `lwc.createElement()`).
5678
+ // If the element has no connected or disconnected callbacks, then we don't need to track this.
5678
5679
  elementsUpgradedOutsideLWC.add(_assertThisInitialized(_this5));
5679
5680
  // TODO [#2970]: LWC elements cannot be upgraded via new Ctor()
5680
5681
  // Do we want to support this? Throw an error? Currently for backwards compat it's a no-op.
5681
5682
  }
5682
5683
  return _this5;
5683
5684
  }
5684
- _createClass(UpgradableConstructor, [{
5685
- key: "connectedCallback",
5686
- value: function connectedCallback() {
5687
- if (!elementsUpgradedOutsideLWC.has(this)) {
5688
- _connectedCallback(this);
5689
- }
5685
+ return _createClass(UpgradableConstructor);
5686
+ }( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); // Do not unnecessarily add a connectedCallback/disconnectedCallback, as it introduces perf overhead
5687
+ // See: https://github.com/salesforce/lwc/pull/3162#issuecomment-1311851174
5688
+ if (hasConnectedCallback) {
5689
+ UpgradableConstructor.prototype.connectedCallback = function () {
5690
+ if (!elementsUpgradedOutsideLWC.has(this)) {
5691
+ connectedCallback(this);
5690
5692
  }
5691
- }, {
5692
- key: "disconnectedCallback",
5693
- value: function disconnectedCallback() {
5694
- if (!elementsUpgradedOutsideLWC.has(this)) {
5695
- _disconnectedCallback(this);
5696
- }
5693
+ };
5694
+ }
5695
+ if (hasDisconnectedCallback) {
5696
+ UpgradableConstructor.prototype.disconnectedCallback = function () {
5697
+ if (!elementsUpgradedOutsideLWC.has(this)) {
5698
+ disconnectedCallback(this);
5697
5699
  }
5698
- }]);
5699
- return UpgradableConstructor;
5700
- }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
5700
+ };
5701
+ }
5702
+ return UpgradableConstructor;
5701
5703
  };
5702
5704
  var createCustomElementVanilla = function createCustomElementVanilla(tagName, upgradeCallback, connectedCallback, disconnectedCallback) {
5703
5705
  // use global custom elements registry
@@ -5757,17 +5759,27 @@ var LWC = (function (exports) {
5757
5759
  var _constructor$prototyp = constructor.prototype,
5758
5760
  connectedCallback = _constructor$prototyp.connectedCallback,
5759
5761
  disconnectedCallback = _constructor$prototyp.disconnectedCallback,
5762
+ formAssociatedCallback = _constructor$prototyp.formAssociatedCallback,
5763
+ formDisabledCallback = _constructor$prototyp.formDisabledCallback,
5764
+ formResetCallback = _constructor$prototyp.formResetCallback,
5765
+ formStateRestoreCallback = _constructor$prototyp.formStateRestoreCallback,
5760
5766
  adoptedCallback = _constructor$prototyp.adoptedCallback,
5761
5767
  attributeChangedCallback = _constructor$prototyp.attributeChangedCallback;
5768
+ var formAssociated = Boolean(constructor.formAssociated);
5762
5769
  var observedAttributes = new Set((_a = constructor.observedAttributes) !== null && _a !== void 0 ? _a : []);
5763
5770
  return {
5764
5771
  UserCtor: constructor,
5765
5772
  PivotCtor: undefined,
5766
5773
  connectedCallback: connectedCallback,
5767
5774
  disconnectedCallback: disconnectedCallback,
5775
+ formAssociatedCallback: formAssociatedCallback,
5776
+ formDisabledCallback: formDisabledCallback,
5777
+ formResetCallback: formResetCallback,
5778
+ formStateRestoreCallback: formStateRestoreCallback,
5768
5779
  adoptedCallback: adoptedCallback,
5769
5780
  attributeChangedCallback: attributeChangedCallback,
5770
- observedAttributes: observedAttributes
5781
+ observedAttributes: observedAttributes,
5782
+ formAssociated: formAssociated
5771
5783
  };
5772
5784
  }
5773
5785
  // Helper to create stand-in element for each tagName registered that delegates out to the registry for the given
@@ -5846,6 +5858,34 @@ var LWC = (function (exports) {
5846
5858
  }
5847
5859
  }
5848
5860
  }
5861
+ }, {
5862
+ key: "formAssociatedCallback",
5863
+ value: function formAssociatedCallback(form) {
5864
+ var _a;
5865
+ var definition = definitionForElement.get(this);
5866
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formAssociatedCallback) === null || _a === void 0 ? void 0 : _a.call(this, form);
5867
+ }
5868
+ }, {
5869
+ key: "formDisabledCallback",
5870
+ value: function formDisabledCallback(disabled) {
5871
+ var _a;
5872
+ var definition = definitionForElement.get(this);
5873
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formDisabledCallback) === null || _a === void 0 ? void 0 : _a.call(this, disabled);
5874
+ }
5875
+ }, {
5876
+ key: "formResetCallback",
5877
+ value: function formResetCallback() {
5878
+ var _a;
5879
+ var definition = definitionForElement.get(this);
5880
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formResetCallback) === null || _a === void 0 ? void 0 : _a.call(this);
5881
+ }
5882
+ }, {
5883
+ key: "formStateRestoreCallback",
5884
+ value: function formStateRestoreCallback(state, mode) {
5885
+ var _a;
5886
+ var definition = definitionForElement.get(this);
5887
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formStateRestoreCallback) === null || _a === void 0 ? void 0 : _a.call(this, state, mode);
5888
+ }
5849
5889
  }, {
5850
5890
  key: "adoptedCallback",
5851
5891
  value: function adoptedCallback() {
@@ -5869,6 +5909,8 @@ var LWC = (function (exports) {
5869
5909
  return PivotCtor;
5870
5910
  }(NativeHTMLElement);
5871
5911
  PivotCtor.observedAttributes = _toConsumableArray(registeredDefinition.observedAttributes);
5912
+ // TODO [#3000]: support case where registeredDefinition is not form-associated, but later definition is.
5913
+ PivotCtor.formAssociated = registeredDefinition.formAssociated;
5872
5914
  registeredPivotCtors.add(PivotCtor);
5873
5915
  return PivotCtor;
5874
5916
  }
@@ -6239,9 +6281,9 @@ var LWC = (function (exports) {
6239
6281
  // Creates a constructor that is intended to be used as the UserConstructor in a scoped (pivots) registry.
6240
6282
  // In this case, the upgradeCallback only needs to be defined once because we create these on-demand,
6241
6283
  // multiple times per tag name.
6242
- var createUserConstructor = function createUserConstructor(upgradeCallback, _connectedCallback2, _disconnectedCallback2, HTMLElementToExtend) {
6284
+ var createUserConstructor = function createUserConstructor(HTMLElementToExtend, upgradeCallback, connectedCallback, disconnectedCallback) {
6243
6285
  // TODO [#2972]: this class should expose observedAttributes as necessary
6244
- return /*#__PURE__*/function (_HTMLElementToExtend) {
6286
+ var UserConstructor = /*#__PURE__*/function (_HTMLElementToExtend) {
6245
6287
  _inherits(UserConstructor, _HTMLElementToExtend);
6246
6288
  var _super9 = _createSuper(UserConstructor);
6247
6289
  function UserConstructor() {
@@ -6251,26 +6293,27 @@ var LWC = (function (exports) {
6251
6293
  upgradeCallback(_assertThisInitialized(_this7));
6252
6294
  return _this7;
6253
6295
  }
6254
- _createClass(UserConstructor, [{
6255
- key: "connectedCallback",
6256
- value: function connectedCallback() {
6257
- _connectedCallback2(this);
6258
- }
6259
- }, {
6260
- key: "disconnectedCallback",
6261
- value: function disconnectedCallback() {
6262
- _disconnectedCallback2(this);
6263
- }
6264
- }]);
6265
- return UserConstructor;
6266
- }(HTMLElementToExtend);
6296
+ return _createClass(UserConstructor);
6297
+ }(HTMLElementToExtend); // Do not unnecessarily add a connectedCallback/disconnectedCallback, as it introduces perf overhead
6298
+ // See: https://github.com/salesforce/lwc/pull/3162#issuecomment-1311851174
6299
+ if (!isUndefined$1(connectedCallback)) {
6300
+ UserConstructor.prototype.connectedCallback = function () {
6301
+ connectedCallback(this);
6302
+ };
6303
+ }
6304
+ if (!isUndefined$1(disconnectedCallback)) {
6305
+ UserConstructor.prototype.disconnectedCallback = function () {
6306
+ disconnectedCallback(this);
6307
+ };
6308
+ }
6309
+ return UserConstructor;
6267
6310
  };
6268
6311
  function createCustomElementScoped(tagName, upgradeCallback, connectedCallback, disconnectedCallback) {
6269
6312
  if (isUndefined$1(createScopedConstructor) || isUndefined$1(CachedHTMLElement)) {
6270
6313
  // This error should be impossible to hit
6271
6314
  throw new Error('The flag ENABLE_SCOPED_CUSTOM_ELEMENT_REGISTRY must be set to true to use this feature');
6272
6315
  }
6273
- var UserConstructor = createUserConstructor(upgradeCallback, connectedCallback, disconnectedCallback, CachedHTMLElement);
6316
+ var UserConstructor = createUserConstructor(CachedHTMLElement, upgradeCallback, connectedCallback, disconnectedCallback);
6274
6317
  var ScopedConstructor = createScopedConstructor(tagName, UserConstructor);
6275
6318
  return new ScopedConstructor(UserConstructor);
6276
6319
  }
@@ -6365,7 +6408,7 @@ var LWC = (function (exports) {
6365
6408
  function isNull(obj) {
6366
6409
  return obj === null;
6367
6410
  }
6368
- /** version: 2.30.0 */
6411
+ /** version: 2.30.2 */
6369
6412
 
6370
6413
  /*
6371
6414
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6843,16 +6886,16 @@ var LWC = (function (exports) {
6843
6886
  DisconnectingSlot.set(elm, disconnectRootElement);
6844
6887
  }
6845
6888
  };
6846
- var connectedCallback = function connectedCallback(elm) {
6847
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6889
+ var connectedCallback;
6890
+ var disconnectedCallback;
6891
+ if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6892
+ connectedCallback = function connectedCallback(elm) {
6848
6893
  connectRootElement(elm);
6849
- }
6850
- };
6851
- var disconnectedCallback = function disconnectedCallback(elm) {
6852
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
6894
+ };
6895
+ disconnectedCallback = function disconnectedCallback(elm) {
6853
6896
  disconnectRootElement(elm);
6854
- }
6855
- };
6897
+ };
6898
+ }
6856
6899
  var element = createCustomElement(tagName, upgradeCallback, connectedCallback, disconnectedCallback);
6857
6900
  return element;
6858
6901
  }
@@ -6924,7 +6967,7 @@ var LWC = (function (exports) {
6924
6967
  });
6925
6968
  freeze(LightningElement);
6926
6969
  seal(LightningElement.prototype);
6927
- /* version: 2.30.0 */
6970
+ /* version: 2.30.2 */
6928
6971
 
6929
6972
  exports.LightningElement = LightningElement;
6930
6973
  exports.__unstable__ProfilerControl = profilerControl;
@@ -6958,8 +7001,6 @@ var LWC = (function (exports) {
6958
7001
  exports.unwrap = unwrap;
6959
7002
  exports.wire = wire;
6960
7003
 
6961
- Object.defineProperty(exports, '__esModule', { value: true });
6962
-
6963
7004
  return exports;
6964
7005
 
6965
7006
  })({});
@@ -305,9 +305,9 @@
305
305
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
306
306
  */
307
307
  // Increment whenever the LWC template compiler changes
308
- const LWC_VERSION = "2.30.0";
308
+ const LWC_VERSION = "2.30.2";
309
309
  const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
310
- /** version: 2.30.0 */
310
+ /** version: 2.30.2 */
311
311
 
312
312
  /**
313
313
  * Copyright (C) 2018 salesforce.com, inc.
@@ -389,7 +389,7 @@
389
389
  patch$1(propName);
390
390
  }
391
391
  }
392
- /** version: 2.30.0 */
392
+ /** version: 2.30.2 */
393
393
 
394
394
  /**
395
395
  * Copyright (C) 2018 salesforce.com, inc.
@@ -469,7 +469,7 @@
469
469
  setFeatureFlag(name, value);
470
470
  }
471
471
  }
472
- /** version: 2.30.0 */
472
+ /** version: 2.30.2 */
473
473
 
474
474
  /*
475
475
  * Copyright (c) 2018, salesforce.com, inc.
@@ -4066,16 +4066,16 @@
4066
4066
  // the custom element from the registry is expecting an upgrade callback
4067
4067
  vm = createViewModelHook(elm, vnode, renderer);
4068
4068
  };
4069
- const connectedCallback = elm => {
4070
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
4069
+ let connectedCallback;
4070
+ let disconnectedCallback;
4071
+ if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
4072
+ connectedCallback = elm => {
4071
4073
  connectRootElement(elm);
4072
- }
4073
- };
4074
- const disconnectedCallback = elm => {
4075
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
4074
+ };
4075
+ disconnectedCallback = elm => {
4076
4076
  disconnectRootElement(elm);
4077
- }
4078
- };
4077
+ };
4078
+ }
4079
4079
  // Should never get a tag with upper case letter at this point; the compiler
4080
4080
  // should produce only tags with lowercase letters. However, the Java
4081
4081
  // compiler may generate tagnames with uppercase letters so - for backwards
@@ -6291,7 +6291,9 @@
6291
6291
  wire
6292
6292
  }
6293
6293
  } = vm;
6294
- vm.debugInfo[WIRE_DEBUG_ENTRY] = create(null);
6294
+ if (process.env.NODE_ENV !== 'production') {
6295
+ vm.debugInfo[WIRE_DEBUG_ENTRY] = create(null);
6296
+ }
6295
6297
  const wiredConnecting = context.wiredConnecting = [];
6296
6298
  const wiredDisconnecting = context.wiredDisconnecting = [];
6297
6299
  for (const fieldNameOrMethod in wire) {
@@ -6941,7 +6943,7 @@
6941
6943
  }
6942
6944
  return ctor;
6943
6945
  }
6944
- /* version: 2.30.0 */
6946
+ /* version: 2.30.2 */
6945
6947
 
6946
6948
  /*
6947
6949
  * Copyright (c) 2018, salesforce.com, inc.
@@ -7224,8 +7226,10 @@
7224
7226
  // `customElements.define('x-foo')`, then you don't have access to the upgradeCallback, so it's a dummy custom element.
7225
7227
  // This class should be created once per tag name.
7226
7228
  const createUpgradableConstructor = (connectedCallback, disconnectedCallback) => {
7229
+ const hasConnectedCallback = !isUndefined$1(connectedCallback);
7230
+ const hasDisconnectedCallback = !isUndefined$1(disconnectedCallback);
7227
7231
  // TODO [#2972]: this class should expose observedAttributes as necessary
7228
- return class UpgradableConstructor extends HTMLElement {
7232
+ class UpgradableConstructor extends HTMLElement {
7229
7233
  constructor(upgradeCallback) {
7230
7234
  super();
7231
7235
  // If the element is not created using lwc.createElement(), e.g. `document.createElement('x-foo')`,
@@ -7233,25 +7237,33 @@
7233
7237
  if (elementBeingUpgradedByLWC) {
7234
7238
  upgradeCallback(this);
7235
7239
  }
7236
- else {
7237
- // keep track of elements that were not created by lwc.createElement,
7238
- // so we can ignore their lifecycle hooks
7240
+ else if (hasConnectedCallback || hasDisconnectedCallback) {
7241
+ // If this element has connected or disconnected callbacks, then we need to keep track of
7242
+ // instances that were created outside LWC (i.e. not created by `lwc.createElement()`).
7243
+ // If the element has no connected or disconnected callbacks, then we don't need to track this.
7239
7244
  elementsUpgradedOutsideLWC.add(this);
7240
7245
  // TODO [#2970]: LWC elements cannot be upgraded via new Ctor()
7241
7246
  // Do we want to support this? Throw an error? Currently for backwards compat it's a no-op.
7242
7247
  }
7243
7248
  }
7244
- connectedCallback() {
7249
+ }
7250
+ // Do not unnecessarily add a connectedCallback/disconnectedCallback, as it introduces perf overhead
7251
+ // See: https://github.com/salesforce/lwc/pull/3162#issuecomment-1311851174
7252
+ if (hasConnectedCallback) {
7253
+ UpgradableConstructor.prototype.connectedCallback = function () {
7245
7254
  if (!elementsUpgradedOutsideLWC.has(this)) {
7246
7255
  connectedCallback(this);
7247
7256
  }
7248
- }
7249
- disconnectedCallback() {
7257
+ };
7258
+ }
7259
+ if (hasDisconnectedCallback) {
7260
+ UpgradableConstructor.prototype.disconnectedCallback = function () {
7250
7261
  if (!elementsUpgradedOutsideLWC.has(this)) {
7251
7262
  disconnectedCallback(this);
7252
7263
  }
7253
- }
7254
- };
7264
+ };
7265
+ }
7266
+ return UpgradableConstructor;
7255
7267
  };
7256
7268
  const createCustomElementVanilla = (tagName, upgradeCallback, connectedCallback, disconnectedCallback) => {
7257
7269
  // use global custom elements registry
@@ -7304,16 +7316,22 @@
7304
7316
  const EMPTY_SET = new Set();
7305
7317
  function createDefinitionRecord(constructor) {
7306
7318
  var _a;
7307
- const { connectedCallback, disconnectedCallback, adoptedCallback, attributeChangedCallback, } = constructor.prototype;
7319
+ const { connectedCallback, disconnectedCallback, formAssociatedCallback, formDisabledCallback, formResetCallback, formStateRestoreCallback, adoptedCallback, attributeChangedCallback, } = constructor.prototype;
7320
+ const formAssociated = Boolean(constructor.formAssociated);
7308
7321
  const observedAttributes = new Set((_a = constructor.observedAttributes) !== null && _a !== void 0 ? _a : []);
7309
7322
  return {
7310
7323
  UserCtor: constructor,
7311
7324
  PivotCtor: undefined,
7312
7325
  connectedCallback,
7313
7326
  disconnectedCallback,
7327
+ formAssociatedCallback,
7328
+ formDisabledCallback,
7329
+ formResetCallback,
7330
+ formStateRestoreCallback,
7314
7331
  adoptedCallback,
7315
7332
  attributeChangedCallback,
7316
7333
  observedAttributes,
7334
+ formAssociated,
7317
7335
  };
7318
7336
  }
7319
7337
  // Helper to create stand-in element for each tagName registered that delegates out to the registry for the given
@@ -7388,6 +7406,26 @@
7388
7406
  }
7389
7407
  }
7390
7408
  }
7409
+ formAssociatedCallback(form) {
7410
+ var _a;
7411
+ const definition = definitionForElement.get(this);
7412
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formAssociatedCallback) === null || _a === void 0 ? void 0 : _a.call(this, form);
7413
+ }
7414
+ formDisabledCallback(disabled) {
7415
+ var _a;
7416
+ const definition = definitionForElement.get(this);
7417
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formDisabledCallback) === null || _a === void 0 ? void 0 : _a.call(this, disabled);
7418
+ }
7419
+ formResetCallback() {
7420
+ var _a;
7421
+ const definition = definitionForElement.get(this);
7422
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formResetCallback) === null || _a === void 0 ? void 0 : _a.call(this);
7423
+ }
7424
+ formStateRestoreCallback(state, mode) {
7425
+ var _a;
7426
+ const definition = definitionForElement.get(this);
7427
+ (_a = definition === null || definition === void 0 ? void 0 : definition.formStateRestoreCallback) === null || _a === void 0 ? void 0 : _a.call(this, state, mode);
7428
+ }
7391
7429
  adoptedCallback() {
7392
7430
  var _a;
7393
7431
  const definition = definitionForElement.get(this);
@@ -7406,6 +7444,8 @@
7406
7444
  }
7407
7445
  }
7408
7446
  PivotCtor.observedAttributes = [...registeredDefinition.observedAttributes];
7447
+ // TODO [#3000]: support case where registeredDefinition is not form-associated, but later definition is.
7448
+ PivotCtor.formAssociated = registeredDefinition.formAssociated;
7409
7449
  registeredPivotCtors.add(PivotCtor);
7410
7450
  return PivotCtor;
7411
7451
  }
@@ -7752,27 +7792,34 @@
7752
7792
  // Creates a constructor that is intended to be used as the UserConstructor in a scoped (pivots) registry.
7753
7793
  // In this case, the upgradeCallback only needs to be defined once because we create these on-demand,
7754
7794
  // multiple times per tag name.
7755
- const createUserConstructor = (upgradeCallback, connectedCallback, disconnectedCallback, HTMLElementToExtend) => {
7795
+ const createUserConstructor = (HTMLElementToExtend, upgradeCallback, connectedCallback, disconnectedCallback) => {
7756
7796
  // TODO [#2972]: this class should expose observedAttributes as necessary
7757
- return class UserConstructor extends HTMLElementToExtend {
7797
+ class UserConstructor extends HTMLElementToExtend {
7758
7798
  constructor() {
7759
7799
  super();
7760
7800
  upgradeCallback(this);
7761
7801
  }
7762
- connectedCallback() {
7802
+ }
7803
+ // Do not unnecessarily add a connectedCallback/disconnectedCallback, as it introduces perf overhead
7804
+ // See: https://github.com/salesforce/lwc/pull/3162#issuecomment-1311851174
7805
+ if (!isUndefined$1(connectedCallback)) {
7806
+ UserConstructor.prototype.connectedCallback = function () {
7763
7807
  connectedCallback(this);
7764
- }
7765
- disconnectedCallback() {
7808
+ };
7809
+ }
7810
+ if (!isUndefined$1(disconnectedCallback)) {
7811
+ UserConstructor.prototype.disconnectedCallback = function () {
7766
7812
  disconnectedCallback(this);
7767
- }
7768
- };
7813
+ };
7814
+ }
7815
+ return UserConstructor;
7769
7816
  };
7770
7817
  function createCustomElementScoped(tagName, upgradeCallback, connectedCallback, disconnectedCallback) {
7771
7818
  if (isUndefined$1(createScopedConstructor) || isUndefined$1(CachedHTMLElement)) {
7772
7819
  // This error should be impossible to hit
7773
7820
  throw new Error('The flag ENABLE_SCOPED_CUSTOM_ELEMENT_REGISTRY must be set to true to use this feature');
7774
7821
  }
7775
- const UserConstructor = createUserConstructor(upgradeCallback, connectedCallback, disconnectedCallback, CachedHTMLElement);
7822
+ const UserConstructor = createUserConstructor(CachedHTMLElement, upgradeCallback, connectedCallback, disconnectedCallback);
7776
7823
  const ScopedConstructor = createScopedConstructor(tagName, UserConstructor);
7777
7824
  return new ScopedConstructor(UserConstructor);
7778
7825
  }
@@ -7869,7 +7916,7 @@
7869
7916
  function isNull(obj) {
7870
7917
  return obj === null;
7871
7918
  }
7872
- /** version: 2.30.0 */
7919
+ /** version: 2.30.2 */
7873
7920
 
7874
7921
  /*
7875
7922
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8348,16 +8395,16 @@
8348
8395
  DisconnectingSlot.set(elm, disconnectRootElement);
8349
8396
  }
8350
8397
  };
8351
- const connectedCallback = elm => {
8352
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
8398
+ let connectedCallback;
8399
+ let disconnectedCallback;
8400
+ if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
8401
+ connectedCallback = elm => {
8353
8402
  connectRootElement(elm);
8354
- }
8355
- };
8356
- const disconnectedCallback = elm => {
8357
- if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {
8403
+ };
8404
+ disconnectedCallback = elm => {
8358
8405
  disconnectRootElement(elm);
8359
- }
8360
- };
8406
+ };
8407
+ }
8361
8408
  const element = createCustomElement(tagName, upgradeCallback, connectedCallback, disconnectedCallback);
8362
8409
  return element;
8363
8410
  }
@@ -8430,7 +8477,7 @@
8430
8477
  });
8431
8478
  freeze(LightningElement);
8432
8479
  seal(LightningElement.prototype);
8433
- /* version: 2.30.0 */
8480
+ /* version: 2.30.2 */
8434
8481
 
8435
8482
  exports.LightningElement = LightningElement;
8436
8483
  exports.__unstable__ProfilerControl = profilerControl;
@@ -8464,6 +8511,4 @@
8464
8511
  exports.unwrap = unwrap;
8465
8512
  exports.wire = wire;
8466
8513
 
8467
- Object.defineProperty(exports, '__esModule', { value: true });
8468
-
8469
8514
  }));