JavaScript Data Grid / Data Table with a Spreadsheet Look & Feel. Works with React, Angular, and Vue. Supported by the Handsontable team ⚡
499 matches across 10 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | handsontable/test/lib/jquery.min.js | 4 | },cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function |
| CRITICAL | handsontable/src/plugins/customBorders/customBorders.ts | 678 | this.hot.selection.highlight.customSelections.splice(index, 1); |
| CRITICAL | handsontable/src/plugins/mergeCells/mergeCells.ts | 311 | this.hot.view._wt.wtOverlays.getOverlays(true).map( |
| CRITICAL | …s/nestedHeaders/__tests__/generalFunctionality.spec.js | 504 | const headerRows = hot.view._wt.wtTable.THEAD.querySelectorAll('tr'); |
| CRITICAL | …e/src/plugins/nestedHeaders/__tests__/helpers/index.js | 30 | const headerRows = hot.view._wt.wtTable.THEAD.querySelectorAll('tr'); |
| CRITICAL | …ontable/src/plugins/manualRowResize/manualRowResize.ts | 462 | const walkontableHeight = this.hot.view._wt.wtTable.getRowHeight(row); |
| CRITICAL | …e/src/plugins/manualColumnResize/manualColumnResize.ts | 730 | this.hot.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked(); |
| CRITICAL | handsontable/src/plugins/manualRowMove/manualRowMove.ts | 467 | tdStartPixel += this.hot.view._wt.wtOverlays.topOverlay.getOverlayOffset(); |
| CRITICAL | handsontable/src/plugins/manualRowMove/manualRowMove.ts | 694 | const headerWidth = this.hot.view._wt.wtViewport.getRowHeaderWidth(); |
| CRITICAL | …table/src/plugins/manualColumnMove/manualColumnMove.ts | 321 | columnsWidth += this.hot.view._wt.wtViewport.getRowHeaderWidth() || 0; |
| CRITICAL | …table/src/plugins/manualColumnMove/manualColumnMove.ts | 324 | columnsWidth += this.hot.view._wt.wtTable.getColumnWidth(renderableIndex) || 0; |
| CRITICAL | …table/src/plugins/manualColumnMove/manualColumnMove.ts | 584 | const horizontalScrollPosition = this.hot.view._wt.wtOverlays.inlineStartOverlay.getOverlayOffset(); |
| CRITICAL | …e/src/editors/autocompleteEditor/autocompleteEditor.ts | 105 | addClass(this.htContainer, this.hot.rootWindow.navigator.platform.indexOf('Mac') === -1 ? '' : 'htMacScroll'); |
| CRITICAL | …e/src/editors/autocompleteEditor/autocompleteEditor.ts | 449 | this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer(); |
| CRITICAL | …e/src/editors/autocompleteEditor/autocompleteEditor.ts | 464 | this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer(); |
| CRITICAL | handsontable/src/__tests__/settings/validator.spec.js | 1501 | const mostRecentRendererCallArgs = tableView()._wt.wtSettings.settings.cellRenderer.calls.mostRecent().args; |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1221 | expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1222 | expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1353 | expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1354 | expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1362 | expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1363 | expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1371 | expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | …cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js | 1372 | expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0); |
| CRITICAL | handsontable/src/helpers/dom/__tests__/element.spec.js | 154 | rootElement.parentNode.parentNode.parentNode.parentNode.appendChild(createDivWithId('rootSibling')); |
| CRITICAL | …ontent/recipes/cell-types/color-picker/color-picker.md | 300 | editor.pickr._root.app.classList.remove('visible'); |
| CRITICAL | …ontent/recipes/cell-types/color-picker/color-picker.md | 425 | editor.pickr._root.app.classList.remove('visible'); |
| CRITICAL | …recipes/cell-types/color-picker/javascript/example1.js | 270 | editor.pickr._root.app.classList.remove('visible'); |
| CRITICAL | …recipes/cell-types/color-picker/javascript/example1.ts | 275 | editor.pickr._root.app.classList.remove('visible'); |
| CRITICAL | …ent/recipes/cell-types/color-picker/react/example1.jsx | 78 | editor.pickr._root.app.classList.remove('visible'); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | handsontable/.config/themes-umd-development.js | 33 | function createHandsontableExternals() { |
| LOW | handsontable/.config/themes-umd-development.js | 117 | function createRuleForVariablesRegistration(variableName, namespacePath) { |
| LOW | handsontable/test/helpers/focusNavigator.js | 93 | function findFirstFocusableElement(elements) { |
| LOW | handsontable/test/helpers/common.js | 94 | export function waitForNextAnimationFrames(framesToWait = 1) { |
| LOW | handsontable/test/helpers/common.js | 147 | export async function waitForNameAnimationFrames(framesToWait = 1) { |
| LOW | handsontable/test/helpers/common.js | 171 | function normalizeLegacyFrameCount(framesToWait) { |
| LOW | handsontable/test/helpers/common.js | 278 | export function handsontableMethodFactory(method) { |
| LOW | handsontable/test/helpers/common.js | 446 | export function getFirstRenderedRowDefaultHeight() { |
| LOW | handsontable/test/helpers/common.js | 460 | export function getDefaultColumnHeaderHeight() { |
| LOW | handsontable/test/helpers/common.js | 494 | export function expectedLastFullyVisibleRow(containerHeight, colHeaderRows = 1) { |
| LOW | handsontable/test/helpers/common.js | 652 | export function topInlineStartCornerOverlay() { |
| LOW | handsontable/test/helpers/common.js | 666 | export function bottomInlineStartCornerOverlay() { |
| LOW | handsontable/test/helpers/common.js | 700 | export async function scrollViewportHorizontally(x) { |
| LOW | handsontable/test/helpers/common.js | 832 | export function getBottomInlineStartClone() { |
| LOW | handsontable/test/helpers/common.js | 995 | export async function selectContextSubmenuOption(submenuName, optionName, cell) { |
| LOW | handsontable/test/helpers/common.js | 1066 | export function openDropdownSubmenuOption(submenuName, cell) { |
| LOW | handsontable/test/helpers/common.js | 1081 | export function openDropdownByConditionMenu(menuName = 'first') { |
| LOW | handsontable/test/helpers/common.js | 1096 | export function selectDropdownByConditionMenuOption(optionName, menuName = 'first') { |
| LOW | handsontable/test/helpers/common.js | 1128 | export function serveImmediatePropagation(event) { |
| LOW | handsontable/test/helpers/common.js | 1331 | export function createAccessorForProperty(name) { |
| LOW | handsontable/test/helpers/common.js | 1395 | export function moveSecondDisplayedRowBeforeFirstRow(container, secondDisplayedRowIndex) { |
| LOW | handsontable/test/helpers/common.js | 1422 | export function moveFirstDisplayedRowAfterSecondRow(container, firstDisplayedRowIndex) { |
| LOW | handsontable/test/helpers/common.js | 1561 | function getFillHandleDragEventArgs(targetElement, options = {}) { |
| LOW | handsontable/test/helpers/common.js | 1615 | export function simulateFillHandleDragStart(targetElement, options = {}) { |
| LOW | handsontable/test/helpers/common.js | 1640 | export function simulateFillHandleDragMove(targetElement, options = {}) { |
| LOW | handsontable/test/helpers/common.js | 1691 | export function simulateFillHandleDragFinish(targetElement, options = {}) { |
| LOW | handsontable/test/helpers/common.js | 1738 | export function simulateModernThemeStylesheet(container) { |
| LOW | handsontable/test/helpers/common.js | 1750 | export function clearModernThemeStylesheetMock(container) { |
| LOW | handsontable/test/helpers/common.js | 1775 | export function createEmptySpreadsheetData(...args) { |
| LOW | handsontable/test/helpers/common.js | 1786 | export function createSpreadsheetObjectData(...args) { |
| LOW | handsontable/test/helpers/common.js | 1837 | export function spyOnConsoleDeprecatedWarn() { |
| LOW | handsontable/test/helpers/mouseEvents.js | 28 | export function handsontableMouseTriggerFactory(type, defaultButtonKey = getMouseButton('LMB')) { |
| LOW | handsontable/src/core.ts | 1547 | function doesChangeAffectOpenedEditor(changes: CellChange[], activeEditor: BaseEditor | undefined) { |
| LOW | …table/src/dataMap/metaManager/metaLayers/globalMeta.ts | 11 | function createTableMetaEmptyClass() { |
| LOW | …table/src/renderers/multiSelectRenderer/utils/utils.ts | 114 | export function registerChipRemovingEvents( |
| LOW | …table/src/renderers/multiSelectRenderer/utils/utils.ts | 171 | export function cacheColumnWidthAndRegisterResizeHook( |
| LOW | …table/src/renderers/multiSelectRenderer/utils/utils.ts | 210 | function recalculateChipsVisibility( |
| LOW | …ble/src/renderers/checkboxRenderer/checkboxRenderer.ts | 217 | function changeSelectedCheckboxesState(uncheckCheckbox = false) { |
| LOW | handsontable/src/core/viewportScroll/utils.ts | 26 | export function createScrollTargetCalculator(hotInstance: HotInstance) { |
| LOW | …viewportScroll/scrollStrategies/noncontiguousScroll.ts | 11 | export function noncontiguousScrollStrategy(hot: HotInstance) { |
| LOW | …/viewportScroll/scrollStrategies/cornerHeaderScroll.ts | 6 | export function cornerHeaderScrollStrategy(_hot?: unknown) { |
| LOW | …/viewportScroll/scrollStrategies/columnHeaderScroll.ts | 11 | export function columnHeaderScrollStrategy(hot: HotInstance) { |
| LOW | handsontable/src/plugins/filters/sortComparators.ts | 56 | export function createISODateSortComparator(): (a: unknown, b: unknown) => number { |
| LOW | …gins/filters/__tests__/conditionUpdateObserver.spec.js | 7 | function getConditionUpdateObserver() { |
| LOW | …ontable/src/plugins/filters/__tests__/helpers/utils.js | 4 | export function conditionMenuRootElements() { |
| LOW | …ontable/src/plugins/filters/__tests__/helpers/utils.js | 27 | export function conditionSelectRootElements() { |
| LOW | …ontable/src/plugins/filters/__tests__/helpers/utils.js | 122 | export function getFilterDropdownMenuOKButton() { |
| LOW | …ontable/src/plugins/filters/__tests__/helpers/utils.js | 131 | export function getFilterDropdownMenuCancelButton() { |
| LOW | …ndsontable/src/plugins/filters/menu/focusController.ts | 26 | export function createMenuFocusController(mainMenu: Record<string, unknown>, menuItems: unknown[]) { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 4 | export function filterByValueBoxRootElement() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 18 | export function filterByValueMultipleSelect() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 55 | export function stringifyPageCounterSection(container = getPaginationContainerElement()) { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 67 | export function stringifyPageNavigationSection(container = getPaginationContainerElement()) { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 122 | export function getPaginationContainerElement() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 131 | export function getPaginationFocusableElements() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 141 | export function getPaginationPageFirstButton() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 150 | export function getPaginationPagePrevButton() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 159 | export function getPaginationPageNextButton() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 168 | export function getPaginationPageLastButton() { |
| LOW | …able/src/plugins/pagination/__tests__/helpers/utils.js | 177 | export function getPaginationPagePageSizeSelect() { |
| 192 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 22 | // ─── CSV — synchronous ─────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 49 | // ─── XLSX — asynchronous ─────────────────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 68 | // ─── Conditional formatting ──────────────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 84 | // ─── Multi-sheet export ──────────────────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 106 | // ─── SheetOptions: name is optional ─────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 113 | // ─── ExportOptions: headerStyle (XLSX) ──────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 119 | // ─── ExportOptions: engine (per-call override) ──────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 123 | // ─── sanitizeValues variants ─────────────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 129 | // ─── downloadFileAsync ──────────────────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 147 | // ─── supportsExportFormat ───────────────────────────────────────────────── |
| MEDIUM | …e/src/plugins/exportFile/__tests__/exportFile.types.ts | 152 | // ─── exportAsBlobAsync ──────────────────────────────────────────────────── |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 18 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 32 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 45 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 51 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 67 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 72 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 93 | # ------------------------------------------------------------------ |
| MEDIUM | …nagement/server-side-rails/server/orders_controller.rb | 99 | # ------------------------------------------------------------------ |
| MEDIUM | …pes/data-management/server-side-django/server/views.py | 138 | # ------------------------------------------------------------------ |
| MEDIUM | …pes/data-management/server-side-django/server/views.py | 140 | # ------------------------------------------------------------------ |
| MEDIUM | docs/public/example-tabs.js | 12 | // ── Hot-example code assembly (Expressive Code blocks) ─────────────────── |
| MEDIUM | docs/public/example-tabs.js | 231 | // ── Source code toggle ──────────────────────────────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 247 | // ── Code group tabs (npm / Yarn / pnpm etc.) ──────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 327 | // ── Edit on StackBlitz ──────────────────────────────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 496 | // ── Vanilla JS project ──────────────────────────────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 565 | // ── React project ───────────────────────────────────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 644 | // ── Vue 3 project ───────────────────────────────────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 716 | // ── Angular project ─────────────────────────────────────────────────────── |
| MEDIUM | docs/public/example-tabs.js | 960 | // ── Utility ─────────────────────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 15 | // ── Glob maps resolved by Vite at build time ────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 23 | // ── Zone.js load-once guard ─────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 32 | // ── Angular bootstrap helper (NgModule + standalone) ───────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 58 | // ── Helpers ─────────────────────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 88 | // ── Main runner ─────────────────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 91 | // ── Inject example CSS files ────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 109 | // ── Vanilla JS examples ──────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 130 | // ── React JSX examples ───────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 173 | // ── Vue 3 examples ──────────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/example-runner.ts | 221 | // ── Angular examples ─────────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/a11y-utils.ts | 9 | // ── Focus trap ────────────────────────────────────────────────────────── |
| MEDIUM | docs/src/scripts/a11y-utils.ts | 51 | // ── Dropdown keyboard navigation ──────────────────────────────────────── |
| MEDIUM | .github/workflows/publish.yml | 27 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 29 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 70 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 72 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 326 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 328 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 500 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 502 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 781 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 783 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1000 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1002 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1428 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1430 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1658 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1660 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1686 | # ============================================================ |
| MEDIUM | .github/workflows/publish.yml | 1688 | # ============================================================ |
| 2 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …a-management/server-side-django/javascript/example1.js | 28 | // Step 1: Read Django's CSRF token from the cookie. |
| LOW | …a-management/server-side-django/javascript/example1.js | 42 | // Step 2: Build the request URL for fetchRows. |
| LOW | …a-management/server-side-django/javascript/example1.js | 79 | // Step 3: Initialize Handsontable with the dataProvider plugin. |
| LOW | …a-management/server-side-django/javascript/example1.ts | 34 | // Step 1: Read Django's CSRF token from the cookie. |
| LOW | …a-management/server-side-django/javascript/example1.ts | 48 | // Step 2: Build the request URL for fetchRows. |
| LOW | …a-management/server-side-django/javascript/example1.ts | 77 | // Step 3: Initialize Handsontable with the dataProvider plugin. |
| LOW | …/data-management/server-side-django/react/example1.tsx | 15 | // Step 1: Read Django's CSRF token from the cookie. |
| LOW | …/data-management/server-side-django/react/example1.tsx | 25 | // Step 2: Build the request URL for fetchRows. |
| LOW | …/data-management/server-side-django/react/example1.tsx | 51 | // Step 3: React component with the dataProvider plugin. |
| LOW | …/data-management/server-side-django/react/example1.jsx | 8 | // Step 1: Read Django's CSRF token from the cookie. |
| LOW | …/data-management/server-side-django/react/example1.jsx | 22 | // Step 2: Build the request URL for fetchRows. |
| LOW | …/data-management/server-side-django/react/example1.jsx | 51 | // Step 3: React component with the dataProvider plugin. |
| LOW | …a-management/load-data-rest-api/javascript/example2.ts | 50 | // Step 1: Initialize the grid with columnSorting enabled and an empty dataset. |
| LOW | …a-management/load-data-rest-api/javascript/example2.ts | 72 | // Step 2: A helper that keeps the toolbar consistent with the current request state. |
| LOW | …a-management/load-data-rest-api/javascript/example2.ts | 92 | // Step 3: Map the API response to flat row objects that match the column definitions. |
| LOW | …a-management/load-data-rest-api/javascript/example2.ts | 104 | // Step 4: Shared fetch helper used by both initialLoad() and refreshUsers(). |
| LOW | …a-management/load-data-rest-api/javascript/example2.ts | 115 | // Step 5: Initial load uses loadData(), which resets all grid states. |
| LOW | …a-management/load-data-rest-api/javascript/example2.ts | 131 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 20 | // Step 1: Cache the full response after the first request. |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 72 | // Step 2: Use dataProvider instead of a static data array. |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 79 | // Step 3: fetchRows receives current query parameters and an AbortSignal. |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 87 | // Step 4: Apply server-side sort from query parameters. |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 99 | // Step 5: Apply server-side pagination from query parameters. |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 109 | // Step 6: CRUD callbacks. jsonplaceholder is read-only, so these are no-ops. |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 126 | // Step 7: Enable the Pagination plugin and pass pageSize so the plugin knows |
| LOW | …a-management/load-data-rest-api/javascript/example3.ts | 140 | // Step 8: Use fetch hooks to update the status label. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 6 | // Step 1: Cache the full response after the first request. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 55 | // Step 2: Use dataProvider instead of a static data array. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 62 | // Step 3: fetchRows receives current query parameters and an AbortSignal. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 67 | // Step 4: Apply server-side sort from query parameters. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 79 | // Step 5: Apply server-side pagination from query parameters. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 89 | // Step 6: CRUD callbacks. jsonplaceholder is read-only, so these are no-ops. |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 106 | // Step 7: Enable the Pagination plugin and pass pageSize so the plugin knows |
| LOW | …a-management/load-data-rest-api/javascript/example3.js | 120 | // Step 8: Use fetch hooks to update the status label. |
| LOW | …a-management/load-data-rest-api/javascript/example2.js | 45 | // Step 1: Initialize the grid with columnSorting enabled and an empty dataset. |
| LOW | …a-management/load-data-rest-api/javascript/example2.js | 67 | // Step 2: A helper that keeps the toolbar consistent with the current request state. |
| LOW | …a-management/load-data-rest-api/javascript/example2.js | 79 | // Step 3: Map the API response to flat row objects that match the column definitions. |
| LOW | …a-management/load-data-rest-api/javascript/example2.js | 91 | // Step 4: Shared fetch helper used by both initialLoad() and refreshUsers(). |
| LOW | …a-management/load-data-rest-api/javascript/example2.js | 102 | // Step 5: Initial load uses loadData(), which resets all grid states. |
| LOW | …a-management/load-data-rest-api/javascript/example2.js | 118 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| LOW | …/data-management/load-data-graphql/angular/example2.ts | 91 | // Step 5: Initial load uses loadData() directly on the hot instance, which resets all grid states. |
| LOW | …/data-management/load-data-graphql/angular/example2.ts | 112 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| LOW | …ta-management/load-data-graphql/javascript/example2.ts | 73 | // Step 1: Initialize the grid with columnSorting enabled and an empty dataset. |
| LOW | …ta-management/load-data-graphql/javascript/example2.ts | 95 | // Step 2: A helper that keeps the toolbar consistent with the current request state. |
| LOW | …ta-management/load-data-graphql/javascript/example2.ts | 115 | // Step 3: Map the API response to flat row objects that match the column definitions. |
| LOW | …ta-management/load-data-graphql/javascript/example2.ts | 127 | // Step 4: Shared GraphQL helper used by both initialLoad() and refreshUsers(). |
| LOW | …ta-management/load-data-graphql/javascript/example2.ts | 156 | // Step 5: Initial load uses loadData(), which resets all grid states. |
| LOW | …ta-management/load-data-graphql/javascript/example2.ts | 172 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| LOW | …ta-management/load-data-graphql/javascript/example2.js | 64 | // Step 1: Initialize the grid with columnSorting enabled and an empty dataset. |
| LOW | …ta-management/load-data-graphql/javascript/example2.js | 86 | // Step 2: A helper that keeps the toolbar consistent with the current request state. |
| LOW | …ta-management/load-data-graphql/javascript/example2.js | 98 | // Step 3: Map the API response to flat row objects that match the column definitions. |
| LOW | …ta-management/load-data-graphql/javascript/example2.js | 110 | // Step 4: Shared fetch helper used by both initialLoad() and refreshUsers(). |
| LOW | …ta-management/load-data-graphql/javascript/example2.js | 132 | // Step 5: Initial load uses loadData(), which resets all grid states. |
| LOW | …ta-management/load-data-graphql/javascript/example2.js | 148 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| LOW | …s/data-management/load-data-graphql/react/example2.tsx | 92 | // Step 5: Initial load uses loadData() via the hot instance, which resets all grid states. |
| LOW | …s/data-management/load-data-graphql/react/example2.tsx | 111 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| LOW | …s/data-management/load-data-graphql/react/example2.jsx | 71 | // Step 5: Initial load uses loadData() via the hot instance, which resets all grid states. |
| LOW | …s/data-management/load-data-graphql/react/example2.jsx | 90 | // Step 6: Subsequent refreshes use updateData(), which replaces the data |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …gins/manualRowResize/__tests__/manualRowResize.spec.js | 1308 | data[0][4] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit elit sed quam porta ' + |
| LOW | …gins/manualRowResize/__tests__/manualRowResize.spec.js | 1308 | data[0][4] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit elit sed quam porta ' + |
| LOW | …ns/dialog/__tests__/keyboardShortcuts/shiftTab.spec.js | 63 | <h6>Hello world</h6><p>Lorem ipsum</p> |
| LOW | …ns/dialog/__tests__/keyboardShortcuts/shiftTab.spec.js | 109 | <h6>Hello world</h6><p>Lorem ipsum</p> |
| LOW | …plugins/dialog/__tests__/keyboardShortcuts/tab.spec.js | 63 | <h6>Hello world</h6><p>Lorem ipsum</p> |
| LOW | …plugins/dialog/__tests__/keyboardShortcuts/tab.spec.js | 109 | <h6>Hello world</h6><p>Lorem ipsum</p> |
| LOW | …ntable/src/plugins/formulas/__tests__/formulas.spec.js | 2360 | hfInstance.renameSheet(0, 'Lorem Ipsum'); |
| LOW | …ntable/src/plugins/formulas/__tests__/formulas.spec.js | 2362 | expect(getPlugin('formulas').sheetName).toBe('Lorem Ipsum'); |
| LOW | …ntable/src/plugins/formulas/__tests__/formulas.spec.js | 2363 | expect(sheetNameInsideHook).toBe('Lorem Ipsum'); |
| LOW | …ntable/src/plugins/formulas/__tests__/formulas.spec.js | 2384 | hfInstance.renameSheet(0, 'Lorem Ipsum'); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 223 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 223 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 250 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 250 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 275 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 275 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 294 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 294 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 318 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 318 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 346 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | handsontable/src/helpers/dom/__tests__/element.spec.js | 346 | .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' '); |
| LOW | …ipes/data-management/server-side-rails/server/seeds.rb | 12 | "Acme Corp", "Vertex Industries", "Harbor Goods", "Alpine Supply Co.", |
| LOW | …guides/styling/theme-customization/angular/example2.ts | 41 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …guides/styling/theme-customization/angular/example1.ts | 16 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …des/styling/theme-customization/javascript/example2.ts | 34 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …des/styling/theme-customization/javascript/example1.js | 13 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …des/styling/theme-customization/javascript/example2.js | 33 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …des/styling/theme-customization/javascript/example1.ts | 13 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …/guides/styling/theme-customization/react/example1.tsx | 29 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …/guides/styling/theme-customization/react/example2.tsx | 34 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …/guides/styling/theme-customization/react/example2.jsx | 33 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …/guides/styling/theme-customization/react/example1.jsx | 29 | ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'], |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 3 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 3 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 4 | "Lorem ipsum dolor sit amet. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 4 | "Lorem ipsum dolor sit amet. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 5 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 5 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 6 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 6 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 9 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 9 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 10 | "Lorem ipsum dolor sit amet. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 10 | "Lorem ipsum dolor sit amet. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 11 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 11 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 12 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 12 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 15 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 15 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 16 | "Lorem ipsum dolor sit amet. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 16 | "Lorem ipsum dolor sit amet. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 17 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 17 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 18 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor et dolore magna aliqua.", |
| LOW | …xt/visual-tests/js/demo/src/demos/textEllipsis/data.js | 18 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor et dolore magna aliqua.", |
| LOW | …es/next/visual-tests/js/demo/src/demos/complex/data.js | 4 | name: 'John Doe', |
| LOW | …es/next/visual-tests/js/demo/src/demos/complex/data.js | 282 | name: 'John Doe', |
| LOW | …es/next/visual-tests/js/demo/src/demos/dialog/index.js | 61 | content.innerHTML = `<h6>Hello world</h6><p>Lorem ipsum</p>`; |
| 5 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …e/test/helpers/__tests__/themeLayoutFromTokens.unit.js | 181 | it('defaults to main when theme name is falsy', () => { |
| LOW | …ins/exportFile/__tests__/types/xlsx/cell-types.spec.js | 141 | columns: [{ type: 'numeric' }], |
| LOW | …ndsontable/src/3rdparty/walkontable/src/overlay/top.ts | 81 | let skipInnerBorderAdjusting = false; |
| LOW | handsontable/src/helpers/dom/cellCoords.ts | 121 | const lastPartiallyVisibleRow = hotInstance.getLastPartiallyVisibleRow(); |
| LOW | …rc/translations/mapCollections/aggregatedCollection.ts | 41 | if (readFromCache === true) { |
| LOW | …rc/translations/mapCollections/aggregatedCollection.ts | 61 | // Below variable stores values for every particular index. Example describing situation when we have 2 registered m |
| LOW | docs/playwright.config.ts | 41 | name: 'chromium', |
| LOW | docs/playwright.config.ts | 61 | // name: 'Mobile Safari', |
| LOW | …pes/data-management/server-side-rails/server/routes.rb | 1 | # config/routes.rb |
| LOW | …management/server-side-rails/server/Gemfile-snippet.rb | 1 | # Gemfile -- relevant additions only. |
| LOW | …nagement/server-side-rails/server/orders_controller.rb | 1 | # app/controllers/api/orders_controller.rb |
| LOW | …nagement/server-side-rails/server/orders_controller.rb | 21 | # Accepts: |
| LOW | …ipes/data-management/server-side-rails/server/order.rb | 1 | # app/models/order.rb |
| LOW | …cipes/data-management/server-side-rails/server/cors.rb | 1 | # config/initializers/cors.rb |
| LOW | …a-management/server-side-laravel/server/routes-api.php | 21 | // Route::delete('/products', [ProductController::class, 'batchDestroy']); |
| LOW | …ipes/data-management/server-side-django/server/urls.py | 1 | from django.urls import include, path |
| LOW | …a-management/server-side-django/javascript/example1.js | 41 | // --------------------------------------------------------------------------- |
| LOW | …data-management/server-side-symfony/react/example1.jsx | 1 | import { useRef, useCallback, useMemo } from 'react'; |
| LOW | …data-management/server-side-symfony/react/example1.jsx | 221 | beforeRowsMutation={beforeRowsMutation} |
| LOW | …t/guides/cell-functions/cell-function/cell-function.md | 41 | // td – HTMLTableCellElement to modify |
| LOW | …/visual-tests/js/demo/src/demos/nestedHeaders/index.js | 81 | // removeHeightBtn.addEventListener('click', () => { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …s/nestedHeaders/__tests__/generalFunctionality.spec.js | 583 | // range (mapped from renderable to visual so the check is robust to any |
| MEDIUM | …ontable/src/plugins/manualRowResize/manualRowResize.ts | 461 | // TODO: this should utilize `this.hot.getRowHeight` after it's fixed and working properly. |
| MEDIUM | handsontable/src/plugins/formulas/formulas.ts | 347 | // The `updateData` hooks utilize the same logic as the `loadData` hooks. |
| MEDIUM | …le/src/editors/textEditor/__tests__/textEditor.spec.js | 748 | // this robust across themes whose font metrics make AutoColumnSize grow columns past the |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ntable/src/3rdparty/walkontable/test/helpers/common.js | 178 | export function getData(row, col) { |
| LOW | …les/next/visual-tests/vue3/demo/src/utils/constants.ts | 1206 | export function getData() { |
| LOW | …/angular-wrapper/demo/src/data-grid/utils/constants.ts | 1206 | export function getData() { |
| LOW | examples/prs/vue3/src/data.ts | 343 | export function getData() { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .github/workflows/publish.yml | 1227 | # Check if a merge PR already exists before pushing (idempotent for workflow re-runs) |
| LOW | .github/workflows/publish.yml | 1329 | # Check if LTS branch already exists |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …pes/data-management/server-side-django/server/views.py | 47 |