handsontable 15.3.0-next-175012b-20250429 → 16.0.0-next-f486b48-20250702

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 (277) hide show
  1. package/3rdparty/walkontable/src/core/_base.js +0 -3
  2. package/3rdparty/walkontable/src/core/_base.mjs +0 -3
  3. package/3rdparty/walkontable/src/core/clone.js +0 -1
  4. package/3rdparty/walkontable/src/core/clone.mjs +0 -1
  5. package/3rdparty/walkontable/src/core/core.js +0 -2
  6. package/3rdparty/walkontable/src/core/core.mjs +0 -2
  7. package/3rdparty/walkontable/src/facade/core.js +0 -3
  8. package/3rdparty/walkontable/src/facade/core.mjs +0 -3
  9. package/3rdparty/walkontable/src/index.js +1 -2
  10. package/3rdparty/walkontable/src/overlay/_base.js +1 -3
  11. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -3
  12. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  13. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  14. package/3rdparty/walkontable/src/overlay/top.js +1 -1
  15. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  16. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  17. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  18. package/3rdparty/walkontable/src/selection/border/border.js +17 -11
  19. package/3rdparty/walkontable/src/selection/border/border.mjs +17 -11
  20. package/3rdparty/walkontable/src/selection/border/utils.js +1 -1
  21. package/3rdparty/walkontable/src/selection/border/utils.mjs +1 -1
  22. package/3rdparty/walkontable/src/settings.js +3 -1
  23. package/3rdparty/walkontable/src/settings.mjs +3 -1
  24. package/3rdparty/walkontable/src/table.js +9 -6
  25. package/3rdparty/walkontable/src/table.mjs +9 -6
  26. package/3rdparty/walkontable/src/types.js +0 -1
  27. package/3rdparty/walkontable/src/types.mjs +0 -1
  28. package/3rdparty/walkontable/src/utils/column.js +1 -1
  29. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  30. package/3rdparty/walkontable/src/viewport.js +1 -1
  31. package/3rdparty/walkontable/src/viewport.mjs +1 -1
  32. package/CHANGELOG.md +23 -0
  33. package/README.md +10 -4
  34. package/base.js +2 -2
  35. package/base.mjs +2 -2
  36. package/cellTypes/registry.js +2 -3
  37. package/cellTypes/registry.mjs +1 -1
  38. package/core/coordsMapper/rangeToRenderableMapper.js +124 -0
  39. package/core/coordsMapper/rangeToRenderableMapper.mjs +120 -0
  40. package/core/focusCatcher/focusDetector.js +2 -2
  41. package/core/focusCatcher/focusDetector.mjs +2 -2
  42. package/core/hooks/constants.js +259 -1
  43. package/core/hooks/constants.mjs +259 -1
  44. package/core.d.ts +2 -0
  45. package/core.js +202 -58
  46. package/core.mjs +202 -58
  47. package/dataMap/dataMap.js +16 -30
  48. package/dataMap/dataMap.mjs +16 -30
  49. package/dataMap/metaManager/metaSchema.js +58 -0
  50. package/dataMap/metaManager/metaSchema.mjs +58 -0
  51. package/dist/handsontable.css +30 -4
  52. package/dist/handsontable.full.css +30 -4
  53. package/dist/handsontable.full.js +6073 -4352
  54. package/dist/handsontable.full.min.css +3 -3
  55. package/dist/handsontable.full.min.js +206 -206
  56. package/dist/handsontable.js +5751 -4037
  57. package/dist/handsontable.min.css +3 -3
  58. package/dist/handsontable.min.js +41 -41
  59. package/dist/languages/all.min.js +1 -1
  60. package/dist/languages/ar-AR.min.js +1 -1
  61. package/dist/languages/cs-CZ.min.js +1 -1
  62. package/dist/languages/de-CH.min.js +1 -1
  63. package/dist/languages/de-DE.min.js +1 -1
  64. package/dist/languages/en-US.min.js +1 -1
  65. package/dist/languages/es-MX.min.js +1 -1
  66. package/dist/languages/fa-IR.min.js +1 -1
  67. package/dist/languages/fr-FR.min.js +1 -1
  68. package/dist/languages/hr-HR.min.js +1 -1
  69. package/dist/languages/it-IT.min.js +1 -1
  70. package/dist/languages/ja-JP.min.js +1 -1
  71. package/dist/languages/ko-KR.min.js +1 -1
  72. package/dist/languages/lv-LV.min.js +1 -1
  73. package/dist/languages/nb-NO.min.js +1 -1
  74. package/dist/languages/nl-NL.min.js +1 -1
  75. package/dist/languages/pl-PL.min.js +1 -1
  76. package/dist/languages/pt-BR.min.js +1 -1
  77. package/dist/languages/ru-RU.min.js +1 -1
  78. package/dist/languages/sr-SP.min.js +1 -1
  79. package/dist/languages/zh-CN.min.js +1 -1
  80. package/dist/languages/zh-TW.min.js +1 -1
  81. package/editorManager.js +5 -1
  82. package/editorManager.mjs +5 -1
  83. package/editors/autocompleteEditor/autocompleteEditor.d.ts +0 -12
  84. package/editors/autocompleteEditor/autocompleteEditor.js +42 -69
  85. package/editors/autocompleteEditor/autocompleteEditor.mjs +43 -70
  86. package/editors/baseEditor/baseEditor.js +1 -1
  87. package/editors/baseEditor/baseEditor.mjs +1 -1
  88. package/editors/dateEditor/dateEditor.js +2 -8
  89. package/editors/dateEditor/dateEditor.mjs +3 -9
  90. package/editors/handsontableEditor/handsontableEditor.d.ts +8 -0
  91. package/editors/handsontableEditor/handsontableEditor.js +173 -17
  92. package/editors/handsontableEditor/handsontableEditor.mjs +173 -17
  93. package/editors/passwordEditor/passwordEditor.js +2 -0
  94. package/editors/passwordEditor/passwordEditor.mjs +2 -0
  95. package/editors/registry.js +2 -3
  96. package/editors/registry.mjs +1 -1
  97. package/editors/textEditor/textEditor.js +2 -0
  98. package/editors/textEditor/textEditor.mjs +2 -0
  99. package/helpers/a11y.js +2 -0
  100. package/helpers/a11y.mjs +1 -0
  101. package/helpers/dom/element.d.ts +1 -0
  102. package/helpers/dom/element.js +26 -1
  103. package/helpers/dom/element.mjs +25 -1
  104. package/helpers/mixed.js +4 -4
  105. package/helpers/mixed.mjs +4 -4
  106. package/i18n/languages/ar-AR.js +1 -2
  107. package/i18n/languages/cs-CZ.js +1 -2
  108. package/i18n/languages/de-CH.js +1 -2
  109. package/i18n/languages/de-DE.js +1 -2
  110. package/i18n/languages/en-US.js +1 -2
  111. package/i18n/languages/es-MX.js +1 -2
  112. package/i18n/languages/fa-IR.js +1 -2
  113. package/i18n/languages/fr-FR.js +1 -2
  114. package/i18n/languages/hr-HR.js +1 -2
  115. package/i18n/languages/it-IT.js +1 -2
  116. package/i18n/languages/ja-JP.js +1 -2
  117. package/i18n/languages/ko-KR.js +1 -2
  118. package/i18n/languages/lv-LV.js +1 -2
  119. package/i18n/languages/nb-NO.js +1 -2
  120. package/i18n/languages/nl-NL.js +1 -2
  121. package/i18n/languages/pl-PL.js +1 -2
  122. package/i18n/languages/pt-BR.js +1 -2
  123. package/i18n/languages/ru-RU.js +1 -2
  124. package/i18n/languages/sr-SP.js +1 -2
  125. package/i18n/languages/zh-CN.js +1 -2
  126. package/i18n/languages/zh-TW.js +1 -2
  127. package/i18n/phraseFormatters/index.js +2 -2
  128. package/i18n/phraseFormatters/index.mjs +1 -1
  129. package/i18n/registry.js +3 -4
  130. package/i18n/registry.mjs +1 -1
  131. package/index.js +1 -2
  132. package/package.json +10 -4
  133. package/plugins/autoColumnSize/autoColumnSize.js +47 -0
  134. package/plugins/autoColumnSize/autoColumnSize.mjs +47 -0
  135. package/plugins/autoRowSize/autoRowSize.js +45 -0
  136. package/plugins/autoRowSize/autoRowSize.mjs +45 -0
  137. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +13 -0
  138. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +13 -0
  139. package/plugins/collapsibleColumns/collapsibleColumns.js +31 -0
  140. package/plugins/collapsibleColumns/collapsibleColumns.mjs +31 -0
  141. package/plugins/columnSorting/sortService/registry.js +3 -4
  142. package/plugins/columnSorting/sortService/registry.mjs +1 -1
  143. package/plugins/columnSummary/columnSummary.js +33 -0
  144. package/plugins/columnSummary/columnSummary.mjs +33 -0
  145. package/plugins/comments/commentEditor.js +8 -2
  146. package/plugins/comments/commentEditor.mjs +8 -2
  147. package/plugins/comments/comments.js +59 -15
  148. package/plugins/comments/comments.mjs +60 -16
  149. package/plugins/comments/contextMenuItem/addEditComment.js +1 -2
  150. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -2
  151. package/plugins/comments/contextMenuItem/removeComment.js +1 -2
  152. package/plugins/contextMenu/contextMenu.js +1 -1
  153. package/plugins/contextMenu/contextMenu.mjs +1 -1
  154. package/plugins/contextMenu/menu/menu.js +12 -6
  155. package/plugins/contextMenu/menu/menu.mjs +13 -7
  156. package/plugins/contextMenu/predefinedItems/alignment.js +1 -2
  157. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -2
  158. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -2
  159. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -2
  160. package/plugins/contextMenu/predefinedItems/index.js +1 -2
  161. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -2
  162. package/plugins/contextMenu/predefinedItems/redo.js +1 -2
  163. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -2
  164. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -2
  165. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -2
  166. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -2
  167. package/plugins/contextMenu/predefinedItems/undo.js +1 -2
  168. package/plugins/copyPaste/contextMenuItem/cut.js +1 -2
  169. package/plugins/customBorders/contextMenuItem/bottom.js +1 -2
  170. package/plugins/customBorders/contextMenuItem/left.js +1 -2
  171. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -2
  172. package/plugins/customBorders/contextMenuItem/right.js +1 -2
  173. package/plugins/customBorders/contextMenuItem/top.js +1 -2
  174. package/plugins/customBorders/customBorders.js +1 -2
  175. package/plugins/dropdownMenu/dropdownMenu.js +16 -1
  176. package/plugins/dropdownMenu/dropdownMenu.mjs +16 -1
  177. package/plugins/exportFile/exportFile.js +59 -2
  178. package/plugins/exportFile/exportFile.mjs +58 -0
  179. package/plugins/filters/component/actionBar.js +1 -2
  180. package/plugins/filters/component/condition.js +1 -2
  181. package/plugins/filters/component/value.js +1 -2
  182. package/plugins/filters/condition/beginsWith.js +1 -2
  183. package/plugins/filters/condition/between.js +1 -2
  184. package/plugins/filters/condition/contains.js +1 -2
  185. package/plugins/filters/condition/date/after.js +1 -2
  186. package/plugins/filters/condition/date/before.js +1 -2
  187. package/plugins/filters/condition/date/today.js +1 -2
  188. package/plugins/filters/condition/date/tomorrow.js +1 -2
  189. package/plugins/filters/condition/date/yesterday.js +1 -2
  190. package/plugins/filters/condition/empty.js +1 -2
  191. package/plugins/filters/condition/endsWith.js +1 -2
  192. package/plugins/filters/condition/equal.js +1 -2
  193. package/plugins/filters/condition/greaterThan.js +1 -2
  194. package/plugins/filters/condition/greaterThanOrEqual.js +1 -2
  195. package/plugins/filters/condition/lessThan.js +1 -2
  196. package/plugins/filters/condition/lessThanOrEqual.js +1 -2
  197. package/plugins/filters/condition/none.js +1 -2
  198. package/plugins/filters/condition/notBetween.js +1 -2
  199. package/plugins/filters/condition/notContains.js +1 -2
  200. package/plugins/filters/condition/notEmpty.js +1 -2
  201. package/plugins/filters/condition/notEqual.js +1 -2
  202. package/plugins/filters/filters.js +76 -3
  203. package/plugins/filters/filters.mjs +75 -1
  204. package/plugins/filters/logicalOperations/conjunction.js +1 -2
  205. package/plugins/filters/logicalOperations/disjunction.js +1 -2
  206. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -2
  207. package/plugins/filters/ui/_base.js +1 -2
  208. package/plugins/filters/ui/multipleSelect.js +1 -7
  209. package/plugins/filters/ui/multipleSelect.mjs +0 -5
  210. package/plugins/filters/ui/select.js +1 -2
  211. package/plugins/formulas/engine/register.js +3 -4
  212. package/plugins/formulas/engine/register.mjs +1 -1
  213. package/plugins/formulas/formulas.js +40 -41
  214. package/plugins/formulas/formulas.mjs +39 -40
  215. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -2
  216. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -2
  217. package/plugins/hiddenColumns/hiddenColumns.js +64 -0
  218. package/plugins/hiddenColumns/hiddenColumns.mjs +64 -0
  219. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -2
  220. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -2
  221. package/plugins/hiddenRows/hiddenRows.js +64 -0
  222. package/plugins/hiddenRows/hiddenRows.mjs +64 -0
  223. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -2
  224. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -2
  225. package/plugins/manualRowMove/manualRowMove.js +1 -1
  226. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  227. package/plugins/manualRowResize/manualRowResize.js +1 -1
  228. package/plugins/manualRowResize/manualRowResize.mjs +1 -1
  229. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -2
  230. package/plugins/mergeCells/mergeCells.js +56 -38
  231. package/plugins/mergeCells/mergeCells.mjs +56 -38
  232. package/plugins/mergeCells/utils.js +3 -4
  233. package/plugins/mergeCells/utils.mjs +3 -4
  234. package/plugins/nestedHeaders/nestedHeaders.js +37 -12
  235. package/plugins/nestedHeaders/nestedHeaders.mjs +37 -12
  236. package/plugins/nestedRows/nestedRows.js +12 -12
  237. package/plugins/nestedRows/nestedRows.mjs +12 -12
  238. package/plugins/nestedRows/ui/contextMenu.js +1 -2
  239. package/plugins/nestedRows/ui/headers.js +2 -3
  240. package/plugins/nestedRows/ui/headers.mjs +2 -3
  241. package/plugins/persistentState/persistentState.js +1 -1
  242. package/plugins/persistentState/persistentState.mjs +1 -1
  243. package/plugins/stretchColumns/calculator.js +3 -2
  244. package/plugins/stretchColumns/calculator.mjs +3 -2
  245. package/plugins/stretchColumns/stretchColumns.js +13 -0
  246. package/plugins/stretchColumns/stretchColumns.mjs +13 -0
  247. package/plugins/trimRows/trimRows.js +61 -0
  248. package/plugins/trimRows/trimRows.mjs +61 -0
  249. package/renderers/baseRenderer/baseRenderer.js +4 -0
  250. package/renderers/baseRenderer/baseRenderer.mjs +4 -0
  251. package/renderers/registry.js +2 -3
  252. package/renderers/registry.mjs +1 -1
  253. package/selection/mouseEventHandler.js +48 -13
  254. package/selection/mouseEventHandler.mjs +47 -13
  255. package/selection/range.js +73 -6
  256. package/selection/range.mjs +73 -6
  257. package/selection/selection.js +46 -32
  258. package/selection/selection.mjs +45 -30
  259. package/settings.d.ts +1 -0
  260. package/styles/handsontable.css +131 -55
  261. package/styles/handsontable.min.css +3 -3
  262. package/styles/ht-theme-horizon.css +296 -181
  263. package/styles/ht-theme-horizon.min.css +3 -3
  264. package/styles/ht-theme-main.css +314 -205
  265. package/styles/ht-theme-main.min.css +3 -3
  266. package/tableView.js +9 -20
  267. package/tableView.mjs +9 -20
  268. package/translations/indexMapper.js +9 -5
  269. package/translations/indexMapper.mjs +9 -5
  270. package/utils/paginator.js +13 -0
  271. package/utils/paginator.mjs +13 -0
  272. package/utils/staticRegister.js +24 -2
  273. package/utils/staticRegister.mjs +23 -2
  274. package/{3rdparty/walkontable/src/utils → utils}/stylesHandler.js +16 -30
  275. package/{3rdparty/walkontable/src/utils → utils}/stylesHandler.mjs +16 -30
  276. package/validators/registry.js +2 -3
  277. package/validators/registry.mjs +1 -1
@@ -25,6 +25,6 @@
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: 15.3.0-next-175012b-20250429
29
- * Release date: 29/04/2025 (built at 29/04/2025 10:35:57)
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:#a3a3a3;--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-cell-mobile-handle-size:12px;--ht-cell-mobile-handle-border-width:1px;--ht-cell-mobile-handle-border-radius:6px;--ht-cell-mobile-handle-border-color:#1a42e8;--ht-cell-mobile-handle-background-color:rgba(26,66,232,.4);--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:#666;--ht-collapse-button-open-icon-active-color:#666;--ht-collapse-button-open-hover-border-color:#d1d1d5;--ht-collapse-button-open-hover-background-color:#f7f7f9;--ht-collapse-button-open-hover-icon-color:#666;--ht-collapse-button-open-hover-icon-active-color:#666;--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-cell-mobile-handle-border-color:#476af7;--ht-cell-mobile-handle-background-color:rgba(71,106,247,.4);--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:#999;--ht-collapse-button-open-icon-active-color:#999;--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:#999;--ht-collapse-button-open-hover-icon-active-color:#999;--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:#5576f8;--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-cell-mobile-handle-border-color:#476af7;--ht-cell-mobile-handle-background-color:rgba(71,106,247,.4);--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:#999;--ht-collapse-button-open-icon-active-color:#999;--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:#999;--ht-collapse-button-open-hover-icon-active-color:#999;--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:#5576f8;--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{appearance:none}[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)}
28
+ * Version: 16.0.0-next-f486b48-20250702
29
+ * Release date: 09/07/2025 (built at 02/07/2025 09:19:42)
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-letter-spacing:0;--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:#a3a3a3;--ht-read-only-color:#68696c;--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:hsla(0,0%,100%,0);--ht-row-cell-even-background-color:hsla(0,0%,100%,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:#0f0f10;--ht-cell-editor-background-color:#fff;--ht-cell-editor-shadow-blur-radius:0;--ht-cell-editor-shadow-color:#1a42e8;--ht-cell-success-background-color:rgba(55,188,108,.2);--ht-cell-error-background-color:rgba(250,77,50,.2);--ht-cell-read-only-background-color:rgba(34,34,34,.04);--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-cell-mobile-handle-size:12px;--ht-cell-mobile-handle-border-width:1px;--ht-cell-mobile-handle-border-radius:6px;--ht-cell-mobile-handle-border-color:#1a42e8;--ht-cell-mobile-handle-background-color:rgba(26,66,232,.4);--ht-resize-indicator-color:rgba(34,34,34,.4);--ht-move-backlight-color:rgba(34,34,34,.08);--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:#a3a3a3;--ht-header-font-weight:400;--ht-header-foreground-color:#222;--ht-header-background-color:#f7f7f9;--ht-header-highlighted-shadow-size:0;--ht-header-highlighted-foreground-color:#0f0f10;--ht-header-highlighted-background-color:#ebebed;--ht-header-active-border-color:#2e56fc;--ht-header-active-foreground-color:#fff;--ht-header-active-background-color:#1a42e8;--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:#0f0f10;--ht-header-row-highlighted-background-color:#ebebed;--ht-header-row-active-foreground-color:#fff;--ht-header-row-active-background-color:#1a42e8;--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:#2e56fc;--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-checkbox-indeterminate-border-color:#2e56fc;--ht-checkbox-indeterminate-background-color:#1a42e8;--ht-checkbox-indeterminate-icon-color:#fff;--ht-checkbox-indeterminate-focus-border-color:#fff;--ht-checkbox-indeterminate-focus-background-color:#1a42e8;--ht-checkbox-indeterminate-focus-icon-color:#fff;--ht-checkbox-indeterminate-disabled-border-color:#e7e7e9;--ht-checkbox-indeterminate-disabled-background-color:#d1d1d5;--ht-checkbox-indeterminate-disabled-icon-color:#aeaeae;--ht-radio-size:16px;--ht-radio-border-color:#d1d1d5;--ht-radio-background-color:#fff;--ht-radio-icon-color:hsla(0,0%,100%,0);--ht-radio-focus-border-color:#e7e7e9;--ht-radio-focus-background-color:#fff;--ht-radio-focus-icon-color:hsla(0,0%,100%,0);--ht-radio-focus-ring-color:#1a42e8;--ht-radio-disabled-border-color:#e7e7e9;--ht-radio-disabled-background-color:#d1d1d5;--ht-radio-disabled-icon-color:hsla(0,0%,100%,0);--ht-radio-checked-border-color:#1a42e8;--ht-radio-checked-background-color:#fff;--ht-radio-checked-icon-color:#1a42e8;--ht-radio-checked-focus-border-color:#2e56fc;--ht-radio-checked-focus-background-color:#fff;--ht-radio-checked-focus-icon-color:#2e56fc;--ht-radio-checked-disabled-border-color:#e7e7e9;--ht-radio-checked-disabled-background-color:#d1d1d5;--ht-radio-checked-disabled-icon-color:#a3a3a3;--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:#e7e7e9;--ht-icon-button-hover-background-color:#e7e7e9;--ht-icon-button-hover-icon-color:rgba(34,34,34,.4);--ht-icon-button-active-border-color:#1a42e8;--ht-icon-button-active-background-color:#1a42e8;--ht-icon-button-active-icon-color:#fff;--ht-icon-button-active-hover-border-color:#2e56fc;--ht-icon-button-active-hover-background-color:#2e56fc;--ht-icon-button-active-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:#68696c;--ht-collapse-button-open-icon-active-color:#68696c;--ht-collapse-button-open-hover-border-color:#d1d1d5;--ht-collapse-button-open-hover-background-color:#f7f7f9;--ht-collapse-button-open-hover-icon-color:#68696c;--ht-collapse-button-open-hover-icon-active-color:#68696c;--ht-collapse-button-close-border-color:#d1d1d5;--ht-collapse-button-close-background-color:#ebebed;--ht-collapse-button-close-icon-color:#68696c;--ht-collapse-button-close-icon-active-color:#68696c;--ht-collapse-button-close-hover-border-color:#d1d1d5;--ht-collapse-button-close-hover-background-color:#ebebed;--ht-collapse-button-close-hover-icon-color:#68696c;--ht-collapse-button-close-hover-icon-active-color:#68696c;--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:#ebebed;--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:#e7e7e9;--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-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-comments-indicator-size:6px;--ht-comments-indicator-color:#1a42e8;--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:#5371ee;--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:#d1d1d5;--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-border-color:#e7e7e9;--ht-menu-shadow-x:0;--ht-menu-shadow-y:8px;--ht-menu-shadow-blur:16px;--ht-menu-shadow-color:rgba(34,34,34,.08);--ht-menu-item-hover-color:rgba(34,34,34,.04);--ht-menu-item-active-color:rgba(34,34,34,.08)}.ht-theme-main-dark{--ht-border-color:#313132;--ht-accent-color:#476af7;--ht-foreground-color:#c7c7c7;--ht-background-color:#050506;--ht-placeholder-color:#68696c;--ht-read-only-color:#a3a3a3;--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:transparent;--ht-row-cell-even-background-color:transparent;--ht-cell-editor-border-color:#476af7;--ht-cell-editor-foreground-color:#fff;--ht-cell-editor-background-color:#050506;--ht-cell-editor-shadow-color:#476af7;--ht-cell-success-background-color:rgba(66,190,101,.3);--ht-cell-error-background-color:rgba(255,42,52,.3);--ht-cell-read-only-background-color:hsla(0,0%,78%,.12);--ht-cell-selection-border-color:#476af7;--ht-cell-selection-background-color:#2e56fc;--ht-cell-autofill-border-color:#050506;--ht-cell-autofill-background-color:#476af7;--ht-cell-autofill-fill-border-color:#c7c7c7;--ht-cell-mobile-handle-border-color:#476af7;--ht-cell-mobile-handle-background-color:rgba(71,106,247,.4);--ht-resize-indicator-color:hsla(0,0%,78%,.4);--ht-move-backlight-color:hsla(0,0%,78%,.16);--ht-move-indicator-color:#476af7;--ht-hidden-indicator-color:hsla(0,0%,78%,.4);--ht-scrollbar-track-color:#1e1e1f;--ht-scrollbar-thumb-color:#68696c;--ht-header-foreground-color:#c7c7c7;--ht-header-background-color:#1e1e1f;--ht-header-highlighted-foreground-color:#fff;--ht-header-highlighted-background-color:#282829;--ht-header-active-border-color:#5371ee;--ht-header-active-foreground-color:#050506;--ht-header-active-background-color:#476af7;--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:#fff;--ht-header-row-highlighted-background-color:#282829;--ht-header-row-active-foreground-color:#050506;--ht-header-row-active-background-color:#476af7;--ht-checkbox-border-color:#404144;--ht-checkbox-background-color:#050506;--ht-checkbox-icon-color:transparent;--ht-checkbox-focus-border-color:#404144;--ht-checkbox-focus-background-color:#050506;--ht-checkbox-focus-icon-color:transparent;--ht-checkbox-focus-ring-color:#476af7;--ht-checkbox-disabled-border-color:#313132;--ht-checkbox-disabled-background-color:#404144;--ht-checkbox-disabled-icon-color:transparent;--ht-checkbox-checked-border-color:#5371ee;--ht-checkbox-checked-background-color:#476af7;--ht-checkbox-checked-icon-color:#050506;--ht-checkbox-checked-focus-border-color:#050506;--ht-checkbox-checked-focus-background-color:#476af7;--ht-checkbox-checked-focus-icon-color:#050506;--ht-checkbox-checked-disabled-border-color:#313132;--ht-checkbox-checked-disabled-background-color:#404144;--ht-checkbox-checked-disabled-icon-color:#68696c;--ht-checkbox-indeterminate-border-color:#5371ee;--ht-checkbox-indeterminate-background-color:#476af7;--ht-checkbox-indeterminate-icon-color:#050506;--ht-checkbox-indeterminate-focus-border-color:#050506;--ht-checkbox-indeterminate-focus-background-color:#476af7;--ht-checkbox-indeterminate-focus-icon-color:#050506;--ht-checkbox-indeterminate-disabled-border-color:#313132;--ht-checkbox-indeterminate-disabled-background-color:#404144;--ht-checkbox-indeterminate-disabled-icon-color:#727272;--ht-radio-border-color:#404144;--ht-radio-background-color:#050506;--ht-radio-icon-color:transparent;--ht-radio-focus-border-color:#313132;--ht-radio-focus-background-color:#050506;--ht-radio-focus-icon-color:transparent;--ht-radio-focus-ring-color:#476af7;--ht-radio-disabled-border-color:#313132;--ht-radio-disabled-background-color:#404144;--ht-radio-disabled-icon-color:transparent;--ht-radio-checked-border-color:#476af7;--ht-radio-checked-background-color:#050506;--ht-radio-checked-icon-color:#476af7;--ht-radio-checked-focus-border-color:#5371ee;--ht-radio-checked-focus-background-color:#050506;--ht-radio-checked-focus-icon-color:#5371ee;--ht-radio-checked-disabled-border-color:#313132;--ht-radio-checked-disabled-background-color:#404144;--ht-radio-checked-disabled-icon-color:#68696c;--ht-icon-button-border-color:#1e1e1f;--ht-icon-button-background-color:#1e1e1f;--ht-icon-button-icon-color:hsla(0,0%,78%,.4);--ht-icon-button-hover-border-color:#313132;--ht-icon-button-hover-background-color:#313132;--ht-icon-button-hover-icon-color:hsla(0,0%,78%,.4);--ht-icon-button-active-border-color:#476af7;--ht-icon-button-active-background-color:#476af7;--ht-icon-button-active-icon-color:#050506;--ht-icon-button-active-hover-border-color:#5371ee;--ht-icon-button-active-hover-background-color:#5371ee;--ht-icon-button-active-hover-icon-color:#050506;--ht-collapse-button-open-border-color:#404144;--ht-collapse-button-open-background-color:#050506;--ht-collapse-button-open-icon-color:#a3a3a3;--ht-collapse-button-open-icon-active-color:#a3a3a3;--ht-collapse-button-open-hover-border-color:#404144;--ht-collapse-button-open-hover-background-color:#1e1e1f;--ht-collapse-button-open-hover-icon-color:#a3a3a3;--ht-collapse-button-open-hover-icon-active-color:#a3a3a3;--ht-collapse-button-close-border-color:#404144;--ht-collapse-button-close-background-color:#282829;--ht-collapse-button-close-icon-color:#a3a3a3;--ht-collapse-button-close-icon-active-color:#a3a3a3;--ht-collapse-button-close-hover-border-color:#404144;--ht-collapse-button-close-hover-background-color:#282829;--ht-collapse-button-close-hover-icon-color:#a3a3a3;--ht-collapse-button-close-hover-icon-active-color:#a3a3a3;--ht-primary-button-border-color:transparent;--ht-primary-button-foreground-color:#050506;--ht-primary-button-background-color:#476af7;--ht-primary-button-disabled-border-color:transparent;--ht-primary-button-disabled-foreground-color:#68696c;--ht-primary-button-disabled-background-color:#282829;--ht-primary-button-hover-border-color:transparent;--ht-primary-button-hover-foreground-color:#050506;--ht-primary-button-hover-background-color:#6180ff;--ht-primary-button-focus-border-color:#050506;--ht-primary-button-focus-foreground-color:#050506;--ht-primary-button-focus-background-color:#476af7;--ht-secondary-button-border-color:#313132;--ht-secondary-button-foreground-color:#c7c7c7;--ht-secondary-button-background-color:#050506;--ht-secondary-button-disabled-border-color:#313132;--ht-secondary-button-disabled-foreground-color:#68696c;--ht-secondary-button-disabled-background-color:#282829;--ht-secondary-button-hover-border-color:#313132;--ht-secondary-button-hover-foreground-color:#c7c7c7;--ht-secondary-button-hover-background-color:#313132;--ht-secondary-button-focus-border-color:#313132;--ht-secondary-button-focus-foreground-color:#c7c7c7;--ht-secondary-button-focus-background-color:#050506;--ht-comments-textarea-border-color:transparent;--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:#050506;--ht-comments-indicator-color:#476af7;--ht-license-foreground-color:#c7c7c7;--ht-license-background-color:#1e1e1f;--ht-link-color:#5371ee;--ht-link-hover-color:#6180ff;--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:#050506;--ht-input-disabled-border-color:#313132;--ht-input-disabled-foreground-color:#68696c;--ht-input-disabled-background-color:#404144;--ht-input-focus-border-color:#476af7;--ht-input-focus-foreground-color:#c7c7c7;--ht-input-focus-background-color:#050506;--ht-menu-border-color:#313132;--ht-menu-shadow-color:rgba(0,0,0,.8);--ht-menu-item-hover-color:hsla(0,0%,78%,.12);--ht-menu-item-active-color:hsla(0,0%,78%,.16)}@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:#050506;--ht-placeholder-color:#68696c;--ht-read-only-color:#a3a3a3;--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:transparent;--ht-row-cell-even-background-color:transparent;--ht-cell-editor-border-color:#476af7;--ht-cell-editor-foreground-color:#fff;--ht-cell-editor-background-color:#050506;--ht-cell-editor-shadow-color:#476af7;--ht-cell-success-background-color:rgba(66,190,101,.3);--ht-cell-error-background-color:rgba(255,42,52,.3);--ht-cell-read-only-background-color:hsla(0,0%,78%,.12);--ht-cell-selection-border-color:#476af7;--ht-cell-selection-background-color:#2e56fc;--ht-cell-autofill-border-color:#050506;--ht-cell-autofill-background-color:#476af7;--ht-cell-autofill-fill-border-color:#c7c7c7;--ht-cell-mobile-handle-border-color:#476af7;--ht-cell-mobile-handle-background-color:rgba(71,106,247,.4);--ht-resize-indicator-color:hsla(0,0%,78%,.4);--ht-move-backlight-color:hsla(0,0%,78%,.16);--ht-move-indicator-color:#476af7;--ht-hidden-indicator-color:hsla(0,0%,78%,.4);--ht-scrollbar-track-color:#1e1e1f;--ht-scrollbar-thumb-color:#68696c;--ht-header-foreground-color:#c7c7c7;--ht-header-background-color:#1e1e1f;--ht-header-highlighted-foreground-color:#fff;--ht-header-highlighted-background-color:#282829;--ht-header-active-border-color:#5371ee;--ht-header-active-foreground-color:#050506;--ht-header-active-background-color:#476af7;--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:#fff;--ht-header-row-highlighted-background-color:#282829;--ht-header-row-active-foreground-color:#050506;--ht-header-row-active-background-color:#476af7;--ht-checkbox-border-color:#404144;--ht-checkbox-background-color:#050506;--ht-checkbox-icon-color:transparent;--ht-checkbox-focus-border-color:#404144;--ht-checkbox-focus-background-color:#050506;--ht-checkbox-focus-icon-color:transparent;--ht-checkbox-focus-ring-color:#476af7;--ht-checkbox-disabled-border-color:#313132;--ht-checkbox-disabled-background-color:#404144;--ht-checkbox-disabled-icon-color:transparent;--ht-checkbox-checked-border-color:#5371ee;--ht-checkbox-checked-background-color:#476af7;--ht-checkbox-checked-icon-color:#050506;--ht-checkbox-checked-focus-border-color:#050506;--ht-checkbox-checked-focus-background-color:#476af7;--ht-checkbox-checked-focus-icon-color:#050506;--ht-checkbox-checked-disabled-border-color:#313132;--ht-checkbox-checked-disabled-background-color:#404144;--ht-checkbox-checked-disabled-icon-color:#68696c;--ht-checkbox-indeterminate-border-color:#5371ee;--ht-checkbox-indeterminate-background-color:#476af7;--ht-checkbox-indeterminate-icon-color:#050506;--ht-checkbox-indeterminate-focus-border-color:#050506;--ht-checkbox-indeterminate-focus-background-color:#476af7;--ht-checkbox-indeterminate-focus-icon-color:#050506;--ht-checkbox-indeterminate-disabled-border-color:#313132;--ht-checkbox-indeterminate-disabled-background-color:#404144;--ht-checkbox-indeterminate-disabled-icon-color:#727272;--ht-radio-border-color:#404144;--ht-radio-background-color:#050506;--ht-radio-icon-color:transparent;--ht-radio-focus-border-color:#313132;--ht-radio-focus-background-color:#050506;--ht-radio-focus-icon-color:transparent;--ht-radio-focus-ring-color:#476af7;--ht-radio-disabled-border-color:#313132;--ht-radio-disabled-background-color:#404144;--ht-radio-disabled-icon-color:transparent;--ht-radio-checked-border-color:#476af7;--ht-radio-checked-background-color:#050506;--ht-radio-checked-icon-color:#476af7;--ht-radio-checked-focus-border-color:#5371ee;--ht-radio-checked-focus-background-color:#050506;--ht-radio-checked-focus-icon-color:#5371ee;--ht-radio-checked-disabled-border-color:#313132;--ht-radio-checked-disabled-background-color:#404144;--ht-radio-checked-disabled-icon-color:#68696c;--ht-icon-button-border-color:#1e1e1f;--ht-icon-button-background-color:#1e1e1f;--ht-icon-button-icon-color:hsla(0,0%,78%,.4);--ht-icon-button-hover-border-color:#313132;--ht-icon-button-hover-background-color:#313132;--ht-icon-button-hover-icon-color:hsla(0,0%,78%,.4);--ht-icon-button-active-border-color:#476af7;--ht-icon-button-active-background-color:#476af7;--ht-icon-button-active-icon-color:#050506;--ht-icon-button-active-hover-border-color:#5371ee;--ht-icon-button-active-hover-background-color:#5371ee;--ht-icon-button-active-hover-icon-color:#050506;--ht-collapse-button-open-border-color:#404144;--ht-collapse-button-open-background-color:#050506;--ht-collapse-button-open-icon-color:#a3a3a3;--ht-collapse-button-open-icon-active-color:#a3a3a3;--ht-collapse-button-open-hover-border-color:#404144;--ht-collapse-button-open-hover-background-color:#1e1e1f;--ht-collapse-button-open-hover-icon-color:#a3a3a3;--ht-collapse-button-open-hover-icon-active-color:#a3a3a3;--ht-collapse-button-close-border-color:#404144;--ht-collapse-button-close-background-color:#282829;--ht-collapse-button-close-icon-color:#a3a3a3;--ht-collapse-button-close-icon-active-color:#a3a3a3;--ht-collapse-button-close-hover-border-color:#404144;--ht-collapse-button-close-hover-background-color:#282829;--ht-collapse-button-close-hover-icon-color:#a3a3a3;--ht-collapse-button-close-hover-icon-active-color:#a3a3a3;--ht-primary-button-border-color:transparent;--ht-primary-button-foreground-color:#050506;--ht-primary-button-background-color:#476af7;--ht-primary-button-disabled-border-color:transparent;--ht-primary-button-disabled-foreground-color:#68696c;--ht-primary-button-disabled-background-color:#282829;--ht-primary-button-hover-border-color:transparent;--ht-primary-button-hover-foreground-color:#050506;--ht-primary-button-hover-background-color:#6180ff;--ht-primary-button-focus-border-color:#050506;--ht-primary-button-focus-foreground-color:#050506;--ht-primary-button-focus-background-color:#476af7;--ht-secondary-button-border-color:#313132;--ht-secondary-button-foreground-color:#c7c7c7;--ht-secondary-button-background-color:#050506;--ht-secondary-button-disabled-border-color:#313132;--ht-secondary-button-disabled-foreground-color:#68696c;--ht-secondary-button-disabled-background-color:#282829;--ht-secondary-button-hover-border-color:#313132;--ht-secondary-button-hover-foreground-color:#c7c7c7;--ht-secondary-button-hover-background-color:#313132;--ht-secondary-button-focus-border-color:#313132;--ht-secondary-button-focus-foreground-color:#c7c7c7;--ht-secondary-button-focus-background-color:#050506;--ht-comments-textarea-border-color:transparent;--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:#050506;--ht-comments-indicator-color:#476af7;--ht-license-foreground-color:#c7c7c7;--ht-license-background-color:#1e1e1f;--ht-link-color:#5371ee;--ht-link-hover-color:#6180ff;--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:#050506;--ht-input-disabled-border-color:#313132;--ht-input-disabled-foreground-color:#68696c;--ht-input-disabled-background-color:#404144;--ht-input-focus-border-color:#476af7;--ht-input-focus-foreground-color:#c7c7c7;--ht-input-focus-background-color:#050506;--ht-menu-border-color:#313132;--ht-menu-shadow-color:rgba(0,0,0,.8);--ht-menu-item-hover-color:hsla(0,0%,78%,.12);--ht-menu-item-active-color:hsla(0,0%,78%,.16)}}[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,[class*=ht-theme-main] .pika-single .pika-next{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{appearance:none}[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
@@ -9,6 +9,7 @@ var _event = require("./helpers/dom/event");
9
9
  var _src = _interopRequireDefault(require("./3rdparty/walkontable/src"));
10
10
  var _mouseEventHandler = require("./selection/mouseEventHandler");
11
11
  var _rootInstance = require("./utils/rootInstance");
12
+ var _staticRegister = require("./utils/staticRegister");
12
13
  var _a11y = require("./helpers/a11y");
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
@@ -600,26 +601,6 @@ class TableView {
600
601
  return count;
601
602
  }
602
603
 
603
- /**
604
- * Retrieves the styles handler from the Walkontable instance.
605
- *
606
- * @returns {StylesHandler} The styles handler instance.
607
- */
608
- getStylesHandler() {
609
- return this._wt.stylesHandler;
610
- }
611
-
612
- /**
613
- * Returns the default row height.
614
- *
615
- * This method retrieves the default row height from the Walkontable styles handler.
616
- *
617
- * @returns {number} The default row height.
618
- */
619
- getDefaultRowHeight() {
620
- return this._wt.stylesHandler.getDefaultRowHeight();
621
- }
622
-
623
604
  /**
624
605
  * Add a class name to the license information element.
625
606
  *
@@ -875,6 +856,11 @@ class TableView {
875
856
  if ((0, _event.isImmediatePropagationStopped)(event) || this.hot.isDestroyed) {
876
857
  return;
877
858
  }
859
+ (0, _mouseEventHandler.handleMouseEvent)(event, {
860
+ coords: visualCoords,
861
+ selection: this.hot.selection,
862
+ cellRangeMapper: (0, _staticRegister.resolveWithInstance)(this.hot, 'cellRangeMapper')
863
+ });
878
864
  this.hot.runHooks('afterOnCellMouseUp', event, visualCoords, TD);
879
865
  this.activeWt = this._wt;
880
866
  },
@@ -1051,6 +1037,9 @@ class TableView {
1051
1037
  columnHeaderHeight: () => {
1052
1038
  const columnHeaderHeight = this.hot.runHooks('modifyColumnHeaderHeight');
1053
1039
  return this.settings.columnHeaderHeight || columnHeaderHeight;
1040
+ },
1041
+ stylesHandler: () => {
1042
+ return this.hot.stylesHandler;
1054
1043
  }
1055
1044
  };
1056
1045
  this.hot.runHooks('beforeInitWalkontable', walkontableConfig);
package/tableView.mjs CHANGED
@@ -15,6 +15,7 @@ import { isImmediatePropagationStopped, isRightClick, isLeftClick } from "./help
15
15
  import Walkontable from "./3rdparty/walkontable/src/index.mjs";
16
16
  import { handleMouseEvent } from "./selection/mouseEventHandler.mjs";
17
17
  import { isRootInstance } from "./utils/rootInstance.mjs";
18
+ import { resolveWithInstance } from "./utils/staticRegister.mjs";
18
19
  import { A11Y_COLCOUNT, A11Y_MULTISELECTABLE, A11Y_PRESENTATION, A11Y_ROWCOUNT, A11Y_TREEGRID } from "./helpers/a11y.mjs";
19
20
  /**
20
21
  * @class TableView
@@ -596,26 +597,6 @@ class TableView {
596
597
  return count;
597
598
  }
598
599
 
599
- /**
600
- * Retrieves the styles handler from the Walkontable instance.
601
- *
602
- * @returns {StylesHandler} The styles handler instance.
603
- */
604
- getStylesHandler() {
605
- return this._wt.stylesHandler;
606
- }
607
-
608
- /**
609
- * Returns the default row height.
610
- *
611
- * This method retrieves the default row height from the Walkontable styles handler.
612
- *
613
- * @returns {number} The default row height.
614
- */
615
- getDefaultRowHeight() {
616
- return this._wt.stylesHandler.getDefaultRowHeight();
617
- }
618
-
619
600
  /**
620
601
  * Add a class name to the license information element.
621
602
  *
@@ -871,6 +852,11 @@ class TableView {
871
852
  if (isImmediatePropagationStopped(event) || this.hot.isDestroyed) {
872
853
  return;
873
854
  }
855
+ handleMouseEvent(event, {
856
+ coords: visualCoords,
857
+ selection: this.hot.selection,
858
+ cellRangeMapper: resolveWithInstance(this.hot, 'cellRangeMapper')
859
+ });
874
860
  this.hot.runHooks('afterOnCellMouseUp', event, visualCoords, TD);
875
861
  this.activeWt = this._wt;
876
862
  },
@@ -1047,6 +1033,9 @@ class TableView {
1047
1033
  columnHeaderHeight: () => {
1048
1034
  const columnHeaderHeight = this.hot.runHooks('modifyColumnHeaderHeight');
1049
1035
  return this.settings.columnHeaderHeight || columnHeaderHeight;
1036
+ },
1037
+ stylesHandler: () => {
1038
+ return this.hot.stylesHandler;
1050
1039
  }
1051
1040
  };
1052
1041
  this.hot.runHooks('beforeInitWalkontable', walkontableConfig);
@@ -11,6 +11,7 @@ require("core-js/modules/es.set.symmetric-difference.v2.js");
11
11
  require("core-js/modules/es.set.union.v2.js");
12
12
  require("core-js/modules/esnext.iterator.constructor.js");
13
13
  require("core-js/modules/esnext.iterator.filter.js");
14
+ require("core-js/modules/esnext.iterator.map.js");
14
15
  require("core-js/modules/esnext.iterator.some.js");
15
16
  var _array = require("../helpers/array");
16
17
  var _maps = require("./maps");
@@ -620,19 +621,22 @@ class IndexMapper {
620
621
  * @private
621
622
  * @param {number} firstInsertedVisualIndex First inserted visual index.
622
623
  * @param {number} amountOfIndexes Amount of inserted indexes.
624
+ * @param {'start' | 'end'} [mode] Sets where the column is inserted: at the start of the passed index or at the end.
623
625
  */
624
626
  insertIndexes(firstInsertedVisualIndex, amountOfIndexes) {
627
+ let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'start';
625
628
  const nthVisibleIndex = this.getNotTrimmedIndexes()[firstInsertedVisualIndex];
626
629
  const firstInsertedPhysicalIndex = (0, _mixed.isDefined)(nthVisibleIndex) ? nthVisibleIndex : this.getNumberOfIndexes();
627
- const insertionIndex = this.getIndexesSequence().includes(nthVisibleIndex) ? this.getIndexesSequence().indexOf(nthVisibleIndex) : this.getNumberOfIndexes();
630
+ const visualInsertionIndex = this.getIndexesSequence().includes(nthVisibleIndex) ? this.getIndexesSequence().indexOf(nthVisibleIndex) : this.getNumberOfIndexes();
628
631
  const insertedIndexes = (0, _array.arrayMap)(new Array(amountOfIndexes).fill(firstInsertedPhysicalIndex), (nextIndex, stepsFromStart) => nextIndex + stepsFromStart);
629
632
  this.suspendOperations();
630
633
  this.indexesChangeSource = 'insert';
631
- this.indexesSequence.insert(insertionIndex, insertedIndexes);
634
+ this.indexesSequence.insert(visualInsertionIndex, insertedIndexes);
632
635
  this.indexesChangeSource = undefined;
633
- this.trimmingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
634
- this.hidingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
635
- this.variousMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
636
+ const modInsertedIndexes = mode === 'end' ? insertedIndexes.map(index => index + 1) : insertedIndexes;
637
+ this.trimmingMapsCollection.insertToEvery(visualInsertionIndex, modInsertedIndexes);
638
+ this.hidingMapsCollection.insertToEvery(visualInsertionIndex, modInsertedIndexes);
639
+ this.variousMapsCollection.insertToEvery(visualInsertionIndex, modInsertedIndexes);
636
640
  this.resumeOperations();
637
641
  }
638
642
 
@@ -11,6 +11,7 @@ import "core-js/modules/es.set.symmetric-difference.v2.js";
11
11
  import "core-js/modules/es.set.union.v2.js";
12
12
  import "core-js/modules/esnext.iterator.constructor.js";
13
13
  import "core-js/modules/esnext.iterator.filter.js";
14
+ import "core-js/modules/esnext.iterator.map.js";
14
15
  import "core-js/modules/esnext.iterator.some.js";
15
16
  import { arrayMap } from "../helpers/array.mjs";
16
17
  import { createIndexMap, getListWithInsertedItems, getListWithRemovedItems, HidingMap, IndexesSequence, TrimmingMap } from "./maps/index.mjs";
@@ -616,19 +617,22 @@ export class IndexMapper {
616
617
  * @private
617
618
  * @param {number} firstInsertedVisualIndex First inserted visual index.
618
619
  * @param {number} amountOfIndexes Amount of inserted indexes.
620
+ * @param {'start' | 'end'} [mode] Sets where the column is inserted: at the start of the passed index or at the end.
619
621
  */
620
622
  insertIndexes(firstInsertedVisualIndex, amountOfIndexes) {
623
+ let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'start';
621
624
  const nthVisibleIndex = this.getNotTrimmedIndexes()[firstInsertedVisualIndex];
622
625
  const firstInsertedPhysicalIndex = isDefined(nthVisibleIndex) ? nthVisibleIndex : this.getNumberOfIndexes();
623
- const insertionIndex = this.getIndexesSequence().includes(nthVisibleIndex) ? this.getIndexesSequence().indexOf(nthVisibleIndex) : this.getNumberOfIndexes();
626
+ const visualInsertionIndex = this.getIndexesSequence().includes(nthVisibleIndex) ? this.getIndexesSequence().indexOf(nthVisibleIndex) : this.getNumberOfIndexes();
624
627
  const insertedIndexes = arrayMap(new Array(amountOfIndexes).fill(firstInsertedPhysicalIndex), (nextIndex, stepsFromStart) => nextIndex + stepsFromStart);
625
628
  this.suspendOperations();
626
629
  this.indexesChangeSource = 'insert';
627
- this.indexesSequence.insert(insertionIndex, insertedIndexes);
630
+ this.indexesSequence.insert(visualInsertionIndex, insertedIndexes);
628
631
  this.indexesChangeSource = undefined;
629
- this.trimmingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
630
- this.hidingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
631
- this.variousMapsCollection.insertToEvery(insertionIndex, insertedIndexes);
632
+ const modInsertedIndexes = mode === 'end' ? insertedIndexes.map(index => index + 1) : insertedIndexes;
633
+ this.trimmingMapsCollection.insertToEvery(visualInsertionIndex, modInsertedIndexes);
634
+ this.hidingMapsCollection.insertToEvery(visualInsertionIndex, modInsertedIndexes);
635
+ this.variousMapsCollection.insertToEvery(visualInsertionIndex, modInsertedIndexes);
632
636
  this.resumeOperations();
633
637
  }
634
638
 
@@ -79,6 +79,18 @@ function createPaginator(_ref) {
79
79
  }
80
80
  }
81
81
 
82
+ /**
83
+ * Sets the internal page index as current one without calling the `onItemSelect` callback,
84
+ * without changing the page visually.
85
+ *
86
+ * @param {number} index The index to set as current.
87
+ */
88
+ function setPageCursorAt(index) {
89
+ if (index > -1 && index < getSize()) {
90
+ currentIndex = index;
91
+ }
92
+ }
93
+
82
94
  /**
83
95
  * Gets the current page.
84
96
  *
@@ -147,6 +159,7 @@ function createPaginator(_ref) {
147
159
  }
148
160
  return {
149
161
  setCurrentPage,
162
+ setPageCursorAt,
150
163
  getCurrentPage,
151
164
  toFirstItem,
152
165
  toLastItem,
@@ -75,6 +75,18 @@ export function createPaginator(_ref) {
75
75
  }
76
76
  }
77
77
 
78
+ /**
79
+ * Sets the internal page index as current one without calling the `onItemSelect` callback,
80
+ * without changing the page visually.
81
+ *
82
+ * @param {number} index The index to set as current.
83
+ */
84
+ function setPageCursorAt(index) {
85
+ if (index > -1 && index < getSize()) {
86
+ currentIndex = index;
87
+ }
88
+ }
89
+
78
90
  /**
79
91
  * Gets the current page.
80
92
  *
@@ -143,6 +155,7 @@ export function createPaginator(_ref) {
143
155
  }
144
156
  return {
145
157
  setCurrentPage,
158
+ setPageCursorAt,
146
159
  getCurrentPage,
147
160
  toFirstItem,
148
161
  toLastItem,
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.default = staticRegister;
4
+ exports.resolveWithInstance = resolveWithInstance;
5
+ exports.staticRegister = staticRegister;
5
6
  const collection = exports.collection = new Map();
6
7
 
7
8
  /**
@@ -62,11 +63,32 @@ function staticRegister() {
62
63
  function getValues() {
63
64
  return [...subCollection.values()];
64
65
  }
66
+
67
+ /**
68
+ * Clear the collection.
69
+ */
70
+ function clear() {
71
+ collection.delete(namespace);
72
+ subCollection.clear();
73
+ }
65
74
  return {
66
75
  register,
67
76
  getItem,
68
77
  hasItem,
69
78
  getNames,
70
- getValues
79
+ getValues,
80
+ clear
71
81
  };
82
+ }
83
+
84
+ /**
85
+ * Resolves item from the collection that is strictly connected with the Handsontable instance.
86
+ *
87
+ * @param {Core} hotInstance The Handsontable instance.
88
+ * @param {string} name The name of the item to retrieve.
89
+ * @returns {*}
90
+ */
91
+ function resolveWithInstance(hotInstance, name) {
92
+ var _collection$get;
93
+ return collection === null || collection === void 0 || (_collection$get = collection.get(hotInstance.guid)) === null || _collection$get === void 0 ? void 0 : _collection$get.get(name);
72
94
  }
@@ -4,7 +4,7 @@ export const collection = new Map();
4
4
  * @param {string} namespace The namespace for the storage.
5
5
  * @returns {object}
6
6
  */
7
- export default function staticRegister() {
7
+ export function staticRegister() {
8
8
  let namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'common';
9
9
  if (!collection.has(namespace)) {
10
10
  collection.set(namespace, new Map());
@@ -58,11 +58,32 @@ export default function staticRegister() {
58
58
  function getValues() {
59
59
  return [...subCollection.values()];
60
60
  }
61
+
62
+ /**
63
+ * Clear the collection.
64
+ */
65
+ function clear() {
66
+ collection.delete(namespace);
67
+ subCollection.clear();
68
+ }
61
69
  return {
62
70
  register,
63
71
  getItem,
64
72
  hasItem,
65
73
  getNames,
66
- getValues
74
+ getValues,
75
+ clear
67
76
  };
77
+ }
78
+
79
+ /**
80
+ * Resolves item from the collection that is strictly connected with the Handsontable instance.
81
+ *
82
+ * @param {Core} hotInstance The Handsontable instance.
83
+ * @param {string} name The name of the item to retrieve.
84
+ * @returns {*}
85
+ */
86
+ export function resolveWithInstance(hotInstance, name) {
87
+ var _collection$get;
88
+ return collection === null || collection === void 0 || (_collection$get = collection.get(hotInstance.guid)) === null || _collection$get === void 0 ? void 0 : _collection$get.get(name);
68
89
  }
@@ -4,8 +4,7 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/esnext.iterator.constructor.js");
6
6
  require("core-js/modules/esnext.iterator.for-each.js");
7
- var _element = require("../../../../helpers/dom/element");
8
- var _console = require("../../../../helpers/console");
7
+ var _console = require("../helpers/console");
9
8
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
10
9
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
11
10
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -29,9 +28,10 @@ class StylesHandler {
29
28
  /**
30
29
  * Initializes a new instance of the `StylesHandler` class.
31
30
  *
32
- * @param {object} domBindings - The DOM bindings for the instance.
31
+ * @param {HTMLElement} rootElement - The root element of the instance.
32
+ * @param {Document} rootDocument - The root document of the instance.
33
33
  */
34
- constructor(domBindings) {
34
+ constructor(_rootElement2, _rootDocument2) {
35
35
  /**
36
36
  * Calculates the row height based on the current theme and CSS variables.
37
37
  *
@@ -84,8 +84,8 @@ class StylesHandler {
84
84
  * @private
85
85
  */
86
86
  _classPrivateFieldInitSpec(this, _computedStyles, {});
87
- _classPrivateFieldSet(_rootElement, this, domBindings.rootTable.parentElement.parentElement);
88
- _classPrivateFieldSet(_rootDocument, this, domBindings.rootDocument);
87
+ _classPrivateFieldSet(_rootElement, this, _rootElement2);
88
+ _classPrivateFieldSet(_rootDocument, this, _rootDocument2);
89
89
  }
90
90
 
91
91
  /**
@@ -139,11 +139,7 @@ class StylesHandler {
139
139
  return CLASSIC_THEME_DEFAULT_HEIGHT;
140
140
  }
141
141
  const calculatedRowHeight = _assertClassBrand(_StylesHandler_brand, this, _calculateRowHeight).call(this);
142
- if (!calculatedRowHeight && (0, _element.hasClass)(_classPrivateFieldGet(_rootElement, this), 'ht-wrapper')) {
143
- (0, _console.warn)(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing or not imported correctly. \
144
- Import the correct CSS files in order to use that theme.`);
145
- _classPrivateFieldSet(_isClassicTheme, this, true);
146
- this.useTheme();
142
+ if (!calculatedRowHeight) {
147
143
  return CLASSIC_THEME_DEFAULT_HEIGHT;
148
144
  }
149
145
  return calculatedRowHeight;
@@ -165,18 +161,24 @@ Import the correct CSS files in order to use that theme.`);
165
161
  */
166
162
  useTheme(themeName) {
167
163
  if (!themeName) {
168
- _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
164
+ _classPrivateFieldSet(_themeName, this, undefined);
169
165
  _classPrivateFieldSet(_isClassicTheme, this, true);
170
- _classPrivateFieldSet(_themeName, this, themeName || undefined);
166
+ _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
171
167
  return;
172
168
  }
173
169
  if (themeName && themeName !== _classPrivateFieldGet(_themeName, this)) {
170
+ if (!/ht-theme-.*/.test(themeName)) {
171
+ (0, _console.warn)(`Invalid theme name: ${themeName}. Please provide a valid theme name.`);
172
+ _classPrivateFieldSet(_themeName, this, undefined);
173
+ _classPrivateFieldSet(_isClassicTheme, this, false);
174
+ _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
175
+ return;
176
+ }
174
177
  if (_classPrivateFieldGet(_themeName, this)) {
175
178
  _assertClassBrand(_StylesHandler_brand, this, _clearCachedValues).call(this);
176
179
  }
177
180
  _classPrivateFieldSet(_themeName, this, themeName);
178
181
  _classPrivateFieldSet(_isClassicTheme, this, false);
179
- _assertClassBrand(_StylesHandler_brand, this, _applyClassNames).call(this);
180
182
  _assertClassBrand(_StylesHandler_brand, this, _cacheStylesheetValues).call(this);
181
183
  }
182
184
  }
@@ -189,15 +191,6 @@ Import the correct CSS files in order to use that theme.`);
189
191
  getThemeName() {
190
192
  return _classPrivateFieldGet(_themeName, this);
191
193
  }
192
-
193
- /**
194
- * Removes the theme-related class names from the root element.
195
- */
196
- removeClassNames() {
197
- if ((0, _element.hasClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this))) {
198
- (0, _element.removeClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
199
- }
200
- }
201
194
  }
202
195
  exports.StylesHandler = StylesHandler;
203
196
  function _calculateRowHeight() {
@@ -209,13 +202,6 @@ function _calculateRowHeight() {
209
202
  }
210
203
  return lineHeightVarValue + 2 * verticalPaddingVarValue + bottomBorderWidth;
211
204
  }
212
- /**
213
- * Applies the necessary class names to the root element.
214
- */
215
- function _applyClassNames() {
216
- (0, _element.removeClass)(_classPrivateFieldGet(_rootElement, this), /ht-theme-.*/g);
217
- (0, _element.addClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
218
- }
219
205
  /**
220
206
  * Caches the computed style values for the root element and `td` element.
221
207
  */