@vaadin/component-base 24.8.0-alpha1 → 24.8.0-alpha10

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/component-base",
3
- "version": "24.8.0-alpha1",
3
+ "version": "24.8.0-alpha10",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -38,10 +38,10 @@
38
38
  "lit": "^3.0.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@vaadin/chai-plugins": "24.8.0-alpha1",
42
- "@vaadin/test-runner-commands": "24.8.0-alpha1",
41
+ "@vaadin/chai-plugins": "24.8.0-alpha10",
42
+ "@vaadin/test-runner-commands": "24.8.0-alpha10",
43
43
  "@vaadin/testing-helpers": "^1.1.0",
44
44
  "sinon": "^18.0.0"
45
45
  },
46
- "gitHead": "dfec8767c5d1c343ae689c93429c3364f4182f76"
46
+ "gitHead": "f8c79ffc67eccc3ade226dfe52fbf7d3d46428cf"
47
47
  }
package/src/define.js CHANGED
@@ -13,7 +13,7 @@ function dashToCamelCase(dash) {
13
13
 
14
14
  const experimentalMap = {};
15
15
 
16
- export function defineCustomElement(CustomElement, version = '24.8.0-alpha1') {
16
+ export function defineCustomElement(CustomElement, version = '24.8.0-alpha10') {
17
17
  Object.defineProperty(CustomElement, 'version', {
18
18
  get() {
19
19
  return version;
@@ -5,17 +5,6 @@
5
5
  */
6
6
  import type { Constructor } from '@open-wc/dedupe-mixin';
7
7
 
8
- /**
9
- * Recursively makes all properties of an i18n object optional.
10
- *
11
- * For internal use only.
12
- */
13
- export type PartialI18n<T> = T extends object
14
- ? {
15
- [P in keyof T]?: PartialI18n<T[P]>;
16
- }
17
- : T;
18
-
19
8
  /**
20
9
  * A mixin that allows to set partial I18N properties.
21
10
  */
package/src/i18n-mixin.js CHANGED
@@ -41,6 +41,16 @@ export const I18nMixin = (defaultI18n, superClass) =>
41
41
  class I18nMixinClass extends superClass {
42
42
  static get properties() {
43
43
  return {
44
+ /** @private */
45
+ // Technically declaring a Polymer property is not needed, as we have a
46
+ // getter/setter for it below. However, the React components currently
47
+ // rely on the Polymer property declaration to detect which properties
48
+ // are available on a custom element, so we add a dummy declaration for
49
+ // it.
50
+ i18n: {
51
+ type: Object,
52
+ },
53
+
44
54
  /** @private */
45
55
  __effectiveI18n: {
46
56
  type: Object,
@@ -80,6 +90,9 @@ export const I18nMixin = (defaultI18n, superClass) =>
80
90
  * @param {Object} value
81
91
  */
82
92
  set i18n(value) {
93
+ if (value === this.__customI18n) {
94
+ return;
95
+ }
83
96
  this.__customI18n = value;
84
97
  this.__effectiveI18n = deepMerge({}, defaultI18n, this.__customI18n);
85
98
  }
@@ -50,7 +50,7 @@ export const SlotStylesMixin = dedupingMixin(
50
50
  * @protected
51
51
  */
52
52
  get slotStyles() {
53
- return {};
53
+ return [];
54
54
  }
55
55
 
56
56
  /** @protected */
@@ -178,6 +178,16 @@ export class IronListAdapter {
178
178
  }
179
179
  }
180
180
 
181
+ hostConnected() {
182
+ // Restore scroll position, which is reset when host is removed from DOM,
183
+ // since virtualizer doesn't re-render when adding it to the DOM again.
184
+ // If the scroll target isn't visible and its `offsetParent` is `null`, wait
185
+ // for the ResizeObserver to handle this case (hiding -> moving -> showing).
186
+ if (this.scrollTarget.offsetParent && this.scrollTarget.scrollTop !== this._scrollPosition) {
187
+ this.scrollTarget.scrollTop = this._scrollPosition;
188
+ }
189
+ }
190
+
181
191
  update(startIndex = 0, endIndex = this.size - 1) {
182
192
  const updatedElements = [];
183
193
  this.__getVisibleElements().forEach((el) => {
@@ -80,4 +80,13 @@ export class Virtualizer {
80
80
  flush() {
81
81
  this.__adapter.flush();
82
82
  }
83
+
84
+ /**
85
+ * Notifies the virtualizer about its host element connected to the DOM.
86
+ *
87
+ * @method hostConnected
88
+ */
89
+ hostConnected() {
90
+ this.__adapter.hostConnected();
91
+ }
83
92
  }