handsontable 0.0.0-next-1c936db-20240912 → 0.0.0-next-108000e-20240912

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "12/09/2024 12:38:43";
49
- Handsontable.version = "0.0.0-next-1c936db-20240912";
48
+ Handsontable.buildDate = "12/09/2024 19:03:58";
49
+ Handsontable.version = "0.0.0-next-108000e-20240912";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
52
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "12/09/2024 12:38:48";
39
- Handsontable.version = "0.0.0-next-1c936db-20240912";
38
+ Handsontable.buildDate = "12/09/2024 19:04:03";
39
+ Handsontable.version = "0.0.0-next-108000e-20240912";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.d.ts CHANGED
@@ -81,8 +81,20 @@ export default class Core {
81
81
  getDataAtRowProp(row: number, prop: string): CellValue;
82
82
  getDataType(rowFrom: number, columnFrom: number, rowTo: number, columnTo: number): CellType | 'mixed';
83
83
  getDirectionFactor(): 1 | -1;
84
+ getFirstFullyVisibleColumn(): number | null;
85
+ getFirstFullyVisibleRow(): number | null;
86
+ getFirstPartiallyVisibleColumn(): number | null;
87
+ getFirstPartiallyVisibleRow(): number | null;
88
+ getFirstRenderedVisibleColumn(): number | null;
89
+ getFirstRenderedVisibleRow(): number | null;
84
90
  getFocusManager(): FocusManager;
85
91
  getInstance(): Core;
92
+ getLastFullyVisibleColumn(): number | null;
93
+ getLastFullyVisibleRow(): number | null;
94
+ getLastPartiallyVisibleColumn(): number | null;
95
+ getLastPartiallyVisibleRow(): number | null;
96
+ getLastRenderedVisibleColumn(): number | null;
97
+ getLastRenderedVisibleRow(): number | null;
86
98
  getPlugin<T extends keyof Plugins>(pluginName: T): Plugins[T];
87
99
  getPlugin(pluginName: string): Plugins['basePlugin'];
88
100
  getRowHeader(): Array<string | number>;
package/core.js CHANGED
@@ -4241,6 +4241,158 @@ function Core(rootElement, userSettings) {
4241
4241
  return editorManager.getActiveEditor();
4242
4242
  };
4243
4243
 
4244
+ /**
4245
+ * Returns the first rendered row in the DOM (usually, it is not visible in the table's viewport).
4246
+ *
4247
+ * @since 14.6.0
4248
+ * @memberof Core#
4249
+ * @function getFirstRenderedVisibleRow
4250
+ * @returns {number | null}
4251
+ */
4252
+ this.getFirstRenderedVisibleRow = function () {
4253
+ return instance.view.getFirstRenderedVisibleRow();
4254
+ };
4255
+
4256
+ /**
4257
+ * Returns the last rendered row in the DOM (usually, it is not visible in the table's viewport).
4258
+ *
4259
+ * @since 14.6.0
4260
+ * @memberof Core#
4261
+ * @function getLastRenderedVisibleRow
4262
+ * @returns {number | null}
4263
+ */
4264
+ this.getLastRenderedVisibleRow = function () {
4265
+ return instance.view.getLastRenderedVisibleRow();
4266
+ };
4267
+
4268
+ /**
4269
+ * Returns the first rendered column in the DOM (usually, it is not visible in the table's viewport).
4270
+ *
4271
+ * @since 14.6.0
4272
+ * @memberof Core#
4273
+ * @function getFirstRenderedVisibleColumn
4274
+ * @returns {number | null}
4275
+ */
4276
+ this.getFirstRenderedVisibleColumn = function () {
4277
+ return instance.view.getFirstRenderedVisibleColumn();
4278
+ };
4279
+
4280
+ /**
4281
+ * Returns the last rendered column in the DOM (usually, it is not visible in the table's viewport).
4282
+ *
4283
+ * @since 14.6.0
4284
+ * @memberof Core#
4285
+ * @function getLastRenderedVisibleColumn
4286
+ * @returns {number | null}
4287
+ */
4288
+ this.getLastRenderedVisibleColumn = function () {
4289
+ return instance.view.getLastRenderedVisibleColumn();
4290
+ };
4291
+
4292
+ /**
4293
+ * Returns the first fully visible row in the table viewport. When the table has overlays the method returns
4294
+ * the first row of the main table that is not overlapped by overlay.
4295
+ *
4296
+ * @since 14.6.0
4297
+ * @memberof Core#
4298
+ * @function getFirstFullyVisibleRow
4299
+ * @returns {number | null}
4300
+ */
4301
+ this.getFirstFullyVisibleRow = function () {
4302
+ return instance.view.getFirstFullyVisibleRow();
4303
+ };
4304
+
4305
+ /**
4306
+ * Returns the last fully visible row in the table viewport. When the table has overlays the method returns
4307
+ * the first row of the main table that is not overlapped by overlay.
4308
+ *
4309
+ * @since 14.6.0
4310
+ * @memberof Core#
4311
+ * @function getLastFullyVisibleRow
4312
+ * @returns {number | null}
4313
+ */
4314
+ this.getLastFullyVisibleRow = function () {
4315
+ return instance.view.getLastFullyVisibleRow();
4316
+ };
4317
+
4318
+ /**
4319
+ * Returns the first fully visible column in the table viewport. When the table has overlays the method returns
4320
+ * the first row of the main table that is not overlapped by overlay.
4321
+ *
4322
+ * @since 14.6.0
4323
+ * @memberof Core#
4324
+ * @function getFirstFullyVisibleColumn
4325
+ * @returns {number | null}
4326
+ */
4327
+ this.getFirstFullyVisibleColumn = function () {
4328
+ return instance.view.getFirstFullyVisibleColumn();
4329
+ };
4330
+
4331
+ /**
4332
+ * Returns the last fully visible column in the table viewport. When the table has overlays the method returns
4333
+ * the first row of the main table that is not overlapped by overlay.
4334
+ *
4335
+ * @since 14.6.0
4336
+ * @memberof Core#
4337
+ * @function getLastFullyVisibleColumn
4338
+ * @returns {number | null}
4339
+ */
4340
+ this.getLastFullyVisibleColumn = function () {
4341
+ return instance.view.getLastFullyVisibleColumn();
4342
+ };
4343
+
4344
+ /**
4345
+ * Returns the first partially visible row in the table viewport. When the table has overlays the method returns
4346
+ * the first row of the main table that is not overlapped by overlay.
4347
+ *
4348
+ * @since 14.6.0
4349
+ * @memberof Core#
4350
+ * @function getFirstPartiallyVisibleRow
4351
+ * @returns {number | null}
4352
+ */
4353
+ this.getFirstPartiallyVisibleRow = function () {
4354
+ return instance.view.getFirstPartiallyVisibleRow();
4355
+ };
4356
+
4357
+ /**
4358
+ * Returns the last partially visible row in the table viewport. When the table has overlays the method returns
4359
+ * the first row of the main table that is not overlapped by overlay.
4360
+ *
4361
+ * @since 14.6.0
4362
+ * @memberof Core#
4363
+ * @function getLastPartiallyVisibleRow
4364
+ * @returns {number | null}
4365
+ */
4366
+ this.getLastPartiallyVisibleRow = function () {
4367
+ return instance.view.getLastPartiallyVisibleRow();
4368
+ };
4369
+
4370
+ /**
4371
+ * Returns the first partially visible column in the table viewport. When the table has overlays the method returns
4372
+ * the first row of the main table that is not overlapped by overlay.
4373
+ *
4374
+ * @since 14.6.0
4375
+ * @memberof Core#
4376
+ * @function getFirstPartiallyVisibleColumn
4377
+ * @returns {number | null}
4378
+ */
4379
+ this.getFirstPartiallyVisibleColumn = function () {
4380
+ return instance.view.getFirstPartiallyVisibleColumn();
4381
+ };
4382
+
4383
+ /**
4384
+ * Returns the last partially visible column in the table viewport. When the table has overlays the method returns
4385
+ * the first row of the main table that is not overlapped by overlay.
4386
+ *
4387
+ * @since 14.6.0
4388
+ * @memberof Core#
4389
+ * @function getLastPartiallyVisibleColumn
4390
+ * @returns {number | null}
4391
+ */
4392
+ this.getLastPartiallyVisibleColumn = function () {
4393
+ return instance.view.getLastPartiallyVisibleColumn();
4394
+ };
4395
+
4244
4396
  /**
4245
4397
  * Returns plugin instance by provided its name.
4246
4398
  *
package/core.mjs CHANGED
@@ -4236,6 +4236,158 @@ export default function Core(rootElement, userSettings) {
4236
4236
  return editorManager.getActiveEditor();
4237
4237
  };
4238
4238
 
4239
+ /**
4240
+ * Returns the first rendered row in the DOM (usually, it is not visible in the table's viewport).
4241
+ *
4242
+ * @since 14.6.0
4243
+ * @memberof Core#
4244
+ * @function getFirstRenderedVisibleRow
4245
+ * @returns {number | null}
4246
+ */
4247
+ this.getFirstRenderedVisibleRow = function () {
4248
+ return instance.view.getFirstRenderedVisibleRow();
4249
+ };
4250
+
4251
+ /**
4252
+ * Returns the last rendered row in the DOM (usually, it is not visible in the table's viewport).
4253
+ *
4254
+ * @since 14.6.0
4255
+ * @memberof Core#
4256
+ * @function getLastRenderedVisibleRow
4257
+ * @returns {number | null}
4258
+ */
4259
+ this.getLastRenderedVisibleRow = function () {
4260
+ return instance.view.getLastRenderedVisibleRow();
4261
+ };
4262
+
4263
+ /**
4264
+ * Returns the first rendered column in the DOM (usually, it is not visible in the table's viewport).
4265
+ *
4266
+ * @since 14.6.0
4267
+ * @memberof Core#
4268
+ * @function getFirstRenderedVisibleColumn
4269
+ * @returns {number | null}
4270
+ */
4271
+ this.getFirstRenderedVisibleColumn = function () {
4272
+ return instance.view.getFirstRenderedVisibleColumn();
4273
+ };
4274
+
4275
+ /**
4276
+ * Returns the last rendered column in the DOM (usually, it is not visible in the table's viewport).
4277
+ *
4278
+ * @since 14.6.0
4279
+ * @memberof Core#
4280
+ * @function getLastRenderedVisibleColumn
4281
+ * @returns {number | null}
4282
+ */
4283
+ this.getLastRenderedVisibleColumn = function () {
4284
+ return instance.view.getLastRenderedVisibleColumn();
4285
+ };
4286
+
4287
+ /**
4288
+ * Returns the first fully visible row in the table viewport. When the table has overlays the method returns
4289
+ * the first row of the main table that is not overlapped by overlay.
4290
+ *
4291
+ * @since 14.6.0
4292
+ * @memberof Core#
4293
+ * @function getFirstFullyVisibleRow
4294
+ * @returns {number | null}
4295
+ */
4296
+ this.getFirstFullyVisibleRow = function () {
4297
+ return instance.view.getFirstFullyVisibleRow();
4298
+ };
4299
+
4300
+ /**
4301
+ * Returns the last fully visible row in the table viewport. When the table has overlays the method returns
4302
+ * the first row of the main table that is not overlapped by overlay.
4303
+ *
4304
+ * @since 14.6.0
4305
+ * @memberof Core#
4306
+ * @function getLastFullyVisibleRow
4307
+ * @returns {number | null}
4308
+ */
4309
+ this.getLastFullyVisibleRow = function () {
4310
+ return instance.view.getLastFullyVisibleRow();
4311
+ };
4312
+
4313
+ /**
4314
+ * Returns the first fully visible column in the table viewport. When the table has overlays the method returns
4315
+ * the first row of the main table that is not overlapped by overlay.
4316
+ *
4317
+ * @since 14.6.0
4318
+ * @memberof Core#
4319
+ * @function getFirstFullyVisibleColumn
4320
+ * @returns {number | null}
4321
+ */
4322
+ this.getFirstFullyVisibleColumn = function () {
4323
+ return instance.view.getFirstFullyVisibleColumn();
4324
+ };
4325
+
4326
+ /**
4327
+ * Returns the last fully visible column in the table viewport. When the table has overlays the method returns
4328
+ * the first row of the main table that is not overlapped by overlay.
4329
+ *
4330
+ * @since 14.6.0
4331
+ * @memberof Core#
4332
+ * @function getLastFullyVisibleColumn
4333
+ * @returns {number | null}
4334
+ */
4335
+ this.getLastFullyVisibleColumn = function () {
4336
+ return instance.view.getLastFullyVisibleColumn();
4337
+ };
4338
+
4339
+ /**
4340
+ * Returns the first partially visible row in the table viewport. When the table has overlays the method returns
4341
+ * the first row of the main table that is not overlapped by overlay.
4342
+ *
4343
+ * @since 14.6.0
4344
+ * @memberof Core#
4345
+ * @function getFirstPartiallyVisibleRow
4346
+ * @returns {number | null}
4347
+ */
4348
+ this.getFirstPartiallyVisibleRow = function () {
4349
+ return instance.view.getFirstPartiallyVisibleRow();
4350
+ };
4351
+
4352
+ /**
4353
+ * Returns the last partially visible row in the table viewport. When the table has overlays the method returns
4354
+ * the first row of the main table that is not overlapped by overlay.
4355
+ *
4356
+ * @since 14.6.0
4357
+ * @memberof Core#
4358
+ * @function getLastPartiallyVisibleRow
4359
+ * @returns {number | null}
4360
+ */
4361
+ this.getLastPartiallyVisibleRow = function () {
4362
+ return instance.view.getLastPartiallyVisibleRow();
4363
+ };
4364
+
4365
+ /**
4366
+ * Returns the first partially visible column in the table viewport. When the table has overlays the method returns
4367
+ * the first row of the main table that is not overlapped by overlay.
4368
+ *
4369
+ * @since 14.6.0
4370
+ * @memberof Core#
4371
+ * @function getFirstPartiallyVisibleColumn
4372
+ * @returns {number | null}
4373
+ */
4374
+ this.getFirstPartiallyVisibleColumn = function () {
4375
+ return instance.view.getFirstPartiallyVisibleColumn();
4376
+ };
4377
+
4378
+ /**
4379
+ * Returns the last partially visible column in the table viewport. When the table has overlays the method returns
4380
+ * the first row of the main table that is not overlapped by overlay.
4381
+ *
4382
+ * @since 14.6.0
4383
+ * @memberof Core#
4384
+ * @function getLastPartiallyVisibleColumn
4385
+ * @returns {number | null}
4386
+ */
4387
+ this.getLastPartiallyVisibleColumn = function () {
4388
+ return instance.view.getLastPartiallyVisibleColumn();
4389
+ };
4390
+
4239
4391
  /**
4240
4392
  * Returns plugin instance by provided its name.
4241
4393
  *
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-1c936db-20240912
29
- * Release date: 30/07/2024 (built at 12/09/2024 12:38:53)
28
+ * Version: 0.0.0-next-108000e-20240912
29
+ * Release date: 30/07/2024 (built at 12/09/2024 19:04:08)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-1c936db-20240912
29
- * Release date: 30/07/2024 (built at 12/09/2024 12:38:53)
28
+ * Version: 0.0.0-next-108000e-20240912
29
+ * Release date: 30/07/2024 (built at 12/09/2024 19:04:08)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-1c936db-20240912
29
- * Release date: 30/07/2024 (built at 12/09/2024 12:38:53)
28
+ * Version: 0.0.0-next-108000e-20240912
29
+ * Release date: 30/07/2024 (built at 12/09/2024 19:04:08)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42675,8 +42675,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
42675
42675
  Handsontable.CellCoords = _src.CellCoords;
42676
42676
  Handsontable.CellRange = _src.CellRange;
42677
42677
  Handsontable.packageName = 'handsontable';
42678
- Handsontable.buildDate = "12/09/2024 12:38:53";
42679
- Handsontable.version = "0.0.0-next-1c936db-20240912";
42678
+ Handsontable.buildDate = "12/09/2024 19:04:08";
42679
+ Handsontable.version = "0.0.0-next-108000e-20240912";
42680
42680
  Handsontable.languages = {
42681
42681
  dictionaryKeys: _registry.dictionaryKeys,
42682
42682
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -46970,6 +46970,158 @@ function Core(rootElement, userSettings) {
46970
46970
  return editorManager.getActiveEditor();
46971
46971
  };
46972
46972
 
46973
+ /**
46974
+ * Returns the first rendered row in the DOM (usually, it is not visible in the table's viewport).
46975
+ *
46976
+ * @since 14.6.0
46977
+ * @memberof Core#
46978
+ * @function getFirstRenderedVisibleRow
46979
+ * @returns {number | null}
46980
+ */
46981
+ this.getFirstRenderedVisibleRow = function () {
46982
+ return instance.view.getFirstRenderedVisibleRow();
46983
+ };
46984
+
46985
+ /**
46986
+ * Returns the last rendered row in the DOM (usually, it is not visible in the table's viewport).
46987
+ *
46988
+ * @since 14.6.0
46989
+ * @memberof Core#
46990
+ * @function getLastRenderedVisibleRow
46991
+ * @returns {number | null}
46992
+ */
46993
+ this.getLastRenderedVisibleRow = function () {
46994
+ return instance.view.getLastRenderedVisibleRow();
46995
+ };
46996
+
46997
+ /**
46998
+ * Returns the first rendered column in the DOM (usually, it is not visible in the table's viewport).
46999
+ *
47000
+ * @since 14.6.0
47001
+ * @memberof Core#
47002
+ * @function getFirstRenderedVisibleColumn
47003
+ * @returns {number | null}
47004
+ */
47005
+ this.getFirstRenderedVisibleColumn = function () {
47006
+ return instance.view.getFirstRenderedVisibleColumn();
47007
+ };
47008
+
47009
+ /**
47010
+ * Returns the last rendered column in the DOM (usually, it is not visible in the table's viewport).
47011
+ *
47012
+ * @since 14.6.0
47013
+ * @memberof Core#
47014
+ * @function getLastRenderedVisibleColumn
47015
+ * @returns {number | null}
47016
+ */
47017
+ this.getLastRenderedVisibleColumn = function () {
47018
+ return instance.view.getLastRenderedVisibleColumn();
47019
+ };
47020
+
47021
+ /**
47022
+ * Returns the first fully visible row in the table viewport. When the table has overlays the method returns
47023
+ * the first row of the main table that is not overlapped by overlay.
47024
+ *
47025
+ * @since 14.6.0
47026
+ * @memberof Core#
47027
+ * @function getFirstFullyVisibleRow
47028
+ * @returns {number | null}
47029
+ */
47030
+ this.getFirstFullyVisibleRow = function () {
47031
+ return instance.view.getFirstFullyVisibleRow();
47032
+ };
47033
+
47034
+ /**
47035
+ * Returns the last fully visible row in the table viewport. When the table has overlays the method returns
47036
+ * the first row of the main table that is not overlapped by overlay.
47037
+ *
47038
+ * @since 14.6.0
47039
+ * @memberof Core#
47040
+ * @function getLastFullyVisibleRow
47041
+ * @returns {number | null}
47042
+ */
47043
+ this.getLastFullyVisibleRow = function () {
47044
+ return instance.view.getLastFullyVisibleRow();
47045
+ };
47046
+
47047
+ /**
47048
+ * Returns the first fully visible column in the table viewport. When the table has overlays the method returns
47049
+ * the first row of the main table that is not overlapped by overlay.
47050
+ *
47051
+ * @since 14.6.0
47052
+ * @memberof Core#
47053
+ * @function getFirstFullyVisibleColumn
47054
+ * @returns {number | null}
47055
+ */
47056
+ this.getFirstFullyVisibleColumn = function () {
47057
+ return instance.view.getFirstFullyVisibleColumn();
47058
+ };
47059
+
47060
+ /**
47061
+ * Returns the last fully visible column in the table viewport. When the table has overlays the method returns
47062
+ * the first row of the main table that is not overlapped by overlay.
47063
+ *
47064
+ * @since 14.6.0
47065
+ * @memberof Core#
47066
+ * @function getLastFullyVisibleColumn
47067
+ * @returns {number | null}
47068
+ */
47069
+ this.getLastFullyVisibleColumn = function () {
47070
+ return instance.view.getLastFullyVisibleColumn();
47071
+ };
47072
+
47073
+ /**
47074
+ * Returns the first partially visible row in the table viewport. When the table has overlays the method returns
47075
+ * the first row of the main table that is not overlapped by overlay.
47076
+ *
47077
+ * @since 14.6.0
47078
+ * @memberof Core#
47079
+ * @function getFirstPartiallyVisibleRow
47080
+ * @returns {number | null}
47081
+ */
47082
+ this.getFirstPartiallyVisibleRow = function () {
47083
+ return instance.view.getFirstPartiallyVisibleRow();
47084
+ };
47085
+
47086
+ /**
47087
+ * Returns the last partially visible row in the table viewport. When the table has overlays the method returns
47088
+ * the first row of the main table that is not overlapped by overlay.
47089
+ *
47090
+ * @since 14.6.0
47091
+ * @memberof Core#
47092
+ * @function getLastPartiallyVisibleRow
47093
+ * @returns {number | null}
47094
+ */
47095
+ this.getLastPartiallyVisibleRow = function () {
47096
+ return instance.view.getLastPartiallyVisibleRow();
47097
+ };
47098
+
47099
+ /**
47100
+ * Returns the first partially visible column in the table viewport. When the table has overlays the method returns
47101
+ * the first row of the main table that is not overlapped by overlay.
47102
+ *
47103
+ * @since 14.6.0
47104
+ * @memberof Core#
47105
+ * @function getFirstPartiallyVisibleColumn
47106
+ * @returns {number | null}
47107
+ */
47108
+ this.getFirstPartiallyVisibleColumn = function () {
47109
+ return instance.view.getFirstPartiallyVisibleColumn();
47110
+ };
47111
+
47112
+ /**
47113
+ * Returns the last partially visible column in the table viewport. When the table has overlays the method returns
47114
+ * the first row of the main table that is not overlapped by overlay.
47115
+ *
47116
+ * @since 14.6.0
47117
+ * @memberof Core#
47118
+ * @function getLastPartiallyVisibleColumn
47119
+ * @returns {number | null}
47120
+ */
47121
+ this.getLastPartiallyVisibleColumn = function () {
47122
+ return instance.view.getLastPartiallyVisibleColumn();
47123
+ };
47124
+
46973
47125
  /**
46974
47126
  * Returns plugin instance by provided its name.
46975
47127
  *
@@ -53247,7 +53399,7 @@ const domMessages = {
53247
53399
  function _injectProductInfo(key, element) {
53248
53400
  const hasValidType = !isEmpty(key);
53249
53401
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53250
- const hotVersion = "0.0.0-next-1c936db-20240912";
53402
+ const hotVersion = "0.0.0-next-108000e-20240912";
53251
53403
  let keyValidityDate;
53252
53404
  let consoleMessageState = 'invalid';
53253
53405
  let domMessageState = 'invalid';
@@ -113830,6 +113982,13 @@ class ContextMenu extends _base.BasePlugin {
113830
113982
  }
113831
113983
  this.prepareMenuItems();
113832
113984
  this.menu.open();
113985
+ const themeHasTableBorder = this.menu.tableBorderWidth > 0;
113986
+ if (!themeHasTableBorder) {
113987
+ offset.below += 1;
113988
+ offset.right += 1;
113989
+ offset.above -= 1;
113990
+ offset.left -= 1;
113991
+ }
113833
113992
  (0, _object.objectEach)(offset, (value, key) => {
113834
113993
  this.menu.setOffset(key, value);
113835
113994
  });
@@ -114366,7 +114525,21 @@ const MIN_WIDTH = 215;
114366
114525
  */
114367
114526
  var _navigator = /*#__PURE__*/new WeakMap();
114368
114527
  var _shortcutsCtrl = /*#__PURE__*/new WeakMap();
114528
+ var _tableBorderWidth = /*#__PURE__*/new WeakMap();
114369
114529
  class Menu {
114530
+ /**
114531
+ * Getter for the table border width.
114532
+ * This getter retrieves the border width of the table used in the menu.
114533
+ *
114534
+ * @returns {number} The border width of the table in pixels.
114535
+ */
114536
+ get tableBorderWidth() {
114537
+ if (_classPrivateFieldGet(_tableBorderWidth, this) === undefined && this.hotMenu) {
114538
+ _classPrivateFieldSet(_tableBorderWidth, this, parseInt((0, _element.getComputedStyle)(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
114539
+ }
114540
+ return _classPrivateFieldGet(_tableBorderWidth, this);
114541
+ }
114542
+
114370
114543
  /**
114371
114544
  * @param {Core} hotInstance Handsontable instance.
114372
114545
  * @param {MenuOptions} [options] Menu options.
@@ -114439,6 +114612,12 @@ class Menu {
114439
114612
  * @type {KeyboardShortcutsMenuController}
114440
114613
  */
114441
114614
  _classPrivateFieldInitSpec(this, _shortcutsCtrl, void 0);
114615
+ /**
114616
+ * The border width of the table used in the menu.
114617
+ *
114618
+ * @type {number}
114619
+ */
114620
+ _classPrivateFieldInitSpec(this, _tableBorderWidth, void 0);
114442
114621
  this.hot = hotInstance;
114443
114622
  this.options = options || {
114444
114623
  parent: null,
@@ -114595,7 +114774,7 @@ class Menu {
114595
114774
  this.openSubMenu(coords.row);
114596
114775
  }
114597
114776
  },
114598
- rowHeights: row => filteredItems[row].name === _predefinedItems.SEPARATOR ? 1 : 23,
114777
+ rowHeights: row => filteredItems[row].name === _predefinedItems.SEPARATOR ? 1 : undefined,
114599
114778
  afterOnCellContextMenu: event => {
114600
114779
  event.preventDefault();
114601
114780
 
@@ -114860,6 +115039,31 @@ class Menu {
114860
115039
  this.positioner.setElement(this.container).updatePosition(coords);
114861
115040
  }
114862
115041
 
115042
+ /**
115043
+ * Updates the dimensions of the menu based on its content.
115044
+ * This method calculates the real height of the menu by summing up the heights of its items,
115045
+ * and adjusts the width and height of the menu's holder and hider elements accordingly.
115046
+ */
115047
+ updateMenuDimensions() {
115048
+ const {
115049
+ wtTable
115050
+ } = this.hotMenu.view._wt;
115051
+ const data = this.hotMenu.getSettings().data;
115052
+ const hiderStyle = wtTable.hider.style;
115053
+ const holderStyle = wtTable.holder.style;
115054
+ const currentHiderWidth = parseInt(hiderStyle.width, 10);
115055
+ const realHeight = (0, _array.arrayReduce)(data, (accumulator, value, index) => {
115056
+ const itemCell = this.hotMenu.getCell(index, 0);
115057
+ const currentRowHeight = itemCell ? (0, _element.outerHeight)(this.hotMenu.getCell(index, 0)) : 0;
115058
+ return accumulator + (value.name === _predefinedItems.SEPARATOR ? 1 : currentRowHeight);
115059
+ }, 0);
115060
+
115061
+ // Additional 3px to menu's size because of additional border around its `table.htCore`.
115062
+ holderStyle.width = `${currentHiderWidth + 3}px`;
115063
+ holderStyle.height = `${realHeight + 3}px`;
115064
+ hiderStyle.height = holderStyle.height;
115065
+ }
115066
+
114863
115067
  /**
114864
115068
  * Create container/wrapper for handsontable.
114865
115069
  *
@@ -114902,19 +115106,7 @@ class Menu {
114902
115106
  * @private
114903
115107
  */
114904
115108
  onAfterInit() {
114905
- const {
114906
- wtTable
114907
- } = this.hotMenu.view._wt;
114908
- const data = this.hotMenu.getSettings().data;
114909
- const hiderStyle = wtTable.hider.style;
114910
- const holderStyle = wtTable.holder.style;
114911
- const currentHiderWidth = parseInt(hiderStyle.width, 10);
114912
- const realHeight = (0, _array.arrayReduce)(data, (accumulator, value) => accumulator + (value.name === _predefinedItems.SEPARATOR ? 1 : 26), 0);
114913
-
114914
- // Additional 3px to menu's size because of additional border around its `table.htCore`.
114915
- holderStyle.width = `${currentHiderWidth + 3}px`;
114916
- holderStyle.height = `${realHeight + 3}px`;
114917
- hiderStyle.height = holderStyle.height;
115109
+ this.updateMenuDimensions();
114918
115110
 
114919
115111
  // Replace the default accessibility tags with the context menu's
114920
115112
  if (this.hot.getSettings().ariaTags) {
@@ -120826,7 +121018,9 @@ function _onAfterChange(changes) {
120826
121018
  }
120827
121019
  }
120828
121020
  function _onAfterDropdownMenuShow() {
121021
+ const menu = this.dropdownMenuPlugin.menu;
120829
121022
  this.restoreComponents(Array.from(this.components.values()));
121023
+ menu.updateMenuDimensions();
120830
121024
  }
120831
121025
  /**
120832
121026
  * After dropdown menu hide listener.