UNPKG

element-internals-polyfill

Version:
71 lines (70 loc) 2.31 kB
import { upgradeMap } from "./maps.js"; import { setAttribute } from "./utils.js"; import "./types.js"; export const aom = { ariaAtomic: "aria-atomic", ariaAutoComplete: "aria-autocomplete", ariaBrailleLabel: "aria-braillelabel", ariaBrailleRoleDescription: "aria-brailleroledescription", ariaBusy: "aria-busy", ariaChecked: "aria-checked", ariaColCount: "aria-colcount", ariaColIndex: "aria-colindex", ariaColIndexText: "aria-colindextext", ariaColSpan: "aria-colspan", ariaCurrent: "aria-current", ariaDescription: "aria-description", ariaDisabled: "aria-disabled", ariaExpanded: "aria-expanded", ariaHasPopup: "aria-haspopup", ariaHidden: "aria-hidden", ariaInvalid: "aria-invalid", ariaKeyShortcuts: "aria-keyshortcuts", ariaLabel: "aria-label", ariaLevel: "aria-level", ariaLive: "aria-live", ariaModal: "aria-modal", ariaMultiLine: "aria-multiline", ariaMultiSelectable: "aria-multiselectable", ariaOrientation: "aria-orientation", ariaPlaceholder: "aria-placeholder", ariaPosInSet: "aria-posinset", ariaPressed: "aria-pressed", ariaReadOnly: "aria-readonly", ariaRelevant: "aria-relevant", ariaRequired: "aria-required", ariaRoleDescription: "aria-roledescription", ariaRowCount: "aria-rowcount", ariaRowIndex: "aria-rowindex", ariaRowIndexText: "aria-rowindextext", ariaRowSpan: "aria-rowspan", ariaSelected: "aria-selected", ariaSetSize: "aria-setsize", ariaSort: "aria-sort", ariaValueMax: "aria-valuemax", ariaValueMin: "aria-valuemin", ariaValueNow: "aria-valuenow", ariaValueText: "aria-valuetext", role: "role", }; export const initAom = (ref, internals) => { for (let key in aom) { internals[key] = null; let closureValue = null; const attributeName = aom[key]; Object.defineProperty(internals, key, { get() { return closureValue; }, set(value) { closureValue = value; if (ref.isConnected) { setAttribute(ref, attributeName, value); } else { upgradeMap.set(ref, internals); } }, }); } };