UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

129 lines (122 loc) 4.9 kB
"use strict";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