handsontable 0.0.0-next-78c52c0-20240515 → 0.0.0-next-b8f1220-20240516
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.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/dataMap/dataMap.js +10 -4
- package/dataMap/dataMap.mjs +10 -4
- package/dataMap/dataSource.js +16 -3
- package/dataMap/dataSource.mjs +16 -3
- package/dataMap/metaManager/metaSchema.js +38 -0
- package/dataMap/metaManager/metaSchema.mjs +38 -0
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +69 -12
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +3 -3
- package/dist/handsontable.js +69 -12
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +3 -3
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/settings.d.ts +1 -0
package/base.js
CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
45
45
|
Handsontable.CellCoords = _src.CellCoords;
|
46
46
|
Handsontable.CellRange = _src.CellRange;
|
47
47
|
Handsontable.packageName = 'handsontable';
|
48
|
-
Handsontable.buildDate = "
|
49
|
-
Handsontable.version = "0.0.0-next-
|
48
|
+
Handsontable.buildDate = "16/05/2024 07:21:13";
|
49
|
+
Handsontable.version = "0.0.0-next-b8f1220-20240516";
|
50
50
|
Handsontable.languages = {
|
51
51
|
dictionaryKeys: _registry.dictionaryKeys,
|
52
52
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
36
36
|
Handsontable.CellRange = CellRange;
|
37
37
|
Handsontable.packageName = 'handsontable';
|
38
|
-
Handsontable.buildDate = "
|
39
|
-
Handsontable.version = "0.0.0-next-
|
38
|
+
Handsontable.buildDate = "16/05/2024 07:21:19";
|
39
|
+
Handsontable.version = "0.0.0-next-b8f1220-20240516";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys,
|
42
42
|
getLanguageDictionary,
|
package/dataMap/dataMap.js
CHANGED
@@ -671,17 +671,20 @@ class DataMap {
|
|
671
671
|
dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
|
672
672
|
//
|
673
673
|
|
674
|
+
const {
|
675
|
+
dataDotNotation
|
676
|
+
} = this.hot.getSettings();
|
674
677
|
let value = null;
|
675
678
|
|
676
679
|
// try to get value under property `prop` (includes dot)
|
677
680
|
if (dataRow && dataRow.hasOwnProperty && (0, _object.hasOwnProperty)(dataRow, prop)) {
|
678
681
|
value = dataRow[prop];
|
679
|
-
} else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
|
680
|
-
const sliced = prop.split('.');
|
682
|
+
} else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {
|
681
683
|
let out = dataRow;
|
682
684
|
if (!out) {
|
683
685
|
return null;
|
684
686
|
}
|
687
|
+
const sliced = prop.split('.');
|
685
688
|
for (let i = 0, ilen = sliced.length; i < ilen; i++) {
|
686
689
|
out = out[sliced[i]];
|
687
690
|
if (typeof out === 'undefined') {
|
@@ -739,15 +742,18 @@ class DataMap {
|
|
739
742
|
newValue = valueHolder.value;
|
740
743
|
}
|
741
744
|
}
|
745
|
+
const {
|
746
|
+
dataDotNotation
|
747
|
+
} = this.hot.getSettings();
|
742
748
|
|
743
749
|
// try to set value under property `prop` (includes dot)
|
744
750
|
if (dataRow && dataRow.hasOwnProperty && (0, _object.hasOwnProperty)(dataRow, prop)) {
|
745
751
|
dataRow[prop] = newValue;
|
746
|
-
} else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
|
747
|
-
const sliced = prop.split('.');
|
752
|
+
} else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {
|
748
753
|
let out = dataRow;
|
749
754
|
let i = 0;
|
750
755
|
let ilen;
|
756
|
+
const sliced = prop.split('.');
|
751
757
|
for (i = 0, ilen = sliced.length - 1; i < ilen; i++) {
|
752
758
|
if (typeof out[sliced[i]] === 'undefined') {
|
753
759
|
out[sliced[i]] = {};
|
package/dataMap/dataMap.mjs
CHANGED
@@ -667,17 +667,20 @@ class DataMap {
|
|
667
667
|
dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
|
668
668
|
//
|
669
669
|
|
670
|
+
const {
|
671
|
+
dataDotNotation
|
672
|
+
} = this.hot.getSettings();
|
670
673
|
let value = null;
|
671
674
|
|
672
675
|
// try to get value under property `prop` (includes dot)
|
673
676
|
if (dataRow && dataRow.hasOwnProperty && hasOwnProperty(dataRow, prop)) {
|
674
677
|
value = dataRow[prop];
|
675
|
-
} else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
|
676
|
-
const sliced = prop.split('.');
|
678
|
+
} else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {
|
677
679
|
let out = dataRow;
|
678
680
|
if (!out) {
|
679
681
|
return null;
|
680
682
|
}
|
683
|
+
const sliced = prop.split('.');
|
681
684
|
for (let i = 0, ilen = sliced.length; i < ilen; i++) {
|
682
685
|
out = out[sliced[i]];
|
683
686
|
if (typeof out === 'undefined') {
|
@@ -735,15 +738,18 @@ class DataMap {
|
|
735
738
|
newValue = valueHolder.value;
|
736
739
|
}
|
737
740
|
}
|
741
|
+
const {
|
742
|
+
dataDotNotation
|
743
|
+
} = this.hot.getSettings();
|
738
744
|
|
739
745
|
// try to set value under property `prop` (includes dot)
|
740
746
|
if (dataRow && dataRow.hasOwnProperty && hasOwnProperty(dataRow, prop)) {
|
741
747
|
dataRow[prop] = newValue;
|
742
|
-
} else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
|
743
|
-
const sliced = prop.split('.');
|
748
|
+
} else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {
|
744
749
|
let out = dataRow;
|
745
750
|
let i = 0;
|
746
751
|
let ilen;
|
752
|
+
const sliced = prop.split('.');
|
747
753
|
for (i = 0, ilen = sliced.length - 1; i < ilen; i++) {
|
748
754
|
if (typeof out[sliced[i]] === 'undefined') {
|
749
755
|
out[sliced[i]] = {};
|
package/dataMap/dataSource.js
CHANGED
@@ -110,6 +110,9 @@ class DataSource {
|
|
110
110
|
getAtRow(row, startColumn, endColumn) {
|
111
111
|
let toArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
112
112
|
const getAllProps = startColumn === undefined && endColumn === undefined;
|
113
|
+
const {
|
114
|
+
dataDotNotation
|
115
|
+
} = this.hot.getSettings();
|
113
116
|
let dataRow = null;
|
114
117
|
let newDataRow = null;
|
115
118
|
dataRow = this.modifyRowData(row);
|
@@ -140,14 +143,21 @@ class DataSource {
|
|
140
143
|
const cellValue = this.getAtPhysicalCell(row, prop, dataRow);
|
141
144
|
if (toArray) {
|
142
145
|
newDataRow.push(cellValue);
|
143
|
-
} else {
|
146
|
+
} else if (dataDotNotation) {
|
144
147
|
(0, _object.setProperty)(newDataRow, prop, cellValue);
|
148
|
+
} else {
|
149
|
+
newDataRow[prop] = cellValue;
|
145
150
|
}
|
146
151
|
}
|
147
152
|
});
|
148
153
|
} else {
|
149
154
|
(0, _object.objectEach)(dataRow, (value, prop) => {
|
150
|
-
|
155
|
+
const cellValue = this.getAtPhysicalCell(row, prop, dataRow);
|
156
|
+
if (dataDotNotation) {
|
157
|
+
(0, _object.setProperty)(newDataRow, prop, cellValue);
|
158
|
+
} else {
|
159
|
+
newDataRow[prop] = cellValue;
|
160
|
+
}
|
151
161
|
});
|
152
162
|
}
|
153
163
|
}
|
@@ -194,7 +204,10 @@ class DataSource {
|
|
194
204
|
let result = null;
|
195
205
|
if (dataRow) {
|
196
206
|
if (typeof column === 'string') {
|
197
|
-
|
207
|
+
const {
|
208
|
+
dataDotNotation
|
209
|
+
} = this.hot.getSettings();
|
210
|
+
result = dataDotNotation ? (0, _object.getProperty)(dataRow, column) : dataRow[column];
|
198
211
|
} else if (typeof column === 'function') {
|
199
212
|
result = column(dataRow);
|
200
213
|
} else {
|
package/dataMap/dataSource.mjs
CHANGED
@@ -107,6 +107,9 @@ class DataSource {
|
|
107
107
|
getAtRow(row, startColumn, endColumn) {
|
108
108
|
let toArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
109
109
|
const getAllProps = startColumn === undefined && endColumn === undefined;
|
110
|
+
const {
|
111
|
+
dataDotNotation
|
112
|
+
} = this.hot.getSettings();
|
110
113
|
let dataRow = null;
|
111
114
|
let newDataRow = null;
|
112
115
|
dataRow = this.modifyRowData(row);
|
@@ -137,14 +140,21 @@ class DataSource {
|
|
137
140
|
const cellValue = this.getAtPhysicalCell(row, prop, dataRow);
|
138
141
|
if (toArray) {
|
139
142
|
newDataRow.push(cellValue);
|
140
|
-
} else {
|
143
|
+
} else if (dataDotNotation) {
|
141
144
|
setProperty(newDataRow, prop, cellValue);
|
145
|
+
} else {
|
146
|
+
newDataRow[prop] = cellValue;
|
142
147
|
}
|
143
148
|
}
|
144
149
|
});
|
145
150
|
} else {
|
146
151
|
objectEach(dataRow, (value, prop) => {
|
147
|
-
|
152
|
+
const cellValue = this.getAtPhysicalCell(row, prop, dataRow);
|
153
|
+
if (dataDotNotation) {
|
154
|
+
setProperty(newDataRow, prop, cellValue);
|
155
|
+
} else {
|
156
|
+
newDataRow[prop] = cellValue;
|
157
|
+
}
|
148
158
|
});
|
149
159
|
}
|
150
160
|
}
|
@@ -191,7 +201,10 @@ class DataSource {
|
|
191
201
|
let result = null;
|
192
202
|
if (dataRow) {
|
193
203
|
if (typeof column === 'string') {
|
194
|
-
|
204
|
+
const {
|
205
|
+
dataDotNotation
|
206
|
+
} = this.hot.getSettings();
|
207
|
+
result = dataDotNotation ? getProperty(dataRow, column) : dataRow[column];
|
195
208
|
} else if (typeof column === 'function') {
|
196
209
|
result = column(dataRow);
|
197
210
|
} else {
|
@@ -1536,6 +1536,44 @@ var _default = () => {
|
|
1536
1536
|
* ```
|
1537
1537
|
*/
|
1538
1538
|
data: undefined,
|
1539
|
+
/**
|
1540
|
+
* @description
|
1541
|
+
* If `true`, Handsontable will interpret the dots in the columns mapping as a nested object path. If your dataset contains
|
1542
|
+
* the dots in the object keys and you don't want Handsontable to interpret them as a nested object path, set this option to `false`.
|
1543
|
+
*
|
1544
|
+
* The option only works when defined in the global table settings.
|
1545
|
+
*
|
1546
|
+
* @since 14.4.0
|
1547
|
+
* @memberof Options#
|
1548
|
+
* @type {boolean}
|
1549
|
+
* @default true
|
1550
|
+
* @category Core
|
1551
|
+
*
|
1552
|
+
* @example
|
1553
|
+
* ```js
|
1554
|
+
* // All dots are interpreted as nested object paths
|
1555
|
+
* dataDotNotation: true,
|
1556
|
+
* data: [
|
1557
|
+
* { id: 1, name: { first: 'Ted', last: 'Right' }, user: { address: '1234 Any Street' } },
|
1558
|
+
* ],
|
1559
|
+
* columns={[
|
1560
|
+
* { data: 'name.first' },
|
1561
|
+
* { data: 'user.address' },
|
1562
|
+
* ]},
|
1563
|
+
* ```
|
1564
|
+
* ```js
|
1565
|
+
* // All dots are interpreted as simple object keys
|
1566
|
+
* dataDotNotation: false,
|
1567
|
+
* data: [
|
1568
|
+
* { id: 1, 'name.first': 'Ted', 'user.address': '1234 Any Street' },
|
1569
|
+
* ],
|
1570
|
+
* columns={[
|
1571
|
+
* { data: 'name.first' },
|
1572
|
+
* { data: 'user.address' },
|
1573
|
+
* ]},
|
1574
|
+
* ```
|
1575
|
+
*/
|
1576
|
+
dataDotNotation: true,
|
1539
1577
|
/**
|
1540
1578
|
* @description
|
1541
1579
|
* When the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects)
|
@@ -1533,6 +1533,44 @@ export default (() => {
|
|
1533
1533
|
* ```
|
1534
1534
|
*/
|
1535
1535
|
data: undefined,
|
1536
|
+
/**
|
1537
|
+
* @description
|
1538
|
+
* If `true`, Handsontable will interpret the dots in the columns mapping as a nested object path. If your dataset contains
|
1539
|
+
* the dots in the object keys and you don't want Handsontable to interpret them as a nested object path, set this option to `false`.
|
1540
|
+
*
|
1541
|
+
* The option only works when defined in the global table settings.
|
1542
|
+
*
|
1543
|
+
* @since 14.4.0
|
1544
|
+
* @memberof Options#
|
1545
|
+
* @type {boolean}
|
1546
|
+
* @default true
|
1547
|
+
* @category Core
|
1548
|
+
*
|
1549
|
+
* @example
|
1550
|
+
* ```js
|
1551
|
+
* // All dots are interpreted as nested object paths
|
1552
|
+
* dataDotNotation: true,
|
1553
|
+
* data: [
|
1554
|
+
* { id: 1, name: { first: 'Ted', last: 'Right' }, user: { address: '1234 Any Street' } },
|
1555
|
+
* ],
|
1556
|
+
* columns={[
|
1557
|
+
* { data: 'name.first' },
|
1558
|
+
* { data: 'user.address' },
|
1559
|
+
* ]},
|
1560
|
+
* ```
|
1561
|
+
* ```js
|
1562
|
+
* // All dots are interpreted as simple object keys
|
1563
|
+
* dataDotNotation: false,
|
1564
|
+
* data: [
|
1565
|
+
* { id: 1, 'name.first': 'Ted', 'user.address': '1234 Any Street' },
|
1566
|
+
* ],
|
1567
|
+
* columns={[
|
1568
|
+
* { data: 'name.first' },
|
1569
|
+
* { data: 'user.address' },
|
1570
|
+
* ]},
|
1571
|
+
* ```
|
1572
|
+
*/
|
1573
|
+
dataDotNotation: true,
|
1536
1574
|
/**
|
1537
1575
|
* @description
|
1538
1576
|
* When the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects)
|
package/dist/handsontable.css
CHANGED
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
29
|
-
* Release date: 16/04/2024 (built at
|
28
|
+
* Version: 0.0.0-next-b8f1220-20240516
|
29
|
+
* Release date: 16/04/2024 (built at 16/05/2024 07:21:23)
|
30
30
|
*/
|
31
31
|
/**
|
32
32
|
* Fix for bootstrap styles
|
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
29
|
-
* Release date: 16/04/2024 (built at
|
28
|
+
* Version: 0.0.0-next-b8f1220-20240516
|
29
|
+
* Release date: 16/04/2024 (built at 16/05/2024 07:21:23)
|
30
30
|
*/
|
31
31
|
/**
|
32
32
|
* Fix for bootstrap styles
|
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
29
|
-
* Release date: 16/04/2024 (built at
|
28
|
+
* Version: 0.0.0-next-b8f1220-20240516
|
29
|
+
* Release date: 16/04/2024 (built at 16/05/2024 07:21:23)
|
30
30
|
*/
|
31
31
|
(function webpackUniversalModuleDefinition(root, factory) {
|
32
32
|
if(typeof exports === 'object' && typeof module === 'object')
|
@@ -42675,8 +42675,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
42675
42675
|
Handsontable.CellCoords = _src.CellCoords;
|
42676
42676
|
Handsontable.CellRange = _src.CellRange;
|
42677
42677
|
Handsontable.packageName = 'handsontable';
|
42678
|
-
Handsontable.buildDate = "
|
42679
|
-
Handsontable.version = "0.0.0-next-
|
42678
|
+
Handsontable.buildDate = "16/05/2024 07:21:23";
|
42679
|
+
Handsontable.version = "0.0.0-next-b8f1220-20240516";
|
42680
42680
|
Handsontable.languages = {
|
42681
42681
|
dictionaryKeys: _registry.dictionaryKeys,
|
42682
42682
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
@@ -53274,7 +53274,7 @@ const domMessages = {
|
|
53274
53274
|
function _injectProductInfo(key, element) {
|
53275
53275
|
const hasValidType = !isEmpty(key);
|
53276
53276
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
53277
|
-
const hotVersion = "0.0.0-next-
|
53277
|
+
const hotVersion = "0.0.0-next-b8f1220-20240516";
|
53278
53278
|
let keyValidityDate;
|
53279
53279
|
let consoleMessageState = 'invalid';
|
53280
53280
|
let domMessageState = 'invalid';
|
@@ -81180,6 +81180,9 @@ class DataSource {
|
|
81180
81180
|
getAtRow(row, startColumn, endColumn) {
|
81181
81181
|
let toArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
81182
81182
|
const getAllProps = startColumn === undefined && endColumn === undefined;
|
81183
|
+
const {
|
81184
|
+
dataDotNotation
|
81185
|
+
} = this.hot.getSettings();
|
81183
81186
|
let dataRow = null;
|
81184
81187
|
let newDataRow = null;
|
81185
81188
|
dataRow = this.modifyRowData(row);
|
@@ -81210,14 +81213,21 @@ class DataSource {
|
|
81210
81213
|
const cellValue = this.getAtPhysicalCell(row, prop, dataRow);
|
81211
81214
|
if (toArray) {
|
81212
81215
|
newDataRow.push(cellValue);
|
81213
|
-
} else {
|
81216
|
+
} else if (dataDotNotation) {
|
81214
81217
|
(0, _object.setProperty)(newDataRow, prop, cellValue);
|
81218
|
+
} else {
|
81219
|
+
newDataRow[prop] = cellValue;
|
81215
81220
|
}
|
81216
81221
|
}
|
81217
81222
|
});
|
81218
81223
|
} else {
|
81219
81224
|
(0, _object.objectEach)(dataRow, (value, prop) => {
|
81220
|
-
|
81225
|
+
const cellValue = this.getAtPhysicalCell(row, prop, dataRow);
|
81226
|
+
if (dataDotNotation) {
|
81227
|
+
(0, _object.setProperty)(newDataRow, prop, cellValue);
|
81228
|
+
} else {
|
81229
|
+
newDataRow[prop] = cellValue;
|
81230
|
+
}
|
81221
81231
|
});
|
81222
81232
|
}
|
81223
81233
|
}
|
@@ -81264,7 +81274,10 @@ class DataSource {
|
|
81264
81274
|
let result = null;
|
81265
81275
|
if (dataRow) {
|
81266
81276
|
if (typeof column === 'string') {
|
81267
|
-
|
81277
|
+
const {
|
81278
|
+
dataDotNotation
|
81279
|
+
} = this.hot.getSettings();
|
81280
|
+
result = dataDotNotation ? (0, _object.getProperty)(dataRow, column) : dataRow[column];
|
81268
81281
|
} else if (typeof column === 'function') {
|
81269
81282
|
result = column(dataRow);
|
81270
81283
|
} else {
|
@@ -87789,17 +87802,20 @@ class DataMap {
|
|
87789
87802
|
dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
|
87790
87803
|
//
|
87791
87804
|
|
87805
|
+
const {
|
87806
|
+
dataDotNotation
|
87807
|
+
} = this.hot.getSettings();
|
87792
87808
|
let value = null;
|
87793
87809
|
|
87794
87810
|
// try to get value under property `prop` (includes dot)
|
87795
87811
|
if (dataRow && dataRow.hasOwnProperty && (0, _object.hasOwnProperty)(dataRow, prop)) {
|
87796
87812
|
value = dataRow[prop];
|
87797
|
-
} else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
|
87798
|
-
const sliced = prop.split('.');
|
87813
|
+
} else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {
|
87799
87814
|
let out = dataRow;
|
87800
87815
|
if (!out) {
|
87801
87816
|
return null;
|
87802
87817
|
}
|
87818
|
+
const sliced = prop.split('.');
|
87803
87819
|
for (let i = 0, ilen = sliced.length; i < ilen; i++) {
|
87804
87820
|
out = out[sliced[i]];
|
87805
87821
|
if (typeof out === 'undefined') {
|
@@ -87857,15 +87873,18 @@ class DataMap {
|
|
87857
87873
|
newValue = valueHolder.value;
|
87858
87874
|
}
|
87859
87875
|
}
|
87876
|
+
const {
|
87877
|
+
dataDotNotation
|
87878
|
+
} = this.hot.getSettings();
|
87860
87879
|
|
87861
87880
|
// try to set value under property `prop` (includes dot)
|
87862
87881
|
if (dataRow && dataRow.hasOwnProperty && (0, _object.hasOwnProperty)(dataRow, prop)) {
|
87863
87882
|
dataRow[prop] = newValue;
|
87864
|
-
} else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
|
87865
|
-
const sliced = prop.split('.');
|
87883
|
+
} else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {
|
87866
87884
|
let out = dataRow;
|
87867
87885
|
let i = 0;
|
87868
87886
|
let ilen;
|
87887
|
+
const sliced = prop.split('.');
|
87869
87888
|
for (i = 0, ilen = sliced.length - 1; i < ilen; i++) {
|
87870
87889
|
if (typeof out[sliced[i]] === 'undefined') {
|
87871
87890
|
out[sliced[i]] = {};
|
@@ -90337,6 +90356,44 @@ var _default = () => {
|
|
90337
90356
|
* ```
|
90338
90357
|
*/
|
90339
90358
|
data: undefined,
|
90359
|
+
/**
|
90360
|
+
* @description
|
90361
|
+
* If `true`, Handsontable will interpret the dots in the columns mapping as a nested object path. If your dataset contains
|
90362
|
+
* the dots in the object keys and you don't want Handsontable to interpret them as a nested object path, set this option to `false`.
|
90363
|
+
*
|
90364
|
+
* The option only works when defined in the global table settings.
|
90365
|
+
*
|
90366
|
+
* @since 14.4.0
|
90367
|
+
* @memberof Options#
|
90368
|
+
* @type {boolean}
|
90369
|
+
* @default true
|
90370
|
+
* @category Core
|
90371
|
+
*
|
90372
|
+
* @example
|
90373
|
+
* ```js
|
90374
|
+
* // All dots are interpreted as nested object paths
|
90375
|
+
* dataDotNotation: true,
|
90376
|
+
* data: [
|
90377
|
+
* { id: 1, name: { first: 'Ted', last: 'Right' }, user: { address: '1234 Any Street' } },
|
90378
|
+
* ],
|
90379
|
+
* columns={[
|
90380
|
+
* { data: 'name.first' },
|
90381
|
+
* { data: 'user.address' },
|
90382
|
+
* ]},
|
90383
|
+
* ```
|
90384
|
+
* ```js
|
90385
|
+
* // All dots are interpreted as simple object keys
|
90386
|
+
* dataDotNotation: false,
|
90387
|
+
* data: [
|
90388
|
+
* { id: 1, 'name.first': 'Ted', 'user.address': '1234 Any Street' },
|
90389
|
+
* ],
|
90390
|
+
* columns={[
|
90391
|
+
* { data: 'name.first' },
|
90392
|
+
* { data: 'user.address' },
|
90393
|
+
* ]},
|
90394
|
+
* ```
|
90395
|
+
*/
|
90396
|
+
dataDotNotation: true,
|
90340
90397
|
/**
|
90341
90398
|
* @description
|
90342
90399
|
* When the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects)
|
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
29
|
-
* Release date: 16/04/2024 (built at
|
28
|
+
* Version: 0.0.0-next-b8f1220-20240516
|
29
|
+
* Release date: 16/04/2024 (built at 16/05/2024 07:21:41)
|
30
30
|
*/.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable .columnSorting{position:relative}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:"";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";display:inline-block;padding-right:20px;position:relative}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;bottom:-100%\9;content:"";left:0;position:absolute;right:0;top:0}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{bottom:-100%}}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{-webkit-appearance:menulist-button!important;position:absolute;width:auto}.htSelectEditor:focus{outline:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:""}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:"◀";font-size:9px;left:5px;position:absolute}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;-moz-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}
|
31
31
|
/*!
|
32
32
|
* Pikaday
|