analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
129 lines (122 loc) • 4.9 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
var _chunkALPGURNKjs = require('./chunk-ALPGURNK.js');
// src/hooks/useA11yPreferences.ts
var _react = require('react');
var CONTRAST_CLASS = {
normal: null,
high: "a11y-contrast-high",
inverted: "a11y-contrast-inverted"
};
var SATURATION_CLASS = {
normal: null,
grayscale: "a11y-saturation-grayscale",
low: "a11y-saturation-low"
};
var LEVEL_PREFIX = {
fontSize: "a11y-font-",
letterSpacing: "a11y-letter-spacing-",
lineSpacing: "a11y-line-spacing-"
};
var ALL_A11Y_CLASSES = [
"a11y-contrast-high",
"a11y-contrast-inverted",
"a11y-saturation-grayscale",
"a11y-saturation-low",
"a11y-font-1",
"a11y-font-2",
"a11y-font-3",
"a11y-letter-spacing-1",
"a11y-letter-spacing-2",
"a11y-letter-spacing-3",
"a11y-line-spacing-1",
"a11y-line-spacing-2",
"a11y-line-spacing-3",
"a11y-highlight-links",
"a11y-no-animations",
"a11y-big-cursor",
"a11y-dyslexia-font",
"a11y-cb-protanopia",
"a11y-cb-deuteranopia",
"a11y-cb-tritanopia"
];
var buildLevelClass = (prefix, level) => {
if (level === 0) return null;
return `${prefix}${level}`;
};
var buildClassMap = (prefs) => ({
contrastMode: _nullishCoalesce(CONTRAST_CLASS[prefs.contrastMode], () => ( void 0)),
saturationMode: _nullishCoalesce(SATURATION_CLASS[prefs.saturationMode], () => ( void 0)),
fontSize: _nullishCoalesce(buildLevelClass(LEVEL_PREFIX.fontSize, prefs.fontSize), () => ( void 0)),
letterSpacing: _nullishCoalesce(buildLevelClass(LEVEL_PREFIX.letterSpacing, prefs.letterSpacing), () => ( void 0)),
lineSpacing: _nullishCoalesce(buildLevelClass(LEVEL_PREFIX.lineSpacing, prefs.lineSpacing), () => ( void 0)),
highlightLinks: prefs.highlightLinks ? "a11y-highlight-links" : void 0,
pauseAnimations: prefs.pauseAnimations ? "a11y-no-animations" : void 0,
bigCursor: prefs.bigCursor ? "a11y-big-cursor" : void 0,
dyslexiaFont: prefs.dyslexiaFont ? "a11y-dyslexia-font" : void 0,
colorBlindMode: _nullishCoalesce(_chunkALPGURNKjs.getColorBlindClass.call(void 0, prefs.colorBlindMode), () => ( void 0))
});
var syncDom = (prefs) => {
if (typeof document === "undefined") return;
const root = document.documentElement;
ALL_A11Y_CLASSES.forEach((cls) => root.classList.remove(cls));
const classMap = buildClassMap(prefs);
Object.values(classMap).forEach((cls) => {
if (cls) root.classList.add(cls);
});
};
var useA11yPreferences = () => {
const contrastMode = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.contrastMode);
const saturationMode = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.saturationMode);
const fontSize = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.fontSize);
const letterSpacing = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.letterSpacing);
const lineSpacing = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.lineSpacing);
const highlightLinks = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.highlightLinks);
const pauseAnimations = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.pauseAnimations);
const bigCursor = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.bigCursor);
const dyslexiaFont = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.dyslexiaFont);
const readingAid = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.readingAid);
const keyboardShortcut = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.keyboardShortcut);
const colorBlindMode = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.colorBlindMode);
const ttsMode = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.ttsMode);
const ttsRate = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.ttsRate);
const ttsVoiceId = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.ttsVoiceId);
const librasEnabled = _chunkALPGURNKjs.useAccessibilityStore.call(void 0, (s) => s.librasEnabled);
_react.useEffect.call(void 0, () => {
syncDom({
contrastMode,
saturationMode,
fontSize,
letterSpacing,
lineSpacing,
highlightLinks,
pauseAnimations,
bigCursor,
dyslexiaFont,
readingAid,
keyboardShortcut,
colorBlindMode,
ttsMode,
ttsRate,
ttsVoiceId,
librasEnabled
});
}, [
contrastMode,
saturationMode,
fontSize,
letterSpacing,
lineSpacing,
highlightLinks,
pauseAnimations,
bigCursor,
dyslexiaFont,
colorBlindMode
]);
};
var __testing = {
buildClassMap,
syncDom,
ALL_A11Y_CLASSES
};
exports.useA11yPreferences = useA11yPreferences; exports.__testing = __testing;
//# sourceMappingURL=chunk-NWESVOUH.js.map