测试
This commit is contained in:
9
frontend/node_modules/element-plus/lib/directives/trap-focus/index.d.ts
generated
vendored
Normal file
9
frontend/node_modules/element-plus/lib/directives/trap-focus/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { ObjectDirective } from 'vue';
|
||||
export declare const FOCUSABLE_CHILDREN = "_trap-focus-children";
|
||||
export declare const TRAP_FOCUS_HANDLER = "_trap-focus-handler";
|
||||
export interface TrapFocusElement extends HTMLElement {
|
||||
[FOCUSABLE_CHILDREN]: HTMLElement[];
|
||||
[TRAP_FOCUS_HANDLER]: (e: KeyboardEvent) => void;
|
||||
}
|
||||
declare const TrapFocus: ObjectDirective;
|
||||
export default TrapFocus;
|
||||
63
frontend/node_modules/element-plus/lib/directives/trap-focus/index.js
generated
vendored
Normal file
63
frontend/node_modules/element-plus/lib/directives/trap-focus/index.js
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var vue = require('vue');
|
||||
var aria = require('../../utils/dom/aria.js');
|
||||
var event = require('../../utils/dom/event.js');
|
||||
var aria$1 = require('../../constants/aria.js');
|
||||
|
||||
const FOCUSABLE_CHILDREN = "_trap-focus-children";
|
||||
const TRAP_FOCUS_HANDLER = "_trap-focus-handler";
|
||||
const FOCUS_STACK = [];
|
||||
const FOCUS_HANDLER = (e) => {
|
||||
if (FOCUS_STACK.length === 0)
|
||||
return;
|
||||
const code = event.getEventCode(e);
|
||||
const focusableElement = FOCUS_STACK[FOCUS_STACK.length - 1][FOCUSABLE_CHILDREN];
|
||||
if (focusableElement.length > 0 && code === aria$1.EVENT_CODE.tab) {
|
||||
if (focusableElement.length === 1) {
|
||||
e.preventDefault();
|
||||
if (document.activeElement !== focusableElement[0]) {
|
||||
focusableElement[0].focus();
|
||||
}
|
||||
return;
|
||||
}
|
||||
const goingBackward = e.shiftKey;
|
||||
const isFirst = e.target === focusableElement[0];
|
||||
const isLast = e.target === focusableElement[focusableElement.length - 1];
|
||||
if (isFirst && goingBackward) {
|
||||
e.preventDefault();
|
||||
focusableElement[focusableElement.length - 1].focus();
|
||||
}
|
||||
if (isLast && !goingBackward) {
|
||||
e.preventDefault();
|
||||
focusableElement[0].focus();
|
||||
}
|
||||
}
|
||||
};
|
||||
const TrapFocus = {
|
||||
beforeMount(el) {
|
||||
el[FOCUSABLE_CHILDREN] = aria.obtainAllFocusableElements(el);
|
||||
FOCUS_STACK.push(el);
|
||||
if (FOCUS_STACK.length <= 1) {
|
||||
document.addEventListener("keydown", FOCUS_HANDLER);
|
||||
}
|
||||
},
|
||||
updated(el) {
|
||||
vue.nextTick(() => {
|
||||
el[FOCUSABLE_CHILDREN] = aria.obtainAllFocusableElements(el);
|
||||
});
|
||||
},
|
||||
unmounted() {
|
||||
FOCUS_STACK.shift();
|
||||
if (FOCUS_STACK.length === 0) {
|
||||
document.removeEventListener("keydown", FOCUS_HANDLER);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
exports.FOCUSABLE_CHILDREN = FOCUSABLE_CHILDREN;
|
||||
exports.TRAP_FOCUS_HANDLER = TRAP_FOCUS_HANDLER;
|
||||
exports["default"] = TrapFocus;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
frontend/node_modules/element-plus/lib/directives/trap-focus/index.js.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/lib/directives/trap-focus/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sources":["../../../../../packages/directives/trap-focus/index.ts"],"sourcesContent":["import { nextTick } from 'vue'\nimport { getEventCode, obtainAllFocusableElements } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\n\nimport type { ObjectDirective } from 'vue'\n\nexport const FOCUSABLE_CHILDREN = '_trap-focus-children'\nexport const TRAP_FOCUS_HANDLER = '_trap-focus-handler'\n\nexport interface TrapFocusElement extends HTMLElement {\n [FOCUSABLE_CHILDREN]: HTMLElement[]\n [TRAP_FOCUS_HANDLER]: (e: KeyboardEvent) => void\n}\n\nconst FOCUS_STACK: TrapFocusElement[] = []\n\nconst FOCUS_HANDLER = (e: KeyboardEvent) => {\n // Getting the top layer.\n if (FOCUS_STACK.length === 0) return\n const code = getEventCode(e)\n const focusableElement =\n FOCUS_STACK[FOCUS_STACK.length - 1][FOCUSABLE_CHILDREN]\n if (focusableElement.length > 0 && code === EVENT_CODE.tab) {\n if (focusableElement.length === 1) {\n e.preventDefault()\n if (document.activeElement !== focusableElement[0]) {\n focusableElement[0].focus()\n }\n return\n }\n const goingBackward = e.shiftKey\n const isFirst = e.target === focusableElement[0]\n const isLast = e.target === focusableElement[focusableElement.length - 1]\n if (isFirst && goingBackward) {\n e.preventDefault()\n focusableElement[focusableElement.length - 1].focus()\n }\n if (isLast && !goingBackward) {\n e.preventDefault()\n focusableElement[0].focus()\n }\n\n // the is critical since jsdom did not implement user actions, you can only mock it\n // DELETE ME: when testing env switches to puppeteer\n if (process.env.NODE_ENV === 'test') {\n const index = focusableElement.indexOf(e.target as HTMLElement)\n if (index !== -1) {\n focusableElement[goingBackward ? index - 1 : index + 1]?.focus()\n }\n }\n }\n}\n\nconst TrapFocus: ObjectDirective = {\n beforeMount(el: TrapFocusElement) {\n el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements(el)\n FOCUS_STACK.push(el)\n if (FOCUS_STACK.length <= 1) {\n document.addEventListener('keydown', FOCUS_HANDLER)\n }\n },\n updated(el: TrapFocusElement) {\n nextTick(() => {\n el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements(el)\n })\n },\n unmounted() {\n FOCUS_STACK.shift()\n if (FOCUS_STACK.length === 0) {\n document.removeEventListener('keydown', FOCUS_HANDLER)\n }\n },\n}\n\nexport default TrapFocus\n"],"names":["getEventCode","EVENT_CODE","obtainAllFocusableElements","nextTick"],"mappings":";;;;;;;;;AAGY,MAAC,kBAAkB,GAAG,uBAAuB;AAC7C,MAAC,kBAAkB,GAAG,sBAAsB;AACxD,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK;AAC7B,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;AAC9B,IAAI,OAAO;AACX,EAAE,MAAM,IAAI,GAAGA,kBAAY,CAAC,CAAC,CAAC,CAAC;AAC/B,EAAE,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACnF,EAAE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAKC,iBAAU,CAAC,GAAG,EAAE;AAC9D,IAAI,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;AACzB,MAAM,IAAI,QAAQ,CAAC,aAAa,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACpC,OAAO;AACP,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;AACrC,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,OAAO,IAAI,aAAa,EAAE;AAClC,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;AACzB,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE;AAClC,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;AACzB,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAClC,KAAK;AAOL,GAAG;AACH,CAAC,CAAC;AACG,MAAC,SAAS,GAAG;AAClB,EAAE,WAAW,CAAC,EAAE,EAAE;AAClB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAGC,+BAA0B,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,IAAI,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACjC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,EAAE,EAAE;AACd,IAAIC,YAAQ,CAAC,MAAM;AACnB,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAGD,+BAA0B,CAAC,EAAE,CAAC,CAAC;AAC9D,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC7D,KAAK;AACL,GAAG;AACH;;;;;;"}
|
||||
Reference in New Issue
Block a user