Repository Analysis

handsontable/handsontable

JavaScript Data Grid / Data Table with a Spreadsheet Look & Feel. Works with React, Angular, and Vue. Supported by the Handsontable team ⚡

1.1 Likely human-written View on GitHub
1.1
Adjusted Score
1.1
Raw Score
100%
Time Factor
2026-05-30
Last Push
21,907
Stars
JavaScript
Language
924,023
Lines of Code
5307
Files
499
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 30HIGH 0MEDIUM 66LOW 403

Pattern Findings

499 matches across 10 categories. Click a row to expand file-level details.

Hallucination Indicators30 hits · 330 pts
SeverityFileLineSnippet
CRITICALhandsontable/test/lib/jquery.min.js4},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function
CRITICALhandsontable/src/plugins/customBorders/customBorders.ts678 this.hot.selection.highlight.customSelections.splice(index, 1);
CRITICALhandsontable/src/plugins/mergeCells/mergeCells.ts311 this.hot.view._wt.wtOverlays.getOverlays(true).map(
CRITICAL…s/nestedHeaders/__tests__/generalFunctionality.spec.js504 const headerRows = hot.view._wt.wtTable.THEAD.querySelectorAll('tr');
CRITICAL…e/src/plugins/nestedHeaders/__tests__/helpers/index.js30 const headerRows = hot.view._wt.wtTable.THEAD.querySelectorAll('tr');
CRITICAL…ontable/src/plugins/manualRowResize/manualRowResize.ts462 const walkontableHeight = this.hot.view._wt.wtTable.getRowHeight(row);
CRITICAL…e/src/plugins/manualColumnResize/manualColumnResize.ts730 this.hot.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked();
CRITICALhandsontable/src/plugins/manualRowMove/manualRowMove.ts467 tdStartPixel += this.hot.view._wt.wtOverlays.topOverlay.getOverlayOffset();
CRITICALhandsontable/src/plugins/manualRowMove/manualRowMove.ts694 const headerWidth = this.hot.view._wt.wtViewport.getRowHeaderWidth();
CRITICAL…table/src/plugins/manualColumnMove/manualColumnMove.ts321 columnsWidth += this.hot.view._wt.wtViewport.getRowHeaderWidth() || 0;
CRITICAL…table/src/plugins/manualColumnMove/manualColumnMove.ts324 columnsWidth += this.hot.view._wt.wtTable.getColumnWidth(renderableIndex) || 0;
CRITICAL…table/src/plugins/manualColumnMove/manualColumnMove.ts584 const horizontalScrollPosition = this.hot.view._wt.wtOverlays.inlineStartOverlay.getOverlayOffset();
CRITICAL…e/src/editors/autocompleteEditor/autocompleteEditor.ts105 addClass(this.htContainer, this.hot.rootWindow.navigator.platform.indexOf('Mac') === -1 ? '' : 'htMacScroll');
CRITICAL…e/src/editors/autocompleteEditor/autocompleteEditor.ts449 this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
CRITICAL…e/src/editors/autocompleteEditor/autocompleteEditor.ts464 this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
CRITICALhandsontable/src/__tests__/settings/validator.spec.js1501 const mostRecentRendererCallArgs = tableView()._wt.wtSettings.settings.cellRenderer.calls.mostRecent().args;
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1221 expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1222 expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1353 expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1354 expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1362 expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1363 expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1371 expect(hot1.view._wt.wtOverlays.topOverlay.getScrollPosition()).toBe(0);
CRITICAL…cuts/__tests__/keyboardShortcuts/tabNavigation.spec.js1372 expect(hot1.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition()).toBe(0);
CRITICALhandsontable/src/helpers/dom/__tests__/element.spec.js154 rootElement.parentNode.parentNode.parentNode.parentNode.appendChild(createDivWithId('rootSibling'));
CRITICAL…ontent/recipes/cell-types/color-picker/color-picker.md300 editor.pickr._root.app.classList.remove('visible');
CRITICAL…ontent/recipes/cell-types/color-picker/color-picker.md425 editor.pickr._root.app.classList.remove('visible');
CRITICAL…recipes/cell-types/color-picker/javascript/example1.js270 editor.pickr._root.app.classList.remove('visible');
CRITICAL…recipes/cell-types/color-picker/javascript/example1.ts275 editor.pickr._root.app.classList.remove('visible');
CRITICAL…ent/recipes/cell-types/color-picker/react/example1.jsx78 editor.pickr._root.app.classList.remove('visible');
Hyper-Verbose Identifiers252 hits · 256 pts
SeverityFileLineSnippet
LOWhandsontable/.config/themes-umd-development.js33function createHandsontableExternals() {
LOWhandsontable/.config/themes-umd-development.js117function createRuleForVariablesRegistration(variableName, namespacePath) {
LOWhandsontable/test/helpers/focusNavigator.js93function findFirstFocusableElement(elements) {
LOWhandsontable/test/helpers/common.js94export function waitForNextAnimationFrames(framesToWait = 1) {
LOWhandsontable/test/helpers/common.js147export async function waitForNameAnimationFrames(framesToWait = 1) {
LOWhandsontable/test/helpers/common.js171function normalizeLegacyFrameCount(framesToWait) {
LOWhandsontable/test/helpers/common.js278export function handsontableMethodFactory(method) {
LOWhandsontable/test/helpers/common.js446export function getFirstRenderedRowDefaultHeight() {
LOWhandsontable/test/helpers/common.js460export function getDefaultColumnHeaderHeight() {
LOWhandsontable/test/helpers/common.js494export function expectedLastFullyVisibleRow(containerHeight, colHeaderRows = 1) {
LOWhandsontable/test/helpers/common.js652export function topInlineStartCornerOverlay() {
LOWhandsontable/test/helpers/common.js666export function bottomInlineStartCornerOverlay() {
LOWhandsontable/test/helpers/common.js700export async function scrollViewportHorizontally(x) {
LOWhandsontable/test/helpers/common.js832export function getBottomInlineStartClone() {
LOWhandsontable/test/helpers/common.js995export async function selectContextSubmenuOption(submenuName, optionName, cell) {
LOWhandsontable/test/helpers/common.js1066export function openDropdownSubmenuOption(submenuName, cell) {
LOWhandsontable/test/helpers/common.js1081export function openDropdownByConditionMenu(menuName = 'first') {
LOWhandsontable/test/helpers/common.js1096export function selectDropdownByConditionMenuOption(optionName, menuName = 'first') {
LOWhandsontable/test/helpers/common.js1128export function serveImmediatePropagation(event) {
LOWhandsontable/test/helpers/common.js1331export function createAccessorForProperty(name) {
LOWhandsontable/test/helpers/common.js1395export function moveSecondDisplayedRowBeforeFirstRow(container, secondDisplayedRowIndex) {
LOWhandsontable/test/helpers/common.js1422export function moveFirstDisplayedRowAfterSecondRow(container, firstDisplayedRowIndex) {
LOWhandsontable/test/helpers/common.js1561function getFillHandleDragEventArgs(targetElement, options = {}) {
LOWhandsontable/test/helpers/common.js1615export function simulateFillHandleDragStart(targetElement, options = {}) {
LOWhandsontable/test/helpers/common.js1640export function simulateFillHandleDragMove(targetElement, options = {}) {
LOWhandsontable/test/helpers/common.js1691export function simulateFillHandleDragFinish(targetElement, options = {}) {
LOWhandsontable/test/helpers/common.js1738export function simulateModernThemeStylesheet(container) {
LOWhandsontable/test/helpers/common.js1750export function clearModernThemeStylesheetMock(container) {
LOWhandsontable/test/helpers/common.js1775export function createEmptySpreadsheetData(...args) {
LOWhandsontable/test/helpers/common.js1786export function createSpreadsheetObjectData(...args) {
LOWhandsontable/test/helpers/common.js1837export function spyOnConsoleDeprecatedWarn() {
LOWhandsontable/test/helpers/mouseEvents.js28export function handsontableMouseTriggerFactory(type, defaultButtonKey = getMouseButton('LMB')) {
LOWhandsontable/src/core.ts1547 function doesChangeAffectOpenedEditor(changes: CellChange[], activeEditor: BaseEditor | undefined) {
LOW…table/src/dataMap/metaManager/metaLayers/globalMeta.ts11function createTableMetaEmptyClass() {
LOW…table/src/renderers/multiSelectRenderer/utils/utils.ts114export function registerChipRemovingEvents(
LOW…table/src/renderers/multiSelectRenderer/utils/utils.ts171export function cacheColumnWidthAndRegisterResizeHook(
LOW…table/src/renderers/multiSelectRenderer/utils/utils.ts210function recalculateChipsVisibility(
LOW…ble/src/renderers/checkboxRenderer/checkboxRenderer.ts217 function changeSelectedCheckboxesState(uncheckCheckbox = false) {
LOWhandsontable/src/core/viewportScroll/utils.ts26export function createScrollTargetCalculator(hotInstance: HotInstance) {
LOW…viewportScroll/scrollStrategies/noncontiguousScroll.ts11export function noncontiguousScrollStrategy(hot: HotInstance) {
LOW…/viewportScroll/scrollStrategies/cornerHeaderScroll.ts6export function cornerHeaderScrollStrategy(_hot?: unknown) {
LOW…/viewportScroll/scrollStrategies/columnHeaderScroll.ts11export function columnHeaderScrollStrategy(hot: HotInstance) {
LOWhandsontable/src/plugins/filters/sortComparators.ts56export function createISODateSortComparator(): (a: unknown, b: unknown) => number {
LOW…gins/filters/__tests__/conditionUpdateObserver.spec.js7 function getConditionUpdateObserver() {
LOW…ontable/src/plugins/filters/__tests__/helpers/utils.js4export function conditionMenuRootElements() {
LOW…ontable/src/plugins/filters/__tests__/helpers/utils.js27export function conditionSelectRootElements() {
LOW…ontable/src/plugins/filters/__tests__/helpers/utils.js122export function getFilterDropdownMenuOKButton() {
LOW…ontable/src/plugins/filters/__tests__/helpers/utils.js131export function getFilterDropdownMenuCancelButton() {
LOW…ndsontable/src/plugins/filters/menu/focusController.ts26export function createMenuFocusController(mainMenu: Record<string, unknown>, menuItems: unknown[]) {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js4export function filterByValueBoxRootElement() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js18export function filterByValueMultipleSelect() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js55export function stringifyPageCounterSection(container = getPaginationContainerElement()) {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js67export function stringifyPageNavigationSection(container = getPaginationContainerElement()) {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js122export function getPaginationContainerElement() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js131export function getPaginationFocusableElements() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js141export function getPaginationPageFirstButton() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js150export function getPaginationPagePrevButton() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js159export function getPaginationPageNextButton() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js168export function getPaginationPageLastButton() {
LOW…able/src/plugins/pagination/__tests__/helpers/utils.js177export function getPaginationPagePageSizeSelect() {
192 more matches not shown…
Decorative Section Separators62 hits · 198 pts
SeverityFileLineSnippet
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts22// ─── CSV — synchronous ───────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts49// ─── XLSX — asynchronous ───────────────────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts68// ─── Conditional formatting ────────────────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts84// ─── Multi-sheet export ────────────────────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts106// ─── SheetOptions: name is optional ───────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts113// ─── ExportOptions: headerStyle (XLSX) ────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts119// ─── ExportOptions: engine (per-call override) ────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts123// ─── sanitizeValues variants ───────────────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts129// ─── downloadFileAsync ────────────────────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts147// ─── supportsExportFormat ─────────────────────────────────────────────────
MEDIUM…e/src/plugins/exportFile/__tests__/exportFile.types.ts152// ─── exportAsBlobAsync ────────────────────────────────────────────────────
MEDIUM…nagement/server-side-rails/server/orders_controller.rb18 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb32 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb45 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb51 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb67 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb72 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb93 # ------------------------------------------------------------------
MEDIUM…nagement/server-side-rails/server/orders_controller.rb99 # ------------------------------------------------------------------
MEDIUM…pes/data-management/server-side-django/server/views.py138 # ------------------------------------------------------------------
MEDIUM…pes/data-management/server-side-django/server/views.py140 # ------------------------------------------------------------------
MEDIUMdocs/public/example-tabs.js12 // ── Hot-example code assembly (Expressive Code blocks) ───────────────────
MEDIUMdocs/public/example-tabs.js231 // ── Source code toggle ────────────────────────────────────────────────────
MEDIUMdocs/public/example-tabs.js247 // ── Code group tabs (npm / Yarn / pnpm etc.) ────────────────────────────
MEDIUMdocs/public/example-tabs.js327 // ── Edit on StackBlitz ────────────────────────────────────────────────────
MEDIUMdocs/public/example-tabs.js496 // ── Vanilla JS project ────────────────────────────────────────────────────
MEDIUMdocs/public/example-tabs.js565 // ── React project ─────────────────────────────────────────────────────────
MEDIUMdocs/public/example-tabs.js644 // ── Vue 3 project ─────────────────────────────────────────────────────────
MEDIUMdocs/public/example-tabs.js716 // ── Angular project ───────────────────────────────────────────────────────
MEDIUMdocs/public/example-tabs.js960 // ── Utility ───────────────────────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts15// ── Glob maps resolved by Vite at build time ──────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts23// ── Zone.js load-once guard ───────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts32// ── Angular bootstrap helper (NgModule + standalone) ─────────────────────
MEDIUMdocs/src/scripts/example-runner.ts58// ── Helpers ───────────────────────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts88// ── Main runner ───────────────────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts91 // ── Inject example CSS files ──────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts109 // ── Vanilla JS examples ────────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts130 // ── React JSX examples ─────────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts173 // ── Vue 3 examples ────────────────────────────────────────────────────
MEDIUMdocs/src/scripts/example-runner.ts221 // ── Angular examples ───────────────────────────────────────────────────
MEDIUMdocs/src/scripts/a11y-utils.ts9// ── Focus trap ──────────────────────────────────────────────────────────
MEDIUMdocs/src/scripts/a11y-utils.ts51// ── Dropdown keyboard navigation ────────────────────────────────────────
MEDIUM.github/workflows/publish.yml27 # ============================================================
MEDIUM.github/workflows/publish.yml29 # ============================================================
MEDIUM.github/workflows/publish.yml70 # ============================================================
MEDIUM.github/workflows/publish.yml72 # ============================================================
MEDIUM.github/workflows/publish.yml326 # ============================================================
MEDIUM.github/workflows/publish.yml328 # ============================================================
MEDIUM.github/workflows/publish.yml500 # ============================================================
MEDIUM.github/workflows/publish.yml502 # ============================================================
MEDIUM.github/workflows/publish.yml781 # ============================================================
MEDIUM.github/workflows/publish.yml783 # ============================================================
MEDIUM.github/workflows/publish.yml1000 # ============================================================
MEDIUM.github/workflows/publish.yml1002 # ============================================================
MEDIUM.github/workflows/publish.yml1428 # ============================================================
MEDIUM.github/workflows/publish.yml1430 # ============================================================
MEDIUM.github/workflows/publish.yml1658 # ============================================================
MEDIUM.github/workflows/publish.yml1660 # ============================================================
MEDIUM.github/workflows/publish.yml1686 # ============================================================
MEDIUM.github/workflows/publish.yml1688 # ============================================================
2 more matches not shown…
Verbosity Indicators58 hits · 92 pts
SeverityFileLineSnippet
LOW…a-management/server-side-django/javascript/example1.js28// Step 1: Read Django's CSRF token from the cookie.
LOW…a-management/server-side-django/javascript/example1.js42// Step 2: Build the request URL for fetchRows.
LOW…a-management/server-side-django/javascript/example1.js79// Step 3: Initialize Handsontable with the dataProvider plugin.
LOW…a-management/server-side-django/javascript/example1.ts34// Step 1: Read Django's CSRF token from the cookie.
LOW…a-management/server-side-django/javascript/example1.ts48// Step 2: Build the request URL for fetchRows.
LOW…a-management/server-side-django/javascript/example1.ts77// Step 3: Initialize Handsontable with the dataProvider plugin.
LOW…/data-management/server-side-django/react/example1.tsx15// Step 1: Read Django's CSRF token from the cookie.
LOW…/data-management/server-side-django/react/example1.tsx25// Step 2: Build the request URL for fetchRows.
LOW…/data-management/server-side-django/react/example1.tsx51// Step 3: React component with the dataProvider plugin.
LOW…/data-management/server-side-django/react/example1.jsx8// Step 1: Read Django's CSRF token from the cookie.
LOW…/data-management/server-side-django/react/example1.jsx22// Step 2: Build the request URL for fetchRows.
LOW…/data-management/server-side-django/react/example1.jsx51// Step 3: React component with the dataProvider plugin.
LOW…a-management/load-data-rest-api/javascript/example2.ts50// Step 1: Initialize the grid with columnSorting enabled and an empty dataset.
LOW…a-management/load-data-rest-api/javascript/example2.ts72// Step 2: A helper that keeps the toolbar consistent with the current request state.
LOW…a-management/load-data-rest-api/javascript/example2.ts92// Step 3: Map the API response to flat row objects that match the column definitions.
LOW…a-management/load-data-rest-api/javascript/example2.ts104// Step 4: Shared fetch helper used by both initialLoad() and refreshUsers().
LOW…a-management/load-data-rest-api/javascript/example2.ts115// Step 5: Initial load uses loadData(), which resets all grid states.
LOW…a-management/load-data-rest-api/javascript/example2.ts131// Step 6: Subsequent refreshes use updateData(), which replaces the data
LOW…a-management/load-data-rest-api/javascript/example3.ts20// Step 1: Cache the full response after the first request.
LOW…a-management/load-data-rest-api/javascript/example3.ts72 // Step 2: Use dataProvider instead of a static data array.
LOW…a-management/load-data-rest-api/javascript/example3.ts79 // Step 3: fetchRows receives current query parameters and an AbortSignal.
LOW…a-management/load-data-rest-api/javascript/example3.ts87 // Step 4: Apply server-side sort from query parameters.
LOW…a-management/load-data-rest-api/javascript/example3.ts99 // Step 5: Apply server-side pagination from query parameters.
LOW…a-management/load-data-rest-api/javascript/example3.ts109 // Step 6: CRUD callbacks. jsonplaceholder is read-only, so these are no-ops.
LOW…a-management/load-data-rest-api/javascript/example3.ts126 // Step 7: Enable the Pagination plugin and pass pageSize so the plugin knows
LOW…a-management/load-data-rest-api/javascript/example3.ts140 // Step 8: Use fetch hooks to update the status label.
LOW…a-management/load-data-rest-api/javascript/example3.js6// Step 1: Cache the full response after the first request.
LOW…a-management/load-data-rest-api/javascript/example3.js55 // Step 2: Use dataProvider instead of a static data array.
LOW…a-management/load-data-rest-api/javascript/example3.js62 // Step 3: fetchRows receives current query parameters and an AbortSignal.
LOW…a-management/load-data-rest-api/javascript/example3.js67 // Step 4: Apply server-side sort from query parameters.
LOW…a-management/load-data-rest-api/javascript/example3.js79 // Step 5: Apply server-side pagination from query parameters.
LOW…a-management/load-data-rest-api/javascript/example3.js89 // Step 6: CRUD callbacks. jsonplaceholder is read-only, so these are no-ops.
LOW…a-management/load-data-rest-api/javascript/example3.js106 // Step 7: Enable the Pagination plugin and pass pageSize so the plugin knows
LOW…a-management/load-data-rest-api/javascript/example3.js120 // Step 8: Use fetch hooks to update the status label.
LOW…a-management/load-data-rest-api/javascript/example2.js45// Step 1: Initialize the grid with columnSorting enabled and an empty dataset.
LOW…a-management/load-data-rest-api/javascript/example2.js67// Step 2: A helper that keeps the toolbar consistent with the current request state.
LOW…a-management/load-data-rest-api/javascript/example2.js79// Step 3: Map the API response to flat row objects that match the column definitions.
LOW…a-management/load-data-rest-api/javascript/example2.js91// Step 4: Shared fetch helper used by both initialLoad() and refreshUsers().
LOW…a-management/load-data-rest-api/javascript/example2.js102// Step 5: Initial load uses loadData(), which resets all grid states.
LOW…a-management/load-data-rest-api/javascript/example2.js118// Step 6: Subsequent refreshes use updateData(), which replaces the data
LOW…/data-management/load-data-graphql/angular/example2.ts91 // Step 5: Initial load uses loadData() directly on the hot instance, which resets all grid states.
LOW…/data-management/load-data-graphql/angular/example2.ts112 // Step 6: Subsequent refreshes use updateData(), which replaces the data
LOW…ta-management/load-data-graphql/javascript/example2.ts73// Step 1: Initialize the grid with columnSorting enabled and an empty dataset.
LOW…ta-management/load-data-graphql/javascript/example2.ts95// Step 2: A helper that keeps the toolbar consistent with the current request state.
LOW…ta-management/load-data-graphql/javascript/example2.ts115// Step 3: Map the API response to flat row objects that match the column definitions.
LOW…ta-management/load-data-graphql/javascript/example2.ts127// Step 4: Shared GraphQL helper used by both initialLoad() and refreshUsers().
LOW…ta-management/load-data-graphql/javascript/example2.ts156// Step 5: Initial load uses loadData(), which resets all grid states.
LOW…ta-management/load-data-graphql/javascript/example2.ts172// Step 6: Subsequent refreshes use updateData(), which replaces the data
LOW…ta-management/load-data-graphql/javascript/example2.js64// Step 1: Initialize the grid with columnSorting enabled and an empty dataset.
LOW…ta-management/load-data-graphql/javascript/example2.js86// Step 2: A helper that keeps the toolbar consistent with the current request state.
LOW…ta-management/load-data-graphql/javascript/example2.js98// Step 3: Map the API response to flat row objects that match the column definitions.
LOW…ta-management/load-data-graphql/javascript/example2.js110// Step 4: Shared fetch helper used by both initialLoad() and refreshUsers().
LOW…ta-management/load-data-graphql/javascript/example2.js132// Step 5: Initial load uses loadData(), which resets all grid states.
LOW…ta-management/load-data-graphql/javascript/example2.js148// Step 6: Subsequent refreshes use updateData(), which replaces the data
LOW…s/data-management/load-data-graphql/react/example2.tsx92 // Step 5: Initial load uses loadData() via the hot instance, which resets all grid states.
LOW…s/data-management/load-data-graphql/react/example2.tsx111 // Step 6: Subsequent refreshes use updateData(), which replaces the data
LOW…s/data-management/load-data-graphql/react/example2.jsx71 // Step 5: Initial load uses loadData() via the hot instance, which resets all grid states.
LOW…s/data-management/load-data-graphql/react/example2.jsx90 // Step 6: Subsequent refreshes use updateData(), which replaces the data
Fake / Example Data65 hits · 76 pts
SeverityFileLineSnippet
LOW…gins/manualRowResize/__tests__/manualRowResize.spec.js1308 data[0][4] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit elit sed quam porta ' +
LOW…gins/manualRowResize/__tests__/manualRowResize.spec.js1308 data[0][4] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit elit sed quam porta ' +
LOW…ns/dialog/__tests__/keyboardShortcuts/shiftTab.spec.js63 <h6>Hello world</h6><p>Lorem ipsum</p>
LOW…ns/dialog/__tests__/keyboardShortcuts/shiftTab.spec.js109 <h6>Hello world</h6><p>Lorem ipsum</p>
LOW…plugins/dialog/__tests__/keyboardShortcuts/tab.spec.js63 <h6>Hello world</h6><p>Lorem ipsum</p>
LOW…plugins/dialog/__tests__/keyboardShortcuts/tab.spec.js109 <h6>Hello world</h6><p>Lorem ipsum</p>
LOW…ntable/src/plugins/formulas/__tests__/formulas.spec.js2360 hfInstance.renameSheet(0, 'Lorem Ipsum');
LOW…ntable/src/plugins/formulas/__tests__/formulas.spec.js2362 expect(getPlugin('formulas').sheetName).toBe('Lorem Ipsum');
LOW…ntable/src/plugins/formulas/__tests__/formulas.spec.js2363 expect(sheetNameInsideHook).toBe('Lorem Ipsum');
LOW…ntable/src/plugins/formulas/__tests__/formulas.spec.js2384 hfInstance.renameSheet(0, 'Lorem Ipsum');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js223 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js223 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js250 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js250 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js275 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js275 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js294 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js294 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js318 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js318 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js346 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOWhandsontable/src/helpers/dom/__tests__/element.spec.js346 .fill('Lorem ipsum dolor sit amet, consectetur adipiscing elit.').join(' ');
LOW…ipes/data-management/server-side-rails/server/seeds.rb12 "Acme Corp", "Vertex Industries", "Harbor Goods", "Alpine Supply Co.",
LOW…guides/styling/theme-customization/angular/example2.ts41 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…guides/styling/theme-customization/angular/example1.ts16 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…des/styling/theme-customization/javascript/example2.ts34 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…des/styling/theme-customization/javascript/example1.js13 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…des/styling/theme-customization/javascript/example2.js33 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…des/styling/theme-customization/javascript/example1.ts13 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…/guides/styling/theme-customization/react/example1.tsx29 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…/guides/styling/theme-customization/react/example2.tsx34 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…/guides/styling/theme-customization/react/example2.jsx33 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…/guides/styling/theme-customization/react/example1.jsx29 ['John Doe', 'johndoe@example.com', 'New York', 32, 'Engineer'],
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js3 "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.js3 "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.js4 "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.js4 "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.js5 "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.",
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js5 "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.",
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js6 "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.js6 "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.js9 "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.js9 "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.js10 "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.js10 "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.js11 "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.",
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js11 "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.",
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js12 "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.js12 "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.js15 "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.js15 "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.js16 "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.js16 "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.js17 "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.",
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js17 "Lorem ipsum dolor sit amet, consectetur adipiscing elit et dolore magna aliqua.",
LOW…xt/visual-tests/js/demo/src/demos/textEllipsis/data.js18 "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.js18 "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.js4 name: 'John Doe',
LOW…es/next/visual-tests/js/demo/src/demos/complex/data.js282 name: 'John Doe',
LOW…es/next/visual-tests/js/demo/src/demos/dialog/index.js61 content.innerHTML = `<h6>Hello world</h6><p>Lorem ipsum</p>`;
5 more matches not shown…
Over-Commented Block21 hits · 21 pts
SeverityFileLineSnippet
LOW…e/test/helpers/__tests__/themeLayoutFromTokens.unit.js181 it('defaults to main when theme name is falsy', () => {
LOW…ins/exportFile/__tests__/types/xlsx/cell-types.spec.js141 columns: [{ type: 'numeric' }],
LOW…ndsontable/src/3rdparty/walkontable/src/overlay/top.ts81 let skipInnerBorderAdjusting = false;
LOWhandsontable/src/helpers/dom/cellCoords.ts121 const lastPartiallyVisibleRow = hotInstance.getLastPartiallyVisibleRow();
LOW…rc/translations/mapCollections/aggregatedCollection.ts41 if (readFromCache === true) {
LOW…rc/translations/mapCollections/aggregatedCollection.ts61 // Below variable stores values for every particular index. Example describing situation when we have 2 registered m
LOWdocs/playwright.config.ts41 name: 'chromium',
LOWdocs/playwright.config.ts61 // name: 'Mobile Safari',
LOW…pes/data-management/server-side-rails/server/routes.rb1# config/routes.rb
LOW…management/server-side-rails/server/Gemfile-snippet.rb1# Gemfile -- relevant additions only.
LOW…nagement/server-side-rails/server/orders_controller.rb1# app/controllers/api/orders_controller.rb
LOW…nagement/server-side-rails/server/orders_controller.rb21 # Accepts:
LOW…ipes/data-management/server-side-rails/server/order.rb1# app/models/order.rb
LOW…cipes/data-management/server-side-rails/server/cors.rb1# config/initializers/cors.rb
LOW…a-management/server-side-laravel/server/routes-api.php21// Route::delete('/products', [ProductController::class, 'batchDestroy']);
LOW…ipes/data-management/server-side-django/server/urls.py1from django.urls import include, path
LOW…a-management/server-side-django/javascript/example1.js41// ---------------------------------------------------------------------------
LOW…data-management/server-side-symfony/react/example1.jsx1import { useRef, useCallback, useMemo } from 'react';
LOW…data-management/server-side-symfony/react/example1.jsx221 beforeRowsMutation={beforeRowsMutation}
LOW…t/guides/cell-functions/cell-function/cell-function.md41// td – HTMLTableCellElement to modify
LOW…/visual-tests/js/demo/src/demos/nestedHeaders/index.js81 // removeHeightBtn.addEventListener('click', () => {
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippet
MEDIUM…s/nestedHeaders/__tests__/generalFunctionality.spec.js583 // range (mapped from renderable to visual so the check is robust to any
MEDIUM…ontable/src/plugins/manualRowResize/manualRowResize.ts461 // TODO: this should utilize `this.hot.getRowHeight` after it's fixed and working properly.
MEDIUMhandsontable/src/plugins/formulas/formulas.ts347 // The `updateData` hooks utilize the same logic as the `loadData` hooks.
MEDIUM…le/src/editors/textEditor/__tests__/textEditor.spec.js748 // this robust across themes whose font metrics make AutoColumnSize grow columns past the
Overly Generic Function Names4 hits · 4 pts
SeverityFileLineSnippet
LOW…ntable/src/3rdparty/walkontable/test/helpers/common.js178export function getData(row, col) {
LOW…les/next/visual-tests/vue3/demo/src/utils/constants.ts1206export function getData() {
LOW…/angular-wrapper/demo/src/data-grid/utils/constants.ts1206export function getData() {
LOWexamples/prs/vue3/src/data.ts343export function getData() {
Redundant / Tautological Comments2 hits · 2 pts
SeverityFileLineSnippet
LOW.github/workflows/publish.yml1227 # Check if a merge PR already exists before pushing (idempotent for workflow re-runs)
LOW.github/workflows/publish.yml1329 # Check if LTS branch already exists
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippet
LOW…pes/data-management/server-side-django/server/views.py47