Files
cc-1c-skills/.claude/skills/web-test/scripts/dom.mjs
T
Nick ShirokovandClaude Opus 4.7 b518b614bb refactor(web-test): извлечён grid-edit домен в dom/grid-edit.mjs
Тяжёлые DOM-блоки row-fill (15–60 строк) вынесены в 8 именованных
функций dom/grid-edit.mjs. row-fill стал плоским orchestrator-ом.

Новое в dom/grid-edit.mjs:
- sortFieldKeysByColindexScript    — сортировка keys по colindex (Tab-нав)
- findCellCoordsByFieldsScript     — клетка по first matching header (multi)
- findNextCellCoordsByKeyScript    — клетка по single key + no-space fuzzy
- findCheckboxAtPointScript        — checkbox info по координатам elementFromPoint
- findRowCommitClickCoordsScript   — клик OTHER row для commit-edit
- getGridEditCheckScript           — { inEdit, tag?, hint? } диагностика
- readActiveGridCellScript         — активная клетка (id, fullName, headerText)
- getElementCenterCoordsByIdScript — центр по id (дедуп 2 копий)

Метрики row-fill: 971 → 793 LOC (−178, S6 alone), inline page.evaluate
10 → 1 (значительно ниже плановой цели ≤10). Все табличные suite
зелёные (05/06/08/10/16), полный регресс зелёный (Checkpoint-2).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 21:31:02 +03:00

91 lines
2.3 KiB
JavaScript

// web-test dom v1.14 — facade re-exporting injectable DOM scripts from dom/
// Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
/**
* Facade: re-exports DOM selector & semantic mapping script generators.
* Внутренности живут в dom/*. Публичный набор имён неизменен.
*
* All functions return JavaScript strings for page.evaluate().
* They produce clean semantic structures — no DOM IDs or CSS classes leak out.
* Only non-default property values are included to minimize response size.
*/
export {
detectFormScript,
readFormScript,
findClickTargetScript,
findFieldButtonScript,
resolveFieldsScript,
detectNewFormScript,
findSearchInputScript,
findNamedButtonScript,
findCompareTypeRadioScript,
isFormVisibleScript,
findPatternInputIdScript,
isTypeDialogScript,
isNotInListCloudVisibleScript,
clickShowAllInNotInListCloudScript,
findChildFormByButtonScript,
readTypeDialogVisibleRowsScript,
} from './dom/forms.mjs';
export {
findFirstGridCellCoordsScript,
findColumnFirstCellCoordsScript,
readFieldSelectorInfoScript,
pickFieldInSelectorDropdownScript,
readFilterDialogInfoScript,
findFilterBadgeCloseScript,
findFirstFilterBadgeCloseScript,
} from './dom/filter.mjs';
export {
isInputFocusedScript,
isInputFocusedInGridScript,
findOpenPopupScript,
} from './dom/edit-state.mjs';
export {
readEddScript,
isEddVisibleScript,
clickEddItemViaDispatchScript,
clickShowAllInEddScript,
} from './dom/edd.mjs';
export { getFormStateScript } from './dom/form-state.mjs';
export {
resolveGridScript,
readTableScript,
countGridRowsScript,
isTreeGridScript,
findGridHeadCenterCoordsScript,
getSelectedOrLastRowIndexScript,
} from './dom/grid.mjs';
export {
sortFieldKeysByColindexScript,
findCellCoordsByFieldsScript,
findNextCellCoordsByKeyScript,
findCheckboxAtPointScript,
findRowCommitClickCoordsScript,
getGridEditCheckScript,
readActiveGridCellScript,
getElementCenterCoordsByIdScript,
} from './dom/grid-edit.mjs';
export {
readSectionsScript,
readTabsScript,
switchTabScript,
readCommandsScript,
navigateSectionScript,
openCommandScript,
} from './dom/nav.mjs';
export {
readSubmenuScript,
clickPopupItemScript,
} from './dom/submenu.mjs';
export { checkErrorsScript } from './dom/errors.mjs';