@vaadin/crud 24.2.0-alpha8 → 24.2.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/LICENSE CHANGED
@@ -14,7 +14,7 @@ AND DESTROY OR RETURN ALL COPIES OF THE PRODUCT.
14
14
  IF YOU ARE AGREEING TO THESE TERMS ON BEHALF OF YOURSELF IN YOUR INDIVIDUAL
15
15
  CAPACITY, THEN YOU ARE THE CUSTOMER. IF YOU ARE AGREEING TO THESE TERMS ON
16
16
  BEHALF OF YOUR COMPANY, THEN YOUR COMPANY IS THE CUSTOMER.
17
-
17
+
18
18
  1. Definitions
19
19
  1.1. In these Commercial Terms, unless the context requires otherwise, the
20
20
  following words and phrases shall have the following meanings:
@@ -219,11 +219,12 @@ License as set forth herein and in the applicable Order.
219
219
 
220
220
  4.3. Developer License
221
221
  4.3.1 General Provisions
222
- 4.3.1.2 This Section 4.3 contains the terms and conditions of Vaadin’s
222
+ 4.3.1.1 This Section 4.3 contains the terms and conditions of Vaadin’s
223
223
  developer License (“Developer License”), under which Vaadin licenses
224
224
  development components for use by a Developer.
225
- Vaadin grants to Customer, based on full payment of the Subscription fee, a
226
- worldwide, royalty-free, non-exclusive, limited License to Use Licensed
225
+
226
+ 4.3.1.2 Vaadin grants to Customer, based on full payment of the Subscription
227
+ fee, a worldwide, royalty-free, non-exclusive, limited License to Use Licensed
227
228
  Software in Project(s).
228
229
 
229
230
  4.3.1.3 Customer must procure the right to Use Licensed Software for each
@@ -309,7 +310,7 @@ in the applicable Order.
309
310
  4.4.3. Customer may grant licenses, for free or based on a payment, to the
310
311
  Authorized Application(s) including Licensed Software, whether regarded as
311
312
  derivative works or not, as long as Customer has obtained from Vaadin a valid
312
- Runtime License for and on behalf of Customer’s own Customers (that Use
313
+ Runtime License for and on behalf of Customer’s own customers (that Use
313
314
  Licensed Software), or Customer clearly communicates that anyone Using Licensed
314
315
  Software needs to obtain a valid Runtime License from Vaadin prior to
315
316
  installation and use of the Authorized Application(s) including Licensed
@@ -402,7 +403,7 @@ and components for the duration of the Subscription in accordance with the
402
403
  applicable license terms set for each tool and component. Unless otherwise set
403
404
  out in the applicable license terms set for each tool or component, Customer’s
404
405
  right of use shall expire without a separate notice when the Subscription is
405
- terminated or expires.
406
+ terminated or expires.
406
407
 
407
408
  6.4. Expert Chat
408
409
  6.4.1. Customer is offered access to a chat service, where Vaadin’s expert team
@@ -446,10 +447,6 @@ does not authorize the continuation of the service request at their expense.
446
447
  Software to be fixed. There can be only one open warranty request at a time per
447
448
  Subscription. Vaadin reserves the right to choose, at its sole discretion,
448
449
  which warranty requests will be fixed.
449
- During the Support Hours, the resolution of a support request will be started
450
- within two (2) business days. If Vaadin fails to start the resolution as
451
- agreed, Customer will be compensated with one (1) free Expert on Demand hour
452
- that is added to the time balance.
453
450
 
454
451
  6.6.2. During the Support Hours, the resolution of a support request will be
455
452
  started within two (2) business days. If Vaadin fails to start the resolution
@@ -491,7 +488,8 @@ and corresponds with the deliverables and which product or service is offered
491
488
  for use to Customer by Vaadin without separate charge. The aforesaid indemnity
492
489
  obligation of Vaadin shall, however, always be limited to an amount equal to
493
490
  three times the yearly Subscription fee, and Vaadin’s liability for indemnified
494
- claims shall be limited to this Section 6.9.
491
+ claims shall be limited to this Section 6.8.
492
+
495
493
 
496
494
  6.9. Extended Maintenance for Vaadin
497
495
  6.9.1. The extended maintenance for Vaadin Service extends the coverage of the
@@ -506,7 +504,7 @@ that the latest minor versions of Vaadin platform versions 10, 14, and 23+ are
506
504
  covered for the duration of the Subscription term.
507
505
 
508
506
  6.9.3. Any and all changes to the software covered by Extended Maintenance may
509
- be published under commercial or non-commercial License and will be made
507
+ be published under a commercial or non-commercial License and will be made
510
508
  available exclusively to Customers that have subscribed to the extended
511
509
  maintenance for Vaadin Service.
512
510
 
@@ -531,6 +529,23 @@ that is added to the time balance.
531
529
  6.10.3. Vaadin will build a new version of the Custom Build on demand basis,
532
530
  however, at most once a month.
533
531
 
532
+ 6.11. Technical Success Manager
533
+ 6.11.1 Technical Success Manager (“TSM”) is a technical expert allocated to
534
+ help Customer to use Vaadin’s products and services in a productive manner.
535
+ TSM's areas of expertise include, but are not limited to, answering technical
536
+ questions, disseminating best practices, and coordinating work between Customer
537
+ and Vaadin.
538
+
539
+ 6.11.2. Customer may request regular meetings with the TSM with a maximum
540
+ monthly total of four (4) hours of active meeting time. Preparation and
541
+ coordination time related to the meetings is not included in the above
542
+ mentioned monthly total.
543
+
544
+ 6.11.3. Software programming and project management are not included in the
545
+ scope of this TSM service referred to in this Section 6.11. Programming and
546
+ project management services are provided under Expert on Demand and Consulting
547
+ services.
548
+
534
549
  7. Consulting
535
550
  7.1. Delivery of Consulting
536
551
  7.1.1 The Parties may agree upon the delivery of Consulting in an Order, SOW,
@@ -584,7 +599,7 @@ of this Section and is not to be interpreted as a penalty or punishment
584
599
  therefor.
585
600
 
586
601
  7.4. Sponsored Development
587
- The Parties may agree upon the delivery of Sponsored Development in an
602
+ 7.4.1 The Parties may agree upon the delivery of Sponsored Development in an
588
603
  Agreement. This Service is provided as Consulting in accordance with this
589
604
  Section 7. Intellectual Property Rights to Sponsored Development results are
590
605
  regulated by Section 11 below.
@@ -651,14 +666,20 @@ or other Agreement document. As regards Trial Licenses, no Subscription fee is
651
666
  charged.
652
667
 
653
668
  10.2. Consulting
654
- 10.2.1. The applicable prices and hourly rates are detailed in the Agreement
669
+ 10.2.1. All cost and effort estimates given by Vaadin to Customer are
670
+ indicative by nature and do not affect the calculation of the fees. If not
671
+ otherwise specified in the Agreement, the Services are provided on
672
+ time-and-material basis. The fee is determined by multiplying the hourly rates
673
+ set forth in the Agreement by the hours that Vaadin has worked on the Services.
674
+
675
+ 10.2.2. The applicable prices and hourly rates are detailed in the Agreement
655
676
  and/or its appendices. If a price for a Service has not been agreed, the price
656
677
  in Vaadin’s price list effective on the order date shall apply.
657
678
 
658
- 10.2.2. Vaadin shall be entitled to adjust its prices with thirty (30) days’
679
+ 10.2.3. Vaadin shall be entitled to adjust its prices with thirty (30) days’
659
680
  notice to Customer.
660
681
 
661
- 10.2.3. Vaadin shall, if pre-approved by Customer, be entitled to charge for
682
+ 10.2.4. Vaadin shall, if pre-approved by Customer, be entitled to charge for
662
683
  customary and reasonable travel and accommodation costs as well as other travel
663
684
  costs relating to Services. Traveling time shall be charged as 50% of the
664
685
  agreed hourly rates.
@@ -971,6 +992,7 @@ PURPOSE, ANY IMPLIED WARRANTY THAT ANY SOFTWARE, PRODUCT OR SERVICE WILL MEET
971
992
  ALL NEEDS AND EXPECTATIONS, BE ERROR-FREE, OR BE OF CERTAIN CONDITION, QUALITY
972
993
  OR DURABILITY, OR FUNCTION OR PERFORM IN A CERTAIN WAY. ALL SUCH WARRANTIES,
973
994
  CONDITIONS, UNDERTAKINGS AND TERMS ARE HEREBY EXCLUDED.
995
+
974
996
  23. Limitation of Liability
975
997
  23.1. VAADIN AND ITS AFFILIATES AND SUPPLIERS SHALL NOT BE LIABLE FOR ANY
976
998
  INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, INCLUDING BUT
@@ -985,9 +1007,9 @@ A PARTY TOWARDS THE OTHER PARTY IN RELATION TO THE AGREEMENT IS LIMITED TO A
985
1007
  MAXIMUM OF 50 % OF THE PRICE PAYABLE FOR THE AGREED SUBSCRIPTION, PRODUCT OR
986
1008
  SERVICE DIRECTLY RELATED TO THE CAUSE OF ACTION ASSERTED UNDER THE RELEVANT
987
1009
  AGREEMENT. IN CASE OF SUBSCRIPTIONS, THE AFOREMENTIONED 50 % LIMIT IS
988
- CALCULATED BASED ON THE SUBSRPTION FEE FOR THE MOST RECENT SUBSCRIPTION TERM.
989
- IN CASE OF CONSULTING CARRIED OUT OUTSIDE A SUBSCRIPTION, THE AFOREMENTIONED
990
- 50 % LIMIT IS CALCULATED BASED ON THE TOTAL VALUE OF THE CONSULTING UNDER THE
1010
+ CALCULATED BASED ON THE SUBSCRIPTION FEE FOR THE MOST RECENT SUBSCRIPTION TERM.
1011
+ IN CASE OF CONSULTING CARRIED OUT OUTSIDE A SUBSCRIPTION, THE AFOREMENTIONED 50
1012
+ % LIMIT IS CALCULATED BASED ON THE TOTAL VALUE OF THE CONSULTING UNDER THE
991
1013
  RELEVANT SOW.
992
1014
 
993
1015
  23.3. THIS LIMITATION OF LIABILITY SHALL APPLY REGARDLESS OF THE CAUSE OF
@@ -1083,13 +1105,13 @@ interpretation of the Commercial Terms or any provision hereof.
1083
1105
 
1084
1106
  27.6. Severability
1085
1107
  27.6.1. If any provision of the Agreement shall be held invalid, illegal or
1086
- unenforceable, the remaining provisions shall not be affected or impaired.
1108
+ unenforceable, the remaining provisions shall not be affected or impaired.
1087
1109
 
1088
1110
  27.7. Export Control
1089
1111
  27.7.1. The Licensed Software may be subject to import and export controls in
1090
1112
  other countries. Customer agrees to strictly comply with all applicable import
1091
1113
  and export regulations and acknowledge that Customer has the responsibility to
1092
- obtain licenses to export, re-export, transfer or import Licensed Software.
1114
+ obtain licenses to export, re-export, transfer or import Licensed Software.
1093
1115
 
1094
1116
  27.8. Assignment
1095
1117
  27.8.1. Neither Party shall have the right to assign the Agreement to a third
@@ -1105,8 +1127,8 @@ Agreement.
1105
1127
  statements required hereby shall be in English.
1106
1128
 
1107
1129
  27.10. Changes to these Commercial Terms
1108
- Vaadin may change these Commercial Terms at any time, upon thirty (30) days
1109
- prior written notice. The changed Commercial Terms shall apply to any new
1130
+ 27.10.1 Vaadin may change these Commercial Terms at any time, upon thirty (30)
1131
+ days prior written notice. The changed Commercial Terms shall apply to any new
1110
1132
  Orders and Agreements entered into after the effective date of the change. As
1111
1133
  regards Subscriptions, the changed Commercial Terms shall apply from the
1112
1134
  beginning of a renewed Subscription term, provided that Vaadin has notified
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/crud",
3
- "version": "24.2.0-alpha8",
3
+ "version": "24.2.0-beta1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -37,20 +37,20 @@
37
37
  "dependencies": {
38
38
  "@open-wc/dedupe-mixin": "^1.3.0",
39
39
  "@polymer/polymer": "^3.0.0",
40
- "@vaadin/button": "24.2.0-alpha8",
41
- "@vaadin/component-base": "24.2.0-alpha8",
42
- "@vaadin/confirm-dialog": "24.2.0-alpha8",
43
- "@vaadin/dialog": "24.2.0-alpha8",
44
- "@vaadin/form-layout": "24.2.0-alpha8",
45
- "@vaadin/grid": "24.2.0-alpha8",
46
- "@vaadin/text-field": "24.2.0-alpha8",
47
- "@vaadin/vaadin-lumo-styles": "24.2.0-alpha8",
48
- "@vaadin/vaadin-material-styles": "24.2.0-alpha8",
49
- "@vaadin/vaadin-themable-mixin": "24.2.0-alpha8"
40
+ "@vaadin/button": "24.2.0-beta1",
41
+ "@vaadin/component-base": "24.2.0-beta1",
42
+ "@vaadin/confirm-dialog": "24.2.0-beta1",
43
+ "@vaadin/dialog": "24.2.0-beta1",
44
+ "@vaadin/form-layout": "24.2.0-beta1",
45
+ "@vaadin/grid": "24.2.0-beta1",
46
+ "@vaadin/text-field": "24.2.0-beta1",
47
+ "@vaadin/vaadin-lumo-styles": "24.2.0-beta1",
48
+ "@vaadin/vaadin-material-styles": "24.2.0-beta1",
49
+ "@vaadin/vaadin-themable-mixin": "24.2.0-beta1"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@esm-bundle/chai": "^4.3.4",
53
- "@vaadin/testing-helpers": "^0.4.3",
53
+ "@vaadin/testing-helpers": "^0.5.0",
54
54
  "sinon": "^13.0.2"
55
55
  },
56
56
  "cvdlName": "vaadin-crud",
@@ -58,5 +58,5 @@
58
58
  "web-types.json",
59
59
  "web-types.lit.json"
60
60
  ],
61
- "gitHead": "2c024e8fd462d178430418f76a61f498fb549998"
61
+ "gitHead": "67c8eef57d1c59e7476e29adaf003cf4548878f2"
62
62
  }
@@ -9,6 +9,7 @@
9
9
  * license.
10
10
  */
11
11
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
12
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
13
  import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
13
14
  import { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';
14
15
  import { DialogBaseMixin } from '@vaadin/dialog/src/vaadin-dialog-base-mixin.js';
@@ -57,6 +58,7 @@ registerStyles('vaadin-crud-dialog-overlay', [overlayStyles, dialogOverlay, resi
57
58
  /**
58
59
  * An element used internally by `<vaadin-crud>`. Not intended to be used separately.
59
60
  *
61
+ * @customElement
60
62
  * @extends HTMLElement
61
63
  * @mixes DirMixin
62
64
  * @mixes OverlayMixin
@@ -100,7 +102,7 @@ class CrudDialogOverlay extends OverlayMixin(DirMixin(ThemableMixin(PolymerEleme
100
102
  }
101
103
  }
102
104
 
103
- customElements.define(CrudDialogOverlay.is, CrudDialogOverlay);
105
+ defineCustomElement(CrudDialogOverlay);
104
106
 
105
107
  /**
106
108
  * An element used internally by `<vaadin-crud>`. Not intended to be used separately.
@@ -149,4 +151,4 @@ class CrudDialog extends DialogBaseMixin(OverlayClassMixin(ThemePropertyMixin(Po
149
151
  }
150
152
  }
151
153
 
152
- customElements.define(CrudDialog.is, CrudDialog);
154
+ defineCustomElement(CrudDialog);
@@ -9,6 +9,7 @@
9
9
  * license.
10
10
  */
11
11
  import './vaadin-crud-edit.js';
12
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
13
  import { GridColumn } from '@vaadin/grid/src/vaadin-grid-column.js';
13
14
 
14
15
  /**
@@ -26,6 +27,7 @@ import { GridColumn } from '@vaadin/grid/src/vaadin-grid-column.js';
26
27
  * ...
27
28
  * ```
28
29
  *
30
+ * @customElement
29
31
  * @extends GridColumn
30
32
  */
31
33
  class CrudEditColumn extends GridColumn {
@@ -85,6 +87,6 @@ class CrudEditColumn extends GridColumn {
85
87
  }
86
88
  }
87
89
 
88
- customElements.define(CrudEditColumn.is, CrudEditColumn);
90
+ defineCustomElement(CrudEditColumn);
89
91
 
90
92
  export { CrudEditColumn };
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { html } from '@polymer/polymer/polymer-element.js';
12
12
  import { Button } from '@vaadin/button/src/vaadin-button.js';
13
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
13
14
  import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
14
15
 
15
16
  /**
@@ -34,6 +35,7 @@ registerStyles(
34
35
  * Typical usage is in a `<vaadin-grid-column>` of a custom `<vaadin-grid>` inside
35
36
  * a `<vaadin-crud>` to enable editing.
36
37
  *
38
+ * @customElement
37
39
  * @extends HTMLElement
38
40
  * @mixes ThemableMixin
39
41
  */
@@ -73,4 +75,4 @@ class CrudEdit extends Button {
73
75
  */
74
76
  }
75
77
 
76
- customElements.define(CrudEdit.is, CrudEdit);
78
+ defineCustomElement(CrudEdit);
@@ -9,6 +9,7 @@
9
9
  * license.
10
10
  */
11
11
  import '@vaadin/text-field/src/vaadin-text-field.js';
12
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
13
  import { FormLayout } from '@vaadin/form-layout/src/vaadin-form-layout.js';
13
14
  import { capitalize } from './vaadin-crud-helpers.js';
14
15
  import { IncludedMixin } from './vaadin-crud-include-mixin.js';
@@ -16,6 +17,7 @@ import { IncludedMixin } from './vaadin-crud-include-mixin.js';
16
17
  /**
17
18
  * An element used internally by `<vaadin-crud>`. Not intended to be used separately.
18
19
  *
20
+ * @customElement
19
21
  * @extends FormLayout
20
22
  * @mixes IncludedMixin
21
23
  * @private
@@ -90,6 +92,6 @@ class CrudForm extends IncludedMixin(FormLayout) {
90
92
  }
91
93
  }
92
94
 
93
- customElements.define(CrudForm.is, CrudForm);
95
+ defineCustomElement(CrudForm);
94
96
 
95
97
  export { CrudForm };
@@ -8,11 +8,12 @@
8
8
  * See https://vaadin.com/commercial-license-and-service-terms for the full
9
9
  * license.
10
10
  */
11
- import '@vaadin/grid/src/vaadin-grid-column.js';
12
11
  import '@vaadin/grid/src/vaadin-grid-column-group.js';
13
- import '@vaadin/grid/src/vaadin-grid-sorter.js';
12
+ import '@vaadin/grid/src/vaadin-grid-column.js';
14
13
  import '@vaadin/grid/src/vaadin-grid-filter.js';
14
+ import '@vaadin/grid/src/vaadin-grid-sorter.js';
15
15
  import './vaadin-crud-edit-column.js';
16
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
16
17
  import { Grid } from '@vaadin/grid/src/vaadin-grid.js';
17
18
  import { capitalize, getProperty } from './vaadin-crud-helpers.js';
18
19
  import { IncludedMixin } from './vaadin-crud-include-mixin.js';
@@ -275,6 +276,6 @@ class CrudGrid extends IncludedMixin(Grid) {
275
276
  }
276
277
  }
277
278
 
278
- customElements.define(CrudGrid.is, CrudGrid);
279
+ defineCustomElement(CrudGrid);
279
280
 
280
281
  export { CrudGrid };
@@ -18,6 +18,7 @@ import { afterNextRender } from '@polymer/polymer/lib/utils/render-status.js';
18
18
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
19
19
  import { FocusRestorationController } from '@vaadin/a11y-base/src/focus-restoration-controller.js';
20
20
  import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
21
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
21
22
  import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
22
23
  import { MediaQueryController } from '@vaadin/component-base/src/media-query-controller.js';
23
24
  import { SlotController } from '@vaadin/component-base/src/slot-controller.js';
@@ -167,6 +168,7 @@ import { getProperty, setProperty } from './vaadin-crud-helpers.js';
167
168
  * @fires {CustomEvent} save - Fired when user wants to save a new or an existing item.
168
169
  * @fires {CustomEvent} cancel - Fired when user discards edition.
169
170
  *
171
+ * @customElement
170
172
  * @extends HTMLElement
171
173
  * @mixes ControllerMixin
172
174
  * @mixes ElementMixin
@@ -1357,6 +1359,6 @@ class Crud extends ControllerMixin(ElementMixin(ThemableMixin(PolymerElement)))
1357
1359
  */
1358
1360
  }
1359
1361
 
1360
- customElements.define(Crud.is, Crud);
1362
+ defineCustomElement(Crud);
1361
1363
 
1362
1364
  export { Crud };
package/web-types.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/crud",
4
- "version": "24.2.0-alpha8",
4
+ "version": "24.2.0-beta1",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -313,7 +313,7 @@
313
313
  },
314
314
  {
315
315
  "name": "vaadin-crud",
316
- "description": "`<vaadin-crud>` is a Web Component for [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations.\n\n### Quick Start\n\nAssign an array to the [`items`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-items) property.\n\nA grid and an editor will be automatically generated and configured based on the data structure provided.\n\n```html\n<vaadin-crud></vaadin-crud>\n```\n```js\nconst crud = document.querySelector('vaadin-crud');\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Data Provider Function\n\nOtherwise, you can provide a [`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-dataProvider) function.\n\n```js\nconst crud = document.querySelector('vaadin-crud');\n\nconst users = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n\ncrud.dataProvider = (params, callback) => {\n const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);\n callback(chunk, people.length);\n};\n```\n\nNOTE: The auto-generated editor only supports string types. If you need to handle special cases\ncustomizing the editor is discussed below.\n\n### Customization\n\nAlternatively you can fully configure the component by using `slot` names.\n\nSlot name | Description\n---------------|----------------\n`grid` | To replace the auto-generated grid with a custom one.\n`form` | To replace the auto-generated form.\n`save-button` | To replace the \"Save\" button.\n`cancel-button`| To replace the \"Cancel\" button.\n`delete-button`| To replace the \"Delete\" button.\n`toolbar` | To provide the toolbar content (by default, it's empty).\n`new-button` | To replace the \"New item\" button.\n\n#### Example:\n\n```html\n<vaadin-crud id=\"crud\">\n <vaadin-grid slot=\"grid\">\n <vaadin-crud-edit-column></vaadin-crud-edit-column>\n <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n </vaadin-grid>\n\n <vaadin-form-layout slot=\"form\">\n <vaadin-text-field label=\"First\" path=\"name\"></vaadin-text-field>\n <vaadin-text-field label=\"Surname\" path=\"surname\"></vaadin-text-field>\n </vaadin-form-layout>\n\n <div slot=\"toolbar\">Total singers: 2</div>\n <button slot=\"new-button\">New singer</button>\n\n <button slot=\"save-button\">Save changes</button>\n <button slot=\"cancel-button\">Discard changes</button>\n <button slot=\"delete-button\">Delete singer</button>\n</vaadin-crud>\n```\n```js\nconst crud = document.querySelector('#crud');\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => {\n root.textContent = 'Name';\n};\ncolumn1.renderer = (root, column, model) => {\n root.textContent = model.item.name;\n};\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => {\n root.textContent = 'Surname';\n};\ncolumn2.renderer = (root, column, model) => {\n root.textContent = model.item.surname;\n};\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Helpers\n\nThe following elements are used to auto-configure the grid and the editor\n- [`<vaadin-crud-edit-column>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud-edit-column)\n- `<vaadin-crud-grid>` - can be replaced with custom [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-grid)\n- `<vaadin-crud-form>` - can be replaced with custom [`<vaadin-form-layout>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-form-layout)\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n----------------|----------------\n`toolbar` | Toolbar container at the bottom. By default it contains the the `new` button\n\nThe following custom properties are available:\n\nCustom Property | Description | Default\n----------------|----------------\n--vaadin-crud-editor-max-height | max height of editor when opened on the bottom | 40%\n--vaadin-crud-editor-max-width | max width of editor when opened on the side | 40%\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
316
+ "description": "`<vaadin-crud>` is a Web Component for [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations.\n\n### Quick Start\n\nAssign an array to the [`items`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-items) property.\n\nA grid and an editor will be automatically generated and configured based on the data structure provided.\n\n```html\n<vaadin-crud></vaadin-crud>\n```\n```js\nconst crud = document.querySelector('vaadin-crud');\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Data Provider Function\n\nOtherwise, you can provide a [`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-dataProvider) function.\n\n```js\nconst crud = document.querySelector('vaadin-crud');\n\nconst users = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n\ncrud.dataProvider = (params, callback) => {\n const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);\n callback(chunk, people.length);\n};\n```\n\nNOTE: The auto-generated editor only supports string types. If you need to handle special cases\ncustomizing the editor is discussed below.\n\n### Customization\n\nAlternatively you can fully configure the component by using `slot` names.\n\nSlot name | Description\n---------------|----------------\n`grid` | To replace the auto-generated grid with a custom one.\n`form` | To replace the auto-generated form.\n`save-button` | To replace the \"Save\" button.\n`cancel-button`| To replace the \"Cancel\" button.\n`delete-button`| To replace the \"Delete\" button.\n`toolbar` | To provide the toolbar content (by default, it's empty).\n`new-button` | To replace the \"New item\" button.\n\n#### Example:\n\n```html\n<vaadin-crud id=\"crud\">\n <vaadin-grid slot=\"grid\">\n <vaadin-crud-edit-column></vaadin-crud-edit-column>\n <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n </vaadin-grid>\n\n <vaadin-form-layout slot=\"form\">\n <vaadin-text-field label=\"First\" path=\"name\"></vaadin-text-field>\n <vaadin-text-field label=\"Surname\" path=\"surname\"></vaadin-text-field>\n </vaadin-form-layout>\n\n <div slot=\"toolbar\">Total singers: 2</div>\n <button slot=\"new-button\">New singer</button>\n\n <button slot=\"save-button\">Save changes</button>\n <button slot=\"cancel-button\">Discard changes</button>\n <button slot=\"delete-button\">Delete singer</button>\n</vaadin-crud>\n```\n```js\nconst crud = document.querySelector('#crud');\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => {\n root.textContent = 'Name';\n};\ncolumn1.renderer = (root, column, model) => {\n root.textContent = model.item.name;\n};\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => {\n root.textContent = 'Surname';\n};\ncolumn2.renderer = (root, column, model) => {\n root.textContent = model.item.surname;\n};\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Helpers\n\nThe following elements are used to auto-configure the grid and the editor\n- [`<vaadin-crud-edit-column>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud-edit-column)\n- `<vaadin-crud-grid>` - can be replaced with custom [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-grid)\n- `<vaadin-crud-form>` - can be replaced with custom [`<vaadin-form-layout>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-form-layout)\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n----------------|----------------\n`toolbar` | Toolbar container at the bottom. By default it contains the the `new` button\n\nThe following custom properties are available:\n\nCustom Property | Description | Default\n----------------|----------------\n--vaadin-crud-editor-max-height | max height of editor when opened on the bottom | 40%\n--vaadin-crud-editor-max-width | max width of editor when opened on the side | 40%\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
317
317
  "attributes": [
318
318
  {
319
319
  "name": "editor-position",
@@ -368,7 +368,7 @@
368
368
  },
369
369
  {
370
370
  "name": "include",
371
- "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
371
+ "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
372
372
  "value": {
373
373
  "type": [
374
374
  "string",
@@ -379,7 +379,7 @@
379
379
  },
380
380
  {
381
381
  "name": "exclude",
382
- "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
382
+ "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
383
383
  "value": {
384
384
  "type": [
385
385
  "string",
@@ -506,7 +506,7 @@
506
506
  },
507
507
  {
508
508
  "name": "include",
509
- "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
509
+ "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
510
510
  "value": {
511
511
  "type": [
512
512
  "string",
@@ -517,7 +517,7 @@
517
517
  },
518
518
  {
519
519
  "name": "exclude",
520
- "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
520
+ "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
521
521
  "value": {
522
522
  "type": [
523
523
  "string",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/crud",
4
- "version": "24.2.0-alpha8",
4
+ "version": "24.2.0-beta1",
5
5
  "description-markup": "markdown",
6
6
  "framework": "lit",
7
7
  "framework-config": {
@@ -128,7 +128,7 @@
128
128
  },
129
129
  {
130
130
  "name": "vaadin-crud",
131
- "description": "`<vaadin-crud>` is a Web Component for [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations.\n\n### Quick Start\n\nAssign an array to the [`items`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-items) property.\n\nA grid and an editor will be automatically generated and configured based on the data structure provided.\n\n```html\n<vaadin-crud></vaadin-crud>\n```\n```js\nconst crud = document.querySelector('vaadin-crud');\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Data Provider Function\n\nOtherwise, you can provide a [`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-dataProvider) function.\n\n```js\nconst crud = document.querySelector('vaadin-crud');\n\nconst users = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n\ncrud.dataProvider = (params, callback) => {\n const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);\n callback(chunk, people.length);\n};\n```\n\nNOTE: The auto-generated editor only supports string types. If you need to handle special cases\ncustomizing the editor is discussed below.\n\n### Customization\n\nAlternatively you can fully configure the component by using `slot` names.\n\nSlot name | Description\n---------------|----------------\n`grid` | To replace the auto-generated grid with a custom one.\n`form` | To replace the auto-generated form.\n`save-button` | To replace the \"Save\" button.\n`cancel-button`| To replace the \"Cancel\" button.\n`delete-button`| To replace the \"Delete\" button.\n`toolbar` | To provide the toolbar content (by default, it's empty).\n`new-button` | To replace the \"New item\" button.\n\n#### Example:\n\n```html\n<vaadin-crud id=\"crud\">\n <vaadin-grid slot=\"grid\">\n <vaadin-crud-edit-column></vaadin-crud-edit-column>\n <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n </vaadin-grid>\n\n <vaadin-form-layout slot=\"form\">\n <vaadin-text-field label=\"First\" path=\"name\"></vaadin-text-field>\n <vaadin-text-field label=\"Surname\" path=\"surname\"></vaadin-text-field>\n </vaadin-form-layout>\n\n <div slot=\"toolbar\">Total singers: 2</div>\n <button slot=\"new-button\">New singer</button>\n\n <button slot=\"save-button\">Save changes</button>\n <button slot=\"cancel-button\">Discard changes</button>\n <button slot=\"delete-button\">Delete singer</button>\n</vaadin-crud>\n```\n```js\nconst crud = document.querySelector('#crud');\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => {\n root.textContent = 'Name';\n};\ncolumn1.renderer = (root, column, model) => {\n root.textContent = model.item.name;\n};\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => {\n root.textContent = 'Surname';\n};\ncolumn2.renderer = (root, column, model) => {\n root.textContent = model.item.surname;\n};\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Helpers\n\nThe following elements are used to auto-configure the grid and the editor\n- [`<vaadin-crud-edit-column>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud-edit-column)\n- `<vaadin-crud-grid>` - can be replaced with custom [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-grid)\n- `<vaadin-crud-form>` - can be replaced with custom [`<vaadin-form-layout>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-form-layout)\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n----------------|----------------\n`toolbar` | Toolbar container at the bottom. By default it contains the the `new` button\n\nThe following custom properties are available:\n\nCustom Property | Description | Default\n----------------|----------------\n--vaadin-crud-editor-max-height | max height of editor when opened on the bottom | 40%\n--vaadin-crud-editor-max-width | max width of editor when opened on the side | 40%\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
131
+ "description": "`<vaadin-crud>` is a Web Component for [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations.\n\n### Quick Start\n\nAssign an array to the [`items`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-items) property.\n\nA grid and an editor will be automatically generated and configured based on the data structure provided.\n\n```html\n<vaadin-crud></vaadin-crud>\n```\n```js\nconst crud = document.querySelector('vaadin-crud');\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Data Provider Function\n\nOtherwise, you can provide a [`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-dataProvider) function.\n\n```js\nconst crud = document.querySelector('vaadin-crud');\n\nconst users = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n\ncrud.dataProvider = (params, callback) => {\n const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);\n callback(chunk, people.length);\n};\n```\n\nNOTE: The auto-generated editor only supports string types. If you need to handle special cases\ncustomizing the editor is discussed below.\n\n### Customization\n\nAlternatively you can fully configure the component by using `slot` names.\n\nSlot name | Description\n---------------|----------------\n`grid` | To replace the auto-generated grid with a custom one.\n`form` | To replace the auto-generated form.\n`save-button` | To replace the \"Save\" button.\n`cancel-button`| To replace the \"Cancel\" button.\n`delete-button`| To replace the \"Delete\" button.\n`toolbar` | To provide the toolbar content (by default, it's empty).\n`new-button` | To replace the \"New item\" button.\n\n#### Example:\n\n```html\n<vaadin-crud id=\"crud\">\n <vaadin-grid slot=\"grid\">\n <vaadin-crud-edit-column></vaadin-crud-edit-column>\n <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n </vaadin-grid>\n\n <vaadin-form-layout slot=\"form\">\n <vaadin-text-field label=\"First\" path=\"name\"></vaadin-text-field>\n <vaadin-text-field label=\"Surname\" path=\"surname\"></vaadin-text-field>\n </vaadin-form-layout>\n\n <div slot=\"toolbar\">Total singers: 2</div>\n <button slot=\"new-button\">New singer</button>\n\n <button slot=\"save-button\">Save changes</button>\n <button slot=\"cancel-button\">Discard changes</button>\n <button slot=\"delete-button\">Delete singer</button>\n</vaadin-crud>\n```\n```js\nconst crud = document.querySelector('#crud');\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => {\n root.textContent = 'Name';\n};\ncolumn1.renderer = (root, column, model) => {\n root.textContent = model.item.name;\n};\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => {\n root.textContent = 'Surname';\n};\ncolumn2.renderer = (root, column, model) => {\n root.textContent = model.item.surname;\n};\n\ncrud.items = [\n { name: 'John', surname: 'Lennon', role: 'singer' },\n { name: 'Ringo', surname: 'Starr', role: 'drums' },\n // ... more items\n];\n```\n\n### Helpers\n\nThe following elements are used to auto-configure the grid and the editor\n- [`<vaadin-crud-edit-column>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud-edit-column)\n- `<vaadin-crud-grid>` - can be replaced with custom [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-grid)\n- `<vaadin-crud-form>` - can be replaced with custom [`<vaadin-form-layout>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-form-layout)\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n----------------|----------------\n`toolbar` | Toolbar container at the bottom. By default it contains the the `new` button\n\nThe following custom properties are available:\n\nCustom Property | Description | Default\n----------------|----------------\n--vaadin-crud-editor-max-height | max height of editor when opened on the bottom | 40%\n--vaadin-crud-editor-max-width | max width of editor when opened on the side | 40%\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
132
132
  "extension": true,
133
133
  "attributes": [
134
134
  {
@@ -203,14 +203,14 @@
203
203
  },
204
204
  {
205
205
  "name": ".include",
206
- "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
206
+ "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
207
207
  "value": {
208
208
  "kind": "expression"
209
209
  }
210
210
  },
211
211
  {
212
212
  "name": ".exclude",
213
- "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha8/#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
213
+ "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-beta1/#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
214
214
  "value": {
215
215
  "kind": "expression"
216
216
  }