@vaadin/board 23.0.0-alpha2 → 23.0.0-beta1
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 +4 -4
- package/src/vaadin-board-row.d.ts +6 -3
- package/src/vaadin-board-row.js +17 -26
- package/src/vaadin-board.d.ts +4 -3
- package/src/vaadin-board.js +7 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/board",
|
|
3
|
-
"version": "23.0.0-
|
|
3
|
+
"version": "23.0.0-beta1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"main": "vaadin-board.js",
|
|
20
20
|
"module": "vaadin-board.js",
|
|
21
|
+
"type": "module",
|
|
21
22
|
"files": [
|
|
22
23
|
"src",
|
|
23
24
|
"theme",
|
|
@@ -35,9 +36,8 @@
|
|
|
35
36
|
"polymer"
|
|
36
37
|
],
|
|
37
38
|
"dependencies": {
|
|
38
|
-
"@polymer/iron-resizable-behavior": "^3.0.0",
|
|
39
39
|
"@polymer/polymer": "^3.0.0",
|
|
40
|
-
"@vaadin/component-base": "23.0.0-
|
|
40
|
+
"@vaadin/component-base": "23.0.0-beta1",
|
|
41
41
|
"@vaadin/vaadin-license-checker": "^2.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
46
46
|
"sinon": "^9.2.1"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "467244b76021176c109df675799b07029b293e58"
|
|
49
49
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2017 -
|
|
3
|
+
* Copyright (c) 2017 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
7
|
+
import { ResizeMixin } from '@vaadin/component-base/src/resize-mixin.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* `<vaadin-board-row>` is a web component that together with `<vaadin-board>` component allows
|
|
@@ -39,12 +40,14 @@ import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
|
39
40
|
* `--vaadin-board-width-small` | Determines the width where mode changes from `small` to `medium` | `600px`
|
|
40
41
|
* `--vaadin-board-width-medium` | Determines the width where mode changes from `medium` to `large` | `960px`
|
|
41
42
|
*/
|
|
42
|
-
declare class BoardRow extends ElementMixin(HTMLElement) {
|
|
43
|
+
declare class BoardRow extends ResizeMixin(ElementMixin(HTMLElement)) {
|
|
43
44
|
/**
|
|
44
45
|
* Redraws the row, if necessary.
|
|
45
46
|
*
|
|
46
47
|
* In most cases, a board row will redraw itself if your reconfigure it.
|
|
47
|
-
* If you dynamically change
|
|
48
|
+
* If you dynamically change breakpoints
|
|
49
|
+
* `--vaadin-board-width-small` or `--vaadin-board-width-medium`,
|
|
50
|
+
* then you need to call this method.
|
|
48
51
|
*/
|
|
49
52
|
redraw(): void;
|
|
50
53
|
}
|
package/src/vaadin-board-row.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2017 -
|
|
3
|
+
* Copyright (c) 2017 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
|
-
import { IronResizableBehavior } from '@polymer/iron-resizable-behavior/iron-resizable-behavior.js';
|
|
7
6
|
import { DomIf } from '@polymer/polymer/lib/elements/dom-if.js';
|
|
8
7
|
import { DomRepeat } from '@polymer/polymer/lib/elements/dom-repeat.js';
|
|
9
|
-
import { mixinBehaviors } from '@polymer/polymer/lib/legacy/class.js';
|
|
10
|
-
import { afterNextRender } from '@polymer/polymer/lib/utils/render-status.js';
|
|
11
8
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
12
9
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
10
|
+
import { ResizeMixin } from '@vaadin/component-base/src/resize-mixin.js';
|
|
13
11
|
|
|
14
12
|
const CLASSES = {
|
|
15
13
|
SMALL: 'small',
|
|
@@ -53,8 +51,9 @@ const CLASSES = {
|
|
|
53
51
|
*
|
|
54
52
|
* @extends HTMLElement
|
|
55
53
|
* @mixes ElementMixin
|
|
54
|
+
* @mixes ResizeMixin
|
|
56
55
|
*/
|
|
57
|
-
class BoardRow extends ElementMixin(
|
|
56
|
+
class BoardRow extends ResizeMixin(ElementMixin(PolymerElement)) {
|
|
58
57
|
static get template() {
|
|
59
58
|
return html`
|
|
60
59
|
<style>
|
|
@@ -82,7 +81,6 @@ class BoardRow extends ElementMixin(mixinBehaviors([IronResizableBehavior], Poly
|
|
|
82
81
|
|
|
83
82
|
constructor() {
|
|
84
83
|
super();
|
|
85
|
-
this._onIronResize = this._onIronResize.bind(this);
|
|
86
84
|
this._oldWidth = 0;
|
|
87
85
|
this._oldBreakpoints = { smallSize: 600, mediumSize: 960 };
|
|
88
86
|
this._oldFlexBasis = [];
|
|
@@ -91,26 +89,14 @@ class BoardRow extends ElementMixin(mixinBehaviors([IronResizableBehavior], Poly
|
|
|
91
89
|
/** @protected */
|
|
92
90
|
ready() {
|
|
93
91
|
super.ready();
|
|
94
|
-
|
|
95
|
-
this.$.insertionPoint.addEventListener('slotchange', this.redraw
|
|
96
|
-
afterNextRender(this, function () {
|
|
97
|
-
// force this as an interested resizable of parent
|
|
98
|
-
this.dispatchEvent(
|
|
99
|
-
new CustomEvent('iron-request-resize-notifications', {
|
|
100
|
-
node: this,
|
|
101
|
-
bubbles: true,
|
|
102
|
-
cancelable: true,
|
|
103
|
-
composed: true,
|
|
104
|
-
detail: {}
|
|
105
|
-
})
|
|
106
|
-
);
|
|
107
|
-
});
|
|
92
|
+
|
|
93
|
+
this.$.insertionPoint.addEventListener('slotchange', () => this.redraw());
|
|
108
94
|
}
|
|
109
95
|
|
|
110
96
|
/** @protected */
|
|
111
97
|
connectedCallback() {
|
|
112
98
|
super.connectedCallback();
|
|
113
|
-
|
|
99
|
+
this._onResize();
|
|
114
100
|
}
|
|
115
101
|
|
|
116
102
|
/**
|
|
@@ -177,7 +163,7 @@ class BoardRow extends ElementMixin(mixinBehaviors([IronResizableBehavior], Poly
|
|
|
177
163
|
let spaceLeft = 4;
|
|
178
164
|
let returnBoardCols = [];
|
|
179
165
|
nodes.forEach((node, i) => {
|
|
180
|
-
spaceLeft
|
|
166
|
+
spaceLeft -= boardCols[i];
|
|
181
167
|
});
|
|
182
168
|
|
|
183
169
|
if (spaceLeft < 0) {
|
|
@@ -205,7 +191,7 @@ class BoardRow extends ElementMixin(mixinBehaviors([IronResizableBehavior], Poly
|
|
|
205
191
|
let spaceLeft = 4;
|
|
206
192
|
const returnNodes = [];
|
|
207
193
|
nodes.forEach((node, i) => {
|
|
208
|
-
spaceLeft
|
|
194
|
+
spaceLeft -= boardCols[i];
|
|
209
195
|
if (spaceLeft < 0) {
|
|
210
196
|
if (!isErrorReported) {
|
|
211
197
|
isErrorReported = true;
|
|
@@ -223,14 +209,19 @@ class BoardRow extends ElementMixin(mixinBehaviors([IronResizableBehavior], Poly
|
|
|
223
209
|
* Redraws the row, if necessary.
|
|
224
210
|
*
|
|
225
211
|
* In most cases, a board row will redraw itself if your reconfigure it.
|
|
226
|
-
* If you dynamically change
|
|
212
|
+
* If you dynamically change breakpoints
|
|
213
|
+
* --vaadin-board-width-small or --vaadin-board-width-medium,
|
|
214
|
+
* then you need to call this method.
|
|
227
215
|
*/
|
|
228
216
|
redraw() {
|
|
229
217
|
this._recalculateFlexBasis(true);
|
|
230
218
|
}
|
|
231
219
|
|
|
232
|
-
/**
|
|
233
|
-
|
|
220
|
+
/**
|
|
221
|
+
* @protected
|
|
222
|
+
* @override
|
|
223
|
+
*/
|
|
224
|
+
_onResize() {
|
|
234
225
|
this._recalculateFlexBasis(false);
|
|
235
226
|
}
|
|
236
227
|
|
package/src/vaadin-board.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2017 -
|
|
3
|
+
* Copyright (c) 2017 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
@@ -28,8 +28,9 @@ declare class Board extends ElementMixin(HTMLElement) {
|
|
|
28
28
|
/**
|
|
29
29
|
* Redraws the board and all rows inside it, if necessary.
|
|
30
30
|
*
|
|
31
|
-
* In most cases, board will redraw itself if your reconfigure it. If you dynamically change
|
|
32
|
-
*
|
|
31
|
+
* In most cases, board will redraw itself if your reconfigure it. If you dynamically change
|
|
32
|
+
* breakpoints `--vaadin-board-width-small` or `--vaadin-board-width-medium`,
|
|
33
|
+
* then you need to call this method.
|
|
33
34
|
*/
|
|
34
35
|
redraw(): void;
|
|
35
36
|
}
|
package/src/vaadin-board.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2017 -
|
|
3
|
+
* Copyright (c) 2017 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import '@vaadin/vaadin-license-checker/vaadin-license-checker.js';
|
|
7
7
|
import './vaadin-board-row.js';
|
|
8
|
-
import { IronResizableBehavior } from '@polymer/iron-resizable-behavior/iron-resizable-behavior.js';
|
|
9
|
-
import { mixinBehaviors } from '@polymer/polymer/lib/legacy/class.js';
|
|
10
8
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
11
9
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
10
|
+
import { BoardRow } from './vaadin-board-row.js';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* `<vaadin-board>` is a web component to create flexible responsive layouts
|
|
@@ -32,7 +31,7 @@ import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
|
32
31
|
* @extends HTMLElement
|
|
33
32
|
* @mixes ElementMixin
|
|
34
33
|
*/
|
|
35
|
-
class Board extends ElementMixin(
|
|
34
|
+
class Board extends ElementMixin(PolymerElement) {
|
|
36
35
|
static get template() {
|
|
37
36
|
return html`
|
|
38
37
|
<style>
|
|
@@ -65,11 +64,12 @@ class Board extends ElementMixin(mixinBehaviors([IronResizableBehavior], Polymer
|
|
|
65
64
|
/**
|
|
66
65
|
* Redraws the board and all rows inside it, if necessary.
|
|
67
66
|
*
|
|
68
|
-
* In most cases, board will redraw itself if your reconfigure it. If you dynamically change
|
|
69
|
-
*
|
|
67
|
+
* In most cases, board will redraw itself if your reconfigure it. If you dynamically change
|
|
68
|
+
* breakpoints `--vaadin-board-width-small` or `--vaadin-board-width-medium`,
|
|
69
|
+
* then you need to call this method.
|
|
70
70
|
*/
|
|
71
71
|
redraw() {
|
|
72
|
-
this.
|
|
72
|
+
[...this.querySelectorAll('*')].filter((node) => node instanceof BoardRow).forEach((row) => row.redraw());
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
|