handsontable 18.0.0-rc4 → 18.0.0

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 (127) hide show
  1. package/3rdparty/walkontable/src/renderer/cells.d.ts +0 -6
  2. package/3rdparty/walkontable/src/renderer/cells.js +2 -7
  3. package/3rdparty/walkontable/src/renderer/cells.mjs +2 -7
  4. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  5. package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
  6. package/3rdparty/walkontable/src/renderer/columnHeaderRows.js +1 -1
  7. package/3rdparty/walkontable/src/renderer/columnHeaderRows.mjs +1 -1
  8. package/3rdparty/walkontable/src/renderer/columnHeaders.d.ts +0 -6
  9. package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -7
  10. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -7
  11. package/3rdparty/walkontable/src/renderer/rowHeaders.d.ts +0 -6
  12. package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -10
  13. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -10
  14. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  15. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  16. package/3rdparty/walkontable/src/utils/nodesPool.d.ts +10 -10
  17. package/3rdparty/walkontable/src/utils/nodesPool.js +16 -32
  18. package/3rdparty/walkontable/src/utils/nodesPool.mjs +11 -31
  19. package/3rdparty/walkontable/src/utils/orderView/constants.d.ts +0 -36
  20. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -24
  21. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -30
  22. package/3rdparty/walkontable/src/utils/orderView/view.d.ts +27 -20
  23. package/3rdparty/walkontable/src/utils/orderView/view.js +79 -16
  24. package/3rdparty/walkontable/src/utils/orderView/view.mjs +86 -17
  25. package/3rdparty/walkontable/src/utils/orderView/viewSize.d.ts +2 -14
  26. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +2 -14
  27. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +2 -14
  28. package/CHANGELOG.md +4 -1
  29. package/base.js +2 -2
  30. package/base.mjs +2 -2
  31. package/core/types.d.ts +4 -0
  32. package/core.js +25 -4
  33. package/core.mjs +25 -4
  34. package/dataMap/metaManager/index.d.ts +22 -0
  35. package/dataMap/metaManager/index.js +20 -0
  36. package/dataMap/metaManager/index.mjs +20 -0
  37. package/dataMap/metaManager/metaLayers/cellMeta.d.ts +30 -0
  38. package/dataMap/metaManager/metaLayers/cellMeta.js +110 -0
  39. package/dataMap/metaManager/metaLayers/cellMeta.mjs +111 -1
  40. package/dataMap/metaManager/metaSchema.js +9 -0
  41. package/dataMap/metaManager/metaSchema.mjs +9 -0
  42. package/dataMap/sourceDataValidator.d.ts +25 -2
  43. package/dataMap/sourceDataValidator.js +163 -29
  44. package/dataMap/sourceDataValidator.mjs +178 -30
  45. package/dist/handsontable.full.js +2182 -2392
  46. package/dist/handsontable.full.min.js +95 -95
  47. package/dist/handsontable.js +2182 -2387
  48. package/dist/handsontable.min.js +95 -95
  49. package/dist/themes/classic.js +2 -2
  50. package/dist/themes/classic.min.js +2 -2
  51. package/dist/themes/horizon.js +2 -2
  52. package/dist/themes/horizon.min.js +2 -2
  53. package/dist/themes/main.js +2 -2
  54. package/dist/themes/main.min.js +2 -2
  55. package/dist/themes/static/variables/colors/ant.js +2 -2
  56. package/dist/themes/static/variables/colors/ant.min.js +2 -2
  57. package/dist/themes/static/variables/colors/classic.js +2 -2
  58. package/dist/themes/static/variables/colors/classic.min.js +2 -2
  59. package/dist/themes/static/variables/colors/horizon.js +2 -2
  60. package/dist/themes/static/variables/colors/horizon.min.js +2 -2
  61. package/dist/themes/static/variables/colors/main.js +2 -2
  62. package/dist/themes/static/variables/colors/main.min.js +2 -2
  63. package/dist/themes/static/variables/colors/material.js +2 -2
  64. package/dist/themes/static/variables/colors/material.min.js +2 -2
  65. package/dist/themes/static/variables/colors/shadcn.js +2 -2
  66. package/dist/themes/static/variables/colors/shadcn.min.js +2 -2
  67. package/dist/themes/static/variables/density.js +2 -2
  68. package/dist/themes/static/variables/density.min.js +2 -2
  69. package/dist/themes/static/variables/helpers/iconsMap.js +2 -2
  70. package/dist/themes/static/variables/helpers/iconsMap.min.js +2 -2
  71. package/dist/themes/static/variables/icons/horizon.js +2 -2
  72. package/dist/themes/static/variables/icons/horizon.min.js +2 -2
  73. package/dist/themes/static/variables/icons/main.js +2 -2
  74. package/dist/themes/static/variables/icons/main.min.js +2 -2
  75. package/dist/themes/static/variables/sizing.js +2 -2
  76. package/dist/themes/static/variables/sizing.min.js +2 -2
  77. package/dist/themes/static/variables/tokens/classic.js +2 -2
  78. package/dist/themes/static/variables/tokens/classic.min.js +2 -2
  79. package/dist/themes/static/variables/tokens/horizon.js +2 -2
  80. package/dist/themes/static/variables/tokens/horizon.min.js +2 -2
  81. package/dist/themes/static/variables/tokens/main.js +2 -2
  82. package/dist/themes/static/variables/tokens/main.min.js +2 -2
  83. package/helpers/dom/element.js +13 -6
  84. package/helpers/dom/element.mjs +13 -6
  85. package/helpers/mixed.js +2 -2
  86. package/helpers/mixed.mjs +2 -2
  87. package/package.json +1 -1
  88. package/styles/handsontable.css +2 -2
  89. package/styles/handsontable.min.css +2 -2
  90. package/styles/handsontableStyles.js +1 -1
  91. package/styles/handsontableStyles.mjs +1 -1
  92. package/styles/ht-icons-horizon.min.css +2 -2
  93. package/styles/ht-icons-main.min.css +2 -2
  94. package/styles/ht-theme-classic-no-icons.min.css +2 -2
  95. package/styles/ht-theme-classic.min.css +2 -2
  96. package/styles/ht-theme-horizon-no-icons.min.css +2 -2
  97. package/styles/ht-theme-horizon.min.css +2 -2
  98. package/styles/ht-theme-main-no-icons.min.css +2 -2
  99. package/styles/ht-theme-main.min.css +2 -2
  100. package/utils/licenseNotification.js +1 -1
  101. package/utils/licenseNotification.mjs +1 -1
  102. package/validators/dateValidator/dateValidator.d.ts +3 -0
  103. package/validators/dateValidator/dateValidator.js +4 -0
  104. package/validators/dateValidator/dateValidator.mjs +4 -0
  105. package/validators/timeValidator/timeValidator.d.ts +3 -0
  106. package/validators/timeValidator/timeValidator.js +4 -0
  107. package/validators/timeValidator/timeValidator.mjs +4 -0
  108. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.d.mts +0 -1
  109. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.d.ts +0 -60
  110. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.js +0 -96
  111. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.mjs +0 -91
  112. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.d.mts +0 -1
  113. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.d.ts +0 -45
  114. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.js +0 -97
  115. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.mjs +0 -91
  116. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.d.mts +0 -1
  117. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.d.ts +0 -10
  118. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.js +0 -19
  119. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.mjs +0 -14
  120. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.d.mts +0 -1
  121. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.d.ts +0 -44
  122. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.js +0 -138
  123. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.mjs +0 -133
  124. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.d.mts +0 -1
  125. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.d.ts +0 -57
  126. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +0 -137
  127. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +0 -127
@@ -25,7 +25,7 @@
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: 18.0.0-rc4
29
- * Release date: 24/06/2026 (built at 24/06/2026 08:31:15)
28
+ * Version: 18.0.0
29
+ * Release date: 30/06/2026 (built at 30/06/2026 08:45:28)
30
30
  */
31
31
  .ht-theme-main,.ht-theme-main-dark,.ht-theme-main-dark-auto{--ht-sizing-size-0:0px;--ht-sizing-size-0-5:2px;--ht-sizing-size-1:4px;--ht-sizing-size-2:8px;--ht-sizing-size-1-5:6px;--ht-sizing-size-3:12px;--ht-sizing-size-4:16px;--ht-sizing-size-5:20px;--ht-sizing-size-6:24px;--ht-sizing-size-7:28px;--ht-sizing-size-8:32px;--ht-sizing-size-9:36px;--ht-sizing-size-10:40px;--ht-sizing-size-0-25:1px;--ht-density-cell-vertical:var(--ht-sizing-size-1);--ht-density-cell-horizontal:var(--ht-sizing-size-2);--ht-density-bars-horizontal:var(--ht-sizing-size-4);--ht-density-bars-vertical:var(--ht-sizing-size-2);--ht-density-gap:var(--ht-sizing-size-1);--ht-density-button-horizontal:var(--ht-sizing-size-3);--ht-density-button-vertical:var(--ht-sizing-size-1-5);--ht-density-dialog-horizontal:var(--ht-sizing-size-2);--ht-density-dialog-vertical:var(--ht-sizing-size-2);--ht-density-input-horizontal:var(--ht-sizing-size-3);--ht-density-input-vertical:var(--ht-sizing-size-1-5);--ht-density-menu-vertical:var(--ht-sizing-size-2);--ht-density-menu-horizontal:var(--ht-sizing-size-0);--ht-density-menu-item-vertical:var(--ht-sizing-size-1);--ht-density-menu-item-horizontal:var(--ht-sizing-size-3);--ht-colors-white:#fff;--ht-colors-black:#000;--ht-colors-primary-100:#6180ff;--ht-colors-primary-200:#5573f0;--ht-colors-primary-300:#4669f6;--ht-colors-primary-400:#2e56fc;--ht-colors-primary-500:#1a42e8;--ht-colors-primary-600:#1535bc;--ht-colors-palette-50:#f7f7f9;--ht-colors-palette-100:#e7e7e9;--ht-colors-palette-200:#b9b9bb;--ht-colors-palette-300:#a3a3a3;--ht-colors-palette-400:#68696c;--ht-colors-palette-500:#404144;--ht-colors-palette-600:#313132;--ht-colors-palette-700:#282829;--ht-colors-palette-800:#222;--ht-colors-palette-900:#1e1e1f;--ht-colors-palette-950:#050506;--ht-colors-transparent:#fff0;--ht-font-family:Inter;--ht-font-size:14px;--ht-font-size-small:12px;--ht-line-height:20px;--ht-line-height-small:18px;--ht-font-weight:400;--ht-letter-spacing:0px;--ht-border-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-accent-color:var(--lightningcss-light,var(--ht-colors-primary-500))var(--lightningcss-dark,var(--ht-colors-primary-300));--ht-foreground-color:var(--lightningcss-light,var(--ht-colors-palette-800))var(--lightningcss-dark,var(--ht-colors-palette-200));--ht-foreground-secondary-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-background-color:var(--lightningcss-light,var(--ht-colors-white))var(--lightningcss-dark,var(--ht-colors-palette-950));--ht-background-secondary-color:var(--lightningcss-light,var(--ht-colors-palette-50))var(--lightningcss-dark,var(--ht-colors-palette-900));--ht-placeholder-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400));--ht-read-only-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-disabled-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400));--ht-gap-size:var(--ht-density-gap);--ht-icon-size:var(--ht-sizing-size-4);--ht-table-transition:.15s;--ht-border-radius:var(--ht-sizing-size-1);--ht-bar-foreground-color:var(--ht-foreground-color);--ht-bar-background-color:var(--ht-background-secondary-color);--ht-bar-horizontal-padding:var(--ht-density-bars-horizontal);--ht-bar-vertical-padding:var(--ht-density-bars-vertical);--ht-shadow-color:var(--lightningcss-light,var(--ht-colors-palette-800))var(--lightningcss-dark,var(--ht-colors-palette-200));--ht-shadow-x:var(--ht-sizing-size-0);--ht-shadow-y:var(--ht-sizing-size-2);--ht-shadow-blur:var(--ht-sizing-size-4);--ht-shadow-opacity:8%;--ht-cell-horizontal-padding:var(--ht-density-cell-horizontal);--ht-cell-vertical-padding:var(--ht-density-cell-vertical);--ht-cell-horizontal-border-color:var(--ht-border-color);--ht-cell-vertical-border-color:var(--ht-border-color);--ht-cell-selection-border-color:var(--ht-accent-color);--ht-cell-selection-background-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-cell-success-background-color:#37bc6c33;--ht-cell-error-background-color:#fa4d3233;--ht-cell-read-only-background-color:var(--ht-background-secondary-color);--ht-cell-autofill-size:var(--ht-sizing-size-1-5);--ht-cell-autofill-hit-area-size:var(--ht-sizing-size-3);--ht-cell-autofill-border-width:var(--ht-sizing-size-0-25);--ht-cell-autofill-border-radius:var(--ht-sizing-size-1);--ht-cell-autofill-border-color:var(--ht-background-color);--ht-cell-autofill-background-color:var(--ht-accent-color);--ht-cell-autofill-fill-border-color:var(--ht-foreground-color);--ht-cell-editor-border-width:2px;--ht-cell-editor-border-color:var(--ht-accent-color);--ht-cell-editor-foreground-color:var(--lightningcss-light,var(--ht-colors-palette-950))var(--lightningcss-dark,var(--ht-colors-white));--ht-cell-editor-background-color:var(--ht-background-color);--ht-cell-editor-shadow-blur-radius:0px;--ht-cell-editor-shadow-color:var(--ht-accent-color);--ht-cell-mobile-handle-size:var(--ht-sizing-size-3);--ht-cell-mobile-handle-border-width:var(--ht-sizing-size-0-25);--ht-cell-mobile-handle-border-radius:var(--ht-sizing-size-3);--ht-cell-mobile-handle-border-color:var(--ht-accent-color);--ht-cell-mobile-handle-background-color:var(--ht-accent-color);--ht-cell-mobile-handle-background-opacity:40%;--ht-header-font-weight:var(--ht-font-weight);--ht-header-foreground-color:var(--ht-foreground-color);--ht-header-background-color:var(--ht-background-secondary-color);--ht-header-highlighted-shadow-size:0px;--ht-header-highlighted-foreground-color:var(--lightningcss-light,var(--ht-colors-palette-950))var(--lightningcss-dark,var(--ht-colors-white));--ht-header-highlighted-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-header-active-border-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-header-active-foreground-color:var(--ht-colors-white);--ht-header-active-background-color:var(--ht-accent-color);--ht-header-filter-background-color:var(--ht-cell-success-background-color);--ht-header-row-foreground-color:var(--ht-foreground-color);--ht-header-row-background-color:var(--ht-background-secondary-color);--ht-header-row-highlighted-foreground-color:var(--lightningcss-light,var(--ht-colors-palette-950))var(--lightningcss-dark,var(--ht-colors-white));--ht-header-row-highlighted-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-header-row-active-foreground-color:var(--ht-colors-white);--ht-header-row-active-background-color:var(--ht-accent-color);--ht-row-header-odd-background-color:var(--ht-header-row-background-color);--ht-row-header-even-background-color:var(--ht-header-row-background-color);--ht-row-cell-odd-background-color:var(--ht-background-color);--ht-row-cell-even-background-color:var(--ht-background-color);--ht-button-border-radius:var(--ht-sizing-size-1);--ht-button-horizontal-padding:var(--ht-density-button-horizontal);--ht-button-vertical-padding:var(--ht-density-button-vertical);--ht-primary-button-border-color:var(--ht-colors-transparent);--ht-primary-button-foreground-color:var(--ht-colors-white);--ht-primary-button-background-color:var(--ht-accent-color);--ht-primary-button-disabled-border-color:var(--ht-colors-transparent);--ht-primary-button-disabled-foreground-color:var(--ht-disabled-color);--ht-primary-button-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-primary-button-hover-border-color:var(--ht-colors-transparent);--ht-primary-button-hover-foreground-color:var(--ht-background-color);--ht-primary-button-hover-background-color:var(--lightningcss-light,var(--ht-colors-primary-600))var(--lightningcss-dark,var(--ht-colors-primary-100));--ht-primary-button-focus-border-color:var(--ht-background-color);--ht-primary-button-focus-foreground-color:var(--ht-background-color);--ht-primary-button-focus-background-color:var(--ht-accent-color);--ht-secondary-button-border-color:var(--ht-border-color);--ht-secondary-button-foreground-color:var(--ht-foreground-color);--ht-secondary-button-background-color:var(--ht-background-color);--ht-secondary-button-disabled-border-color:var(--ht-border-color);--ht-secondary-button-disabled-foreground-color:var(--ht-disabled-color);--ht-secondary-button-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-secondary-button-hover-border-color:var(--ht-border-color);--ht-secondary-button-hover-foreground-color:var(--ht-foreground-color);--ht-secondary-button-hover-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-secondary-button-focus-border-color:var(--ht-border-color);--ht-secondary-button-focus-foreground-color:var(--ht-foreground-color);--ht-secondary-button-focus-background-color:var(--ht-background-color);--ht-icon-button-border-radius:var(--ht-sizing-size-0-5);--ht-icon-button-large-border-radius:var(--ht-sizing-size-1);--ht-icon-button-large-padding:var(--ht-sizing-size-1);--ht-icon-button-border-color:var(--lightningcss-light,var(--ht-colors-palette-50))var(--lightningcss-dark,var(--ht-colors-palette-900));--ht-icon-button-background-color:var(--ht-background-secondary-color);--ht-icon-button-icon-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400));--ht-icon-button-hit-area-size:var(--ht-sizing-size-6);--ht-icon-button-hover-border-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-icon-button-hover-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-icon-button-hover-icon-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400));--ht-icon-button-active-border-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-icon-button-active-background-color:var(--ht-accent-color);--ht-icon-button-active-icon-color:var(--ht-colors-white);--ht-icon-button-active-hover-border-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-icon-button-active-hover-background-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-icon-button-active-hover-icon-color:var(--ht-colors-white);--ht-collapse-button-border-radius:var(--ht-sizing-size-1);--ht-collapse-button-open-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-collapse-button-open-background-color:var(--lightningcss-light,var(--ht-colors-white))var(--lightningcss-dark,var(--ht-colors-palette-950));--ht-collapse-button-open-icon-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-open-icon-active-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-open-hover-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-collapse-button-open-hover-background-color:var(--lightningcss-light,var(--ht-colors-palette-50))var(--lightningcss-dark,var(--ht-colors-palette-900));--ht-collapse-button-open-hover-icon-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-open-hover-icon-active-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-close-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-collapse-button-close-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-collapse-button-close-icon-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-close-icon-active-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-close-hover-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-collapse-button-close-hover-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-collapse-button-close-hover-icon-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-collapse-button-close-hover-icon-active-color:var(--lightningcss-light,var(--ht-colors-palette-400))var(--lightningcss-dark,var(--ht-colors-palette-300));--ht-link-color:var(--lightningcss-light,var(--ht-colors-primary-600))var(--lightningcss-dark,var(--ht-colors-primary-100));--ht-link-hover-color:var(--ht-accent-color);--ht-input-border-width:1px;--ht-input-border-radius:var(--ht-sizing-size-1);--ht-input-horizontal-padding:var(--ht-density-input-horizontal);--ht-input-vertical-padding:var(--ht-density-input-vertical);--ht-input-border-color:var(--ht-border-color);--ht-input-foreground-color:var(--ht-foreground-color);--ht-input-background-color:var(--ht-background-secondary-color);--ht-input-hover-border-color:var(--ht-border-color);--ht-input-hover-foreground-color:var(--ht-foreground-color);--ht-input-hover-background-color:var(--ht-background-color);--ht-input-disabled-border-color:var(--ht-border-color);--ht-input-disabled-foreground-color:var(--ht-disabled-color);--ht-input-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-input-focus-border-color:var(--ht-accent-color);--ht-input-focus-foreground-color:var(--ht-foreground-color);--ht-input-focus-background-color:var(--ht-background-color);--ht-checkbox-size:var(--ht-icon-size);--ht-checkbox-border-radius:var(--ht-sizing-size-1);--ht-checkbox-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-checkbox-background-color:var(--ht-background-color);--ht-checkbox-icon-color:var(--ht-colors-transparent);--ht-checkbox-focus-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-checkbox-focus-background-color:var(--ht-background-color);--ht-checkbox-focus-icon-color:var(--ht-colors-transparent);--ht-checkbox-focus-ring-color:var(--ht-accent-color);--ht-checkbox-disabled-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-checkbox-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-checkbox-disabled-icon-color:var(--ht-colors-transparent);--ht-checkbox-checked-border-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-checkbox-checked-background-color:var(--ht-accent-color);--ht-checkbox-checked-icon-color:var(--ht-colors-white);--ht-checkbox-checked-focus-border-color:var(--ht-background-color);--ht-checkbox-checked-focus-background-color:var(--ht-accent-color);--ht-checkbox-checked-focus-icon-color:var(--ht-colors-white);--ht-checkbox-checked-disabled-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-checkbox-checked-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-checkbox-checked-disabled-icon-color:var(--ht-disabled-color);--ht-checkbox-indeterminate-border-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-checkbox-indeterminate-background-color:var(--ht-accent-color);--ht-checkbox-indeterminate-icon-color:var(--ht-colors-white);--ht-checkbox-indeterminate-focus-border-color:var(--ht-background-color);--ht-checkbox-indeterminate-focus-background-color:var(--ht-accent-color);--ht-checkbox-indeterminate-focus-icon-color:var(--ht-colors-white);--ht-checkbox-indeterminate-disabled-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-600));--ht-checkbox-indeterminate-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-checkbox-indeterminate-disabled-icon-color:var(--ht-disabled-color);--ht-radio-size:var(--ht-icon-size);--ht-radio-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-radio-background-color:var(--ht-background-color);--ht-radio-icon-color:var(--ht-colors-transparent);--ht-radio-focus-border-color:var(--ht-border-color);--ht-radio-focus-background-color:var(--ht-background-color);--ht-radio-focus-icon-color:var(--ht-colors-transparent);--ht-radio-focus-ring-color:var(--ht-accent-color);--ht-radio-disabled-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-radio-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-radio-disabled-icon-color:var(--ht-colors-transparent);--ht-radio-checked-border-color:var(--ht-accent-color);--ht-radio-checked-background-color:var(--ht-background-color);--ht-radio-checked-icon-color:var(--ht-accent-color);--ht-radio-checked-focus-border-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-radio-checked-focus-background-color:var(--ht-background-color);--ht-radio-checked-focus-icon-color:var(--lightningcss-light,var(--ht-colors-primary-400))var(--lightningcss-dark,var(--ht-colors-primary-200));--ht-radio-checked-disabled-border-color:var(--lightningcss-light,var(--ht-colors-palette-200))var(--lightningcss-dark,var(--ht-colors-palette-500));--ht-radio-checked-disabled-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-radio-checked-disabled-icon-color:var(--ht-disabled-color);--ht-move-backlight-color:var(--lightningcss-light,var(--ht-colors-palette-800))var(--lightningcss-dark,var(--ht-colors-palette-200));--ht-move-backlight-opacity:8%;--ht-move-indicator-color:var(--ht-accent-color);--ht-resize-indicator-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400));--ht-hidden-indicator-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400));--ht-menu-border-width:1px;--ht-menu-border-radius:var(--ht-sizing-size-1);--ht-menu-horizontal-padding:var(--ht-density-menu-horizontal);--ht-menu-vertical-padding:var(--ht-density-menu-vertical);--ht-menu-item-horizontal-padding:var(--ht-density-menu-item-horizontal);--ht-menu-item-vertical-padding:var(--ht-density-menu-item-vertical);--ht-menu-border-color:var(--ht-border-color);--ht-menu-shadow-x:var(--ht-shadow-x);--ht-menu-shadow-y:var(--ht-shadow-y);--ht-menu-shadow-blur:var(--ht-shadow-blur);--ht-menu-shadow-color:var(--lightningcss-light,var(--ht-colors-palette-950))var(--lightningcss-dark,var(--ht-colors-white));--ht-menu-shadow-opacity:8%;--ht-menu-item-hover-color:var(--lightningcss-light,var(--ht-colors-palette-800))var(--lightningcss-dark,var(--ht-colors-palette-200));--ht-menu-item-hover-color-opacity:4%;--ht-menu-item-active-color:var(--ht-accent-color);--ht-menu-item-active-color-opacity:8%;--ht-comments-textarea-horizontal-padding:var(--ht-density-cell-horizontal);--ht-comments-textarea-vertical-padding:var(--ht-density-cell-vertical);--ht-comments-textarea-border-width:1px;--ht-comments-textarea-border-color:var(--ht-colors-transparent);--ht-comments-textarea-foreground-color:var(--ht-foreground-color);--ht-comments-textarea-background-color:var(--ht-background-secondary-color);--ht-comments-textarea-focus-border-width:1px;--ht-comments-textarea-focus-border-color:var(--ht-accent-color);--ht-comments-textarea-focus-foreground-color:var(--ht-foreground-color);--ht-comments-textarea-focus-background-color:var(--ht-background-color);--ht-comments-indicator-size:var(--ht-sizing-size-1-5);--ht-comments-indicator-color:var(--ht-accent-color);--ht-license-horizontal-padding:var(--ht-bar-horizontal-padding);--ht-license-vertical-padding:var(--ht-bar-vertical-padding);--ht-license-foreground-color:var(--ht-bar-foreground-color);--ht-license-background-color:var(--ht-bar-background-color);--ht-pagination-bar-foreground-color:var(--ht-bar-foreground-color);--ht-pagination-bar-background-color:var(--ht-bar-background-color);--ht-pagination-bar-horizontal-padding:var(--ht-bar-horizontal-padding);--ht-pagination-bar-vertical-padding:var(--ht-bar-vertical-padding);--ht-pagination-button-border-color:var(--ht-pagination-bar-background-color);--ht-pagination-button-foreground-color:var(--ht-foreground-secondary-color);--ht-pagination-button-background-color:var(--ht-pagination-bar-background-color);--ht-pagination-button-hover-border-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-pagination-button-hover-foreground-color:var(--ht-foreground-color);--ht-pagination-button-hover-background-color:var(--lightningcss-light,var(--ht-colors-palette-100))var(--lightningcss-dark,var(--ht-colors-palette-700));--ht-pagination-button-disabled-border-color:var(--ht-pagination-bar-background-color);--ht-pagination-button-disabled-foreground-color:var(--ht-disabled-color);--ht-pagination-button-disabled-background-color:var(--ht-pagination-bar-background-color);--ht-pagination-button-focus-border-color:var(--ht-accent-color);--ht-pagination-button-focus-foreground-color:var(--ht-foreground-color);--ht-pagination-button-focus-background-color:var(--ht-pagination-bar-background-color);--ht-dialog-semi-transparent-background-color:var(--lightningcss-light,var(--ht-colors-white))var(--lightningcss-dark,var(--ht-colors-palette-950));--ht-dialog-semi-transparent-background-opacity:80%;--ht-dialog-solid-background-color:var(--lightningcss-light,var(--ht-colors-white))var(--lightningcss-dark,var(--ht-colors-palette-950));--ht-dialog-content-padding-horizontal:var(--ht-density-dialog-horizontal);--ht-dialog-content-padding-vertical:var(--ht-density-dialog-vertical);--ht-dialog-content-border-radius:var(--ht-sizing-size-2);--ht-dialog-content-background-color:var(--ht-background-secondary-color);--ht-notification-foreground-color:var(--ht-foreground-color);--ht-notification-background-color:var(--ht-background-color);--ht-notification-border-color:var(--ht-background-color);--ht-notification-success-accent:#37bc6c;--ht-notification-warning-accent:#fbe952;--ht-notification-error-accent:#fa4d32;--ht-chip-background:var(--ht-background-secondary-color);--ht-chip-border-radius:var(--ht-sizing-size-0-5);--ht-chip-vertical-padding:var(--ht-sizing-size-0);--ht-chip-horizontal-padding:var(--ht-sizing-size-0-5);--ht-chip-gap:var(--ht-sizing-size-1);--ht-scrollbar-border-radius:var(--ht-sizing-size-2);--ht-scrollbar-track-color:var(--ht-background-secondary-color);--ht-scrollbar-thumb-color:var(--lightningcss-light,var(--ht-colors-palette-300))var(--lightningcss-dark,var(--ht-colors-palette-400))}.ht-theme-main{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.ht-theme-main-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.ht-theme-main-dark-auto{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){.ht-theme-main-dark-auto{--lightningcss-light: ;--lightningcss-dark:initial}}[class*=ht-theme-main] .htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,[class*=ht-theme-main] .htContextMenu 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{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M6.64648 10.9393L9.93938 7.64644L6.64648 4.35354%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .pika-single .pika-prev{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M9.49268 11.2929L6.19978 8.00001L9.49268 4.70712%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-page-size-section__select-wrapper:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cg opacity=%270.6%27%3E%3Cpath d=%27M11.5859 6L8.29304 9.29289L5.00015 6%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/g%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] .changeType:before,[class*=ht-theme-main] .htUISelectCaption:after,.htAutocompleteArrow:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M11.0002 6.66663C11.4262 6.66663 11.6487 7.15963 11.3917 7.47813L11.3537 7.52013L8.35372 10.5201C8.26762 10.6062 8.15307 10.6579 8.03156 10.6656C7.91005 10.6732 7.78992 10.6363 7.69372 10.5616L7.64672 10.5201L4.64672 7.52013L4.60522 7.47313L4.57822 7.43463L4.55122 7.38663L4.54272 7.36863L4.52922 7.33513L4.51322 7.28113L4.50822 7.25463L4.50322 7.22463L4.50122 7.19613V7.13713L4.50372 7.10813L4.50822 7.07813L4.51322 7.05213L4.52922 6.99813L4.54272 6.96463L4.57772 6.89863L4.61022 6.85363L4.64672 6.81313L4.69372 6.77163L4.73222 6.74463L4.78022 6.71763L4.79822 6.70913L4.83172 6.69563L4.88572 6.67963L4.91222 6.67463L4.94222 6.66963L4.97072 6.66763L11.0002 6.66663Z%27 fill=%27currentColor%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .columnSorting.sortAction.ascending:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M8.00008 12.6667L8.00008 3.33335M8.00008 3.33335L5.33342 6.00002M8.00008 3.33335L10.6667 6.00002%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .columnSorting.sortAction.descending:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M8.00004 3.33331V12.6666M8.00004 12.6666L10.6667 9.99998M8.00004 12.6666L5.33337 9.99998%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-page-navigation-section .ht-page-first:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M11.0713 4.64188L7.72115 7.99203L11.0713 11.3422M4.92936 4.08353L4.92936 11.3422%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] [dir=rtl] .ht-page-navigation-section .ht-page-first:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M4.9292 4.64188L8.27934 7.99203L4.9292 11.3422M11.0711 4.08353V11.3422%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-page-navigation-section .ht-page-prev:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M9.49268 11.2929L6.19978 8.00001L9.49268 4.70712%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] [dir=rtl] .ht-page-navigation-section .ht-page-prev:before,[class*=ht-theme-main] .ht-page-navigation-section .ht-page-next:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M6.64648 10.9393L9.93938 7.64644L6.64648 4.35354%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] [dir=rtl] .ht-page-navigation-section .ht-page-next:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M9.49268 11.2929L6.19978 8.00001L9.49268 4.70712%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-page-navigation-section .ht-page-last:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M4.9292 4.64188L8.27934 7.99203L4.9292 11.3422M11.0711 4.08353V11.3422%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] [dir=rtl] .ht-page-navigation-section .ht-page-last:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M11.0713 4.64188L7.72115 7.99203L11.0713 11.3422M4.92936 4.08353L4.92936 11.3422%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] .htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,[class*=ht-theme-main] .htContextMenu table tbody tr td .htItemWrapper span.selected:after,[class*=ht-theme-main] .htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M3.33337 8.00002L6.66671 11.3334L13.3334 4.66669%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .htCheckboxRendererInput{-webkit-appearance:none;appearance:none}[class*=ht-theme-main] .htCheckboxRendererInput:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M5 8L7 10L11 6%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] th.beforeHiddenColumn:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width=%2710%27 height=%2710%27 viewBox=%270 0 10 10%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M6.08482 1.35771L6.11503 1.3551H6.17649L6.2067 1.35771L6.23795 1.36239L6.26503 1.3676L6.32128 1.38427L6.35618 1.39833L6.42493 1.43479L6.4718 1.46864L6.51399 1.50667L6.55722 1.55562L6.58534 1.59573L6.61347 1.64573L6.62232 1.66448L6.63639 1.69937L6.65305 1.75562L6.65826 1.78323L6.66347 1.81448L6.66555 1.84417L6.66659 1.87489V8.12489C6.66659 8.56864 6.15305 8.80042 5.82128 8.53271L5.77753 8.49312L2.65253 5.36812C2.56286 5.27844 2.50899 5.15912 2.50103 5.03254C2.49307 4.90596 2.53157 4.78083 2.6093 4.68062L2.65253 4.63167L5.77753 1.50667L5.82649 1.46344L5.86659 1.43531L5.91659 1.40719L5.93534 1.39833L5.97024 1.38427L6.02649 1.3676L6.05409 1.36239L6.08482 1.35771Z%27 fill=%27currentColor%27/%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] th.afterHiddenColumn:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width=%2710%27 height=%2710%27 viewBox=%270 0 10 10%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M3.33337 1.87499C3.33337 1.43124 3.84692 1.19947 4.17869 1.46718L4.22244 1.50676L7.34744 4.63176C7.43711 4.72145 7.49098 4.84077 7.49894 4.96735C7.5069 5.09392 7.4684 5.21905 7.39067 5.31926L7.34744 5.36822L4.22244 8.49322L4.17348 8.53645L4.13337 8.56457L4.08337 8.5927L4.06462 8.60155L4.02973 8.61562L3.97348 8.63228L3.94587 8.63749L3.91462 8.6427L3.88494 8.64478L3.85421 8.64582L3.82348 8.64478L3.79327 8.64218L3.76202 8.63749L3.73494 8.63228L3.67869 8.61562L3.64379 8.60155L3.57504 8.5651L3.52817 8.53124L3.48598 8.49322L3.44275 8.44426L3.41462 8.40416L3.3865 8.35416L3.37764 8.33541L3.36358 8.30051L3.34692 8.24426L3.34171 8.21666L3.3365 8.18541L3.33442 8.15572L3.33337 1.87499Z%27 fill=%27currentColor%27/%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] th.beforeHiddenRow:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%278%27 height=%278%27 viewBox=%270 0 8 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M3.76425 2.43099C3.82165 2.3736 3.89801 2.33913 3.97902 2.33403C4.06003 2.32894 4.14012 2.35358 4.20425 2.40333L4.23558 2.43099L6.23558 4.43099L6.26325 4.46233L6.28125 4.48799L6.29925 4.51999L6.30492 4.53199L6.31392 4.55433L6.32458 4.59033L6.32792 4.60799L6.33125 4.62799L6.33258 4.64699L6.33325 4.66666L6.33258 4.68633L6.33092 4.70566L6.32792 4.72566L6.32458 4.74299L6.31392 4.77899L6.30492 4.80133L6.28158 4.84533L6.25992 4.87533L6.23558 4.90233L6.20425 4.92999L6.17858 4.94799L6.14658 4.96599L6.13458 4.97166L6.11225 4.98066L6.07625 4.99133L6.05858 4.99466L6.03858 4.99799L6.01958 4.99933L5.99992 4.99999H1.99992C1.71592 4.99999 1.56758 4.67133 1.73892 4.45899L1.76425 4.43099L3.76425 2.43099Z%27 fill=%27currentColor%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] th.afterHiddenRow:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%278%27 height=%278%27 viewBox=%270 0 8 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M5.9999 3C6.2839 3 6.43224 3.32867 6.2609 3.541L6.23557 3.569L4.23557 5.569C4.17817 5.62639 4.10181 5.66087 4.0208 5.66596C3.93979 5.67106 3.8597 5.64642 3.79557 5.59667L3.76424 5.569L1.76424 3.569L1.73657 3.53767L1.71857 3.512L1.70057 3.48L1.6949 3.468L1.6859 3.44567L1.67524 3.40967L1.6719 3.392L1.66857 3.372L1.66724 3.353V3.31367L1.6689 3.29433L1.6719 3.27433L1.67524 3.257L1.6859 3.221L1.6949 3.19867L1.71824 3.15467L1.7399 3.12467L1.76424 3.09767L1.79557 3.07L1.82124 3.052L1.85324 3.034L1.86524 3.02833L1.88757 3.01933L1.92357 3.00867L1.94124 3.00533L1.96124 3.002L1.98024 3.00067L5.9999 3Z%27 fill=%27currentColor%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .collapsibleIndicator:before,[class*=ht-theme-main] .ht_nestingButton:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M4.33325 8H11.6666%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .collapsibleIndicator.collapsed:before,[class*=ht-theme-main] .ht_nestingButton.ht_nestingExpand:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M7.49988 11.6667C7.49988 11.9428 7.72374 12.1667 7.99988 12.1667C8.27602 12.1667 8.49988 11.9428 8.49988 11.6667V8.50002H11.6666C11.9427 8.50002 12.1666 8.27616 12.1666 8.00002C12.1666 7.72388 11.9427 7.50002 11.6666 7.50002H8.49988V4.33337C8.49988 4.05723 8.27602 3.83337 7.99988 3.83337C7.72374 3.83337 7.49988 4.05723 7.49988 4.33337V7.50002H4.33325C4.05711 7.50002 3.83325 7.72388 3.83325 8.00002C3.83325 8.27616 4.05711 8.50002 4.33325 8.50002H7.49988V11.6667Z%27 fill=%27currentColor%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .htUIRadio>input[type=radio]:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Ccircle cx=%278%27 cy=%278%27 r=%274%27 fill=%27currentColor%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-multi-select-chip-remove:before,[class*=ht-theme-main] .ht-notification__close:before{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M12 4L4 12M4 4L12 12%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-multi-select-editor-search-icon{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27 fill=%27none%27%3E%3Cg opacity=%270.5%27%3E%3Cpath d=%27M28 28L20 20M4 13.3333C4 14.559 4.24141 15.7727 4.71046 16.905C5.1795 18.0374 5.86699 19.0663 6.73367 19.933C7.60035 20.7997 8.62925 21.4872 9.76162 21.9562C10.894 22.4253 12.1077 22.6667 13.3333 22.6667C14.559 22.6667 15.7727 22.4253 16.905 21.9562C18.0374 21.4872 19.0663 20.7997 19.933 19.933C20.7997 19.0663 21.4872 18.0374 21.9562 16.905C22.4253 15.7727 22.6667 14.559 22.6667 13.3333C22.6667 12.1077 22.4253 10.894 21.9562 9.76162C21.4872 8.62925 20.7997 7.60035 19.933 6.73367C19.0663 5.86699 18.0374 5.1795 16.905 4.71046C15.7727 4.24141 14.559 4 13.3333 4C12.1077 4 10.894 4.24141 9.76162 4.71046C8.62925 5.1795 7.60035 5.86699 6.73367 6.73367C5.86699 7.60035 5.1795 8.62925 4.71046 9.76162C4.24141 10.894 4 12.1077 4 13.3333Z%27 stroke=%27black%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/g%3E%3C/svg%3E");-webkit-mask-size:contain}[class*=ht-theme-main] .ht-multi-select-editor-item-selected input:after{width:var(--ht-icon-size);height:var(--ht-icon-size);background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M5 8L7 10L11 6%27 stroke=%27currentColor%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E%0A");-webkit-mask-size:contain}
@@ -39,7 +39,7 @@ function initLicenseNotification(hotInstance) {
39
39
  return;
40
40
  }
41
41
  const licenseKey = hotInstance.getSettings().licenseKey;
42
- const releaseDate = typeof process !== 'undefined' && process.env?.HOT_RELEASE_DATE ? "24/06/2026" : '';
42
+ const releaseDate = typeof process !== 'undefined' && process.env?.HOT_RELEASE_DATE ? "30/06/2026" : '';
43
43
  const notificationElement = (0, _mixed._injectProductInfo)({
44
44
  className: LICENSE_INFO_CLASS,
45
45
  key: licenseKey,
@@ -38,7 +38,7 @@ const LICENSE_INFO_CLASS = 'hot-display-license-info';
38
38
  return;
39
39
  }
40
40
  const licenseKey = hotInstance.getSettings().licenseKey;
41
- const releaseDate = typeof process !== 'undefined' && process.env?.HOT_RELEASE_DATE ? "24/06/2026" : '';
41
+ const releaseDate = typeof process !== 'undefined' && process.env?.HOT_RELEASE_DATE ? "30/06/2026" : '';
42
42
  const notificationElement = _injectProductInfo({
43
43
  className: LICENSE_INFO_CLASS,
44
44
  key: licenseKey,
@@ -11,6 +11,9 @@ type CellMeta = Record<string, unknown> & {
11
11
  * @returns {boolean} True if valid.
12
12
  */
13
13
  export declare function sourceDataValidator(value: unknown, cellMeta: CellMeta): boolean;
14
+ export declare namespace sourceDataValidator {
15
+ var rowIndependent: boolean;
16
+ }
14
17
  /**
15
18
  * The Date cell validator.
16
19
  *
@@ -36,6 +36,10 @@ function sourceDataValidator(value, cellMeta) {
36
36
  }
37
37
  return (0, _dateTime.isValidISODate)(value);
38
38
  }
39
+ // Marks the validator as row-independent: its result depends only on the value and column/global-level
40
+ // meta (`allowEmpty`), never on per-row meta. This lets the source-data validation runner reuse one
41
+ // column-level meta object across all rows instead of materializing a meta object per cell.
42
+ sourceDataValidator.rowIndependent = true;
39
43
  function dateValidator(value, callback) {
40
44
  if (this.allowEmpty && (0, _mixed.isEmpty)(value)) {
41
45
  callback(true);
@@ -18,6 +18,10 @@ export const SOURCE_DATA_WARNING_MESSAGE = 'Source data warning ([itemsCount]).
18
18
  }
19
19
  return isValidISODate(value);
20
20
  }
21
+ // Marks the validator as row-independent: its result depends only on the value and column/global-level
22
+ // meta (`allowEmpty`), never on per-row meta. This lets the source-data validation runner reuse one
23
+ // column-level meta object across all rows instead of materializing a meta object per cell.
24
+ sourceDataValidator.rowIndependent = true;
21
25
  /**
22
26
  * The Date cell validator.
23
27
  *
@@ -11,6 +11,9 @@ type CellMeta = Record<string, unknown> & {
11
11
  * @returns {boolean} True if valid.
12
12
  */
13
13
  export declare function sourceDataValidator(value: unknown, cellMeta: CellMeta): boolean;
14
+ export declare namespace sourceDataValidator {
15
+ var rowIndependent: boolean;
16
+ }
14
17
  /**
15
18
  * The Time cell validator.
16
19
  *
@@ -36,6 +36,10 @@ function sourceDataValidator(value, cellMeta) {
36
36
  }
37
37
  return (0, _dateTime.isValidTime)(value);
38
38
  }
39
+ // Marks the validator as row-independent: its result depends only on the value and column/global-level
40
+ // meta (`allowEmpty`), never on per-row meta. This lets the source-data validation runner reuse one
41
+ // column-level meta object across all rows instead of materializing a meta object per cell.
42
+ sourceDataValidator.rowIndependent = true;
39
43
  function timeValidator(value, callback) {
40
44
  if (this.allowEmpty && (0, _mixed.isEmpty)(value)) {
41
45
  callback(true);
@@ -18,6 +18,10 @@ export const SOURCE_DATA_WARNING_MESSAGE = 'Source data warning ([itemsCount]).
18
18
  }
19
19
  return isValidTime(value);
20
20
  }
21
+ // Marks the validator as row-independent: its result depends only on the value and column/global-level
22
+ // meta (`allowEmpty`), never on per-row meta. This lets the source-data validation runner reuse one
23
+ // column-level meta object across all rows instead of materializing a meta object per cell.
24
+ sourceDataValidator.rowIndependent = true;
21
25
  /**
22
26
  * The Time cell validator.
23
27
  *
@@ -1 +0,0 @@
1
- export * from './differBasedRendererAdapter.js';
@@ -1,60 +0,0 @@
1
- import type { OrderView } from '../view';
2
- /**
3
- * Differ based renderer adapter that uses ViewDiffer for efficient DOM manipulation.
4
- * This is the default implementation for most browsers.
5
- *
6
- * @class {DifferBasedRendererAdapter}
7
- */
8
- export declare class DifferBasedRendererAdapter {
9
- /**
10
- * @type {OrderView}
11
- */
12
- orderView: OrderView;
13
- /**
14
- * The list of render commands to execute. The command is an array with the following
15
- * structure: [
16
- * [
17
- * CMD_PREPEND | CMD_APPEND | CMD_INSERT_BEFORE | CMD_REPLACE | CMD_REMOVE, // command type
18
- * 10, // processed node index
19
- * 9, // previous node index (only for CMD_INSERT_BEFORE and CMD_REPLACE commands)
20
- * 8 // node index to remove (only for CMD_INSERT_BEFORE command)
21
- * ],
22
- * ...
23
- * ].
24
- *
25
- * @type {Array[]}
26
- */
27
- leads: Array<number[]>;
28
- /**
29
- * Current position within the leads array. Used instead of Array.shift()
30
- * to avoid O(n) per-call overhead.
31
- *
32
- * @type {number}
33
- */
34
- leadIndex: number;
35
- /**
36
- * @param {OrderView} orderView The OrderView instance.
37
- */
38
- constructor(orderView: OrderView);
39
- /**
40
- * Applies the commands generated by the differ into the specific DOM operations.
41
- *
42
- * @param {Array} command The command to apply.
43
- */
44
- applyCommand(command: number[]): void;
45
- /**
46
- * Sets up and prepares all necessary properties and starts the rendering process.
47
- * This method has to be called only once (at the start) for the render cycle.
48
- */
49
- start(): void;
50
- /**
51
- * Renders the DOM element based on visual index (which is calculated internally).
52
- * This method has to be called as many times as the size count is met (to cover all previously rendered DOM elements).
53
- */
54
- render(): void;
55
- /**
56
- * Ends the render process.
57
- * This method has to be called only once (at the end) for the render cycle.
58
- */
59
- end(): void;
60
- }
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "DifferBasedRendererAdapter", {
6
- enumerable: true,
7
- get: function() {
8
- return DifferBasedRendererAdapter;
9
- }
10
- });
11
- const _constants = require("../constants");
12
- class DifferBasedRendererAdapter {
13
- /**
14
- * Applies the commands generated by the differ into the specific DOM operations.
15
- *
16
- * @param {Array} command The command to apply.
17
- */ applyCommand(command) {
18
- const { rootNode } = this.orderView;
19
- const [name, nodeIndex, nodePrevIndex, nodeIndexToRemove] = command;
20
- const node = this.orderView.nodesPool(nodeIndex);
21
- this.orderView.collectedNodes.push(node);
22
- switch(name){
23
- case _constants.CMD_PREPEND:
24
- rootNode.insertBefore(node, rootNode.firstChild);
25
- break;
26
- case _constants.CMD_APPEND:
27
- rootNode.appendChild(node);
28
- break;
29
- case _constants.CMD_INSERT_BEFORE:
30
- rootNode.insertBefore(node, this.orderView.nodesPool(nodePrevIndex));
31
- // To keep the constant length of child nodes (after inserting a node) remove the last child.
32
- rootNode.removeChild(this.orderView.nodesPool(nodeIndexToRemove));
33
- break;
34
- case _constants.CMD_REPLACE:
35
- rootNode.replaceChild(node, this.orderView.nodesPool(nodePrevIndex));
36
- break;
37
- case _constants.CMD_REMOVE:
38
- rootNode.removeChild(node);
39
- break;
40
- default:
41
- break;
42
- }
43
- }
44
- /**
45
- * Sets up and prepares all necessary properties and starts the rendering process.
46
- * This method has to be called only once (at the start) for the render cycle.
47
- */ start() {
48
- this.orderView.collectedNodes.length = 0;
49
- this.leads = this.orderView.viewDiffer.diff();
50
- this.leadIndex = 0;
51
- }
52
- /**
53
- * Renders the DOM element based on visual index (which is calculated internally).
54
- * This method has to be called as many times as the size count is met (to cover all previously rendered DOM elements).
55
- */ render() {
56
- if (this.leadIndex < this.leads.length) {
57
- this.applyCommand(this.leads[this.leadIndex]);
58
- this.leadIndex += 1;
59
- }
60
- }
61
- /**
62
- * Ends the render process.
63
- * This method has to be called only once (at the end) for the render cycle.
64
- */ end() {
65
- const { leads } = this;
66
- while(this.leadIndex < leads.length){
67
- this.applyCommand(leads[this.leadIndex]);
68
- this.leadIndex += 1;
69
- }
70
- }
71
- /**
72
- * @param {OrderView} orderView The OrderView instance.
73
- */ constructor(orderView){
74
- /**
75
- * The list of render commands to execute. The command is an array with the following
76
- * structure: [
77
- * [
78
- * CMD_PREPEND | CMD_APPEND | CMD_INSERT_BEFORE | CMD_REPLACE | CMD_REMOVE, // command type
79
- * 10, // processed node index
80
- * 9, // previous node index (only for CMD_INSERT_BEFORE and CMD_REPLACE commands)
81
- * 8 // node index to remove (only for CMD_INSERT_BEFORE command)
82
- * ],
83
- * ...
84
- * ].
85
- *
86
- * @type {Array[]}
87
- */ this.leads = [];
88
- /**
89
- * Current position within the leads array. Used instead of Array.shift()
90
- * to avoid O(n) per-call overhead.
91
- *
92
- * @type {number}
93
- */ this.leadIndex = 0;
94
- this.orderView = orderView;
95
- }
96
- }
@@ -1,91 +0,0 @@
1
- import { CMD_PREPEND, CMD_APPEND, CMD_INSERT_BEFORE, CMD_REPLACE, CMD_REMOVE } from '../constants.mjs';
2
- /**
3
- * Differ based renderer adapter that uses ViewDiffer for efficient DOM manipulation.
4
- * This is the default implementation for most browsers.
5
- *
6
- * @class {DifferBasedRendererAdapter}
7
- */ export class DifferBasedRendererAdapter {
8
- /**
9
- * Applies the commands generated by the differ into the specific DOM operations.
10
- *
11
- * @param {Array} command The command to apply.
12
- */ applyCommand(command) {
13
- const { rootNode } = this.orderView;
14
- const [name, nodeIndex, nodePrevIndex, nodeIndexToRemove] = command;
15
- const node = this.orderView.nodesPool(nodeIndex);
16
- this.orderView.collectedNodes.push(node);
17
- switch(name){
18
- case CMD_PREPEND:
19
- rootNode.insertBefore(node, rootNode.firstChild);
20
- break;
21
- case CMD_APPEND:
22
- rootNode.appendChild(node);
23
- break;
24
- case CMD_INSERT_BEFORE:
25
- rootNode.insertBefore(node, this.orderView.nodesPool(nodePrevIndex));
26
- // To keep the constant length of child nodes (after inserting a node) remove the last child.
27
- rootNode.removeChild(this.orderView.nodesPool(nodeIndexToRemove));
28
- break;
29
- case CMD_REPLACE:
30
- rootNode.replaceChild(node, this.orderView.nodesPool(nodePrevIndex));
31
- break;
32
- case CMD_REMOVE:
33
- rootNode.removeChild(node);
34
- break;
35
- default:
36
- break;
37
- }
38
- }
39
- /**
40
- * Sets up and prepares all necessary properties and starts the rendering process.
41
- * This method has to be called only once (at the start) for the render cycle.
42
- */ start() {
43
- this.orderView.collectedNodes.length = 0;
44
- this.leads = this.orderView.viewDiffer.diff();
45
- this.leadIndex = 0;
46
- }
47
- /**
48
- * Renders the DOM element based on visual index (which is calculated internally).
49
- * This method has to be called as many times as the size count is met (to cover all previously rendered DOM elements).
50
- */ render() {
51
- if (this.leadIndex < this.leads.length) {
52
- this.applyCommand(this.leads[this.leadIndex]);
53
- this.leadIndex += 1;
54
- }
55
- }
56
- /**
57
- * Ends the render process.
58
- * This method has to be called only once (at the end) for the render cycle.
59
- */ end() {
60
- const { leads } = this;
61
- while(this.leadIndex < leads.length){
62
- this.applyCommand(leads[this.leadIndex]);
63
- this.leadIndex += 1;
64
- }
65
- }
66
- /**
67
- * @param {OrderView} orderView The OrderView instance.
68
- */ constructor(orderView){
69
- /**
70
- * The list of render commands to execute. The command is an array with the following
71
- * structure: [
72
- * [
73
- * CMD_PREPEND | CMD_APPEND | CMD_INSERT_BEFORE | CMD_REPLACE | CMD_REMOVE, // command type
74
- * 10, // processed node index
75
- * 9, // previous node index (only for CMD_INSERT_BEFORE and CMD_REPLACE commands)
76
- * 8 // node index to remove (only for CMD_INSERT_BEFORE command)
77
- * ],
78
- * ...
79
- * ].
80
- *
81
- * @type {Array[]}
82
- */ this.leads = [];
83
- /**
84
- * Current position within the leads array. Used instead of Array.shift()
85
- * to avoid O(n) per-call overhead.
86
- *
87
- * @type {number}
88
- */ this.leadIndex = 0;
89
- this.orderView = orderView;
90
- }
91
- }
@@ -1 +0,0 @@
1
- export * from './directDomRendererAdapter.js';
@@ -1,45 +0,0 @@
1
- import type { OrderView } from '../view';
2
- /**
3
- * Direct DOM renderer adapter that uses direct DOM manipulation.
4
- *
5
- * @class {DirectDomRendererAdapter}
6
- */
7
- export declare class DirectDomRendererAdapter {
8
- /**
9
- * The OrderView instance associated with this adapter.
10
- *
11
- * @type {OrderView}
12
- */
13
- orderView: OrderView;
14
- /**
15
- * The visual index of currently processed row.
16
- *
17
- * @type {number}
18
- */
19
- visualIndex: number;
20
- /**
21
- * @param {OrderView} orderView The OrderView instance.
22
- */
23
- constructor(orderView: OrderView);
24
- /**
25
- * Returns rendered child count for this instance.
26
- *
27
- * @returns {number}
28
- */
29
- getRenderedChildCount(): number;
30
- /**
31
- * Sets up and prepares all necessary properties and starts the rendering process.
32
- * This method has to be called only once (at the start) for the render cycle.
33
- */
34
- start(): void;
35
- /**
36
- * Renders the DOM element based on visual index (which is calculated internally).
37
- * This method has to be called as many times as the size count is met (to cover all previously rendered DOM elements).
38
- */
39
- render(): void;
40
- /**
41
- * Ends the render process.
42
- * This method has to be called only once (at the end) for the render cycle.
43
- */
44
- end(): void;
45
- }
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "DirectDomRendererAdapter", {
6
- enumerable: true,
7
- get: function() {
8
- return DirectDomRendererAdapter;
9
- }
10
- });
11
- const _constants = require("../constants");
12
- class DirectDomRendererAdapter {
13
- /**
14
- * Returns rendered child count for this instance.
15
- *
16
- * @returns {number}
17
- */ getRenderedChildCount() {
18
- const { rootNode, sizeSet } = this.orderView;
19
- let childElementCount = 0;
20
- if (this.orderView.isSharedViewSet()) {
21
- let element = rootNode.firstElementChild;
22
- while(element){
23
- if (element.tagName === this.orderView.childNodeType) {
24
- childElementCount += 1;
25
- } else if (sizeSet.isPlaceOn(_constants.WORKING_SPACE_TOP)) {
26
- break;
27
- }
28
- element = element.nextElementSibling;
29
- }
30
- } else {
31
- childElementCount = rootNode.childElementCount;
32
- }
33
- return childElementCount;
34
- }
35
- /**
36
- * Sets up and prepares all necessary properties and starts the rendering process.
37
- * This method has to be called only once (at the start) for the render cycle.
38
- */ start() {
39
- this.orderView.collectedNodes.length = 0;
40
- this.visualIndex = 0;
41
- const { rootNode, sizeSet } = this.orderView;
42
- const isShared = this.orderView.isSharedViewSet();
43
- const { nextSize } = sizeSet.getViewSize();
44
- let childElementCount = this.getRenderedChildCount();
45
- while(childElementCount < nextSize){
46
- const newNode = this.orderView.nodesPool();
47
- if (!isShared || isShared && sizeSet.isPlaceOn(_constants.WORKING_SPACE_BOTTOM)) {
48
- rootNode.appendChild(newNode);
49
- } else {
50
- rootNode.insertBefore(newNode, rootNode.firstChild);
51
- }
52
- childElementCount += 1;
53
- }
54
- const isSharedPlacedOnTop = isShared && sizeSet.isPlaceOn(_constants.WORKING_SPACE_TOP);
55
- while(childElementCount > nextSize){
56
- const childToRemove = isSharedPlacedOnTop ? rootNode.firstChild : rootNode.lastChild;
57
- if (childToRemove) {
58
- rootNode.removeChild(childToRemove);
59
- }
60
- childElementCount -= 1;
61
- }
62
- }
63
- /**
64
- * Renders the DOM element based on visual index (which is calculated internally).
65
- * This method has to be called as many times as the size count is met (to cover all previously rendered DOM elements).
66
- */ render() {
67
- const { rootNode, sizeSet } = this.orderView;
68
- let visualIndex = this.visualIndex;
69
- if (this.orderView.isSharedViewSet() && sizeSet.isPlaceOn(_constants.WORKING_SPACE_BOTTOM) && sizeSet.sharedSize) {
70
- visualIndex += sizeSet.sharedSize.nextSize;
71
- }
72
- let node = rootNode.childNodes[visualIndex];
73
- if (node.tagName !== this.orderView.childNodeType) {
74
- const newNode = this.orderView.nodesPool();
75
- node.replaceWith(newNode);
76
- node = newNode;
77
- }
78
- this.orderView.collectedNodes.push(node);
79
- this.visualIndex += 1;
80
- }
81
- /**
82
- * Ends the render process.
83
- * This method has to be called only once (at the end) for the render cycle.
84
- */ end() {
85
- // Firefox doesn't need cleanup - all work is done in start() and render()
86
- }
87
- /**
88
- * @param {OrderView} orderView The OrderView instance.
89
- */ constructor(orderView){
90
- /**
91
- * The visual index of currently processed row.
92
- *
93
- * @type {number}
94
- */ this.visualIndex = 0;
95
- this.orderView = orderView;
96
- }
97
- }