Sha256: 6809a6643399caa5249802697666c75e60020baaba307e5cf1522f2ac355c4b0
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
/* eslint-disable custom-elements/no-constructor */ export default class SegmentedControlElement extends HTMLElement { constructor() { super(); this.addEventListener('click', (event) => { var _a, _b; const controls = Array.from(this.querySelectorAll('ul button')).filter(tab => tab instanceof HTMLElement && tab.closest(this.tagName) === this); if (!(event.target instanceof Element)) return; if (event.target.closest(this.tagName) !== this) return; const selectedControl = event.target.closest('button'); if (!(selectedControl instanceof HTMLElement) || !selectedControl.closest('ul')) return; for (const control of controls) { (_a = control.closest('li')) === null || _a === void 0 ? void 0 : _a.classList.remove('SegmentedControl-item--selected'); control.setAttribute('aria-current', 'false'); } (_b = selectedControl.closest('li')) === null || _b === void 0 ? void 0 : _b.classList.add('SegmentedControl-item--selected'); selectedControl.setAttribute('aria-current', 'true'); selectedControl.focus(); }); } } if (!window.customElements.get('segmented-control')) { window.SegmentedControlElement = SegmentedControlElement; window.customElements.define('segmented-control', SegmentedControlElement); }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
primer_view_components-0.0.92 | app/components/primer/alpha/segmented-control-element.js |
primer_view_components-0.0.91 | app/components/primer/alpha/segmented-control-element.js |