pxd 0.1.2 → 0.1.3
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/_internal/calendar-day.vue +19 -19
- package/dist/components/_internal/dismiss-container.d.vue.ts +1 -1
- package/dist/components/_internal/dismiss-container.vue +19 -19
- package/dist/components/_internal/loading-mask.vue +9 -1
- package/dist/components/_internal/mention-editor.d.vue.ts +1 -1
- package/dist/components/_internal/mention-editor.vue +1 -1
- package/dist/components/_internal/popover-arrow.d.vue.ts +1 -1
- package/dist/components/_internal/popover-arrow.vue +1 -1
- package/dist/components/{steps → _internal}/step-item.d.vue.ts +1 -1
- package/dist/components/{steps → _internal}/step-item.vue +1 -1
- package/dist/components/_internal/tree-node.d.vue.ts +20 -20
- package/dist/components/_internal/tree-node.vue +53 -45
- package/dist/components/active-graph/index.d.vue.ts +2 -2
- package/dist/components/approval-card/index.d.vue.ts +1 -1
- package/dist/components/approval-card/index.vue +34 -17
- package/dist/components/approval-card/types.d.ts +1 -1
- package/dist/components/avatar/index.d.vue.ts +2 -2
- package/dist/components/avatar/index.vue +1 -1
- package/dist/components/backtop/index.d.vue.ts +3 -3
- package/dist/components/backtop/index.vue +17 -17
- package/dist/components/backtop/types.d.ts +1 -1
- package/dist/components/badge/index.d.vue.ts +3 -3
- package/dist/components/badge/index.vue +43 -43
- package/dist/components/badge/types.d.ts +1 -1
- package/dist/components/book/types.d.ts +1 -1
- package/dist/components/border-beam/index.vue +1 -1
- package/dist/components/border-beam/types.d.ts +1 -1
- package/dist/components/bubble/index.vue +1 -1
- package/dist/components/bubble-group/index.d.vue.ts +4 -4
- package/dist/components/button/index.d.vue.ts +5 -5
- package/dist/components/button/index.vue +13 -13
- package/dist/components/button/types.d.ts +1 -1
- package/dist/components/button-group/types.d.ts +1 -1
- package/dist/components/calendar/index.d.vue.ts +2 -2
- package/dist/components/calendar/index.vue +5 -5
- package/dist/components/calendar/types.d.ts +1 -1
- package/dist/components/card/types.d.ts +1 -1
- package/dist/components/carousel/index.d.vue.ts +7 -7
- package/dist/components/carousel/index.vue +1 -1
- package/dist/components/carousel/types.d.ts +1 -1
- package/dist/components/checkbox/index.vue +1 -1
- package/dist/components/checkbox/types.d.ts +1 -1
- package/dist/components/checkbox-group/index.d.vue.ts +2 -2
- package/dist/components/checkbox-group/types.d.ts +1 -1
- package/dist/components/chip/index.d.vue.ts +1 -1
- package/dist/components/chip/types.d.ts +1 -1
- package/dist/components/choicebox/index.d.vue.ts +3 -3
- package/dist/components/choicebox/types.d.ts +1 -1
- package/dist/components/choicebox-item/index.vue +8 -8
- package/dist/components/choicebox-item/types.d.ts +1 -1
- package/dist/components/collapse/index.vue +2 -2
- package/dist/components/collapse-group/index.vue +1 -1
- package/dist/components/collapse-group/types.d.ts +1 -1
- package/dist/components/command-menu/index.d.vue.ts +5 -5
- package/dist/components/command-menu/index.vue +10 -3
- package/dist/components/config-provider/index.d.vue.ts +40 -5
- package/dist/components/config-provider/types.d.ts +2 -1
- package/dist/components/confirm-popover/index.d.vue.ts +39 -0
- package/dist/components/confirm-popover/index.vue +177 -0
- package/dist/components/confirm-popover/types.d.ts +23 -0
- package/dist/components/copy-button/index.d.vue.ts +2 -6
- package/dist/components/copy-button/index.vue +4 -6
- package/dist/components/dash-line/index.d.vue.ts +1 -1
- package/dist/components/dash-line/index.vue +8 -8
- package/dist/components/dash-line/types.d.ts +1 -1
- package/dist/components/date-picker/index.d.vue.ts +1 -1
- package/dist/components/date-picker/index.vue +3 -3
- package/dist/components/date-picker/types.d.ts +1 -1
- package/dist/components/drawer/index.d.vue.ts +7 -7
- package/dist/components/drawer/index.vue +30 -15
- package/dist/components/drawer/types.d.ts +2 -2
- package/dist/components/effort-slider/index.vue +12 -18
- package/dist/components/effort-slider/types.d.ts +1 -1
- package/dist/components/ellipsis-text/index.d.vue.ts +2 -2
- package/dist/components/ellipsis-text/index.vue +75 -75
- package/dist/components/error/types.d.ts +1 -1
- package/dist/components/fader/index.vue +2 -2
- package/dist/components/fader/types.d.ts +1 -1
- package/dist/components/gauge/index.vue +2 -2
- package/dist/components/gauge/types.d.ts +1 -1
- package/dist/components/grid/types.d.ts +1 -1
- package/dist/components/grid-item/types.d.ts +1 -1
- package/dist/components/hint/index.d.vue.ts +32 -0
- package/dist/components/hint/index.vue +239 -0
- package/dist/components/hint/types.d.ts +17 -0
- package/dist/components/hold-button/index.d.vue.ts +4 -4
- package/dist/components/hold-button/index.vue +10 -10
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +4 -0
- package/dist/components/input/index.d.vue.ts +1 -1
- package/dist/components/input/index.vue +14 -7
- package/dist/components/input/types.d.ts +1 -1
- package/dist/components/intersection-observer/index.vue +3 -3
- package/dist/components/kbd/index.vue +2 -2
- package/dist/components/kbd/types.d.ts +1 -1
- package/dist/components/link-button/index.d.vue.ts +5 -5
- package/dist/components/list/index.d.vue.ts +4 -4
- package/dist/components/list/index.vue +126 -47
- package/dist/components/list/types.d.ts +1 -1
- package/dist/components/list-group/types.d.ts +1 -1
- package/dist/components/list-item/index.d.vue.ts +2 -2
- package/dist/components/list-item/index.vue +26 -8
- package/dist/components/loading-bar/index.vue +5 -5
- package/dist/components/marching-ants/index.d.vue.ts +2 -2
- package/dist/components/marching-ants/index.vue +56 -56
- package/dist/components/marching-ants/types.d.ts +1 -1
- package/dist/components/marquee/index.d.vue.ts +6 -6
- package/dist/components/marquee/index.vue +16 -16
- package/dist/components/marquee/types.d.ts +1 -1
- package/dist/components/material/index.d.vue.ts +3 -3
- package/dist/components/mention/index.d.vue.ts +5 -5
- package/dist/components/mention/index.vue +68 -68
- package/dist/components/menu/index.d.vue.ts +4 -4
- package/dist/components/menu/index.vue +10 -10
- package/dist/components/menu/types.d.ts +1 -1
- package/dist/components/message/index.d.vue.ts +1 -1
- package/dist/components/message/index.vue +19 -25
- package/dist/components/message/types.d.ts +1 -1
- package/dist/components/message-item/index.vue +2 -6
- package/dist/components/modal/index.d.vue.ts +7 -7
- package/dist/components/modal/index.vue +26 -11
- package/dist/components/modal/types.d.ts +2 -2
- package/dist/components/noise-background/types.d.ts +1 -1
- package/dist/components/note/index.vue +6 -2
- package/dist/components/note/types.d.ts +2 -1
- package/dist/components/number-input/index.d.vue.ts +11 -6
- package/dist/components/number-input/index.vue +57 -16
- package/dist/components/number-input/types.d.ts +2 -1
- package/dist/components/overlay/index.d.vue.ts +2 -3
- package/dist/components/overlay/index.vue +10 -62
- package/dist/components/overlay/types.d.ts +0 -2
- package/dist/components/page-number/index.vue +30 -29
- package/dist/components/page-number/types.d.ts +1 -1
- package/dist/components/pin-input/index.d.vue.ts +1 -1
- package/dist/components/pin-input/index.vue +6 -6
- package/dist/components/pin-input/types.d.ts +1 -1
- package/dist/components/popover/index.vue +49 -21
- package/dist/components/popover/types.d.ts +3 -1
- package/dist/components/progress/index.d.vue.ts +2 -2
- package/dist/components/progress/index.vue +12 -12
- package/dist/components/progress/types.d.ts +1 -1
- package/dist/components/project-banner/types.d.ts +1 -1
- package/dist/components/questionnaire/index.vue +14 -14
- package/dist/components/radio/index.vue +1 -1
- package/dist/components/radio/types.d.ts +1 -1
- package/dist/components/radio-group/index.d.vue.ts +2 -2
- package/dist/components/radio-group/types.d.ts +1 -1
- package/dist/components/rating/index.vue +28 -28
- package/dist/components/rating/types.d.ts +1 -1
- package/dist/components/resizable/index.d.vue.ts +1 -0
- package/dist/components/resizable/index.vue +130 -195
- package/dist/components/resizable/types.d.ts +2 -10
- package/dist/components/reveal/index.d.vue.ts +3 -3
- package/dist/components/reveal/index.vue +4 -4
- package/dist/components/reveal/types.d.ts +1 -1
- package/dist/components/rolling-number/index.d.vue.ts +2 -2
- package/dist/components/rolling-number/index.vue +15 -15
- package/dist/components/scalable-text/index.vue +9 -9
- package/dist/components/scroll-text/index.d.vue.ts +3 -3
- package/dist/components/scroll-text/index.vue +6 -6
- package/dist/components/scroll-text/types.d.ts +1 -1
- package/dist/components/scrollable/types.d.ts +2 -1
- package/dist/components/search-input/index.d.vue.ts +5 -5
- package/dist/components/search-input/index.vue +2 -1
- package/dist/components/select/index.d.vue.ts +12 -9
- package/dist/components/select/index.vue +165 -42
- package/dist/components/select/types.d.ts +3 -1
- package/dist/components/separator/index.d.vue.ts +1 -1
- package/dist/components/separator/types.d.ts +1 -1
- package/dist/components/skeleton/index.d.vue.ts +1 -1
- package/dist/components/skeleton/index.vue +11 -11
- package/dist/components/skeleton/types.d.ts +1 -1
- package/dist/components/slider/index.d.vue.ts +1 -1
- package/dist/components/slider/index.vue +1 -1
- package/dist/components/slider/types.d.ts +1 -1
- package/dist/components/snippet/index.d.vue.ts +3 -3
- package/dist/components/snippet/index.vue +7 -5
- package/dist/components/snippet/types.d.ts +1 -1
- package/dist/components/spinner/index.vue +5 -1
- package/dist/components/spinner-dots/index.d.vue.ts +1 -1
- package/dist/components/split-button/index.d.vue.ts +5 -5
- package/dist/components/split-button/types.d.ts +1 -1
- package/dist/components/stack/index.d.vue.ts +3 -3
- package/dist/components/stack/index.vue +28 -29
- package/dist/components/stack/types.d.ts +1 -1
- package/dist/components/status-dot/types.d.ts +1 -1
- package/dist/components/steps/index.d.vue.ts +2 -2
- package/dist/components/steps/index.vue +6 -6
- package/dist/components/steps/types.d.ts +1 -1
- package/dist/components/stick-to-bottom/types.d.ts +1 -1
- package/dist/components/swipe-cell/index.d.vue.ts +6 -6
- package/dist/components/swipe-cell/index.vue +64 -64
- package/dist/components/swipe-cell/types.d.ts +2 -1
- package/dist/components/switch/index.vue +1 -1
- package/dist/components/switch/types.d.ts +1 -1
- package/dist/components/switch-item/index.vue +1 -1
- package/dist/components/switch-item/types.d.ts +1 -1
- package/dist/components/tabs/index.d.vue.ts +1 -1
- package/dist/components/tabs/index.vue +48 -51
- package/dist/components/tabs/types.d.ts +1 -1
- package/dist/components/teleport/index.vue +2 -2
- package/dist/components/text/index.d.vue.ts +3 -3
- package/dist/components/text/index.vue +11 -11
- package/dist/components/text/types.d.ts +1 -1
- package/dist/components/textarea/index.vue +1 -1
- package/dist/components/textarea/types.d.ts +1 -1
- package/dist/components/theme-switcher/index.d.vue.ts +3 -2
- package/dist/components/theme-switcher/index.vue +15 -7
- package/dist/components/theme-switcher/types.d.ts +2 -2
- package/dist/components/time-ago/index.d.vue.ts +6 -0
- package/dist/components/time-ago/index.vue +143 -0
- package/dist/components/time-ago/types.d.ts +4 -0
- package/dist/components/time-picker/index.d.vue.ts +1 -1
- package/dist/components/time-picker/index.vue +7 -7
- package/dist/components/time-picker/types.d.ts +1 -1
- package/dist/components/toc/index.d.vue.ts +2 -2
- package/dist/components/toc/index.vue +1 -1
- package/dist/components/todo-list/index.d.vue.ts +4 -4
- package/dist/components/todo-list/index.vue +15 -15
- package/dist/components/todo-list/types.d.ts +1 -1
- package/dist/components/toggle/index.vue +3 -3
- package/dist/components/toggle/types.d.ts +1 -1
- package/dist/components/toggle-button/index.vue +14 -11
- package/dist/components/toggle-button/types.d.ts +2 -2
- package/dist/components/toggle-button-group/index.d.vue.ts +3 -3
- package/dist/components/toggle-button-group/index.vue +2 -2
- package/dist/components/toggle-button-group/types.d.ts +2 -2
- package/dist/components/tool-call/index.vue +5 -5
- package/dist/components/tooltip/index.d.vue.ts +4 -5
- package/dist/components/tooltip/index.vue +4 -49
- package/dist/components/tooltip/types.d.ts +3 -7
- package/dist/components/tour/index.d.vue.ts +33 -0
- package/dist/components/tour/index.vue +302 -0
- package/dist/components/tour/types.d.ts +29 -0
- package/dist/components/tree/index.d.vue.ts +24 -28
- package/dist/components/tree/index.vue +290 -223
- package/dist/components/tree/types.d.ts +38 -13
- package/dist/components/virtual-list/index.d.vue.ts +4 -4
- package/dist/composables/_internal/use-list-keyboard-controller.js +9 -10
- package/dist/composables/_internal/use-list-rows.d.ts +4 -0
- package/dist/composables/_internal/use-list-rows.js +12 -4
- package/dist/composables/_internal/use-list-selection.d.ts +1 -1
- package/dist/composables/_internal/use-lock-scroll.d.ts +8 -1
- package/dist/composables/_internal/use-lock-scroll.js +57 -36
- package/dist/composables/_internal/use-mention-editor.js +1 -1
- package/dist/composables/_internal/use-message-group.d.ts +22 -0
- package/dist/composables/_internal/use-message-group.js +143 -0
- package/dist/composables/_internal/use-overlay-dialog.js +1 -3
- package/dist/composables/_internal/use-overlay-manager.d.ts +4 -1
- package/dist/composables/_internal/use-overlay-manager.js +67 -8
- package/dist/composables/_internal/use-swipe-gesture.d.ts +1 -1
- package/dist/composables/_internal/use-tour-target.d.ts +29 -0
- package/dist/composables/_internal/use-tour-target.js +201 -0
- package/dist/composables/_internal/use-tree.d.ts +103 -0
- package/dist/composables/_internal/use-tree.js +676 -0
- package/dist/composables/_internal/use-word-limit.d.ts +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.js +1 -0
- package/dist/composables/use-color-scheme.d.ts +1 -1
- package/dist/composables/use-color-scheme.js +7 -6
- package/dist/composables/use-delay-destroy.d.ts +1 -1
- package/dist/composables/use-document-hidden.d.ts +1 -1
- package/dist/composables/use-intersection-observer.d.ts +1 -1
- package/dist/composables/use-intersection-observer.js +1 -1
- package/dist/composables/{_internal/use-motion-reduce.js → use-motion-reduce.js} +2 -2
- package/dist/composables/use-mutation-observer.d.ts +1 -1
- package/dist/composables/use-mutation-observer.js +1 -1
- package/dist/composables/use-resize-observer.d.ts +1 -1
- package/dist/composables/use-resize-observer.js +1 -1
- package/dist/composables/use-view-transition.js +1 -0
- package/dist/composables/use-virtual-list.d.ts +1 -1
- package/dist/constants/tooltip-variants.d.ts +28 -0
- package/dist/constants/tooltip-variants.js +27 -0
- package/dist/contexts/avatar.js +1 -1
- package/dist/contexts/breadcrumb.js +1 -1
- package/dist/contexts/button.js +1 -1
- package/dist/contexts/checkbox.js +1 -1
- package/dist/contexts/choicebox.js +1 -1
- package/dist/contexts/collapse.js +1 -1
- package/dist/contexts/config-provider.js +1 -1
- package/dist/contexts/list.js +1 -1
- package/dist/contexts/radio.js +1 -1
- package/dist/contexts/switch.js +1 -1
- package/dist/contexts/toggle-button.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/locales/en-us.d.ts +35 -0
- package/dist/locales/en-us.js +20 -0
- package/dist/locales/zh-cn.d.ts +35 -0
- package/dist/locales/zh-cn.js +20 -0
- package/dist/styles/styles.css +1 -1
- package/dist/styles/tw.css +43 -30
- package/dist/utils/{context.js → _internal/context.js} +1 -1
- package/dist/utils/{observer.d.ts → _internal/observer.d.ts} +1 -1
- package/dist/utils/{observer.js → _internal/observer.js} +4 -4
- package/dist/{components/swipe-cell/instances.d.ts → utils/_internal/swipe-cell-instances.d.ts} +1 -1
- package/dist/utils/event.d.ts +2 -1
- package/dist/utils/event.js +3 -0
- package/package.json +26 -50
- package/volar.d.ts +4 -0
- package/dist/components/message/composables/use-group-expand.d.ts +0 -13
- package/dist/components/message/composables/use-group-expand.js +0 -50
- package/dist/components/message/composables/use-message-timer.d.ts +0 -9
- package/dist/components/message/composables/use-message-timer.js +0 -62
- package/dist/components/message/composables/use-promise-message.d.ts +0 -4
- package/dist/components/message/composables/use-promise-message.js +0 -49
- package/dist/components/resizable/utils.d.ts +0 -4
- package/dist/components/resizable/utils.js +0 -10
- package/dist/composables/_internal/use-tree-drag.d.ts +0 -23
- package/dist/composables/_internal/use-tree-drag.js +0 -196
- package/dist/composables/_internal/use-tree-move.d.ts +0 -20
- package/dist/composables/_internal/use-tree-move.js +0 -96
- package/dist/composables/_internal/use-tree-rows.d.ts +0 -46
- package/dist/composables/_internal/use-tree-rows.js +0 -101
- package/dist/composables/_internal/use-tree-selection.d.ts +0 -22
- package/dist/composables/_internal/use-tree-selection.js +0 -87
- package/dist/styles/source.css +0 -675
- package/dist/types/shared/index.d.ts +0 -2
- /package/dist/composables/{_internal/use-motion-reduce.d.ts → use-motion-reduce.d.ts} +0 -0
- /package/dist/utils/{context.d.ts → _internal/context.d.ts} +0 -0
- /package/dist/utils/{mention-html.d.ts → _internal/mention-html.d.ts} +0 -0
- /package/dist/utils/{mention-html.js → _internal/mention-html.js} +0 -0
- /package/dist/{components/swipe-cell/instances.js → utils/_internal/swipe-cell-instances.js} +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { computed, reactive, shallowRef } from "vue";
|
|
2
|
+
import { computed, nextTick, onMounted, reactive, shallowRef, watch } from "vue";
|
|
3
3
|
import { useListNavigation } from "../../composables/_internal/use-list-navigation.js";
|
|
4
|
-
import { flattenListOptions
|
|
4
|
+
import { flattenListOptions } from "../../composables/_internal/use-list-rows.js";
|
|
5
5
|
import { resolveNextListValue } from "../../composables/_internal/use-list-selection.js";
|
|
6
6
|
import { resolveOptionByValue } from "../../composables/_internal/use-selected-list-item.js";
|
|
7
7
|
import { useVirtualList } from "../../composables/use-virtual-list.js";
|
|
8
8
|
import { provideListContext } from "../../contexts/list.js";
|
|
9
9
|
import { getElement } from "../../utils/dom.js";
|
|
10
|
+
import { toArray } from "../../utils/format.js";
|
|
11
|
+
import { isNil } from "../../utils/is.js";
|
|
10
12
|
import PLoadingMask from "../_internal/loading-mask.vue";
|
|
11
13
|
import PListGroup from "../list-group/index.vue";
|
|
12
14
|
import PListItem from "../list-item/index.vue";
|
|
@@ -79,15 +81,13 @@ const emits = defineEmits(["change", "update:modelValue"]);
|
|
|
79
81
|
const containerRef = shallowRef();
|
|
80
82
|
const flattened = computed(() => flattenListOptions(props.options));
|
|
81
83
|
const rows = computed(() => flattened.value.rows);
|
|
84
|
+
const itemRows = computed(() => flattened.value.itemRows);
|
|
82
85
|
const navigableCount = computed(() => flattened.value.navigableCount);
|
|
83
|
-
function isNavDisabled(index) {
|
|
84
|
-
return resolveNavigableOption(rows.value, index)?.option.disabled === true;
|
|
85
|
-
}
|
|
86
86
|
const virtualOptions = reactive({
|
|
87
87
|
dataKey: "key",
|
|
88
88
|
enabled: () => props.virtual,
|
|
89
|
-
scrollPaddingStart:
|
|
90
|
-
scrollPaddingEnd:
|
|
89
|
+
scrollPaddingStart: props.itemSize / 2,
|
|
90
|
+
scrollPaddingEnd: props.itemSize / 2,
|
|
91
91
|
get items() {
|
|
92
92
|
return rows.value;
|
|
93
93
|
},
|
|
@@ -98,14 +98,51 @@ const virtualOptions = reactive({
|
|
|
98
98
|
return props.overScan;
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
|
+
const { activeIndex, dispatch, setActiveIndex, onPointerOver, setFirstAsActive } = useListNavigation({
|
|
102
|
+
loop: () => props.loop,
|
|
103
|
+
count: () => navigableCount.value,
|
|
104
|
+
defaultActiveIndex: () => props.defaultActiveIndex,
|
|
105
|
+
isDisabled: isNavDisabled,
|
|
106
|
+
onActivateItem,
|
|
107
|
+
scrollToIndex: scrollNavIndexIntoView
|
|
108
|
+
});
|
|
101
109
|
const { totalSize, virtualItems, scrollToIndex } = useVirtualList(containerRef, virtualOptions);
|
|
110
|
+
const renderEntries = computed(() => {
|
|
111
|
+
if (props.virtual) {
|
|
112
|
+
return virtualItems.value.map((virtualItem) => {
|
|
113
|
+
const row = rows.value[virtualItem.index];
|
|
114
|
+
return {
|
|
115
|
+
key: virtualItem.key,
|
|
116
|
+
start: virtualItem.start,
|
|
117
|
+
row,
|
|
118
|
+
itemRow: row?.type === "item" ? row : undefined,
|
|
119
|
+
headerLabel: row?.type === "header" ? row.label : undefined
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return rows.value.map((row) => ({
|
|
124
|
+
key: row.key,
|
|
125
|
+
row,
|
|
126
|
+
itemRow: row.type === "item" ? row : undefined,
|
|
127
|
+
headerLabel: row.type === "header" ? row.label : undefined
|
|
128
|
+
}));
|
|
129
|
+
});
|
|
130
|
+
const contentStyle = computed(() => {
|
|
131
|
+
if (!props.virtual) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
return { height: `${totalSize.value}px` };
|
|
135
|
+
});
|
|
136
|
+
function isNavDisabled(index) {
|
|
137
|
+
return itemRows.value[index]?.option.disabled === true;
|
|
138
|
+
}
|
|
102
139
|
function scrollNavIndexIntoView(navIndex) {
|
|
103
|
-
const
|
|
104
|
-
if (
|
|
140
|
+
const row = itemRows.value[navIndex];
|
|
141
|
+
if (!row) {
|
|
105
142
|
return;
|
|
106
143
|
}
|
|
107
144
|
if (props.virtual) {
|
|
108
|
-
scrollToIndex(rowIndex, {
|
|
145
|
+
scrollToIndex(row.rowIndex, {
|
|
109
146
|
align: "auto",
|
|
110
147
|
behavior: "instant"
|
|
111
148
|
});
|
|
@@ -126,7 +163,7 @@ function onItemSelect(value) {
|
|
|
126
163
|
return;
|
|
127
164
|
}
|
|
128
165
|
const option = resolveOptionByValue(props.options, value);
|
|
129
|
-
if (!option) {
|
|
166
|
+
if (!option || option.disabled) {
|
|
130
167
|
return;
|
|
131
168
|
}
|
|
132
169
|
const nextValue = resolveNextListValue(props.modelValue, value, props.multiple);
|
|
@@ -139,59 +176,102 @@ function onActivateItem(navIndex) {
|
|
|
139
176
|
el.click();
|
|
140
177
|
return;
|
|
141
178
|
}
|
|
142
|
-
const row =
|
|
179
|
+
const row = itemRows.value[navIndex];
|
|
143
180
|
if (!row) {
|
|
144
181
|
return;
|
|
145
182
|
}
|
|
146
183
|
onItemSelect(row.option.value);
|
|
147
184
|
}
|
|
148
|
-
const { activeIndex, dispatch, setActiveIndex, onPointerOver, setFirstAsActive } = useListNavigation({
|
|
149
|
-
loop: () => props.loop,
|
|
150
|
-
count: () => navigableCount.value,
|
|
151
|
-
defaultActiveIndex: () => props.defaultActiveIndex,
|
|
152
|
-
isDisabled: isNavDisabled,
|
|
153
|
-
onActivateItem,
|
|
154
|
-
scrollToIndex: scrollNavIndexIntoView
|
|
155
|
-
});
|
|
156
|
-
function isItemActive(row) {
|
|
157
|
-
return activeIndex.value === row.navIndex;
|
|
158
|
-
}
|
|
159
185
|
function dispatchCommand(command) {
|
|
160
186
|
if (props.loading) {
|
|
161
187
|
return false;
|
|
162
188
|
}
|
|
163
189
|
return dispatch(command);
|
|
164
190
|
}
|
|
165
|
-
|
|
191
|
+
function findItemElement(navIndex) {
|
|
192
|
+
return getElement(`[data-list-item][data-index="${navIndex}"]`, containerRef.value);
|
|
193
|
+
}
|
|
194
|
+
function syncActiveItem(next, previous) {
|
|
195
|
+
if (previous >= 0) {
|
|
196
|
+
findItemElement(previous)?.removeAttribute("data-active");
|
|
197
|
+
}
|
|
198
|
+
if (next >= 0) {
|
|
199
|
+
findItemElement(next)?.setAttribute("data-active", "true");
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function refreshActiveItem() {
|
|
203
|
+
const container = containerRef.value;
|
|
204
|
+
if (!container) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
container.querySelectorAll("[data-list-item][data-active]").forEach((el) => {
|
|
208
|
+
el.removeAttribute("data-active");
|
|
209
|
+
});
|
|
210
|
+
if (activeIndex.value >= 0) {
|
|
211
|
+
findItemElement(activeIndex.value)?.setAttribute("data-active", "true");
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function scrollToFirstSelected() {
|
|
215
|
+
const firstValue = toArray(props.modelValue)[0];
|
|
216
|
+
if (isNil(firstValue)) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
const target = itemRows.value.find((row) => row.option.value === firstValue);
|
|
220
|
+
if (!target) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
166
223
|
if (props.virtual) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return {
|
|
170
|
-
key: virtualItem.key,
|
|
171
|
-
start: virtualItem.start,
|
|
172
|
-
row,
|
|
173
|
-
itemRow: row?.type === "item" ? row : undefined,
|
|
174
|
-
headerLabel: row?.type === "header" ? row.label : undefined
|
|
175
|
-
};
|
|
176
|
-
});
|
|
224
|
+
nextTick(() => scrollNavIndexIntoView(target.navIndex));
|
|
225
|
+
return true;
|
|
177
226
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
headerLabel: row.type === "header" ? row.label : undefined
|
|
183
|
-
}));
|
|
184
|
-
});
|
|
185
|
-
const contentStyle = computed(() => {
|
|
186
|
-
if (!props.virtual) {
|
|
187
|
-
return undefined;
|
|
227
|
+
const container = containerRef.value;
|
|
228
|
+
const item = getElement(`[data-list-item][data-index="${target.navIndex}"]`, container);
|
|
229
|
+
if (!container || !item) {
|
|
230
|
+
return false;
|
|
188
231
|
}
|
|
189
|
-
|
|
190
|
-
|
|
232
|
+
const itemRect = item.getBoundingClientRect();
|
|
233
|
+
const containerRect = container.getBoundingClientRect();
|
|
234
|
+
if (itemRect.top < containerRect.top) {
|
|
235
|
+
// Keep one row between the selection and the top edge.
|
|
236
|
+
container.scrollTop -= containerRect.top - itemRect.top + itemRect.height;
|
|
237
|
+
} else if (itemRect.bottom > containerRect.bottom) {
|
|
238
|
+
// Keep one row between the selection and the bottom edge.
|
|
239
|
+
container.scrollTop += itemRect.bottom - containerRect.bottom + itemRect.height;
|
|
240
|
+
}
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
function scrollToFirstOption() {
|
|
244
|
+
if (props.virtual) {
|
|
245
|
+
if (rows.value.length > 0) {
|
|
246
|
+
scrollToIndex(0, {
|
|
247
|
+
align: "start",
|
|
248
|
+
behavior: "instant"
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (containerRef.value) {
|
|
254
|
+
containerRef.value.scrollTop = 0;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
watch(activeIndex, syncActiveItem, { flush: "post" });
|
|
258
|
+
watch(renderEntries, refreshActiveItem, { flush: "post" });
|
|
191
259
|
provideListContext({
|
|
192
260
|
value: computed(() => props.modelValue),
|
|
193
261
|
onItemSelect
|
|
194
262
|
});
|
|
263
|
+
watch(rows, async () => {
|
|
264
|
+
await nextTick();
|
|
265
|
+
if (!scrollToFirstSelected()) {
|
|
266
|
+
scrollToFirstOption();
|
|
267
|
+
}
|
|
268
|
+
}, { flush: "post" });
|
|
269
|
+
onMounted(() => {
|
|
270
|
+
refreshActiveItem();
|
|
271
|
+
if (!scrollToFirstSelected()) {
|
|
272
|
+
scrollToFirstOption();
|
|
273
|
+
}
|
|
274
|
+
});
|
|
195
275
|
defineExpose({
|
|
196
276
|
focus: () => containerRef.value?.focus(),
|
|
197
277
|
dispatch: dispatchCommand,
|
|
@@ -234,7 +314,6 @@ defineExpose({
|
|
|
234
314
|
v-else-if="entry.itemRow"
|
|
235
315
|
v-bind="entry.itemRow.option"
|
|
236
316
|
:index="entry.itemRow.navIndex"
|
|
237
|
-
:active="isItemActive(entry.itemRow)"
|
|
238
317
|
:class="itemClass"
|
|
239
318
|
>
|
|
240
319
|
<template v-if="$slots.item">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ListItemProps } from './types';
|
|
2
|
-
declare var
|
|
2
|
+
declare var __VLS_9: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
|
-
default?: (props: typeof
|
|
4
|
+
default?: (props: typeof __VLS_9) => any;
|
|
5
5
|
};
|
|
6
6
|
declare const __VLS_base: import("vue").DefineComponent<ListItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
7
|
click: (args_0: import("../../types/shared/props.js").ComponentValue, args_1: MouseEvent) => any;
|
|
@@ -48,21 +48,36 @@ const props = defineProps({
|
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
const emits = defineEmits(["click"]);
|
|
51
|
+
const NATIVE_DISABLED_TAGS = new Set([
|
|
52
|
+
"button",
|
|
53
|
+
"input",
|
|
54
|
+
"select",
|
|
55
|
+
"textarea",
|
|
56
|
+
"option",
|
|
57
|
+
"optgroup",
|
|
58
|
+
"fieldset"
|
|
59
|
+
]);
|
|
60
|
+
const nativeDisabled = computed(() => {
|
|
61
|
+
if (!props.disabled || typeof props.as !== "string") {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
return NATIVE_DISABLED_TAGS.has(props.as.toLowerCase()) ? true : undefined;
|
|
65
|
+
});
|
|
51
66
|
const { value: selectedValue, onItemSelect } = useListContext();
|
|
67
|
+
const isChecked = computed(() => {
|
|
68
|
+
return !isNil(props.value) && toArray(selectedValue.value).includes(props.value);
|
|
69
|
+
});
|
|
52
70
|
const { attrs, classes } = useTailwindVariant({
|
|
53
71
|
base: "pxd-list-item min-h-9 p-2 text-sm pe-8 gap-2 flex w-full max-w-full cursor-pointer items-center rounded-md outline-none content-visibility-auto data-[disabled=true]:pointer-events-none data-[disabled=true]:text-gray-700",
|
|
54
72
|
variants: { variant: {
|
|
55
|
-
error: "text-red-900 active:bg-red-100 pointer-fine:
|
|
56
|
-
warning: "text-amber-900 active:bg-amber-100 pointer-fine:
|
|
57
|
-
default: "text-foreground active:bg-gray-alpha-100 pointer-fine:
|
|
73
|
+
error: "text-red-900 active:bg-red-100 pointer-fine:data-[active=true]:bg-red-100",
|
|
74
|
+
warning: "text-amber-900 active:bg-amber-100 pointer-fine:data-[active=true]:bg-amber-100",
|
|
75
|
+
default: "text-foreground active:bg-gray-alpha-100 pointer-fine:data-[active=true]:bg-gray-alpha-100"
|
|
58
76
|
} }
|
|
59
77
|
}, { selection: () => ({ variant: props.variant }) });
|
|
60
|
-
const isChecked = computed(() => {
|
|
61
|
-
return !isNil(props.value) && toArray(selectedValue.value).includes(props.value);
|
|
62
|
-
});
|
|
63
78
|
function onItemClick(ev) {
|
|
64
79
|
const value = props.value;
|
|
65
|
-
if (isNil(value)) {
|
|
80
|
+
if (props.disabled || isNil(value)) {
|
|
66
81
|
return;
|
|
67
82
|
}
|
|
68
83
|
emits("click", value, ev);
|
|
@@ -80,7 +95,10 @@ function onItemClick(ev) {
|
|
|
80
95
|
:data-variant="variant"
|
|
81
96
|
:data-checked="isChecked"
|
|
82
97
|
:data-disabled="disabled"
|
|
83
|
-
:
|
|
98
|
+
:data-active="active"
|
|
99
|
+
:aria-selected="isChecked"
|
|
100
|
+
:aria-disabled="disabled"
|
|
101
|
+
:disabled="nativeDisabled"
|
|
84
102
|
:class="classes"
|
|
85
103
|
v-bind="attrs"
|
|
86
104
|
@click.stop="onItemClick"
|
|
@@ -42,6 +42,11 @@ const props = defineProps({
|
|
|
42
42
|
default: 300
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
|
+
let prevTimestamp = 0;
|
|
46
|
+
let prevAnimationKey = 0;
|
|
47
|
+
let hiddenBarTimeout;
|
|
48
|
+
let enableTransitionTimeout;
|
|
49
|
+
const ENABLE_TRANSITION_DELAY = 0;
|
|
45
50
|
const status = shallowRef("finish");
|
|
46
51
|
const hiddenBar = shallowRef(false);
|
|
47
52
|
const progressValue = shallowRef(0);
|
|
@@ -64,11 +69,6 @@ const { classes: innerClasses } = useTailwindVariant({
|
|
|
64
69
|
mergeAttrsClass: false,
|
|
65
70
|
selection: () => ({ status: status.value })
|
|
66
71
|
});
|
|
67
|
-
let prevTimestamp = 0;
|
|
68
|
-
let prevAnimationKey = 0;
|
|
69
|
-
let hiddenBarTimeout;
|
|
70
|
-
let enableTransitionTimeout;
|
|
71
|
-
const ENABLE_TRANSITION_DELAY = 0;
|
|
72
72
|
function getIncreaseDelta(n) {
|
|
73
73
|
if (n >= 0 && n < .2) {
|
|
74
74
|
return .1;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { MarchingAntsProps } from './types';
|
|
2
2
|
declare function select(): void;
|
|
3
3
|
declare function deselect(): void;
|
|
4
|
-
declare var
|
|
4
|
+
declare var __VLS_9: {};
|
|
5
5
|
type __VLS_Slots = {} & {
|
|
6
|
-
default?: (props: typeof
|
|
6
|
+
default?: (props: typeof __VLS_9) => any;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_base: import("vue").DefineComponent<MarchingAntsProps, {
|
|
9
9
|
select: typeof select;
|
|
@@ -2,6 +2,62 @@
|
|
|
2
2
|
import { computed, shallowRef } from "vue";
|
|
3
3
|
import { getElement } from "../../utils/dom.js";
|
|
4
4
|
import { getCssUnitValue } from "../../utils/format.js";
|
|
5
|
+
defineOptions({
|
|
6
|
+
name: "PMarchingAnts",
|
|
7
|
+
inheritAttrs: false
|
|
8
|
+
});
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
as: {
|
|
11
|
+
type: [String, Object],
|
|
12
|
+
required: false,
|
|
13
|
+
default: "div"
|
|
14
|
+
},
|
|
15
|
+
color: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: false,
|
|
18
|
+
default: "#00ff88"
|
|
19
|
+
},
|
|
20
|
+
lineSize: {
|
|
21
|
+
type: [String, Number],
|
|
22
|
+
required: false,
|
|
23
|
+
default: 2
|
|
24
|
+
},
|
|
25
|
+
dashSize: {
|
|
26
|
+
type: [String, Number],
|
|
27
|
+
required: false,
|
|
28
|
+
default: 8
|
|
29
|
+
},
|
|
30
|
+
gap: {
|
|
31
|
+
type: [String, Number],
|
|
32
|
+
required: false,
|
|
33
|
+
default: 4
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const targetRef = shallowRef();
|
|
37
|
+
const outline = shallowRef();
|
|
38
|
+
const dashArray = computed(() => {
|
|
39
|
+
const dash = parseFloat(getCssUnitValue(props.dashSize, "8") || "8");
|
|
40
|
+
const gap = parseFloat(getCssUnitValue(props.gap, "4") || "4");
|
|
41
|
+
return {
|
|
42
|
+
value: `${dash} ${gap}`,
|
|
43
|
+
offset: `-${dash + gap}`
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
const strokeStyle = computed(() => ({
|
|
47
|
+
"--marching-ants-color": props.color,
|
|
48
|
+
"--marching-ants-stroke-width": getCssUnitValue(props.lineSize, "2px"),
|
|
49
|
+
"--marching-ants-dash-array": dashArray.value.value,
|
|
50
|
+
"--marching-ants-dash-offset": dashArray.value.offset
|
|
51
|
+
}));
|
|
52
|
+
const circleOutline = computed(() => {
|
|
53
|
+
const value = outline.value;
|
|
54
|
+
return value?.type === "ellipse" && Math.abs(value.rx - value.ry) < .5 ? value : undefined;
|
|
55
|
+
});
|
|
56
|
+
const ellipseOutline = computed(() => {
|
|
57
|
+
const value = outline.value;
|
|
58
|
+
return value?.type === "ellipse" && !circleOutline.value ? value : undefined;
|
|
59
|
+
});
|
|
60
|
+
const pathOutline = computed(() => outline.value?.type === "path" ? outline.value : undefined);
|
|
5
61
|
const resolveLength = (value, reference) => value.endsWith("%") ? parseFloat(value) / 100 * reference : parseFloat(value);
|
|
6
62
|
const getElementRect = (element) => ({
|
|
7
63
|
style: getComputedStyle(element),
|
|
@@ -364,62 +420,6 @@ function getOutline(element) {
|
|
|
364
420
|
}
|
|
365
421
|
return createRectangleOutline(elementRect.width, elementRect.height);
|
|
366
422
|
}
|
|
367
|
-
defineOptions({
|
|
368
|
-
name: "PMarchingAnts",
|
|
369
|
-
inheritAttrs: false
|
|
370
|
-
});
|
|
371
|
-
const props = defineProps({
|
|
372
|
-
as: {
|
|
373
|
-
type: [String, Object],
|
|
374
|
-
required: false,
|
|
375
|
-
default: "div"
|
|
376
|
-
},
|
|
377
|
-
color: {
|
|
378
|
-
type: String,
|
|
379
|
-
required: false,
|
|
380
|
-
default: "#00ff88"
|
|
381
|
-
},
|
|
382
|
-
lineSize: {
|
|
383
|
-
type: [String, Number],
|
|
384
|
-
required: false,
|
|
385
|
-
default: 2
|
|
386
|
-
},
|
|
387
|
-
dashSize: {
|
|
388
|
-
type: [String, Number],
|
|
389
|
-
required: false,
|
|
390
|
-
default: 8
|
|
391
|
-
},
|
|
392
|
-
gap: {
|
|
393
|
-
type: [String, Number],
|
|
394
|
-
required: false,
|
|
395
|
-
default: 4
|
|
396
|
-
}
|
|
397
|
-
});
|
|
398
|
-
const targetRef = shallowRef();
|
|
399
|
-
const outline = shallowRef();
|
|
400
|
-
const dashArray = computed(() => {
|
|
401
|
-
const dash = parseFloat(getCssUnitValue(props.dashSize, "8") || "8");
|
|
402
|
-
const gap = parseFloat(getCssUnitValue(props.gap, "4") || "4");
|
|
403
|
-
return {
|
|
404
|
-
value: `${dash} ${gap}`,
|
|
405
|
-
offset: `-${dash + gap}`
|
|
406
|
-
};
|
|
407
|
-
});
|
|
408
|
-
const strokeStyle = computed(() => ({
|
|
409
|
-
"--marching-ants-color": props.color,
|
|
410
|
-
"--marching-ants-stroke-width": getCssUnitValue(props.lineSize, "2px"),
|
|
411
|
-
"--marching-ants-dash-array": dashArray.value.value,
|
|
412
|
-
"--marching-ants-dash-offset": dashArray.value.offset
|
|
413
|
-
}));
|
|
414
|
-
const circleOutline = computed(() => {
|
|
415
|
-
const value = outline.value;
|
|
416
|
-
return value?.type === "ellipse" && Math.abs(value.rx - value.ry) < .5 ? value : undefined;
|
|
417
|
-
});
|
|
418
|
-
const ellipseOutline = computed(() => {
|
|
419
|
-
const value = outline.value;
|
|
420
|
-
return value?.type === "ellipse" && !circleOutline.value ? value : undefined;
|
|
421
|
-
});
|
|
422
|
-
const pathOutline = computed(() => outline.value?.type === "path" ? outline.value : undefined);
|
|
423
423
|
function select() {
|
|
424
424
|
const target = getElement(targetRef.value);
|
|
425
425
|
if (!target) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { MarqueeProps } from './types';
|
|
2
2
|
declare function reset(): void;
|
|
3
|
-
declare var
|
|
3
|
+
declare var __VLS_9: {}, __VLS_11: {}, __VLS_13: {};
|
|
4
4
|
type __VLS_Slots = {} & {
|
|
5
|
-
prefix?: (props: typeof
|
|
5
|
+
prefix?: (props: typeof __VLS_9) => any;
|
|
6
6
|
} & {
|
|
7
|
-
default?: (props: typeof
|
|
7
|
+
default?: (props: typeof __VLS_11) => any;
|
|
8
8
|
} & {
|
|
9
|
-
suffix?: (props: typeof
|
|
9
|
+
suffix?: (props: typeof __VLS_13) => any;
|
|
10
10
|
};
|
|
11
11
|
declare const __VLS_base: import("vue").DefineComponent<MarqueeProps, {
|
|
12
12
|
reset: typeof reset;
|
|
@@ -17,13 +17,13 @@ declare const __VLS_base: import("vue").DefineComponent<MarqueeProps, {
|
|
|
17
17
|
onClick?: ((args_0: MouseEvent) => any) | undefined;
|
|
18
18
|
onReplay?: (() => any) | undefined;
|
|
19
19
|
}>, {
|
|
20
|
-
delay:
|
|
20
|
+
delay: string | number;
|
|
21
21
|
text: string;
|
|
22
22
|
background: string;
|
|
23
23
|
color: string;
|
|
24
24
|
as: import("../../types/shared/props.js").ComponentAs;
|
|
25
25
|
pauseOnHover: boolean;
|
|
26
|
-
speed:
|
|
26
|
+
speed: string | number;
|
|
27
27
|
scrollable: boolean;
|
|
28
28
|
wrapable: boolean;
|
|
29
29
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -55,23 +55,18 @@ const props = defineProps({
|
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
const emits = defineEmits(["click", "replay"]);
|
|
58
|
-
const wrapRef = shallowRef();
|
|
59
|
-
const contentRef = shallowRef();
|
|
60
|
-
const phase = shallowRef("idle");
|
|
61
|
-
const contentStyle = shallowRef();
|
|
62
58
|
let wrapWidth = 0;
|
|
63
59
|
let contentWidth = 0;
|
|
64
60
|
let appliedSpeed = 0;
|
|
65
61
|
let appliedDelay = 0;
|
|
66
62
|
let restartRafId = 0;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
63
|
+
const scheduleSync = throttleByRaf(() => {
|
|
64
|
+
syncScroll(false);
|
|
65
|
+
});
|
|
66
|
+
const wrapRef = shallowRef();
|
|
67
|
+
const contentRef = shallowRef();
|
|
68
|
+
const phase = shallowRef("idle");
|
|
69
|
+
const contentStyle = shallowRef();
|
|
75
70
|
const delaySec = computed(() => toDelay(props.delay));
|
|
76
71
|
const speed = computed(() => toSpeed(props.speed));
|
|
77
72
|
const isWrapMode = computed(() => props.wrapable && props.scrollable === false);
|
|
@@ -89,6 +84,15 @@ const contentClass = computed(() => {
|
|
|
89
84
|
}
|
|
90
85
|
return "block max-w-full truncate";
|
|
91
86
|
});
|
|
87
|
+
useResizeObserver(wrapRef, scheduleSync);
|
|
88
|
+
function toDelay(value) {
|
|
89
|
+
const n = Number(value);
|
|
90
|
+
return Number.isFinite(n) && n >= 0 ? n : 1;
|
|
91
|
+
}
|
|
92
|
+
function toSpeed(value) {
|
|
93
|
+
const n = Number(value);
|
|
94
|
+
return Number.isFinite(n) && n > 0 ? n : 60;
|
|
95
|
+
}
|
|
92
96
|
function clearRestart() {
|
|
93
97
|
if (restartRafId) {
|
|
94
98
|
caf(restartRafId);
|
|
@@ -162,9 +166,6 @@ function syncScroll(force = false) {
|
|
|
162
166
|
}
|
|
163
167
|
armFirst();
|
|
164
168
|
}
|
|
165
|
-
const scheduleSync = throttleByRaf(() => {
|
|
166
|
-
syncScroll(false);
|
|
167
|
-
});
|
|
168
169
|
function reset() {
|
|
169
170
|
if (isServer()) {
|
|
170
171
|
return;
|
|
@@ -193,7 +194,6 @@ watch(() => [
|
|
|
193
194
|
delaySec.value,
|
|
194
195
|
speed.value
|
|
195
196
|
], reset);
|
|
196
|
-
useResizeObserver(wrapRef, scheduleSync);
|
|
197
197
|
onMounted(reset);
|
|
198
198
|
onBeforeUnmount(() => {
|
|
199
199
|
scheduleSync.cancel();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { MaterialProps } from './types';
|
|
2
|
-
declare var
|
|
2
|
+
declare var __VLS_7: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
|
-
default?: (props: typeof
|
|
4
|
+
default?: (props: typeof __VLS_7) => any;
|
|
5
5
|
};
|
|
6
6
|
declare const __VLS_base: import("vue").DefineComponent<MaterialProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MaterialProps> & Readonly<{}>, {
|
|
7
|
-
variant: "default" | "
|
|
7
|
+
variant: "default" | "menu" | "small" | "tooltip" | "medium" | "large" | "modal" | "fullscreen";
|
|
8
8
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
9
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
10
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { ListOptions } from '../list/types';
|
|
2
2
|
import type { MentionClickPayload, MentionProps } from './types';
|
|
3
|
-
declare var
|
|
3
|
+
declare var __VLS_28: {
|
|
4
4
|
item: import("../list/types").ListOption;
|
|
5
5
|
index: number;
|
|
6
6
|
group: import("../list/types").ListOptionGroup | undefined;
|
|
7
7
|
groupIndex: number | undefined;
|
|
8
|
-
},
|
|
8
|
+
}, __VLS_31: {};
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
|
-
item?: (props: typeof
|
|
10
|
+
item?: (props: typeof __VLS_28) => any;
|
|
11
11
|
} & {
|
|
12
|
-
empty?: (props: typeof
|
|
12
|
+
empty?: (props: typeof __VLS_31) => any;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_base: import("vue").DefineComponent<MentionProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
15
|
change: (args_0: string) => any;
|
|
@@ -20,11 +20,11 @@ declare const __VLS_base: import("vue").DefineComponent<MentionProps, {}, {}, {}
|
|
|
20
20
|
"onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
|
|
21
21
|
"onMention-click"?: ((args_0: MentionClickPayload) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
|
-
placeholder: string;
|
|
24
23
|
disabled: boolean;
|
|
25
24
|
modelValue: string;
|
|
26
25
|
options: ListOptions | import("./types").MentionOptionsResolver;
|
|
27
26
|
closeOnPressEscape: boolean;
|
|
27
|
+
placeholder: string;
|
|
28
28
|
triggers: string[];
|
|
29
29
|
searchPlaceholder: string;
|
|
30
30
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|