@vaadin/crud 24.0.0-alpha5 → 24.0.0-alpha7
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 +1105 -248
- package/README.md +1 -1
- package/package.json +12 -12
- package/src/vaadin-crud-dialog.js +7 -2
- package/src/vaadin-crud-edit-column.d.ts +7 -2
- package/src/vaadin-crud-edit-column.js +7 -2
- package/src/vaadin-crud-edit.d.ts +7 -2
- package/src/vaadin-crud-edit.js +7 -2
- package/src/vaadin-crud-form.d.ts +7 -2
- package/src/vaadin-crud-form.js +8 -3
- package/src/vaadin-crud-grid.d.ts +7 -2
- package/src/vaadin-crud-grid.js +8 -3
- package/src/vaadin-crud-include-mixin.d.ts +7 -2
- package/src/vaadin-crud-include-mixin.js +7 -2
- package/src/vaadin-crud.d.ts +34 -16
- package/src/vaadin-crud.js +38 -20
- package/web-types.json +1 -288
- package/web-types.lit.json +1 -162
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ Read the [contributing guide](https://vaadin.com/docs/latest/contributing/overvi
|
|
|
58
58
|
|
|
59
59
|
## License
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
This program is available under Vaadin Commercial License and Service Terms. For license terms, see LICENSE.
|
|
62
62
|
|
|
63
63
|
Vaadin collects usage statistics at development time to improve this product.
|
|
64
64
|
For details and to opt-out, see https://github.com/vaadin/vaadin-usage-statistics.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/crud",
|
|
3
|
-
"version": "24.0.0-
|
|
3
|
+
"version": "24.0.0-alpha7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
39
39
|
"@polymer/polymer": "^3.0.0",
|
|
40
|
-
"@vaadin/button": "24.0.0-
|
|
41
|
-
"@vaadin/component-base": "24.0.0-
|
|
42
|
-
"@vaadin/confirm-dialog": "24.0.0-
|
|
43
|
-
"@vaadin/dialog": "24.0.0-
|
|
44
|
-
"@vaadin/form-layout": "24.0.0-
|
|
45
|
-
"@vaadin/grid": "24.0.0-
|
|
46
|
-
"@vaadin/text-field": "24.0.0-
|
|
47
|
-
"@vaadin/vaadin-lumo-styles": "24.0.0-
|
|
48
|
-
"@vaadin/vaadin-material-styles": "24.0.0-
|
|
49
|
-
"@vaadin/vaadin-themable-mixin": "24.0.0-
|
|
40
|
+
"@vaadin/button": "24.0.0-alpha7",
|
|
41
|
+
"@vaadin/component-base": "24.0.0-alpha7",
|
|
42
|
+
"@vaadin/confirm-dialog": "24.0.0-alpha7",
|
|
43
|
+
"@vaadin/dialog": "24.0.0-alpha7",
|
|
44
|
+
"@vaadin/form-layout": "24.0.0-alpha7",
|
|
45
|
+
"@vaadin/grid": "24.0.0-alpha7",
|
|
46
|
+
"@vaadin/text-field": "24.0.0-alpha7",
|
|
47
|
+
"@vaadin/vaadin-lumo-styles": "24.0.0-alpha7",
|
|
48
|
+
"@vaadin/vaadin-material-styles": "24.0.0-alpha7",
|
|
49
|
+
"@vaadin/vaadin-themable-mixin": "24.0.0-alpha7"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@esm-bundle/chai": "^4.3.4",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"web-types.json",
|
|
59
59
|
"web-types.lit.json"
|
|
60
60
|
],
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "aeb4535336813636736759e0a5de148b26bfc3b6"
|
|
62
62
|
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { html } from '@polymer/polymer/lib/utils/html-tag.js';
|
|
7
12
|
import { Dialog, DialogOverlay } from '@vaadin/dialog/src/vaadin-dialog.js';
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { GridColumn } from '@vaadin/grid/src/vaadin-grid-column.js';
|
|
7
12
|
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import './vaadin-crud-edit.js';
|
|
7
12
|
import { GridColumn } from '@vaadin/grid/src/vaadin-grid-column.js';
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { Button } from '@vaadin/button/src/vaadin-button.js';
|
|
7
12
|
|
package/src/vaadin-crud-edit.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { html } from '@polymer/polymer/polymer-element.js';
|
|
7
12
|
import { Button } from '@vaadin/button/src/vaadin-button.js';
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { FormLayout } from '@vaadin/form-layout/src/vaadin-form-layout.js';
|
|
7
12
|
import { IncludedMixin } from './vaadin-crud-include-mixin.js';
|
package/src/vaadin-crud-form.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import '@vaadin/text-field/src/vaadin-text-field.js';
|
|
7
12
|
import { FormLayout } from '@vaadin/form-layout/src/vaadin-form-layout.js';
|
|
@@ -99,7 +104,7 @@ class CrudForm extends IncludedMixin(FormLayout) {
|
|
|
99
104
|
.split('.')
|
|
100
105
|
.slice(0, -1)
|
|
101
106
|
.reduce((o, p) => {
|
|
102
|
-
o[p]
|
|
107
|
+
o[p] ||= {};
|
|
103
108
|
return o[p];
|
|
104
109
|
}, obj);
|
|
105
110
|
this.set(path, val, obj);
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { Grid } from '@vaadin/grid/src/vaadin-grid.js';
|
|
7
12
|
import { IncludedMixin } from './vaadin-crud-include-mixin.js';
|
package/src/vaadin-crud-grid.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import '@vaadin/grid/src/vaadin-grid-column.js';
|
|
7
12
|
import '@vaadin/grid/src/vaadin-grid-column-group.js';
|
|
@@ -284,7 +289,7 @@ class CrudGrid extends IncludedMixin(Grid) {
|
|
|
284
289
|
.split('.')
|
|
285
290
|
.slice(0, -1)
|
|
286
291
|
.reduce((o, p) => {
|
|
287
|
-
o[p]
|
|
292
|
+
o[p] ||= {};
|
|
288
293
|
return o[p];
|
|
289
294
|
}, obj);
|
|
290
295
|
this.set(path, val, obj);
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
12
|
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
|
|
7
12
|
/**
|
package/src/vaadin-crud.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
|
|
7
12
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
@@ -124,23 +129,34 @@ export type CrudEventMap<T> = CrudCustomEventMap<T> & HTMLElementEventMap;
|
|
|
124
129
|
*
|
|
125
130
|
* A grid and an editor will be automatically generated and configured based on the data structure provided.
|
|
126
131
|
*
|
|
127
|
-
* #### Example:
|
|
128
132
|
* ```html
|
|
129
|
-
* <vaadin-crud
|
|
130
|
-
*
|
|
133
|
+
* <vaadin-crud></vaadin-crud>
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* ```js
|
|
137
|
+
* const crud = document.querySelector('vaadin-crud');
|
|
138
|
+
*
|
|
139
|
+
* crud.items = [
|
|
140
|
+
* { name: 'John', surname: 'Lennon', role: 'singer' },
|
|
141
|
+
* { name: 'Ringo', surname: 'Starr', role: 'drums' },
|
|
142
|
+
* // ... more items
|
|
143
|
+
* ];
|
|
131
144
|
* ```
|
|
132
145
|
*
|
|
133
146
|
* ### Data Provider Function
|
|
134
147
|
*
|
|
135
148
|
* Otherwise, you can provide a [`dataProvider`](#/elements/vaadin-crud#property-dataProvider) function.
|
|
136
|
-
*
|
|
137
|
-
* ```html
|
|
138
|
-
* <vaadin-crud></vaadin-crud>
|
|
139
|
-
* ```
|
|
149
|
+
*
|
|
140
150
|
* ```js
|
|
141
151
|
* const crud = document.querySelector('vaadin-crud');
|
|
142
|
-
*
|
|
143
|
-
*
|
|
152
|
+
*
|
|
153
|
+
* const users = [
|
|
154
|
+
* { name: 'John', surname: 'Lennon', role: 'singer' },
|
|
155
|
+
* { name: 'Ringo', surname: 'Starr', role: 'drums' },
|
|
156
|
+
* // ... more items
|
|
157
|
+
* ];
|
|
158
|
+
*
|
|
159
|
+
* crud.dataProvider = (params, callback) => {
|
|
144
160
|
* const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);
|
|
145
161
|
* callback(chunk, people.length);
|
|
146
162
|
* };
|
|
@@ -166,11 +182,7 @@ export type CrudEventMap<T> = CrudCustomEventMap<T> & HTMLElementEventMap;
|
|
|
166
182
|
* #### Example:
|
|
167
183
|
*
|
|
168
184
|
* ```html
|
|
169
|
-
* <vaadin-crud
|
|
170
|
-
* id="crud"
|
|
171
|
-
* items='[{"name": "John", "surname": "Lennon", "role": "singer"},
|
|
172
|
-
* {"name": "Ringo", "surname": "Starr", "role": "drums"}]'
|
|
173
|
-
* >
|
|
185
|
+
* <vaadin-crud id="crud">
|
|
174
186
|
* <vaadin-grid slot="grid">
|
|
175
187
|
* <vaadin-crud-edit-column></vaadin-crud-edit-column>
|
|
176
188
|
* <vaadin-grid-column id="column1"></vaadin-grid-column>
|
|
@@ -208,6 +220,12 @@ export type CrudEventMap<T> = CrudCustomEventMap<T> & HTMLElementEventMap;
|
|
|
208
220
|
* column2.renderer = (root, column, model) => {
|
|
209
221
|
* root.textContent = model.item.surname;
|
|
210
222
|
* };
|
|
223
|
+
*
|
|
224
|
+
* crud.items = [
|
|
225
|
+
* { name: 'John', surname: 'Lennon', role: 'singer' },
|
|
226
|
+
* { name: 'Ringo', surname: 'Starr', role: 'drums' },
|
|
227
|
+
* // ... more items
|
|
228
|
+
* ];
|
|
211
229
|
* ```
|
|
212
230
|
*
|
|
213
231
|
* ### Helpers
|
package/src/vaadin-crud.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
*
|
|
3
|
+
* Copyright (c) 2000 - 2022 Vaadin Ltd.
|
|
4
|
+
*
|
|
5
|
+
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
+
* license.
|
|
5
10
|
*/
|
|
6
11
|
import '@vaadin/button/src/vaadin-button.js';
|
|
7
12
|
import '@vaadin/dialog/src/vaadin-dialog.js';
|
|
@@ -41,23 +46,34 @@ class ButtonSlotController extends SlotController {
|
|
|
41
46
|
*
|
|
42
47
|
* A grid and an editor will be automatically generated and configured based on the data structure provided.
|
|
43
48
|
*
|
|
44
|
-
* #### Example:
|
|
45
49
|
* ```html
|
|
46
|
-
* <vaadin-crud
|
|
47
|
-
*
|
|
50
|
+
* <vaadin-crud></vaadin-crud>
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* ```js
|
|
54
|
+
* const crud = document.querySelector('vaadin-crud');
|
|
55
|
+
*
|
|
56
|
+
* crud.items = [
|
|
57
|
+
* { name: 'John', surname: 'Lennon', role: 'singer' },
|
|
58
|
+
* { name: 'Ringo', surname: 'Starr', role: 'drums' },
|
|
59
|
+
* // ... more items
|
|
60
|
+
* ];
|
|
48
61
|
* ```
|
|
49
62
|
*
|
|
50
63
|
* ### Data Provider Function
|
|
51
64
|
*
|
|
52
65
|
* Otherwise, you can provide a [`dataProvider`](#/elements/vaadin-crud#property-dataProvider) function.
|
|
53
|
-
*
|
|
54
|
-
* ```html
|
|
55
|
-
* <vaadin-crud></vaadin-crud>
|
|
56
|
-
* ```
|
|
66
|
+
*
|
|
57
67
|
* ```js
|
|
58
68
|
* const crud = document.querySelector('vaadin-crud');
|
|
59
|
-
*
|
|
60
|
-
*
|
|
69
|
+
*
|
|
70
|
+
* const users = [
|
|
71
|
+
* { name: 'John', surname: 'Lennon', role: 'singer' },
|
|
72
|
+
* { name: 'Ringo', surname: 'Starr', role: 'drums' },
|
|
73
|
+
* // ... more items
|
|
74
|
+
* ];
|
|
75
|
+
*
|
|
76
|
+
* crud.dataProvider = (params, callback) => {
|
|
61
77
|
* const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);
|
|
62
78
|
* callback(chunk, people.length);
|
|
63
79
|
* };
|
|
@@ -83,11 +99,7 @@ class ButtonSlotController extends SlotController {
|
|
|
83
99
|
* #### Example:
|
|
84
100
|
*
|
|
85
101
|
* ```html
|
|
86
|
-
* <vaadin-crud
|
|
87
|
-
* id="crud"
|
|
88
|
-
* items='[{"name": "John", "surname": "Lennon", "role": "singer"},
|
|
89
|
-
* {"name": "Ringo", "surname": "Starr", "role": "drums"}]'
|
|
90
|
-
* >
|
|
102
|
+
* <vaadin-crud id="crud">
|
|
91
103
|
* <vaadin-grid slot="grid">
|
|
92
104
|
* <vaadin-crud-edit-column></vaadin-crud-edit-column>
|
|
93
105
|
* <vaadin-grid-column id="column1"></vaadin-grid-column>
|
|
@@ -125,6 +137,12 @@ class ButtonSlotController extends SlotController {
|
|
|
125
137
|
* column2.renderer = (root, column, model) => {
|
|
126
138
|
* root.textContent = model.item.surname;
|
|
127
139
|
* };
|
|
140
|
+
*
|
|
141
|
+
* crud.items = [
|
|
142
|
+
* { name: 'John', surname: 'Lennon', role: 'singer' },
|
|
143
|
+
* { name: 'Ringo', surname: 'Starr', role: 'drums' },
|
|
144
|
+
* // ... more items
|
|
145
|
+
* ];
|
|
128
146
|
* ```
|
|
129
147
|
*
|
|
130
148
|
* ### Helpers
|
|
@@ -290,7 +308,7 @@ class Crud extends ControllerMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
290
308
|
theme$="[[_theme]]"
|
|
291
309
|
id="confirmCancel"
|
|
292
310
|
on-confirm="__confirmCancel"
|
|
293
|
-
cancel
|
|
311
|
+
cancel-button-visible
|
|
294
312
|
confirm-text="[[i18n.confirm.cancel.button.confirm]]"
|
|
295
313
|
cancel-text="[[i18n.confirm.cancel.button.dismiss]]"
|
|
296
314
|
header="[[i18n.confirm.cancel.title]]"
|
|
@@ -302,7 +320,7 @@ class Crud extends ControllerMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
302
320
|
theme$="[[_theme]]"
|
|
303
321
|
id="confirmDelete"
|
|
304
322
|
on-confirm="__confirmDelete"
|
|
305
|
-
cancel
|
|
323
|
+
cancel-button-visible
|
|
306
324
|
confirm-text="[[i18n.confirm.delete.button.confirm]]"
|
|
307
325
|
cancel-text="[[i18n.confirm.delete.button.dismiss]]"
|
|
308
326
|
header="[[i18n.confirm.delete.title]]"
|
|
@@ -1246,7 +1264,7 @@ class Crud extends ControllerMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
1246
1264
|
this.items.push(item);
|
|
1247
1265
|
}
|
|
1248
1266
|
} else {
|
|
1249
|
-
this.editedItem
|
|
1267
|
+
this.editedItem ||= {};
|
|
1250
1268
|
Object.assign(this.editedItem, item);
|
|
1251
1269
|
}
|
|
1252
1270
|
this._grid.clearCache();
|
|
@@ -1298,7 +1316,7 @@ class Crud extends ControllerMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
1298
1316
|
.split('.')
|
|
1299
1317
|
.slice(0, -1)
|
|
1300
1318
|
.reduce((o, p) => {
|
|
1301
|
-
o[p]
|
|
1319
|
+
o[p] ||= {};
|
|
1302
1320
|
return o[p];
|
|
1303
1321
|
}, obj);
|
|
1304
1322
|
this.set(path, val, obj);
|