one-click-accessibility/modules/scanner/assets/js/utils/focus-on-element.js
VasylD 4c1546784b
[APP-1747] add parent selector (#360)
* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* [APP-1747] add parent selector

* Add mixpanel events

* Add mixpanel events

* Add mixpanel events

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* Update modules/remediation/assets/js/actions/styles.js

Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* Update modules/scanner/assets/js/hooks/use-color-contrast-form.js

Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>

* Exclude adminbar from css rule

* Exclude adminbar from css rule

* fix quota

* fix quota

* fix quota

* fix quota

* fix quota

* fix quota

* fix quota

* fix linter

---------

Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com>
2025-08-05 15:27:40 +02:00

48 lines
1.2 KiB
JavaScript

import {
BACKGROUND_ELEMENT_CLASS,
COLOR_ELEMENT_CLASS,
CURRENT_ELEMENT_CLASS,
DATA_INITIAL_BG,
DATA_INITIAL_COLOR,
} from '@ea11y-apps/scanner/constants';
export const focusOnElement = (element, queryClass = null) => {
removeExistingFocus(queryClass);
if (element) {
element.classList.add(queryClass ?? CURRENT_ELEMENT_CLASS);
if (queryClass !== BACKGROUND_ELEMENT_CLASS) {
element.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
}
};
export const resetStyles = (element) => {
const bg = element.getAttribute(DATA_INITIAL_BG);
const color = element.getAttribute(DATA_INITIAL_COLOR);
if (bg && element?.style) {
element.style['background-color'] = bg;
element.removeAttribute(DATA_INITIAL_BG);
}
if (color && element?.style) {
element.style.color = color;
element.removeAttribute(DATA_INITIAL_COLOR);
}
};
export const removeExistingFocus = (queryClass = null) => {
document
.querySelectorAll(
queryClass
? `.${queryClass}`
: `.${CURRENT_ELEMENT_CLASS}, .${COLOR_ELEMENT_CLASS}, .${BACKGROUND_ELEMENT_CLASS}`,
)
.forEach((element) => {
element.classList.remove(
CURRENT_ELEMENT_CLASS,
COLOR_ELEMENT_CLASS,
BACKGROUND_ELEMENT_CLASS,
);
resetStyles(element);
});
};