handsontable 14.1.0 → 14.2.0-next-7ae341f-20240229

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. package/3rdparty/walkontable/src/core/_base.js +12 -0
  2. package/3rdparty/walkontable/src/core/_base.mjs +12 -0
  3. package/3rdparty/walkontable/src/scroll.js +131 -98
  4. package/3rdparty/walkontable/src/scroll.mjs +133 -100
  5. package/3rdparty/walkontable/src/selection/border/border.js +3 -3
  6. package/3rdparty/walkontable/src/selection/border/border.mjs +3 -3
  7. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +26 -0
  8. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +26 -0
  9. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +26 -0
  10. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +26 -0
  11. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +20 -0
  12. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +20 -0
  13. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +20 -0
  14. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +20 -0
  15. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +20 -0
  16. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +20 -0
  17. package/3rdparty/walkontable/src/table.js +2 -0
  18. package/3rdparty/walkontable/src/table.mjs +2 -0
  19. package/3rdparty/walkontable/src/viewport.js +9 -0
  20. package/3rdparty/walkontable/src/viewport.mjs +10 -1
  21. package/CHANGELOG.md +36 -0
  22. package/base.js +2 -2
  23. package/base.mjs +2 -2
  24. package/core/index.js +6 -0
  25. package/core/index.mjs +2 -1
  26. package/core/viewportScroll/index.js +65 -0
  27. package/core/viewportScroll/index.mjs +61 -0
  28. package/core/viewportScroll/scrollStrategies/columnHeaderScroll.js +20 -0
  29. package/core/viewportScroll/scrollStrategies/columnHeaderScroll.mjs +16 -0
  30. package/core/viewportScroll/scrollStrategies/cornerHeaderScroll.js +14 -0
  31. package/core/viewportScroll/scrollStrategies/cornerHeaderScroll.mjs +10 -0
  32. package/core/viewportScroll/scrollStrategies/multipleScroll.js +15 -0
  33. package/core/viewportScroll/scrollStrategies/multipleScroll.mjs +11 -0
  34. package/core/viewportScroll/scrollStrategies/noncontiguousScroll.js +15 -0
  35. package/core/viewportScroll/scrollStrategies/noncontiguousScroll.mjs +11 -0
  36. package/core/viewportScroll/scrollStrategies/rowHeaderScroll.js +20 -0
  37. package/core/viewportScroll/scrollStrategies/rowHeaderScroll.mjs +16 -0
  38. package/core/viewportScroll/scrollStrategies/singleScroll.js +46 -0
  39. package/core/viewportScroll/scrollStrategies/singleScroll.mjs +42 -0
  40. package/core.d.ts +1 -1
  41. package/core.js +11 -52
  42. package/core.mjs +12 -53
  43. package/dataMap/metaManager/index.js +1 -1
  44. package/dataMap/metaManager/index.mjs +1 -1
  45. package/dataMap/metaManager/metaLayers/cellMeta.js +6 -1
  46. package/dataMap/metaManager/metaLayers/cellMeta.mjs +6 -1
  47. package/dataMap/metaManager/metaSchema.js +36 -12
  48. package/dataMap/metaManager/metaSchema.mjs +36 -12
  49. package/dist/handsontable.css +2 -2
  50. package/dist/handsontable.full.css +2 -2
  51. package/dist/handsontable.full.js +2996 -1928
  52. package/dist/handsontable.full.min.css +2 -2
  53. package/dist/handsontable.full.min.js +42 -42
  54. package/dist/handsontable.js +2998 -1930
  55. package/dist/handsontable.min.css +2 -2
  56. package/dist/handsontable.min.js +25 -25
  57. package/dist/languages/all.js +130 -25
  58. package/dist/languages/all.min.js +1 -1
  59. package/dist/languages/hr-HR.js +167 -0
  60. package/dist/languages/hr-HR.min.js +1 -0
  61. package/editorManager.js +15 -4
  62. package/editorManager.mjs +15 -4
  63. package/editors/autocompleteEditor/autocompleteEditor.js +2 -2
  64. package/editors/autocompleteEditor/autocompleteEditor.mjs +2 -2
  65. package/editors/baseEditor/baseEditor.js +1 -1
  66. package/editors/baseEditor/baseEditor.mjs +1 -1
  67. package/editors/checkboxEditor/checkboxEditor.js +5 -4
  68. package/editors/checkboxEditor/checkboxEditor.mjs +5 -4
  69. package/editors/dateEditor/dateEditor.js +1 -1
  70. package/editors/dateEditor/dateEditor.mjs +1 -1
  71. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  72. package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
  73. package/editors/handsontableEditor/handsontableEditor.js +1 -1
  74. package/editors/handsontableEditor/handsontableEditor.mjs +1 -1
  75. package/editors/selectEditor/selectEditor.js +1 -1
  76. package/editors/selectEditor/selectEditor.mjs +1 -1
  77. package/editors/textEditor/textEditor.js +1 -2
  78. package/editors/textEditor/textEditor.mjs +1 -2
  79. package/editors/timeEditor/timeEditor.js +1 -1
  80. package/editors/timeEditor/timeEditor.mjs +1 -1
  81. package/helpers/mixed.js +2 -2
  82. package/helpers/mixed.mjs +2 -2
  83. package/helpers/moves.js +86 -0
  84. package/helpers/moves.mjs +82 -0
  85. package/i18n/languages/hr-HR.js +96 -0
  86. package/i18n/languages/hr-HR.mjs +90 -0
  87. package/i18n/languages/index.js +2 -0
  88. package/i18n/languages/index.mjs +2 -1
  89. package/languages/all.js +130 -25
  90. package/languages/hr-HR.js +167 -0
  91. package/languages/hr-HR.mjs +92 -0
  92. package/languages/index.js +130 -25
  93. package/languages/index.mjs +2 -1
  94. package/package.json +11 -1
  95. package/pluginHooks.d.ts +4 -2
  96. package/pluginHooks.js +33 -3
  97. package/pluginHooks.mjs +33 -3
  98. package/plugins/autoColumnSize/autoColumnSize.js +6 -1
  99. package/plugins/autoColumnSize/autoColumnSize.mjs +6 -1
  100. package/plugins/autoRowSize/autoRowSize.js +5 -0
  101. package/plugins/autoRowSize/autoRowSize.mjs +5 -0
  102. package/plugins/autofill/autofill.js +3 -2
  103. package/plugins/autofill/autofill.mjs +3 -2
  104. package/plugins/dropdownMenu/dropdownMenu.js +58 -4
  105. package/plugins/dropdownMenu/dropdownMenu.mjs +58 -4
  106. package/plugins/filters/component/value.js +51 -5
  107. package/plugins/filters/component/value.mjs +51 -5
  108. package/plugins/filters/utils.js +1 -1
  109. package/plugins/filters/utils.mjs +1 -1
  110. package/plugins/formulas/formulas.js +10 -1
  111. package/plugins/formulas/formulas.mjs +10 -1
  112. package/plugins/formulas/indexSyncer/axisSyncer.js +3 -75
  113. package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -75
  114. package/plugins/manualColumnResize/manualColumnResize.js +3 -0
  115. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -0
  116. package/plugins/mergeCells/cellsCollection.js +1 -1
  117. package/plugins/mergeCells/cellsCollection.mjs +1 -1
  118. package/plugins/mergeCells/mergeCells.js +30 -0
  119. package/plugins/mergeCells/mergeCells.mjs +30 -0
  120. package/plugins/undoRedo/undoRedo.js +61 -14
  121. package/plugins/undoRedo/undoRedo.mjs +61 -14
  122. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  123. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -1
  124. package/renderers/baseRenderer/baseRenderer.js +1 -1
  125. package/renderers/baseRenderer/baseRenderer.mjs +1 -1
  126. package/renderers/checkboxRenderer/checkboxRenderer.js +36 -8
  127. package/renderers/checkboxRenderer/checkboxRenderer.mjs +36 -8
  128. package/renderers/dateRenderer/dateRenderer.js +1 -1
  129. package/renderers/dateRenderer/dateRenderer.mjs +1 -1
  130. package/renderers/dropdownRenderer/dropdownRenderer.js +1 -1
  131. package/renderers/dropdownRenderer/dropdownRenderer.mjs +1 -1
  132. package/renderers/handsontableRenderer/handsontableRenderer.js +1 -1
  133. package/renderers/handsontableRenderer/handsontableRenderer.mjs +1 -1
  134. package/renderers/htmlRenderer/htmlRenderer.js +1 -1
  135. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  136. package/renderers/numericRenderer/index.js +2 -1
  137. package/renderers/numericRenderer/index.mjs +1 -1
  138. package/renderers/numericRenderer/numericRenderer.js +28 -13
  139. package/renderers/numericRenderer/numericRenderer.mjs +27 -13
  140. package/renderers/passwordRenderer/passwordRenderer.js +1 -1
  141. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  142. package/renderers/selectRenderer/selectRenderer.js +1 -1
  143. package/renderers/selectRenderer/selectRenderer.mjs +1 -1
  144. package/renderers/textRenderer/textRenderer.js +1 -1
  145. package/renderers/textRenderer/textRenderer.mjs +1 -1
  146. package/renderers/timeRenderer/timeRenderer.js +1 -1
  147. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  148. package/selection/mouseEventHandler.js +4 -0
  149. package/selection/mouseEventHandler.mjs +4 -0
  150. package/selection/selection.js +64 -5
  151. package/selection/selection.mjs +64 -5
  152. package/shortcuts/recorder.js +27 -8
  153. package/shortcuts/recorder.mjs +27 -8
  154. package/tableView.js +86 -5
  155. package/tableView.mjs +87 -6
  156. package/utils/autoResize.js +0 -1
  157. package/utils/autoResize.mjs +0 -1
  158. package/utils/ghostTable.js +6 -6
  159. package/utils/ghostTable.mjs +6 -6
  160. package/utils/parseTable.js +9 -1
  161. package/utils/parseTable.mjs +9 -1
@@ -719,8 +719,111 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
719
719
  var _default = exports["default"] = dictionary;
720
720
 
721
721
  /***/ }),
722
- /* 9 */,
723
- /* 10 */
722
+ /* 9 */
723
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
724
+
725
+ "use strict";
726
+
727
+
728
+ var _interopRequireDefault = __webpack_require__(1);
729
+ exports.__esModule = true;
730
+ var _handsontable = _interopRequireDefault(__webpack_require__(2));
731
+ /**
732
+ * @preserve
733
+ * Authors: Domagoj Lončarić & Ante Živković
734
+ * Last updated: Jan 31, 2024
735
+ *
736
+ * Description: Definition file for Croatian - Croatia language-country.
737
+ */
738
+
739
+ const C = _handsontable.default.languages.dictionaryKeys;
740
+ const dictionary = {
741
+ languageCode: 'hr-HR',
742
+ [C.CONTEXTMENU_ITEMS_NO_ITEMS]: 'Nema dostupnih mogućnosti',
743
+ [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Umetni redak iznad',
744
+ [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Umetni redak ispod',
745
+ [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Umetni stupac lijevo',
746
+ [C.CONTEXTMENU_ITEMS_INSERT_RIGHT]: 'Umetni stupac desno',
747
+ [C.CONTEXTMENU_ITEMS_REMOVE_ROW]: ['Ukloni redak', 'Ukloni retke'],
748
+ [C.CONTEXTMENU_ITEMS_REMOVE_COLUMN]: ['Ukloni stupac', 'Ukloni stupce'],
749
+ [C.CONTEXTMENU_ITEMS_UNDO]: 'Poništi',
750
+ [C.CONTEXTMENU_ITEMS_REDO]: 'Ponovi',
751
+ [C.CONTEXTMENU_ITEMS_READ_ONLY]: 'Samo za čitanje',
752
+ [C.CONTEXTMENU_ITEMS_CLEAR_COLUMN]: 'Očisti stupac',
753
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT]: 'Poravnanje',
754
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT]: 'Lijevo',
755
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER]: 'Centar',
756
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT]: 'Desno',
757
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY]: 'Obostrano',
758
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP]: 'Gore',
759
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE]: 'Sredina',
760
+ [C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM]: 'Dolje',
761
+ [C.CONTEXTMENU_ITEMS_FREEZE_COLUMN]: 'Zamrzni stupac',
762
+ [C.CONTEXTMENU_ITEMS_UNFREEZE_COLUMN]: 'Odmrzni stupac',
763
+ [C.CONTEXTMENU_ITEMS_BORDERS]: 'Granice',
764
+ [C.CONTEXTMENU_ITEMS_BORDERS_TOP]: 'Gore',
765
+ [C.CONTEXTMENU_ITEMS_BORDERS_RIGHT]: 'Desno',
766
+ [C.CONTEXTMENU_ITEMS_BORDERS_BOTTOM]: 'Dolje',
767
+ [C.CONTEXTMENU_ITEMS_BORDERS_LEFT]: 'Lijevo',
768
+ [C.CONTEXTMENU_ITEMS_REMOVE_BORDERS]: 'Ukloni granicu(e)',
769
+ [C.CONTEXTMENU_ITEMS_ADD_COMMENT]: 'Dodaj komentar',
770
+ [C.CONTEXTMENU_ITEMS_EDIT_COMMENT]: 'Uredi komentar',
771
+ [C.CONTEXTMENU_ITEMS_REMOVE_COMMENT]: 'Izbriši komentar',
772
+ [C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT]: 'Komentar samo za čitanje',
773
+ [C.CONTEXTMENU_ITEMS_MERGE_CELLS]: 'Spoji čelije',
774
+ [C.CONTEXTMENU_ITEMS_UNMERGE_CELLS]: 'Razdijeli čelije',
775
+ [C.CONTEXTMENU_ITEMS_COPY]: 'Kopiraj',
776
+ [C.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS]: ['Kopiraj sa zaglavljem', 'Kopiraj sa zaglavljima'],
777
+ [C.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS]: ['Kopiraj sa grupnim zaglavljem', 'Kopiraj sa grupnim zaglavljima'],
778
+ [C.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY]: ['Kopiraj samo zaglavlje', 'Kopiraj samo zaglavlja'],
779
+ [C.CONTEXTMENU_ITEMS_CUT]: 'Izreži',
780
+ [C.CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD]: 'Umetni ugniježđeni redak',
781
+ [C.CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD]: 'Odvoji ugniježđeni redak',
782
+ [C.CONTEXTMENU_ITEMS_HIDE_COLUMN]: ['Sakrij stupac', 'Sakrij stupce'],
783
+ [C.CONTEXTMENU_ITEMS_SHOW_COLUMN]: ['Prikaži stupac', 'Prikaži stupce'],
784
+ [C.CONTEXTMENU_ITEMS_HIDE_ROW]: ['Sakrij redak', 'Sakrij retke'],
785
+ [C.CONTEXTMENU_ITEMS_SHOW_ROW]: ['Prikaži redak', 'Prikaži retke'],
786
+ [C.FILTERS_CONDITIONS_NONE]: 'Ništa',
787
+ [C.FILTERS_CONDITIONS_EMPTY]: 'Prazno',
788
+ [C.FILTERS_CONDITIONS_NOT_EMPTY]: 'Nije prazno',
789
+ [C.FILTERS_CONDITIONS_EQUAL]: 'Jednako',
790
+ [C.FILTERS_CONDITIONS_NOT_EQUAL]: 'Nije jednako',
791
+ [C.FILTERS_CONDITIONS_BEGINS_WITH]: 'Počinje s',
792
+ [C.FILTERS_CONDITIONS_ENDS_WITH]: 'Završava s',
793
+ [C.FILTERS_CONDITIONS_CONTAINS]: 'Sadrži',
794
+ [C.FILTERS_CONDITIONS_NOT_CONTAIN]: 'Ne sadrži',
795
+ [C.FILTERS_CONDITIONS_GREATER_THAN]: 'Veće od',
796
+ [C.FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL]: 'Veće ili jednako od',
797
+ [C.FILTERS_CONDITIONS_LESS_THAN]: 'Manje od',
798
+ [C.FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL]: 'Manje ili jednako od',
799
+ [C.FILTERS_CONDITIONS_BETWEEN]: 'Između',
800
+ [C.FILTERS_CONDITIONS_NOT_BETWEEN]: 'Nije između',
801
+ [C.FILTERS_CONDITIONS_AFTER]: 'Nakon',
802
+ [C.FILTERS_CONDITIONS_BEFORE]: 'Prije',
803
+ [C.FILTERS_CONDITIONS_TODAY]: 'Danas',
804
+ [C.FILTERS_CONDITIONS_TOMORROW]: 'Sutra',
805
+ [C.FILTERS_CONDITIONS_YESTERDAY]: 'Jučer',
806
+ [C.FILTERS_VALUES_BLANK_CELLS]: 'Prazna polja',
807
+ [C.FILTERS_DIVS_FILTER_BY_CONDITION]: 'Filtriraj po uvjetu',
808
+ [C.FILTERS_DIVS_FILTER_BY_VALUE]: 'Filtriraj po vrijednosti',
809
+ [C.FILTERS_LABELS_CONJUNCTION]: 'I',
810
+ [C.FILTERS_LABELS_DISJUNCTION]: 'Ili',
811
+ [C.FILTERS_BUTTONS_SELECT_ALL]: 'Odaberi sve',
812
+ [C.FILTERS_BUTTONS_CLEAR]: 'Očisti',
813
+ [C.FILTERS_BUTTONS_OK]: 'U redu',
814
+ [C.FILTERS_BUTTONS_CANCEL]: 'Odustani',
815
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]: 'Pretraži',
816
+ [C.FILTERS_BUTTONS_PLACEHOLDER_VALUE]: 'Vrijednost',
817
+ [C.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]: 'Druga vrijednost',
818
+ [C.CHECKBOX_CHECKED]: 'Označeno',
819
+ [C.CHECKBOX_UNCHECKED]: 'Nije označeno'
820
+ };
821
+ _handsontable.default.languages.registerLanguageDictionary(dictionary);
822
+ var _default = exports["default"] = dictionary;
823
+
824
+ /***/ }),
825
+ /* 10 */,
826
+ /* 11 */
724
827
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
725
828
 
726
829
  "use strict";
@@ -817,7 +920,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
817
920
  var _default = exports["default"] = dictionary;
818
921
 
819
922
  /***/ }),
820
- /* 11 */
923
+ /* 12 */
821
924
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
822
925
 
823
926
  "use strict";
@@ -917,7 +1020,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
917
1020
  var _default = exports["default"] = dictionary;
918
1021
 
919
1022
  /***/ }),
920
- /* 12 */
1023
+ /* 13 */
921
1024
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
922
1025
 
923
1026
  "use strict";
@@ -1014,7 +1117,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1014
1117
  var _default = exports["default"] = dictionary;
1015
1118
 
1016
1119
  /***/ }),
1017
- /* 13 */
1120
+ /* 14 */
1018
1121
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1019
1122
 
1020
1123
  "use strict";
@@ -1115,7 +1218,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1115
1218
  var _default = exports["default"] = dictionary;
1116
1219
 
1117
1220
  /***/ }),
1118
- /* 14 */
1221
+ /* 15 */
1119
1222
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1120
1223
 
1121
1224
  "use strict";
@@ -1212,7 +1315,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1212
1315
  var _default = exports["default"] = dictionary;
1213
1316
 
1214
1317
  /***/ }),
1215
- /* 15 */
1318
+ /* 16 */
1216
1319
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1217
1320
 
1218
1321
  "use strict";
@@ -1312,7 +1415,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1312
1415
  var _default = exports["default"] = dictionary;
1313
1416
 
1314
1417
  /***/ }),
1315
- /* 16 */
1418
+ /* 17 */
1316
1419
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1317
1420
 
1318
1421
  "use strict";
@@ -1415,7 +1518,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1415
1518
  var _default = exports["default"] = dictionary;
1416
1519
 
1417
1520
  /***/ }),
1418
- /* 17 */
1521
+ /* 18 */
1419
1522
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1420
1523
 
1421
1524
  "use strict";
@@ -1512,7 +1615,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1512
1615
  var _default = exports["default"] = dictionary;
1513
1616
 
1514
1617
  /***/ }),
1515
- /* 18 */
1618
+ /* 19 */
1516
1619
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1517
1620
 
1518
1621
  "use strict";
@@ -1609,7 +1712,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1609
1712
  var _default = exports["default"] = dictionary;
1610
1713
 
1611
1714
  /***/ }),
1612
- /* 19 */
1715
+ /* 20 */
1613
1716
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1614
1717
 
1615
1718
  "use strict";
@@ -1707,7 +1810,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1707
1810
  var _default = exports["default"] = dictionary;
1708
1811
 
1709
1812
  /***/ }),
1710
- /* 20 */
1813
+ /* 21 */
1711
1814
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1712
1815
 
1713
1816
  "use strict";
@@ -1807,7 +1910,7 @@ _handsontable.default.languages.registerLanguageDictionary(dictionary);
1807
1910
  var _default = exports["default"] = dictionary;
1808
1911
 
1809
1912
  /***/ }),
1810
- /* 21 */
1913
+ /* 22 */
1811
1914
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1812
1915
 
1813
1916
  "use strict";
@@ -1954,29 +2057,31 @@ var _esMX = _interopRequireDefault(__webpack_require__(7));
1954
2057
  exports.esMX = _esMX.default;
1955
2058
  var _frFR = _interopRequireDefault(__webpack_require__(8));
1956
2059
  exports.frFR = _frFR.default;
1957
- var _itIT = _interopRequireDefault(__webpack_require__(10));
2060
+ var _hrHR = _interopRequireDefault(__webpack_require__(9));
2061
+ exports.hrHR = _hrHR.default;
2062
+ var _itIT = _interopRequireDefault(__webpack_require__(11));
1958
2063
  exports.itIT = _itIT.default;
1959
- var _jaJP = _interopRequireDefault(__webpack_require__(11));
2064
+ var _jaJP = _interopRequireDefault(__webpack_require__(12));
1960
2065
  exports.jaJP = _jaJP.default;
1961
- var _koKR = _interopRequireDefault(__webpack_require__(12));
2066
+ var _koKR = _interopRequireDefault(__webpack_require__(13));
1962
2067
  exports.koKR = _koKR.default;
1963
- var _lvLV = _interopRequireDefault(__webpack_require__(13));
2068
+ var _lvLV = _interopRequireDefault(__webpack_require__(14));
1964
2069
  exports.lvLV = _lvLV.default;
1965
- var _nbNO = _interopRequireDefault(__webpack_require__(14));
2070
+ var _nbNO = _interopRequireDefault(__webpack_require__(15));
1966
2071
  exports.nbNO = _nbNO.default;
1967
- var _nlNL = _interopRequireDefault(__webpack_require__(15));
2072
+ var _nlNL = _interopRequireDefault(__webpack_require__(16));
1968
2073
  exports.nlNL = _nlNL.default;
1969
- var _plPL = _interopRequireDefault(__webpack_require__(16));
2074
+ var _plPL = _interopRequireDefault(__webpack_require__(17));
1970
2075
  exports.plPL = _plPL.default;
1971
- var _ptBR = _interopRequireDefault(__webpack_require__(17));
2076
+ var _ptBR = _interopRequireDefault(__webpack_require__(18));
1972
2077
  exports.ptBR = _ptBR.default;
1973
- var _ruRU = _interopRequireDefault(__webpack_require__(18));
2078
+ var _ruRU = _interopRequireDefault(__webpack_require__(19));
1974
2079
  exports.ruRU = _ruRU.default;
1975
- var _srSP = _interopRequireDefault(__webpack_require__(19));
2080
+ var _srSP = _interopRequireDefault(__webpack_require__(20));
1976
2081
  exports.srSP = _srSP.default;
1977
- var _zhCN = _interopRequireDefault(__webpack_require__(20));
2082
+ var _zhCN = _interopRequireDefault(__webpack_require__(21));
1978
2083
  exports.zhCN = _zhCN.default;
1979
- var _zhTW = _interopRequireDefault(__webpack_require__(21));
2084
+ var _zhTW = _interopRequireDefault(__webpack_require__(22));
1980
2085
  exports.zhTW = _zhTW.default;
1981
2086
  })();
1982
2087
 
@@ -5,6 +5,7 @@ import deDE from "./de-DE.mjs";
5
5
  import enUS from "./en-US.mjs";
6
6
  import esMX from "./es-MX.mjs";
7
7
  import frFR from "./fr-FR.mjs";
8
+ import hrHR from "./hr-HR.mjs";
8
9
  import itIT from "./it-IT.mjs";
9
10
  import jaJP from "./ja-JP.mjs";
10
11
  import koKR from "./ko-KR.mjs";
@@ -17,4 +18,4 @@ import ruRU from "./ru-RU.mjs";
17
18
  import srSP from "./sr-SP.mjs";
18
19
  import zhCN from "./zh-CN.mjs";
19
20
  import zhTW from "./zh-TW.mjs";
20
- export { arAR, csCZ, deCH, deDE, enUS, esMX, frFR, itIT, jaJP, koKR, lvLV, nbNO, nlNL, plPL, ptBR, ruRU, srSP, zhCN, zhTW };
21
+ export { arAR, csCZ, deCH, deDE, enUS, esMX, frFR, hrHR, itIT, jaJP, koKR, lvLV, nbNO, nlNL, plPL, ptBR, ruRU, srSP, zhCN, zhTW };
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "14.1.0",
13
+ "version": "14.2.0-next-7ae341f-20240229",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -199,6 +199,10 @@
199
199
  "require": "./languages/fr-FR.js",
200
200
  "import": "./languages/fr-FR.mjs"
201
201
  },
202
+ "./languages/hr-HR": {
203
+ "require": "./languages/hr-HR.js",
204
+ "import": "./languages/hr-HR.mjs"
205
+ },
202
206
  "./languages": {
203
207
  "require": "./languages/index.js",
204
208
  "import": "./languages/index.mjs"
@@ -645,6 +649,10 @@
645
649
  "require": "./i18n/languages/fr-FR.js",
646
650
  "import": "./i18n/languages/fr-FR.mjs"
647
651
  },
652
+ "./i18n/languages/hr-HR": {
653
+ "require": "./i18n/languages/hr-HR.js",
654
+ "import": "./i18n/languages/hr-HR.mjs"
655
+ },
648
656
  "./i18n/languages": {
649
657
  "types": "./i18n/languages/index.d.ts",
650
658
  "require": "./i18n/languages/index.js",
@@ -733,6 +741,8 @@
733
741
  "./dist/languages/es-MX.min.js": "./dist/languages/es-MX.min.js",
734
742
  "./dist/languages/fr-FR.js": "./dist/languages/fr-FR.js",
735
743
  "./dist/languages/fr-FR.min.js": "./dist/languages/fr-FR.min.js",
744
+ "./dist/languages/hr-HR.js": "./dist/languages/hr-HR.js",
745
+ "./dist/languages/hr-HR.min.js": "./dist/languages/hr-HR.min.js",
736
746
  "./dist/languages/it-IT.js": "./dist/languages/it-IT.js",
737
747
  "./dist/languages/it-IT.min.js": "./dist/languages/it-IT.min.js",
738
748
  "./dist/languages/ja-JP.js": "./dist/languages/ja-JP.js",
package/pluginHooks.d.ts CHANGED
@@ -157,6 +157,7 @@ export interface Events {
157
157
  afterViewRender?: (isForced: boolean) => void;
158
158
  beforeAddChild?: (parent: RowObject, element?: RowObject, index?: number) => void;
159
159
  beforeAutofill?: (selectionData: CellValue[][], sourceRange: CellRange, targetRange: CellRange, direction: 'up' | 'down' | 'left' | 'right') => CellValue[][] | boolean | void;
160
+ beforeBeginEditing?: (row: number, column: number, initialValue: any, event: MouseEvent | KeyboardEvent, fullEditMode: boolean) => boolean | void;
160
161
  beforeCellAlignment?: (stateBefore: { [row: number]: string[] }, range: CellRange[], type: 'horizontal' | 'vertical',
161
162
  alignmentClass: 'htLeft' | 'htCenter' | 'htRight' | 'htJustify' | 'htTop' | 'htMiddle' | 'htBottom') => void;
162
163
  beforeChange?: (changes: Array<CellChange | null>, source: ChangeSource) => void | boolean;
@@ -228,8 +229,8 @@ export interface Events {
228
229
  beforeUpdateData?: (sourceData: CellValue[], initialLoad: boolean, source: string | undefined) => void;
229
230
  beforeValidate?: (value: CellValue, row: number, prop: string | number, source?: ChangeSource) => void;
230
231
  beforeValueRender?: (value: CellValue, cellProperties: CellProperties) => void;
231
- beforeViewportScrollVertically?: (visualRow: number) => number;
232
- beforeViewportScrollHorizontally?: (visualColumn: number) => number;
232
+ beforeViewportScrollVertically?: (visualRow: number) => number | boolean;
233
+ beforeViewportScrollHorizontally?: (visualColumn: number) => number | boolean;
233
234
  beforeViewportScroll?: () => void;
234
235
  beforeViewRender?: (isForced: boolean, skipRender: { skipRender?: boolean }) => void;
235
236
  construct?: () => void;
@@ -241,6 +242,7 @@ export interface Events {
241
242
  modifyColumnHeaderValue?: (headerValue: string, visualColumnIndex: number, headerLevel: number) => void | string;
242
243
  modifyColWidth?: (width: number, column: number) => void;
243
244
  modifyCopyableRange?: (copyableRanges: RangeType[]) => void;
245
+ modifyFiltersMultiSelectValue?: (value: string, meta: CellProperties) => void | CellValue;
244
246
  modifyFocusedElement?: (row: number, column: number, focusedElement: HTMLElement) => void | HTMLElement;
245
247
  modifyData?: (row: number, column: number, valueHolder: { value: CellValue }, ioMode: 'get' | 'set') => void;
246
248
  modifyFocusOnTabNavigation?: (tabActivationDir: 'from_above' | 'from_below', visualCoords: CellCoords) => void;
package/pluginHooks.js CHANGED
@@ -414,7 +414,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
414
414
  */
415
415
  'afterUpdateData',
416
416
  /**
417
- * Fired after a scroll event, which is identified as a momentum scroll.
417
+ * Fired after a scroll event, which is identified as a momentum scroll (e.g. On an iPad).
418
418
  *
419
419
  * @event Hooks#afterMomentumScroll
420
420
  */
@@ -555,7 +555,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
555
555
  * @since 14.0.0
556
556
  * @event Hooks#beforeViewportScrollVertically
557
557
  * @param {number} visualRow Visual row index.
558
- * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
558
+ * @returns {number | boolean} Returns modified row index (or the same as passed in the method argument) to which
559
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
559
560
  */
560
561
  'beforeViewportScrollVertically',
561
562
  /**
@@ -565,7 +566,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
565
566
  * @since 14.0.0
566
567
  * @event Hooks#beforeViewportScrollHorizontally
567
568
  * @param {number} visualColumn Visual column index.
568
- * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
569
+ * @returns {number | boolean} Returns modified column index (or the same as passed in the method argument) to which
570
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
569
571
  */
570
572
  'beforeViewportScrollHorizontally',
571
573
  /**
@@ -1338,6 +1340,16 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1338
1340
  * @param {number} column Visual column index.
1339
1341
  */
1340
1342
  'modifyColWidth',
1343
+ /**
1344
+ * Fired when rendering the list of values in the multiple-selection component of the Filters dropdown.
1345
+ * The hook allows modifying the displayed values in that component.
1346
+ *
1347
+ * @since 14.2.0
1348
+ * @event Hooks#modifyFiltersMultiSelectValue
1349
+ * @param {object} item The item in the list of values.
1350
+ * @param {object} meta The cell properties object.
1351
+ */
1352
+ 'modifyFiltersMultiSelectValue',
1341
1353
  /**
1342
1354
  * Fired when focusing a cell or a header element. Allows replacing the element to be focused by returning a
1343
1355
  * different HTML element.
@@ -2398,6 +2410,24 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2398
2410
  * @param {number} finalElementPosition The final row index of the detached element.
2399
2411
  */
2400
2412
  'afterDetachChild',
2413
+ /**
2414
+ * Fired before the editor is opened and rendered.
2415
+ *
2416
+ * @since 14.1.0
2417
+ * @event Hooks#beforeBeginEditing
2418
+ * @param {number} row Visual row index of the edited cell.
2419
+ * @param {number} column Visual column index of the edited cell.
2420
+ * @param {*} initialValue The initial editor value.
2421
+ * @param {MouseEvent | KeyboardEvent} event The event which was responsible for opening the editor.
2422
+ * @param {boolean} fullEditMode `true` if the editor is opened in full edit mode, `false` otherwise.
2423
+ * Editor opened in full edit mode does not close after pressing Arrow keys.
2424
+ * @returns {boolean | undefined} If the callback returns `false,` the editor won't be opened after
2425
+ * the mouse double click or after pressing the Enter key. Returning `undefined` (or other value
2426
+ * than boolean) will result in default behavior, which disallows opening an editor for non-contiguous
2427
+ * selection (while pressing Ctrl/Cmd) and for multiple selected cells (while pressing SHIFT).
2428
+ * Returning `true` removes those restrictions.
2429
+ */
2430
+ 'beforeBeginEditing',
2401
2431
  /**
2402
2432
  * Fired after the editor is opened and rendered.
2403
2433
  *
package/pluginHooks.mjs CHANGED
@@ -410,7 +410,7 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
410
410
  */
411
411
  'afterUpdateData',
412
412
  /**
413
- * Fired after a scroll event, which is identified as a momentum scroll.
413
+ * Fired after a scroll event, which is identified as a momentum scroll (e.g. On an iPad).
414
414
  *
415
415
  * @event Hooks#afterMomentumScroll
416
416
  */
@@ -551,7 +551,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
551
551
  * @since 14.0.0
552
552
  * @event Hooks#beforeViewportScrollVertically
553
553
  * @param {number} visualRow Visual row index.
554
- * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
554
+ * @returns {number | boolean} Returns modified row index (or the same as passed in the method argument) to which
555
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
555
556
  */
556
557
  'beforeViewportScrollVertically',
557
558
  /**
@@ -561,7 +562,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
561
562
  * @since 14.0.0
562
563
  * @event Hooks#beforeViewportScrollHorizontally
563
564
  * @param {number} visualColumn Visual column index.
564
- * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
565
+ * @returns {number | boolean} Returns modified column index (or the same as passed in the method argument) to which
566
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
565
567
  */
566
568
  'beforeViewportScrollHorizontally',
567
569
  /**
@@ -1334,6 +1336,16 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
1334
1336
  * @param {number} column Visual column index.
1335
1337
  */
1336
1338
  'modifyColWidth',
1339
+ /**
1340
+ * Fired when rendering the list of values in the multiple-selection component of the Filters dropdown.
1341
+ * The hook allows modifying the displayed values in that component.
1342
+ *
1343
+ * @since 14.2.0
1344
+ * @event Hooks#modifyFiltersMultiSelectValue
1345
+ * @param {object} item The item in the list of values.
1346
+ * @param {object} meta The cell properties object.
1347
+ */
1348
+ 'modifyFiltersMultiSelectValue',
1337
1349
  /**
1338
1350
  * Fired when focusing a cell or a header element. Allows replacing the element to be focused by returning a
1339
1351
  * different HTML element.
@@ -2394,6 +2406,24 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
2394
2406
  * @param {number} finalElementPosition The final row index of the detached element.
2395
2407
  */
2396
2408
  'afterDetachChild',
2409
+ /**
2410
+ * Fired before the editor is opened and rendered.
2411
+ *
2412
+ * @since 14.1.0
2413
+ * @event Hooks#beforeBeginEditing
2414
+ * @param {number} row Visual row index of the edited cell.
2415
+ * @param {number} column Visual column index of the edited cell.
2416
+ * @param {*} initialValue The initial editor value.
2417
+ * @param {MouseEvent | KeyboardEvent} event The event which was responsible for opening the editor.
2418
+ * @param {boolean} fullEditMode `true` if the editor is opened in full edit mode, `false` otherwise.
2419
+ * Editor opened in full edit mode does not close after pressing Arrow keys.
2420
+ * @returns {boolean | undefined} If the callback returns `false,` the editor won't be opened after
2421
+ * the mouse double click or after pressing the Enter key. Returning `undefined` (or other value
2422
+ * than boolean) will result in default behavior, which disallows opening an editor for non-contiguous
2423
+ * selection (while pressing Ctrl/Cmd) and for multiple selected cells (while pressing SHIFT).
2424
+ * Returning `true` removes those restrictions.
2425
+ */
2426
+ 'beforeBeginEditing',
2397
2427
  /**
2398
2428
  * Fired after the editor is opened and rendered.
2399
2429
  *
@@ -205,6 +205,11 @@ class AutoColumnSize extends _base.BasePlugin {
205
205
  * @fires Hooks#modifyAutoColumnSizeSeed
206
206
  */
207
207
  _defineProperty(this, "samplesGenerator", new _samplesGenerator.default((row, column) => {
208
+ const physicalRow = this.hot.toPhysicalRow(row);
209
+ const physicalColumn = this.hot.toPhysicalColumn(column);
210
+ if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {
211
+ return false;
212
+ }
208
213
  const cellMeta = this.hot.getCellMeta(row, column);
209
214
  let cellValue = '';
210
215
  if (!cellMeta.spanned) {
@@ -397,7 +402,7 @@ class AutoColumnSize extends _base.BasePlugin {
397
402
 
398
403
  /**
399
404
  * Calculates all columns width. The calculated column will be cached in the {@link AutoColumnSize#widths} property.
400
- * To retrieve width for specified column use {@link AutoColumnSize##getColumnWidth} method.
405
+ * To retrieve width for specified column use {@link AutoColumnSize#getColumnWidth} method.
401
406
  *
402
407
  * @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.
403
408
  */
@@ -201,6 +201,11 @@ export class AutoColumnSize extends BasePlugin {
201
201
  * @fires Hooks#modifyAutoColumnSizeSeed
202
202
  */
203
203
  _defineProperty(this, "samplesGenerator", new SamplesGenerator((row, column) => {
204
+ const physicalRow = this.hot.toPhysicalRow(row);
205
+ const physicalColumn = this.hot.toPhysicalColumn(column);
206
+ if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {
207
+ return false;
208
+ }
204
209
  const cellMeta = this.hot.getCellMeta(row, column);
205
210
  let cellValue = '';
206
211
  if (!cellMeta.spanned) {
@@ -393,7 +398,7 @@ export class AutoColumnSize extends BasePlugin {
393
398
 
394
399
  /**
395
400
  * Calculates all columns width. The calculated column will be cached in the {@link AutoColumnSize#widths} property.
396
- * To retrieve width for specified column use {@link AutoColumnSize##getColumnWidth} method.
401
+ * To retrieve width for specified column use {@link AutoColumnSize#getColumnWidth} method.
397
402
  *
398
403
  * @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.
399
404
  */
@@ -175,6 +175,11 @@ class AutoRowSize extends _base.BasePlugin {
175
175
  * @type {SamplesGenerator}
176
176
  */
177
177
  _defineProperty(this, "samplesGenerator", new _samplesGenerator.default((row, column) => {
178
+ const physicalRow = this.hot.toPhysicalRow(row);
179
+ const physicalColumn = this.hot.toPhysicalColumn(column);
180
+ if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {
181
+ return false;
182
+ }
178
183
  if (row >= 0 && column >= 0) {
179
184
  const cellMeta = this.hot.getCellMeta(row, column);
180
185
  if (cellMeta.hidden) {
@@ -171,6 +171,11 @@ export class AutoRowSize extends BasePlugin {
171
171
  * @type {SamplesGenerator}
172
172
  */
173
173
  _defineProperty(this, "samplesGenerator", new SamplesGenerator((row, column) => {
174
+ const physicalRow = this.hot.toPhysicalRow(row);
175
+ const physicalColumn = this.hot.toPhysicalColumn(column);
176
+ if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {
177
+ return false;
178
+ }
174
179
  if (row >= 0 && column >= 0) {
175
180
  const cellMeta = this.hot.getCellMeta(row, column);
176
181
  if (cellMeta.hidden) {
@@ -7,6 +7,7 @@ var _base = require("../base");
7
7
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
8
8
  var _element = require("../../helpers/dom/element");
9
9
  var _array = require("../../helpers/array");
10
+ var _mixed = require("../../helpers/mixed");
10
11
  var _utils = require("./utils");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
@@ -392,13 +393,13 @@ class Autofill extends _base.BasePlugin {
392
393
  for (let rowIndex = cornersOfSelectedCells[2] + 1; rowIndex < nrOfTableRows; rowIndex++) {
393
394
  for (let columnIndex = cornersOfSelectedCells[1]; columnIndex <= cornersOfSelectedCells[3]; columnIndex++) {
394
395
  const dataInCell = data[rowIndex][columnIndex];
395
- if (dataInCell) {
396
+ if (!(0, _mixed.isEmpty)(dataInCell)) {
396
397
  return -1;
397
398
  }
398
399
  }
399
400
  const dataInNextLeftCell = data[rowIndex][cornersOfSelectedCells[1] - 1];
400
401
  const dataInNextRightCell = data[rowIndex][cornersOfSelectedCells[3] + 1];
401
- if (!!dataInNextLeftCell || !!dataInNextRightCell) {
402
+ if (!(0, _mixed.isEmpty)(dataInNextLeftCell) || !(0, _mixed.isEmpty)(dataInNextRightCell)) {
402
403
  lastFilledInRowIndex = rowIndex;
403
404
  }
404
405
  }
@@ -10,6 +10,7 @@ import { BasePlugin } from "../base/index.mjs";
10
10
  import Hooks from "../../pluginHooks.mjs";
11
11
  import { offset, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
12
12
  import { arrayEach, arrayMap } from "../../helpers/array.mjs";
13
+ import { isEmpty } from "../../helpers/mixed.mjs";
13
14
  import { getDragDirectionAndRange, DIRECTIONS, getMappedFillHandleSetting } from "./utils.mjs";
14
15
  Hooks.getSingleton().register('modifyAutofillRange');
15
16
  Hooks.getSingleton().register('beforeAutofill');
@@ -388,13 +389,13 @@ export class Autofill extends BasePlugin {
388
389
  for (let rowIndex = cornersOfSelectedCells[2] + 1; rowIndex < nrOfTableRows; rowIndex++) {
389
390
  for (let columnIndex = cornersOfSelectedCells[1]; columnIndex <= cornersOfSelectedCells[3]; columnIndex++) {
390
391
  const dataInCell = data[rowIndex][columnIndex];
391
- if (dataInCell) {
392
+ if (!isEmpty(dataInCell)) {
392
393
  return -1;
393
394
  }
394
395
  }
395
396
  const dataInNextLeftCell = data[rowIndex][cornersOfSelectedCells[1] - 1];
396
397
  const dataInNextRightCell = data[rowIndex][cornersOfSelectedCells[3] + 1];
397
- if (!!dataInNextLeftCell || !!dataInNextRightCell) {
398
+ if (!isEmpty(dataInNextLeftCell) || !isEmpty(dataInNextRightCell)) {
398
399
  lastFilledInRowIndex = rowIndex;
399
400
  }
400
401
  }