handsontable 0.0.0-next-802f59c-20241024 → 0.0.0-next-627918e-20241025
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +3 -0
- package/3rdparty/walkontable/src/core/_base.mjs +3 -0
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +3 -0
- package/3rdparty/walkontable/src/facade/core.mjs +3 -0
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +3 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +3 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
- package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/overlays.js +6 -7
- package/3rdparty/walkontable/src/overlays.mjs +6 -7
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/table.js +1 -1
- package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +8 -2
- package/3rdparty/walkontable/src/settings.mjs +8 -2
- package/3rdparty/walkontable/src/table.js +35 -8
- package/3rdparty/walkontable/src/table.mjs +35 -8
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +43 -1
- package/3rdparty/walkontable/src/utils/column.mjs +43 -1
- package/3rdparty/walkontable/src/utils/columnStretching.js +197 -0
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +193 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.js +179 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +175 -0
- package/3rdparty/walkontable/src/viewport.js +88 -66
- package/3rdparty/walkontable/src/viewport.mjs +89 -67
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/hooks/constants.js +0 -2
- package/core/hooks/constants.mjs +0 -2
- package/core/hooks/index.d.ts +2 -2
- package/core.d.ts +2 -2
- package/core.js +18 -6
- package/core.mjs +18 -6
- package/dataMap/metaManager/metaSchema.js +17 -0
- package/dataMap/metaManager/metaSchema.mjs +17 -0
- package/dist/handsontable.css +17 -9
- package/dist/handsontable.full.css +17 -7
- package/dist/handsontable.full.js +4217 -4534
- package/dist/handsontable.full.min.css +5 -4
- package/dist/handsontable.full.min.js +26 -26
- package/dist/handsontable.js +3923 -4234
- package/dist/handsontable.min.css +5 -4
- package/dist/handsontable.min.js +24 -24
- package/editors/autocompleteEditor/autocompleteEditor.js +1 -1
- package/editors/autocompleteEditor/autocompleteEditor.mjs +1 -1
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -0
- package/editors/dateEditor/dateEditor.mjs +2 -0
- package/editors/handsontableEditor/handsontableEditor.js +1 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +4 -11
- package/editors/textEditor/textEditor.mjs +4 -11
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/index.d.ts +0 -7
- package/package.json +10 -8
- package/plugins/comments/commentEditor.js +8 -1
- package/plugins/comments/commentEditor.mjs +8 -1
- package/plugins/comments/comments.js +2 -2
- package/plugins/comments/comments.mjs +2 -2
- package/plugins/contextMenu/menu/menu.js +4 -4
- package/plugins/contextMenu/menu/menu.mjs +4 -4
- package/plugins/index.d.ts +0 -3
- package/plugins/index.js +0 -3
- package/plugins/index.mjs +1 -3
- package/plugins/manualColumnMove/manualColumnMove.js +3 -1
- package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
- package/plugins/manualColumnResize/manualColumnResize.js +12 -24
- package/plugins/manualColumnResize/manualColumnResize.mjs +12 -24
- package/plugins/manualRowMove/manualRowMove.js +1 -1
- package/plugins/manualRowMove/manualRowMove.mjs +1 -1
- package/plugins/manualRowResize/manualRowResize.js +1 -2
- package/plugins/manualRowResize/manualRowResize.mjs +2 -3
- package/plugins/mergeCells/mergeCells.js +1 -1
- package/plugins/mergeCells/mergeCells.mjs +1 -1
- package/plugins/nestedRows/ui/headers.js +3 -1
- package/plugins/nestedRows/ui/headers.mjs +3 -1
- package/settings.d.ts +1 -0
- package/styles/handsontable.css +1983 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-gemini.css +706 -0
- package/styles/ht-theme-gemini.min.css +30 -0
- package/styles/ht-theme-main.css +714 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/stylesManager.js +1 -0
- package/stylesManager.mjs +0 -0
- package/tableView.js +40 -39
- package/tableView.mjs +40 -39
- package/utils/autoResize.js +4 -1
- package/utils/autoResize.mjs +4 -1
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +0 -159
- package/plugins/stretchColumns/calculator.mjs +0 -155
- package/plugins/stretchColumns/index.d.ts +0 -1
- package/plugins/stretchColumns/index.js +0 -7
- package/plugins/stretchColumns/index.mjs +0 -1
- package/plugins/stretchColumns/strategies/_base.js +0 -85
- package/plugins/stretchColumns/strategies/_base.mjs +0 -81
- package/plugins/stretchColumns/strategies/all.js +0 -68
- package/plugins/stretchColumns/strategies/all.mjs +0 -64
- package/plugins/stretchColumns/strategies/last.js +0 -77
- package/plugins/stretchColumns/strategies/last.mjs +0 -73
- package/plugins/stretchColumns/stretchColumns.d.ts +0 -11
- package/plugins/stretchColumns/stretchColumns.js +0 -211
- package/plugins/stretchColumns/stretchColumns.mjs +0 -207
@@ -0,0 +1,30 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright (c) HANDSONCODE sp. z o. o.
|
3
|
+
*
|
4
|
+
* HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in
|
5
|
+
* Gdynia, Poland, at Aleja Zwyciestwa 96-98, registered by the District Court in Gdansk under number
|
6
|
+
* 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
|
7
|
+
*
|
8
|
+
* This software is protected by applicable copyright laws, including international treaties, and dual-
|
9
|
+
* licensed - depending on whether your use for commercial purposes, meaning intended for or
|
10
|
+
* resulting in commercial advantage or monetary compensation, or not.
|
11
|
+
*
|
12
|
+
* If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing
|
13
|
+
* the suitability, performance, and usefulness of this software outside the production environment,
|
14
|
+
* you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.
|
15
|
+
*
|
16
|
+
* Your use of this software for commercial purposes is subject to the terms included in an applicable
|
17
|
+
* license agreement.
|
18
|
+
*
|
19
|
+
* In any case, you must not make any such use of this software as to develop software which may be
|
20
|
+
* considered competitive with this software.
|
21
|
+
*
|
22
|
+
* UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"
|
23
|
+
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO
|
24
|
+
* LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
|
25
|
+
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
|
+
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
|
+
*
|
28
|
+
* Version: 0.0.0-next-627918e-20241025
|
29
|
+
* Release date: 17/10/2024 (built at 25/10/2024 06:42:21)
|
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:0px;--ht-border-radius:4px;--ht-border-width:1px;--ht-gap-size:4px;--ht-table-transition:0.15s;--ht-row-height:28px;--ht-wrapper-border-width:1px;--ht-wrapper-border-radius:0px;--ht-wrapper-border-color:#e7e7e9;--ht-icon-size:16px;--ht-background-color:#fff;--ht-border-color:#e7e7e9;--ht-accent-color:#1a42e8;--ht-foreground-color:#222;--ht-placeholder-color:#999;--ht-read-only-color:#6a6a6a;--ht-disabled-color:#a3a3a3;--ht-cell-vertical-border-width:1px;--ht-cell-horizontal-border-width:1px;--ht-cell-horizontal-padding:8px;--ht-cell-vertical-padding:4px;--ht-cell-editor-foreground-color:#000;--ht-cell-editor-border-color:#1a42e8;--ht-cell-editor-shadow-blur-radius:0px;--ht-cell-editor-shadow-color:rgba(17,61,201,.6);--ht-cell-editor-border-width:2px;--ht-cell-editor-background-color:#fff;--ht-cell-search-background-color:rgba(251,233,82,.8);--ht-cell-error-background-color:rgba(250,77,50,.2);--ht-cell-success-background-color:rgba(55,188,108,.2);--ht-cell-warning-background-color:rgba(251,233,82,.2);--ht-cell-informational-background-color:rgba(39,194,255,.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:0px;--ht-cell-autofill-background-color:#1a42e8;--ht-cell-autofill-border-color:#fff;--ht-checkbox-size:16px;--ht-checkbox-border-color:#d1d1d5;--ht-checkbox-background-color:#fff;--ht-checkbox-icon-color:hsla(0,0%,100%,0);--ht-checkbox-focus-background-color:#fff;--ht-checkbox-focus-border-color:#d1d1d5;--ht-checkbox-focus-icon-color:hsla(0,0%,100%,0);--ht-checkbox-focus-ring-color:#1a42e8;--ht-checkbox-disabled-background-color:#d1d1d5;--ht-checkbox-disabled-border-color:#e7e7e9;--ht-checkbox-disabled-icon-color:hsla(0,0%,100%,0);--ht-checkbox-checked-background-color:#1a42e8;--ht-checkbox-checked-border-color:#1a42e8;--ht-checkbox-checked-icon-color:#fff;--ht-checkbox-checked-focus-background-color:#1a42e8;--ht-checkbox-checked-focus-border-color:#fff;--ht-checkbox-checked-focus-icon-color:#fff;--ht-checkbox-checked-disabled-background-color:#d1d1d5;--ht-checkbox-checked-disabled-border-color:#e7e7e9;--ht-checkbox-checked-disabled-icon-color:#a3a3a3;--ht-checkbox-indeterminate-background-color:#1a42e8;--ht-checkbox-indeterminate-border-color:#fff;--ht-checkbox-indeterminate-icon-color:#fff;--ht-checkbox-indeterminate-disabled-background-color:#d1d1d5;--ht-checkbox-indeterminate-disabled-border-color:#e7e7e9;--ht-checkbox-indeterminate-disabled-icon-color:#aeaeae;--ht-checkbox-indeterminate-focus-background-color:#1a42e8;--ht-checkbox-indeterminate-focus-border-color:#fff;--ht-checkbox-indeterminate-focus-icon-color:#fff;--ht-header-active-background-color:#1a42e8;--ht-header-active-foreground-color:#fff;--ht-header-active-border-color:#2e56fc;--ht-header-highlighted-foreground-color:#000;--ht-header-highlighted-background-color:#ebebed;--ht-header-highlighted-shadow-size:0px;--ht-header-background-color:#f7f7f9;--ht-header-row-background-color:#f7f7f9;--ht-header-font-weight:400;--ht-header-foreground-color:#222;--ht-header-filter-background-color:rgba(55,188,108,.2);--ht-frozen-shadow-size:2px;--ht-frozen-shadow-color:#e5e5e9;--ht-row-odd-background-color:rgba(34,34,34,0);--ht-row-even-background-color:rgba(34,34,34,0);--ht-resize-indicator-color:rgba(34,34,34,.6);--ht-icon-button-background-color:hsla(0,0%,100%,0);--ht-icon-button-icon-color:rgba(34,34,34,.6);--ht-icon-active-button-icon-color:#fff;--ht-icon-button-hover-background-color:rgba(34,34,34,.08);--ht-icon-button-hover-icon-color:rgba(34,34,34,.4);--ht-icon-button-focus-background-color:hsla(0,0%,100%,0);--ht-icon-button-focus-icon-color:#1a42e8;--ht-icon-button-border-radius:2px;--ht-icon-button-disabled-background-color:hsla(0,0%,60%,.32);--ht-icon-button-disabled-icon-color:#a3a3a3;--ht-collapse-button-border-radius:4px;--ht-collapse-button-open-background-color:#fff;--ht-collapse-button-open-border-color:#d1d1d5;--ht-collapse-button-open-icon-color:#999;--ht-collapse-button-open-icon-active-color:#999;--ht-collapse-button-open-hover-background-color:#f7f7f9;--ht-collapse-button-open-hover-border-color:#d1d1d5;--ht-collapse-button-open-hover-icon-color:#999;--ht-collapse-button-open-hover-icon-active-color:#999;--ht-collapse-button-open-focus-background-color:#f7f7f9;--ht-collapse-button-open-focus-border-color:#d1d1d5;--ht-collapse-button-open-focus-icon-color:#1a42e8;--ht-collapse-button-close-icon-color:#666;--ht-collapse-button-close-background-color:#ebebed;--ht-collapse-button-close-border-color:#d1d1d5;--ht-collapse-button-close-icon-active-color:#666;--ht-collapse-button-close-hover-background-color:#ebebed;--ht-collapse-button-close-hover-border-color:#d1d1d5;--ht-collapse-button-close-hover-icon-color:#666;--ht-collapse-button-close-hover-icon-active-color:#666;--ht-collapse-button-close-focus-background-color:#ebebed;--ht-collapse-button-close-focus-border-color:#d1d1d5;--ht-collapse-button-close-focus-icon-color:#1a42e8;--ht-primary-button-background-color:#1a42e8;--ht-primary-button-border-color:hsla(0,0%,100%,0);--ht-primary-button-foreground-color:#fff;--ht-primary-button-disabled-background-color:hsla(0,0%,60%,.32);--ht-primary-button-disabled-foreground-color:#a3a3a3;--ht-primary-button-disabled-border-color:hsla(0,0%,100%,0);--ht-primary-button-hover-background-color:#1535bc;--ht-primary-button-hover-foreground-color:#fff;--ht-primary-button-hover-border-color:hsla(0,0%,100%,0);--ht-primary-button-focus-background-color:#1a42e8;--ht-primary-button-focus-foreground-color:#fff;--ht-primary-button-focus-border-color:#fff;--ht-secondary-button-background-color:#fff;--ht-secondary-button-foreground-color:#222;--ht-secondary-button-border-color:#e7e7e9;--ht-secondary-button-disabled-background-color:#ebebed;--ht-secondary-button-disabled-foreground-color:#a3a3a3;--ht-secondary-button-disabled-border-color:#e7e7e9;--ht-secondary-button-hover-background-color:#fff;--ht-secondary-button-hover-foreground-color:#222;--ht-secondary-button-hover-border-color:#e7e7e9;--ht-secondary-button-focus-background-color:#fff;--ht-secondary-button-focus-foreground-color:#222;--ht-secondary-button-focus-border-color:#e7e7e9;--ht-button-horizontal-padding:12px;--ht-button-vertical-padding:6px;--ht-button-border-radius:4px;--ht-move-backlight-color:rgba(34,34,34,.06);--ht-move-indicator-color:#1a42e8;--ht-comments-indicator-size:6px;--ht-comments-indicator-color:#1a42e8;--ht-comments-textarea-vertical-padding:4px;--ht-comments-textarea-background-color:#f7f7f9;--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-focus-background-color:#fff;--ht-comments-textarea-focus-border-color:#1a42e8;--ht-comments-textarea-focus-border-width:1px;--ht-comments-textarea-focus-foreground-color:#222;--ht-comments-textarea-horizontal-padding:8px;--ht-license-background-color:#f7f7f9;--ht-license-horizontal-padding:16px;--ht-license-vertical-padding:8px;--ht-license-foreground-color:#222;--ht-link-color:#1a42e8;--ht-link-hover-color:#3e67ec;--ht-input-background-color:#f7f7f9;--ht-input-border-color:#e7e7e9;--ht-input-foreground-color:#222;--ht-input-border-width:1px;--ht-input-disabled-background-color:hsla(0,0%,60%,.32);--ht-input-disabled-border-color:#e7e7e9;--ht-input-disabled-foreground-color:#a3a3a3;--ht-input-hover-background-color:#fff;--ht-input-hover-border-color:#e7e7e9;--ht-input-hover-foreground-color:#222;--ht-input-focus-background-color:#fff;--ht-input-focus-border-color:#1a42e8;--ht-input-focus-foreground-color:#222;--ht-input-vertical-padding:6px;--ht-input-horizontal-padding:12px;--ht-input-border-radius:4px;--ht-menu-shadow-blur:16px;--ht-menu-shadow-x:0px;--ht-menu-shadow-y:8px;--ht-menu-shadow-color:rgba(0,0,0,.08);--ht-menu-border-color:#e7e7e9;--ht-menu-border-width:1px;--ht-menu-border-radius:4px;--ht-menu-horizontal-padding:0px;--ht-menu-vertical-padding:12px;--ht-menu-item-vertical-padding:4px;--ht-menu-item-horizontal-padding:12px;--ht-menu-item-hover-color:rgba(0,0,0,.05);--ht-menu-item-active-color:rgba(0,0,0,.08);--ht-hidden-indicator-color:rgba(34,34,34,.6);--ht-scrollbar-thumb-color:#999;--ht-scrollbar-track-color:#f7f7f9;--ht-scrollbar-border-radius:8px}.ht-theme-main .pika-single .pika-next,.ht-theme-main-dark .pika-single .pika-next,.ht-theme-main-dark-auto .pika-single .pika-next,.ht-theme-main-dark-auto.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main-dark-auto.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main-dark-auto.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main-dark.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main-dark.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main-dark.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,.ht-theme-main.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .pika-single .pika-prev,.ht-theme-main-dark .pika-single .pika-prev,.ht-theme-main-dark-auto .pika-single .pika-prev{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .changeType:before,.ht-theme-main .htAutocompleteArrow:after,.ht-theme-main .htUISelectCaption:after,.ht-theme-main-dark .changeType:before,.ht-theme-main-dark .htAutocompleteArrow:after,.ht-theme-main-dark .htUISelectCaption:after,.ht-theme-main-dark-auto .changeType:before,.ht-theme-main-dark-auto .htAutocompleteArrow:after,.ht-theme-main-dark-auto .htUISelectCaption:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .columnSorting.sortAction.ascending:before,.ht-theme-main-dark .columnSorting.sortAction.ascending:before,.ht-theme-main-dark-auto .columnSorting.sortAction.ascending:before{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .columnSorting.sortAction.descending:before,.ht-theme-main-dark .columnSorting.sortAction.descending:before,.ht-theme-main-dark-auto .columnSorting.sortAction.descending:before{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main-dark-auto.htContextMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main-dark-auto.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main-dark-auto.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main-dark.htContextMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main-dark.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main-dark.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main.htContextMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,.ht-theme-main.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .htCheckboxRendererInput:after,.ht-theme-main-dark .htCheckboxRendererInput:after,.ht-theme-main-dark-auto .htCheckboxRendererInput:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main th.beforeHiddenColumn:after,.ht-theme-main-dark th.beforeHiddenColumn:after,.ht-theme-main-dark-auto th.beforeHiddenColumn:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main th.afterHiddenColumn:after,.ht-theme-main-dark th.afterHiddenColumn:after,.ht-theme-main-dark-auto th.afterHiddenColumn:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main th.beforeHiddenRow:after,.ht-theme-main-dark th.beforeHiddenRow:after,.ht-theme-main-dark-auto th.beforeHiddenRow:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main th.afterHiddenRow:after,.ht-theme-main-dark th.afterHiddenRow:after,.ht-theme-main-dark-auto th.afterHiddenRow:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .collapsibleIndicator:before,.ht-theme-main .ht_nestingButton:before,.ht-theme-main-dark .collapsibleIndicator:before,.ht-theme-main-dark .ht_nestingButton:before,.ht-theme-main-dark-auto .collapsibleIndicator:before,.ht-theme-main-dark-auto .ht_nestingButton:before{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .collapsibleIndicator.collapsed:before,.ht-theme-main .collapsibleIndicator.ht_nestingExpand:before,.ht-theme-main .ht_nestingButton.collapsed:before,.ht-theme-main .ht_nestingButton.ht_nestingExpand:before,.ht-theme-main-dark .collapsibleIndicator.collapsed:before,.ht-theme-main-dark .collapsibleIndicator.ht_nestingExpand:before,.ht-theme-main-dark .ht_nestingButton.collapsed:before,.ht-theme-main-dark .ht_nestingButton.ht_nestingExpand:before,.ht-theme-main-dark-auto .collapsibleIndicator.collapsed:before,.ht-theme-main-dark-auto .collapsibleIndicator.ht_nestingExpand:before,.ht-theme-main-dark-auto .ht_nestingButton.collapsed:before,.ht-theme-main-dark-auto .ht_nestingButton.ht_nestingExpand:before{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main .htUIRadio>input[type=radio]:after,.ht-theme-main-dark .htUIRadio>input[type=radio]:after,.ht-theme-main-dark-auto .htUIRadio>input[type=radio]:after{background-color:currentColor;height:var(--ht-icon-size);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");mask-size:contain;width:var(--ht-icon-size)}.ht-theme-main-dark{--ht-wrapper-border-color:#313132;--ht-background-color:#0f0f10;--ht-border-color:#313132;--ht-accent-color:#476af7;--ht-foreground-color:#f3f3f3;--ht-placeholder-color:#68696c;--ht-read-only-color:#9a9b9e;--ht-disabled-color:#68696c;--ht-cell-editor-foreground-color:#fff;--ht-cell-editor-border-color:#476af7;--ht-cell-editor-shadow-color:rgba(71,106,247,.6);--ht-cell-editor-background-color:#0f0f10;--ht-cell-search-background-color:rgba(255,231,34,.3);--ht-cell-error-background-color:rgba(255,42,52,.3);--ht-cell-success-background-color:rgba(66,190,101,.3);--ht-cell-warning-background-color:rgba(241,194,28,.3);--ht-cell-informational-background-color:rgba(39,194,255,.3);--ht-cell-selection-border-color:#476af7;--ht-cell-selection-background-color:#476af7;--ht-cell-autofill-background-color:#476af7;--ht-cell-autofill-border-color:#0f0f10;--ht-checkbox-border-color:#404144;--ht-checkbox-background-color:#0f0f10;--ht-checkbox-focus-background-color:#0f0f10;--ht-checkbox-focus-border-color:#404144;--ht-checkbox-focus-ring-color:#476af7;--ht-checkbox-disabled-background-color:#404144;--ht-checkbox-disabled-border-color:#313132;--ht-checkbox-checked-background-color:#476af7;--ht-checkbox-checked-border-color:#476af7;--ht-checkbox-checked-icon-color:#f3f3f3;--ht-checkbox-checked-focus-background-color:#476af7;--ht-checkbox-checked-focus-icon-color:#f3f3f3;--ht-checkbox-checked-disabled-background-color:#36373a;--ht-checkbox-checked-disabled-border-color:#313132;--ht-checkbox-checked-disabled-icon-color:#68696c;--ht-checkbox-indeterminate-background-color:#476af7;--ht-checkbox-indeterminate-border-color:#000;--ht-checkbox-indeterminate-icon-color:#0f0f10;--ht-checkbox-indeterminate-disabled-background-color:#36373a;--ht-checkbox-indeterminate-disabled-border-color:#313132;--ht-checkbox-indeterminate-disabled-icon-color:#727272;--ht-checkbox-indeterminate-focus-background-color:#476af7;--ht-checkbox-indeterminate-focus-border-color:#000;--ht-checkbox-indeterminate-focus-icon-color:#f3f3f3;--ht-header-active-background-color:#476af7;--ht-header-active-foreground-color:#0f0f10;--ht-header-active-border-color:#4767e5;--ht-header-highlighted-foreground-color:#f3f3f3;--ht-header-highlighted-background-color:#262627;--ht-header-background-color:#1e1e1f;--ht-header-row-background-color:#1e1e1f;--ht-header-foreground-color:#f3f3f3;--ht-header-filter-background-color:rgba(66,190,101,.3);--ht-frozen-shadow-color:#48484a;--ht-row-odd-background-color:rgba(239,239,243,0);--ht-row-even-background-color:rgba(239,239,243,0);--ht-resize-indicator-color:hsla(0,0%,100%,.6);--ht-icon-button-background-color:transparent;--ht-icon-button-icon-color:hsla(0,0%,100%,.6);--ht-icon-active-button-icon-color:#0f0f10;--ht-icon-button-hover-background-color:hsla(0,0%,100%,.08);--ht-icon-button-hover-icon-color:hsla(0,0%,100%,.4);--ht-icon-button-focus-background-color:transparent;--ht-icon-button-focus-icon-color:#476af7;--ht-icon-button-disabled-background-color:hsla(225,2%,42%,.32);--ht-icon-button-disabled-icon-color:#68696c;--ht-collapse-button-open-background-color:#000;--ht-collapse-button-open-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-icon-color:#666;--ht-collapse-button-open-icon-active-color:#666;--ht-collapse-button-open-hover-background-color:#1e1e1f;--ht-collapse-button-open-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-hover-icon-color:#666;--ht-collapse-button-open-hover-icon-active-color:#666;--ht-collapse-button-open-focus-background-color:#1e1e1f;--ht-collapse-button-open-focus-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-focus-icon-color:#476af7;--ht-collapse-button-close-icon-color:#999;--ht-collapse-button-close-background-color:#262627;--ht-collapse-button-close-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-icon-active-color:#999;--ht-collapse-button-close-hover-background-color:#262627;--ht-collapse-button-close-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-hover-icon-color:#999;--ht-collapse-button-close-hover-icon-active-color:#999;--ht-collapse-button-close-focus-background-color:#262627;--ht-collapse-button-close-focus-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-focus-icon-color:#476af7;--ht-primary-button-background-color:#476af7;--ht-primary-button-foreground-color:#f3f3f3;--ht-primary-button-disabled-background-color:hsla(225,2%,42%,.32);--ht-primary-button-disabled-foreground-color:#68696c;--ht-primary-button-hover-background-color:#6180ff;--ht-primary-button-hover-foreground-color:#f3f3f3;--ht-primary-button-focus-background-color:#476af7;--ht-primary-button-focus-foreground-color:#f3f3f3;--ht-primary-button-focus-border-color:#0f0f10;--ht-secondary-button-background-color:#0f0f10;--ht-secondary-button-foreground-color:#f3f3f3;--ht-secondary-button-border-color:#313132;--ht-secondary-button-disabled-background-color:#262627;--ht-secondary-button-disabled-foreground-color:#68696c;--ht-secondary-button-disabled-border-color:#313132;--ht-secondary-button-hover-background-color:#0f0f10;--ht-secondary-button-hover-foreground-color:#f3f3f3;--ht-secondary-button-hover-border-color:#313132;--ht-secondary-button-focus-background-color:#0f0f10;--ht-secondary-button-focus-foreground-color:#f3f3f3;--ht-secondary-button-focus-border-color:#313132;--ht-move-backlight-color:hsla(0,0%,87%,.12);--ht-move-indicator-color:#476af7;--ht-comments-indicator-color:#476af7;--ht-comments-textarea-background-color:#1e1e1f;--ht-comments-textarea-foreground-color:#f3f3f3;--ht-comments-textarea-focus-background-color:#0f0f10;--ht-comments-textarea-focus-border-color:#476af7;--ht-comments-textarea-focus-foreground-color:#f3f3f3;--ht-license-background-color:#1e1e1f;--ht-license-foreground-color:#f3f3f3;--ht-link-color:#476af7;--ht-link-hover-color:#728eff;--ht-input-background-color:#1e1e1f;--ht-input-border-color:#313132;--ht-input-foreground-color:#f3f3f3;--ht-input-disabled-background-color:hsla(225,2%,42%,.32);--ht-input-disabled-border-color:#313132;--ht-input-disabled-foreground-color:#68696c;--ht-input-hover-background-color:#0f0f10;--ht-input-hover-border-color:#313132;--ht-input-hover-foreground-color:#f3f3f3;--ht-input-focus-background-color:#0f0f10;--ht-input-focus-border-color:#476af7;--ht-input-focus-foreground-color:#f3f3f3;--ht-menu-shadow-color:rgba(0,0,0,.8);--ht-menu-border-color:#313132;--ht-menu-item-hover-color:rgba(239,239,243,.05);--ht-menu-item-active-color:rgba(239,239,243,.12);--ht-hidden-indicator-color:hsla(0,0%,100%,.6);--ht-scrollbar-thumb-color:#68696c;--ht-scrollbar-track-color:#19191c}@media(prefers-color-scheme:dark){.ht-theme-main-dark-auto{--ht-wrapper-border-color:#313132;--ht-background-color:#0f0f10;--ht-border-color:#313132;--ht-accent-color:#476af7;--ht-foreground-color:#f3f3f3;--ht-placeholder-color:#68696c;--ht-read-only-color:#9a9b9e;--ht-disabled-color:#68696c;--ht-cell-editor-foreground-color:#fff;--ht-cell-editor-border-color:#476af7;--ht-cell-editor-shadow-color:rgba(71,106,247,.6);--ht-cell-editor-background-color:#0f0f10;--ht-cell-search-background-color:rgba(255,231,34,.3);--ht-cell-error-background-color:rgba(255,42,52,.3);--ht-cell-success-background-color:rgba(66,190,101,.3);--ht-cell-warning-background-color:rgba(241,194,28,.3);--ht-cell-informational-background-color:rgba(39,194,255,.3);--ht-cell-selection-border-color:#476af7;--ht-cell-selection-background-color:#476af7;--ht-cell-autofill-background-color:#476af7;--ht-cell-autofill-border-color:#0f0f10;--ht-checkbox-border-color:#404144;--ht-checkbox-background-color:#0f0f10;--ht-checkbox-focus-background-color:#0f0f10;--ht-checkbox-focus-border-color:#404144;--ht-checkbox-focus-ring-color:#476af7;--ht-checkbox-disabled-background-color:#404144;--ht-checkbox-disabled-border-color:#313132;--ht-checkbox-checked-background-color:#476af7;--ht-checkbox-checked-border-color:#476af7;--ht-checkbox-checked-icon-color:#f3f3f3;--ht-checkbox-checked-focus-background-color:#476af7;--ht-checkbox-checked-focus-icon-color:#f3f3f3;--ht-checkbox-checked-disabled-background-color:#36373a;--ht-checkbox-checked-disabled-border-color:#313132;--ht-checkbox-checked-disabled-icon-color:#68696c;--ht-checkbox-indeterminate-background-color:#476af7;--ht-checkbox-indeterminate-border-color:#000;--ht-checkbox-indeterminate-icon-color:#0f0f10;--ht-checkbox-indeterminate-disabled-background-color:#36373a;--ht-checkbox-indeterminate-disabled-border-color:#313132;--ht-checkbox-indeterminate-disabled-icon-color:#727272;--ht-checkbox-indeterminate-focus-background-color:#476af7;--ht-checkbox-indeterminate-focus-border-color:#000;--ht-checkbox-indeterminate-focus-icon-color:#f3f3f3;--ht-header-active-background-color:#476af7;--ht-header-active-foreground-color:#0f0f10;--ht-header-active-border-color:#4767e5;--ht-header-highlighted-foreground-color:#f3f3f3;--ht-header-highlighted-background-color:#262627;--ht-header-background-color:#1e1e1f;--ht-header-row-background-color:#1e1e1f;--ht-header-foreground-color:#f3f3f3;--ht-header-filter-background-color:rgba(66,190,101,.3);--ht-frozen-shadow-color:#48484a;--ht-row-odd-background-color:rgba(239,239,243,0);--ht-row-even-background-color:rgba(239,239,243,0);--ht-resize-indicator-color:hsla(0,0%,100%,.6);--ht-icon-button-background-color:transparent;--ht-icon-button-icon-color:hsla(0,0%,100%,.6);--ht-icon-active-button-icon-color:#0f0f10;--ht-icon-button-hover-background-color:hsla(0,0%,100%,.08);--ht-icon-button-hover-icon-color:hsla(0,0%,100%,.4);--ht-icon-button-focus-background-color:transparent;--ht-icon-button-focus-icon-color:#476af7;--ht-icon-button-disabled-background-color:hsla(225,2%,42%,.32);--ht-icon-button-disabled-icon-color:#68696c;--ht-collapse-button-open-background-color:#000;--ht-collapse-button-open-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-icon-color:#666;--ht-collapse-button-open-icon-active-color:#666;--ht-collapse-button-open-hover-background-color:#1e1e1f;--ht-collapse-button-open-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-hover-icon-color:#666;--ht-collapse-button-open-hover-icon-active-color:#666;--ht-collapse-button-open-focus-background-color:#1e1e1f;--ht-collapse-button-open-focus-border-color:rgba(83,83,85,.64);--ht-collapse-button-open-focus-icon-color:#476af7;--ht-collapse-button-close-icon-color:#999;--ht-collapse-button-close-background-color:#262627;--ht-collapse-button-close-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-icon-active-color:#999;--ht-collapse-button-close-hover-background-color:#262627;--ht-collapse-button-close-hover-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-hover-icon-color:#999;--ht-collapse-button-close-hover-icon-active-color:#999;--ht-collapse-button-close-focus-background-color:#262627;--ht-collapse-button-close-focus-border-color:rgba(83,83,85,.64);--ht-collapse-button-close-focus-icon-color:#476af7;--ht-primary-button-background-color:#476af7;--ht-primary-button-foreground-color:#f3f3f3;--ht-primary-button-disabled-background-color:hsla(225,2%,42%,.32);--ht-primary-button-disabled-foreground-color:#68696c;--ht-primary-button-hover-background-color:#6180ff;--ht-primary-button-hover-foreground-color:#f3f3f3;--ht-primary-button-focus-background-color:#476af7;--ht-primary-button-focus-foreground-color:#f3f3f3;--ht-primary-button-focus-border-color:#0f0f10;--ht-secondary-button-background-color:#0f0f10;--ht-secondary-button-foreground-color:#f3f3f3;--ht-secondary-button-border-color:#313132;--ht-secondary-button-disabled-background-color:#262627;--ht-secondary-button-disabled-foreground-color:#68696c;--ht-secondary-button-disabled-border-color:#313132;--ht-secondary-button-hover-background-color:#0f0f10;--ht-secondary-button-hover-foreground-color:#f3f3f3;--ht-secondary-button-hover-border-color:#313132;--ht-secondary-button-focus-background-color:#0f0f10;--ht-secondary-button-focus-foreground-color:#f3f3f3;--ht-secondary-button-focus-border-color:#313132;--ht-move-backlight-color:hsla(0,0%,87%,.12);--ht-move-indicator-color:#476af7;--ht-comments-indicator-color:#476af7;--ht-comments-textarea-background-color:#1e1e1f;--ht-comments-textarea-foreground-color:#f3f3f3;--ht-comments-textarea-focus-background-color:#0f0f10;--ht-comments-textarea-focus-border-color:#476af7;--ht-comments-textarea-focus-foreground-color:#f3f3f3;--ht-license-background-color:#1e1e1f;--ht-license-foreground-color:#f3f3f3;--ht-link-color:#476af7;--ht-link-hover-color:#728eff;--ht-input-background-color:#1e1e1f;--ht-input-border-color:#313132;--ht-input-foreground-color:#f3f3f3;--ht-input-disabled-background-color:hsla(225,2%,42%,.32);--ht-input-disabled-border-color:#313132;--ht-input-disabled-foreground-color:#68696c;--ht-input-hover-background-color:#0f0f10;--ht-input-hover-border-color:#313132;--ht-input-hover-foreground-color:#f3f3f3;--ht-input-focus-background-color:#0f0f10;--ht-input-focus-border-color:#476af7;--ht-input-focus-foreground-color:#f3f3f3;--ht-menu-shadow-color:rgba(0,0,0,.8);--ht-menu-border-color:#313132;--ht-menu-item-hover-color:rgba(239,239,243,.05);--ht-menu-item-active-color:rgba(239,239,243,.12);--ht-hidden-indicator-color:hsla(0,0%,100%,.6);--ht-scrollbar-thumb-color:#68696c;--ht-scrollbar-track-color:#19191c}}
|
package/stylesManager.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";
|
File without changes
|
package/tableView.js
CHANGED
@@ -158,7 +158,7 @@ class TableView {
|
|
158
158
|
this.hot.runHooks('beforeRender', this.hot.forceFullRender);
|
159
159
|
if (this.postponedAdjustElementsSize) {
|
160
160
|
this.postponedAdjustElementsSize = false;
|
161
|
-
this.adjustElementsSize();
|
161
|
+
this.adjustElementsSize(true);
|
162
162
|
}
|
163
163
|
this._wt.draw(!this.hot.forceFullRender);
|
164
164
|
this.hot.runHooks('afterRender', this.hot.forceFullRender);
|
@@ -587,6 +587,39 @@ class TableView {
|
|
587
587
|
return count;
|
588
588
|
}
|
589
589
|
|
590
|
+
/**
|
591
|
+
* Returns the default row height.
|
592
|
+
*
|
593
|
+
* This method retrieves the default row height from the Walkontable styles handler.
|
594
|
+
*
|
595
|
+
* @returns {number} The default row height.
|
596
|
+
*/
|
597
|
+
getDefaultRowHeight() {
|
598
|
+
return this._wt.stylesHandler.getDefaultRowHeight();
|
599
|
+
}
|
600
|
+
|
601
|
+
/**
|
602
|
+
* Retrieves the value of a specified CSS variable for the instance's container.
|
603
|
+
*
|
604
|
+
* @param {string} variableName - The name of the CSS variable to retrieve.
|
605
|
+
* @returns {string} The value of the specified CSS variable.
|
606
|
+
*/
|
607
|
+
getCSSVariableValue(variableName) {
|
608
|
+
return this._wt.stylesHandler.getCSSVariableValue(variableName);
|
609
|
+
}
|
610
|
+
|
611
|
+
/**
|
612
|
+
* Checks if the classic theme is being used.
|
613
|
+
*
|
614
|
+
* This method verifies if the current theme applied to the Handsontable instance
|
615
|
+
* is the classic theme.
|
616
|
+
*
|
617
|
+
* @returns {boolean} `true` if the classic theme is being used, `false` otherwise.
|
618
|
+
*/
|
619
|
+
isUsingClassicTheme() {
|
620
|
+
return this._wt.stylesHandler.isClassicTheme();
|
621
|
+
}
|
622
|
+
|
590
623
|
/**
|
591
624
|
* Checks if at least one cell than belongs to the main table is not covered by the top, left or
|
592
625
|
* bottom overlay.
|
@@ -606,6 +639,7 @@ class TableView {
|
|
606
639
|
*/
|
607
640
|
initializeWalkontable() {
|
608
641
|
const walkontableConfig = {
|
642
|
+
themeName: this.settings.themeName,
|
609
643
|
ariaTags: this.settings.ariaTags,
|
610
644
|
rtlMode: this.hot.isRtl(),
|
611
645
|
externalRowCalculator: this.hot.getPlugin('autoRowSize') && this.hot.getPlugin('autoRowSize').isEnabled(),
|
@@ -613,6 +647,7 @@ class TableView {
|
|
613
647
|
isDataViewInstance: () => (0, _rootInstance.isRootInstance)(this.hot),
|
614
648
|
preventOverflow: () => this.settings.preventOverflow,
|
615
649
|
preventWheel: () => this.settings.preventWheel,
|
650
|
+
stretchH: () => this.settings.stretchH,
|
616
651
|
viewportColumnRenderingThreshold: () => this.settings.viewportColumnRenderingThreshold,
|
617
652
|
viewportRowRenderingThreshold: () => this.settings.viewportRowRenderingThreshold,
|
618
653
|
data: (renderableRow, renderableColumn) => {
|
@@ -911,6 +946,10 @@ class TableView {
|
|
911
946
|
},
|
912
947
|
onBeforeTouchScroll: () => this.hot.runHooks('beforeTouchScroll'),
|
913
948
|
onAfterMomentumScroll: () => this.hot.runHooks('afterMomentumScroll'),
|
949
|
+
onBeforeStretchingColumnWidth: (stretchedWidth, renderedColumnIndex) => {
|
950
|
+
const visualColumnIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);
|
951
|
+
return this.hot.runHooks('beforeStretchingColumnWidth', stretchedWidth, visualColumnIndex);
|
952
|
+
},
|
914
953
|
onModifyRowHeaderWidth: rowHeaderWidth => this.hot.runHooks('modifyRowHeaderWidth', rowHeaderWidth),
|
915
954
|
onModifyGetCellCoords: (renderableRowIndex, renderableColumnIndex, topmost, source) => {
|
916
955
|
const rowMapper = this.hot.rowIndexMapper;
|
@@ -1534,44 +1573,6 @@ class TableView {
|
|
1534
1573
|
getTableHeight() {
|
1535
1574
|
return this._wt.wtTable.getHeight();
|
1536
1575
|
}
|
1537
|
-
|
1538
|
-
/**
|
1539
|
-
* Gets the row header width. If there are multiple row headers, the width of
|
1540
|
-
* the sum of all of them is returned.
|
1541
|
-
*
|
1542
|
-
* @returns {number}
|
1543
|
-
*/
|
1544
|
-
getRowHeaderWidth() {
|
1545
|
-
return this._wt.wtViewport.getRowHeaderWidth();
|
1546
|
-
}
|
1547
|
-
|
1548
|
-
/**
|
1549
|
-
* Gets the column header height. If there are multiple column headers, the height
|
1550
|
-
* of the sum of all of them is returned.
|
1551
|
-
*
|
1552
|
-
* @returns {number}
|
1553
|
-
*/
|
1554
|
-
getColumnHeaderHeight() {
|
1555
|
-
return this._wt.wtViewport.getColumnHeaderHeight();
|
1556
|
-
}
|
1557
|
-
|
1558
|
-
/**
|
1559
|
-
* Checks if the table uses the window as a viewport and if there is a vertical scrollbar.
|
1560
|
-
*
|
1561
|
-
* @returns {boolean}
|
1562
|
-
*/
|
1563
|
-
isVerticallyScrollableByWindow() {
|
1564
|
-
return this._wt.wtViewport.isVerticallyScrollableByWindow();
|
1565
|
-
}
|
1566
|
-
|
1567
|
-
/**
|
1568
|
-
* Checks if the table uses the window as a viewport and if there is a horizontal scrollbar.
|
1569
|
-
*
|
1570
|
-
* @returns {boolean}
|
1571
|
-
*/
|
1572
|
-
isHorizontallyScrollableByWindow() {
|
1573
|
-
return this._wt.wtViewport.isHorizontallyScrollableByWindow();
|
1574
|
-
}
|
1575
1576
|
/**
|
1576
1577
|
* Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
|
1577
1578
|
*
|
package/tableView.mjs
CHANGED
@@ -154,7 +154,7 @@ class TableView {
|
|
154
154
|
this.hot.runHooks('beforeRender', this.hot.forceFullRender);
|
155
155
|
if (this.postponedAdjustElementsSize) {
|
156
156
|
this.postponedAdjustElementsSize = false;
|
157
|
-
this.adjustElementsSize();
|
157
|
+
this.adjustElementsSize(true);
|
158
158
|
}
|
159
159
|
this._wt.draw(!this.hot.forceFullRender);
|
160
160
|
this.hot.runHooks('afterRender', this.hot.forceFullRender);
|
@@ -583,6 +583,39 @@ class TableView {
|
|
583
583
|
return count;
|
584
584
|
}
|
585
585
|
|
586
|
+
/**
|
587
|
+
* Returns the default row height.
|
588
|
+
*
|
589
|
+
* This method retrieves the default row height from the Walkontable styles handler.
|
590
|
+
*
|
591
|
+
* @returns {number} The default row height.
|
592
|
+
*/
|
593
|
+
getDefaultRowHeight() {
|
594
|
+
return this._wt.stylesHandler.getDefaultRowHeight();
|
595
|
+
}
|
596
|
+
|
597
|
+
/**
|
598
|
+
* Retrieves the value of a specified CSS variable for the instance's container.
|
599
|
+
*
|
600
|
+
* @param {string} variableName - The name of the CSS variable to retrieve.
|
601
|
+
* @returns {string} The value of the specified CSS variable.
|
602
|
+
*/
|
603
|
+
getCSSVariableValue(variableName) {
|
604
|
+
return this._wt.stylesHandler.getCSSVariableValue(variableName);
|
605
|
+
}
|
606
|
+
|
607
|
+
/**
|
608
|
+
* Checks if the classic theme is being used.
|
609
|
+
*
|
610
|
+
* This method verifies if the current theme applied to the Handsontable instance
|
611
|
+
* is the classic theme.
|
612
|
+
*
|
613
|
+
* @returns {boolean} `true` if the classic theme is being used, `false` otherwise.
|
614
|
+
*/
|
615
|
+
isUsingClassicTheme() {
|
616
|
+
return this._wt.stylesHandler.isClassicTheme();
|
617
|
+
}
|
618
|
+
|
586
619
|
/**
|
587
620
|
* Checks if at least one cell than belongs to the main table is not covered by the top, left or
|
588
621
|
* bottom overlay.
|
@@ -602,6 +635,7 @@ class TableView {
|
|
602
635
|
*/
|
603
636
|
initializeWalkontable() {
|
604
637
|
const walkontableConfig = {
|
638
|
+
themeName: this.settings.themeName,
|
605
639
|
ariaTags: this.settings.ariaTags,
|
606
640
|
rtlMode: this.hot.isRtl(),
|
607
641
|
externalRowCalculator: this.hot.getPlugin('autoRowSize') && this.hot.getPlugin('autoRowSize').isEnabled(),
|
@@ -609,6 +643,7 @@ class TableView {
|
|
609
643
|
isDataViewInstance: () => isRootInstance(this.hot),
|
610
644
|
preventOverflow: () => this.settings.preventOverflow,
|
611
645
|
preventWheel: () => this.settings.preventWheel,
|
646
|
+
stretchH: () => this.settings.stretchH,
|
612
647
|
viewportColumnRenderingThreshold: () => this.settings.viewportColumnRenderingThreshold,
|
613
648
|
viewportRowRenderingThreshold: () => this.settings.viewportRowRenderingThreshold,
|
614
649
|
data: (renderableRow, renderableColumn) => {
|
@@ -907,6 +942,10 @@ class TableView {
|
|
907
942
|
},
|
908
943
|
onBeforeTouchScroll: () => this.hot.runHooks('beforeTouchScroll'),
|
909
944
|
onAfterMomentumScroll: () => this.hot.runHooks('afterMomentumScroll'),
|
945
|
+
onBeforeStretchingColumnWidth: (stretchedWidth, renderedColumnIndex) => {
|
946
|
+
const visualColumnIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);
|
947
|
+
return this.hot.runHooks('beforeStretchingColumnWidth', stretchedWidth, visualColumnIndex);
|
948
|
+
},
|
910
949
|
onModifyRowHeaderWidth: rowHeaderWidth => this.hot.runHooks('modifyRowHeaderWidth', rowHeaderWidth),
|
911
950
|
onModifyGetCellCoords: (renderableRowIndex, renderableColumnIndex, topmost, source) => {
|
912
951
|
const rowMapper = this.hot.rowIndexMapper;
|
@@ -1530,44 +1569,6 @@ class TableView {
|
|
1530
1569
|
getTableHeight() {
|
1531
1570
|
return this._wt.wtTable.getHeight();
|
1532
1571
|
}
|
1533
|
-
|
1534
|
-
/**
|
1535
|
-
* Gets the row header width. If there are multiple row headers, the width of
|
1536
|
-
* the sum of all of them is returned.
|
1537
|
-
*
|
1538
|
-
* @returns {number}
|
1539
|
-
*/
|
1540
|
-
getRowHeaderWidth() {
|
1541
|
-
return this._wt.wtViewport.getRowHeaderWidth();
|
1542
|
-
}
|
1543
|
-
|
1544
|
-
/**
|
1545
|
-
* Gets the column header height. If there are multiple column headers, the height
|
1546
|
-
* of the sum of all of them is returned.
|
1547
|
-
*
|
1548
|
-
* @returns {number}
|
1549
|
-
*/
|
1550
|
-
getColumnHeaderHeight() {
|
1551
|
-
return this._wt.wtViewport.getColumnHeaderHeight();
|
1552
|
-
}
|
1553
|
-
|
1554
|
-
/**
|
1555
|
-
* Checks if the table uses the window as a viewport and if there is a vertical scrollbar.
|
1556
|
-
*
|
1557
|
-
* @returns {boolean}
|
1558
|
-
*/
|
1559
|
-
isVerticallyScrollableByWindow() {
|
1560
|
-
return this._wt.wtViewport.isVerticallyScrollableByWindow();
|
1561
|
-
}
|
1562
|
-
|
1563
|
-
/**
|
1564
|
-
* Checks if the table uses the window as a viewport and if there is a horizontal scrollbar.
|
1565
|
-
*
|
1566
|
-
* @returns {boolean}
|
1567
|
-
*/
|
1568
|
-
isHorizontallyScrollableByWindow() {
|
1569
|
-
return this._wt.wtViewport.isHorizontallyScrollableByWindow();
|
1570
|
-
}
|
1571
1572
|
/**
|
1572
1573
|
* Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
|
1573
1574
|
*
|
package/utils/autoResize.js
CHANGED
@@ -77,6 +77,7 @@ function createInputElementResizer(ownerDocument) {
|
|
77
77
|
* Resizes the element.
|
78
78
|
*/
|
79
79
|
function resize() {
|
80
|
+
var _getComputedStyle, _getComputedStyle2;
|
80
81
|
textHolder.textContent = observedElement.value;
|
81
82
|
// Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
|
82
83
|
// `flex-direction` set as `column`.
|
@@ -85,7 +86,9 @@ function createInputElementResizer(ownerDocument) {
|
|
85
86
|
textContainer.style.fontFamily = getComputedStyle(observedElement).fontFamily;
|
86
87
|
textContainer.style.whiteSpace = 'pre';
|
87
88
|
body.appendChild(textContainer);
|
88
|
-
const
|
89
|
+
const paddingStart = parseInt(((_getComputedStyle = getComputedStyle(observedElement)) === null || _getComputedStyle === void 0 ? void 0 : _getComputedStyle.paddingInlineStart) || 0, 10);
|
90
|
+
const paddingEnd = parseInt(((_getComputedStyle2 = getComputedStyle(observedElement)) === null || _getComputedStyle2 === void 0 ? void 0 : _getComputedStyle2.paddingInlineEnd) || 0, 10);
|
91
|
+
const width = textContainer.clientWidth + 2 + paddingStart + paddingEnd;
|
89
92
|
body.removeChild(textContainer);
|
90
93
|
const elementStyle = observedElement.style;
|
91
94
|
elementStyle.height = `${defaults.minHeight}px`;
|
package/utils/autoResize.mjs
CHANGED
@@ -73,6 +73,7 @@ export function createInputElementResizer(ownerDocument) {
|
|
73
73
|
* Resizes the element.
|
74
74
|
*/
|
75
75
|
function resize() {
|
76
|
+
var _getComputedStyle, _getComputedStyle2;
|
76
77
|
textHolder.textContent = observedElement.value;
|
77
78
|
// Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
|
78
79
|
// `flex-direction` set as `column`.
|
@@ -81,7 +82,9 @@ export function createInputElementResizer(ownerDocument) {
|
|
81
82
|
textContainer.style.fontFamily = getComputedStyle(observedElement).fontFamily;
|
82
83
|
textContainer.style.whiteSpace = 'pre';
|
83
84
|
body.appendChild(textContainer);
|
84
|
-
const
|
85
|
+
const paddingStart = parseInt(((_getComputedStyle = getComputedStyle(observedElement)) === null || _getComputedStyle === void 0 ? void 0 : _getComputedStyle.paddingInlineStart) || 0, 10);
|
86
|
+
const paddingEnd = parseInt(((_getComputedStyle2 = getComputedStyle(observedElement)) === null || _getComputedStyle2 === void 0 ? void 0 : _getComputedStyle2.paddingInlineEnd) || 0, 10);
|
87
|
+
const width = textContainer.clientWidth + 2 + paddingStart + paddingEnd;
|
85
88
|
body.removeChild(textContainer);
|
86
89
|
const elementStyle = observedElement.style;
|
87
90
|
elementStyle.height = `${defaults.minHeight}px`;
|
package/utils/ghostTable.js
CHANGED
@@ -131,7 +131,7 @@ class GhostTable {
|
|
131
131
|
if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {
|
132
132
|
// Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.
|
133
133
|
// We render all columns.
|
134
|
-
this.hot.view.appendColHeader(column, this.table.th);
|
134
|
+
this.hot.view.appendColHeader(column, this.table.th, undefined, -1);
|
135
135
|
}
|
136
136
|
this.table.tBody.appendChild(this.createCol(column));
|
137
137
|
this.container.container.appendChild(this.table.fragment);
|
package/utils/ghostTable.mjs
CHANGED
@@ -128,7 +128,7 @@ class GhostTable {
|
|
128
128
|
if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {
|
129
129
|
// Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.
|
130
130
|
// We render all columns.
|
131
|
-
this.hot.view.appendColHeader(column, this.table.th);
|
131
|
+
this.hot.view.appendColHeader(column, this.table.th, undefined, -1);
|
132
132
|
}
|
133
133
|
this.table.tBody.appendChild(this.createCol(column));
|
134
134
|
this.container.container.appendChild(this.table.fragment);
|
@@ -1,159 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
require("core-js/modules/es.error.cause.js");
|
5
|
-
var _src = require("../../3rdparty/walkontable/src");
|
6
|
-
var _element = require("../../helpers/dom/element");
|
7
|
-
var _all = require("./strategies/all");
|
8
|
-
var _last = require("./strategies/last");
|
9
|
-
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
10
|
-
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
11
|
-
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
12
|
-
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
13
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
14
|
-
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
15
|
-
const STRETCH_WIDTH_MAP_NAME = 'stretchColumns';
|
16
|
-
|
17
|
-
/**
|
18
|
-
* The class responsible for calculating the column widths based on the specified column stretching strategy.
|
19
|
-
*
|
20
|
-
* @private
|
21
|
-
* @class StretchCalculator
|
22
|
-
*/
|
23
|
-
var _hot = /*#__PURE__*/new WeakMap();
|
24
|
-
var _widthsMap = /*#__PURE__*/new WeakMap();
|
25
|
-
var _stretchStrategies = /*#__PURE__*/new WeakMap();
|
26
|
-
var _activeStrategy = /*#__PURE__*/new WeakMap();
|
27
|
-
var _StretchCalculator_brand = /*#__PURE__*/new WeakSet();
|
28
|
-
class StretchCalculator {
|
29
|
-
constructor(hotInstance) {
|
30
|
-
/**
|
31
|
-
* Checks if the vertical scrollbar will appear. Based on the current data and viewport size
|
32
|
-
* the method calculates if the vertical scrollbar will appear after the table is rendered.
|
33
|
-
* The method is a workaround for the issue in the Walkontable that returns unstable viewport
|
34
|
-
* size.
|
35
|
-
*
|
36
|
-
* @returns {boolean}
|
37
|
-
*/
|
38
|
-
_classPrivateMethodInitSpec(this, _StretchCalculator_brand);
|
39
|
-
/**
|
40
|
-
* The Handsontable instance.
|
41
|
-
*
|
42
|
-
* @type {Core}
|
43
|
-
*/
|
44
|
-
_classPrivateFieldInitSpec(this, _hot, void 0);
|
45
|
-
/**
|
46
|
-
* The map that stores the calculated column widths.
|
47
|
-
*
|
48
|
-
* @type {IndexToValueMap}
|
49
|
-
*/
|
50
|
-
_classPrivateFieldInitSpec(this, _widthsMap, void 0);
|
51
|
-
/**
|
52
|
-
* The map that stores the available stretch strategies.
|
53
|
-
*
|
54
|
-
* @type {Map<string, StretchAllStrategy | StretchLastStrategy>}
|
55
|
-
*/
|
56
|
-
_classPrivateFieldInitSpec(this, _stretchStrategies, new Map([['all', new _all.StretchAllStrategy(_assertClassBrand(_StretchCalculator_brand, this, _overwriteColumnWidthFn).bind(this))], ['last', new _last.StretchLastStrategy(_assertClassBrand(_StretchCalculator_brand, this, _overwriteColumnWidthFn).bind(this))]]));
|
57
|
-
/**
|
58
|
-
* The active stretch mode.
|
59
|
-
*
|
60
|
-
* @type {'all' | 'last' | 'none'}
|
61
|
-
*/
|
62
|
-
_classPrivateFieldInitSpec(this, _activeStrategy, 'none');
|
63
|
-
_classPrivateFieldSet(_hot, this, hotInstance);
|
64
|
-
_classPrivateFieldSet(_widthsMap, this, _classPrivateFieldGet(_hot, this).columnIndexMapper.createAndRegisterIndexMap(STRETCH_WIDTH_MAP_NAME, 'physicalIndexToValue'));
|
65
|
-
}
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Sets the active stretch strategy.
|
69
|
-
*
|
70
|
-
* @param {'all' | 'last' | 'none'} strategyName The stretch strategy to use.
|
71
|
-
*/
|
72
|
-
useStrategy(strategyName) {
|
73
|
-
_classPrivateFieldSet(_activeStrategy, this, _classPrivateFieldGet(_stretchStrategies, this).has(strategyName) ? strategyName : 'none');
|
74
|
-
}
|
75
|
-
|
76
|
-
/**
|
77
|
-
* Recalculates the column widths.
|
78
|
-
*/
|
79
|
-
refreshStretching() {
|
80
|
-
if (_classPrivateFieldGet(_activeStrategy, this) === 'none') {
|
81
|
-
_classPrivateFieldGet(_widthsMap, this).clear();
|
82
|
-
return;
|
83
|
-
}
|
84
|
-
_classPrivateFieldGet(_hot, this).batchExecution(() => {
|
85
|
-
_classPrivateFieldGet(_widthsMap, this).clear();
|
86
|
-
const stretchStrategy = _classPrivateFieldGet(_stretchStrategies, this).get(_classPrivateFieldGet(_activeStrategy, this));
|
87
|
-
const view = _classPrivateFieldGet(_hot, this).view;
|
88
|
-
let viewportWidth = view.getViewportWidth();
|
89
|
-
if (_assertClassBrand(_StretchCalculator_brand, this, _willVerticalScrollAppear).call(this)) {
|
90
|
-
viewportWidth -= (0, _element.getScrollbarWidth)(_classPrivateFieldGet(_hot, this).rootDocument);
|
91
|
-
}
|
92
|
-
stretchStrategy.prepare({
|
93
|
-
viewportWidth
|
94
|
-
});
|
95
|
-
for (let columnIndex = 0; columnIndex < _classPrivateFieldGet(_hot, this).countCols(); columnIndex++) {
|
96
|
-
if (!_classPrivateFieldGet(_hot, this).columnIndexMapper.isHidden(_classPrivateFieldGet(_hot, this).toPhysicalColumn(columnIndex))) {
|
97
|
-
stretchStrategy.setColumnBaseWidth(columnIndex, _assertClassBrand(_StretchCalculator_brand, this, _getWidthWithoutStretching).call(this, columnIndex));
|
98
|
-
}
|
99
|
-
}
|
100
|
-
stretchStrategy.calculate();
|
101
|
-
stretchStrategy.getWidths().forEach(_ref => {
|
102
|
-
let [columnIndex, width] = _ref;
|
103
|
-
_classPrivateFieldGet(_widthsMap, this).setValueAtIndex(_classPrivateFieldGet(_hot, this).toPhysicalColumn(columnIndex), width);
|
104
|
-
});
|
105
|
-
}, true);
|
106
|
-
}
|
107
|
-
|
108
|
-
/**
|
109
|
-
* Gets the calculated column width.
|
110
|
-
*
|
111
|
-
* @param {number} columnVisualIndex Column visual index.
|
112
|
-
* @returns {number | null}
|
113
|
-
*/
|
114
|
-
getStretchedWidth(columnVisualIndex) {
|
115
|
-
return _classPrivateFieldGet(_widthsMap, this).getValueAtIndex(_classPrivateFieldGet(_hot, this).toPhysicalColumn(columnVisualIndex));
|
116
|
-
}
|
117
|
-
}
|
118
|
-
exports.StretchCalculator = StretchCalculator;
|
119
|
-
function _willVerticalScrollAppear() {
|
120
|
-
const {
|
121
|
-
view
|
122
|
-
} = _classPrivateFieldGet(_hot, this);
|
123
|
-
if (view.isVerticallyScrollableByWindow()) {
|
124
|
-
return false;
|
125
|
-
}
|
126
|
-
const viewportHeight = view.getViewportHeight();
|
127
|
-
const totalRows = _classPrivateFieldGet(_hot, this).countRows();
|
128
|
-
let totalHeight = 0;
|
129
|
-
let hasVerticalScroll = false;
|
130
|
-
for (let row = 0; row < totalRows; row++) {
|
131
|
-
var _classPrivateFieldGet2;
|
132
|
-
totalHeight += ((_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getRowHeight(row)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : _src.DEFAULT_ROW_HEIGHT) + (row === 0 ? 1 : 0);
|
133
|
-
if (totalHeight > viewportHeight) {
|
134
|
-
hasVerticalScroll = true;
|
135
|
-
break;
|
136
|
-
}
|
137
|
-
}
|
138
|
-
return hasVerticalScroll;
|
139
|
-
}
|
140
|
-
/**
|
141
|
-
* Gets the column width from the Handsontable API without logic related to stretching.
|
142
|
-
*
|
143
|
-
* @param {number} columnVisualIndex Column visual index.
|
144
|
-
* @returns {number}
|
145
|
-
*/
|
146
|
-
function _getWidthWithoutStretching(columnVisualIndex) {
|
147
|
-
var _classPrivateFieldGet3;
|
148
|
-
return (_classPrivateFieldGet3 = _classPrivateFieldGet(_hot, this).getColWidth(columnVisualIndex, 'StretchColumns')) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : _src.DEFAULT_COLUMN_WIDTH;
|
149
|
-
}
|
150
|
-
/**
|
151
|
-
* Executes the hook that allows to overwrite the column width.
|
152
|
-
*
|
153
|
-
* @param {number} columnWidth The column width.
|
154
|
-
* @param {number} columnVisualIndex Column visual index.
|
155
|
-
* @returns {number}
|
156
|
-
*/
|
157
|
-
function _overwriteColumnWidthFn(columnWidth, columnVisualIndex) {
|
158
|
-
return _classPrivateFieldGet(_hot, this).runHooks('beforeStretchingColumnWidth', columnWidth, columnVisualIndex);
|
159
|
-
}
|