ep-craft 0.1.32 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/button/index.d.ts +12 -0
- package/dist/components/button-group/index.d.ts +3 -2
- package/dist/components/button-group/index.js +7 -3
- package/dist/components/button-group/src/button-group.d.ts +48 -0
- package/dist/components/button-group/src/button-group.js +7 -0
- package/dist/components/button-group/src/button-group.vue.d.ts +16 -0
- package/dist/components/button-group/src/button-group.vue.js +42 -0
- package/dist/components/button-group/src/button-group2.vue.js +4 -0
- package/dist/components/checkbox/index.js +6 -5
- package/dist/components/collection/index.d.ts +8 -0
- package/dist/components/collection/src/collection-item.vue.d.ts +2 -0
- package/dist/components/collection/src/collection-item.vue.js +10 -0
- package/dist/components/collection/src/collection-item2.vue.js +8 -0
- package/dist/components/collection/src/collection.d.ts +39 -0
- package/dist/components/collection/src/collection.js +52 -0
- package/dist/components/collection/src/collection.vue.d.ts +2 -0
- package/dist/components/collection/src/collection.vue.js +10 -0
- package/dist/components/collection/src/collection2.vue.js +7 -0
- package/dist/components/collection/src/tokens.d.ts +18 -0
- package/dist/components/divider/index.d.ts +24 -2
- package/dist/components/divider/index.js +8 -3
- package/dist/components/divider/src/divider.d.ts +30 -0
- package/dist/components/divider/src/divider.js +34 -0
- package/dist/components/divider/src/divider.vue.d.ts +24 -0
- package/dist/components/divider/src/divider.vue.js +39 -0
- package/dist/components/divider/src/divider2.vue.js +4 -0
- package/dist/components/dropdown/index.d.ts +3017 -3
- package/dist/components/dropdown/index.js +23 -3
- package/dist/components/dropdown/src/dropdown-item-impl.vue.d.ts +79 -0
- package/dist/components/dropdown/src/dropdown-item-impl.vue.js +40 -0
- package/dist/components/dropdown/src/dropdown-item-impl2.vue.js +68 -0
- package/dist/components/dropdown/src/dropdown-item.vue.d.ts +169 -0
- package/dist/components/dropdown/src/dropdown-item.vue.js +35 -0
- package/dist/components/dropdown/src/dropdown-item2.vue.js +63 -0
- package/dist/components/dropdown/src/dropdown-menu.vue.d.ts +27 -0
- package/dist/components/dropdown/src/dropdown-menu.vue.js +24 -0
- package/dist/components/dropdown/src/dropdown-menu2.vue.js +75 -0
- package/dist/components/dropdown/src/dropdown.d.ts +200 -0
- package/dist/components/dropdown/src/dropdown.js +201 -0
- package/dist/components/dropdown/src/dropdown.vue.d.ts +1126 -0
- package/dist/components/dropdown/src/dropdown.vue.js +127 -0
- package/dist/components/dropdown/src/dropdown2.vue.js +127 -0
- package/dist/components/dropdown/src/instance.d.ts +2 -0
- package/dist/components/dropdown/src/tokens.d.ts +13 -0
- package/dist/components/dropdown/src/tokens.js +5 -0
- package/dist/components/dropdown/src/useDropdown.d.ts +5 -0
- package/dist/components/dropdown/src/useDropdown.js +15 -0
- package/dist/components/dropdown-item/index.d.ts +1 -4
- package/dist/components/dropdown-menu/index.d.ts +1 -4
- package/dist/components/index.js +129 -131
- package/dist/components/popover/index.d.ts +121 -3
- package/dist/components/popover/index.js +19 -4
- package/dist/components/popover/src/directive.d.ts +4 -0
- package/dist/components/popover/src/directive.js +15 -0
- package/dist/components/popover/src/popover.d.ts +291 -0
- package/dist/components/popover/src/popover.js +168 -0
- package/dist/components/popover/src/popover.vue.d.ts +53 -0
- package/dist/components/popover/src/popover.vue.js +125 -0
- package/dist/components/popover/src/popover2.vue.js +4 -0
- package/dist/components/progress/index.d.ts +35 -2
- package/dist/components/progress/index.js +10 -4
- package/dist/components/progress/src/progress.d.ts +97 -0
- package/dist/components/progress/src/progress.js +104 -0
- package/dist/components/progress/src/progress.vue.d.ts +30 -0
- package/dist/components/progress/src/progress.vue.js +179 -0
- package/dist/components/progress/src/progress2.vue.js +4 -0
- package/dist/components/roving-focus-group/index.d.ts +14 -0
- package/dist/components/roving-focus-group/index.js +15 -0
- package/dist/components/roving-focus-group/src/roving-focus-group-impl.vue.d.ts +50 -0
- package/dist/components/roving-focus-group/src/roving-focus-group-impl.vue.js +10 -0
- package/dist/components/roving-focus-group/src/roving-focus-group-impl2.vue.js +115 -0
- package/dist/components/roving-focus-group/src/roving-focus-group.d.ts +56 -0
- package/dist/components/roving-focus-group/src/roving-focus-group.js +43 -0
- package/dist/components/roving-focus-group/src/roving-focus-group.vue.d.ts +67 -0
- package/dist/components/roving-focus-group/src/roving-focus-group.vue.js +13 -0
- package/dist/components/roving-focus-group/src/roving-focus-group2.vue.js +21 -0
- package/dist/components/roving-focus-group/src/roving-focus-item.vue.d.ts +43 -0
- package/dist/components/roving-focus-group/src/roving-focus-item.vue.js +20 -0
- package/dist/components/roving-focus-group/src/roving-focus-item2.vue.js +78 -0
- package/dist/components/roving-focus-group/src/tokens.d.ts +28 -0
- package/dist/components/roving-focus-group/src/tokens.js +5 -0
- package/dist/components/roving-focus-group/src/utils.d.ts +8 -0
- package/dist/components/roving-focus-group/src/utils.js +28 -0
- package/dist/components/table/index.d.ts +56 -3
- package/dist/components/table/index.js +20 -4
- package/dist/components/table/src/composables/use-scrollbar.d.ts +6 -0
- package/dist/components/table/src/composables/use-scrollbar.js +24 -0
- package/dist/components/table/src/config.d.ts +87 -0
- package/dist/components/table/src/config.js +210 -0
- package/dist/components/table/src/filter-panel.vue.d.ts +837 -0
- package/dist/components/table/src/filter-panel.vue.js +130 -0
- package/dist/components/table/src/filter-panel2.vue.js +155 -0
- package/dist/components/table/src/h-helper.d.ts +13 -0
- package/dist/components/table/src/h-helper.js +30 -0
- package/dist/components/table/src/layout-observer.d.ts +8 -0
- package/dist/components/table/src/layout-observer.js +49 -0
- package/dist/components/table/src/store/current.d.ts +15 -0
- package/dist/components/table/src/store/current.js +45 -0
- package/dist/components/table/src/store/expand.d.ts +14 -0
- package/dist/components/table/src/store/expand.js +55 -0
- package/dist/components/table/src/store/helper.d.ts +548 -0
- package/dist/components/table/src/store/helper.js +61 -0
- package/dist/components/table/src/store/index.d.ts +1107 -0
- package/dist/components/table/src/store/index.js +123 -0
- package/dist/components/table/src/store/tree.d.ts +27 -0
- package/dist/components/table/src/store/tree.js +153 -0
- package/dist/components/table/src/store/watcher.d.ts +88 -0
- package/dist/components/table/src/store/watcher.js +483 -0
- package/dist/components/table/src/table/defaults.d.ts +560 -0
- package/dist/components/table/src/table/defaults.js +236 -0
- package/dist/components/table/src/table/key-render-helper.d.ts +2 -0
- package/dist/components/table/src/table/key-render-helper.js +18 -0
- package/dist/components/table/src/table/style-helper.d.ts +51 -0
- package/dist/components/table/src/table/style-helper.js +169 -0
- package/dist/components/table/src/table/utils-helper.d.ts +16 -0
- package/dist/components/table/src/table/utils-helper.js +36 -0
- package/dist/components/table/src/table-body/defaults.d.ts +39 -0
- package/dist/components/table/src/table-body/defaults.js +25 -0
- package/dist/components/table/src/table-body/events-helper.d.ts +19 -0
- package/dist/components/table/src/table-body/events-helper.js +126 -0
- package/dist/components/table/src/table-body/index.d.ts +84 -0
- package/dist/components/table/src/table-body/index.js +77 -0
- package/dist/components/table/src/table-body/render-helper.d.ts +18 -0
- package/dist/components/table/src/table-body/render-helper.js +188 -0
- package/dist/components/table/src/table-body/styles-helper.d.ts +15 -0
- package/dist/components/table/src/table-body/styles-helper.js +98 -0
- package/dist/components/table/src/table-body/td-wrapper.vue.d.ts +33 -0
- package/dist/components/table/src/table-body/td-wrapper.vue.js +26 -0
- package/dist/components/table/src/table-body/td-wrapper2.vue.js +4 -0
- package/dist/components/table/src/table-column/defaults.d.ts +348 -0
- package/dist/components/table/src/table-column/defaults.js +152 -0
- package/dist/components/table/src/table-column/index.d.ts +2 -0
- package/dist/components/table/src/table-column/index.vue.d.ts +32 -0
- package/dist/components/table/src/table-column/index.vue.js +161 -0
- package/dist/components/table/src/table-column/index2.vue.js +4 -0
- package/dist/components/table/src/table-column/render-helper.d.ts +17 -0
- package/dist/components/table/src/table-column/render-helper.js +116 -0
- package/dist/components/table/src/table-column/watcher-helper.d.ts +8 -0
- package/dist/components/table/src/table-column/watcher-helper.js +85 -0
- package/dist/components/table/src/table-footer/index.d.ts +79 -0
- package/dist/components/table/src/table-footer/index.js +110 -0
- package/dist/components/table/src/table-footer/mapState-helper.d.ts +9 -0
- package/dist/components/table/src/table-footer/mapState-helper.js +16 -0
- package/dist/components/table/src/table-footer/style-helper.d.ts +9 -0
- package/dist/components/table/src/table-footer/style-helper.js +42 -0
- package/dist/components/table/src/table-header/event-helper.d.ts +14 -0
- package/dist/components/table/src/table-header/event-helper.js +113 -0
- package/dist/components/table/src/table-header/index.d.ts +361 -0
- package/dist/components/table/src/table-header/index.js +255 -0
- package/dist/components/table/src/table-header/style.helper.d.ts +10 -0
- package/dist/components/table/src/table-header/style.helper.js +73 -0
- package/dist/components/table/src/table-header/utils-helper.d.ts +10 -0
- package/dist/components/table/src/table-header/utils-helper.js +45 -0
- package/dist/components/table/src/table-layout.d.ts +37 -0
- package/dist/components/table/src/table-layout.js +144 -0
- package/dist/components/table/src/table.vue.d.ts +734 -0
- package/dist/components/table/src/table.vue.js +443 -0
- package/dist/components/table/src/table2.vue.js +4 -0
- package/dist/components/table/src/tableColumn.d.ts +2 -0
- package/dist/components/table/src/tokens.d.ts +3 -0
- package/dist/components/table/src/tokens.js +4 -0
- package/dist/components/table/src/util.d.ts +55 -0
- package/dist/components/table/src/util.js +310 -0
- package/dist/components/table-column/index.d.ts +40 -3
- package/dist/components/table-column/index.js +6 -3
- package/dist/components/upload/index.d.ts +45 -2
- package/dist/components/upload/index.js +23 -4
- package/dist/components/upload/src/ajax.d.ts +9 -0
- package/dist/components/upload/src/ajax.js +58 -0
- package/dist/components/upload/src/constants.d.ts +5 -0
- package/dist/components/upload/src/constants.js +4 -0
- package/dist/components/upload/src/upload-content.d.ts +136 -0
- package/dist/components/upload/src/upload-content.js +53 -0
- package/dist/components/upload/src/upload-content.vue.d.ts +38 -0
- package/dist/components/upload/src/upload-content.vue.js +186 -0
- package/dist/components/upload/src/upload-content2.vue.js +4 -0
- package/dist/components/upload/src/upload-dragger.d.ts +22 -0
- package/dist/components/upload/src/upload-dragger.js +19 -0
- package/dist/components/upload/src/upload-dragger.vue.d.ts +19 -0
- package/dist/components/upload/src/upload-dragger.vue.js +91 -0
- package/dist/components/upload/src/upload-dragger2.vue.js +4 -0
- package/dist/components/upload/src/upload-list.d.ts +45 -0
- package/dist/components/upload/src/upload-list.js +39 -0
- package/dist/components/upload/src/upload-list.vue.d.ts +28 -0
- package/dist/components/upload/src/upload-list.vue.js +182 -0
- package/dist/components/upload/src/upload-list2.vue.js +4 -0
- package/dist/components/upload/src/upload.d.ts +361 -0
- package/dist/components/upload/src/upload.js +216 -0
- package/dist/components/upload/src/upload.vue.d.ts +64 -0
- package/dist/components/upload/src/upload.vue.js +150 -0
- package/dist/components/upload/src/upload2.vue.js +4 -0
- package/dist/components/upload/src/use-handlers.d.ts +60 -0
- package/dist/components/upload/src/use-handlers.js +111 -0
- package/dist/directives/mousewheel/index.js +28 -0
- package/dist/ep-craft.js +277 -236
- package/dist/index.d.ts +67 -0
- package/dist/utils/dom/event.js +12 -11
- package/dist/utils/objects.js +10 -9
- package/dist/utils/vue/install.js +21 -18
- package/dist/utils/vue/refs.js +8 -0
- package/dist/vendored-components.d.ts +1 -1
- package/dist/vendored-components.js +44 -4
- package/package.json +1 -1
- package/dist/components/dropdown-item/index.js +0 -6
- package/dist/components/dropdown-menu/index.js +0 -6
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import r from "./src/roving-focus-group2.vue.js";
|
|
2
|
+
import "./src/roving-focus-item2.vue.js";
|
|
3
|
+
import "vue";
|
|
4
|
+
import "@vue/shared";
|
|
5
|
+
import "lodash-unified";
|
|
6
|
+
import "@vueuse/core";
|
|
7
|
+
import "@element-plus/icons-vue";
|
|
8
|
+
import { ROVING_FOCUS_COLLECTION_INJECTION_KEY as C, ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY as N } from "./src/roving-focus-group.js";
|
|
9
|
+
export {
|
|
10
|
+
r as ElRovingFocusGroup,
|
|
11
|
+
r as EpRovingFocusGroup,
|
|
12
|
+
C as ROVING_FOCUS_COLLECTION_INJECTION_KEY,
|
|
13
|
+
N as ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY,
|
|
14
|
+
r as default
|
|
15
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { StyleValue } from 'vue';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
|
+
style: import("@element-plus/utils").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | import("vue").CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
|
|
4
|
+
currentTabId: {
|
|
5
|
+
readonly type: import("vue").PropType<import("@element-plus/utils").EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
|
|
6
|
+
readonly required: false;
|
|
7
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
8
|
+
__epPropKey: true;
|
|
9
|
+
};
|
|
10
|
+
defaultCurrentTabId: StringConstructor;
|
|
11
|
+
loop: BooleanConstructor;
|
|
12
|
+
dir: import("@element-plus/utils").EpPropFinalized<StringConstructor, string, unknown, string, boolean>;
|
|
13
|
+
orientation: {
|
|
14
|
+
readonly type: import("vue").PropType<import("@element-plus/utils").EpPropMergeType<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined) | (((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined)) | null)[], unknown, unknown>>;
|
|
15
|
+
readonly required: false;
|
|
16
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
17
|
+
__epPropKey: true;
|
|
18
|
+
};
|
|
19
|
+
onBlur: FunctionConstructor;
|
|
20
|
+
onFocus: FunctionConstructor;
|
|
21
|
+
onMousedown: FunctionConstructor;
|
|
22
|
+
}>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("currentTabIdChange" | "entryFocus")[], "currentTabIdChange" | "entryFocus", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
23
|
+
style: import("@element-plus/utils").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | import("vue").CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
|
|
24
|
+
currentTabId: {
|
|
25
|
+
readonly type: import("vue").PropType<import("@element-plus/utils").EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
|
|
26
|
+
readonly required: false;
|
|
27
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
28
|
+
__epPropKey: true;
|
|
29
|
+
};
|
|
30
|
+
defaultCurrentTabId: StringConstructor;
|
|
31
|
+
loop: BooleanConstructor;
|
|
32
|
+
dir: import("@element-plus/utils").EpPropFinalized<StringConstructor, string, unknown, string, boolean>;
|
|
33
|
+
orientation: {
|
|
34
|
+
readonly type: import("vue").PropType<import("@element-plus/utils").EpPropMergeType<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined) | (((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined)) | null)[], unknown, unknown>>;
|
|
35
|
+
readonly required: false;
|
|
36
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
37
|
+
__epPropKey: true;
|
|
38
|
+
};
|
|
39
|
+
onBlur: FunctionConstructor;
|
|
40
|
+
onFocus: FunctionConstructor;
|
|
41
|
+
onMousedown: FunctionConstructor;
|
|
42
|
+
}>> & Readonly<{
|
|
43
|
+
onCurrentTabIdChange?: ((...args: any[]) => any) | undefined;
|
|
44
|
+
onEntryFocus?: ((...args: any[]) => any) | undefined;
|
|
45
|
+
}>, {
|
|
46
|
+
style: StyleValue;
|
|
47
|
+
dir: string;
|
|
48
|
+
loop: boolean;
|
|
49
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
50
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import r from "./roving-focus-group-impl2.vue.js";
|
|
2
|
+
import { renderSlot as t } from "vue";
|
|
3
|
+
import e from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
function p(o, s, n, f, c, m) {
|
|
5
|
+
return t(o.$slots, "default");
|
|
6
|
+
}
|
|
7
|
+
const _ = /* @__PURE__ */ e(r, [["render", p]]);
|
|
8
|
+
export {
|
|
9
|
+
_ as default
|
|
10
|
+
};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { defineComponent as B, ref as a, inject as K, computed as T, unref as u, provide as L, toRef as f, readonly as U, watch as V, nextTick as A } from "vue";
|
|
2
|
+
import { useEventListener as P } from "@vueuse/core";
|
|
3
|
+
import "@vue/shared";
|
|
4
|
+
import "lodash-unified";
|
|
5
|
+
import { composeEventHandlers as m } from "../../../utils/dom/event.js";
|
|
6
|
+
import "@element-plus/icons-vue";
|
|
7
|
+
import { rovingFocusGroupProps as Y, ROVING_FOCUS_COLLECTION_INJECTION_KEY as J } from "./roving-focus-group.js";
|
|
8
|
+
import { ROVING_FOCUS_GROUP_INJECTION_KEY as D } from "./tokens.js";
|
|
9
|
+
import { focusFirst as b, getFocusIntent as H, reorderArray as M } from "./utils.js";
|
|
10
|
+
const _ = "currentTabIdChange", C = "rovingFocusGroup.entryFocus", j = { bubbles: !1, cancelable: !0 }, ne = B({
|
|
11
|
+
name: "EpRovingFocusGroupImpl",
|
|
12
|
+
inheritAttrs: !1,
|
|
13
|
+
props: Y,
|
|
14
|
+
emits: [_, "entryFocus"],
|
|
15
|
+
setup(e, { emit: I }) {
|
|
16
|
+
const i = a(
|
|
17
|
+
(e.currentTabId || e.defaultCurrentTabId) ?? null
|
|
18
|
+
), s = a(!1), l = a(!1), v = a(), { getItems: E } = K(
|
|
19
|
+
J,
|
|
20
|
+
void 0
|
|
21
|
+
), O = T(() => [
|
|
22
|
+
{
|
|
23
|
+
outline: "none"
|
|
24
|
+
},
|
|
25
|
+
e.style
|
|
26
|
+
]), N = (t) => {
|
|
27
|
+
I(_, t);
|
|
28
|
+
}, y = () => {
|
|
29
|
+
s.value = !0;
|
|
30
|
+
}, g = m(
|
|
31
|
+
(t) => {
|
|
32
|
+
var n;
|
|
33
|
+
(n = e.onMousedown) == null || n.call(e, t);
|
|
34
|
+
},
|
|
35
|
+
() => {
|
|
36
|
+
l.value = !0;
|
|
37
|
+
}
|
|
38
|
+
), R = m(
|
|
39
|
+
(t) => {
|
|
40
|
+
var n;
|
|
41
|
+
(n = e.onFocus) == null || n.call(e, t);
|
|
42
|
+
},
|
|
43
|
+
(t) => {
|
|
44
|
+
const n = !u(l), { target: F, currentTarget: o } = t;
|
|
45
|
+
if (F === o && n && !u(s)) {
|
|
46
|
+
const c = new Event(C, j);
|
|
47
|
+
if (o == null || o.dispatchEvent(c), !c.defaultPrevented) {
|
|
48
|
+
const d = E().filter((r) => r.focusable), x = d.find((r) => r.active), S = d.find(
|
|
49
|
+
(r) => r.id === u(i)
|
|
50
|
+
), k = [x, S, ...d].filter(
|
|
51
|
+
Boolean
|
|
52
|
+
).map((r) => r.ref);
|
|
53
|
+
b(k);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
l.value = !1;
|
|
57
|
+
}
|
|
58
|
+
), G = m(
|
|
59
|
+
(t) => {
|
|
60
|
+
var n;
|
|
61
|
+
(n = e.onBlur) == null || n.call(e, t);
|
|
62
|
+
},
|
|
63
|
+
() => {
|
|
64
|
+
s.value = !1;
|
|
65
|
+
}
|
|
66
|
+
), h = (...t) => {
|
|
67
|
+
I("entryFocus", ...t);
|
|
68
|
+
}, w = (t) => {
|
|
69
|
+
const n = H(t);
|
|
70
|
+
if (n) {
|
|
71
|
+
t.preventDefault();
|
|
72
|
+
let o = E().filter((c) => c.focusable).map((c) => c.ref);
|
|
73
|
+
switch (n) {
|
|
74
|
+
case "last": {
|
|
75
|
+
o.reverse();
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case "prev":
|
|
79
|
+
case "next": {
|
|
80
|
+
n === "prev" && o.reverse();
|
|
81
|
+
const c = o.indexOf(t.currentTarget);
|
|
82
|
+
o = e.loop ? M(o, c + 1) : o.slice(c + 1);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
A(() => {
|
|
87
|
+
b(o);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
L(D, {
|
|
92
|
+
currentTabbedId: U(i),
|
|
93
|
+
loop: f(e, "loop"),
|
|
94
|
+
tabIndex: T(() => u(s) ? -1 : 0),
|
|
95
|
+
rovingFocusGroupRef: v,
|
|
96
|
+
rovingFocusGroupRootStyle: O,
|
|
97
|
+
orientation: f(e, "orientation"),
|
|
98
|
+
dir: f(e, "dir"),
|
|
99
|
+
onItemFocus: N,
|
|
100
|
+
onItemShiftTab: y,
|
|
101
|
+
onBlur: G,
|
|
102
|
+
onFocus: R,
|
|
103
|
+
onMousedown: g,
|
|
104
|
+
onKeydown: w
|
|
105
|
+
}), V(
|
|
106
|
+
() => e.currentTabId,
|
|
107
|
+
(t) => {
|
|
108
|
+
i.value = t ?? null;
|
|
109
|
+
}
|
|
110
|
+
), P(v, C, h);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
export {
|
|
114
|
+
ne as default
|
|
115
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ExtractPropTypes, ExtractPublicPropTypes, StyleValue } from 'vue';
|
|
2
|
+
export declare const rovingFocusGroupProps: {
|
|
3
|
+
style: import("@element-plus/utils").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | import("vue").CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
|
|
4
|
+
currentTabId: {
|
|
5
|
+
readonly type: import("vue").PropType<import("@element-plus/utils").EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
|
|
6
|
+
readonly required: false;
|
|
7
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
8
|
+
__epPropKey: true;
|
|
9
|
+
};
|
|
10
|
+
defaultCurrentTabId: StringConstructor;
|
|
11
|
+
loop: BooleanConstructor;
|
|
12
|
+
dir: import("@element-plus/utils").EpPropFinalized<StringConstructor, string, unknown, string, boolean>;
|
|
13
|
+
orientation: {
|
|
14
|
+
readonly type: import("vue").PropType<import("@element-plus/utils").EpPropMergeType<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined) | (((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined)) | null)[], unknown, unknown>>;
|
|
15
|
+
readonly required: false;
|
|
16
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
17
|
+
__epPropKey: true;
|
|
18
|
+
};
|
|
19
|
+
onBlur: FunctionConstructor;
|
|
20
|
+
onFocus: FunctionConstructor;
|
|
21
|
+
onMousedown: FunctionConstructor;
|
|
22
|
+
};
|
|
23
|
+
export type ElRovingFocusGroupProps = ExtractPropTypes<typeof rovingFocusGroupProps>;
|
|
24
|
+
export type ElRovingFocusGroupPropsPublic = ExtractPublicPropTypes<typeof rovingFocusGroupProps>;
|
|
25
|
+
declare const ElCollection: {
|
|
26
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
27
|
+
P: {};
|
|
28
|
+
B: {};
|
|
29
|
+
D: {};
|
|
30
|
+
C: {};
|
|
31
|
+
M: {};
|
|
32
|
+
Defaults: {};
|
|
33
|
+
}, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
34
|
+
__isFragment?: never;
|
|
35
|
+
__isTeleport?: never;
|
|
36
|
+
__isSuspense?: never;
|
|
37
|
+
} & import("vue").ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
|
|
38
|
+
name: string;
|
|
39
|
+
setup(): void;
|
|
40
|
+
}, ElCollectionItem: {
|
|
41
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
42
|
+
P: {};
|
|
43
|
+
B: {};
|
|
44
|
+
D: {};
|
|
45
|
+
C: {};
|
|
46
|
+
M: {};
|
|
47
|
+
Defaults: {};
|
|
48
|
+
}, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
49
|
+
__isFragment?: never;
|
|
50
|
+
__isTeleport?: never;
|
|
51
|
+
__isSuspense?: never;
|
|
52
|
+
} & import("vue").ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
|
|
53
|
+
name: string;
|
|
54
|
+
setup(_: unknown, { attrs }: import("vue").SetupContext): void;
|
|
55
|
+
}, COLLECTION_INJECTION_KEY: import("vue").InjectionKey<import("@element-plus/components/collection").ElCollectionInjectionContext>, COLLECTION_ITEM_INJECTION_KEY: import("vue").InjectionKey<import("@element-plus/components/collection").ElCollectionItemInjectionContext>;
|
|
56
|
+
export { ElCollection, ElCollectionItem, COLLECTION_INJECTION_KEY as ROVING_FOCUS_COLLECTION_INJECTION_KEY, COLLECTION_ITEM_INJECTION_KEY as ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY, };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import "@vue/shared";
|
|
2
|
+
import "lodash-unified";
|
|
3
|
+
import "@vueuse/core";
|
|
4
|
+
import "@element-plus/icons-vue";
|
|
5
|
+
import { buildProps as t, definePropType as o } from "../../../utils/vue/props/runtime.js";
|
|
6
|
+
import "vue";
|
|
7
|
+
import { createCollectionWithScope as r } from "../../collection/src/collection.js";
|
|
8
|
+
const u = t({
|
|
9
|
+
style: {
|
|
10
|
+
type: o([String, Array, Object, Boolean]),
|
|
11
|
+
default: void 0
|
|
12
|
+
},
|
|
13
|
+
currentTabId: {
|
|
14
|
+
type: o(String)
|
|
15
|
+
},
|
|
16
|
+
defaultCurrentTabId: String,
|
|
17
|
+
loop: Boolean,
|
|
18
|
+
dir: {
|
|
19
|
+
type: String,
|
|
20
|
+
// left for direction support
|
|
21
|
+
values: ["ltr", "rtl"],
|
|
22
|
+
default: "ltr"
|
|
23
|
+
},
|
|
24
|
+
orientation: {
|
|
25
|
+
// left for orientation support
|
|
26
|
+
type: o(String)
|
|
27
|
+
},
|
|
28
|
+
onBlur: Function,
|
|
29
|
+
onFocus: Function,
|
|
30
|
+
onMousedown: Function
|
|
31
|
+
}), {
|
|
32
|
+
ElCollection: O,
|
|
33
|
+
ElCollectionItem: E,
|
|
34
|
+
COLLECTION_INJECTION_KEY: c,
|
|
35
|
+
COLLECTION_ITEM_INJECTION_KEY: N
|
|
36
|
+
} = r("RovingFocusGroup");
|
|
37
|
+
export {
|
|
38
|
+
O as ElCollection,
|
|
39
|
+
E as ElCollectionItem,
|
|
40
|
+
c as ROVING_FOCUS_COLLECTION_INJECTION_KEY,
|
|
41
|
+
N as ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY,
|
|
42
|
+
u as rovingFocusGroupProps
|
|
43
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {
|
|
2
|
+
ElFocusGroupCollection: {
|
|
3
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
4
|
+
P: {};
|
|
5
|
+
B: {};
|
|
6
|
+
D: {};
|
|
7
|
+
C: {};
|
|
8
|
+
M: {};
|
|
9
|
+
Defaults: {};
|
|
10
|
+
}, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
11
|
+
__isFragment?: never;
|
|
12
|
+
__isTeleport?: never;
|
|
13
|
+
__isSuspense?: never;
|
|
14
|
+
} & import("vue").ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
|
|
15
|
+
name: string;
|
|
16
|
+
setup(): void;
|
|
17
|
+
};
|
|
18
|
+
ElRovingFocusGroupImpl: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
19
|
+
style: import("../../../utils/index.js").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | (((new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
|
|
20
|
+
currentTabId: {
|
|
21
|
+
readonly type: import("vue").PropType<import("../../../utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
|
|
22
|
+
readonly required: false;
|
|
23
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
24
|
+
__epPropKey: true;
|
|
25
|
+
};
|
|
26
|
+
defaultCurrentTabId: StringConstructor;
|
|
27
|
+
loop: BooleanConstructor;
|
|
28
|
+
dir: import("../../../utils/index.js").EpPropFinalized<StringConstructor, string, unknown, string, boolean>;
|
|
29
|
+
orientation: {
|
|
30
|
+
readonly type: import("vue").PropType<import("../../../utils/index.js").EpPropMergeType<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined) | (((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined)) | null)[], unknown, unknown>>;
|
|
31
|
+
readonly required: false;
|
|
32
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
33
|
+
__epPropKey: true;
|
|
34
|
+
};
|
|
35
|
+
onBlur: FunctionConstructor;
|
|
36
|
+
onFocus: FunctionConstructor;
|
|
37
|
+
onMousedown: FunctionConstructor;
|
|
38
|
+
}>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("currentTabIdChange" | "entryFocus")[], "currentTabIdChange" | "entryFocus", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
39
|
+
style: import("../../../utils/index.js").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | (((new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
|
|
40
|
+
currentTabId: {
|
|
41
|
+
readonly type: import("vue").PropType<import("../../../utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
|
|
42
|
+
readonly required: false;
|
|
43
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
44
|
+
__epPropKey: true;
|
|
45
|
+
};
|
|
46
|
+
defaultCurrentTabId: StringConstructor;
|
|
47
|
+
loop: BooleanConstructor;
|
|
48
|
+
dir: import("../../../utils/index.js").EpPropFinalized<StringConstructor, string, unknown, string, boolean>;
|
|
49
|
+
orientation: {
|
|
50
|
+
readonly type: import("vue").PropType<import("../../../utils/index.js").EpPropMergeType<(new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined) | (((new (...args: any[]) => "horizontal" | "vertical") | (() => "horizontal" | "vertical" | undefined)) | null)[], unknown, unknown>>;
|
|
51
|
+
readonly required: false;
|
|
52
|
+
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
53
|
+
__epPropKey: true;
|
|
54
|
+
};
|
|
55
|
+
onBlur: FunctionConstructor;
|
|
56
|
+
onFocus: FunctionConstructor;
|
|
57
|
+
onMousedown: FunctionConstructor;
|
|
58
|
+
}>> & Readonly<{
|
|
59
|
+
onCurrentTabIdChange?: ((...args: any[]) => any) | undefined;
|
|
60
|
+
onEntryFocus?: ((...args: any[]) => any) | undefined;
|
|
61
|
+
}>, {
|
|
62
|
+
style: import("vue").StyleValue;
|
|
63
|
+
dir: string;
|
|
64
|
+
loop: boolean;
|
|
65
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
66
|
+
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
67
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineComponent as o } from "vue";
|
|
2
|
+
import n from "./roving-focus-group-impl.vue.js";
|
|
3
|
+
import { ElCollection as m } from "./roving-focus-group.js";
|
|
4
|
+
const e = o({
|
|
5
|
+
name: "EpRovingFocusGroup",
|
|
6
|
+
components: {
|
|
7
|
+
ElFocusGroupCollection: m,
|
|
8
|
+
ElRovingFocusGroupImpl: n
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export {
|
|
12
|
+
e as default
|
|
13
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import c from "./roving-focus-group.vue.js";
|
|
2
|
+
import { resolveComponent as e, openBlock as p, createBlock as l, withCtx as r, createVNode as s, normalizeProps as u, guardReactiveProps as _, renderSlot as i } from "vue";
|
|
3
|
+
import a from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
function f(o, m, d, g, $, v) {
|
|
5
|
+
const t = e("el-roving-focus-group-impl"), n = e("el-focus-group-collection");
|
|
6
|
+
return p(), l(n, null, {
|
|
7
|
+
default: r(() => [
|
|
8
|
+
s(t, u(_(o.$attrs)), {
|
|
9
|
+
default: r(() => [
|
|
10
|
+
i(o.$slots, "default")
|
|
11
|
+
]),
|
|
12
|
+
_: 3
|
|
13
|
+
}, 16)
|
|
14
|
+
]),
|
|
15
|
+
_: 3
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const B = /* @__PURE__ */ a(c, [["render", f]]);
|
|
19
|
+
export {
|
|
20
|
+
B as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
focusable: {
|
|
3
|
+
type: BooleanConstructor;
|
|
4
|
+
default: boolean;
|
|
5
|
+
};
|
|
6
|
+
active: BooleanConstructor;
|
|
7
|
+
}>, {
|
|
8
|
+
id: import("vue").Ref<string, string>;
|
|
9
|
+
handleKeydown: (event: Event) => void;
|
|
10
|
+
handleFocus: (event: Event) => void;
|
|
11
|
+
handleMousedown: (event: Event) => void;
|
|
12
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focus" | "keydown" | "mousedown")[], "focus" | "keydown" | "mousedown", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13
|
+
focusable: {
|
|
14
|
+
type: BooleanConstructor;
|
|
15
|
+
default: boolean;
|
|
16
|
+
};
|
|
17
|
+
active: BooleanConstructor;
|
|
18
|
+
}>> & Readonly<{
|
|
19
|
+
onFocus?: ((...args: any[]) => any) | undefined;
|
|
20
|
+
onKeydown?: ((...args: any[]) => any) | undefined;
|
|
21
|
+
onMousedown?: ((...args: any[]) => any) | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
active: boolean;
|
|
24
|
+
focusable: boolean;
|
|
25
|
+
}, {}, {
|
|
26
|
+
ElRovingFocusCollectionItem: {
|
|
27
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
28
|
+
P: {};
|
|
29
|
+
B: {};
|
|
30
|
+
D: {};
|
|
31
|
+
C: {};
|
|
32
|
+
M: {};
|
|
33
|
+
Defaults: {};
|
|
34
|
+
}, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
35
|
+
__isFragment?: never;
|
|
36
|
+
__isTeleport?: never;
|
|
37
|
+
__isSuspense?: never;
|
|
38
|
+
} & import("vue").ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
|
|
39
|
+
name: string;
|
|
40
|
+
setup(_: unknown, { attrs }: import("vue").SetupContext): void;
|
|
41
|
+
};
|
|
42
|
+
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
43
|
+
export default _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import t from "./roving-focus-item2.vue.js";
|
|
2
|
+
import { resolveComponent as c, openBlock as r, createBlock as i, withCtx as n, renderSlot as l } from "vue";
|
|
3
|
+
import s from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
function a(o, f, m, p, u, _) {
|
|
5
|
+
const e = c("el-roving-focus-collection-item");
|
|
6
|
+
return r(), i(e, {
|
|
7
|
+
id: o.id,
|
|
8
|
+
focusable: o.focusable,
|
|
9
|
+
active: o.active
|
|
10
|
+
}, {
|
|
11
|
+
default: n(() => [
|
|
12
|
+
l(o.$slots, "default")
|
|
13
|
+
]),
|
|
14
|
+
_: 3
|
|
15
|
+
}, 8, ["id", "focusable", "active"]);
|
|
16
|
+
}
|
|
17
|
+
const b = /* @__PURE__ */ s(t, [["render", a]]);
|
|
18
|
+
export {
|
|
19
|
+
b as default
|
|
20
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { defineComponent as C, inject as O, ref as b, unref as t, computed as p, provide as T } from "vue";
|
|
2
|
+
import "@vue/shared";
|
|
3
|
+
import "lodash-unified";
|
|
4
|
+
import "@vueuse/core";
|
|
5
|
+
import { composeEventHandlers as r, getEventCode as w } from "../../../utils/dom/event.js";
|
|
6
|
+
import "@element-plus/icons-vue";
|
|
7
|
+
import { EVENT_CODE as F } from "../../../constants/aria.js";
|
|
8
|
+
import { useId as N } from "../../../hooks/use-id/index.js";
|
|
9
|
+
import "../../../hooks/use-size/index.js";
|
|
10
|
+
import "@popperjs/core";
|
|
11
|
+
import "../../../hooks/use-z-index/index.js";
|
|
12
|
+
import "../../../hooks/use-delayed-toggle/index.js";
|
|
13
|
+
import "../../../hooks/use-aria/index.js";
|
|
14
|
+
import "../../../hooks/use-model-toggle/index.js";
|
|
15
|
+
import "../../../hooks/use-empty-values/index.js";
|
|
16
|
+
import { ElCollectionItem as R } from "./roving-focus-group.js";
|
|
17
|
+
import { ROVING_FOCUS_GROUP_INJECTION_KEY as g, ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY as y } from "./tokens.js";
|
|
18
|
+
const A = C({
|
|
19
|
+
name: "EpRovingFocusItem",
|
|
20
|
+
components: {
|
|
21
|
+
ElRovingFocusCollectionItem: R
|
|
22
|
+
},
|
|
23
|
+
props: {
|
|
24
|
+
focusable: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: !0
|
|
27
|
+
},
|
|
28
|
+
active: Boolean
|
|
29
|
+
},
|
|
30
|
+
emits: ["mousedown", "focus", "keydown"],
|
|
31
|
+
setup(u, { emit: n }) {
|
|
32
|
+
const { currentTabbedId: d, onItemFocus: m, onItemShiftTab: a, onKeydown: f } = O(
|
|
33
|
+
g,
|
|
34
|
+
void 0
|
|
35
|
+
), e = N(), l = b(), i = r(
|
|
36
|
+
(o) => {
|
|
37
|
+
n("mousedown", o);
|
|
38
|
+
},
|
|
39
|
+
(o) => {
|
|
40
|
+
u.focusable ? m(t(e)) : o.preventDefault();
|
|
41
|
+
}
|
|
42
|
+
), s = r(
|
|
43
|
+
(o) => {
|
|
44
|
+
n("focus", o);
|
|
45
|
+
},
|
|
46
|
+
() => {
|
|
47
|
+
m(t(e));
|
|
48
|
+
}
|
|
49
|
+
), c = r(
|
|
50
|
+
(o) => {
|
|
51
|
+
n("keydown", o);
|
|
52
|
+
},
|
|
53
|
+
(o) => {
|
|
54
|
+
const { shiftKey: E, target: _, currentTarget: v } = o;
|
|
55
|
+
if (w(o) === F.tab && E) {
|
|
56
|
+
a();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
_ === v && f(o);
|
|
60
|
+
}
|
|
61
|
+
), I = p(() => d.value === t(e));
|
|
62
|
+
return T(y, {
|
|
63
|
+
rovingFocusGroupItemRef: l,
|
|
64
|
+
tabIndex: p(() => t(I) ? 0 : -1),
|
|
65
|
+
handleMousedown: i,
|
|
66
|
+
handleFocus: s,
|
|
67
|
+
handleKeydown: c
|
|
68
|
+
}), {
|
|
69
|
+
id: e,
|
|
70
|
+
handleKeydown: c,
|
|
71
|
+
handleFocus: s,
|
|
72
|
+
handleMousedown: i
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
export {
|
|
77
|
+
A as default
|
|
78
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { InjectionKey, Ref, StyleValue } from 'vue';
|
|
2
|
+
import type { ElRovingFocusGroupProps } from './roving-focus-group';
|
|
3
|
+
type EventHandler<T = Event> = (e: T) => void;
|
|
4
|
+
export type RovingGroupInjectionContext = {
|
|
5
|
+
currentTabbedId: Ref<string | null>;
|
|
6
|
+
dir: Ref<ElRovingFocusGroupProps['dir']>;
|
|
7
|
+
loop: Ref<ElRovingFocusGroupProps['loop']>;
|
|
8
|
+
orientation: Ref<ElRovingFocusGroupProps['orientation']>;
|
|
9
|
+
tabIndex: Ref<number>;
|
|
10
|
+
rovingFocusGroupRef: Ref<HTMLElement | undefined>;
|
|
11
|
+
rovingFocusGroupRootStyle: Ref<StyleValue>;
|
|
12
|
+
onBlur: EventHandler;
|
|
13
|
+
onFocus: EventHandler<FocusEvent>;
|
|
14
|
+
onMousedown: EventHandler;
|
|
15
|
+
onItemFocus: (id: string) => void;
|
|
16
|
+
onItemShiftTab: () => void;
|
|
17
|
+
onKeydown: EventHandler<KeyboardEvent>;
|
|
18
|
+
};
|
|
19
|
+
export type RovingFocusGroupItemInjectionContext = {
|
|
20
|
+
rovingFocusGroupItemRef: Ref<HTMLElement | undefined>;
|
|
21
|
+
tabIndex: Ref<number>;
|
|
22
|
+
handleMousedown: EventHandler;
|
|
23
|
+
handleFocus: EventHandler;
|
|
24
|
+
handleKeydown: EventHandler;
|
|
25
|
+
};
|
|
26
|
+
export declare const ROVING_FOCUS_GROUP_INJECTION_KEY: InjectionKey<RovingGroupInjectionContext>;
|
|
27
|
+
export declare const ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY: InjectionKey<RovingFocusGroupItemInjectionContext>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type Orientation = HTMLAttributes['aria-orientation'];
|
|
3
|
+
type Direction = 'ltr' | 'rtl';
|
|
4
|
+
type FocusIntent = 'first' | 'last' | 'prev' | 'next';
|
|
5
|
+
export declare const getFocusIntent: (event: KeyboardEvent, orientation?: Orientation, dir?: Direction) => FocusIntent | undefined;
|
|
6
|
+
export declare const reorderArray: <T>(array: T[], atIdx: number) => T[];
|
|
7
|
+
export declare const focusFirst: (elements: HTMLElement[]) => void;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import "@vue/shared";
|
|
2
|
+
import "lodash-unified";
|
|
3
|
+
import "@vueuse/core";
|
|
4
|
+
import { getEventCode as i } from "../../../utils/dom/event.js";
|
|
5
|
+
import "@element-plus/icons-vue";
|
|
6
|
+
import "vue";
|
|
7
|
+
const c = {
|
|
8
|
+
ArrowLeft: "prev",
|
|
9
|
+
ArrowUp: "prev",
|
|
10
|
+
ArrowRight: "next",
|
|
11
|
+
ArrowDown: "next",
|
|
12
|
+
PageUp: "first",
|
|
13
|
+
Home: "first",
|
|
14
|
+
PageDown: "last",
|
|
15
|
+
End: "last"
|
|
16
|
+
}, s = (t, e) => t, g = (t, e, r) => {
|
|
17
|
+
const o = i(t), n = s(o);
|
|
18
|
+
return c[n];
|
|
19
|
+
}, v = (t, e) => t.map((r, o) => t[(o + e) % t.length]), w = (t) => {
|
|
20
|
+
const { activeElement: e } = document;
|
|
21
|
+
for (const r of t)
|
|
22
|
+
if (r === e || (r.focus(), e !== document.activeElement)) return;
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
w as focusFirst,
|
|
26
|
+
g as getFocusIntent,
|
|
27
|
+
v as reorderArray
|
|
28
|
+
};
|