handsontable 0.0.0-next-7026906-20231107 → 0.0.0-next-7b93b7d-20231107
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/SheetClip/SheetClip.js +2 -2
- package/3rdparty/SheetClip/SheetClip.mjs +2 -2
- package/3rdparty/autoResize/autoResize.js +2 -2
- package/3rdparty/autoResize/autoResize.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +108 -85
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +108 -85
- package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -52
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -52
- package/3rdparty/walkontable/src/core/clone.js +6 -0
- package/3rdparty/walkontable/src/core/clone.mjs +6 -0
- package/3rdparty/walkontable/src/event.js +125 -74
- package/3rdparty/walkontable/src/event.mjs +125 -74
- package/3rdparty/walkontable/src/filter/column.js +16 -0
- package/3rdparty/walkontable/src/filter/column.mjs +16 -0
- package/3rdparty/walkontable/src/filter/row.js +16 -0
- package/3rdparty/walkontable/src/filter/row.mjs +16 -0
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/_base.js +12 -5
- package/3rdparty/walkontable/src/renderer/_base.mjs +12 -5
- package/3rdparty/walkontable/src/renderer/cells.js +6 -2
- package/3rdparty/walkontable/src/renderer/cells.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rows.js +5 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/table.js +24 -17
- package/3rdparty/walkontable/src/renderer/table.mjs +24 -17
- package/3rdparty/walkontable/src/scroll.js +2 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -2
- package/3rdparty/walkontable/src/selection/border/border.js +1 -1
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +10 -10
- package/3rdparty/walkontable/src/settings.mjs +10 -10
- package/3rdparty/walkontable/src/table.js +3 -3
- package/3rdparty/walkontable/src/table.mjs +3 -3
- package/3rdparty/walkontable/src/utils/column.js +19 -4
- package/3rdparty/walkontable/src/utils/column.mjs +19 -4
- package/3rdparty/walkontable/src/utils/nodesPool.js +5 -0
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +5 -0
- package/3rdparty/walkontable/src/utils/orderView/view.js +13 -6
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +13 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +7 -4
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +7 -4
- package/3rdparty/walkontable/src/utils/row.js +14 -2
- package/3rdparty/walkontable/src/utils/row.mjs +14 -2
- package/3rdparty/walkontable/src/viewport.js +9 -9
- package/3rdparty/walkontable/src/viewport.mjs +9 -9
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +25 -25
- package/core.mjs +25 -25
- package/dataMap/dataMap.js +99 -90
- package/dataMap/dataMap.mjs +99 -90
- package/dataMap/dataSource.js +14 -8
- package/dataMap/dataSource.mjs +14 -8
- package/dataMap/metaManager/lazyFactoryMap.js +19 -7
- package/dataMap/metaManager/lazyFactoryMap.mjs +19 -7
- package/dataMap/metaManager/metaLayers/cellMeta.js +8 -3
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +8 -3
- package/dataMap/metaManager/metaLayers/columnMeta.js +7 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +7 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +6 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +6 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +6 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +6 -2
- package/dataMap/metaManager/metaSchema.js +55 -55
- package/dataMap/metaManager/metaSchema.mjs +55 -55
- package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -2
- package/dataMap/metaManager/mods/extendMetaProperties.js +8 -4
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +8 -4
- package/dataMap/metaManager/utils.js +2 -2
- package/dataMap/metaManager/utils.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +7244 -6347
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +120 -120
- package/dist/handsontable.js +7243 -6346
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +28 -28
- package/editorManager.js +105 -95
- package/editorManager.mjs +105 -95
- package/editors/autocompleteEditor/autocompleteEditor.js +47 -46
- package/editors/autocompleteEditor/autocompleteEditor.mjs +46 -45
- package/editors/baseEditor/baseEditor.js +23 -26
- package/editors/baseEditor/baseEditor.mjs +23 -26
- package/editors/dateEditor/dateEditor.js +24 -15
- package/editors/dateEditor/dateEditor.mjs +24 -15
- package/editors/dropdownEditor/dropdownEditor.js +1 -1
- package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
- package/editors/handsontableEditor/handsontableEditor.js +4 -4
- package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
- package/editors/textEditor/textEditor.js +23 -17
- package/editors/textEditor/textEditor.mjs +24 -18
- package/eventManager.js +8 -0
- package/eventManager.mjs +8 -0
- package/helpers/array.js +2 -2
- package/helpers/array.mjs +2 -2
- package/helpers/dom/element.js +7 -7
- package/helpers/dom/element.mjs +7 -7
- package/helpers/function.js +1 -1
- package/helpers/function.mjs +1 -1
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/object.js +4 -4
- package/helpers/object.mjs +4 -4
- package/helpers/string.js +1 -1
- package/helpers/string.mjs +1 -1
- package/package.json +1 -1
- package/pluginHooks.d.ts +0 -2
- package/pluginHooks.js +12 -3
- package/pluginHooks.mjs +12 -3
- package/plugins/autoColumnSize/autoColumnSize.js +141 -130
- package/plugins/autoColumnSize/autoColumnSize.mjs +140 -129
- package/plugins/autoRowSize/autoRowSize.js +112 -125
- package/plugins/autoRowSize/autoRowSize.mjs +110 -123
- package/plugins/autofill/autofill.js +97 -102
- package/plugins/autofill/autofill.mjs +96 -101
- package/plugins/base/base.js +57 -22
- package/plugins/base/base.mjs +56 -22
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +29 -24
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +28 -23
- package/plugins/collapsibleColumns/collapsibleColumns.js +104 -107
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +102 -104
- package/plugins/columnSorting/columnSorting.js +105 -98
- package/plugins/columnSorting/columnSorting.mjs +104 -97
- package/plugins/columnSorting/columnStatesManager.js +12 -6
- package/plugins/columnSorting/columnStatesManager.mjs +12 -6
- package/plugins/columnSummary/columnSummary.js +71 -58
- package/plugins/columnSummary/columnSummary.mjs +70 -57
- package/plugins/columnSummary/endpoints.js +20 -14
- package/plugins/columnSummary/endpoints.mjs +20 -14
- package/plugins/comments/commentEditor.js +30 -2
- package/plugins/comments/commentEditor.mjs +30 -2
- package/plugins/comments/comments.js +158 -169
- package/plugins/comments/comments.mjs +157 -168
- package/plugins/comments/displaySwitch.js +7 -3
- package/plugins/comments/displaySwitch.mjs +7 -3
- package/plugins/contextMenu/commandExecutor.js +15 -2
- package/plugins/contextMenu/commandExecutor.mjs +15 -2
- package/plugins/contextMenu/contextMenu.js +91 -101
- package/plugins/contextMenu/contextMenu.mjs +90 -100
- package/plugins/contextMenu/itemsFactory.js +19 -4
- package/plugins/contextMenu/itemsFactory.mjs +19 -4
- package/plugins/contextMenu/menu/cursor.js +36 -0
- package/plugins/contextMenu/menu/cursor.mjs +36 -0
- package/plugins/contextMenu/menu/menu.js +57 -5
- package/plugins/contextMenu/menu/menu.mjs +57 -5
- package/plugins/copyPaste/copyPaste.js +74 -75
- package/plugins/copyPaste/copyPaste.mjs +74 -75
- package/plugins/customBorders/customBorders.js +49 -48
- package/plugins/customBorders/customBorders.mjs +48 -47
- package/plugins/dragToScroll/dragToScroll.js +50 -54
- package/plugins/dragToScroll/dragToScroll.mjs +49 -52
- package/plugins/dropdownMenu/dropdownMenu.js +132 -129
- package/plugins/dropdownMenu/dropdownMenu.mjs +132 -129
- package/plugins/exportFile/dataProvider.js +7 -2
- package/plugins/exportFile/dataProvider.mjs +7 -2
- package/plugins/exportFile/exportFile.js +1 -1
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +14 -6
- package/plugins/exportFile/types/_base.mjs +14 -6
- package/plugins/filters/component/actionBar.js +9 -0
- package/plugins/filters/component/actionBar.mjs +9 -0
- package/plugins/filters/component/condition.js +13 -0
- package/plugins/filters/component/condition.mjs +13 -0
- package/plugins/filters/component/operators.js +9 -0
- package/plugins/filters/component/operators.mjs +9 -0
- package/plugins/filters/component/value.js +9 -0
- package/plugins/filters/component/value.mjs +9 -0
- package/plugins/filters/conditionCollection.js +9 -4
- package/plugins/filters/conditionCollection.mjs +9 -4
- package/plugins/filters/conditionUpdateObserver.js +53 -42
- package/plugins/filters/conditionUpdateObserver.mjs +53 -42
- package/plugins/filters/dataFilter.js +9 -3
- package/plugins/filters/dataFilter.mjs +9 -3
- package/plugins/filters/filters.js +184 -189
- package/plugins/filters/filters.mjs +182 -187
- package/plugins/filters/ui/_base.js +1 -1
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/utils.js +1 -1
- package/plugins/filters/utils.mjs +1 -1
- package/plugins/formulas/engine/settings.js +1 -1
- package/plugins/formulas/engine/settings.mjs +1 -1
- package/plugins/formulas/formulas.js +684 -602
- package/plugins/formulas/formulas.mjs +682 -600
- package/plugins/hiddenColumns/hiddenColumns.js +174 -169
- package/plugins/hiddenColumns/hiddenColumns.mjs +173 -168
- package/plugins/hiddenRows/hiddenRows.js +170 -165
- package/plugins/hiddenRows/hiddenRows.mjs +169 -164
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +67 -54
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +64 -51
- package/plugins/manualColumnMove/manualColumnMove.js +287 -232
- package/plugins/manualColumnMove/manualColumnMove.mjs +286 -231
- package/plugins/manualColumnMove/ui/_base.js +9 -3
- package/plugins/manualColumnMove/ui/_base.mjs +9 -3
- package/plugins/manualColumnResize/manualColumnResize.js +291 -246
- package/plugins/manualColumnResize/manualColumnResize.mjs +290 -244
- package/plugins/manualRowMove/manualRowMove.js +223 -208
- package/plugins/manualRowMove/manualRowMove.mjs +222 -207
- package/plugins/manualRowMove/ui/_base.js +10 -5
- package/plugins/manualRowMove/ui/_base.mjs +10 -5
- package/plugins/manualRowResize/manualRowResize.js +254 -209
- package/plugins/manualRowResize/manualRowResize.mjs +253 -207
- package/plugins/mergeCells/calculations/autofill.js +9 -3
- package/plugins/mergeCells/calculations/autofill.mjs +9 -3
- package/plugins/mergeCells/calculations/selection.js +10 -4
- package/plugins/mergeCells/calculations/selection.mjs +10 -4
- package/plugins/mergeCells/cellCoords.js +16 -6
- package/plugins/mergeCells/cellCoords.mjs +16 -6
- package/plugins/mergeCells/cellsCollection.js +10 -4
- package/plugins/mergeCells/cellsCollection.mjs +10 -4
- package/plugins/mergeCells/mergeCells.js +582 -502
- package/plugins/mergeCells/mergeCells.mjs +580 -500
- package/plugins/multiColumnSorting/multiColumnSorting.js +13 -10
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +13 -10
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +16 -28
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +16 -27
- package/plugins/nestedHeaders/nestedHeaders.js +542 -499
- package/plugins/nestedHeaders/nestedHeaders.mjs +554 -511
- package/plugins/nestedHeaders/stateManager/index.js +1 -1
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +21 -15
- package/plugins/nestedRows/data/dataManager.mjs +21 -15
- package/plugins/nestedRows/nestedRows.js +326 -278
- package/plugins/nestedRows/nestedRows.mjs +325 -277
- package/plugins/nestedRows/ui/_base.js +7 -1
- package/plugins/nestedRows/ui/_base.mjs +7 -1
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +28 -18
- package/plugins/nestedRows/ui/contextMenu.mjs +28 -18
- package/plugins/nestedRows/utils/rowMoveController.js +12 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +12 -4
- package/plugins/persistentState/persistentState.js +14 -11
- package/plugins/persistentState/persistentState.mjs +14 -11
- package/plugins/persistentState/storage.js +11 -6
- package/plugins/persistentState/storage.mjs +11 -6
- package/plugins/registry.js +2 -2
- package/plugins/registry.mjs +2 -2
- package/plugins/search/search.js +57 -46
- package/plugins/search/search.mjs +56 -45
- package/plugins/touchScroll/touchScroll.js +102 -100
- package/plugins/touchScroll/touchScroll.mjs +100 -98
- package/plugins/trimRows/trimRows.js +33 -28
- package/plugins/trimRows/trimRows.mjs +32 -27
- package/plugins/undoRedo/undoRedo.js +2 -2
- package/plugins/undoRedo/undoRedo.mjs +2 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +11 -11
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +11 -11
- package/renderers/baseRenderer/baseRenderer.js +2 -2
- package/renderers/baseRenderer/baseRenderer.mjs +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +23 -23
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +23 -23
- package/renderers/dateRenderer/dateRenderer.js +4 -4
- package/renderers/dateRenderer/dateRenderer.mjs +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.js +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +4 -4
- package/renderers/htmlRenderer/htmlRenderer.js +4 -4
- package/renderers/htmlRenderer/htmlRenderer.mjs +4 -4
- package/renderers/numericRenderer/numericRenderer.js +3 -3
- package/renderers/numericRenderer/numericRenderer.mjs +3 -3
- package/renderers/passwordRenderer/passwordRenderer.js +3 -3
- package/renderers/passwordRenderer/passwordRenderer.mjs +3 -3
- package/renderers/selectRenderer/selectRenderer.js +4 -4
- package/renderers/selectRenderer/selectRenderer.mjs +4 -4
- package/renderers/textRenderer/textRenderer.js +5 -5
- package/renderers/textRenderer/textRenderer.mjs +5 -5
- package/renderers/timeRenderer/timeRenderer.js +3 -3
- package/renderers/timeRenderer/timeRenderer.mjs +3 -3
- package/selection/range.js +12 -2
- package/selection/range.mjs +12 -2
- package/selection/selection.js +3 -3
- package/selection/selection.mjs +3 -3
- package/tableView.js +208 -200
- package/tableView.mjs +208 -200
- package/translations/changesObservable/utils.js +2 -2
- package/translations/changesObservable/utils.mjs +2 -2
- package/translations/indexMapper.js +25 -22
- package/translations/indexMapper.mjs +25 -22
- package/translations/mapCollections/aggregatedCollection.js +8 -2
- package/translations/mapCollections/aggregatedCollection.mjs +8 -2
- package/translations/mapCollections/mapCollection.js +5 -2
- package/translations/mapCollections/mapCollection.mjs +5 -2
- package/translations/maps/indexMap.js +6 -1
- package/translations/maps/indexMap.mjs +6 -1
- package/translations/maps/utils/physicallyIndexed.js +2 -2
- package/translations/maps/utils/physicallyIndexed.mjs +2 -2
- package/utils/dataStructures/linkedList.js +10 -6
- package/utils/dataStructures/linkedList.mjs +10 -6
- package/utils/dataStructures/queue.js +1 -1
- package/utils/dataStructures/queue.mjs +1 -1
- package/utils/dataStructures/stack.js +1 -1
- package/utils/dataStructures/stack.mjs +1 -1
- package/utils/ghostTable.js +2 -2
- package/utils/ghostTable.mjs +2 -2
- package/utils/interval.js +73 -36
- package/utils/interval.mjs +73 -36
- package/utils/parseTable.js +1 -1
- package/utils/parseTable.mjs +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.mjs +1 -1
- package/validators/dateValidator/dateValidator.js +1 -1
- package/validators/dateValidator/dateValidator.mjs +1 -1
- package/validators/numericValidator/numericValidator.js +1 -1
- package/validators/numericValidator/numericValidator.mjs +1 -1
@@ -51,7 +51,7 @@ _pluginHooks.default.getSingleton().add('modifyAutoColumnSizeSeed', function (bu
|
|
51
51
|
* Checkbox renderer.
|
52
52
|
*
|
53
53
|
* @private
|
54
|
-
* @param {Core}
|
54
|
+
* @param {Core} hotInstance The Handsontable instance.
|
55
55
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
56
56
|
* @param {number} row The visual row index.
|
57
57
|
* @param {number} col The visual column index.
|
@@ -59,13 +59,13 @@ _pluginHooks.default.getSingleton().add('modifyAutoColumnSizeSeed', function (bu
|
|
59
59
|
* @param {*} value The rendered value.
|
60
60
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
61
61
|
*/
|
62
|
-
function checkboxRenderer(
|
62
|
+
function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
63
63
|
const {
|
64
64
|
rootDocument
|
65
|
-
} =
|
66
|
-
const ariaEnabled =
|
67
|
-
_baseRenderer.baseRenderer.apply(this, [
|
68
|
-
registerEvents(
|
65
|
+
} = hotInstance;
|
66
|
+
const ariaEnabled = hotInstance.getSettings().ariaTags;
|
67
|
+
_baseRenderer.baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
68
|
+
registerEvents(hotInstance);
|
69
69
|
let input = createInput(rootDocument);
|
70
70
|
const labelOptions = cellProperties.label;
|
71
71
|
let badValue = false;
|
@@ -91,14 +91,14 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
91
91
|
}
|
92
92
|
(0, _element.setAttribute)(input, [[ATTR_ROW, row], [ATTR_COLUMN, col]]);
|
93
93
|
if (ariaEnabled) {
|
94
|
-
(0, _element.setAttribute)(input, [(0, _a11y.A11Y_LABEL)(input.checked ?
|
94
|
+
(0, _element.setAttribute)(input, [(0, _a11y.A11Y_LABEL)(input.checked ? hotInstance.getTranslatedPhrase(_constants.CHECKBOX_CHECKED) : hotInstance.getTranslatedPhrase(_constants.CHECKBOX_UNCHECKED)), (0, _a11y.A11Y_CHECKED)(input.checked), (0, _a11y.A11Y_CHECKBOX)()]);
|
95
95
|
}
|
96
96
|
if (!badValue && labelOptions) {
|
97
97
|
let labelText = '';
|
98
98
|
if (labelOptions.value) {
|
99
99
|
labelText = typeof labelOptions.value === 'function' ? labelOptions.value.call(this, row, col, prop, value) : labelOptions.value;
|
100
100
|
} else if (labelOptions.property) {
|
101
|
-
const labelValue =
|
101
|
+
const labelValue = hotInstance.getDataAtRowProp(row, labelOptions.property);
|
102
102
|
labelText = labelValue !== null ? labelValue : '';
|
103
103
|
}
|
104
104
|
const label = createLabel(rootDocument, labelText, labelOptions.separated !== true);
|
@@ -126,8 +126,8 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
126
126
|
if (badValue) {
|
127
127
|
TD.appendChild(rootDocument.createTextNode('#bad-value#'));
|
128
128
|
}
|
129
|
-
if (!isListeningKeyDownEvent.has(
|
130
|
-
isListeningKeyDownEvent.set(
|
129
|
+
if (!isListeningKeyDownEvent.has(hotInstance)) {
|
130
|
+
isListeningKeyDownEvent.set(hotInstance, true);
|
131
131
|
registerShortcuts();
|
132
132
|
}
|
133
133
|
|
@@ -137,7 +137,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
137
137
|
* @private
|
138
138
|
*/
|
139
139
|
function registerShortcuts() {
|
140
|
-
const shortcutManager =
|
140
|
+
const shortcutManager = hotInstance.getShortcutManager();
|
141
141
|
const gridContext = shortcutManager.getContext('grid');
|
142
142
|
const config = {
|
143
143
|
group: SHORTCUTS_GROUP
|
@@ -155,7 +155,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
155
155
|
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
156
156
|
},
|
157
157
|
|
158
|
-
runOnlyIf: () =>
|
158
|
+
runOnlyIf: () => hotInstance.getSettings().enterBeginsEditing
|
159
159
|
}, {
|
160
160
|
keys: [['delete'], ['backspace']],
|
161
161
|
callback: () => {
|
@@ -176,7 +176,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
176
176
|
*/
|
177
177
|
function changeSelectedCheckboxesState() {
|
178
178
|
let uncheckCheckbox = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
179
|
-
const selRange =
|
179
|
+
const selRange = hotInstance.getSelectedRange();
|
180
180
|
if (!selRange) {
|
181
181
|
return;
|
182
182
|
}
|
@@ -192,7 +192,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
192
192
|
const changes = [];
|
193
193
|
for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {
|
194
194
|
for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {
|
195
|
-
const cachedCellProperties =
|
195
|
+
const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
|
196
196
|
if (cachedCellProperties.type !== 'checkbox') {
|
197
197
|
return;
|
198
198
|
}
|
@@ -207,12 +207,12 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
207
207
|
if (typeof cachedCellProperties.uncheckedTemplate === 'undefined') {
|
208
208
|
cachedCellProperties.uncheckedTemplate = false;
|
209
209
|
}
|
210
|
-
const dataAtCell =
|
210
|
+
const dataAtCell = hotInstance.getDataAtCell(visualRow, visualColumn);
|
211
211
|
if (uncheckCheckbox === false) {
|
212
212
|
if ([cachedCellProperties.checkedTemplate, cachedCellProperties.checkedTemplate.toString()].includes(dataAtCell)) {
|
213
213
|
// eslint-disable-line max-len
|
214
214
|
changes.push([visualRow, visualColumn, cachedCellProperties.uncheckedTemplate]);
|
215
|
-
} else if ([cachedCellProperties.uncheckedTemplate, cachedCellProperties.uncheckedTemplate.toString(), null,
|
215
|
+
} else if ([cachedCellProperties.uncheckedTemplate, cachedCellProperties.uncheckedTemplate.toString(), null, undefined].includes(dataAtCell)) {
|
216
216
|
// eslint-disable-line max-len
|
217
217
|
changes.push([visualRow, visualColumn, cachedCellProperties.checkedTemplate]);
|
218
218
|
}
|
@@ -222,7 +222,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
222
222
|
}
|
223
223
|
}
|
224
224
|
if (changes.length > 0) {
|
225
|
-
|
225
|
+
hotInstance.setDataAtCell(changes);
|
226
226
|
}
|
227
227
|
}
|
228
228
|
}
|
@@ -234,7 +234,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
234
234
|
* @private
|
235
235
|
*/
|
236
236
|
function areSelectedCheckboxCells() {
|
237
|
-
const selRange =
|
237
|
+
const selRange = hotInstance.getSelectedRange();
|
238
238
|
if (!selRange) {
|
239
239
|
return;
|
240
240
|
}
|
@@ -243,12 +243,12 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
243
243
|
const bottomRight = selRange[key].getBottomEndCorner();
|
244
244
|
for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
|
245
245
|
for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
|
246
|
-
const cachedCellProperties =
|
246
|
+
const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
|
247
247
|
if (cachedCellProperties.type !== 'checkbox') {
|
248
248
|
return false;
|
249
249
|
}
|
250
|
-
const cell =
|
251
|
-
if (cell === null || cell ===
|
250
|
+
const cell = hotInstance.getCell(visualRow, visualColumn);
|
251
|
+
if (cell === null || cell === undefined) {
|
252
252
|
return true;
|
253
253
|
} else {
|
254
254
|
const checkboxes = cell.querySelectorAll('input[type=checkbox]');
|
@@ -382,9 +382,9 @@ function onChange(event, instance) {
|
|
382
382
|
if (!cellProperties.readOnly) {
|
383
383
|
let newCheckboxValue = null;
|
384
384
|
if (event.target.checked) {
|
385
|
-
newCheckboxValue = cellProperties.uncheckedTemplate ===
|
385
|
+
newCheckboxValue = cellProperties.uncheckedTemplate === undefined ? true : cellProperties.checkedTemplate;
|
386
386
|
} else {
|
387
|
-
newCheckboxValue = cellProperties.uncheckedTemplate ===
|
387
|
+
newCheckboxValue = cellProperties.uncheckedTemplate === undefined ? false : cellProperties.uncheckedTemplate;
|
388
388
|
}
|
389
389
|
instance.setDataAtCell(row, col, newCheckboxValue);
|
390
390
|
}
|
@@ -45,7 +45,7 @@ Hooks.getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellM
|
|
45
45
|
* Checkbox renderer.
|
46
46
|
*
|
47
47
|
* @private
|
48
|
-
* @param {Core}
|
48
|
+
* @param {Core} hotInstance The Handsontable instance.
|
49
49
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
50
50
|
* @param {number} row The visual row index.
|
51
51
|
* @param {number} col The visual column index.
|
@@ -53,13 +53,13 @@ Hooks.getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellM
|
|
53
53
|
* @param {*} value The rendered value.
|
54
54
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
55
55
|
*/
|
56
|
-
export function checkboxRenderer(
|
56
|
+
export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
57
57
|
const {
|
58
58
|
rootDocument
|
59
|
-
} =
|
60
|
-
const ariaEnabled =
|
61
|
-
baseRenderer.apply(this, [
|
62
|
-
registerEvents(
|
59
|
+
} = hotInstance;
|
60
|
+
const ariaEnabled = hotInstance.getSettings().ariaTags;
|
61
|
+
baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
62
|
+
registerEvents(hotInstance);
|
63
63
|
let input = createInput(rootDocument);
|
64
64
|
const labelOptions = cellProperties.label;
|
65
65
|
let badValue = false;
|
@@ -85,14 +85,14 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
85
85
|
}
|
86
86
|
setAttribute(input, [[ATTR_ROW, row], [ATTR_COLUMN, col]]);
|
87
87
|
if (ariaEnabled) {
|
88
|
-
setAttribute(input, [A11Y_LABEL(input.checked ?
|
88
|
+
setAttribute(input, [A11Y_LABEL(input.checked ? hotInstance.getTranslatedPhrase(CHECKBOX_CHECKED) : hotInstance.getTranslatedPhrase(CHECKBOX_UNCHECKED)), A11Y_CHECKED(input.checked), A11Y_CHECKBOX()]);
|
89
89
|
}
|
90
90
|
if (!badValue && labelOptions) {
|
91
91
|
let labelText = '';
|
92
92
|
if (labelOptions.value) {
|
93
93
|
labelText = typeof labelOptions.value === 'function' ? labelOptions.value.call(this, row, col, prop, value) : labelOptions.value;
|
94
94
|
} else if (labelOptions.property) {
|
95
|
-
const labelValue =
|
95
|
+
const labelValue = hotInstance.getDataAtRowProp(row, labelOptions.property);
|
96
96
|
labelText = labelValue !== null ? labelValue : '';
|
97
97
|
}
|
98
98
|
const label = createLabel(rootDocument, labelText, labelOptions.separated !== true);
|
@@ -120,8 +120,8 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
120
120
|
if (badValue) {
|
121
121
|
TD.appendChild(rootDocument.createTextNode('#bad-value#'));
|
122
122
|
}
|
123
|
-
if (!isListeningKeyDownEvent.has(
|
124
|
-
isListeningKeyDownEvent.set(
|
123
|
+
if (!isListeningKeyDownEvent.has(hotInstance)) {
|
124
|
+
isListeningKeyDownEvent.set(hotInstance, true);
|
125
125
|
registerShortcuts();
|
126
126
|
}
|
127
127
|
|
@@ -131,7 +131,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
131
131
|
* @private
|
132
132
|
*/
|
133
133
|
function registerShortcuts() {
|
134
|
-
const shortcutManager =
|
134
|
+
const shortcutManager = hotInstance.getShortcutManager();
|
135
135
|
const gridContext = shortcutManager.getContext('grid');
|
136
136
|
const config = {
|
137
137
|
group: SHORTCUTS_GROUP
|
@@ -149,7 +149,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
149
149
|
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
150
150
|
},
|
151
151
|
|
152
|
-
runOnlyIf: () =>
|
152
|
+
runOnlyIf: () => hotInstance.getSettings().enterBeginsEditing
|
153
153
|
}, {
|
154
154
|
keys: [['delete'], ['backspace']],
|
155
155
|
callback: () => {
|
@@ -170,7 +170,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
170
170
|
*/
|
171
171
|
function changeSelectedCheckboxesState() {
|
172
172
|
let uncheckCheckbox = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
173
|
-
const selRange =
|
173
|
+
const selRange = hotInstance.getSelectedRange();
|
174
174
|
if (!selRange) {
|
175
175
|
return;
|
176
176
|
}
|
@@ -186,7 +186,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
186
186
|
const changes = [];
|
187
187
|
for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {
|
188
188
|
for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {
|
189
|
-
const cachedCellProperties =
|
189
|
+
const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
|
190
190
|
if (cachedCellProperties.type !== 'checkbox') {
|
191
191
|
return;
|
192
192
|
}
|
@@ -201,12 +201,12 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
201
201
|
if (typeof cachedCellProperties.uncheckedTemplate === 'undefined') {
|
202
202
|
cachedCellProperties.uncheckedTemplate = false;
|
203
203
|
}
|
204
|
-
const dataAtCell =
|
204
|
+
const dataAtCell = hotInstance.getDataAtCell(visualRow, visualColumn);
|
205
205
|
if (uncheckCheckbox === false) {
|
206
206
|
if ([cachedCellProperties.checkedTemplate, cachedCellProperties.checkedTemplate.toString()].includes(dataAtCell)) {
|
207
207
|
// eslint-disable-line max-len
|
208
208
|
changes.push([visualRow, visualColumn, cachedCellProperties.uncheckedTemplate]);
|
209
|
-
} else if ([cachedCellProperties.uncheckedTemplate, cachedCellProperties.uncheckedTemplate.toString(), null,
|
209
|
+
} else if ([cachedCellProperties.uncheckedTemplate, cachedCellProperties.uncheckedTemplate.toString(), null, undefined].includes(dataAtCell)) {
|
210
210
|
// eslint-disable-line max-len
|
211
211
|
changes.push([visualRow, visualColumn, cachedCellProperties.checkedTemplate]);
|
212
212
|
}
|
@@ -216,7 +216,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
216
216
|
}
|
217
217
|
}
|
218
218
|
if (changes.length > 0) {
|
219
|
-
|
219
|
+
hotInstance.setDataAtCell(changes);
|
220
220
|
}
|
221
221
|
}
|
222
222
|
}
|
@@ -228,7 +228,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
228
228
|
* @private
|
229
229
|
*/
|
230
230
|
function areSelectedCheckboxCells() {
|
231
|
-
const selRange =
|
231
|
+
const selRange = hotInstance.getSelectedRange();
|
232
232
|
if (!selRange) {
|
233
233
|
return;
|
234
234
|
}
|
@@ -237,12 +237,12 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
237
237
|
const bottomRight = selRange[key].getBottomEndCorner();
|
238
238
|
for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
|
239
239
|
for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
|
240
|
-
const cachedCellProperties =
|
240
|
+
const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
|
241
241
|
if (cachedCellProperties.type !== 'checkbox') {
|
242
242
|
return false;
|
243
243
|
}
|
244
|
-
const cell =
|
245
|
-
if (cell === null || cell ===
|
244
|
+
const cell = hotInstance.getCell(visualRow, visualColumn);
|
245
|
+
if (cell === null || cell === undefined) {
|
246
246
|
return true;
|
247
247
|
} else {
|
248
248
|
const checkboxes = cell.querySelectorAll('input[type=checkbox]');
|
@@ -376,9 +376,9 @@ function onChange(event, instance) {
|
|
376
376
|
if (!cellProperties.readOnly) {
|
377
377
|
let newCheckboxValue = null;
|
378
378
|
if (event.target.checked) {
|
379
|
-
newCheckboxValue = cellProperties.uncheckedTemplate ===
|
379
|
+
newCheckboxValue = cellProperties.uncheckedTemplate === undefined ? true : cellProperties.checkedTemplate;
|
380
380
|
} else {
|
381
|
-
newCheckboxValue = cellProperties.uncheckedTemplate ===
|
381
|
+
newCheckboxValue = cellProperties.uncheckedTemplate === undefined ? false : cellProperties.uncheckedTemplate;
|
382
382
|
}
|
383
383
|
instance.setDataAtCell(row, col, newCheckboxValue);
|
384
384
|
}
|
@@ -11,7 +11,7 @@ const RENDERER_TYPE = 'date';
|
|
11
11
|
* Handsontable renderer.
|
12
12
|
*
|
13
13
|
* @private
|
14
|
-
* @param {Core}
|
14
|
+
* @param {Core} hotInstance The Handsontable instance.
|
15
15
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
16
|
* @param {number} row The visual row index.
|
17
17
|
* @param {number} col The visual column index.
|
@@ -20,9 +20,9 @@ const RENDERER_TYPE = 'date';
|
|
20
20
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
21
|
*/
|
22
22
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
-
function dateRenderer(
|
24
|
-
_autocompleteRenderer.autocompleteRenderer.apply(this, [
|
25
|
-
if (
|
23
|
+
function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
24
|
+
_autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
25
|
+
if (hotInstance.getSettings().ariaTags) {
|
26
26
|
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
27
|
}
|
28
28
|
}
|
@@ -7,7 +7,7 @@ export const RENDERER_TYPE = 'date';
|
|
7
7
|
* Handsontable renderer.
|
8
8
|
*
|
9
9
|
* @private
|
10
|
-
* @param {Core}
|
10
|
+
* @param {Core} hotInstance The Handsontable instance.
|
11
11
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
12
|
* @param {number} row The visual row index.
|
13
13
|
* @param {number} col The visual column index.
|
@@ -15,9 +15,9 @@ export const RENDERER_TYPE = 'date';
|
|
15
15
|
* @param {*} value The rendered value.
|
16
16
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
17
|
*/
|
18
|
-
export function dateRenderer(
|
19
|
-
autocompleteRenderer.apply(this, [
|
20
|
-
if (
|
18
|
+
export function dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
19
|
+
autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
20
|
+
if (hotInstance.getSettings().ariaTags) {
|
21
21
|
setAttribute(TD, [A11Y_HASPOPUP('dialog'), A11Y_EXPANDED('false')]);
|
22
22
|
}
|
23
23
|
}
|
@@ -11,7 +11,7 @@ const RENDERER_TYPE = 'handsontable';
|
|
11
11
|
* Handsontable renderer.
|
12
12
|
*
|
13
13
|
* @private
|
14
|
-
* @param {Core}
|
14
|
+
* @param {Core} hotInstance The Handsontable instance.
|
15
15
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
16
|
* @param {number} row The visual row index.
|
17
17
|
* @param {number} col The visual column index.
|
@@ -20,9 +20,9 @@ const RENDERER_TYPE = 'handsontable';
|
|
20
20
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
21
|
*/
|
22
22
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
-
function handsontableRenderer(
|
24
|
-
_autocompleteRenderer.autocompleteRenderer.apply(this, [
|
25
|
-
if (
|
23
|
+
function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
24
|
+
_autocompleteRenderer.autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
25
|
+
if (hotInstance.getSettings().ariaTags) {
|
26
26
|
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
27
|
}
|
28
28
|
}
|
@@ -7,7 +7,7 @@ export const RENDERER_TYPE = 'handsontable';
|
|
7
7
|
* Handsontable renderer.
|
8
8
|
*
|
9
9
|
* @private
|
10
|
-
* @param {Core}
|
10
|
+
* @param {Core} hotInstance The Handsontable instance.
|
11
11
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
12
|
* @param {number} row The visual row index.
|
13
13
|
* @param {number} col The visual column index.
|
@@ -15,9 +15,9 @@ export const RENDERER_TYPE = 'handsontable';
|
|
15
15
|
* @param {*} value The rendered value.
|
16
16
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
17
|
*/
|
18
|
-
export function handsontableRenderer(
|
19
|
-
autocompleteRenderer.apply(this, [
|
20
|
-
if (
|
18
|
+
export function handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
19
|
+
autocompleteRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
20
|
+
if (hotInstance.getSettings().ariaTags) {
|
21
21
|
setAttribute(TD, [A11Y_HASPOPUP('true'), A11Y_EXPANDED('false')]);
|
22
22
|
}
|
23
23
|
}
|
@@ -8,7 +8,7 @@ const RENDERER_TYPE = 'html';
|
|
8
8
|
|
9
9
|
/**
|
10
10
|
* @private
|
11
|
-
* @param {Core}
|
11
|
+
* @param {Core} hotInstance The Handsontable instance.
|
12
12
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
13
13
|
* @param {number} row The visual row index.
|
14
14
|
* @param {number} col The visual column index.
|
@@ -17,8 +17,8 @@ const RENDERER_TYPE = 'html';
|
|
17
17
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
18
18
|
*/
|
19
19
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
20
|
-
function htmlRenderer(
|
21
|
-
_baseRenderer.baseRenderer.apply(this, [
|
22
|
-
(0, _element.fastInnerHTML)(TD, value === null || value ===
|
20
|
+
function htmlRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
21
|
+
_baseRenderer.baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
22
|
+
(0, _element.fastInnerHTML)(TD, value === null || value === undefined ? '' : value, false);
|
23
23
|
}
|
24
24
|
htmlRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -4,7 +4,7 @@ export const RENDERER_TYPE = 'html';
|
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @private
|
7
|
-
* @param {Core}
|
7
|
+
* @param {Core} hotInstance The Handsontable instance.
|
8
8
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
9
9
|
* @param {number} row The visual row index.
|
10
10
|
* @param {number} col The visual column index.
|
@@ -12,8 +12,8 @@ export const RENDERER_TYPE = 'html';
|
|
12
12
|
* @param {*} value The rendered value.
|
13
13
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
14
14
|
*/
|
15
|
-
export function htmlRenderer(
|
16
|
-
baseRenderer.apply(this, [
|
17
|
-
fastInnerHTML(TD, value === null || value ===
|
15
|
+
export function htmlRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
16
|
+
baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
17
|
+
fastInnerHTML(TD, value === null || value === undefined ? '' : value, false);
|
18
18
|
}
|
19
19
|
htmlRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -13,7 +13,7 @@ const RENDERER_TYPE = 'numeric';
|
|
13
13
|
* Numeric cell renderer.
|
14
14
|
*
|
15
15
|
* @private
|
16
|
-
* @param {Core}
|
16
|
+
* @param {Core} hotInstance The Handsontable instance.
|
17
17
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
18
18
|
* @param {number} row The visual row index.
|
19
19
|
* @param {number} col The visual column index.
|
@@ -22,7 +22,7 @@ const RENDERER_TYPE = 'numeric';
|
|
22
22
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
23
23
|
*/
|
24
24
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
25
|
-
function numericRenderer(
|
25
|
+
function numericRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
26
26
|
let newValue = value;
|
27
27
|
if ((0, _number.isNumeric)(newValue)) {
|
28
28
|
const numericFormat = cellProperties.numericFormat;
|
@@ -48,6 +48,6 @@ function numericRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
48
48
|
cellProperties.className = classArr.join(' ');
|
49
49
|
TD.dir = 'ltr';
|
50
50
|
}
|
51
|
-
(0, _textRenderer.textRenderer)(
|
51
|
+
(0, _textRenderer.textRenderer)(hotInstance, TD, row, col, prop, newValue, cellProperties);
|
52
52
|
}
|
53
53
|
numericRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -8,7 +8,7 @@ export const RENDERER_TYPE = 'numeric';
|
|
8
8
|
* Numeric cell renderer.
|
9
9
|
*
|
10
10
|
* @private
|
11
|
-
* @param {Core}
|
11
|
+
* @param {Core} hotInstance The Handsontable instance.
|
12
12
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
13
13
|
* @param {number} row The visual row index.
|
14
14
|
* @param {number} col The visual column index.
|
@@ -16,7 +16,7 @@ export const RENDERER_TYPE = 'numeric';
|
|
16
16
|
* @param {*} value The rendered value.
|
17
17
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
18
18
|
*/
|
19
|
-
export function numericRenderer(
|
19
|
+
export function numericRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
20
20
|
let newValue = value;
|
21
21
|
if (isNumeric(newValue)) {
|
22
22
|
const numericFormat = cellProperties.numericFormat;
|
@@ -42,6 +42,6 @@ export function numericRenderer(instance, TD, row, col, prop, value, cellPropert
|
|
42
42
|
cellProperties.className = classArr.join(' ');
|
43
43
|
TD.dir = 'ltr';
|
44
44
|
}
|
45
|
-
textRenderer(
|
45
|
+
textRenderer(hotInstance, TD, row, col, prop, newValue, cellProperties);
|
46
46
|
}
|
47
47
|
numericRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -9,7 +9,7 @@ const RENDERER_TYPE = 'password';
|
|
9
9
|
|
10
10
|
/**
|
11
11
|
* @private
|
12
|
-
* @param {Core}
|
12
|
+
* @param {Core} hotInstance The Handsontable instance.
|
13
13
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
14
14
|
* @param {number} row The visual row index.
|
15
15
|
* @param {number} col The visual column index.
|
@@ -18,8 +18,8 @@ const RENDERER_TYPE = 'password';
|
|
18
18
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
19
19
|
*/
|
20
20
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
21
|
-
function passwordRenderer(
|
22
|
-
_textRenderer.textRenderer.apply(this, [
|
21
|
+
function passwordRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
22
|
+
_textRenderer.textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
23
23
|
const hashLength = cellProperties.hashLength || TD.innerHTML.length;
|
24
24
|
const hashSymbol = cellProperties.hashSymbol || '*';
|
25
25
|
let hash = '';
|
@@ -5,7 +5,7 @@ export const RENDERER_TYPE = 'password';
|
|
5
5
|
|
6
6
|
/**
|
7
7
|
* @private
|
8
|
-
* @param {Core}
|
8
|
+
* @param {Core} hotInstance The Handsontable instance.
|
9
9
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
10
10
|
* @param {number} row The visual row index.
|
11
11
|
* @param {number} col The visual column index.
|
@@ -13,8 +13,8 @@ export const RENDERER_TYPE = 'password';
|
|
13
13
|
* @param {*} value The rendered value.
|
14
14
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
15
15
|
*/
|
16
|
-
export function passwordRenderer(
|
17
|
-
textRenderer.apply(this, [
|
16
|
+
export function passwordRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
17
|
+
textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
18
18
|
const hashLength = cellProperties.hashLength || TD.innerHTML.length;
|
19
19
|
const hashSymbol = cellProperties.hashSymbol || '*';
|
20
20
|
let hash = '';
|
@@ -9,7 +9,7 @@ const RENDERER_TYPE = 'select';
|
|
9
9
|
|
10
10
|
/**
|
11
11
|
* @private
|
12
|
-
* @param {Core}
|
12
|
+
* @param {Core} hotInstance The Handsontable instance.
|
13
13
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
14
14
|
* @param {number} row The visual row index.
|
15
15
|
* @param {number} col The visual column index.
|
@@ -18,9 +18,9 @@ const RENDERER_TYPE = 'select';
|
|
18
18
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
19
19
|
*/
|
20
20
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
21
|
-
function selectRenderer(
|
22
|
-
_textRenderer.textRenderer.apply(this, [
|
23
|
-
if (
|
21
|
+
function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
22
|
+
_textRenderer.textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
23
|
+
if (hotInstance.getSettings().ariaTags) {
|
24
24
|
(0, _element.setAttribute)(TD, ...(0, _a11y.A11Y_HASPOPUP)('listbox'));
|
25
25
|
}
|
26
26
|
}
|
@@ -5,7 +5,7 @@ export const RENDERER_TYPE = 'select';
|
|
5
5
|
|
6
6
|
/**
|
7
7
|
* @private
|
8
|
-
* @param {Core}
|
8
|
+
* @param {Core} hotInstance The Handsontable instance.
|
9
9
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
10
10
|
* @param {number} row The visual row index.
|
11
11
|
* @param {number} col The visual column index.
|
@@ -13,9 +13,9 @@ export const RENDERER_TYPE = 'select';
|
|
13
13
|
* @param {*} value The rendered value.
|
14
14
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
15
15
|
*/
|
16
|
-
export function selectRenderer(
|
17
|
-
textRenderer.apply(this, [
|
18
|
-
if (
|
16
|
+
export function selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
17
|
+
textRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
18
|
+
if (hotInstance.getSettings().ariaTags) {
|
19
19
|
setAttribute(TD, ...A11Y_HASPOPUP('listbox'));
|
20
20
|
}
|
21
21
|
}
|
@@ -11,7 +11,7 @@ const RENDERER_TYPE = 'text';
|
|
11
11
|
* Default text renderer.
|
12
12
|
*
|
13
13
|
* @private
|
14
|
-
* @param {Core}
|
14
|
+
* @param {Core} hotInstance The Handsontable instance.
|
15
15
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
16
|
* @param {number} row The visual row index.
|
17
17
|
* @param {number} col The visual column index.
|
@@ -20,8 +20,8 @@ const RENDERER_TYPE = 'text';
|
|
20
20
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
21
|
*/
|
22
22
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
-
function textRenderer(
|
24
|
-
_baseRenderer.baseRenderer.apply(this, [
|
23
|
+
function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
24
|
+
_baseRenderer.baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
25
25
|
let escaped = value;
|
26
26
|
if (!escaped && cellProperties.placeholder) {
|
27
27
|
escaped = cellProperties.placeholder;
|
@@ -32,11 +32,11 @@ function textRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
32
32
|
}
|
33
33
|
if (cellProperties.rendererTemplate) {
|
34
34
|
(0, _element.empty)(TD);
|
35
|
-
const TEMPLATE =
|
35
|
+
const TEMPLATE = hotInstance.rootDocument.createElement('TEMPLATE');
|
36
36
|
TEMPLATE.setAttribute('bind', '{{}}');
|
37
37
|
TEMPLATE.innerHTML = cellProperties.rendererTemplate;
|
38
38
|
HTMLTemplateElement.decorate(TEMPLATE);
|
39
|
-
TEMPLATE.model =
|
39
|
+
TEMPLATE.model = hotInstance.getSourceDataAtRow(row);
|
40
40
|
TD.appendChild(TEMPLATE);
|
41
41
|
} else {
|
42
42
|
// this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
|
@@ -7,7 +7,7 @@ export const RENDERER_TYPE = 'text';
|
|
7
7
|
* Default text renderer.
|
8
8
|
*
|
9
9
|
* @private
|
10
|
-
* @param {Core}
|
10
|
+
* @param {Core} hotInstance The Handsontable instance.
|
11
11
|
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
12
|
* @param {number} row The visual row index.
|
13
13
|
* @param {number} col The visual column index.
|
@@ -15,8 +15,8 @@ export const RENDERER_TYPE = 'text';
|
|
15
15
|
* @param {*} value The rendered value.
|
16
16
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
17
|
*/
|
18
|
-
export function textRenderer(
|
19
|
-
baseRenderer.apply(this, [
|
18
|
+
export function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
|
19
|
+
baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
|
20
20
|
let escaped = value;
|
21
21
|
if (!escaped && cellProperties.placeholder) {
|
22
22
|
escaped = cellProperties.placeholder;
|
@@ -27,11 +27,11 @@ export function textRenderer(instance, TD, row, col, prop, value, cellProperties
|
|
27
27
|
}
|
28
28
|
if (cellProperties.rendererTemplate) {
|
29
29
|
empty(TD);
|
30
|
-
const TEMPLATE =
|
30
|
+
const TEMPLATE = hotInstance.rootDocument.createElement('TEMPLATE');
|
31
31
|
TEMPLATE.setAttribute('bind', '{{}}');
|
32
32
|
TEMPLATE.innerHTML = cellProperties.rendererTemplate;
|
33
33
|
HTMLTemplateElement.decorate(TEMPLATE);
|
34
|
-
TEMPLATE.model =
|
34
|
+
TEMPLATE.model = hotInstance.getSourceDataAtRow(row);
|
35
35
|
TD.appendChild(TEMPLATE);
|
36
36
|
} else {
|
37
37
|
// this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
|