handsontable 0.0.0-next-ee5ee21-20241202 → 0.0.0-next-e3ad397-20241203

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.

Files changed (114) hide show
  1. package/3rdparty/walkontable/src/calculator/index.js +1 -2
  2. package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  5. package/3rdparty/walkontable/src/core/_base.js +3 -0
  6. package/3rdparty/walkontable/src/core/_base.mjs +3 -0
  7. package/3rdparty/walkontable/src/core/clone.js +1 -0
  8. package/3rdparty/walkontable/src/core/clone.mjs +1 -0
  9. package/3rdparty/walkontable/src/core/core.js +2 -0
  10. package/3rdparty/walkontable/src/core/core.mjs +2 -0
  11. package/3rdparty/walkontable/src/facade/core.js +3 -0
  12. package/3rdparty/walkontable/src/facade/core.mjs +3 -0
  13. package/3rdparty/walkontable/src/index.js +0 -1
  14. package/3rdparty/walkontable/src/index.mjs +2 -2
  15. package/3rdparty/walkontable/src/overlay/_base.js +3 -1
  16. package/3rdparty/walkontable/src/overlay/_base.mjs +3 -1
  17. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  18. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -1
  20. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +3 -2
  21. package/3rdparty/walkontable/src/overlay/top.js +3 -2
  22. package/3rdparty/walkontable/src/overlay/top.mjs +4 -3
  23. package/3rdparty/walkontable/src/renderer/index.js +4 -2
  24. package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
  25. package/3rdparty/walkontable/src/renderer/table.js +12 -3
  26. package/3rdparty/walkontable/src/renderer/table.mjs +12 -3
  27. package/3rdparty/walkontable/src/selection/border/border.js +19 -13
  28. package/3rdparty/walkontable/src/selection/border/border.mjs +19 -13
  29. package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
  30. package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
  31. package/3rdparty/walkontable/src/selection/index.js +4 -4
  32. package/3rdparty/walkontable/src/selection/index.mjs +1 -1
  33. package/3rdparty/walkontable/src/settings.js +0 -2
  34. package/3rdparty/walkontable/src/settings.mjs +0 -2
  35. package/3rdparty/walkontable/src/table.js +17 -9
  36. package/3rdparty/walkontable/src/table.mjs +17 -9
  37. package/3rdparty/walkontable/src/types.js +1 -0
  38. package/3rdparty/walkontable/src/types.mjs +1 -0
  39. package/3rdparty/walkontable/src/utils/column.js +1 -1
  40. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  41. package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
  42. package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
  43. package/3rdparty/walkontable/src/viewport.js +1 -0
  44. package/3rdparty/walkontable/src/viewport.mjs +1 -0
  45. package/base.js +2 -2
  46. package/base.mjs +2 -2
  47. package/core/hooks/constants.js +9 -0
  48. package/core/hooks/constants.mjs +9 -0
  49. package/core/hooks/index.d.ts +1 -0
  50. package/core.d.ts +2 -0
  51. package/core.js +51 -2
  52. package/core.mjs +51 -2
  53. package/dataMap/metaManager/metaSchema.js +23 -3
  54. package/dataMap/metaManager/metaSchema.mjs +23 -3
  55. package/dist/handsontable.css +84 -72
  56. package/dist/handsontable.full.css +317 -304
  57. package/dist/handsontable.full.js +5889 -5728
  58. package/dist/handsontable.full.min.css +15 -10
  59. package/dist/handsontable.full.min.js +54 -53
  60. package/dist/handsontable.js +4338 -3945
  61. package/dist/handsontable.min.css +10 -6
  62. package/dist/handsontable.min.js +23 -23
  63. package/editors/autocompleteEditor/autocompleteEditor.js +1 -1
  64. package/editors/autocompleteEditor/autocompleteEditor.mjs +1 -1
  65. package/editors/baseEditor/baseEditor.js +1 -1
  66. package/editors/baseEditor/baseEditor.mjs +1 -1
  67. package/editors/dateEditor/dateEditor.js +9 -0
  68. package/editors/dateEditor/dateEditor.mjs +10 -1
  69. package/editors/handsontableEditor/handsontableEditor.js +7 -1
  70. package/editors/handsontableEditor/handsontableEditor.mjs +7 -1
  71. package/editors/selectEditor/selectEditor.js +20 -9
  72. package/editors/selectEditor/selectEditor.mjs +20 -9
  73. package/editors/textEditor/textEditor.js +4 -11
  74. package/editors/textEditor/textEditor.mjs +4 -11
  75. package/helpers/dom/element.js +32 -1
  76. package/helpers/dom/element.mjs +31 -1
  77. package/helpers/mixed.js +2 -2
  78. package/helpers/mixed.mjs +2 -2
  79. package/helpers/themes.js +17 -0
  80. package/helpers/themes.mjs +13 -0
  81. package/package.json +12 -3
  82. package/plugins/comments/commentEditor.js +9 -0
  83. package/plugins/comments/commentEditor.mjs +9 -0
  84. package/plugins/comments/comments.js +14 -0
  85. package/plugins/comments/comments.mjs +15 -1
  86. package/plugins/contextMenu/menu/menu.js +9 -4
  87. package/plugins/contextMenu/menu/menu.mjs +9 -4
  88. package/plugins/filters/ui/multipleSelect.js +6 -0
  89. package/plugins/filters/ui/multipleSelect.mjs +6 -0
  90. package/plugins/manualRowMove/manualRowMove.js +1 -1
  91. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  92. package/plugins/manualRowResize/manualRowResize.js +1 -2
  93. package/plugins/manualRowResize/manualRowResize.mjs +2 -3
  94. package/plugins/mergeCells/mergeCells.js +1 -1
  95. package/plugins/mergeCells/mergeCells.mjs +1 -1
  96. package/plugins/nestedRows/ui/headers.js +7 -1
  97. package/plugins/nestedRows/ui/headers.mjs +7 -1
  98. package/plugins/stretchColumns/calculator.js +2 -1
  99. package/plugins/stretchColumns/calculator.mjs +3 -2
  100. package/settings.d.ts +1 -0
  101. package/styles/handsontable.css +2307 -0
  102. package/styles/handsontable.min.css +30 -0
  103. package/styles/ht-theme-horizon.css +607 -0
  104. package/styles/ht-theme-horizon.min.css +30 -0
  105. package/styles/ht-theme-main.css +613 -0
  106. package/styles/ht-theme-main.min.css +30 -0
  107. package/tableView.js +67 -0
  108. package/tableView.mjs +68 -1
  109. package/utils/autoResize.js +4 -1
  110. package/utils/autoResize.mjs +4 -1
  111. package/utils/ghostTable.js +5 -3
  112. package/utils/ghostTable.mjs +5 -3
  113. package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
  114. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Copyright (c) HANDSONCODE sp. z o. o.
3
+ *
4
+ * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in
5
+ * Gdynia, Poland, at Aleja Zwyciestwa 96-98, registered by the District Court in Gdansk under number
6
+ * 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
7
+ *
8
+ * This software is protected by applicable copyright laws, including international treaties, and dual-
9
+ * licensed - depending on whether your use for commercial purposes, meaning intended for or
10
+ * resulting in commercial advantage or monetary compensation, or not.
11
+ *
12
+ * If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing
13
+ * the suitability, performance, and usefulness of this software outside the production environment,
14
+ * you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.
15
+ *
16
+ * Your use of this software for commercial purposes is subject to the terms included in an applicable
17
+ * license agreement.
18
+ *
19
+ * In any case, you must not make any such use of this software as to develop software which may be
20
+ * considered competitive with this software.
21
+ *
22
+ * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"
23
+ * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO
24
+ * LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
25
+ * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
+ * USE OR INABILITY TO USE THIS SOFTWARE.
27
+ *
28
+ * Version: 0.0.0-next-e3ad397-20241203
29
+ * Release date: 17/10/2024 (built at 03/12/2024 13:41:36)
30
+ */.ht-theme-main,.ht-theme-main-dark,.ht-theme-main-dark-auto{--ht-font-size:14px;--ht-line-height:20px;--ht-font-weight:400;--ht-gap-size:4px;--ht-icon-size:16px;--ht-table-transition:0.15s;--ht-border-color:#e7e7e9;--ht-accent-color:#1a42e8;--ht-foreground-color:#222;--ht-background-color:#fff;--ht-placeholder-color:#999;--ht-read-only-color:#999;--ht-disabled-color:#a3a3a3;--ht-cell-horizontal-border-color:#e7e7e9;--ht-cell-vertical-border-color:#e7e7e9;--ht-wrapper-border-width:0;--ht-wrapper-border-radius:4px;--ht-wrapper-border-color:#e7e7e9;--ht-row-header-odd-background-color:#f7f7f9;--ht-row-header-even-background-color:#f7f7f9;--ht-row-cell-odd-background-color:rgba(34,34,34,0);--ht-row-cell-even-background-color:rgba(34,34,34,0);--ht-cell-horizontal-padding:8px;--ht-cell-vertical-padding:4px;--ht-cell-editor-border-width:2px;--ht-cell-editor-border-color:#1a42e8;--ht-cell-editor-foreground-color:#000;--ht-cell-editor-background-color:#fff;--ht-cell-editor-shadow-blur-radius:0;--ht-cell-editor-shadow-color:rgba(17,61,201,.6);--ht-cell-success-background-color:rgba(55,188,108,.2);--ht-cell-error-background-color:rgba(250,77,50,.2);--ht-cell-selection-border-color:#1a42e8;--ht-cell-selection-background-color:#5371ee;--ht-cell-autofill-size:6px;--ht-cell-autofill-border-width:1px;--ht-cell-autofill-border-radius:4px;--ht-cell-autofill-border-color:#fff;--ht-cell-autofill-background-color:#1a42e8;--ht-cell-autofill-fill-border-color:#222;--ht-resize-indicator-color:rgba(34,34,34,.4);--ht-move-backlight-color:rgba(34,34,34,.06);--ht-move-indicator-color:#1a42e8;--ht-hidden-indicator-color:rgba(34,34,34,.4);--ht-scrollbar-border-radius:8px;--ht-scrollbar-track-color:#f7f7f9;--ht-scrollbar-thumb-color:#999;--ht-checkbox-size:16px;--ht-checkbox-border-radius:4px;--ht-checkbox-border-color:#d1d1d5;--ht-checkbox-background-color:#fff;--ht-checkbox-icon-color:hsla(0,0%,100%,0);--ht-checkbox-focus-border-color:#d1d1d5;--ht-checkbox-focus-background-color:#fff;--ht-checkbox-focus-icon-color:hsla(0,0%,100%,0);--ht-checkbox-focus-ring-color:#1a42e8;--ht-checkbox-disabled-border-color:#e7e7e9;--ht-checkbox-disabled-background-color:#d1d1d5;--ht-checkbox-disabled-icon-color:hsla(0,0%,100%,0);--ht-checkbox-checked-border-color:#3f60ec;--ht-checkbox-checked-background-color:#1a42e8;--ht-checkbox-checked-icon-color:#fff;--ht-checkbox-checked-focus-border-color:#fff;--ht-checkbox-checked-focus-background-color:#1a42e8;--ht-checkbox-checked-focus-icon-color:#fff;--ht-checkbox-checked-disabled-border-color:#e7e7e9;--ht-checkbox-checked-disabled-background-color:#d1d1d5;--ht-checkbox-checked-disabled-icon-color:#a3a3a3;--ht-header-font-weight:400;--ht-header-foreground-color:#222;--ht-header-background-color:#f7f7f9;--ht-header-active-border-color:#2e56fc;--ht-header-active-foreground-color:#fff;--ht-header-active-background-color:#1a42e8;--ht-header-highlighted-shadow-size:0;--ht-header-highlighted-foreground-color:#000;--ht-header-highlighted-background-color:#ebebed;--ht-header-filter-background-color:rgba(55,188,108,.2);--ht-header-row-foreground-color:#222;--ht-header-row-background-color:#f7f7f9;--ht-header-row-highlighted-foreground-color:#000;--ht-header-row-highlighted-background-color:#ebebed;--ht-header-row-active-foreground-color:#fff;--ht-header-row-active-background-color:#1a42e8;--ht-icon-button-border-radius:2px;--ht-icon-button-border-color:#f7f7f9;--ht-icon-button-background-color:#f7f7f9;--ht-icon-button-icon-color:rgba(34,34,34,.4);--ht-icon-button-hover-border-color:#e7e7e8;--ht-icon-button-hover-background-color:#e7e7e8;--ht-icon-button-hover-icon-color:rgba(34,34,34,.4);--ht-icon-active-button-border-color:#2e56fc;--ht-icon-active-button-background-color:#1a42e8;--ht-icon-active-button-icon-color:#fff;--ht-icon-active-button-hover-border-color:#2e56fc;--ht-icon-active-button-hover-background-color:#3357ea;--ht-icon-active-button-hover-icon-color:#fff;--ht-collapse-button-border-radius:4px;--ht-collapse-button-open-border-color:#d1d1d5;--ht-collapse-button-open-background-color:#fff;--ht-collapse-button-open-icon-color:#999;--ht-collapse-button-open-icon-active-color:#999;--ht-collapse-button-open-hover-border-color:#d1d1d5;--ht-collapse-button-open-hover-background-color:#f7f7f9;--ht-collapse-button-open-hover-icon-color:#999;--ht-collapse-button-open-hover-icon-active-color:#999;--ht-collapse-button-close-border-color:#d1d1d5;--ht-collapse-button-close-background-color:#ebebed;--ht-collapse-button-close-icon-color:#666;--ht-collapse-button-close-icon-active-color:#666;--ht-collapse-button-close-hover-border-color:#d1d1d5;--ht-collapse-button-close-hover-background-color:#ebebed;--ht-collapse-button-close-hover-icon-color:#666;--ht-collapse-button-close-hover-icon-active-color:#666;--ht-button-border-radius:4px;--ht-button-horizontal-padding:12px;--ht-button-vertical-padding:6px;--ht-primary-button-border-color:hsla(0,0%,100%,0);--ht-primary-button-foreground-color:#fff;--ht-primary-button-background-color:#1a42e8;--ht-primary-button-disabled-border-color:hsla(0,0%,100%,0);--ht-primary-button-disabled-foreground-color:#a3a3a3;--ht-primary-button-disabled-background-color:hsla(0,0%,60%,.32);--ht-primary-button-hover-border-color:hsla(0,0%,100%,0);--ht-primary-button-hover-foreground-color:#fff;--ht-primary-button-hover-background-color:#1535bc;--ht-primary-button-focus-border-color:#fff;--ht-primary-button-focus-foreground-color:#fff;--ht-primary-button-focus-background-color:#1a42e8;--ht-secondary-button-border-color:#e7e7e9;--ht-secondary-button-foreground-color:#222;--ht-secondary-button-background-color:#fff;--ht-secondary-button-disabled-border-color:#e7e7e9;--ht-secondary-button-disabled-foreground-color:#a3a3a3;--ht-secondary-button-disabled-background-color:#ebebed;--ht-secondary-button-hover-border-color:#e7e7e9;--ht-secondary-button-hover-foreground-color:#222;--ht-secondary-button-hover-background-color:#fff;--ht-secondary-button-focus-border-color:#e7e7e9;--ht-secondary-button-focus-foreground-color:#222;--ht-secondary-button-focus-background-color:#fff;--ht-comments-textarea-horizontal-padding:8px;--ht-comments-textarea-vertical-padding:4px;--ht-comments-indicator-size:6px;--ht-comments-indicator-color:#1a42e8;--ht-comments-textarea-border-width:1px;--ht-comments-textarea-border-color:hsla(0,0%,100%,0);--ht-comments-textarea-foreground-color:#222;--ht-comments-textarea-background-color:#f7f7f9;--ht-comments-textarea-focus-border-width:1px;--ht-comments-textarea-focus-border-color:#1a42e8;--ht-comments-textarea-focus-foreground-color:#222;--ht-comments-textarea-focus-background-color:#fff;--ht-license-horizontal-padding:16px;--ht-license-vertical-padding:8px;--ht-license-foreground-color:#222;--ht-license-background-color:#f7f7f9;--ht-link-color:#1a42e8;--ht-link-hover-color:#3e67ec;--ht-input-border-width:1px;--ht-input-border-radius:4px;--ht-input-horizontal-padding:12px;--ht-input-vertical-padding:6px;--ht-input-border-color:#e7e7e9;--ht-input-foreground-color:#222;--ht-input-background-color:#f7f7f9;--ht-input-hover-border-color:#e7e7e9;--ht-input-hover-foreground-color:#222;--ht-input-hover-background-color:#fff;--ht-input-disabled-border-color:#e7e7e9;--ht-input-disabled-foreground-color:#a3a3a3;--ht-input-disabled-background-color:hsla(0,0%,60%,.32);--ht-input-focus-border-color:#1a42e8;--ht-input-focus-foreground-color:#222;--ht-input-focus-background-color:#fff;--ht-menu-border-width:1px;--ht-menu-border-radius:4px;--ht-menu-horizontal-padding:0;--ht-menu-vertical-padding:8px;--ht-menu-item-horizontal-padding:12px;--ht-menu-item-vertical-padding:4px;--ht-menu-shadow-x:0;--ht-menu-shadow-y:8px;--ht-menu-shadow-blur:16px;--ht-menu-border-color:#e7e7e9;--ht-menu-shadow-color:rgba(0,0,0,.08);--ht-menu-item-hover-color:rgba(0,0,0,.05);--ht-menu-item-active-color:rgba(0,0,0,.08)}.ht-theme-main-dark{--ht-border-color:#313132;--ht-accent-color:#476af7;--ht-foreground-color:#c7c7c7;--ht-background-color:#0f0f10;--ht-placeholder-color:#68696c;--ht-read-only-color:#68696c;--ht-disabled-color:#68696c;--ht-cell-horizontal-border-color:#313132;--ht-cell-vertical-border-color:#313132;--ht-wrapper-border-color:#313132;--ht-row-header-odd-background-color:#1e1e1f;--ht-row-header-even-background-color:#1e1e1f;--ht-row-cell-odd-background-color:rgba(239,239,243,0);--ht-row-cell-even-background-color:rgba(239,239,243,0);--ht-cell-editor-border-color:#476af7;--ht-cell-editor-foreground-color:#fff;--ht-cell-editor-background-color:#0f0f10;--ht-cell-editor-shadow-color:rgba(71,106,247,.6);--ht-cell-success-background-color:rgba(66,190,101,.3);--ht-cell-error-background-color:rgba(255,42,52,.3);--ht-cell-selection-border-color:#476af7;--ht-cell-selection-background-color:#476af7;--ht-cell-autofill-border-color:#0f0f10;--ht-cell-autofill-background-color:#476af7;--ht-cell-autofill-fill-border-color:#c7c7c7;--ht-resize-indicator-color:hsla(0,0%,100%,.4);--ht-move-backlight-color:hsla(0,0%,87%,.12);--ht-move-indicator-color:#476af7;--ht-hidden-indicator-color:hsla(0,0%,100%,.4);--ht-scrollbar-track-color:#19191c;--ht-scrollbar-thumb-color:#68696c;--ht-checkbox-border-color:#404144;--ht-checkbox-background-color:#0f0f10;--ht-checkbox-focus-border-color:#404144;--ht-checkbox-focus-background-color:#0f0f10;--ht-checkbox-focus-ring-color:#476af7;--ht-checkbox-disabled-border-color:#313132;--ht-checkbox-disabled-background-color:#404144;--ht-checkbox-checked-border-color:#3c59cf;--ht-checkbox-checked-background-color:#476af7;--ht-checkbox-checked-icon-color:#c7c7c7;--ht-checkbox-checked-focus-background-color:#476af7;--ht-checkbox-checked-focus-icon-color:#c7c7c7;--ht-checkbox-checked-disabled-border-color:#313132;--ht-checkbox-checked-disabled-background-color:#36373a;--ht-checkbox-checked-disabled-icon-color:#68696c;--ht-header-foreground-color:#c7c7c7;--ht-header-background-color:#1e1e1f;--ht-header-active-border-color:#4767e5;--ht-header-active-foreground-color:#0f0f10;--ht-header-active-background-color:#476af7;--ht-header-highlighted-foreground-color:#f3f3f3;--ht-header-highlighted-background-color:#262627;--ht-header-filter-background-color:rgba(66,190,101,.3);--ht-header-row-foreground-color:#c7c7c7;--ht-header-row-background-color:#1e1e1f;--ht-header-row-highlighted-foreground-color:#f3f3f3;--ht-header-row-highlighted-background-color:#262627;--ht-header-row-active-foreground-color:#0f0f10;--ht-header-row-active-background-color:#476af7;--ht-icon-button-border-color:#1e1e1f;--ht-icon-button-background-color:#1e1e1f;--ht-icon-button-icon-color:hsla(0,0%,100%,.4);--ht-icon-button-hover-border-color:#303031;--ht-icon-button-hover-background-color:#303031;--ht-icon-button-hover-icon-color:hsla(0,0%,100%,.4);--ht-icon-active-button-border-color:#4767e5;--ht-icon-active-button-background-color:#476af7;--ht-icon-active-button-icon-color:#0f0f10;--ht-icon-active-button-hover-border-color:#4767e5;--ht-icon-active-button-hover-background-color:#5576f8;--ht-icon-active-button-hover-icon-color:#0f0f10;--ht-collapse-button-open-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-background-color:#000;--ht-collapse-button-open-icon-color:#666;--ht-collapse-button-open-icon-active-color:#666;--ht-collapse-button-open-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-hover-background-color:#1e1e1f;--ht-collapse-button-open-hover-icon-color:#666;--ht-collapse-button-open-hover-icon-active-color:#666;--ht-collapse-button-close-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-background-color:#262627;--ht-collapse-button-close-icon-color:#999;--ht-collapse-button-close-icon-active-color:#999;--ht-collapse-button-close-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-hover-background-color:#262627;--ht-collapse-button-close-hover-icon-color:#999;--ht-collapse-button-close-hover-icon-active-color:#999;--ht-primary-button-foreground-color:#c7c7c7;--ht-primary-button-background-color:#476af7;--ht-primary-button-disabled-foreground-color:#68696c;--ht-primary-button-disabled-background-color:hsla(225,2%,42%,.32);--ht-primary-button-hover-foreground-color:#c7c7c7;--ht-primary-button-hover-background-color:#6180ff;--ht-primary-button-focus-border-color:#0f0f10;--ht-primary-button-focus-foreground-color:#c7c7c7;--ht-primary-button-focus-background-color:#476af7;--ht-secondary-button-border-color:#313132;--ht-secondary-button-foreground-color:#c7c7c7;--ht-secondary-button-background-color:#0f0f10;--ht-secondary-button-disabled-border-color:#313132;--ht-secondary-button-disabled-foreground-color:#68696c;--ht-secondary-button-disabled-background-color:#262627;--ht-secondary-button-hover-border-color:#313132;--ht-secondary-button-hover-foreground-color:#c7c7c7;--ht-secondary-button-hover-background-color:#0f0f10;--ht-secondary-button-focus-border-color:#313132;--ht-secondary-button-focus-foreground-color:#c7c7c7;--ht-secondary-button-focus-background-color:#0f0f10;--ht-comments-indicator-color:#476af7;--ht-comments-textarea-foreground-color:#c7c7c7;--ht-comments-textarea-background-color:#1e1e1f;--ht-comments-textarea-focus-border-color:#476af7;--ht-comments-textarea-focus-foreground-color:#c7c7c7;--ht-comments-textarea-focus-background-color:#0f0f10;--ht-license-foreground-color:#c7c7c7;--ht-license-background-color:#1e1e1f;--ht-link-color:#476af7;--ht-link-hover-color:#728eff;--ht-input-border-color:#313132;--ht-input-foreground-color:#c7c7c7;--ht-input-background-color:#1e1e1f;--ht-input-hover-border-color:#313132;--ht-input-hover-foreground-color:#c7c7c7;--ht-input-hover-background-color:#0f0f10;--ht-input-disabled-border-color:#313132;--ht-input-disabled-foreground-color:#68696c;--ht-input-disabled-background-color:hsla(225,2%,42%,.32);--ht-input-focus-border-color:#476af7;--ht-input-focus-foreground-color:#c7c7c7;--ht-input-focus-background-color:#0f0f10;--ht-menu-border-color:#313132;--ht-menu-shadow-color:rgba(0,0,0,.8);--ht-menu-item-hover-color:rgba(239,239,243,.05);--ht-menu-item-active-color:rgba(239,239,243,.12)}@media(prefers-color-scheme:dark){.ht-theme-main-dark-auto{--ht-border-color:#313132;--ht-accent-color:#476af7;--ht-foreground-color:#c7c7c7;--ht-background-color:#0f0f10;--ht-placeholder-color:#68696c;--ht-read-only-color:#68696c;--ht-disabled-color:#68696c;--ht-cell-horizontal-border-color:#313132;--ht-cell-vertical-border-color:#313132;--ht-wrapper-border-color:#313132;--ht-row-header-odd-background-color:#1e1e1f;--ht-row-header-even-background-color:#1e1e1f;--ht-row-cell-odd-background-color:rgba(239,239,243,0);--ht-row-cell-even-background-color:rgba(239,239,243,0);--ht-cell-editor-border-color:#476af7;--ht-cell-editor-foreground-color:#fff;--ht-cell-editor-background-color:#0f0f10;--ht-cell-editor-shadow-color:rgba(71,106,247,.6);--ht-cell-success-background-color:rgba(66,190,101,.3);--ht-cell-error-background-color:rgba(255,42,52,.3);--ht-cell-selection-border-color:#476af7;--ht-cell-selection-background-color:#476af7;--ht-cell-autofill-border-color:#0f0f10;--ht-cell-autofill-background-color:#476af7;--ht-cell-autofill-fill-border-color:#c7c7c7;--ht-resize-indicator-color:hsla(0,0%,100%,.4);--ht-move-backlight-color:hsla(0,0%,87%,.12);--ht-move-indicator-color:#476af7;--ht-hidden-indicator-color:hsla(0,0%,100%,.4);--ht-scrollbar-track-color:#19191c;--ht-scrollbar-thumb-color:#68696c;--ht-checkbox-border-color:#404144;--ht-checkbox-background-color:#0f0f10;--ht-checkbox-focus-border-color:#404144;--ht-checkbox-focus-background-color:#0f0f10;--ht-checkbox-focus-ring-color:#476af7;--ht-checkbox-disabled-border-color:#313132;--ht-checkbox-disabled-background-color:#404144;--ht-checkbox-checked-border-color:#3c59cf;--ht-checkbox-checked-background-color:#476af7;--ht-checkbox-checked-icon-color:#c7c7c7;--ht-checkbox-checked-focus-background-color:#476af7;--ht-checkbox-checked-focus-icon-color:#c7c7c7;--ht-checkbox-checked-disabled-border-color:#313132;--ht-checkbox-checked-disabled-background-color:#36373a;--ht-checkbox-checked-disabled-icon-color:#68696c;--ht-header-foreground-color:#c7c7c7;--ht-header-background-color:#1e1e1f;--ht-header-active-border-color:#4767e5;--ht-header-active-foreground-color:#0f0f10;--ht-header-active-background-color:#476af7;--ht-header-highlighted-foreground-color:#f3f3f3;--ht-header-highlighted-background-color:#262627;--ht-header-filter-background-color:rgba(66,190,101,.3);--ht-header-row-foreground-color:#c7c7c7;--ht-header-row-background-color:#1e1e1f;--ht-header-row-highlighted-foreground-color:#f3f3f3;--ht-header-row-highlighted-background-color:#262627;--ht-header-row-active-foreground-color:#0f0f10;--ht-header-row-active-background-color:#476af7;--ht-icon-button-border-color:#1e1e1f;--ht-icon-button-background-color:#1e1e1f;--ht-icon-button-icon-color:hsla(0,0%,100%,.4);--ht-icon-button-hover-border-color:#303031;--ht-icon-button-hover-background-color:#303031;--ht-icon-button-hover-icon-color:hsla(0,0%,100%,.4);--ht-icon-active-button-border-color:#4767e5;--ht-icon-active-button-background-color:#476af7;--ht-icon-active-button-icon-color:#0f0f10;--ht-icon-active-button-hover-border-color:#4767e5;--ht-icon-active-button-hover-background-color:#5576f8;--ht-icon-active-button-hover-icon-color:#0f0f10;--ht-collapse-button-open-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-background-color:#000;--ht-collapse-button-open-icon-color:#666;--ht-collapse-button-open-icon-active-color:#666;--ht-collapse-button-open-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-hover-background-color:#1e1e1f;--ht-collapse-button-open-hover-icon-color:#666;--ht-collapse-button-open-hover-icon-active-color:#666;--ht-collapse-button-close-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-background-color:#262627;--ht-collapse-button-close-icon-color:#999;--ht-collapse-button-close-icon-active-color:#999;--ht-collapse-button-close-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-hover-background-color:#262627;--ht-collapse-button-close-hover-icon-color:#999;--ht-collapse-button-close-hover-icon-active-color:#999;--ht-primary-button-foreground-color:#c7c7c7;--ht-primary-button-background-color:#476af7;--ht-primary-button-disabled-foreground-color:#68696c;--ht-primary-button-disabled-background-color:hsla(225,2%,42%,.32);--ht-primary-button-hover-foreground-color:#c7c7c7;--ht-primary-button-hover-background-color:#6180ff;--ht-primary-button-focus-border-color:#0f0f10;--ht-primary-button-focus-foreground-color:#c7c7c7;--ht-primary-button-focus-background-color:#476af7;--ht-secondary-button-border-color:#313132;--ht-secondary-button-foreground-color:#c7c7c7;--ht-secondary-button-background-color:#0f0f10;--ht-secondary-button-disabled-border-color:#313132;--ht-secondary-button-disabled-foreground-color:#68696c;--ht-secondary-button-disabled-background-color:#262627;--ht-secondary-button-hover-border-color:#313132;--ht-secondary-button-hover-foreground-color:#c7c7c7;--ht-secondary-button-hover-background-color:#0f0f10;--ht-secondary-button-focus-border-color:#313132;--ht-secondary-button-focus-foreground-color:#c7c7c7;--ht-secondary-button-focus-background-color:#0f0f10;--ht-comments-indicator-color:#476af7;--ht-comments-textarea-foreground-color:#c7c7c7;--ht-comments-textarea-background-color:#1e1e1f;--ht-comments-textarea-focus-border-color:#476af7;--ht-comments-textarea-focus-foreground-color:#c7c7c7;--ht-comments-textarea-focus-background-color:#0f0f10;--ht-license-foreground-color:#c7c7c7;--ht-license-background-color:#1e1e1f;--ht-link-color:#476af7;--ht-link-hover-color:#728eff;--ht-input-border-color:#313132;--ht-input-foreground-color:#c7c7c7;--ht-input-background-color:#1e1e1f;--ht-input-hover-border-color:#313132;--ht-input-hover-foreground-color:#c7c7c7;--ht-input-hover-background-color:#0f0f10;--ht-input-disabled-border-color:#313132;--ht-input-disabled-foreground-color:#68696c;--ht-input-disabled-background-color:hsla(225,2%,42%,.32);--ht-input-focus-border-color:#476af7;--ht-input-focus-foreground-color:#c7c7c7;--ht-input-focus-background-color:#0f0f10;--ht-menu-border-color:#313132;--ht-menu-shadow-color:rgba(0,0,0,.8);--ht-menu-item-hover-color:rgba(239,239,243,.05);--ht-menu-item-active-color:rgba(239,239,243,.12)}}[class*=ht-theme-main] .pika-single .pika-next,[class*=ht-theme-main].htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,[class*=ht-theme-main].htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,[class*=ht-theme-main].htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M6.646 10.94 9.94 7.645 6.646 4.354'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .pika-single .pika-prev{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M9.94 10.94 6.645 7.645 9.94 4.354'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .changeType:before,[class*=ht-theme-main] .htAutocompleteArrow:after,[class*=ht-theme-main] .htUISelectCaption:after{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath fill='currentColor' d='M11 6.667a.5.5 0 0 1 .392.811l-.038.042-3 3a.5.5 0 0 1-.66.042l-.047-.042-3-3-.042-.047-.027-.038-.027-.048-.008-.018-.014-.034-.016-.054-.005-.026-.005-.03-.002-.029v-.059l.003-.029.004-.03.005-.026.016-.054.014-.033.035-.066.032-.045.037-.04.047-.042.038-.027.048-.027.018-.009.034-.013.054-.016.026-.005.03-.005.029-.002z'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .columnSorting.sortAction.ascending:before{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M8 12.667V3.333m0 0L5.333 6M8 3.333 10.667 6'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .columnSorting.sortAction.descending:before{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M8 3.333v9.334m0 0L10.667 10M8 12.667 5.333 10'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main].htContextMenu table tbody tr td .htItemWrapper span.selected:after,[class*=ht-theme-main].htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,[class*=ht-theme-main].htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m3.333 8 3.334 3.333 6.666-6.666'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .htCheckboxRendererInput:after{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m5 8 2 2 4-4'/%3E%3C/svg%3E")}[class*=ht-theme-main] .htCheckboxRendererInput:after,[class*=ht-theme-main] th.beforeHiddenColumn:after{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] th.beforeHiddenColumn:after{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none'%3E%3Cpath fill='currentColor' d='m6.085 1.358.03-.003h.061l.03.003.032.004.027.006.056.016.035.014.069.037.047.034.042.038.043.049.028.04.028.05.01.018.013.035.017.057.005.027.005.031.003.03v6.28a.521.521 0 0 1-.845.409l-.043-.04-3.125-3.125a.52.52 0 0 1-.044-.687l.044-.05 3.125-3.124.048-.044.04-.028.05-.028.02-.009.034-.014.056-.016.028-.006z'/%3E%3C/svg%3E")}[class*=ht-theme-main] th.afterHiddenColumn:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none'%3E%3Cpath fill='currentColor' d='M3.333 1.875c0-.444.514-.676.846-.408l.043.04 3.125 3.125a.52.52 0 0 1 .044.687l-.044.05-3.125 3.124-.049.043-.04.029-.05.028-.018.009-.035.014-.057.016-.027.005-.031.006-.03.002h-.062l-.03-.003-.031-.005-.027-.005-.056-.016-.035-.014-.069-.037-.047-.034-.042-.038-.043-.049-.028-.04-.029-.05-.008-.019-.014-.034-.017-.057-.005-.027-.006-.032-.002-.03z'/%3E%3C/svg%3E")}[class*=ht-theme-main] th.afterHiddenColumn:before,[class*=ht-theme-main] th.beforeHiddenRow:after{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] th.beforeHiddenRow:after{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' fill='none'%3E%3Cpath fill='currentColor' d='M3.764 2.431a.333.333 0 0 1 .44-.028l.032.028 2 2 .027.031.018.026.018.032.006.012.009.022.01.036.004.018.003.02.002.019v.04l-.002.019-.003.02-.003.017-.011.036-.01.022-.022.044-.022.03-.024.027-.032.028-.025.018-.032.018-.012.006-.023.009-.036.01-.017.004-.02.003-.02.001L6 5H2a.334.334 0 0 1-.26-.541l.025-.028z'/%3E%3C/svg%3E")}[class*=ht-theme-main] th.afterHiddenRow:before{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' fill='none'%3E%3Cpath fill='currentColor' d='M6 3c.284 0 .432.329.26.541l-.024.028-2 2a.333.333 0 0 1-.44.028l-.032-.028-2-2-.027-.031-.018-.026L1.7 3.48l-.006-.012-.01-.022-.01-.036-.003-.018-.003-.02-.002-.019v-.04l.002-.019.003-.02.003-.017.01-.036.01-.022.023-.044.022-.03.024-.027.032-.028.025-.018.032-.018.012-.006.023-.009.036-.01.017-.004.02-.003.02-.001z'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .collapsibleIndicator:before,[class*=ht-theme-main] .ht_nestingButton:before{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M4.333 8h7.334'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .collapsibleIndicator.collapsed:before,[class*=ht-theme-main] .collapsibleIndicator.ht_nestingExpand:before,[class*=ht-theme-main] .ht_nestingButton.collapsed:before,[class*=ht-theme-main] .ht_nestingButton.ht_nestingExpand:before{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M7.5 11.667a.5.5 0 0 0 1 0V8.5h3.167a.5.5 0 0 0 0-1H8.5V4.333a.5.5 0 0 0-1 0V7.5H4.333a.5.5 0 0 0 0 1H7.5z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}[class*=ht-theme-main] .htUIRadio>input[type=radio]:after{background-color:currentColor;height:var(--ht-icon-size);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Ccircle cx='8' cy='8' r='4' fill='currentColor'/%3E%3C/svg%3E");-webkit-mask-size:contain;width:var(--ht-icon-size)}
package/tableView.js CHANGED
@@ -161,6 +161,7 @@ class TableView {
161
161
  this.adjustElementsSize();
162
162
  }
163
163
  this._wt.draw(!this.hot.forceFullRender);
164
+ _assertClassBrand(_TableView_brand, this, _updateScrollbarClassNames).call(this);
164
165
  this.hot.runHooks('afterRender', this.hot.forceFullRender);
165
166
  this.hot.forceFullRender = false;
166
167
  this.hot.renderCall = false;
@@ -592,6 +593,52 @@ class TableView {
592
593
  return count;
593
594
  }
594
595
 
596
+ /**
597
+ * Retrieves the styles handler from the Walkontable instance.
598
+ *
599
+ * @returns {StylesHandler} The styles handler instance.
600
+ */
601
+ getStylesHandler() {
602
+ return this._wt.stylesHandler;
603
+ }
604
+
605
+ /**
606
+ * Returns the default row height.
607
+ *
608
+ * This method retrieves the default row height from the Walkontable styles handler.
609
+ *
610
+ * @returns {number} The default row height.
611
+ */
612
+ getDefaultRowHeight() {
613
+ return this._wt.stylesHandler.getDefaultRowHeight();
614
+ }
615
+
616
+ /**
617
+ * Add a class name to the license information element.
618
+ *
619
+ * @param {string} className The class name to add.
620
+ */
621
+ addClassNameToLicenseElement(className) {
622
+ var _this$hot$rootElement;
623
+ const licenseInfoElement = (_this$hot$rootElement = this.hot.rootElement.parentNode) === null || _this$hot$rootElement === void 0 ? void 0 : _this$hot$rootElement.querySelector('.hot-display-license-info');
624
+ if (licenseInfoElement) {
625
+ (0, _element.addClass)(licenseInfoElement, className);
626
+ }
627
+ }
628
+
629
+ /**
630
+ * Remove a class name from the license information element.
631
+ *
632
+ * @param {string} className The class name to remove.
633
+ */
634
+ removeClassNameFromLicenseElement(className) {
635
+ var _this$hot$rootElement2;
636
+ const licenseInfoElement = (_this$hot$rootElement2 = this.hot.rootElement.parentNode) === null || _this$hot$rootElement2 === void 0 ? void 0 : _this$hot$rootElement2.querySelector('.hot-display-license-info');
637
+ if (licenseInfoElement) {
638
+ (0, _element.removeClass)(licenseInfoElement, className);
639
+ }
640
+ }
641
+
595
642
  /**
596
643
  * Checks if at least one cell than belongs to the main table is not covered by the top, left or
597
644
  * bottom overlay.
@@ -1599,4 +1646,24 @@ function _updateAriaColcount(delta) {
1599
1646
  const colCount = _assertClassBrand(_TableView_brand, this, _getAriaColcount).call(this) + delta;
1600
1647
  (0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
1601
1648
  }
1649
+ /**
1650
+ * Updates the class names on the root element based on the presence of scrollbars.
1651
+ *
1652
+ * This method checks if the table has vertical and/or horizontal scrollbars and
1653
+ * adds or removes the corresponding class names (`htHasScrollY` and `htHasScrollX`)
1654
+ * to/from the root element.
1655
+ */
1656
+ function _updateScrollbarClassNames() {
1657
+ const rootElement = this.hot.rootElement;
1658
+ if (this.hasVerticalScroll()) {
1659
+ (0, _element.addClass)(rootElement, 'htHasScrollY');
1660
+ } else {
1661
+ (0, _element.removeClass)(rootElement, 'htHasScrollY');
1662
+ }
1663
+ if (this.hasHorizontalScroll()) {
1664
+ (0, _element.addClass)(rootElement, 'htHasScrollX');
1665
+ } else {
1666
+ (0, _element.removeClass)(rootElement, 'htHasScrollX');
1667
+ }
1668
+ }
1602
1669
  var _default = exports.default = TableView;
package/tableView.mjs CHANGED
@@ -9,7 +9,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
9
9
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
10
10
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
11
11
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
12
- import { addClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput, isVisible, setAttribute, getParentWindow } from "./helpers/dom/element.mjs";
12
+ import { addClass, removeClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput, isVisible, setAttribute, getParentWindow } from "./helpers/dom/element.mjs";
13
13
  import EventManager from "./eventManager.mjs";
14
14
  import { isImmediatePropagationStopped, isRightClick, isLeftClick } from "./helpers/dom/event.mjs";
15
15
  import Walkontable from "./3rdparty/walkontable/src/index.mjs";
@@ -157,6 +157,7 @@ class TableView {
157
157
  this.adjustElementsSize();
158
158
  }
159
159
  this._wt.draw(!this.hot.forceFullRender);
160
+ _assertClassBrand(_TableView_brand, this, _updateScrollbarClassNames).call(this);
160
161
  this.hot.runHooks('afterRender', this.hot.forceFullRender);
161
162
  this.hot.forceFullRender = false;
162
163
  this.hot.renderCall = false;
@@ -588,6 +589,52 @@ class TableView {
588
589
  return count;
589
590
  }
590
591
 
592
+ /**
593
+ * Retrieves the styles handler from the Walkontable instance.
594
+ *
595
+ * @returns {StylesHandler} The styles handler instance.
596
+ */
597
+ getStylesHandler() {
598
+ return this._wt.stylesHandler;
599
+ }
600
+
601
+ /**
602
+ * Returns the default row height.
603
+ *
604
+ * This method retrieves the default row height from the Walkontable styles handler.
605
+ *
606
+ * @returns {number} The default row height.
607
+ */
608
+ getDefaultRowHeight() {
609
+ return this._wt.stylesHandler.getDefaultRowHeight();
610
+ }
611
+
612
+ /**
613
+ * Add a class name to the license information element.
614
+ *
615
+ * @param {string} className The class name to add.
616
+ */
617
+ addClassNameToLicenseElement(className) {
618
+ var _this$hot$rootElement;
619
+ const licenseInfoElement = (_this$hot$rootElement = this.hot.rootElement.parentNode) === null || _this$hot$rootElement === void 0 ? void 0 : _this$hot$rootElement.querySelector('.hot-display-license-info');
620
+ if (licenseInfoElement) {
621
+ addClass(licenseInfoElement, className);
622
+ }
623
+ }
624
+
625
+ /**
626
+ * Remove a class name from the license information element.
627
+ *
628
+ * @param {string} className The class name to remove.
629
+ */
630
+ removeClassNameFromLicenseElement(className) {
631
+ var _this$hot$rootElement2;
632
+ const licenseInfoElement = (_this$hot$rootElement2 = this.hot.rootElement.parentNode) === null || _this$hot$rootElement2 === void 0 ? void 0 : _this$hot$rootElement2.querySelector('.hot-display-license-info');
633
+ if (licenseInfoElement) {
634
+ removeClass(licenseInfoElement, className);
635
+ }
636
+ }
637
+
591
638
  /**
592
639
  * Checks if at least one cell than belongs to the main table is not covered by the top, left or
593
640
  * bottom overlay.
@@ -1595,4 +1642,24 @@ function _updateAriaColcount(delta) {
1595
1642
  const colCount = _assertClassBrand(_TableView_brand, this, _getAriaColcount).call(this) + delta;
1596
1643
  setAttribute(this.hot.rootElement, ...A11Y_COLCOUNT(colCount));
1597
1644
  }
1645
+ /**
1646
+ * Updates the class names on the root element based on the presence of scrollbars.
1647
+ *
1648
+ * This method checks if the table has vertical and/or horizontal scrollbars and
1649
+ * adds or removes the corresponding class names (`htHasScrollY` and `htHasScrollX`)
1650
+ * to/from the root element.
1651
+ */
1652
+ function _updateScrollbarClassNames() {
1653
+ const rootElement = this.hot.rootElement;
1654
+ if (this.hasVerticalScroll()) {
1655
+ addClass(rootElement, 'htHasScrollY');
1656
+ } else {
1657
+ removeClass(rootElement, 'htHasScrollY');
1658
+ }
1659
+ if (this.hasHorizontalScroll()) {
1660
+ addClass(rootElement, 'htHasScrollX');
1661
+ } else {
1662
+ removeClass(rootElement, 'htHasScrollX');
1663
+ }
1664
+ }
1598
1665
  export default TableView;
@@ -82,6 +82,7 @@ function createInputElementResizer(ownerDocument) {
82
82
  * Resizes the element.
83
83
  */
84
84
  function resize() {
85
+ var _getComputedStyle, _getComputedStyle2;
85
86
  textHolder.textContent = defaults.textContent(observedElement);
86
87
  // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
87
88
  // `flex-direction` set as `column`.
@@ -90,7 +91,9 @@ function createInputElementResizer(ownerDocument) {
90
91
  textContainer.style.fontFamily = getComputedStyle(observedElement).fontFamily;
91
92
  textContainer.style.whiteSpace = 'pre';
92
93
  body.appendChild(textContainer);
93
- const width = textContainer.clientWidth + 2;
94
+ const paddingStart = parseInt(((_getComputedStyle = getComputedStyle(observedElement)) === null || _getComputedStyle === void 0 ? void 0 : _getComputedStyle.paddingInlineStart) || 0, 10);
95
+ const paddingEnd = parseInt(((_getComputedStyle2 = getComputedStyle(observedElement)) === null || _getComputedStyle2 === void 0 ? void 0 : _getComputedStyle2.paddingInlineEnd) || 0, 10);
96
+ const width = textContainer.clientWidth + 2 + paddingStart + paddingEnd;
94
97
  body.removeChild(textContainer);
95
98
  const elementStyle = observedElement.style;
96
99
  elementStyle.height = `${defaults.minHeight}px`;
@@ -78,6 +78,7 @@ export function createInputElementResizer(ownerDocument) {
78
78
  * Resizes the element.
79
79
  */
80
80
  function resize() {
81
+ var _getComputedStyle, _getComputedStyle2;
81
82
  textHolder.textContent = defaults.textContent(observedElement);
82
83
  // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
83
84
  // `flex-direction` set as `column`.
@@ -86,7 +87,9 @@ export function createInputElementResizer(ownerDocument) {
86
87
  textContainer.style.fontFamily = getComputedStyle(observedElement).fontFamily;
87
88
  textContainer.style.whiteSpace = 'pre';
88
89
  body.appendChild(textContainer);
89
- const width = textContainer.clientWidth + 2;
90
+ const paddingStart = parseInt(((_getComputedStyle = getComputedStyle(observedElement)) === null || _getComputedStyle === void 0 ? void 0 : _getComputedStyle.paddingInlineStart) || 0, 10);
91
+ const paddingEnd = parseInt(((_getComputedStyle2 = getComputedStyle(observedElement)) === null || _getComputedStyle2 === void 0 ? void 0 : _getComputedStyle2.paddingInlineEnd) || 0, 10);
92
+ const width = textContainer.clientWidth + 2 + paddingStart + paddingEnd;
90
93
  body.removeChild(textContainer);
91
94
  const elementStyle = observedElement.style;
92
95
  elementStyle.height = `${defaults.minHeight}px`;
@@ -133,7 +133,7 @@ class GhostTable {
133
133
  if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {
134
134
  // Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.
135
135
  // We render all columns.
136
- this.hot.view.appendColHeader(column, this.table.th);
136
+ this.hot.view.appendColHeader(column, this.table.th, undefined, -1);
137
137
  }
138
138
  this.table.tBody.appendChild(this.createCol(column));
139
139
  this.container.container.appendChild(this.table.fragment);
@@ -149,6 +149,8 @@ class GhostTable {
149
149
  if (!this.injected) {
150
150
  this.injectTable();
151
151
  }
152
+ const isBorderBoxSizing = this.hot.view.getStylesHandler().areCellsBorderBox();
153
+ const borderCompensation = isBorderBoxSizing ? 0 : 1;
152
154
  (0, _array.arrayEach)(this.rows, row => {
153
155
  // In cases when the cell's content produces the height with a decimal point, the height
154
156
  // needs to be rounded up to make sure that there will be a space for the cell's content.
@@ -157,8 +159,8 @@ class GhostTable {
157
159
  height
158
160
  } = row.table.getBoundingClientRect();
159
161
 
160
- // -1 <- reduce border-top from table
161
- callback(row.row, Math.ceil(height) - 1);
162
+ // -1 <- reduce border-top from table (if box-sizing is not border-box)
163
+ callback(row.row, Math.ceil(height) - borderCompensation);
162
164
  });
163
165
  }
164
166
 
@@ -130,7 +130,7 @@ class GhostTable {
130
130
  if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {
131
131
  // Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.
132
132
  // We render all columns.
133
- this.hot.view.appendColHeader(column, this.table.th);
133
+ this.hot.view.appendColHeader(column, this.table.th, undefined, -1);
134
134
  }
135
135
  this.table.tBody.appendChild(this.createCol(column));
136
136
  this.container.container.appendChild(this.table.fragment);
@@ -146,6 +146,8 @@ class GhostTable {
146
146
  if (!this.injected) {
147
147
  this.injectTable();
148
148
  }
149
+ const isBorderBoxSizing = this.hot.view.getStylesHandler().areCellsBorderBox();
150
+ const borderCompensation = isBorderBoxSizing ? 0 : 1;
149
151
  arrayEach(this.rows, row => {
150
152
  // In cases when the cell's content produces the height with a decimal point, the height
151
153
  // needs to be rounded up to make sure that there will be a space for the cell's content.
@@ -154,8 +156,8 @@ class GhostTable {
154
156
  height
155
157
  } = row.table.getBoundingClientRect();
156
158
 
157
- // -1 <- reduce border-top from table
158
- callback(row.row, Math.ceil(height) - 1);
159
+ // -1 <- reduce border-top from table (if box-sizing is not border-box)
160
+ callback(row.row, Math.ceil(height) - borderCompensation);
159
161
  });
160
162
  }
161
163
 
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- /**
5
- * Default border corner style.
6
- *
7
- * @type {object}
8
- */
9
- const CORNER_DEFAULT_STYLE = exports.CORNER_DEFAULT_STYLE = Object.freeze({
10
- width: '6px',
11
- height: '6px',
12
- borderWidth: '1px',
13
- borderStyle: 'solid',
14
- borderColor: '#FFF'
15
- });
@@ -1,12 +0,0 @@
1
- /**
2
- * Default border corner style.
3
- *
4
- * @type {object}
5
- */
6
- export const CORNER_DEFAULT_STYLE = Object.freeze({
7
- width: '6px',
8
- height: '6px',
9
- borderWidth: '1px',
10
- borderStyle: 'solid',
11
- borderColor: '#FFF'
12
- });