handsontable 16.1.1 → 16.2.0-next-90d1117-20251117

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/3rdparty/walkontable/src/overlays.js +1 -1
  2. package/3rdparty/walkontable/src/overlays.mjs +1 -1
  3. package/3rdparty/walkontable/src/selection/border/border.js +19 -3
  4. package/3rdparty/walkontable/src/selection/border/border.mjs +19 -3
  5. package/CHANGELOG.md +39 -0
  6. package/base.js +2 -2
  7. package/base.mjs +2 -2
  8. package/core/coordsMapper/index.js +11 -0
  9. package/core/coordsMapper/index.mjs +1 -0
  10. package/core/hooks/bucket.js +7 -1
  11. package/core/hooks/bucket.mjs +7 -1
  12. package/core/hooks/constants.js +54 -0
  13. package/core/hooks/constants.mjs +54 -0
  14. package/core/hooks/index.d.ts +6 -0
  15. package/core/index.js +10 -4
  16. package/core/index.mjs +2 -1
  17. package/core.d.ts +3 -2
  18. package/core.js +67 -26
  19. package/core.mjs +56 -15
  20. package/dataMap/metaManager/metaSchema.js +197 -20
  21. package/dataMap/metaManager/metaSchema.mjs +197 -20
  22. package/dist/handsontable.css +175 -3
  23. package/dist/handsontable.full.css +175 -3
  24. package/dist/handsontable.full.js +10864 -8426
  25. package/dist/handsontable.full.min.css +5 -4
  26. package/dist/handsontable.full.min.js +194 -193
  27. package/dist/handsontable.js +7126 -4827
  28. package/dist/handsontable.min.css +4 -4
  29. package/dist/handsontable.min.js +43 -42
  30. package/dist/languages/all.js +168 -21
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/ar-AR.js +8 -1
  33. package/dist/languages/ar-AR.min.js +1 -1
  34. package/dist/languages/cs-CZ.js +8 -1
  35. package/dist/languages/cs-CZ.min.js +1 -1
  36. package/dist/languages/de-CH.js +8 -1
  37. package/dist/languages/de-CH.min.js +1 -1
  38. package/dist/languages/de-DE.js +8 -1
  39. package/dist/languages/de-DE.min.js +1 -1
  40. package/dist/languages/en-US.js +8 -1
  41. package/dist/languages/en-US.min.js +1 -1
  42. package/dist/languages/es-MX.js +8 -1
  43. package/dist/languages/es-MX.min.js +1 -1
  44. package/dist/languages/fa-IR.js +8 -1
  45. package/dist/languages/fa-IR.min.js +1 -1
  46. package/dist/languages/fr-FR.js +8 -1
  47. package/dist/languages/fr-FR.min.js +1 -1
  48. package/dist/languages/hr-HR.js +8 -1
  49. package/dist/languages/hr-HR.min.js +1 -1
  50. package/dist/languages/it-IT.js +8 -1
  51. package/dist/languages/it-IT.min.js +1 -1
  52. package/dist/languages/ja-JP.js +8 -1
  53. package/dist/languages/ja-JP.min.js +1 -1
  54. package/dist/languages/ko-KR.js +8 -1
  55. package/dist/languages/ko-KR.min.js +1 -1
  56. package/dist/languages/lv-LV.js +8 -1
  57. package/dist/languages/lv-LV.min.js +1 -1
  58. package/dist/languages/nb-NO.js +8 -1
  59. package/dist/languages/nb-NO.min.js +1 -1
  60. package/dist/languages/nl-NL.js +8 -1
  61. package/dist/languages/nl-NL.min.js +1 -1
  62. package/dist/languages/pl-PL.js +8 -1
  63. package/dist/languages/pl-PL.min.js +1 -1
  64. package/dist/languages/pt-BR.js +8 -1
  65. package/dist/languages/pt-BR.min.js +1 -1
  66. package/dist/languages/ru-RU.js +8 -1
  67. package/dist/languages/ru-RU.min.js +1 -1
  68. package/dist/languages/sr-SP.js +8 -1
  69. package/dist/languages/sr-SP.min.js +1 -1
  70. package/dist/languages/zh-CN.js +8 -1
  71. package/dist/languages/zh-CN.min.js +1 -1
  72. package/dist/languages/zh-TW.js +8 -1
  73. package/dist/languages/zh-TW.min.js +1 -1
  74. package/editors/autocompleteEditor/autocompleteEditor.js +21 -1
  75. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -2
  76. package/focusManager/constants.js +25 -0
  77. package/focusManager/constants.mjs +22 -0
  78. package/focusManager/eventListener.js +107 -0
  79. package/focusManager/eventListener.mjs +103 -0
  80. package/{focusManager.d.ts → focusManager/grid.d.ts} +1 -1
  81. package/{focusManager.js → focusManager/grid.js} +48 -17
  82. package/{focusManager.mjs → focusManager/grid.mjs} +47 -16
  83. package/focusManager/index.d.ts +2 -0
  84. package/focusManager/index.js +20 -0
  85. package/focusManager/index.mjs +20 -0
  86. package/focusManager/scope.js +133 -0
  87. package/focusManager/scope.mjs +129 -0
  88. package/focusManager/scopeManager.d.ts +19 -0
  89. package/focusManager/scopeManager.js +268 -0
  90. package/focusManager/scopeManager.mjs +263 -0
  91. package/focusManager/scopes/grid.js +120 -0
  92. package/focusManager/scopes/grid.mjs +116 -0
  93. package/focusManager/scopes/index.js +13 -0
  94. package/focusManager/scopes/index.mjs +9 -0
  95. package/{utils → focusManager/utils}/focusDetector.js +21 -31
  96. package/{utils → focusManager/utils}/focusDetector.mjs +21 -31
  97. package/focusManager/utils/utils.js +95 -0
  98. package/focusManager/utils/utils.mjs +89 -0
  99. package/helpers/dom/element.js +1 -1
  100. package/helpers/dom/element.mjs +2 -2
  101. package/helpers/dom/event.js +1 -1
  102. package/helpers/dom/event.mjs +1 -1
  103. package/helpers/mixed.js +2 -65
  104. package/helpers/mixed.mjs +2 -63
  105. package/i18n/constants.js +10 -1
  106. package/i18n/constants.mjs +10 -1
  107. package/i18n/languages/ar-AR.js +8 -1
  108. package/i18n/languages/ar-AR.mjs +8 -1
  109. package/i18n/languages/cs-CZ.js +8 -1
  110. package/i18n/languages/cs-CZ.mjs +8 -1
  111. package/i18n/languages/de-CH.js +8 -1
  112. package/i18n/languages/de-CH.mjs +8 -1
  113. package/i18n/languages/de-DE.js +8 -1
  114. package/i18n/languages/de-DE.mjs +8 -1
  115. package/i18n/languages/en-US.js +8 -1
  116. package/i18n/languages/en-US.mjs +8 -1
  117. package/i18n/languages/es-MX.js +8 -1
  118. package/i18n/languages/es-MX.mjs +8 -1
  119. package/i18n/languages/fa-IR.js +8 -1
  120. package/i18n/languages/fa-IR.mjs +8 -1
  121. package/i18n/languages/fr-FR.js +8 -1
  122. package/i18n/languages/fr-FR.mjs +8 -1
  123. package/i18n/languages/hr-HR.js +8 -1
  124. package/i18n/languages/hr-HR.mjs +8 -1
  125. package/i18n/languages/it-IT.js +8 -1
  126. package/i18n/languages/it-IT.mjs +8 -1
  127. package/i18n/languages/ja-JP.js +8 -1
  128. package/i18n/languages/ja-JP.mjs +8 -1
  129. package/i18n/languages/ko-KR.js +8 -1
  130. package/i18n/languages/ko-KR.mjs +8 -1
  131. package/i18n/languages/lv-LV.js +8 -1
  132. package/i18n/languages/lv-LV.mjs +8 -1
  133. package/i18n/languages/nb-NO.js +8 -1
  134. package/i18n/languages/nb-NO.mjs +8 -1
  135. package/i18n/languages/nl-NL.js +8 -1
  136. package/i18n/languages/nl-NL.mjs +8 -1
  137. package/i18n/languages/pl-PL.js +8 -1
  138. package/i18n/languages/pl-PL.mjs +8 -1
  139. package/i18n/languages/pt-BR.js +8 -1
  140. package/i18n/languages/pt-BR.mjs +8 -1
  141. package/i18n/languages/ru-RU.js +8 -1
  142. package/i18n/languages/ru-RU.mjs +8 -1
  143. package/i18n/languages/sr-SP.js +8 -1
  144. package/i18n/languages/sr-SP.mjs +8 -1
  145. package/i18n/languages/zh-CN.js +8 -1
  146. package/i18n/languages/zh-CN.mjs +8 -1
  147. package/i18n/languages/zh-TW.js +8 -1
  148. package/i18n/languages/zh-TW.mjs +8 -1
  149. package/index.d.ts +9 -0
  150. package/languages/all.js +168 -21
  151. package/languages/ar-AR.js +8 -1
  152. package/languages/ar-AR.mjs +8 -1
  153. package/languages/cs-CZ.js +8 -1
  154. package/languages/cs-CZ.mjs +8 -1
  155. package/languages/de-CH.js +8 -1
  156. package/languages/de-CH.mjs +8 -1
  157. package/languages/de-DE.js +8 -1
  158. package/languages/de-DE.mjs +8 -1
  159. package/languages/en-US.js +8 -1
  160. package/languages/en-US.mjs +8 -1
  161. package/languages/es-MX.js +8 -1
  162. package/languages/es-MX.mjs +8 -1
  163. package/languages/fa-IR.js +8 -1
  164. package/languages/fa-IR.mjs +8 -1
  165. package/languages/fr-FR.js +8 -1
  166. package/languages/fr-FR.mjs +8 -1
  167. package/languages/hr-HR.js +8 -1
  168. package/languages/hr-HR.mjs +8 -1
  169. package/languages/index.js +168 -21
  170. package/languages/it-IT.js +8 -1
  171. package/languages/it-IT.mjs +8 -1
  172. package/languages/ja-JP.js +8 -1
  173. package/languages/ja-JP.mjs +8 -1
  174. package/languages/ko-KR.js +8 -1
  175. package/languages/ko-KR.mjs +8 -1
  176. package/languages/lv-LV.js +8 -1
  177. package/languages/lv-LV.mjs +8 -1
  178. package/languages/nb-NO.js +8 -1
  179. package/languages/nb-NO.mjs +8 -1
  180. package/languages/nl-NL.js +8 -1
  181. package/languages/nl-NL.mjs +8 -1
  182. package/languages/pl-PL.js +8 -1
  183. package/languages/pl-PL.mjs +8 -1
  184. package/languages/pt-BR.js +8 -1
  185. package/languages/pt-BR.mjs +8 -1
  186. package/languages/ru-RU.js +8 -1
  187. package/languages/ru-RU.mjs +8 -1
  188. package/languages/sr-SP.js +8 -1
  189. package/languages/sr-SP.mjs +8 -1
  190. package/languages/zh-CN.js +8 -1
  191. package/languages/zh-CN.mjs +8 -1
  192. package/languages/zh-TW.js +8 -1
  193. package/languages/zh-TW.mjs +8 -1
  194. package/package.json +25 -7
  195. package/plugins/autoRowSize/autoRowSize.js +8 -1
  196. package/plugins/autoRowSize/autoRowSize.mjs +8 -1
  197. package/plugins/base/base.js +36 -10
  198. package/plugins/base/base.mjs +36 -10
  199. package/plugins/columnSummary/endpoints.js +13 -3
  200. package/plugins/columnSummary/endpoints.mjs +13 -3
  201. package/plugins/customBorders/customBorders.d.ts +1 -0
  202. package/plugins/customBorders/customBorders.js +32 -2
  203. package/plugins/customBorders/customBorders.mjs +32 -2
  204. package/plugins/dialog/constants.js +7 -0
  205. package/plugins/dialog/constants.mjs +4 -0
  206. package/plugins/dialog/dialog.d.ts +22 -2
  207. package/plugins/dialog/dialog.js +197 -81
  208. package/plugins/dialog/dialog.mjs +196 -81
  209. package/plugins/dialog/templates/base.js +60 -0
  210. package/plugins/dialog/templates/base.mjs +56 -0
  211. package/plugins/dialog/templates/confirm.js +106 -0
  212. package/plugins/dialog/templates/confirm.mjs +102 -0
  213. package/plugins/dialog/templates/index.js +6 -0
  214. package/plugins/dialog/templates/index.mjs +4 -0
  215. package/plugins/dialog/ui.js +125 -41
  216. package/plugins/dialog/ui.mjs +119 -35
  217. package/plugins/emptyDataState/emptyDataState.d.ts +24 -0
  218. package/plugins/emptyDataState/emptyDataState.js +526 -0
  219. package/plugins/emptyDataState/emptyDataState.mjs +521 -0
  220. package/plugins/emptyDataState/index.d.ts +1 -0
  221. package/plugins/emptyDataState/index.js +7 -0
  222. package/plugins/emptyDataState/index.mjs +1 -0
  223. package/plugins/emptyDataState/ui.js +282 -0
  224. package/plugins/emptyDataState/ui.mjs +278 -0
  225. package/plugins/filters/component/value.js +16 -1
  226. package/plugins/filters/component/value.mjs +16 -1
  227. package/plugins/filters/filters.d.ts +5 -1
  228. package/plugins/filters/filters.js +22 -1
  229. package/plugins/filters/filters.mjs +22 -1
  230. package/plugins/filters/ui/multipleSelect.js +90 -79
  231. package/plugins/filters/ui/multipleSelect.mjs +90 -79
  232. package/plugins/index.d.ts +3 -0
  233. package/plugins/index.js +3 -0
  234. package/plugins/index.mjs +3 -1
  235. package/plugins/mergeCells/utils.js +1 -5
  236. package/plugins/mergeCells/utils.mjs +1 -5
  237. package/plugins/pagination/pagination.js +37 -175
  238. package/plugins/pagination/pagination.mjs +37 -175
  239. package/plugins/pagination/strategies/autoPageSize.js +2 -2
  240. package/plugins/pagination/strategies/autoPageSize.mjs +2 -2
  241. package/plugins/pagination/ui.js +6 -10
  242. package/plugins/pagination/ui.mjs +7 -11
  243. package/plugins/stretchColumns/calculator.js +3 -1
  244. package/plugins/stretchColumns/calculator.mjs +3 -1
  245. package/plugins/undoRedo/undoRedo.js +16 -6
  246. package/plugins/undoRedo/undoRedo.mjs +16 -5
  247. package/renderers/checkboxRenderer/checkboxRenderer.js +12 -15
  248. package/renderers/checkboxRenderer/checkboxRenderer.mjs +12 -15
  249. package/selection/selection.js +1 -1
  250. package/selection/selection.mjs +1 -1
  251. package/settings.d.ts +3 -0
  252. package/shortcutContexts/commands/index.js +2 -1
  253. package/shortcutContexts/commands/index.mjs +2 -1
  254. package/shortcutContexts/commands/tabNavigation.js +51 -0
  255. package/shortcutContexts/commands/tabNavigation.mjs +48 -0
  256. package/shortcutContexts/constants.js +16 -1
  257. package/shortcutContexts/constants.mjs +16 -1
  258. package/shortcutContexts/editor.js +2 -2
  259. package/shortcutContexts/editor.mjs +3 -3
  260. package/shortcutContexts/grid.js +19 -3
  261. package/shortcutContexts/grid.mjs +20 -4
  262. package/shortcuts/manager.d.ts +1 -0
  263. package/shortcuts/manager.js +17 -2
  264. package/shortcuts/manager.mjs +17 -2
  265. package/styles/handsontable.css +192 -35
  266. package/styles/handsontable.min.css +3 -3
  267. package/styles/ht-icons-horizon.css +233 -0
  268. package/styles/ht-icons-horizon.min.css +30 -0
  269. package/styles/ht-icons-main.css +233 -0
  270. package/styles/ht-icons-main.min.css +30 -0
  271. package/styles/ht-theme-classic-no-icons.css +399 -0
  272. package/styles/ht-theme-classic-no-icons.min.css +30 -0
  273. package/styles/ht-theme-classic.css +308 -556
  274. package/styles/ht-theme-classic.min.css +3 -3
  275. package/styles/ht-theme-horizon-no-icons.css +405 -0
  276. package/styles/ht-theme-horizon-no-icons.min.css +30 -0
  277. package/styles/ht-theme-horizon.css +312 -556
  278. package/styles/ht-theme-horizon.min.css +3 -3
  279. package/styles/ht-theme-main-no-icons.css +396 -0
  280. package/styles/ht-theme-main-no-icons.min.css +30 -0
  281. package/styles/ht-theme-main.css +303 -556
  282. package/styles/ht-theme-main.min.css +3 -3
  283. package/tableView.js +23 -5
  284. package/tableView.mjs +23 -5
  285. package/utils/dataStructures/uniqueMap.js +10 -0
  286. package/utils/dataStructures/uniqueMap.mjs +10 -0
  287. package/utils/ghostTable.js +0 -3
  288. package/utils/ghostTable.mjs +0 -3
  289. package/utils/stylesHandler.js +19 -4
  290. package/utils/stylesHandler.mjs +19 -4
  291. package/core/focusCatcher/index.js +0 -131
  292. package/core/focusCatcher/index.mjs +0 -127
  293. package/core/focusCatcher/utils.js +0 -31
  294. package/core/focusCatcher/utils.mjs +0 -27
  295. package/plugins/pagination/focusController.js +0 -27
  296. package/plugins/pagination/focusController.mjs +0 -23
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'nb-NO',
80
+ [C.OK]: 'OK',
81
+ [C.CANCEL]: 'Avbryt',
80
82
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Sett inn over',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Sett inn under',
82
84
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Sett inn til venstre',
@@ -158,7 +160,12 @@ const dictionary = {
158
160
  [C.PAGINATION_PREV_PAGE]: 'Gå til forrige side',
159
161
  [C.PAGINATION_NEXT_PAGE]: 'Gå til neste side',
160
162
  [C.PAGINATION_LAST_PAGE]: 'Gå til siste side',
161
- [C.LOADING_TITLE]: 'Laster...'
163
+ [C.LOADING_TITLE]: 'Laster...',
164
+ [C.EMPTY_DATA_STATE_TITLE]: 'Ingen data tilgjengelig',
165
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Det er ingenting å vise ennå.',
166
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Ingen resultater funnet',
167
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Det ser ut til at dine nåværende filtre skjuler alle resultater.',
168
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Tilbakestill filtre'
162
169
  };
163
170
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
164
171
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'nb-NO',
12
+ [C.OK]: 'OK',
13
+ [C.CANCEL]: 'Avbryt',
12
14
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Sett inn over',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Sett inn under',
14
16
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Sett inn til venstre',
@@ -90,7 +92,12 @@ const dictionary = {
90
92
  [C.PAGINATION_PREV_PAGE]: 'Gå til forrige side',
91
93
  [C.PAGINATION_NEXT_PAGE]: 'Gå til neste side',
92
94
  [C.PAGINATION_LAST_PAGE]: 'Gå til siste side',
93
- [C.LOADING_TITLE]: 'Laster...'
95
+ [C.LOADING_TITLE]: 'Laster...',
96
+ [C.EMPTY_DATA_STATE_TITLE]: 'Ingen data tilgjengelig',
97
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Det er ingenting å vise ennå.',
98
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Ingen resultater funnet',
99
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Det ser ut til at dine nåværende filtre skjuler alle resultater.',
100
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Tilbakestill filtre'
94
101
  };
95
102
  Handsontable.languages.registerLanguageDictionary(dictionary);
96
103
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'nl-NL',
80
+ [C.OK]: 'OK',
81
+ [C.CANCEL]: 'Annuleren',
80
82
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Rij boven invoegen',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Rij onder invoegen',
82
84
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Kolom links invoegen',
@@ -161,7 +163,12 @@ const dictionary = {
161
163
  [C.PAGINATION_PREV_PAGE]: 'Ga naar vorige pagina',
162
164
  [C.PAGINATION_NEXT_PAGE]: 'Ga naar volgende pagina',
163
165
  [C.PAGINATION_LAST_PAGE]: 'Ga naar laatste pagina',
164
- [C.LOADING_TITLE]: 'Laden...'
166
+ [C.LOADING_TITLE]: 'Laden...',
167
+ [C.EMPTY_DATA_STATE_TITLE]: 'Geen gegevens beschikbaar',
168
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Er is nog niets te tonen.',
169
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Geen resultaten gevonden',
170
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Het lijkt erop dat uw huidige filters alle resultaten verbergen.',
171
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Filters resetten'
165
172
  };
166
173
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
167
174
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'nl-NL',
12
+ [C.OK]: 'OK',
13
+ [C.CANCEL]: 'Annuleren',
12
14
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Rij boven invoegen',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Rij onder invoegen',
14
16
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Kolom links invoegen',
@@ -93,7 +95,12 @@ const dictionary = {
93
95
  [C.PAGINATION_PREV_PAGE]: 'Ga naar vorige pagina',
94
96
  [C.PAGINATION_NEXT_PAGE]: 'Ga naar volgende pagina',
95
97
  [C.PAGINATION_LAST_PAGE]: 'Ga naar laatste pagina',
96
- [C.LOADING_TITLE]: 'Laden...'
98
+ [C.LOADING_TITLE]: 'Laden...',
99
+ [C.EMPTY_DATA_STATE_TITLE]: 'Geen gegevens beschikbaar',
100
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Er is nog niets te tonen.',
101
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Geen resultaten gevonden',
102
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Het lijkt erop dat uw huidige filters alle resultaten verbergen.',
103
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Filters resetten'
97
104
  };
98
105
  Handsontable.languages.registerLanguageDictionary(dictionary);
99
106
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'pl-PL',
80
+ [C.OK]: 'OK',
81
+ [C.CANCEL]: 'Anuluj',
80
82
  [C.CONTEXTMENU_ITEMS_NO_ITEMS]: 'Brak dostępnych opcji',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Wstaw wiersz powyżej',
82
84
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Wstaw wiersz poniżej',
@@ -164,7 +166,12 @@ const dictionary = {
164
166
  [C.PAGINATION_LAST_PAGE]: 'Przejdź do ostatniej strony',
165
167
  [C.CHECKBOX_CHECKED]: 'Zaznaczony',
166
168
  [C.CHECKBOX_UNCHECKED]: 'Odznaczony',
167
- [C.LOADING_TITLE]: 'Ładowanie...'
169
+ [C.LOADING_TITLE]: 'Ładowanie...',
170
+ [C.EMPTY_DATA_STATE_TITLE]: 'Brak dostępnych danych',
171
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Nie ma jeszcze nic do wyświetlenia.',
172
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Nie znaleziono wyników',
173
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Wygląda na to, że Twoje obecne filtry ukrywają wszystkie wyniki.',
174
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Resetuj filtry'
168
175
  };
169
176
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
170
177
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'pl-PL',
12
+ [C.OK]: 'OK',
13
+ [C.CANCEL]: 'Anuluj',
12
14
  [C.CONTEXTMENU_ITEMS_NO_ITEMS]: 'Brak dostępnych opcji',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Wstaw wiersz powyżej',
14
16
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Wstaw wiersz poniżej',
@@ -96,7 +98,12 @@ const dictionary = {
96
98
  [C.PAGINATION_LAST_PAGE]: 'Przejdź do ostatniej strony',
97
99
  [C.CHECKBOX_CHECKED]: 'Zaznaczony',
98
100
  [C.CHECKBOX_UNCHECKED]: 'Odznaczony',
99
- [C.LOADING_TITLE]: 'Ładowanie...'
101
+ [C.LOADING_TITLE]: 'Ładowanie...',
102
+ [C.EMPTY_DATA_STATE_TITLE]: 'Brak dostępnych danych',
103
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Nie ma jeszcze nic do wyświetlenia.',
104
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Nie znaleziono wyników',
105
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Wygląda na to, że Twoje obecne filtry ukrywają wszystkie wyniki.',
106
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Resetuj filtry'
100
107
  };
101
108
  Handsontable.languages.registerLanguageDictionary(dictionary);
102
109
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'pt-BR',
80
+ [C.OK]: 'OK',
81
+ [C.CANCEL]: 'Cancelar',
80
82
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Inserir linha acima',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Inserir linha abaixo',
82
84
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Inserir coluna esquerda',
@@ -158,7 +160,12 @@ const dictionary = {
158
160
  [C.PAGINATION_PREV_PAGE]: 'Ir para a página anterior',
159
161
  [C.PAGINATION_NEXT_PAGE]: 'Ir para a próxima página',
160
162
  [C.PAGINATION_LAST_PAGE]: 'Ir para a última página',
161
- [C.LOADING_TITLE]: 'Carregando...'
163
+ [C.LOADING_TITLE]: 'Carregando...',
164
+ [C.EMPTY_DATA_STATE_TITLE]: 'Nenhum dado disponível',
165
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Não há nada para exibir ainda.',
166
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Nenhum resultado encontrado',
167
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Parece que seus filtros atuais estão ocultando todos os resultados.',
168
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Redefinir filtros'
162
169
  };
163
170
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
164
171
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'pt-BR',
12
+ [C.OK]: 'OK',
13
+ [C.CANCEL]: 'Cancelar',
12
14
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Inserir linha acima',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Inserir linha abaixo',
14
16
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Inserir coluna esquerda',
@@ -90,7 +92,12 @@ const dictionary = {
90
92
  [C.PAGINATION_PREV_PAGE]: 'Ir para a página anterior',
91
93
  [C.PAGINATION_NEXT_PAGE]: 'Ir para a próxima página',
92
94
  [C.PAGINATION_LAST_PAGE]: 'Ir para a última página',
93
- [C.LOADING_TITLE]: 'Carregando...'
95
+ [C.LOADING_TITLE]: 'Carregando...',
96
+ [C.EMPTY_DATA_STATE_TITLE]: 'Nenhum dado disponível',
97
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Não há nada para exibir ainda.',
98
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Nenhum resultado encontrado',
99
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Parece que seus filtros atuais estão ocultando todos os resultados.',
100
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Redefinir filtros'
94
101
  };
95
102
  Handsontable.languages.registerLanguageDictionary(dictionary);
96
103
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'ru-RU',
80
+ [C.OK]: 'OK',
81
+ [C.CANCEL]: 'Отмена',
80
82
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Вставить строку выше',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Вставить строку ниже',
82
84
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Вставить столбец слева',
@@ -158,7 +160,12 @@ const dictionary = {
158
160
  [C.PAGINATION_PREV_PAGE]: 'Перейти на предыдущую страницу',
159
161
  [C.PAGINATION_NEXT_PAGE]: 'Перейти на следующую страницу',
160
162
  [C.PAGINATION_LAST_PAGE]: 'Перейти на последнюю страницу',
161
- [C.LOADING_TITLE]: 'Загрузка...'
163
+ [C.LOADING_TITLE]: 'Загрузка...',
164
+ [C.EMPTY_DATA_STATE_TITLE]: 'Данные недоступны',
165
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Пока нечего отображать.',
166
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Результаты не найдены',
167
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Похоже, что ваши текущие фильтры скрывают все результаты.',
168
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Сбросить фильтры'
162
169
  };
163
170
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
164
171
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'ru-RU',
12
+ [C.OK]: 'OK',
13
+ [C.CANCEL]: 'Отмена',
12
14
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Вставить строку выше',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Вставить строку ниже',
14
16
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: 'Вставить столбец слева',
@@ -90,7 +92,12 @@ const dictionary = {
90
92
  [C.PAGINATION_PREV_PAGE]: 'Перейти на предыдущую страницу',
91
93
  [C.PAGINATION_NEXT_PAGE]: 'Перейти на следующую страницу',
92
94
  [C.PAGINATION_LAST_PAGE]: 'Перейти на последнюю страницу',
93
- [C.LOADING_TITLE]: 'Загрузка...'
95
+ [C.LOADING_TITLE]: 'Загрузка...',
96
+ [C.EMPTY_DATA_STATE_TITLE]: 'Данные недоступны',
97
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Пока нечего отображать.',
98
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Результаты не найдены',
99
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Похоже, что ваши текущие фильтры скрывают все результаты.',
100
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Сбросить фильтры'
94
101
  };
95
102
  Handsontable.languages.registerLanguageDictionary(dictionary);
96
103
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'sr-SP',
80
+ [C.OK]: 'U redu',
81
+ [C.CANCEL]: 'Otkaži',
80
82
  [C.CONTEXTMENU_ITEMS_NO_ITEMS]: 'Nema dostupnih opcija',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Unesi red iznad',
82
84
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Unesi red ispod',
@@ -162,7 +164,12 @@ const dictionary = {
162
164
  [C.PAGINATION_PREV_PAGE]: 'Idi na prethodnu stranicu',
163
165
  [C.PAGINATION_NEXT_PAGE]: 'Idi na sledeću stranicu',
164
166
  [C.PAGINATION_LAST_PAGE]: 'Idi na poslednju stranicu',
165
- [C.LOADING_TITLE]: 'Učitavanje...'
167
+ [C.LOADING_TITLE]: 'Učitavanje...',
168
+ [C.EMPTY_DATA_STATE_TITLE]: 'Nema dostupnih podataka',
169
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Još uvek nema ništa za prikaz.',
170
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Nema pronađenih rezultata',
171
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Izgleda da vaši trenutni filteri skrivaju sve rezultate.',
172
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Resetuj filtere'
166
173
  };
167
174
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
168
175
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'sr-SP',
12
+ [C.OK]: 'U redu',
13
+ [C.CANCEL]: 'Otkaži',
12
14
  [C.CONTEXTMENU_ITEMS_NO_ITEMS]: 'Nema dostupnih opcija',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: 'Unesi red iznad',
14
16
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: 'Unesi red ispod',
@@ -94,7 +96,12 @@ const dictionary = {
94
96
  [C.PAGINATION_PREV_PAGE]: 'Idi na prethodnu stranicu',
95
97
  [C.PAGINATION_NEXT_PAGE]: 'Idi na sledeću stranicu',
96
98
  [C.PAGINATION_LAST_PAGE]: 'Idi na poslednju stranicu',
97
- [C.LOADING_TITLE]: 'Učitavanje...'
99
+ [C.LOADING_TITLE]: 'Učitavanje...',
100
+ [C.EMPTY_DATA_STATE_TITLE]: 'Nema dostupnih podataka',
101
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: 'Još uvek nema ništa za prikaz.',
102
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: 'Nema pronađenih rezultata',
103
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: 'Izgleda da vaši trenutni filteri skrivaju sve rezultate.',
104
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: 'Resetuj filtere'
98
105
  };
99
106
  Handsontable.languages.registerLanguageDictionary(dictionary);
100
107
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'zh-CN',
80
+ [C.OK]: '确认',
81
+ [C.CANCEL]: '取消',
80
82
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: '上方插入行',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: '下方插入行',
82
84
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: '左方插入列',
@@ -161,7 +163,12 @@ const dictionary = {
161
163
  [C.PAGINATION_PREV_PAGE]: '转到上一页',
162
164
  [C.PAGINATION_NEXT_PAGE]: '转到下一页',
163
165
  [C.PAGINATION_LAST_PAGE]: '转到最后一页',
164
- [C.LOADING_TITLE]: '加载中...'
166
+ [C.LOADING_TITLE]: '加载中...',
167
+ [C.EMPTY_DATA_STATE_TITLE]: '暂无数据',
168
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: '暂无内容可显示。',
169
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: '未找到结果',
170
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: '看起来您当前的过滤器隐藏了所有结果。',
171
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: '重置过滤器'
165
172
  };
166
173
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
167
174
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'zh-CN',
12
+ [C.OK]: '确认',
13
+ [C.CANCEL]: '取消',
12
14
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: '上方插入行',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: '下方插入行',
14
16
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: '左方插入列',
@@ -93,7 +95,12 @@ const dictionary = {
93
95
  [C.PAGINATION_PREV_PAGE]: '转到上一页',
94
96
  [C.PAGINATION_NEXT_PAGE]: '转到下一页',
95
97
  [C.PAGINATION_LAST_PAGE]: '转到最后一页',
96
- [C.LOADING_TITLE]: '加载中...'
98
+ [C.LOADING_TITLE]: '加载中...',
99
+ [C.EMPTY_DATA_STATE_TITLE]: '暂无数据',
100
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: '暂无内容可显示。',
101
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: '未找到结果',
102
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: '看起来您当前的过滤器隐藏了所有结果。',
103
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: '重置过滤器'
97
104
  };
98
105
  Handsontable.languages.registerLanguageDictionary(dictionary);
99
106
  export default dictionary;
@@ -77,6 +77,8 @@ var _handsontable = _interopRequireDefault(__webpack_require__(2));
77
77
  const C = _handsontable.default.languages.dictionaryKeys;
78
78
  const dictionary = {
79
79
  languageCode: 'zh-TW',
80
+ [C.OK]: '確認',
81
+ [C.CANCEL]: '取消',
80
82
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: '上方插入列',
81
83
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: '下方插入列',
82
84
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: '左方插入欄',
@@ -158,7 +160,12 @@ const dictionary = {
158
160
  [C.PAGINATION_PREV_PAGE]: '轉到上一頁',
159
161
  [C.PAGINATION_NEXT_PAGE]: '轉到下一頁',
160
162
  [C.PAGINATION_LAST_PAGE]: '轉到最後一頁',
161
- [C.LOADING_TITLE]: '載入中...'
163
+ [C.LOADING_TITLE]: '載入中...',
164
+ [C.EMPTY_DATA_STATE_TITLE]: '暫無資料',
165
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: '暫無內容可顯示。',
166
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: '未找到結果',
167
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: '看起來您目前的過濾器隱藏了所有結果。',
168
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: '重設過濾器'
162
169
  };
163
170
  _handsontable.default.languages.registerLanguageDictionary(dictionary);
164
171
  var _default = exports["default"] = dictionary;
@@ -9,6 +9,8 @@ import Handsontable from "handsontable";
9
9
  const C = Handsontable.languages.dictionaryKeys;
10
10
  const dictionary = {
11
11
  languageCode: 'zh-TW',
12
+ [C.OK]: '確認',
13
+ [C.CANCEL]: '取消',
12
14
  [C.CONTEXTMENU_ITEMS_ROW_ABOVE]: '上方插入列',
13
15
  [C.CONTEXTMENU_ITEMS_ROW_BELOW]: '下方插入列',
14
16
  [C.CONTEXTMENU_ITEMS_INSERT_LEFT]: '左方插入欄',
@@ -90,7 +92,12 @@ const dictionary = {
90
92
  [C.PAGINATION_PREV_PAGE]: '轉到上一頁',
91
93
  [C.PAGINATION_NEXT_PAGE]: '轉到下一頁',
92
94
  [C.PAGINATION_LAST_PAGE]: '轉到最後一頁',
93
- [C.LOADING_TITLE]: '載入中...'
95
+ [C.LOADING_TITLE]: '載入中...',
96
+ [C.EMPTY_DATA_STATE_TITLE]: '暫無資料',
97
+ [C.EMPTY_DATA_STATE_DESCRIPTION]: '暫無內容可顯示。',
98
+ [C.EMPTY_DATA_STATE_TITLE_FILTERS]: '未找到結果',
99
+ [C.EMPTY_DATA_STATE_DESCRIPTION_FILTERS]: '看起來您目前的過濾器隱藏了所有結果。',
100
+ [C.EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET]: '重設過濾器'
94
101
  };
95
102
  Handsontable.languages.registerLanguageDictionary(dictionary);
96
103
  export default dictionary;
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": "16.1.1",
13
+ "version": "16.2.0-next-90d1117-20251117",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -52,7 +52,7 @@
52
52
  "@types/node": "^12.20.7",
53
53
  "@typescript-eslint/eslint-plugin": "^4.33.0",
54
54
  "@typescript-eslint/parser": "^4.33.0",
55
- "babel-jest": "^26.6.3",
55
+ "babel-jest": "^27.5.1",
56
56
  "babel-loader": "^8.0.4",
57
57
  "babel-plugin-forbidden-imports": "^0.1.2",
58
58
  "babel-plugin-transform-inline-environment-variables": "^0.4.3",
@@ -72,7 +72,7 @@
72
72
  "execa": "^5.0.0",
73
73
  "fs-extra": "^4.0.2",
74
74
  "glob": "^7.1.2",
75
- "global-jsdom": "^8.7.0",
75
+ "global-jsdom": "^24.0.0",
76
76
  "html-parse-stringify": "^3.0.1",
77
77
  "html-webpack-plugin": "^4.5.2",
78
78
  "http-server": "^14.1.1",
@@ -80,10 +80,10 @@
80
80
  "jasmine-console-reporter": "^3.1.0",
81
81
  "jasmine-core": "^3.4.0",
82
82
  "jasmine-terminal-reporter": "^1.0.3",
83
- "jest": "^26.6.3",
84
- "jest-cli": "^26.6.3",
85
- "jest-environment-jsdom": "^26.6.2",
86
- "jest-matcher-utils": "^26.6.2",
83
+ "jest": "^27.5.1",
84
+ "jest-cli": "^27.5.1",
85
+ "jest-environment-jsdom": "^27.5.1",
86
+ "jest-matcher-utils": "^27.5.1",
87
87
  "jsdom": "^24.0.0",
88
88
  "loader-utils": "^1.1.0",
89
89
  "lodash": "^4.17.20",
@@ -403,6 +403,11 @@
403
403
  "require": "./plugins/dropdownMenu/index.js",
404
404
  "import": "./plugins/dropdownMenu/index.mjs"
405
405
  },
406
+ "./plugins/emptyDataState": {
407
+ "types": "./plugins/emptyDataState/index.d.ts",
408
+ "require": "./plugins/emptyDataState/index.js",
409
+ "import": "./plugins/emptyDataState/index.mjs"
410
+ },
406
411
  "./plugins/exportFile": {
407
412
  "types": "./plugins/exportFile/index.d.ts",
408
413
  "require": "./plugins/exportFile/index.js",
@@ -808,10 +813,20 @@
808
813
  "./dist/languages/zh-TW.min.js": "./dist/languages/zh-TW.min.js",
809
814
  "./styles/handsontable.css": "./styles/handsontable.css",
810
815
  "./styles/handsontable.min.css": "./styles/handsontable.min.css",
816
+ "./styles/ht-icons-horizon.css": "./styles/ht-icons-horizon.css",
817
+ "./styles/ht-icons-horizon.min.css": "./styles/ht-icons-horizon.min.css",
818
+ "./styles/ht-icons-main.css": "./styles/ht-icons-main.css",
819
+ "./styles/ht-icons-main.min.css": "./styles/ht-icons-main.min.css",
820
+ "./styles/ht-theme-classic-no-icons.css": "./styles/ht-theme-classic-no-icons.css",
821
+ "./styles/ht-theme-classic-no-icons.min.css": "./styles/ht-theme-classic-no-icons.min.css",
811
822
  "./styles/ht-theme-classic.css": "./styles/ht-theme-classic.css",
812
823
  "./styles/ht-theme-classic.min.css": "./styles/ht-theme-classic.min.css",
824
+ "./styles/ht-theme-horizon-no-icons.css": "./styles/ht-theme-horizon-no-icons.css",
825
+ "./styles/ht-theme-horizon-no-icons.min.css": "./styles/ht-theme-horizon-no-icons.min.css",
813
826
  "./styles/ht-theme-horizon.css": "./styles/ht-theme-horizon.css",
814
827
  "./styles/ht-theme-horizon.min.css": "./styles/ht-theme-horizon.min.css",
828
+ "./styles/ht-theme-main-no-icons.css": "./styles/ht-theme-main-no-icons.css",
829
+ "./styles/ht-theme-main-no-icons.min.css": "./styles/ht-theme-main-no-icons.min.css",
815
830
  "./styles/ht-theme-main.css": "./styles/ht-theme-main.css",
816
831
  "./styles/ht-theme-main.min.css": "./styles/ht-theme-main.min.css",
817
832
  ".": {
@@ -827,6 +842,9 @@
827
842
  "./common": {
828
843
  "types": "./common.d.ts"
829
844
  },
845
+ "./settings": {
846
+ "types": "./settings.d.ts"
847
+ },
830
848
  "./languages/all": {
831
849
  "import": "./languages/index.mjs",
832
850
  "require": "./languages/all.js"
@@ -30,6 +30,7 @@ const PLUGIN_KEY = exports.PLUGIN_KEY = 'autoRowSize';
30
30
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 40;
31
31
  const ROW_WIDTHS_MAP_NAME = 'autoRowSize';
32
32
  const FIRST_COLUMN_NOT_RENDERED_CLASS_NAME = 'htFirstDatasetColumnNotRendered';
33
+ const AUTO_ROW_SIZE_CLASS_NAME = 'htAutoRowSize';
33
34
 
34
35
  /* eslint-disable jsdoc/require-description-complete-sentence */
35
36
  /**
@@ -328,6 +329,7 @@ class AutoRowSize extends _base.BasePlugin {
328
329
  this.addHook('modifyRowHeight', (height, row) => this.getRowHeight(row, height));
329
330
  this.addHook('init', () => _assertClassBrand(_AutoRowSize_brand, this, _onInit).call(this));
330
331
  this.addHook('modifyColumnHeaderHeight', () => this.getColumnHeaderHeight());
332
+ (0, _element.addClass)(this.hot.rootElement, AUTO_ROW_SIZE_CLASS_NAME);
331
333
  super.enablePlugin();
332
334
  }
333
335
 
@@ -336,6 +338,7 @@ class AutoRowSize extends _base.BasePlugin {
336
338
  */
337
339
  disablePlugin() {
338
340
  this.headerHeight = null;
341
+ (0, _element.removeClass)(this.hot.rootElement, AUTO_ROW_SIZE_CLASS_NAME);
339
342
  super.disablePlugin();
340
343
 
341
344
  // Remove the "first dataset column not rendered" class name when the plugin is disabled.
@@ -529,7 +532,7 @@ class AutoRowSize extends _base.BasePlugin {
529
532
  * @returns {number} The height of the specified row, in pixels.
530
533
  */
531
534
  getRowHeight(row) {
532
- let defaultHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.hot.stylesHandler.getDefaultRowHeight();
535
+ let defaultHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.hot.stylesHandler.getDefaultRowHeight(row);
533
536
  if (row < 0) {
534
537
  var _this$headerHeight;
535
538
  return (_this$headerHeight = this.headerHeight) !== null && _this$headerHeight !== void 0 ? _this$headerHeight : defaultHeight;
@@ -542,6 +545,10 @@ class AutoRowSize extends _base.BasePlugin {
542
545
  let height = defaultHeight;
543
546
  if (cachedHeight !== null && cachedHeight > defaultHeight) {
544
547
  height = cachedHeight;
548
+ if (!this.hot.stylesHandler.isClassicTheme() && row === this.hot.view.getFirstRenderedVisibleRow()) {
549
+ // add 1px border-top-width compensation for the first rendered row
550
+ height += 1;
551
+ }
545
552
  }
546
553
  return height;
547
554
  }
@@ -26,6 +26,7 @@ export const PLUGIN_KEY = 'autoRowSize';
26
26
  export const PLUGIN_PRIORITY = 40;
27
27
  const ROW_WIDTHS_MAP_NAME = 'autoRowSize';
28
28
  const FIRST_COLUMN_NOT_RENDERED_CLASS_NAME = 'htFirstDatasetColumnNotRendered';
29
+ const AUTO_ROW_SIZE_CLASS_NAME = 'htAutoRowSize';
29
30
 
30
31
  /* eslint-disable jsdoc/require-description-complete-sentence */
31
32
  /**
@@ -324,6 +325,7 @@ export class AutoRowSize extends BasePlugin {
324
325
  this.addHook('modifyRowHeight', (height, row) => this.getRowHeight(row, height));
325
326
  this.addHook('init', () => _assertClassBrand(_AutoRowSize_brand, this, _onInit).call(this));
326
327
  this.addHook('modifyColumnHeaderHeight', () => this.getColumnHeaderHeight());
328
+ addClass(this.hot.rootElement, AUTO_ROW_SIZE_CLASS_NAME);
327
329
  super.enablePlugin();
328
330
  }
329
331
 
@@ -332,6 +334,7 @@ export class AutoRowSize extends BasePlugin {
332
334
  */
333
335
  disablePlugin() {
334
336
  this.headerHeight = null;
337
+ removeClass(this.hot.rootElement, AUTO_ROW_SIZE_CLASS_NAME);
335
338
  super.disablePlugin();
336
339
 
337
340
  // Remove the "first dataset column not rendered" class name when the plugin is disabled.
@@ -525,7 +528,7 @@ export class AutoRowSize extends BasePlugin {
525
528
  * @returns {number} The height of the specified row, in pixels.
526
529
  */
527
530
  getRowHeight(row) {
528
- let defaultHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.hot.stylesHandler.getDefaultRowHeight();
531
+ let defaultHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.hot.stylesHandler.getDefaultRowHeight(row);
529
532
  if (row < 0) {
530
533
  var _this$headerHeight;
531
534
  return (_this$headerHeight = this.headerHeight) !== null && _this$headerHeight !== void 0 ? _this$headerHeight : defaultHeight;
@@ -538,6 +541,10 @@ export class AutoRowSize extends BasePlugin {
538
541
  let height = defaultHeight;
539
542
  if (cachedHeight !== null && cachedHeight > defaultHeight) {
540
543
  height = cachedHeight;
544
+ if (!this.hot.stylesHandler.isClassicTheme() && row === this.hot.view.getFirstRenderedVisibleRow()) {
545
+ // add 1px border-top-width compensation for the first rendered row
546
+ height += 1;
547
+ }
541
548
  }
542
549
  return height;
543
550
  }
@@ -5,6 +5,7 @@ require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  require("core-js/modules/esnext.iterator.constructor.js");
7
7
  require("core-js/modules/esnext.iterator.for-each.js");
8
+ require("core-js/modules/esnext.iterator.map.js");
8
9
  var _object = require("../../helpers/object");
9
10
  var _array = require("../../helpers/array");
10
11
  var _registry = require("../registry");
@@ -207,32 +208,57 @@ class BasePlugin {
207
208
  * @returns {*}
208
209
  */
209
210
  getSetting(settingName) {
211
+ var _this = this;
210
212
  const defaultSettings = this.constructor.DEFAULT_SETTINGS;
213
+ const settingsValidators = this.constructor.SETTINGS_VALIDATORS;
211
214
  if (settingName === undefined) {
212
215
  if ((0, _object.isObject)(_classPrivateFieldGet(_pluginSettings, this))) {
213
216
  return (0, _object.assignObjectDefaults)(_classPrivateFieldGet(_pluginSettings, this), defaultSettings);
214
217
  }
215
218
  return _classPrivateFieldGet(_pluginSettings, this);
216
219
  }
220
+ let settingValue;
217
221
  if ((Array.isArray(_classPrivateFieldGet(_pluginSettings, this)) || (0, _object.isObject)(_classPrivateFieldGet(_pluginSettings, this))) && defaultSettings[defaultMainSettingSymbol] === settingName) {
218
- var _classPrivateFieldGet2;
219
222
  if (Array.isArray(_classPrivateFieldGet(_pluginSettings, this))) {
220
- return _classPrivateFieldGet(_pluginSettings, this);
223
+ settingValue = _classPrivateFieldGet(_pluginSettings, this);
224
+ } else {
225
+ var _classPrivateFieldGet2;
226
+ settingValue = (_classPrivateFieldGet2 = _classPrivateFieldGet(_pluginSettings, this)[settingName]) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : defaultSettings[settingName];
221
227
  }
222
- return (_classPrivateFieldGet2 = _classPrivateFieldGet(_pluginSettings, this)[settingName]) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : defaultSettings[settingName];
223
- }
224
- if (settingName.includes('.')) {
228
+ } else if (settingName.includes('.')) {
225
229
  const pluginValue = (0, _object.getProperty)(_classPrivateFieldGet(_pluginSettings, this), settingName);
226
230
  const defaultValue = (0, _object.getProperty)(defaultSettings, settingName);
227
231
  if ((0, _object.isObject)(pluginValue)) {
228
- return (0, _object.assignObjectDefaults)(pluginValue, defaultValue);
232
+ settingValue = (0, _object.assignObjectDefaults)(pluginValue, defaultValue);
233
+ } else {
234
+ settingValue = pluginValue !== undefined ? pluginValue : defaultValue;
229
235
  }
230
- return pluginValue !== undefined ? pluginValue : defaultValue;
236
+ } else if ((0, _object.isObject)(_classPrivateFieldGet(_pluginSettings, this))) {
237
+ settingValue = (0, _object.assignObjectDefaults)(_classPrivateFieldGet(_pluginSettings, this), defaultSettings)[settingName];
238
+ } else {
239
+ settingValue = defaultSettings[settingName];
231
240
  }
232
- if ((0, _object.isObject)(_classPrivateFieldGet(_pluginSettings, this))) {
233
- return (0, _object.assignObjectDefaults)(_classPrivateFieldGet(_pluginSettings, this), defaultSettings)[settingName];
241
+ if (typeof settingValue === 'function' && settingsValidators && typeof settingsValidators === 'object') {
242
+ const validator = settingsValidators[settingName];
243
+ if (validator && typeof validator === 'function') {
244
+ return function () {
245
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
246
+ args[_key] = arguments[_key];
247
+ }
248
+ const result = settingValue(...args);
249
+ const isValid = validator(result);
250
+ if (isValid === false) {
251
+ const formattedArgs = args.map(arg => typeof arg === 'string' ? `"${arg}"` : '').join(', ');
252
+ const source = args.length > 0 ? formattedArgs : '';
253
+ (0, _console.warn)(`${_this.pluginName} Plugin: "${settingName}" function (${source}) result \
254
+ is not valid and will be ignored.`);
255
+ return;
256
+ }
257
+ return result;
258
+ };
259
+ }
234
260
  }
235
- return defaultSettings[settingName];
261
+ return settingValue;
236
262
  }
237
263
 
238
264
  /**