| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- !(function (e, t) {
- 'object' == typeof exports && 'undefined' != typeof module
- ? t()
- : 'function' == typeof define && define.amd
- ? define(t)
- : t();
- })(0, function () {
- 'use strict';
- function e(e) {
- var t = !0,
- n = !1,
- o = null,
- d = {
- text: !0,
- search: !0,
- url: !0,
- tel: !0,
- email: !0,
- password: !0,
- number: !0,
- date: !0,
- month: !0,
- week: !0,
- time: !0,
- datetime: !0,
- 'datetime-local': !0,
- };
- function i(e) {
- return !!(
- e &&
- e !== document &&
- 'HTML' !== e.nodeName &&
- 'BODY' !== e.nodeName &&
- 'classList' in e &&
- 'contains' in e.classList
- );
- }
- function s(e) {
- e.classList.contains('focus-visible') ||
- (e.classList.add('focus-visible'),
- e.setAttribute('data-focus-visible-added', ''));
- }
- function u(e) {
- t = !1;
- }
- function a() {
- document.addEventListener('mousemove', c),
- document.addEventListener('mousedown', c),
- document.addEventListener('mouseup', c),
- document.addEventListener('pointermove', c),
- document.addEventListener('pointerdown', c),
- document.addEventListener('pointerup', c),
- document.addEventListener('touchmove', c),
- document.addEventListener('touchstart', c),
- document.addEventListener('touchend', c);
- }
- function c(e) {
- (e.target.nodeName && 'html' === e.target.nodeName.toLowerCase()) ||
- ((t = !1),
- document.removeEventListener('mousemove', c),
- document.removeEventListener('mousedown', c),
- document.removeEventListener('mouseup', c),
- document.removeEventListener('pointermove', c),
- document.removeEventListener('pointerdown', c),
- document.removeEventListener('pointerup', c),
- document.removeEventListener('touchmove', c),
- document.removeEventListener('touchstart', c),
- document.removeEventListener('touchend', c));
- }
- document.addEventListener(
- 'keydown',
- function (n) {
- n.metaKey ||
- n.altKey ||
- n.ctrlKey ||
- (i(e.activeElement) && s(e.activeElement), (t = !0));
- },
- !0,
- ),
- document.addEventListener('mousedown', u, !0),
- document.addEventListener('pointerdown', u, !0),
- document.addEventListener('touchstart', u, !0),
- document.addEventListener(
- 'visibilitychange',
- function (e) {
- 'hidden' === document.visibilityState &&
- (n && (t = !0), a());
- },
- !0,
- ),
- a(),
- e.addEventListener(
- 'focus',
- function (e) {
- var n, o, u;
- i(e.target) &&
- (t ||
- ((n = e.target),
- (o = n.type),
- ('INPUT' === (u = n.tagName) &&
- d[o] &&
- !n.readOnly) ||
- ('TEXTAREA' === u && !n.readOnly) ||
- n.isContentEditable)) &&
- s(e.target);
- },
- !0,
- ),
- e.addEventListener(
- 'blur',
- function (e) {
- var t;
- i(e.target) &&
- (e.target.classList.contains('focus-visible') ||
- e.target.hasAttribute(
- 'data-focus-visible-added',
- )) &&
- ((n = !0),
- window.clearTimeout(o),
- (o = window.setTimeout(function () {
- n = !1;
- }, 100)),
- (t = e.target).hasAttribute(
- 'data-focus-visible-added',
- ) &&
- (t.classList.remove('focus-visible'),
- t.removeAttribute('data-focus-visible-added')));
- },
- !0,
- ),
- e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host
- ? e.host.setAttribute('data-js-focus-visible', '')
- : e.nodeType === Node.DOCUMENT_NODE &&
- (document.documentElement.classList.add('js-focus-visible'),
- document.documentElement.setAttribute(
- 'data-js-focus-visible',
- '',
- ));
- }
- if ('undefined' != typeof window && 'undefined' != typeof document) {
- var t;
- window.applyFocusVisiblePolyfill = e;
- try {
- t = new CustomEvent('focus-visible-polyfill-ready');
- } catch (e) {
- (t = document.createEvent('CustomEvent')).initCustomEvent(
- 'focus-visible-polyfill-ready',
- !1,
- !1,
- {},
- );
- }
- window.dispatchEvent(t);
- }
- 'undefined' != typeof document && e(document);
- });
- //# sourceMappingURL=focus-visible.min.js.map
|