handsontable 14.1.0 → 14.2.0-next-4873a35-20240228
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/core/_base.js +12 -0
- package/3rdparty/walkontable/src/core/_base.mjs +12 -0
- package/3rdparty/walkontable/src/scroll.js +131 -98
- package/3rdparty/walkontable/src/scroll.mjs +133 -100
- package/3rdparty/walkontable/src/selection/border/border.js +3 -3
- package/3rdparty/walkontable/src/selection/border/border.mjs +3 -3
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +26 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +26 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +26 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +26 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +20 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +20 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +20 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +20 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +20 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +20 -0
- package/3rdparty/walkontable/src/table.js +2 -0
- package/3rdparty/walkontable/src/table.mjs +2 -0
- package/3rdparty/walkontable/src/viewport.js +9 -0
- package/3rdparty/walkontable/src/viewport.mjs +10 -1
- package/CHANGELOG.md +38 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/index.js +6 -0
- package/core/index.mjs +2 -1
- package/core/viewportScroll/index.js +65 -0
- package/core/viewportScroll/index.mjs +61 -0
- package/core/viewportScroll/scrollStrategies/columnHeaderScroll.js +20 -0
- package/core/viewportScroll/scrollStrategies/columnHeaderScroll.mjs +16 -0
- package/core/viewportScroll/scrollStrategies/cornerHeaderScroll.js +14 -0
- package/core/viewportScroll/scrollStrategies/cornerHeaderScroll.mjs +10 -0
- package/core/viewportScroll/scrollStrategies/multipleScroll.js +15 -0
- package/core/viewportScroll/scrollStrategies/multipleScroll.mjs +11 -0
- package/core/viewportScroll/scrollStrategies/noncontiguousScroll.js +15 -0
- package/core/viewportScroll/scrollStrategies/noncontiguousScroll.mjs +11 -0
- package/core/viewportScroll/scrollStrategies/rowHeaderScroll.js +20 -0
- package/core/viewportScroll/scrollStrategies/rowHeaderScroll.mjs +16 -0
- package/core/viewportScroll/scrollStrategies/singleScroll.js +46 -0
- package/core/viewportScroll/scrollStrategies/singleScroll.mjs +42 -0
- package/core.d.ts +1 -1
- package/core.js +11 -52
- package/core.mjs +12 -53
- package/dataMap/metaManager/index.js +1 -1
- package/dataMap/metaManager/index.mjs +1 -1
- package/dataMap/metaManager/metaLayers/cellMeta.js +6 -1
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +6 -1
- package/dataMap/metaManager/metaSchema.js +36 -12
- package/dataMap/metaManager/metaSchema.mjs +36 -12
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +2996 -1928
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +42 -42
- package/dist/handsontable.js +2998 -1930
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +25 -25
- package/dist/languages/all.js +130 -25
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/hr-HR.js +167 -0
- package/dist/languages/hr-HR.min.js +1 -0
- package/editorManager.js +15 -4
- package/editorManager.mjs +15 -4
- package/editors/autocompleteEditor/autocompleteEditor.js +2 -2
- package/editors/autocompleteEditor/autocompleteEditor.mjs +2 -2
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/checkboxEditor/checkboxEditor.js +5 -4
- package/editors/checkboxEditor/checkboxEditor.mjs +5 -4
- package/editors/dateEditor/dateEditor.js +1 -1
- package/editors/dateEditor/dateEditor.mjs +1 -1
- package/editors/dropdownEditor/dropdownEditor.js +1 -1
- package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
- package/editors/handsontableEditor/handsontableEditor.js +1 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +1 -1
- package/editors/selectEditor/selectEditor.mjs +1 -1
- package/editors/textEditor/textEditor.js +1 -2
- package/editors/textEditor/textEditor.mjs +1 -2
- package/editors/timeEditor/timeEditor.js +1 -1
- package/editors/timeEditor/timeEditor.mjs +1 -1
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/moves.js +86 -0
- package/helpers/moves.mjs +82 -0
- package/i18n/languages/hr-HR.js +96 -0
- package/i18n/languages/hr-HR.mjs +90 -0
- package/i18n/languages/index.js +2 -0
- package/i18n/languages/index.mjs +2 -1
- package/languages/all.js +130 -25
- package/languages/hr-HR.js +167 -0
- package/languages/hr-HR.mjs +92 -0
- package/languages/index.js +130 -25
- package/languages/index.mjs +2 -1
- package/package.json +11 -1
- package/pluginHooks.d.ts +4 -2
- package/pluginHooks.js +33 -3
- package/pluginHooks.mjs +33 -3
- package/plugins/autoColumnSize/autoColumnSize.js +6 -1
- package/plugins/autoColumnSize/autoColumnSize.mjs +6 -1
- package/plugins/autoRowSize/autoRowSize.js +5 -0
- package/plugins/autoRowSize/autoRowSize.mjs +5 -0
- package/plugins/autofill/autofill.js +3 -2
- package/plugins/autofill/autofill.mjs +3 -2
- package/plugins/dropdownMenu/dropdownMenu.js +58 -4
- package/plugins/dropdownMenu/dropdownMenu.mjs +58 -4
- package/plugins/filters/component/value.js +51 -5
- package/plugins/filters/component/value.mjs +51 -5
- package/plugins/filters/utils.js +1 -1
- package/plugins/filters/utils.mjs +1 -1
- package/plugins/formulas/formulas.js +10 -1
- package/plugins/formulas/formulas.mjs +10 -1
- package/plugins/formulas/indexSyncer/axisSyncer.js +3 -75
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -75
- package/plugins/manualColumnResize/manualColumnResize.js +3 -0
- package/plugins/manualColumnResize/manualColumnResize.mjs +3 -0
- package/plugins/mergeCells/cellsCollection.js +1 -1
- package/plugins/mergeCells/cellsCollection.mjs +1 -1
- package/plugins/mergeCells/mergeCells.js +30 -0
- package/plugins/mergeCells/mergeCells.mjs +30 -0
- package/plugins/undoRedo/undoRedo.js +61 -14
- package/plugins/undoRedo/undoRedo.mjs +61 -14
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -1
- package/renderers/baseRenderer/baseRenderer.js +1 -1
- package/renderers/baseRenderer/baseRenderer.mjs +1 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +36 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +36 -8
- package/renderers/dateRenderer/dateRenderer.js +1 -1
- package/renderers/dateRenderer/dateRenderer.mjs +1 -1
- package/renderers/dropdownRenderer/dropdownRenderer.js +1 -1
- package/renderers/dropdownRenderer/dropdownRenderer.mjs +1 -1
- package/renderers/handsontableRenderer/handsontableRenderer.js +1 -1
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +1 -1
- package/renderers/htmlRenderer/htmlRenderer.js +1 -1
- package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
- package/renderers/numericRenderer/index.js +2 -1
- package/renderers/numericRenderer/index.mjs +1 -1
- package/renderers/numericRenderer/numericRenderer.js +28 -13
- package/renderers/numericRenderer/numericRenderer.mjs +27 -13
- package/renderers/passwordRenderer/passwordRenderer.js +1 -1
- package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
- package/renderers/selectRenderer/selectRenderer.js +1 -1
- package/renderers/selectRenderer/selectRenderer.mjs +1 -1
- package/renderers/textRenderer/textRenderer.js +1 -1
- package/renderers/textRenderer/textRenderer.mjs +1 -1
- package/renderers/timeRenderer/timeRenderer.js +1 -1
- package/renderers/timeRenderer/timeRenderer.mjs +1 -1
- package/selection/mouseEventHandler.js +4 -0
- package/selection/mouseEventHandler.mjs +4 -0
- package/selection/selection.js +64 -5
- package/selection/selection.mjs +64 -5
- package/shortcuts/recorder.js +27 -8
- package/shortcuts/recorder.mjs +27 -8
- package/tableView.js +86 -5
- package/tableView.mjs +87 -6
- package/utils/autoResize.js +0 -1
- package/utils/autoResize.mjs +0 -1
- package/utils/ghostTable.js +6 -6
- package/utils/ghostTable.mjs +6 -6
- package/utils/parseTable.js +9 -1
- package/utils/parseTable.mjs +9 -1
@@ -0,0 +1 @@
|
|
1
|
+
!function(E,T){if("object"==typeof exports&&"object"==typeof module)module.exports=T(require("handsontable"));else if("function"==typeof define&&define.amd)define(["handsontable"],T);else{var _="object"==typeof exports?T(require("handsontable")):T(E.Handsontable);for(var N in _)("object"==typeof exports?exports:E)[N]=_[N]}}("undefined"!=typeof self?self:this,(E=>(()=>{var T={960:T=>{"use strict";T.exports=E},250:E=>{E.exports=function(E){return E&&E.__esModule?E:{default:E}},E.exports.__esModule=!0,E.exports.default=E.exports}},_={};function N(E){var O=_[E];if(void 0!==O)return O.exports;var I=_[E]={exports:{}};return T[E](I,I.exports,N),I.exports}var O={};return(()=>{"use strict";var E=N(250)(N(960));const T=E.default.languages.dictionaryKeys,_={languageCode:"hr-HR",[T.CONTEXTMENU_ITEMS_NO_ITEMS]:"Nema dostupnih mogućnosti",[T.CONTEXTMENU_ITEMS_ROW_ABOVE]:"Umetni redak iznad",[T.CONTEXTMENU_ITEMS_ROW_BELOW]:"Umetni redak ispod",[T.CONTEXTMENU_ITEMS_INSERT_LEFT]:"Umetni stupac lijevo",[T.CONTEXTMENU_ITEMS_INSERT_RIGHT]:"Umetni stupac desno",[T.CONTEXTMENU_ITEMS_REMOVE_ROW]:["Ukloni redak","Ukloni retke"],[T.CONTEXTMENU_ITEMS_REMOVE_COLUMN]:["Ukloni stupac","Ukloni stupce"],[T.CONTEXTMENU_ITEMS_UNDO]:"Poništi",[T.CONTEXTMENU_ITEMS_REDO]:"Ponovi",[T.CONTEXTMENU_ITEMS_READ_ONLY]:"Samo za čitanje",[T.CONTEXTMENU_ITEMS_CLEAR_COLUMN]:"Očisti stupac",[T.CONTEXTMENU_ITEMS_ALIGNMENT]:"Poravnanje",[T.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT]:"Lijevo",[T.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER]:"Centar",[T.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT]:"Desno",[T.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY]:"Obostrano",[T.CONTEXTMENU_ITEMS_ALIGNMENT_TOP]:"Gore",[T.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE]:"Sredina",[T.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM]:"Dolje",[T.CONTEXTMENU_ITEMS_FREEZE_COLUMN]:"Zamrzni stupac",[T.CONTEXTMENU_ITEMS_UNFREEZE_COLUMN]:"Odmrzni stupac",[T.CONTEXTMENU_ITEMS_BORDERS]:"Granice",[T.CONTEXTMENU_ITEMS_BORDERS_TOP]:"Gore",[T.CONTEXTMENU_ITEMS_BORDERS_RIGHT]:"Desno",[T.CONTEXTMENU_ITEMS_BORDERS_BOTTOM]:"Dolje",[T.CONTEXTMENU_ITEMS_BORDERS_LEFT]:"Lijevo",[T.CONTEXTMENU_ITEMS_REMOVE_BORDERS]:"Ukloni granicu(e)",[T.CONTEXTMENU_ITEMS_ADD_COMMENT]:"Dodaj komentar",[T.CONTEXTMENU_ITEMS_EDIT_COMMENT]:"Uredi komentar",[T.CONTEXTMENU_ITEMS_REMOVE_COMMENT]:"Izbriši komentar",[T.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT]:"Komentar samo za čitanje",[T.CONTEXTMENU_ITEMS_MERGE_CELLS]:"Spoji čelije",[T.CONTEXTMENU_ITEMS_UNMERGE_CELLS]:"Razdijeli čelije",[T.CONTEXTMENU_ITEMS_COPY]:"Kopiraj",[T.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS]:["Kopiraj sa zaglavljem","Kopiraj sa zaglavljima"],[T.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS]:["Kopiraj sa grupnim zaglavljem","Kopiraj sa grupnim zaglavljima"],[T.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY]:["Kopiraj samo zaglavlje","Kopiraj samo zaglavlja"],[T.CONTEXTMENU_ITEMS_CUT]:"Izreži",[T.CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD]:"Umetni ugniježđeni redak",[T.CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD]:"Odvoji ugniježđeni redak",[T.CONTEXTMENU_ITEMS_HIDE_COLUMN]:["Sakrij stupac","Sakrij stupce"],[T.CONTEXTMENU_ITEMS_SHOW_COLUMN]:["Prikaži stupac","Prikaži stupce"],[T.CONTEXTMENU_ITEMS_HIDE_ROW]:["Sakrij redak","Sakrij retke"],[T.CONTEXTMENU_ITEMS_SHOW_ROW]:["Prikaži redak","Prikaži retke"],[T.FILTERS_CONDITIONS_NONE]:"Ništa",[T.FILTERS_CONDITIONS_EMPTY]:"Prazno",[T.FILTERS_CONDITIONS_NOT_EMPTY]:"Nije prazno",[T.FILTERS_CONDITIONS_EQUAL]:"Jednako",[T.FILTERS_CONDITIONS_NOT_EQUAL]:"Nije jednako",[T.FILTERS_CONDITIONS_BEGINS_WITH]:"Počinje s",[T.FILTERS_CONDITIONS_ENDS_WITH]:"Završava s",[T.FILTERS_CONDITIONS_CONTAINS]:"Sadrži",[T.FILTERS_CONDITIONS_NOT_CONTAIN]:"Ne sadrži",[T.FILTERS_CONDITIONS_GREATER_THAN]:"Veće od",[T.FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL]:"Veće ili jednako od",[T.FILTERS_CONDITIONS_LESS_THAN]:"Manje od",[T.FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL]:"Manje ili jednako od",[T.FILTERS_CONDITIONS_BETWEEN]:"Između",[T.FILTERS_CONDITIONS_NOT_BETWEEN]:"Nije između",[T.FILTERS_CONDITIONS_AFTER]:"Nakon",[T.FILTERS_CONDITIONS_BEFORE]:"Prije",[T.FILTERS_CONDITIONS_TODAY]:"Danas",[T.FILTERS_CONDITIONS_TOMORROW]:"Sutra",[T.FILTERS_CONDITIONS_YESTERDAY]:"Jučer",[T.FILTERS_VALUES_BLANK_CELLS]:"Prazna polja",[T.FILTERS_DIVS_FILTER_BY_CONDITION]:"Filtriraj po uvjetu",[T.FILTERS_DIVS_FILTER_BY_VALUE]:"Filtriraj po vrijednosti",[T.FILTERS_LABELS_CONJUNCTION]:"I",[T.FILTERS_LABELS_DISJUNCTION]:"Ili",[T.FILTERS_BUTTONS_SELECT_ALL]:"Odaberi sve",[T.FILTERS_BUTTONS_CLEAR]:"Očisti",[T.FILTERS_BUTTONS_OK]:"U redu",[T.FILTERS_BUTTONS_CANCEL]:"Odustani",[T.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]:"Pretraži",[T.FILTERS_BUTTONS_PLACEHOLDER_VALUE]:"Vrijednost",[T.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]:"Druga vrijednost",[T.CHECKBOX_CHECKED]:"Označeno",[T.CHECKBOX_UNCHECKED]:"Nije označeno"};E.default.languages.registerLanguageDictionary(_)})(),O=O.___})()));
|
package/editorManager.js
CHANGED
@@ -29,7 +29,6 @@ class EditorManager {
|
|
29
29
|
*
|
30
30
|
* @param {MouseEvent} event The mouse event object.
|
31
31
|
* @param {object} coords The cell coordinates.
|
32
|
-
* @param {HTMLTableCellElement|HTMLTableHeaderCellElement} elem The element which triggers the action.
|
33
32
|
*/
|
34
33
|
_classPrivateMethodInitSpec(this, _onCellDblClick);
|
35
34
|
/**
|
@@ -220,6 +219,19 @@ class EditorManager {
|
|
220
219
|
this.clearActiveEditor();
|
221
220
|
return;
|
222
221
|
}
|
222
|
+
const selection = this.hot.getSelectedRangeLast();
|
223
|
+
let allowOpening = this.hot.runHooks('beforeBeginEditing', selection.highlight.row, selection.highlight.col, newInitialValue, event, enableFullEditMode);
|
224
|
+
|
225
|
+
// If the above hook does not return boolean apply default behavior which disallows opening
|
226
|
+
// an editor after double mouse click for non-contiguous selection (while pressing Ctrl/Cmd) and
|
227
|
+
// for multiple selected cells (while pressing SHIFT).
|
228
|
+
if (event instanceof MouseEvent && typeof allowOpening !== 'boolean') {
|
229
|
+
allowOpening = this.hot.selection.getLayerLevel() === 0 && selection.isSingle();
|
230
|
+
}
|
231
|
+
if (allowOpening === false) {
|
232
|
+
this.clearActiveEditor();
|
233
|
+
return;
|
234
|
+
}
|
223
235
|
if (!this.activeEditor) {
|
224
236
|
this.hot.scrollToFocusedCell();
|
225
237
|
this.prepareEditor();
|
@@ -373,9 +385,8 @@ function _onAfterDocumentKeyDown2(event) {
|
|
373
385
|
}
|
374
386
|
}
|
375
387
|
}
|
376
|
-
function _onCellDblClick2(event, coords
|
377
|
-
|
378
|
-
if (elem.nodeName === 'TD') {
|
388
|
+
function _onCellDblClick2(event, coords) {
|
389
|
+
if (coords.isCell()) {
|
379
390
|
this.openEditor(null, event, true);
|
380
391
|
}
|
381
392
|
}
|
package/editorManager.mjs
CHANGED
@@ -25,7 +25,6 @@ class EditorManager {
|
|
25
25
|
*
|
26
26
|
* @param {MouseEvent} event The mouse event object.
|
27
27
|
* @param {object} coords The cell coordinates.
|
28
|
-
* @param {HTMLTableCellElement|HTMLTableHeaderCellElement} elem The element which triggers the action.
|
29
28
|
*/
|
30
29
|
_classPrivateMethodInitSpec(this, _onCellDblClick);
|
31
30
|
/**
|
@@ -216,6 +215,19 @@ class EditorManager {
|
|
216
215
|
this.clearActiveEditor();
|
217
216
|
return;
|
218
217
|
}
|
218
|
+
const selection = this.hot.getSelectedRangeLast();
|
219
|
+
let allowOpening = this.hot.runHooks('beforeBeginEditing', selection.highlight.row, selection.highlight.col, newInitialValue, event, enableFullEditMode);
|
220
|
+
|
221
|
+
// If the above hook does not return boolean apply default behavior which disallows opening
|
222
|
+
// an editor after double mouse click for non-contiguous selection (while pressing Ctrl/Cmd) and
|
223
|
+
// for multiple selected cells (while pressing SHIFT).
|
224
|
+
if (event instanceof MouseEvent && typeof allowOpening !== 'boolean') {
|
225
|
+
allowOpening = this.hot.selection.getLayerLevel() === 0 && selection.isSingle();
|
226
|
+
}
|
227
|
+
if (allowOpening === false) {
|
228
|
+
this.clearActiveEditor();
|
229
|
+
return;
|
230
|
+
}
|
219
231
|
if (!this.activeEditor) {
|
220
232
|
this.hot.scrollToFocusedCell();
|
221
233
|
this.prepareEditor();
|
@@ -369,9 +381,8 @@ function _onAfterDocumentKeyDown2(event) {
|
|
369
381
|
}
|
370
382
|
}
|
371
383
|
}
|
372
|
-
function _onCellDblClick2(event, coords
|
373
|
-
|
374
|
-
if (elem.nodeName === 'TD') {
|
384
|
+
function _onCellDblClick2(event, coords) {
|
385
|
+
if (coords.isCell()) {
|
375
386
|
this.openEditor(null, event, true);
|
376
387
|
}
|
377
388
|
}
|
@@ -163,7 +163,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
163
163
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
164
164
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
165
165
|
* @param {*} value The rendered value.
|
166
|
-
* @param {object} cellProperties The cell meta object ({@
|
166
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
167
167
|
*/
|
168
168
|
prepare(row, col, prop, td, value, cellProperties) {
|
169
169
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -221,7 +221,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
221
221
|
}
|
222
222
|
TD.innerHTML = cellValue;
|
223
223
|
},
|
224
|
-
|
224
|
+
afterSelectionEnd: (startRow, startCol) => {
|
225
225
|
if (rootInstanceAriaTagsEnabled) {
|
226
226
|
const TD = this.htEditor.getCell(startRow, startCol, true);
|
227
227
|
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_SELECTED)()]);
|
@@ -160,7 +160,7 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
160
160
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
161
161
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
162
162
|
* @param {*} value The rendered value.
|
163
|
-
* @param {object} cellProperties The cell meta object ({@
|
163
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
164
164
|
*/
|
165
165
|
prepare(row, col, prop, td, value, cellProperties) {
|
166
166
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -218,7 +218,7 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
218
218
|
}
|
219
219
|
TD.innerHTML = cellValue;
|
220
220
|
},
|
221
|
-
|
221
|
+
afterSelectionEnd: (startRow, startCol) => {
|
222
222
|
if (rootInstanceAriaTagsEnabled) {
|
223
223
|
const TD = this.htEditor.getCell(startRow, startCol, true);
|
224
224
|
setAttribute(TD, [A11Y_SELECTED()]);
|
@@ -163,7 +163,7 @@ class BaseEditor {
|
|
163
163
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
164
164
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
165
165
|
* @param {*} value The rendered value.
|
166
|
-
* @param {object} cellProperties The cell meta object ({@
|
166
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
167
167
|
*/
|
168
168
|
prepare(row, col, prop, td, value, cellProperties) {
|
169
169
|
this.TD = td;
|
@@ -159,7 +159,7 @@ export class BaseEditor {
|
|
159
159
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
160
160
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
161
161
|
* @param {*} value The rendered value.
|
162
|
-
* @param {object} cellProperties The cell meta object ({@
|
162
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
163
163
|
*/
|
164
164
|
prepare(row, col, prop, td, value, cellProperties) {
|
165
165
|
this.TD = td;
|
@@ -14,11 +14,12 @@ class CheckboxEditor extends _baseEditor.BaseEditor {
|
|
14
14
|
return EDITOR_TYPE;
|
15
15
|
}
|
16
16
|
beginEditing(initialValue, event) {
|
17
|
-
// Just some events connected with checkbox editor are delegated here. Some `keydown` events like `enter` and
|
18
|
-
// are handled inside `checkboxRenderer`. Some events come here from `editorManager`.
|
19
|
-
// for purpose of handling only `doubleclick` event
|
17
|
+
// Just some events connected with the checkbox editor are delegated here. Some `keydown` events like `enter` and
|
18
|
+
// `space` key presses are handled inside `checkboxRenderer`. Some events come here from `editorManager`. The below
|
19
|
+
// `if` statement was created by the author for the purpose of handling only the `doubleclick` event on the TD
|
20
|
+
// element with a checkbox.
|
20
21
|
|
21
|
-
if (event && event.type === 'mouseup') {
|
22
|
+
if (event && event.type === 'mouseup' && event.target.nodeName === 'TD') {
|
22
23
|
const checkbox = this.TD.querySelector('input[type="checkbox"]');
|
23
24
|
if (!(0, _element.hasClass)(checkbox, 'htBadValue')) {
|
24
25
|
checkbox.click();
|
@@ -11,11 +11,12 @@ export class CheckboxEditor extends BaseEditor {
|
|
11
11
|
return EDITOR_TYPE;
|
12
12
|
}
|
13
13
|
beginEditing(initialValue, event) {
|
14
|
-
// Just some events connected with checkbox editor are delegated here. Some `keydown` events like `enter` and
|
15
|
-
// are handled inside `checkboxRenderer`. Some events come here from `editorManager`.
|
16
|
-
// for purpose of handling only `doubleclick` event
|
14
|
+
// Just some events connected with the checkbox editor are delegated here. Some `keydown` events like `enter` and
|
15
|
+
// `space` key presses are handled inside `checkboxRenderer`. Some events come here from `editorManager`. The below
|
16
|
+
// `if` statement was created by the author for the purpose of handling only the `doubleclick` event on the TD
|
17
|
+
// element with a checkbox.
|
17
18
|
|
18
|
-
if (event && event.type === 'mouseup') {
|
19
|
+
if (event && event.type === 'mouseup' && event.target.nodeName === 'TD') {
|
19
20
|
const checkbox = this.TD.querySelector('input[type="checkbox"]');
|
20
21
|
if (!hasClass(checkbox, 'htBadValue')) {
|
21
22
|
checkbox.click();
|
@@ -100,7 +100,7 @@ class DateEditor extends _textEditor.TextEditor {
|
|
100
100
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
101
101
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
102
102
|
* @param {*} value The rendered value.
|
103
|
-
* @param {object} cellProperties The cell meta object ({@
|
103
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
104
104
|
*/
|
105
105
|
prepare(row, col, prop, td, value, cellProperties) {
|
106
106
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -96,7 +96,7 @@ export class DateEditor extends TextEditor {
|
|
96
96
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
97
97
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
98
98
|
* @param {*} value The rendered value.
|
99
|
-
* @param {object} cellProperties The cell meta object ({@
|
99
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
100
100
|
*/
|
101
101
|
prepare(row, col, prop, td, value, cellProperties) {
|
102
102
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -21,7 +21,7 @@ class DropdownEditor extends _autocompleteEditor.AutocompleteEditor {
|
|
21
21
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
22
22
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
23
23
|
* @param {*} value The rendered value.
|
24
|
-
* @param {object} cellProperties The cell meta object ({@
|
24
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
25
25
|
*/
|
26
26
|
prepare(row, col, prop, td, value, cellProperties) {
|
27
27
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -17,7 +17,7 @@ export class DropdownEditor extends AutocompleteEditor {
|
|
17
17
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
18
18
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
19
19
|
* @param {*} value The rendered value.
|
20
|
-
* @param {object} cellProperties The cell meta object ({@
|
20
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
21
21
|
*/
|
22
22
|
prepare(row, col, prop, td, value, cellProperties) {
|
23
23
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -62,7 +62,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
62
62
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
63
63
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
64
64
|
* @param {*} value The rendered value.
|
65
|
-
* @param {object} cellProperties The cell meta object ({@
|
65
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
66
66
|
*/
|
67
67
|
prepare(row, col, prop, td, value, cellProperties) {
|
68
68
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -59,7 +59,7 @@ export class HandsontableEditor extends TextEditor {
|
|
59
59
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
60
60
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
61
61
|
* @param {*} value The rendered value.
|
62
|
-
* @param {object} cellProperties The cell meta object ({@
|
62
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
63
63
|
*/
|
64
64
|
prepare(row, col, prop, td, value, cellProperties) {
|
65
65
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -99,7 +99,7 @@ class SelectEditor extends _baseEditor.BaseEditor {
|
|
99
99
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
100
100
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
101
101
|
* @param {*} value The rendered value.
|
102
|
-
* @param {object} cellProperties The cell meta object ({@
|
102
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
103
103
|
*/
|
104
104
|
prepare(row, col, prop, td, value, cellProperties) {
|
105
105
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -96,7 +96,7 @@ export class SelectEditor extends BaseEditor {
|
|
96
96
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
97
97
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
98
98
|
* @param {*} value The rendered value.
|
99
|
-
* @param {object} cellProperties The cell meta object ({@
|
99
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
100
100
|
*/
|
101
101
|
prepare(row, col, prop, td, value, cellProperties) {
|
102
102
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -140,7 +140,7 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
140
140
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
141
141
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
142
142
|
* @param {*} value The rendered value.
|
143
|
-
* @param {object} cellProperties The cell meta object ({@
|
143
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
144
144
|
*/
|
145
145
|
prepare(row, col, prop, td, value, cellProperties) {
|
146
146
|
const previousState = this.state;
|
@@ -245,7 +245,6 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
245
245
|
this.textareaParentStyle[this.hot.isRtl() ? 'left' : 'right'] = 'auto';
|
246
246
|
this.textareaParentStyle.opacity = '1';
|
247
247
|
this.textareaStyle.textIndent = '';
|
248
|
-
this.textareaStyle.overflowY = 'hidden';
|
249
248
|
const childNodes = this.TEXTAREA_PARENT.childNodes;
|
250
249
|
let hasClassHandsontableEditor = false;
|
251
250
|
(0, _number.rangeEach)(childNodes.length - 1, index => {
|
@@ -136,7 +136,7 @@ export class TextEditor extends BaseEditor {
|
|
136
136
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
137
137
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
138
138
|
* @param {*} value The rendered value.
|
139
|
-
* @param {object} cellProperties The cell meta object ({@
|
139
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
140
140
|
*/
|
141
141
|
prepare(row, col, prop, td, value, cellProperties) {
|
142
142
|
const previousState = this.state;
|
@@ -241,7 +241,6 @@ export class TextEditor extends BaseEditor {
|
|
241
241
|
this.textareaParentStyle[this.hot.isRtl() ? 'left' : 'right'] = 'auto';
|
242
242
|
this.textareaParentStyle.opacity = '1';
|
243
243
|
this.textareaStyle.textIndent = '';
|
244
|
-
this.textareaStyle.overflowY = 'hidden';
|
245
244
|
const childNodes = this.TEXTAREA_PARENT.childNodes;
|
246
245
|
let hasClassHandsontableEditor = false;
|
247
246
|
rangeEach(childNodes.length - 1, index => {
|
@@ -21,7 +21,7 @@ class TimeEditor extends _textEditor.TextEditor {
|
|
21
21
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
22
22
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
23
23
|
* @param {*} value The rendered value.
|
24
|
-
* @param {object} cellProperties The cell meta object ({@
|
24
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
25
25
|
*/
|
26
26
|
prepare(row, col, prop, td, value, cellProperties) {
|
27
27
|
super.prepare(row, col, prop, td, value, cellProperties);
|
@@ -18,7 +18,7 @@ export class TimeEditor extends TextEditor {
|
|
18
18
|
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
19
19
|
* @param {HTMLTableCellElement} td The rendered cell element.
|
20
20
|
* @param {*} value The rendered value.
|
21
|
-
* @param {object} cellProperties The cell meta object ({@
|
21
|
+
* @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).
|
22
22
|
*/
|
23
23
|
prepare(row, col, prop, td, value, cellProperties) {
|
24
24
|
super.prepare(row, col, prop, td, value, cellProperties);
|
package/helpers/mixed.js
CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
|
|
134
134
|
function _injectProductInfo(key, element) {
|
135
135
|
const hasValidType = !isEmpty(key);
|
136
136
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
137
|
-
const hotVersion = "14.
|
137
|
+
const hotVersion = "14.2.0-next-4873a35-20240228";
|
138
138
|
let keyValidityDate;
|
139
139
|
let consoleMessageState = 'invalid';
|
140
140
|
let domMessageState = 'invalid';
|
@@ -142,7 +142,7 @@ function _injectProductInfo(key, element) {
|
|
142
142
|
const schemaValidity = _checkKeySchema(key);
|
143
143
|
if (hasValidType || isNonCommercial || schemaValidity) {
|
144
144
|
if (schemaValidity) {
|
145
|
-
const releaseDate = (0, _moment.default)("
|
145
|
+
const releaseDate = (0, _moment.default)("06/03/2024", 'DD/MM/YYYY');
|
146
146
|
const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
|
147
147
|
const keyValidityDays = _extractTime(key);
|
148
148
|
keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
|
package/helpers/mixed.mjs
CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
|
|
124
124
|
export function _injectProductInfo(key, element) {
|
125
125
|
const hasValidType = !isEmpty(key);
|
126
126
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
127
|
-
const hotVersion = "14.
|
127
|
+
const hotVersion = "14.2.0-next-4873a35-20240228";
|
128
128
|
let keyValidityDate;
|
129
129
|
let consoleMessageState = 'invalid';
|
130
130
|
let domMessageState = 'invalid';
|
@@ -132,7 +132,7 @@ export function _injectProductInfo(key, element) {
|
|
132
132
|
const schemaValidity = _checkKeySchema(key);
|
133
133
|
if (hasValidType || isNonCommercial || schemaValidity) {
|
134
134
|
if (schemaValidity) {
|
135
|
-
const releaseDate = moment("
|
135
|
+
const releaseDate = moment("06/03/2024", 'DD/MM/YYYY');
|
136
136
|
const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
|
137
137
|
const keyValidityDays = _extractTime(key);
|
138
138
|
keyValidityDate = moment((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
|
package/helpers/moves.js
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.getMoves = getMoves;
|
5
|
+
require("core-js/modules/es.array.push.js");
|
6
|
+
/**
|
7
|
+
* Gets first position where to move element (respecting the fact that some element will be sooner or later
|
8
|
+
* taken out of the dataset in order to move them).
|
9
|
+
*
|
10
|
+
* @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.
|
11
|
+
* @param {number} finalIndex Final place where to move rows.
|
12
|
+
* @param {number} numberOfIndexes Number of indexes in a dataset.
|
13
|
+
* @returns {number} Index informing where to move the first element.
|
14
|
+
*/
|
15
|
+
function getMoveLine(movedIndexes, finalIndex, numberOfIndexes) {
|
16
|
+
const notMovedElements = Array.from(Array(numberOfIndexes).keys()).filter(index => movedIndexes.includes(index) === false);
|
17
|
+
if (finalIndex === 0) {
|
18
|
+
var _notMovedElements$fin;
|
19
|
+
return (_notMovedElements$fin = notMovedElements[finalIndex]) !== null && _notMovedElements$fin !== void 0 ? _notMovedElements$fin : 0; // Moving before the first dataset's element.
|
20
|
+
}
|
21
|
+
return notMovedElements[finalIndex - 1] + 1; // Moving before another element.
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Gets initially calculated move positions.
|
26
|
+
*
|
27
|
+
* @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.
|
28
|
+
* @param {number} moveLine Final place where to move rows.
|
29
|
+
* @returns {Array<{from: number, to: number}>} Initially calculated move positions.
|
30
|
+
*/
|
31
|
+
function getInitiallyCalculatedMoves(movedIndexes, moveLine) {
|
32
|
+
const moves = [];
|
33
|
+
movedIndexes.forEach(movedIndex => {
|
34
|
+
const move = {
|
35
|
+
from: movedIndex,
|
36
|
+
to: moveLine
|
37
|
+
};
|
38
|
+
moves.forEach(previouslyMovedIndex => {
|
39
|
+
const isMovingFromEndToStart = previouslyMovedIndex.from > previouslyMovedIndex.to;
|
40
|
+
const isMovingElementBefore = previouslyMovedIndex.to <= move.from;
|
41
|
+
const isMovingAfterElement = previouslyMovedIndex.from > move.from;
|
42
|
+
if (isMovingAfterElement && isMovingElementBefore && isMovingFromEndToStart) {
|
43
|
+
move.from += 1;
|
44
|
+
}
|
45
|
+
});
|
46
|
+
|
47
|
+
// Moved element from right to left (or bottom to top).
|
48
|
+
if (move.from >= moveLine) {
|
49
|
+
moveLine += 1;
|
50
|
+
}
|
51
|
+
moves.push(move);
|
52
|
+
});
|
53
|
+
return moves;
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Gets finally calculated move positions (after adjusting).
|
58
|
+
*
|
59
|
+
* @param {Array<{from: number, to: number}>} moves Initially calculated move positions.
|
60
|
+
* @returns {Array<{from: number, to: number}>} Finally calculated move positions (after adjusting).
|
61
|
+
*/
|
62
|
+
function adjustedCalculatedMoves(moves) {
|
63
|
+
moves.forEach((move, index) => {
|
64
|
+
const nextMoved = moves.slice(index + 1);
|
65
|
+
nextMoved.forEach(nextMovedIndex => {
|
66
|
+
const isMovingFromStartToEnd = nextMovedIndex.from < nextMovedIndex.to;
|
67
|
+
if (nextMovedIndex.from > move.from && isMovingFromStartToEnd) {
|
68
|
+
nextMovedIndex.from -= 1;
|
69
|
+
}
|
70
|
+
});
|
71
|
+
});
|
72
|
+
return moves;
|
73
|
+
}
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Get list of move positions.
|
77
|
+
*
|
78
|
+
* @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.
|
79
|
+
* @param {number} finalIndex Final place where to move rows.
|
80
|
+
* @param {number} numberOfIndexes Number of indexes in a dataset.
|
81
|
+
* @returns {Array<{from: number, to: number}>}
|
82
|
+
*/
|
83
|
+
function getMoves(movedIndexes, finalIndex, numberOfIndexes) {
|
84
|
+
const moves = getInitiallyCalculatedMoves(movedIndexes, getMoveLine(movedIndexes, finalIndex, numberOfIndexes));
|
85
|
+
return adjustedCalculatedMoves(moves);
|
86
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import "core-js/modules/es.array.push.js";
|
2
|
+
/**
|
3
|
+
* Gets first position where to move element (respecting the fact that some element will be sooner or later
|
4
|
+
* taken out of the dataset in order to move them).
|
5
|
+
*
|
6
|
+
* @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.
|
7
|
+
* @param {number} finalIndex Final place where to move rows.
|
8
|
+
* @param {number} numberOfIndexes Number of indexes in a dataset.
|
9
|
+
* @returns {number} Index informing where to move the first element.
|
10
|
+
*/
|
11
|
+
function getMoveLine(movedIndexes, finalIndex, numberOfIndexes) {
|
12
|
+
const notMovedElements = Array.from(Array(numberOfIndexes).keys()).filter(index => movedIndexes.includes(index) === false);
|
13
|
+
if (finalIndex === 0) {
|
14
|
+
var _notMovedElements$fin;
|
15
|
+
return (_notMovedElements$fin = notMovedElements[finalIndex]) !== null && _notMovedElements$fin !== void 0 ? _notMovedElements$fin : 0; // Moving before the first dataset's element.
|
16
|
+
}
|
17
|
+
return notMovedElements[finalIndex - 1] + 1; // Moving before another element.
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Gets initially calculated move positions.
|
22
|
+
*
|
23
|
+
* @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.
|
24
|
+
* @param {number} moveLine Final place where to move rows.
|
25
|
+
* @returns {Array<{from: number, to: number}>} Initially calculated move positions.
|
26
|
+
*/
|
27
|
+
function getInitiallyCalculatedMoves(movedIndexes, moveLine) {
|
28
|
+
const moves = [];
|
29
|
+
movedIndexes.forEach(movedIndex => {
|
30
|
+
const move = {
|
31
|
+
from: movedIndex,
|
32
|
+
to: moveLine
|
33
|
+
};
|
34
|
+
moves.forEach(previouslyMovedIndex => {
|
35
|
+
const isMovingFromEndToStart = previouslyMovedIndex.from > previouslyMovedIndex.to;
|
36
|
+
const isMovingElementBefore = previouslyMovedIndex.to <= move.from;
|
37
|
+
const isMovingAfterElement = previouslyMovedIndex.from > move.from;
|
38
|
+
if (isMovingAfterElement && isMovingElementBefore && isMovingFromEndToStart) {
|
39
|
+
move.from += 1;
|
40
|
+
}
|
41
|
+
});
|
42
|
+
|
43
|
+
// Moved element from right to left (or bottom to top).
|
44
|
+
if (move.from >= moveLine) {
|
45
|
+
moveLine += 1;
|
46
|
+
}
|
47
|
+
moves.push(move);
|
48
|
+
});
|
49
|
+
return moves;
|
50
|
+
}
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Gets finally calculated move positions (after adjusting).
|
54
|
+
*
|
55
|
+
* @param {Array<{from: number, to: number}>} moves Initially calculated move positions.
|
56
|
+
* @returns {Array<{from: number, to: number}>} Finally calculated move positions (after adjusting).
|
57
|
+
*/
|
58
|
+
function adjustedCalculatedMoves(moves) {
|
59
|
+
moves.forEach((move, index) => {
|
60
|
+
const nextMoved = moves.slice(index + 1);
|
61
|
+
nextMoved.forEach(nextMovedIndex => {
|
62
|
+
const isMovingFromStartToEnd = nextMovedIndex.from < nextMovedIndex.to;
|
63
|
+
if (nextMovedIndex.from > move.from && isMovingFromStartToEnd) {
|
64
|
+
nextMovedIndex.from -= 1;
|
65
|
+
}
|
66
|
+
});
|
67
|
+
});
|
68
|
+
return moves;
|
69
|
+
}
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Get list of move positions.
|
73
|
+
*
|
74
|
+
* @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.
|
75
|
+
* @param {number} finalIndex Final place where to move rows.
|
76
|
+
* @param {number} numberOfIndexes Number of indexes in a dataset.
|
77
|
+
* @returns {Array<{from: number, to: number}>}
|
78
|
+
*/
|
79
|
+
export function getMoves(movedIndexes, finalIndex, numberOfIndexes) {
|
80
|
+
const moves = getInitiallyCalculatedMoves(movedIndexes, getMoveLine(movedIndexes, finalIndex, numberOfIndexes));
|
81
|
+
return adjustedCalculatedMoves(moves);
|
82
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
var C = _interopRequireWildcard(require("../constants"));
|
5
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
6
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
7
|
+
/**
|
8
|
+
* @preserve
|
9
|
+
* Authors: Domagoj Lončarić & Ante Živković
|
10
|
+
* Last updated: Jan 31, 2024
|
11
|
+
*
|
12
|
+
* Description: Definition file for Croatian - Croatia language-country.
|
13
|
+
*/
|
14
|
+
|
15
|
+
const dictionary = {
|
16
|
+
languageCode: 'hr-HR',
|
17
|
+
[C.CONTEXTMENU_ITEMS_NO_ITEMS]: 'Nema dostupnih mogućnosti',
|
18
|
+
[C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Umetni redak iznad',
|
19
|
+
[C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Umetni redak ispod',
|
20
|
+
[C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Umetni stupac lijevo',
|
21
|
+
[C.CONTEXTMENU_ITEMS_INSERT_RIGHT]: 'Umetni stupac desno',
|
22
|
+
[C.CONTEXTMENU_ITEMS_REMOVE_ROW]: ['Ukloni redak', 'Ukloni retke'],
|
23
|
+
[C.CONTEXTMENU_ITEMS_REMOVE_COLUMN]: ['Ukloni stupac', 'Ukloni stupce'],
|
24
|
+
[C.CONTEXTMENU_ITEMS_UNDO]: 'Poništi',
|
25
|
+
[C.CONTEXTMENU_ITEMS_REDO]: 'Ponovi',
|
26
|
+
[C.CONTEXTMENU_ITEMS_READ_ONLY]: 'Samo za čitanje',
|
27
|
+
[C.CONTEXTMENU_ITEMS_CLEAR_COLUMN]: 'Očisti stupac',
|
28
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT]: 'Poravnanje',
|
29
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT]: 'Lijevo',
|
30
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER]: 'Centar',
|
31
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT]: 'Desno',
|
32
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY]: 'Obostrano',
|
33
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP]: 'Gore',
|
34
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE]: 'Sredina',
|
35
|
+
[C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM]: 'Dolje',
|
36
|
+
[C.CONTEXTMENU_ITEMS_FREEZE_COLUMN]: 'Zamrzni stupac',
|
37
|
+
[C.CONTEXTMENU_ITEMS_UNFREEZE_COLUMN]: 'Odmrzni stupac',
|
38
|
+
[C.CONTEXTMENU_ITEMS_BORDERS]: 'Granice',
|
39
|
+
[C.CONTEXTMENU_ITEMS_BORDERS_TOP]: 'Gore',
|
40
|
+
[C.CONTEXTMENU_ITEMS_BORDERS_RIGHT]: 'Desno',
|
41
|
+
[C.CONTEXTMENU_ITEMS_BORDERS_BOTTOM]: 'Dolje',
|
42
|
+
[C.CONTEXTMENU_ITEMS_BORDERS_LEFT]: 'Lijevo',
|
43
|
+
[C.CONTEXTMENU_ITEMS_REMOVE_BORDERS]: 'Ukloni granicu(e)',
|
44
|
+
[C.CONTEXTMENU_ITEMS_ADD_COMMENT]: 'Dodaj komentar',
|
45
|
+
[C.CONTEXTMENU_ITEMS_EDIT_COMMENT]: 'Uredi komentar',
|
46
|
+
[C.CONTEXTMENU_ITEMS_REMOVE_COMMENT]: 'Izbriši komentar',
|
47
|
+
[C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT]: 'Komentar samo za čitanje',
|
48
|
+
[C.CONTEXTMENU_ITEMS_MERGE_CELLS]: 'Spoji čelije',
|
49
|
+
[C.CONTEXTMENU_ITEMS_UNMERGE_CELLS]: 'Razdijeli čelije',
|
50
|
+
[C.CONTEXTMENU_ITEMS_COPY]: 'Kopiraj',
|
51
|
+
[C.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS]: ['Kopiraj sa zaglavljem', 'Kopiraj sa zaglavljima'],
|
52
|
+
[C.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS]: ['Kopiraj sa grupnim zaglavljem', 'Kopiraj sa grupnim zaglavljima'],
|
53
|
+
[C.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY]: ['Kopiraj samo zaglavlje', 'Kopiraj samo zaglavlja'],
|
54
|
+
[C.CONTEXTMENU_ITEMS_CUT]: 'Izreži',
|
55
|
+
[C.CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD]: 'Umetni ugniježđeni redak',
|
56
|
+
[C.CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD]: 'Odvoji ugniježđeni redak',
|
57
|
+
[C.CONTEXTMENU_ITEMS_HIDE_COLUMN]: ['Sakrij stupac', 'Sakrij stupce'],
|
58
|
+
[C.CONTEXTMENU_ITEMS_SHOW_COLUMN]: ['Prikaži stupac', 'Prikaži stupce'],
|
59
|
+
[C.CONTEXTMENU_ITEMS_HIDE_ROW]: ['Sakrij redak', 'Sakrij retke'],
|
60
|
+
[C.CONTEXTMENU_ITEMS_SHOW_ROW]: ['Prikaži redak', 'Prikaži retke'],
|
61
|
+
[C.FILTERS_CONDITIONS_NONE]: 'Ništa',
|
62
|
+
[C.FILTERS_CONDITIONS_EMPTY]: 'Prazno',
|
63
|
+
[C.FILTERS_CONDITIONS_NOT_EMPTY]: 'Nije prazno',
|
64
|
+
[C.FILTERS_CONDITIONS_EQUAL]: 'Jednako',
|
65
|
+
[C.FILTERS_CONDITIONS_NOT_EQUAL]: 'Nije jednako',
|
66
|
+
[C.FILTERS_CONDITIONS_BEGINS_WITH]: 'Počinje s',
|
67
|
+
[C.FILTERS_CONDITIONS_ENDS_WITH]: 'Završava s',
|
68
|
+
[C.FILTERS_CONDITIONS_CONTAINS]: 'Sadrži',
|
69
|
+
[C.FILTERS_CONDITIONS_NOT_CONTAIN]: 'Ne sadrži',
|
70
|
+
[C.FILTERS_CONDITIONS_GREATER_THAN]: 'Veće od',
|
71
|
+
[C.FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL]: 'Veće ili jednako od',
|
72
|
+
[C.FILTERS_CONDITIONS_LESS_THAN]: 'Manje od',
|
73
|
+
[C.FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL]: 'Manje ili jednako od',
|
74
|
+
[C.FILTERS_CONDITIONS_BETWEEN]: 'Između',
|
75
|
+
[C.FILTERS_CONDITIONS_NOT_BETWEEN]: 'Nije između',
|
76
|
+
[C.FILTERS_CONDITIONS_AFTER]: 'Nakon',
|
77
|
+
[C.FILTERS_CONDITIONS_BEFORE]: 'Prije',
|
78
|
+
[C.FILTERS_CONDITIONS_TODAY]: 'Danas',
|
79
|
+
[C.FILTERS_CONDITIONS_TOMORROW]: 'Sutra',
|
80
|
+
[C.FILTERS_CONDITIONS_YESTERDAY]: 'Jučer',
|
81
|
+
[C.FILTERS_VALUES_BLANK_CELLS]: 'Prazna polja',
|
82
|
+
[C.FILTERS_DIVS_FILTER_BY_CONDITION]: 'Filtriraj po uvjetu',
|
83
|
+
[C.FILTERS_DIVS_FILTER_BY_VALUE]: 'Filtriraj po vrijednosti',
|
84
|
+
[C.FILTERS_LABELS_CONJUNCTION]: 'I',
|
85
|
+
[C.FILTERS_LABELS_DISJUNCTION]: 'Ili',
|
86
|
+
[C.FILTERS_BUTTONS_SELECT_ALL]: 'Odaberi sve',
|
87
|
+
[C.FILTERS_BUTTONS_CLEAR]: 'Očisti',
|
88
|
+
[C.FILTERS_BUTTONS_OK]: 'U redu',
|
89
|
+
[C.FILTERS_BUTTONS_CANCEL]: 'Odustani',
|
90
|
+
[C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Pretraži',
|
91
|
+
[C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Vrijednost',
|
92
|
+
[C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga vrijednost',
|
93
|
+
[C.CHECKBOX_CHECKED]: 'Označeno',
|
94
|
+
[C.CHECKBOX_UNCHECKED]: 'Nije označeno'
|
95
|
+
};
|
96
|
+
var _default = exports.default = dictionary;
|