vue-devui 1.0.0-rc.0 → 1.0.0-rc.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/README.md +55 -113
- package/alert/index.es.js +28 -30
- package/alert/index.umd.js +1 -1
- package/auto-complete/index.es.js +143 -103
- package/auto-complete/index.umd.js +5 -1
- package/auto-complete/style.css +1 -1
- package/avatar/index.es.js +77 -81
- package/avatar/index.umd.js +1 -1
- package/badge/index.es.js +1 -1
- package/badge/index.umd.js +1 -1
- package/badge/style.css +1 -1
- package/button/index.es.js +43 -43
- package/button/index.umd.js +1 -1
- package/card/index.es.js +3 -6
- package/card/index.umd.js +1 -1
- package/checkbox/index.es.js +5 -11
- package/checkbox/index.umd.js +1 -1
- package/comment/index.es.js +2 -5
- package/comment/index.umd.js +1 -1
- package/countdown/index.es.js +5 -7
- package/countdown/index.umd.js +1 -1
- package/editable-select/index.es.js +124 -168
- package/editable-select/index.umd.js +1 -1
- package/fullscreen/index.es.js +13 -16
- package/fullscreen/index.umd.js +1 -1
- package/grid/index.es.js +30 -36
- package/grid/index.umd.js +1 -1
- package/icon/index.es.js +39 -57
- package/icon/index.umd.js +1 -1
- package/image-preview/index.es.js +21 -20
- package/image-preview/index.umd.js +1 -1
- package/input/index.es.js +2 -5
- package/input/index.umd.js +1 -1
- package/layout/index.es.js +6 -21
- package/layout/index.umd.js +1 -1
- package/loading/index.es.js +20 -12
- package/loading/index.umd.js +1 -1
- package/modal/index.es.js +135 -122
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/notification/index.es.js +38 -40
- package/notification/index.umd.js +1 -1
- package/nuxt/components/DropdownPropsKey.js +3 -0
- package/nuxt/components/PanelBody.js +3 -0
- package/nuxt/components/PanelFooter.js +3 -0
- package/nuxt/components/PanelHeader.js +3 -0
- package/nuxt/components/Timeline.js +3 -0
- package/nuxt/components/TimelineItem.js +3 -0
- package/nuxt/components/alertProps.js +3 -0
- package/nuxt/components/autoCompleteProps.js +3 -0
- package/nuxt/components/avatarProps.js +3 -0
- package/nuxt/components/cardProps.js +3 -0
- package/nuxt/components/checkboxGroupInjectionKey.js +3 -0
- package/nuxt/components/checkboxGroupProps.js +3 -0
- package/nuxt/components/checkboxProps.js +3 -0
- package/nuxt/components/colProps.js +3 -0
- package/nuxt/components/colPropsBaseClass.js +3 -0
- package/nuxt/components/colPropsBaseStyle.js +3 -0
- package/nuxt/components/commentProps.js +3 -0
- package/nuxt/components/countdownProps.js +3 -0
- package/nuxt/components/editableSelectProps.js +3 -0
- package/nuxt/components/fullscreenProps.js +3 -0
- package/nuxt/components/iconProps.js +2 -0
- package/nuxt/components/imagePreviewProps.js +3 -0
- package/nuxt/components/inputProps.js +3 -0
- package/nuxt/components/paginationProps.js +3 -0
- package/nuxt/components/panelProps.js +3 -0
- package/nuxt/components/progressProps.js +3 -0
- package/nuxt/components/rateProps.js +3 -0
- package/nuxt/components/readTipProps.js +3 -0
- package/nuxt/components/resultProps.js +3 -0
- package/nuxt/components/rowProps.js +3 -0
- package/nuxt/components/screenSizes.js +3 -0
- package/nuxt/components/searchProps.js +3 -0
- package/nuxt/components/skeletonProps.js +3 -0
- package/nuxt/components/splitterProps.js +3 -0
- package/nuxt/components/statisticProps.js +3 -0
- package/nuxt/components/switchProps.js +3 -0
- package/nuxt/components/tagInputProps.js +3 -0
- package/nuxt/components/tagProps.js +3 -0
- package/nuxt/components/textareaProps.js +3 -0
- package/nuxt/components/timeAxisProps.js +3 -0
- package/overlay/index.es.js +49 -42
- package/overlay/index.umd.js +1 -1
- package/overlay/style.css +1 -1
- package/package.json +8 -43
- package/pagination/index.es.js +24 -25
- package/pagination/index.umd.js +1 -1
- package/panel/index.es.js +45 -32
- package/panel/index.umd.js +1 -1
- package/popover/index.es.js +51 -44
- package/popover/index.umd.js +12 -12
- package/popover/style.css +1 -1
- package/progress/index.es.js +34 -36
- package/progress/index.umd.js +3 -3
- package/progress/style.css +1 -1
- package/radio/index.es.js +11 -11
- package/radio/index.umd.js +1 -1
- package/radio/style.css +1 -1
- package/rate/index.es.js +4 -7
- package/rate/index.umd.js +1 -1
- package/read-tip/index.es.js +8 -8
- package/read-tip/index.umd.js +1 -1
- package/result/index.es.js +40 -58
- package/result/index.umd.js +1 -1
- package/ripple/index.es.js +47 -42
- package/ripple/index.umd.js +1 -1
- package/search/index.es.js +13 -16
- package/search/index.umd.js +8 -8
- package/skeleton/index.es.js +20 -23
- package/skeleton/index.umd.js +1 -1
- package/slider/index.es.js +60 -59
- package/slider/index.umd.js +1 -1
- package/splitter/index.es.js +223 -171
- package/splitter/index.umd.js +13 -13
- package/splitter/style.css +1 -1
- package/statistic/index.es.js +7 -18
- package/statistic/index.umd.js +1 -1
- package/status/index.es.js +1 -4
- package/status/index.umd.js +1 -1
- package/status/style.css +1 -1
- package/style.css +1 -1
- package/switch/index.es.js +3 -6
- package/switch/index.umd.js +1 -1
- package/tag/index.es.js +15 -18
- package/tag/index.umd.js +1 -1
- package/tag/style.css +1 -1
- package/tag-input/index.es.js +7 -8
- package/tag-input/index.umd.js +1 -1
- package/textarea/index.es.js +2 -5
- package/textarea/index.umd.js +1 -1
- package/{accordion → timeline}/index.d.ts +0 -0
- package/{time-axis → timeline}/index.es.js +64 -83
- package/timeline/index.umd.js +1 -0
- package/{anchor → timeline}/package.json +1 -1
- package/timeline/style.css +1 -0
- package/upload/index.es.js +98 -97
- package/upload/index.umd.js +1 -1
- package/vue-devui.es.js +12477 -24991
- package/vue-devui.umd.js +24 -20
- package/accordion/index.es.js +0 -720
- package/accordion/index.umd.js +0 -1
- package/accordion/package.json +0 -7
- package/accordion/style.css +0 -1
- package/anchor/index.d.ts +0 -7
- package/anchor/index.es.js +0 -263
- package/anchor/index.umd.js +0 -1
- package/anchor/style.css +0 -1
- package/back-top/index.d.ts +0 -7
- package/back-top/index.es.js +0 -128
- package/back-top/index.umd.js +0 -1
- package/back-top/package.json +0 -7
- package/back-top/style.css +0 -1
- package/breadcrumb/index.d.ts +0 -7
- package/breadcrumb/index.es.js +0 -127
- package/breadcrumb/index.umd.js +0 -1
- package/breadcrumb/package.json +0 -7
- package/breadcrumb/style.css +0 -1
- package/carousel/index.d.ts +0 -7
- package/carousel/index.es.js +0 -329
- package/carousel/index.umd.js +0 -1
- package/carousel/package.json +0 -7
- package/carousel/style.css +0 -1
- package/cascader/index.d.ts +0 -7
- package/cascader/index.es.js +0 -5963
- package/cascader/index.umd.js +0 -27
- package/cascader/package.json +0 -7
- package/cascader/style.css +0 -1
- package/color-picker/index.d.ts +0 -7
- package/color-picker/index.es.js +0 -8187
- package/color-picker/index.umd.js +0 -27
- package/color-picker/package.json +0 -7
- package/color-picker/style.css +0 -1
- package/date-picker/index.d.ts +0 -7
- package/date-picker/index.es.js +0 -1171
- package/date-picker/index.umd.js +0 -1
- package/date-picker/package.json +0 -7
- package/date-picker/style.css +0 -1
- package/dragdrop/index.d.ts +0 -7
- package/dragdrop/index.es.js +0 -157
- package/dragdrop/index.umd.js +0 -1
- package/dragdrop/package.json +0 -7
- package/drawer/index.d.ts +0 -7
- package/drawer/index.es.js +0 -234
- package/drawer/index.umd.js +0 -1
- package/drawer/package.json +0 -7
- package/drawer/style.css +0 -1
- package/dropdown/index.d.ts +0 -7
- package/dropdown/index.es.js +0 -638
- package/dropdown/index.umd.js +0 -1
- package/dropdown/package.json +0 -7
- package/dropdown/style.css +0 -1
- package/form/index.d.ts +0 -7
- package/form/index.es.js +0 -7865
- package/form/index.umd.js +0 -27
- package/form/package.json +0 -7
- package/form/style.css +0 -1
- package/gantt/index.d.ts +0 -7
- package/gantt/index.es.js +0 -523
- package/gantt/index.umd.js +0 -1
- package/gantt/package.json +0 -7
- package/gantt/style.css +0 -1
- package/input-icon/index.d.ts +0 -7
- package/input-icon/index.es.js +0 -331
- package/input-icon/index.umd.js +0 -1
- package/input-icon/package.json +0 -7
- package/input-icon/style.css +0 -1
- package/input-number/index.d.ts +0 -7
- package/input-number/index.es.js +0 -240
- package/input-number/index.umd.js +0 -1
- package/input-number/package.json +0 -7
- package/input-number/style.css +0 -1
- package/list/index.d.ts +0 -7
- package/list/index.es.js +0 -39
- package/list/index.umd.js +0 -1
- package/list/package.json +0 -7
- package/list/style.css +0 -1
- package/nav-sprite/index.d.ts +0 -7
- package/nav-sprite/index.es.js +0 -68
- package/nav-sprite/index.umd.js +0 -1
- package/nav-sprite/package.json +0 -7
- package/nuxt/components/Accordion.js +0 -3
- package/nuxt/components/Anchor.js +0 -3
- package/nuxt/components/BackTop.js +0 -3
- package/nuxt/components/Breadcrumb.js +0 -3
- package/nuxt/components/Carousel.js +0 -3
- package/nuxt/components/CarouselItem.js +0 -3
- package/nuxt/components/Cascader.js +0 -3
- package/nuxt/components/ColorPicker.js +0 -3
- package/nuxt/components/Column.js +0 -3
- package/nuxt/components/DatePicker.js +0 -3
- package/nuxt/components/Drawer.js +0 -3
- package/nuxt/components/DrawerService.js +0 -3
- package/nuxt/components/Dropdown.js +0 -3
- package/nuxt/components/DropdownMenu.js +0 -3
- package/nuxt/components/Form.js +0 -3
- package/nuxt/components/FormControl.js +0 -3
- package/nuxt/components/FormItem.js +0 -3
- package/nuxt/components/FormLabel.js +0 -3
- package/nuxt/components/FormOperation.js +0 -3
- package/nuxt/components/Gantt.js +0 -3
- package/nuxt/components/InputIcon.js +0 -3
- package/nuxt/components/InputNumber.js +0 -3
- package/nuxt/components/List.js +0 -3
- package/nuxt/components/ListItem.js +0 -3
- package/nuxt/components/NavSprite.js +0 -2
- package/nuxt/components/QuadrantDiagram.js +0 -3
- package/nuxt/components/Select.js +0 -3
- package/nuxt/components/StepsGuide.js +0 -3
- package/nuxt/components/StickSlider.js +0 -3
- package/nuxt/components/Sticky.js +0 -2
- package/nuxt/components/Table.js +0 -3
- package/nuxt/components/Tabs.js +0 -3
- package/nuxt/components/TimeAxis.js +0 -3
- package/nuxt/components/TimeAxisItem.js +0 -3
- package/nuxt/components/TimePicker.js +0 -3
- package/nuxt/components/Tooltip.js +0 -3
- package/nuxt/components/Transfer.js +0 -3
- package/nuxt/components/Tree.js +0 -3
- package/nuxt/components/TreeSelect.js +0 -3
- package/nuxt/components/dropdownMenuProps.js +0 -3
- package/nuxt/components/tooltipProps.js +0 -3
- package/quadrant-diagram/index.d.ts +0 -7
- package/quadrant-diagram/index.es.js +0 -5728
- package/quadrant-diagram/index.umd.js +0 -27
- package/quadrant-diagram/package.json +0 -7
- package/quadrant-diagram/style.css +0 -1
- package/select/index.d.ts +0 -7
- package/select/index.es.js +0 -706
- package/select/index.umd.js +0 -1
- package/select/package.json +0 -7
- package/select/style.css +0 -1
- package/steps-guide/index.d.ts +0 -7
- package/steps-guide/index.es.js +0 -239
- package/steps-guide/index.umd.js +0 -1
- package/steps-guide/package.json +0 -7
- package/steps-guide/style.css +0 -1
- package/sticky/index.d.ts +0 -7
- package/sticky/index.es.js +0 -197
- package/sticky/index.umd.js +0 -1
- package/sticky/package.json +0 -7
- package/table/index.d.ts +0 -7
- package/table/index.es.js +0 -1969
- package/table/index.umd.js +0 -1
- package/table/package.json +0 -7
- package/table/style.css +0 -1
- package/tabs/index.d.ts +0 -7
- package/tabs/index.es.js +0 -194
- package/tabs/index.umd.js +0 -1
- package/tabs/package.json +0 -7
- package/tabs/style.css +0 -1
- package/time-axis/index.d.ts +0 -7
- package/time-axis/index.umd.js +0 -1
- package/time-axis/package.json +0 -7
- package/time-axis/style.css +0 -1
- package/time-picker/index.d.ts +0 -7
- package/time-picker/index.es.js +0 -1237
- package/time-picker/index.umd.js +0 -1
- package/time-picker/package.json +0 -7
- package/time-picker/style.css +0 -1
- package/tooltip/index.d.ts +0 -7
- package/tooltip/index.es.js +0 -5828
- package/tooltip/index.umd.js +0 -27
- package/tooltip/package.json +0 -7
- package/tooltip/style.css +0 -1
- package/transfer/index.d.ts +0 -7
- package/transfer/index.es.js +0 -7608
- package/transfer/index.umd.js +0 -27
- package/transfer/package.json +0 -7
- package/transfer/style.css +0 -1
- package/tree/index.d.ts +0 -7
- package/tree/index.es.js +0 -6490
- package/tree/index.umd.js +0 -27
- package/tree/package.json +0 -7
- package/tree/style.css +0 -1
- package/tree-select/index.d.ts +0 -7
- package/tree-select/index.es.js +0 -623
- package/tree-select/index.umd.js +0 -1
- package/tree-select/package.json +0 -7
- package/tree-select/style.css +0 -1
|
@@ -18,9 +18,14 @@ var __publicField = (obj, key, value) => {
|
|
|
18
18
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
19
19
|
return value;
|
|
20
20
|
};
|
|
21
|
-
import { ref, nextTick, defineComponent, createVNode, h, render, inject, withDirectives, createTextVNode, resolveDirective, vShow, watch, onUnmounted,
|
|
22
|
-
import { offset, autoPlacement, arrow, computePosition } from "@floating-ui/dom";
|
|
23
|
-
const defaultFormatter = (item) =>
|
|
21
|
+
import { ref, nextTick, defineComponent, createVNode, h, render, inject, withDirectives, createTextVNode, resolveDirective, vShow, unref, watch, onUnmounted, mergeProps, toRefs, provide, Teleport, Transition, isVNode } from "vue";
|
|
22
|
+
import { shift, offset, autoPlacement, arrow, computePosition } from "@floating-ui/dom";
|
|
23
|
+
const defaultFormatter = (item) => {
|
|
24
|
+
if (typeof item === "string") {
|
|
25
|
+
return item;
|
|
26
|
+
}
|
|
27
|
+
return item !== null ? item.label || item.toString() : "";
|
|
28
|
+
};
|
|
24
29
|
const defaultValueParse = (item) => item;
|
|
25
30
|
const autoCompleteProps = {
|
|
26
31
|
modelValue: {
|
|
@@ -39,14 +44,9 @@ const autoCompleteProps = {
|
|
|
39
44
|
type: Boolean,
|
|
40
45
|
default: false
|
|
41
46
|
},
|
|
42
|
-
|
|
43
|
-
type:
|
|
44
|
-
default:
|
|
45
|
-
originX: "left",
|
|
46
|
-
originY: "bottom",
|
|
47
|
-
overlayX: "left",
|
|
48
|
-
overlayY: "top"
|
|
49
|
-
})
|
|
47
|
+
position: {
|
|
48
|
+
type: Array,
|
|
49
|
+
default: ["bottom-end"]
|
|
50
50
|
},
|
|
51
51
|
disabled: {
|
|
52
52
|
type: Boolean,
|
|
@@ -92,9 +92,9 @@ const autoCompleteProps = {
|
|
|
92
92
|
type: Boolean,
|
|
93
93
|
default: false
|
|
94
94
|
},
|
|
95
|
-
|
|
95
|
+
width: {
|
|
96
96
|
type: Number,
|
|
97
|
-
default:
|
|
97
|
+
default: 400
|
|
98
98
|
},
|
|
99
99
|
showAnimation: {
|
|
100
100
|
type: Boolean,
|
|
@@ -121,32 +121,32 @@ const DropdownPropsKey = Symbol("DropdownPropsKey");
|
|
|
121
121
|
function useCustomTemplate(ctx2, modelValue) {
|
|
122
122
|
const itemTemplate = (item, index2) => {
|
|
123
123
|
const arr = { item, index: index2 };
|
|
124
|
-
if (ctx2.slots.
|
|
125
|
-
return ctx2.slots.
|
|
124
|
+
if (ctx2.slots.item) {
|
|
125
|
+
return ctx2.slots.item(arr);
|
|
126
126
|
}
|
|
127
127
|
return null;
|
|
128
128
|
};
|
|
129
129
|
const noResultItemTemplate = () => {
|
|
130
|
-
if (ctx2.slots.
|
|
131
|
-
return ctx2.slots.
|
|
130
|
+
if (ctx2.slots.nothing) {
|
|
131
|
+
return ctx2.slots.nothing(modelValue.value);
|
|
132
132
|
}
|
|
133
133
|
return null;
|
|
134
134
|
};
|
|
135
135
|
const searchingTemplate = () => {
|
|
136
|
-
if (ctx2.slots.
|
|
137
|
-
return ctx2.slots.
|
|
136
|
+
if (ctx2.slots.searching) {
|
|
137
|
+
return ctx2.slots.searching(modelValue.value);
|
|
138
138
|
}
|
|
139
139
|
return null;
|
|
140
140
|
};
|
|
141
141
|
const customRenderSolts = () => {
|
|
142
142
|
const slots = {};
|
|
143
|
-
if (ctx2.slots.
|
|
143
|
+
if (ctx2.slots.item) {
|
|
144
144
|
slots["itemTemplate"] = itemTemplate;
|
|
145
145
|
}
|
|
146
|
-
if (ctx2.slots.
|
|
146
|
+
if (ctx2.slots.nothing) {
|
|
147
147
|
slots["noResultItemTemplate"] = noResultItemTemplate;
|
|
148
148
|
}
|
|
149
|
-
if (ctx2.slots.
|
|
149
|
+
if (ctx2.slots.searching) {
|
|
150
150
|
slots["searchingTemplate"] = searchingTemplate;
|
|
151
151
|
}
|
|
152
152
|
return slots;
|
|
@@ -156,8 +156,19 @@ function useCustomTemplate(ctx2, modelValue) {
|
|
|
156
156
|
function useSearchFn(ctx2, allowEmptyValueSearch, source, searchFn, formatter) {
|
|
157
157
|
const searchList = ref([]);
|
|
158
158
|
const showNoResultItemTemplate = ref(false);
|
|
159
|
-
const
|
|
160
|
-
|
|
159
|
+
const defaultSearchFn = (term) => {
|
|
160
|
+
const arr = [];
|
|
161
|
+
source.value.forEach((item) => {
|
|
162
|
+
let cur = formatter.value(item);
|
|
163
|
+
cur = cur.toLowerCase();
|
|
164
|
+
if (cur.startsWith(term)) {
|
|
165
|
+
arr.push(item);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
return arr;
|
|
169
|
+
};
|
|
170
|
+
const handleSearch = async (term, enableLazyLoad = false) => {
|
|
171
|
+
if (term === "" && !allowEmptyValueSearch.value) {
|
|
161
172
|
searchList.value = [];
|
|
162
173
|
showNoResultItemTemplate.value = false;
|
|
163
174
|
return;
|
|
@@ -167,18 +178,12 @@ function useSearchFn(ctx2, allowEmptyValueSearch, source, searchFn, formatter) {
|
|
|
167
178
|
if (enableLazyLoad) {
|
|
168
179
|
arr = source.value;
|
|
169
180
|
} else if (!searchFn.value) {
|
|
170
|
-
|
|
171
|
-
let cur = formatter.value(item);
|
|
172
|
-
cur = cur.toLowerCase();
|
|
173
|
-
if (cur.startsWith(term)) {
|
|
174
|
-
arr.push(item);
|
|
175
|
-
}
|
|
176
|
-
});
|
|
181
|
+
arr = defaultSearchFn(term);
|
|
177
182
|
} else {
|
|
178
183
|
arr = await searchFn.value(term);
|
|
179
184
|
}
|
|
180
185
|
searchList.value = arr;
|
|
181
|
-
if (searchList.value.length
|
|
186
|
+
if (searchList.value.length === 0) {
|
|
182
187
|
showNoResultItemTemplate.value = true;
|
|
183
188
|
} else {
|
|
184
189
|
showNoResultItemTemplate.value = false;
|
|
@@ -202,13 +207,13 @@ function useInputHandle(ctx2, searchList, showNoResultItemTemplate, modelValue,
|
|
|
202
207
|
const searchStatus = ref(false);
|
|
203
208
|
const debounce = (cb, time) => {
|
|
204
209
|
let timer;
|
|
205
|
-
return (
|
|
210
|
+
return (arg) => {
|
|
206
211
|
if (timer) {
|
|
207
212
|
clearTimeout(timer);
|
|
208
213
|
}
|
|
209
214
|
timer = setTimeout(async () => {
|
|
210
215
|
searchStatus.value = true;
|
|
211
|
-
await cb(
|
|
216
|
+
await cb(arg);
|
|
212
217
|
searchStatus.value = false;
|
|
213
218
|
}, time);
|
|
214
219
|
};
|
|
@@ -227,7 +232,7 @@ function useInputHandle(ctx2, searchList, showNoResultItemTemplate, modelValue,
|
|
|
227
232
|
};
|
|
228
233
|
const onFocus = () => {
|
|
229
234
|
handleSearch(modelValue.value);
|
|
230
|
-
recentlyFocus(latestSource.value);
|
|
235
|
+
recentlyFocus(latestSource == null ? void 0 : latestSource.value);
|
|
231
236
|
transInputFocusEmit.value && transInputFocusEmit.value();
|
|
232
237
|
};
|
|
233
238
|
const handleClose = () => {
|
|
@@ -241,7 +246,7 @@ function useInputHandle(ctx2, searchList, showNoResultItemTemplate, modelValue,
|
|
|
241
246
|
handleClose();
|
|
242
247
|
} else {
|
|
243
248
|
visible.value = true;
|
|
244
|
-
if (ctx2.slots.noResultItemTemplate && searchList.value.length
|
|
249
|
+
if (ctx2.slots.noResultItemTemplate && searchList.value.length === 0 && modelValue.value.trim() !== "") {
|
|
245
250
|
showNoResultItemTemplate.value = true;
|
|
246
251
|
}
|
|
247
252
|
}
|
|
@@ -259,12 +264,23 @@ function useInputHandle(ctx2, searchList, showNoResultItemTemplate, modelValue,
|
|
|
259
264
|
}
|
|
260
265
|
function useSelectHandle(ctx2, searchList, selectValue, handleSearch, formatter, handleClose) {
|
|
261
266
|
const selectedIndex = ref(0);
|
|
262
|
-
const getListIndex = (
|
|
263
|
-
if (searchList.value.length
|
|
267
|
+
const getListIndex = (cur) => {
|
|
268
|
+
if (searchList.value.length === 0) {
|
|
264
269
|
return 0;
|
|
265
270
|
}
|
|
266
|
-
|
|
267
|
-
|
|
271
|
+
let ind = 0;
|
|
272
|
+
searchList.value.forEach((item, index2) => {
|
|
273
|
+
if (typeof item === "string") {
|
|
274
|
+
if (item === cur) {
|
|
275
|
+
ind = index2;
|
|
276
|
+
}
|
|
277
|
+
} else {
|
|
278
|
+
if (String(item.label) === cur) {
|
|
279
|
+
ind = index2;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
return ind === -1 ? 0 : ind;
|
|
268
284
|
};
|
|
269
285
|
const selectOptionClick = async (item) => {
|
|
270
286
|
const cur = formatter.value(item);
|
|
@@ -272,7 +288,7 @@ function useSelectHandle(ctx2, searchList, selectValue, handleSearch, formatter,
|
|
|
272
288
|
handleClose();
|
|
273
289
|
await handleSearch(cur);
|
|
274
290
|
selectedIndex.value = getListIndex(cur);
|
|
275
|
-
selectValue.value && selectValue.value();
|
|
291
|
+
selectValue.value && selectValue.value(cur);
|
|
276
292
|
};
|
|
277
293
|
return {
|
|
278
294
|
selectedIndex,
|
|
@@ -283,8 +299,9 @@ function useLazyHandle(props, ctx2, handleSearch) {
|
|
|
283
299
|
const showLoading = ref(false);
|
|
284
300
|
const dropDownRef = ref();
|
|
285
301
|
const loadMore = () => {
|
|
286
|
-
if (!props.enableLazyLoad && showLoading)
|
|
302
|
+
if (!props.enableLazyLoad && showLoading) {
|
|
287
303
|
return;
|
|
304
|
+
}
|
|
288
305
|
const dropDownValue = dropDownRef.value;
|
|
289
306
|
const height = dropDownValue.scrollHeight;
|
|
290
307
|
const scrollTop = dropDownValue.clientHeight + dropDownValue.scrollTop;
|
|
@@ -293,11 +310,11 @@ function useLazyHandle(props, ctx2, handleSearch) {
|
|
|
293
310
|
showLoading.value = true;
|
|
294
311
|
}
|
|
295
312
|
};
|
|
296
|
-
ctx2.expose({ loadFinish });
|
|
297
313
|
async function loadFinish() {
|
|
298
314
|
await handleSearch(props.modelValue, props.enableLazyLoad);
|
|
299
315
|
showLoading.value = false;
|
|
300
316
|
}
|
|
317
|
+
ctx2.expose({ loadFinish });
|
|
301
318
|
return {
|
|
302
319
|
showLoading,
|
|
303
320
|
dropDownRef,
|
|
@@ -452,8 +469,8 @@ var Loading = defineComponent({
|
|
|
452
469
|
}
|
|
453
470
|
});
|
|
454
471
|
const COMPONENT_CONTAINER_SYMBOL = Symbol("dev_component_container");
|
|
455
|
-
function createComponent(
|
|
456
|
-
const vnode = h(
|
|
472
|
+
function createComponent(component, props, children = null) {
|
|
473
|
+
const vnode = h(component, __spreadValues({}, props), children);
|
|
457
474
|
const container = document.createElement("div");
|
|
458
475
|
vnode[COMPONENT_CONTAINER_SYMBOL] = container;
|
|
459
476
|
render(vnode, container);
|
|
@@ -533,13 +550,14 @@ const removeAttribute = (el) => {
|
|
|
533
550
|
el.removeAttribute("loadingtemplateref");
|
|
534
551
|
};
|
|
535
552
|
const handleProps = (el, vprops) => {
|
|
553
|
+
var _a;
|
|
536
554
|
const props = __spreadValues(__spreadValues({}, new LoadingProps()), vprops);
|
|
537
555
|
const loadingTemplateRef = props.loadingTemplateRef;
|
|
538
556
|
const loadingInstance = createComponent(loadingConstructor, __spreadValues({}, props), loadingTemplateRef ? () => loadingTemplateRef : null);
|
|
539
557
|
el.style.position = props.positionType;
|
|
540
558
|
el.options = props;
|
|
541
559
|
el.instance = loadingInstance;
|
|
542
|
-
el.mask = loadingInstance.proxy.$el;
|
|
560
|
+
el.mask = (_a = loadingInstance == null ? void 0 : loadingInstance.proxy) == null ? void 0 : _a.$el;
|
|
543
561
|
};
|
|
544
562
|
const loadingDirective = {
|
|
545
563
|
mounted: function(el, binding, vnode) {
|
|
@@ -574,25 +592,26 @@ var DAutoCompleteDropdown = defineComponent({
|
|
|
574
592
|
showNoResultItemTemplate,
|
|
575
593
|
latestSource,
|
|
576
594
|
modelValue,
|
|
577
|
-
hoverIndex
|
|
595
|
+
hoverIndex,
|
|
596
|
+
valueParser
|
|
578
597
|
} = propsData;
|
|
579
598
|
const {
|
|
580
599
|
disabled,
|
|
581
600
|
maxHeight,
|
|
582
|
-
appendToBody,
|
|
583
601
|
formatter,
|
|
584
602
|
disabledKey,
|
|
585
603
|
isSearching
|
|
586
604
|
} = propsData.props;
|
|
587
605
|
const onSelect = (item) => {
|
|
588
|
-
|
|
606
|
+
item = valueParser.value(item);
|
|
607
|
+
if (typeof item === "object" && item[disabledKey]) {
|
|
589
608
|
return;
|
|
590
609
|
}
|
|
591
610
|
selectOptionClick(item);
|
|
592
611
|
};
|
|
593
612
|
return () => {
|
|
594
613
|
return withDirectives(createVNode("div", {
|
|
595
|
-
"class": ["devui-dropdown-menu",
|
|
614
|
+
"class": ["devui-dropdown-menu", "devui-dropdown-menu-cdk", disabled && "disabled", latestSource.value && "devui-dropdown-latestSource"]
|
|
596
615
|
}, [createVNode("ul", {
|
|
597
616
|
"ref": dropDownRef,
|
|
598
617
|
"class": "devui-list-unstyled scroll-height",
|
|
@@ -600,28 +619,28 @@ var DAutoCompleteDropdown = defineComponent({
|
|
|
600
619
|
maxHeight: `${maxHeight}px`
|
|
601
620
|
},
|
|
602
621
|
"onScroll": loadMore
|
|
603
|
-
}, [isSearching && ctx2.slots.searchingTemplate && searchStatus.value && createVNode("li", {
|
|
622
|
+
}, [isSearching && ctx2.slots.searchingTemplate && (searchStatus == null ? void 0 : searchStatus.value) && createVNode("li", {
|
|
604
623
|
"class": "devui-is-searching-template"
|
|
605
624
|
}, [createVNode("div", {
|
|
606
625
|
"class": "devui-no-data-tip"
|
|
607
626
|
}, [ctx2.slots.searchingTemplate()])]), latestSource.value && !modelValue.value && createVNode("li", {
|
|
608
627
|
"class": "devui-popup-tips"
|
|
609
|
-
}, [createTextVNode("\u6700\u8FD1\u8F93\u5165")]), !showNoResultItemTemplate.value && !searchStatus.value && searchList != null && searchList.value.length > 0 && searchList.value.map((item, index2) => {
|
|
628
|
+
}, [createTextVNode("\u6700\u8FD1\u8F93\u5165")]), !showNoResultItemTemplate.value && !(searchStatus == null ? void 0 : searchStatus.value) && searchList != null && searchList.value.length > 0 && searchList.value.map((item, index2) => {
|
|
610
629
|
return createVNode("li", {
|
|
611
630
|
"onClick": () => onSelect(item),
|
|
612
|
-
"class": ["devui-dropdown-item", selectedIndex.value
|
|
613
|
-
"disabled": disabledKey && item[disabledKey]
|
|
631
|
+
"class": ["devui-dropdown-item", selectedIndex.value === index2 && "selected", {
|
|
632
|
+
"disabled": disabledKey && typeof item === "object" && item[disabledKey]
|
|
614
633
|
}, {
|
|
615
|
-
"devui-dropdown-bg": hoverIndex.value
|
|
634
|
+
"devui-dropdown-bg": hoverIndex.value === index2
|
|
616
635
|
}],
|
|
617
636
|
"title": formatter(item),
|
|
618
637
|
"key": formatter(item)
|
|
619
638
|
}, [ctx2.slots.itemTemplate ? ctx2.slots.itemTemplate(item, index2) : formatter(item)]);
|
|
620
|
-
}), !searchStatus.value && searchList.value.length
|
|
639
|
+
}), !(searchStatus == null ? void 0 : searchStatus.value) && searchList.value.length === 0 && ctx2.slots.noResultItemTemplate && showNoResultItemTemplate.value && createVNode("li", {
|
|
621
640
|
"class": "devui-no-result-template"
|
|
622
641
|
}, [createVNode("div", {
|
|
623
642
|
"class": "devui-no-data-tip"
|
|
624
|
-
}, [ctx2.slots.noResultItemTemplate()])])])]), [[resolveDirective("dLoading"), showLoading.value], [vShow, visible.value && searchList.value.length > 0 || ctx2.slots.noResultItemTemplate && showNoResultItemTemplate.value || isSearching && ctx2.slots.searchingTemplate && searchStatus.value]]);
|
|
643
|
+
}, [ctx2.slots.noResultItemTemplate()])])])]), [[resolveDirective("dLoading"), showLoading.value], [vShow, visible.value && searchList.value.length > 0 || ctx2.slots.noResultItemTemplate && showNoResultItemTemplate.value || isSearching && ctx2.slots.searchingTemplate && (searchStatus == null ? void 0 : searchStatus.value)]]);
|
|
625
644
|
};
|
|
626
645
|
}
|
|
627
646
|
});
|
|
@@ -742,6 +761,7 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
|
|
|
742
761
|
function useOverlay(props, emit) {
|
|
743
762
|
const overlayRef = ref();
|
|
744
763
|
const arrowRef = ref();
|
|
764
|
+
let originParent = null;
|
|
745
765
|
const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
|
|
746
766
|
const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
|
|
747
767
|
const staticSide = {
|
|
@@ -763,6 +783,7 @@ function useOverlay(props, emit) {
|
|
|
763
783
|
const overlayEl = unref(overlayRef.value);
|
|
764
784
|
const arrowEl = unref(arrowRef.value);
|
|
765
785
|
const middleware = [
|
|
786
|
+
shift(),
|
|
766
787
|
offset(props.offset),
|
|
767
788
|
autoPlacement({
|
|
768
789
|
alignment: props.align,
|
|
@@ -779,25 +800,24 @@ function useOverlay(props, emit) {
|
|
|
779
800
|
props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
|
|
780
801
|
};
|
|
781
802
|
watch(() => props.modelValue, () => {
|
|
782
|
-
const originParent = getScrollParent(props.origin);
|
|
783
803
|
if (props.modelValue && props.origin) {
|
|
804
|
+
originParent = getScrollParent(props.origin);
|
|
784
805
|
nextTick(updatePosition);
|
|
785
|
-
originParent.addEventListener("scroll", updatePosition);
|
|
806
|
+
originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
|
|
786
807
|
originParent !== window && window.addEventListener("scroll", updatePosition);
|
|
787
808
|
window.addEventListener("resize", updatePosition);
|
|
788
809
|
} else {
|
|
789
|
-
originParent.removeEventListener("scroll", updatePosition);
|
|
810
|
+
originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
|
|
790
811
|
originParent !== window && window.removeEventListener("scroll", updatePosition);
|
|
791
812
|
window.removeEventListener("resize", updatePosition);
|
|
792
813
|
}
|
|
793
814
|
});
|
|
794
815
|
onUnmounted(() => {
|
|
795
|
-
|
|
796
|
-
originParent.removeEventListener("scroll", updatePosition);
|
|
816
|
+
originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
|
|
797
817
|
originParent !== window && window.removeEventListener("scroll", updatePosition);
|
|
798
818
|
window.removeEventListener("resize", updatePosition);
|
|
799
819
|
});
|
|
800
|
-
return { arrowRef, overlayRef };
|
|
820
|
+
return { arrowRef, overlayRef, updatePosition };
|
|
801
821
|
}
|
|
802
822
|
var flexibleOverlay = "";
|
|
803
823
|
const FlexibleOverlay = defineComponent({
|
|
@@ -808,12 +828,17 @@ const FlexibleOverlay = defineComponent({
|
|
|
808
828
|
setup(props, {
|
|
809
829
|
slots,
|
|
810
830
|
attrs,
|
|
811
|
-
emit
|
|
831
|
+
emit,
|
|
832
|
+
expose
|
|
812
833
|
}) {
|
|
813
834
|
const {
|
|
814
835
|
arrowRef,
|
|
815
|
-
overlayRef
|
|
836
|
+
overlayRef,
|
|
837
|
+
updatePosition
|
|
816
838
|
} = useOverlay(props, emit);
|
|
839
|
+
expose({
|
|
840
|
+
updatePosition
|
|
841
|
+
});
|
|
817
842
|
return () => {
|
|
818
843
|
var _a;
|
|
819
844
|
return props.modelValue && createVNode("div", mergeProps({
|
|
@@ -840,18 +865,19 @@ var AutoComplete = defineComponent({
|
|
|
840
865
|
const {
|
|
841
866
|
disabled,
|
|
842
867
|
modelValue,
|
|
843
|
-
|
|
844
|
-
dAutoCompleteWidth,
|
|
868
|
+
width,
|
|
845
869
|
delay,
|
|
846
870
|
allowEmptyValueSearch,
|
|
871
|
+
appendToBody,
|
|
847
872
|
formatter,
|
|
848
873
|
transInputFocusEmit,
|
|
849
874
|
selectValue,
|
|
850
875
|
source,
|
|
851
876
|
searchFn,
|
|
852
|
-
|
|
877
|
+
position,
|
|
853
878
|
latestSource,
|
|
854
|
-
showAnimation
|
|
879
|
+
showAnimation,
|
|
880
|
+
valueParser
|
|
855
881
|
} = toRefs(props);
|
|
856
882
|
const {
|
|
857
883
|
handleSearch,
|
|
@@ -898,46 +924,63 @@ var AutoComplete = defineComponent({
|
|
|
898
924
|
latestSource,
|
|
899
925
|
modelValue,
|
|
900
926
|
showNoResultItemTemplate,
|
|
901
|
-
hoverIndex
|
|
927
|
+
hoverIndex,
|
|
928
|
+
valueParser
|
|
902
929
|
});
|
|
903
930
|
const origin = ref();
|
|
904
|
-
const position = reactive({
|
|
905
|
-
appendToBodyDirections: {}
|
|
906
|
-
});
|
|
907
|
-
position.appendToBodyDirections = appendToBodyDirections;
|
|
908
931
|
const renderDropdown = () => {
|
|
909
932
|
if (appendToBody.value) {
|
|
910
933
|
let _slot;
|
|
911
|
-
return createVNode(
|
|
912
|
-
"
|
|
913
|
-
"origin": origin,
|
|
914
|
-
"position": position.appendToBodyDirections,
|
|
915
|
-
"visible": visible.value,
|
|
916
|
-
"onUpdate:visible": ($event) => visible.value = $event
|
|
934
|
+
return createVNode(Teleport, {
|
|
935
|
+
"to": "body"
|
|
917
936
|
}, {
|
|
918
|
-
default: () => [createVNode(
|
|
919
|
-
"
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
937
|
+
default: () => [createVNode(Transition, {
|
|
938
|
+
"name": showAnimation ? "fade" : ""
|
|
939
|
+
}, {
|
|
940
|
+
default: () => [createVNode(FlexibleOverlay, {
|
|
941
|
+
"show-arrow": true,
|
|
942
|
+
"origin": origin.value,
|
|
943
|
+
"position": position.value,
|
|
944
|
+
"modelValue": visible.value,
|
|
945
|
+
"onUpdate:modelValue": ($event) => visible.value = $event
|
|
946
|
+
}, {
|
|
947
|
+
default: () => [createVNode("div", {
|
|
948
|
+
"class": "devui-auto-complete-menu",
|
|
949
|
+
"style": {
|
|
950
|
+
width: `
|
|
951
|
+
${width.value + "px"}
|
|
952
|
+
`
|
|
953
|
+
}
|
|
954
|
+
}, [createVNode(DAutoCompleteDropdown, null, _isSlot(_slot = customRenderSolts()) ? _slot : {
|
|
955
|
+
default: () => [_slot]
|
|
956
|
+
})])]
|
|
957
|
+
})]
|
|
958
|
+
})]
|
|
926
959
|
});
|
|
927
960
|
} else {
|
|
928
961
|
let _slot2;
|
|
929
|
-
return createVNode(
|
|
930
|
-
"class": "devui-dropdown",
|
|
931
|
-
"style": {
|
|
932
|
-
width: dAutoCompleteWidth.value > 0 && dAutoCompleteWidth.value + "px"
|
|
933
|
-
}
|
|
934
|
-
}, [createVNode(Transition, {
|
|
962
|
+
return createVNode(Transition, {
|
|
935
963
|
"name": showAnimation ? "fade" : ""
|
|
936
964
|
}, {
|
|
937
|
-
default: () => [createVNode(
|
|
938
|
-
|
|
965
|
+
default: () => [createVNode(FlexibleOverlay, {
|
|
966
|
+
"show-arrow": true,
|
|
967
|
+
"origin": origin.value,
|
|
968
|
+
"position": position.value,
|
|
969
|
+
"modelValue": visible.value,
|
|
970
|
+
"onUpdate:modelValue": ($event) => visible.value = $event
|
|
971
|
+
}, {
|
|
972
|
+
default: () => [createVNode("div", {
|
|
973
|
+
"class": "devui-auto-complete-menu",
|
|
974
|
+
"style": {
|
|
975
|
+
width: `
|
|
976
|
+
${width.value + "px"}
|
|
977
|
+
`
|
|
978
|
+
}
|
|
979
|
+
}, [createVNode(DAutoCompleteDropdown, null, _isSlot(_slot2 = customRenderSolts()) ? _slot2 : {
|
|
980
|
+
default: () => [_slot2]
|
|
981
|
+
})])]
|
|
939
982
|
})]
|
|
940
|
-
})
|
|
983
|
+
});
|
|
941
984
|
}
|
|
942
985
|
};
|
|
943
986
|
return () => {
|
|
@@ -945,7 +988,7 @@ var AutoComplete = defineComponent({
|
|
|
945
988
|
"class": ["devui-auto-complete", "devui-form-group", "devui-has-feedback", visible.value && "devui-select-open"],
|
|
946
989
|
"ref": origin,
|
|
947
990
|
"style": {
|
|
948
|
-
width:
|
|
991
|
+
width: `${width.value + "px"}`
|
|
949
992
|
}
|
|
950
993
|
}, [createVNode("input", {
|
|
951
994
|
"disabled": disabled.value,
|
|
@@ -962,15 +1005,12 @@ var AutoComplete = defineComponent({
|
|
|
962
1005
|
};
|
|
963
1006
|
}
|
|
964
1007
|
});
|
|
965
|
-
AutoComplete.install = function(app) {
|
|
966
|
-
app.component(AutoComplete.name, AutoComplete);
|
|
967
|
-
};
|
|
968
1008
|
var index = {
|
|
969
1009
|
title: "AutoComplete \u81EA\u52A8\u8865\u5168",
|
|
970
1010
|
category: "\u6570\u636E\u5F55\u5165",
|
|
971
1011
|
status: "100%",
|
|
972
1012
|
install(app) {
|
|
973
|
-
app.
|
|
1013
|
+
app.component(AutoComplete.name, AutoComplete);
|
|
974
1014
|
}
|
|
975
1015
|
};
|
|
976
|
-
export { AutoComplete, index as default };
|
|
1016
|
+
export { AutoComplete, DropdownPropsKey, autoCompleteProps, index as default };
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
var Pe=Object.defineProperty;var re=Object.getOwnPropertySymbols;var Oe=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable;var O=(p,t,m)=>t in p?Pe(p,t,{enumerable:!0,configurable:!0,writable:!0,value:m}):p[t]=m,E=(p,t)=>{for(var m in t||(t={}))Oe.call(t,m)&&O(p,m,t[m]);if(re)for(var m of re(t))je.call(t,m)&&O(p,m,t[m]);return p};var C=(p,t,m)=>(O(p,typeof t!="symbol"?t+"":t,m),m);(function(p,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],t):(p=typeof globalThis!="undefined"?globalThis:p||self,t(p.index={},p.Vue,p.dom))})(this,function(p,t,m){"use strict";const se={modelValue:{type:String,default:""},source:{type:Array,default:null},allowEmptyValueSearch:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},appendToBodyDirections:{type:Object,default:()=>({originX:"left",originY:"bottom",overlayX:"left",overlayY:"top"})},disabled:{type:Boolean,default:!1},delay:{type:Number,default:300},disabledKey:{type:String,default:null},formatter:{type:Function,default:e=>e?e.label||e.toString():""},isSearching:{type:Boolean,default:!1},sceneType:{type:String,default:null},searchFn:{type:Function,default:null},tipsText:{type:String,default:"\u6700\u8FD1\u8F93\u5165"},latestSource:{type:Array,default:null},valueParser:{type:Function,default:e=>e},enableLazyLoad:{type:Boolean,default:!1},dAutoCompleteWidth:{type:Number,default:null},showAnimation:{type:Boolean,default:!0},maxHeight:{type:Number,default:300},transInputFocusEmit:{type:Function,default:null},selectValue:{type:Function,default:null},loadMore:{type:Function,default:null}},j=Symbol("DropdownPropsKey");function ie(e,n){const o=(r,d)=>{const i={item:r,index:d};return e.slots.itemTemplate?e.slots.itemTemplate(i):null},l=()=>e.slots.noResultItemTemplate?e.slots.noResultItemTemplate(n.value):null,s=()=>e.slots.searchingTemplate?e.slots.searchingTemplate(n.value):null;return{customRenderSolts:()=>{const r={};return e.slots.itemTemplate&&(r.itemTemplate=o),e.slots.noResultItemTemplate&&(r.noResultItemTemplate=l),e.slots.searchingTemplate&&(r.searchingTemplate=s),r}}}function ue(e,n,o,l,s){const a=t.ref([]),r=t.ref(!1);return{handleSearch:async(u,c)=>{if(u==""&&!n.value){a.value=[],r.value=!1;return}let v=[];u=u.toLowerCase(),c?v=o.value:l.value?v=await l.value(u):o.value.forEach(f=>{let y=s.value(f);y=y.toLowerCase(),y.startsWith(u)&&v.push(f)}),a.value=v,a.value.length==0?r.value=!0:r.value=!1},recentlyFocus:u=>{u&&(a.value=u)},searchList:a,showNoResultItemTemplate:r}}function de(e,n,o,l,s,a,r,d,i,u){const c=t.ref(!1),v=t.ref(),f=t.ref(!1),h=((S,D)=>{let g;return(...b)=>{g&&clearTimeout(g),g=setTimeout(async()=>{f.value=!0,await S(...b),f.value=!1},D)}})(async S=>{await r(S),c.value=!0},a.value),T=S=>{const D=S.target;f.value=!1,o.value=!1,e.emit("update:modelValue",D.value),h(D.value)},A=()=>{r(l.value),i(u.value),d.value&&d.value()},V=()=>{c.value=!1,f.value=!1,o.value=!1};return{handleClose:V,toggleMenu:()=>{s.value||(c.value?V():(c.value=!0,e.slots.noResultItemTemplate&&n.value.length==0&&l.value.trim()!=""&&(o.value=!0)))},onInput:T,onFocus:A,inputRef:v,visible:c,searchStatus:f}}function ce(e,n,o,l,s,a){const r=t.ref(0),d=u=>{if(n.value.length==0)return 0;const c=n.value.indexOf(u);return c==-1?0:c};return{selectedIndex:r,selectOptionClick:async u=>{const c=s.value(u);e.emit("update:modelValue",c),a(),await l(c),r.value=d(c),o.value&&o.value()}}}function fe(e,n,o){const l=t.ref(!1),s=t.ref(),a=()=>{if(!e.enableLazyLoad&&l)return;const d=s.value,i=d.scrollHeight,u=d.clientHeight+d.scrollTop;u>=i&&u>=e.maxHeight&&(e.loadMore(),l.value=!0)};n.expose({loadFinish:r});async function r(){await o(e.modelValue,e.enableLazyLoad),l.value=!1}return{showLoading:l,dropDownRef:s,loadMore:a}}function pe(e,n,o,l,s,a,r,d){var v;const i=t.ref((v=l.value)!=null?v:0),u=f=>{const y=e.value,w=y.children[f];t.nextTick(()=>{if(w.scrollIntoViewIfNeeded)w.scrollIntoViewIfNeeded(!1);else{const h=y.getBoundingClientRect(),T=w.getBoundingClientRect();(T.bottom>h.bottom||T.top<h.top)&&w.scrollIntoView(!1)}})};return{hoverIndex:i,handlekeyDown:f=>{var h;const y=f.key||f.code;if(y==="Escape"&&(n.value&&o.value.length||s.value||a.value)){d();return}const w=n.value&&o.value.length&&!s.value&&!a.value;if(y==="ArrowDown"&&w){if(i.value===o.value.length-1){i.value=0,u(i.value);return}i.value=i.value+1,u(i.value)}else if(y==="ArrowUp"&&w){if(i.value===0){i.value=o.value.length-1,u(i.value);return}i.value=i.value-1,u(i.value)}if(y==="Enter"&&w){r(o.value[i.value]),i.value=(h=l.value)!=null?h:0;return}}}}var ze="";class M{constructor(){C(this,"top","50%");C(this,"left","50%")}}const ve={message:String,backdrop:Boolean,view:{type:Object,default:()=>new M},zIndex:Number,isFull:{type:Boolean,default:!1}};class me{constructor(){C(this,"target");C(this,"message");C(this,"loadingTemplateRef");C(this,"backdrop",!0);C(this,"positionType","relative");C(this,"view",new M);C(this,"zIndex")}}var _e="",ye=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:ve,setup(e){const n={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(n.background="none");const o=t.ref(!1);return{style:n,isShow:o,open:()=>{o.value=!0},close:()=>{o.value=!1}}},render(){var r;const{isShow:e,isFull:n,backdrop:o,style:l,message:s,$slots:a}=this;return e&&t.createVNode("div",{class:["devui-loading-contanier",n?"devui-loading--full":""]},[((r=a.default)==null?void 0:r.call(a))||t.createVNode("div",{class:"devui-loading-wrapper"},[o?t.createVNode("div",{class:"devui-loading-mask"},null):null,t.createVNode("div",{style:l,class:"devui-loading-area"},[t.createVNode("div",{class:"devui-busy-default-spinner"},[t.createVNode("div",{class:"devui-loading-bar1"},null),t.createVNode("div",{class:"devui-loading-bar2"},null),t.createVNode("div",{class:"devui-loading-bar3"},null),t.createVNode("div",{class:"devui-loading-bar4"},null)]),s?t.createVNode("span",{class:"devui-loading-text"},[s]):null])])])}});const H=Symbol("dev_component_container");function ge(e,n,o=null){const l=t.h(e,E({},n),o),s=document.createElement("div");return l[H]=s,t.render(l,s),l.component}function we(e){t.render(null,e==null?void 0:e.vnode[H])}const he=t.defineComponent(ye),F=new WeakSet,R=e=>{if(!e)return!0;if(Array.isArray(e))return e.length===0;if(e instanceof Set||e instanceof Map)return e.size===0;if(e instanceof Promise)return!1;if(typeof e=="object")try{return Object.keys(e).length===0}catch{return!1}return!1},z=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),be=e=>{switch(z(e)){case"promise":return[e];case"array":return e.some(o=>z(o)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},_=e=>{F.delete(e),e.instance.proxy.close(),we(e.instance)},K=(e,n)=>{if(n.value){const o=be(n.value);if(o==="error")return;e.instance.proxy.open(),e.appendChild(e.mask),F.add(e),o&&Promise.all(o).catch(l=>{console.error(new Error("Promise handling errors"),l)}).finally(()=>{_(e)})}else _(e)},$=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},W=(e,n)=>{const o=E(E({},new me),n),l=o.loadingTemplateRef,s=ge(he,E({},o),l?()=>l:null);e.style.position=o.positionType,e.options=o,e.instance=s,e.mask=s.proxy.$el},Te={mounted:function(e,n,o){W(e,o.props),$(e),!R(n.value)&&K(e,n)},updated:function(e,n,o){!R(n.value)&&F.has(e)||R(n.value)&&!F.has(e)||(!F.has(e)&&W(e,o.props),$(e),K(e,n))}};var Y=t.defineComponent({name:"DAutoCompleteDropdown",directives:{dLoading:Te},setup(e,n){const o=t.inject(j),{visible:l,selectedIndex:s,selectOptionClick:a,searchList:r,searchStatus:d,dropDownRef:i,loadMore:u,showLoading:c,showNoResultItemTemplate:v,latestSource:f,modelValue:y,hoverIndex:w}=o,{disabled:h,maxHeight:T,appendToBody:A,formatter:V,disabledKey:k,isSearching:S}=o.props,D=g=>{g[k]||a(g)};return()=>t.withDirectives(t.createVNode("div",{class:["devui-dropdown-menu",A&&"devui-dropdown-menu-cdk",h&&"disabled",f.value&&"devui-dropdown-latestSource"]},[t.createVNode("ul",{ref:i,class:"devui-list-unstyled scroll-height",style:{maxHeight:`${T}px`},onScroll:u},[S&&n.slots.searchingTemplate&&d.value&&t.createVNode("li",{class:"devui-is-searching-template"},[t.createVNode("div",{class:"devui-no-data-tip"},[n.slots.searchingTemplate()])]),f.value&&!y.value&&t.createVNode("li",{class:"devui-popup-tips"},[t.createTextVNode("\u6700\u8FD1\u8F93\u5165")]),!v.value&&!d.value&&r!=null&&r.value.length>0&&r.value.map((g,b)=>t.createVNode("li",{onClick:()=>D(g),class:["devui-dropdown-item",s.value==b&&"selected",{disabled:k&&g[k]},{"devui-dropdown-bg":w.value==b}],title:V(g),key:V(g)},[n.slots.itemTemplate?n.slots.itemTemplate(g,b):V(g)])),!d.value&&r.value.length==0&&n.slots.noResultItemTemplate&&v.value&&t.createVNode("li",{class:"devui-no-result-template"},[t.createVNode("div",{class:"devui-no-data-tip"},[n.slots.noResultItemTemplate()])])])]),[[t.resolveDirective("dLoading"),c.value],[t.vShow,l.value&&r.value.length>0||n.slots.noResultItemTemplate&&v.value||S&&n.slots.searchingTemplate&&d.value]])}});const Ve=typeof window!="undefined";function q(e,n,o){document.addEventListener?e&&n&&o&&e.addEventListener(n,o,!1):e&&n&&o&&e.attachEvent("on"+n,o)}const N=Symbol("@@clickoutside"),x=new Map;let U,B=0,X=!0;function G(e,n,o){return Ve&&X&&(X=!1,q(document,"mousedown",l=>{U=l}),q(document,"mouseup",l=>{for(const[s,a]of x)a[N].documentHandler(l,U)})),function(l,s){!o||!n.instance||!l.target||!s.target||e.contains(l.target)||e.contains(s.target)||e===l.target||e[N].bindingFn&&e[N].bindingFn()}}const Se={beforeMount:function(e,n,o){B++,x.set(B,e),e[N]={nid:B,documentHandler:G(e,n,o),bindingFn:n.value}},updated:function(e,n,o){e[N].documentHandler=G(e,n,o),e[N].bindingFn=n.value},unmounted:function(e){x.delete(e[N].nid),delete e[N]}},Ce={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0}};function J(e){const n=/(auto|scroll|hidden)/;for(let o=e;o=o.parentElement;o.parentElement!==document.body){const l=window.getComputedStyle(o);if(n.test(l.overflow+l.overflowX+l.overflowY))return o}return window}function Ne(e,n,o,l){let{x:s,y:a}=n;if(!e){const{width:r,height:d}=l;s&&o.includes("start")&&(s=12),s&&o.includes("end")&&(s=Math.round(r-24)),a&&o.includes("start")&&(a=10),a&&o.includes("end")&&(a=d-14)}return{x:s,y:a}}function Ae(e,n){const o=t.ref(),l=t.ref(),s=(r,d,i,u)=>{const{x:c,y:v}=Ne(e.isArrowCenter,i,d,u.getBoundingClientRect()),f={top:"bottom",right:"left",bottom:"top",left:"right"}[d.split("-")[0]];Object.assign(r.style,{left:c?`${c}px`:"",top:v?`${v}px`:"",right:"",bottom:"",[f]:"-4px"})},a=async()=>{const r=e.origin,d=t.unref(o.value),i=t.unref(l.value),u=[m.offset(e.offset),m.autoPlacement({alignment:e.align,allowedPlacements:e.position})];e.showArrow&&u.push(m.arrow({element:i}));const{x:c,y:v,placement:f,middlewareData:y}=await m.computePosition(r,d,{strategy:"fixed",middleware:u});n("positionChange",f),Object.assign(d.style,{top:`${v}px`,left:`${c}px`}),e.showArrow&&s(i,f,y.arrow,d)};return t.watch(()=>e.modelValue,()=>{const r=J(e.origin);e.modelValue&&e.origin?(t.nextTick(a),r.addEventListener("scroll",a),r!==window&&window.addEventListener("scroll",a),window.addEventListener("resize",a)):(r.removeEventListener("scroll",a),r!==window&&window.removeEventListener("scroll",a),window.removeEventListener("resize",a))}),t.onUnmounted(()=>{const r=J(e.origin);r.removeEventListener("scroll",a),r!==window&&window.removeEventListener("scroll",a),window.removeEventListener("resize",a)}),{arrowRef:l,overlayRef:o}}var Ke="";const De=t.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:Ce,emits:["update:modelValue","positionChange"],setup(e,{slots:n,attrs:o,emit:l}){const{arrowRef:s,overlayRef:a}=Ae(e,l);return()=>{var r;return e.modelValue&&t.createVNode("div",t.mergeProps({ref:a,class:"devui-flexible-overlay"},o),[(r=n.default)==null?void 0:r.call(n),e.showArrow&&t.createVNode("div",{ref:s,class:"devui-flexible-overlay-arrow"},null)])}}});function Q(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}var L=t.defineComponent({name:"DAutoComplete",directives:{ClickOutside:Se},props:se,emits:["update:modelValue"],setup(e,n){const{disabled:o,modelValue:l,appendToBody:s,dAutoCompleteWidth:a,delay:r,allowEmptyValueSearch:d,formatter:i,transInputFocusEmit:u,selectValue:c,source:v,searchFn:f,appendToBodyDirections:y,latestSource:w,showAnimation:h}=t.toRefs(e),{handleSearch:T,searchList:A,showNoResultItemTemplate:V,recentlyFocus:k}=ue(n,d,v,f,i),{onInput:S,onFocus:D,inputRef:g,visible:b,searchStatus:Z,handleClose:P,toggleMenu:ke}=de(n,A,V,l,o,r,T,u,k,w),{selectedIndex:ee,selectOptionClick:te}=ce(n,A,c,T,i,P),{showLoading:Fe,dropDownRef:oe,loadMore:Le}=fe(e,n,T),{customRenderSolts:ne}=ie(n,l),{hoverIndex:Ee,handlekeyDown:Re}=pe(oe,b,A,ee,Z,V,te,P);t.provide(j,{props:e,visible:b,term:"",searchList:A,selectedIndex:ee,searchStatus:Z,selectOptionClick:te,dropDownRef:oe,showLoading:Fe,loadMore:Le,latestSource:w,modelValue:l,showNoResultItemTemplate:V,hoverIndex:Ee});const le=t.ref(),ae=t.reactive({appendToBodyDirections:{}});ae.appendToBodyDirections=y;const xe=()=>{if(s.value){let I;return t.createVNode(De,{hasBackdrop:!1,origin:le,position:ae.appendToBodyDirections,visible:b.value,"onUpdate:visible":Be=>b.value=Be},{default:()=>[t.createVNode("div",{class:"devui-dropdown devui-auto-complete-menu",style:{width:a.value>0&&a.value+"px"}},[t.createVNode(Y,null,Q(I=ne())?I:{default:()=>[I]})])]})}else{let I;return t.createVNode("div",{class:"devui-dropdown",style:{width:a.value>0&&a.value+"px"}},[t.createVNode(t.Transition,{name:h?"fade":""},{default:()=>[t.createVNode(Y,null,Q(I=ne())?I:{default:()=>[I]})]})])}};return()=>t.withDirectives(t.createVNode("div",{class:["devui-auto-complete","devui-form-group","devui-has-feedback",b.value&&"devui-select-open"],ref:le,style:{width:a.value>0&&a.value+"px"}},[t.createVNode("input",{disabled:o.value,type:"text",onClick:ke,class:["devui-form-control","devui-dropdown-origin","devui-dropdown-origin-open",o.value&&"disabled"],placeholder:"Search",onInput:S,onFocus:D,value:l.value,ref:g,onKeydown:Re},null),xe()]),[[t.resolveDirective("click-outside"),P]])}});L.install=function(e){e.component(L.name,L)};var Ie={title:"AutoComplete \u81EA\u52A8\u8865\u5168",category:"\u6570\u636E\u5F55\u5165",status:"100%",install(e){e.use(L)}};p.AutoComplete=L,p.default=Ie,Object.defineProperty(p,"__esModule",{value:!0}),p[Symbol.toStringTag]="Module"});
|
|
1
|
+
var Oe=Object.defineProperty;var ie=Object.getOwnPropertySymbols;var Be=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable;var z=(v,t,y)=>t in v?Oe(v,t,{enumerable:!0,configurable:!0,writable:!0,value:y}):v[t]=y,I=(v,t)=>{for(var y in t||(t={}))Be.call(t,y)&&z(v,y,t[y]);if(ie)for(var y of ie(t))je.call(t,y)&&z(v,y,t[y]);return v};var T=(v,t,y)=>(z(v,typeof t!="symbol"?t+"":t,y),y);(function(v,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],t):(v=typeof globalThis!="undefined"?globalThis:v||self,t(v.index={},v.Vue,v.dom))})(this,function(v,t,y){"use strict";const _={modelValue:{type:String,default:""},source:{type:Array,default:null},allowEmptyValueSearch:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},position:{type:Array,default:["bottom-end"]},disabled:{type:Boolean,default:!1},delay:{type:Number,default:300},disabledKey:{type:String,default:null},formatter:{type:Function,default:e=>typeof e=="string"?e:e!==null?e.label||e.toString():""},isSearching:{type:Boolean,default:!1},sceneType:{type:String,default:null},searchFn:{type:Function,default:null},tipsText:{type:String,default:"\u6700\u8FD1\u8F93\u5165"},latestSource:{type:Array,default:null},valueParser:{type:Function,default:e=>e},enableLazyLoad:{type:Boolean,default:!1},width:{type:Number,default:400},showAnimation:{type:Boolean,default:!0},maxHeight:{type:Number,default:300},transInputFocusEmit:{type:Function,default:null},selectValue:{type:Function,default:null},loadMore:{type:Function,default:null}},R=Symbol("DropdownPropsKey");function ue(e,n){const o=(r,u)=>{const i={item:r,index:u};return e.slots.item?e.slots.item(i):null},a=()=>e.slots.nothing?e.slots.nothing(n.value):null,l=()=>e.slots.searching?e.slots.searching(n.value):null;return{customRenderSolts:()=>{const r={};return e.slots.item&&(r.itemTemplate=o),e.slots.nothing&&(r.noResultItemTemplate=a),e.slots.searching&&(r.searchingTemplate=l),r}}}function de(e,n,o,a,l){const s=t.ref([]),r=t.ref(!1),u=d=>{const p=[];return o.value.forEach(c=>{let m=l.value(c);m=m.toLowerCase(),m.startsWith(d)&&p.push(c)}),p};return{handleSearch:async(d,p=!1)=>{if(d===""&&!n.value){s.value=[],r.value=!1;return}let c=[];d=d.toLowerCase(),p?c=o.value:a.value?c=await a.value(d):c=u(d),s.value=c,s.value.length===0?r.value=!0:r.value=!1},recentlyFocus:d=>{d&&(s.value=d)},searchList:s,showNoResultItemTemplate:r}}function ce(e,n,o,a,l,s,r,u,i,f){const d=t.ref(!1),p=t.ref(),c=t.ref(!1),h=((V,F)=>{let g;return E=>{g&&clearTimeout(g),g=setTimeout(async()=>{c.value=!0,await V(E),c.value=!1},F)}})(async V=>{await r(V),d.value=!0},s.value),C=V=>{const F=V.target;c.value=!1,o.value=!1,e.emit("update:modelValue",F.value),h(F.value)},S=()=>{r(a.value),i(f==null?void 0:f.value),u.value&&u.value()},b=()=>{d.value=!1,c.value=!1,o.value=!1};return{handleClose:b,toggleMenu:()=>{l.value||(d.value?b():(d.value=!0,e.slots.noResultItemTemplate&&n.value.length===0&&a.value.trim()!==""&&(o.value=!0)))},onInput:C,onFocus:S,inputRef:p,visible:d,searchStatus:c}}function fe(e,n,o,a,l,s){const r=t.ref(0),u=f=>{if(n.value.length===0)return 0;let d=0;return n.value.forEach((p,c)=>{typeof p=="string"?p===f&&(d=c):String(p.label)===f&&(d=c)}),d===-1?0:d};return{selectedIndex:r,selectOptionClick:async f=>{const d=l.value(f);e.emit("update:modelValue",d),s(),await a(d),r.value=u(d),o.value&&o.value(d)}}}function pe(e,n,o){const a=t.ref(!1),l=t.ref(),s=()=>{if(!e.enableLazyLoad&&a)return;const u=l.value,i=u.scrollHeight,f=u.clientHeight+u.scrollTop;f>=i&&f>=e.maxHeight&&(e.loadMore(),a.value=!0)};async function r(){await o(e.modelValue,e.enableLazyLoad),a.value=!1}return n.expose({loadFinish:r}),{showLoading:a,dropDownRef:l,loadMore:s}}function ve(e,n,o,a,l,s,r,u){var p;const i=t.ref((p=a.value)!=null?p:0),f=c=>{const m=e.value,w=m.children[c];t.nextTick(()=>{if(w.scrollIntoViewIfNeeded)w.scrollIntoViewIfNeeded(!1);else{const h=m.getBoundingClientRect(),C=w.getBoundingClientRect();(C.bottom>h.bottom||C.top<h.top)&&w.scrollIntoView(!1)}})};return{hoverIndex:i,handlekeyDown:c=>{var h;const m=c.key||c.code;if(m==="Escape"&&(n.value&&o.value.length||l.value||s.value)){u();return}const w=n.value&&o.value.length&&!l.value&&!s.value;if(m==="ArrowDown"&&w){if(i.value===o.value.length-1){i.value=0,f(i.value);return}i.value=i.value+1,f(i.value)}else if(m==="ArrowUp"&&w){if(i.value===0){i.value=o.value.length-1,f(i.value);return}i.value=i.value-1,f(i.value)}if(m==="Enter"&&w){r(o.value[i.value]),i.value=(h=a.value)!=null?h:0;return}}}}var ze="";class ${constructor(){T(this,"top","50%");T(this,"left","50%")}}const me={message:String,backdrop:Boolean,view:{type:Object,default:()=>new $},zIndex:Number,isFull:{type:Boolean,default:!1}};class ye{constructor(){T(this,"target");T(this,"message");T(this,"loadingTemplateRef");T(this,"backdrop",!0);T(this,"positionType","relative");T(this,"view",new $);T(this,"zIndex")}}var _e="",ge=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:me,setup(e){const n={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(n.background="none");const o=t.ref(!1);return{style:n,isShow:o,open:()=>{o.value=!0},close:()=>{o.value=!1}}},render(){var r;const{isShow:e,isFull:n,backdrop:o,style:a,message:l,$slots:s}=this;return e&&t.createVNode("div",{class:["devui-loading-contanier",n?"devui-loading--full":""]},[((r=s.default)==null?void 0:r.call(s))||t.createVNode("div",{class:"devui-loading-wrapper"},[o?t.createVNode("div",{class:"devui-loading-mask"},null):null,t.createVNode("div",{style:a,class:"devui-loading-area"},[t.createVNode("div",{class:"devui-busy-default-spinner"},[t.createVNode("div",{class:"devui-loading-bar1"},null),t.createVNode("div",{class:"devui-loading-bar2"},null),t.createVNode("div",{class:"devui-loading-bar3"},null),t.createVNode("div",{class:"devui-loading-bar4"},null)]),l?t.createVNode("span",{class:"devui-loading-text"},[l]):null])])])}});const K=Symbol("dev_component_container");function we(e,n,o=null){const a=t.h(e,I({},n),o),l=document.createElement("div");return a[K]=l,t.render(a,l),a.component}function he(e){t.render(null,e==null?void 0:e.vnode[K])}const be=t.defineComponent(ge),D=new WeakSet,x=e=>{if(!e)return!0;if(Array.isArray(e))return e.length===0;if(e instanceof Set||e instanceof Map)return e.size===0;if(e instanceof Promise)return!1;if(typeof e=="object")try{return Object.keys(e).length===0}catch{return!1}return!1},U=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),Ve=e=>{switch(U(e)){case"promise":return[e];case"array":return e.some(o=>U(o)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},q=e=>{D.delete(e),e.instance.proxy.close(),he(e.instance)},W=(e,n)=>{if(n.value){const o=Ve(n.value);if(o==="error")return;e.instance.proxy.open(),e.appendChild(e.mask),D.add(e),o&&Promise.all(o).catch(a=>{console.error(new Error("Promise handling errors"),a)}).finally(()=>{q(e)})}else q(e)},Y=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},X=(e,n)=>{var s;const o=I(I({},new ye),n),a=o.loadingTemplateRef,l=we(be,I({},o),a?()=>a:null);e.style.position=o.positionType,e.options=o,e.instance=l,e.mask=(s=l==null?void 0:l.proxy)==null?void 0:s.$el},Te={mounted:function(e,n,o){X(e,o.props),Y(e),!x(n.value)&&W(e,n)},updated:function(e,n,o){!x(n.value)&&D.has(e)||x(n.value)&&!D.has(e)||(!D.has(e)&&X(e,o.props),Y(e),W(e,n))}};var G=t.defineComponent({name:"DAutoCompleteDropdown",directives:{dLoading:Te},setup(e,n){const o=t.inject(R),{visible:a,selectedIndex:l,selectOptionClick:s,searchList:r,searchStatus:u,dropDownRef:i,loadMore:f,showLoading:d,showNoResultItemTemplate:p,latestSource:c,modelValue:m,hoverIndex:w,valueParser:h}=o,{disabled:C,maxHeight:S,formatter:b,disabledKey:A,isSearching:V}=o.props,F=g=>{g=h.value(g),!(typeof g=="object"&&g[A])&&s(g)};return()=>t.withDirectives(t.createVNode("div",{class:["devui-dropdown-menu","devui-dropdown-menu-cdk",C&&"disabled",c.value&&"devui-dropdown-latestSource"]},[t.createVNode("ul",{ref:i,class:"devui-list-unstyled scroll-height",style:{maxHeight:`${S}px`},onScroll:f},[V&&n.slots.searchingTemplate&&(u==null?void 0:u.value)&&t.createVNode("li",{class:"devui-is-searching-template"},[t.createVNode("div",{class:"devui-no-data-tip"},[n.slots.searchingTemplate()])]),c.value&&!m.value&&t.createVNode("li",{class:"devui-popup-tips"},[t.createTextVNode("\u6700\u8FD1\u8F93\u5165")]),!p.value&&!(u==null?void 0:u.value)&&r!=null&&r.value.length>0&&r.value.map((g,E)=>t.createVNode("li",{onClick:()=>F(g),class:["devui-dropdown-item",l.value===E&&"selected",{disabled:A&&typeof g=="object"&&g[A]},{"devui-dropdown-bg":w.value===E}],title:b(g),key:b(g)},[n.slots.itemTemplate?n.slots.itemTemplate(g,E):b(g)])),!(u==null?void 0:u.value)&&r.value.length===0&&n.slots.noResultItemTemplate&&p.value&&t.createVNode("li",{class:"devui-no-result-template"},[t.createVNode("div",{class:"devui-no-data-tip"},[n.slots.noResultItemTemplate()])])])]),[[t.resolveDirective("dLoading"),d.value],[t.vShow,a.value&&r.value.length>0||n.slots.noResultItemTemplate&&p.value||V&&n.slots.searchingTemplate&&(u==null?void 0:u.value)]])}});const Ne=typeof window!="undefined";function J(e,n,o){document.addEventListener?e&&n&&o&&e.addEventListener(n,o,!1):e&&n&&o&&e.attachEvent("on"+n,o)}const N=Symbol("@@clickoutside"),P=new Map;let Q,O=0,Z=!0;function ee(e,n,o){return Ne&&Z&&(Z=!1,J(document,"mousedown",a=>{Q=a}),J(document,"mouseup",a=>{for(const[l,s]of P)s[N].documentHandler(a,Q)})),function(a,l){!o||!n.instance||!a.target||!l.target||e.contains(a.target)||e.contains(l.target)||e===a.target||e[N].bindingFn&&e[N].bindingFn()}}const Ce={beforeMount:function(e,n,o){O++,P.set(O,e),e[N]={nid:O,documentHandler:ee(e,n,o),bindingFn:n.value}},updated:function(e,n,o){e[N].documentHandler=ee(e,n,o),e[N].bindingFn=n.value},unmounted:function(e){P.delete(e[N].nid),delete e[N]}},Ae={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0}};function Fe(e){const n=/(auto|scroll|hidden)/;for(let o=e;o=o.parentElement;o.parentElement!==document.body){const a=window.getComputedStyle(o);if(n.test(a.overflow+a.overflowX+a.overflowY))return o}return window}function Se(e,n,o,a){let{x:l,y:s}=n;if(!e){const{width:r,height:u}=a;l&&o.includes("start")&&(l=12),l&&o.includes("end")&&(l=Math.round(r-24)),s&&o.includes("start")&&(s=10),s&&o.includes("end")&&(s=u-14)}return{x:l,y:s}}function Ee(e,n){const o=t.ref(),a=t.ref();let l=null;const s=(u,i,f,d)=>{const{x:p,y:c}=Se(e.isArrowCenter,f,i,d.getBoundingClientRect()),m={top:"bottom",right:"left",bottom:"top",left:"right"}[i.split("-")[0]];Object.assign(u.style,{left:p?`${p}px`:"",top:c?`${c}px`:"",right:"",bottom:"",[m]:"-4px"})},r=async()=>{const u=e.origin,i=t.unref(o.value),f=t.unref(a.value),d=[y.shift(),y.offset(e.offset),y.autoPlacement({alignment:e.align,allowedPlacements:e.position})];e.showArrow&&d.push(y.arrow({element:f}));const{x:p,y:c,placement:m,middlewareData:w}=await y.computePosition(u,i,{strategy:"fixed",middleware:d});n("positionChange",m),Object.assign(i.style,{top:`${c}px`,left:`${p}px`}),e.showArrow&&s(f,m,w.arrow,i)};return t.watch(()=>e.modelValue,()=>{e.modelValue&&e.origin?(l=Fe(e.origin),t.nextTick(r),l==null||l.addEventListener("scroll",r),l!==window&&window.addEventListener("scroll",r),window.addEventListener("resize",r)):(l==null||l.removeEventListener("scroll",r),l!==window&&window.removeEventListener("scroll",r),window.removeEventListener("resize",r))}),t.onUnmounted(()=>{l==null||l.removeEventListener("scroll",r),l!==window&&window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}),{arrowRef:a,overlayRef:o,updatePosition:r}}var $e="";const te=t.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:Ae,emits:["update:modelValue","positionChange"],setup(e,{slots:n,attrs:o,emit:a,expose:l}){const{arrowRef:s,overlayRef:r,updatePosition:u}=Ee(e,a);return l({updatePosition:u}),()=>{var i;return e.modelValue&&t.createVNode("div",t.mergeProps({ref:r,class:"devui-flexible-overlay"},o),[(i=n.default)==null?void 0:i.call(n),e.showArrow&&t.createVNode("div",{ref:s,class:"devui-flexible-overlay-arrow"},null)])}}});function oe(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}var B=t.defineComponent({name:"DAutoComplete",directives:{ClickOutside:Ce},props:_,emits:["update:modelValue"],setup(e,n){const{disabled:o,modelValue:a,width:l,delay:s,allowEmptyValueSearch:r,appendToBody:u,formatter:i,transInputFocusEmit:f,selectValue:d,source:p,searchFn:c,position:m,latestSource:w,showAnimation:h,valueParser:C}=t.toRefs(e),{handleSearch:S,searchList:b,showNoResultItemTemplate:A,recentlyFocus:V}=de(n,r,p,c,i),{onInput:F,onFocus:g,inputRef:E,visible:L,searchStatus:ne,handleClose:j,toggleMenu:ke}=ce(n,b,A,a,o,s,S,f,V,w),{selectedIndex:le,selectOptionClick:ae}=fe(n,b,d,S,i,j),{showLoading:De,dropDownRef:re,loadMore:Ie}=pe(e,n,S),{customRenderSolts:se}=ue(n,a),{hoverIndex:Re,handlekeyDown:xe}=ve(re,L,b,le,ne,A,ae,j);t.provide(R,{props:e,visible:L,term:"",searchList:b,selectedIndex:le,searchStatus:ne,selectOptionClick:ae,dropDownRef:re,showLoading:De,loadMore:Ie,latestSource:w,modelValue:a,showNoResultItemTemplate:A,hoverIndex:Re,valueParser:C});const M=t.ref(),Pe=()=>{if(u.value){let k;return t.createVNode(t.Teleport,{to:"body"},{default:()=>[t.createVNode(t.Transition,{name:h?"fade":""},{default:()=>[t.createVNode(te,{"show-arrow":!0,origin:M.value,position:m.value,modelValue:L.value,"onUpdate:modelValue":H=>L.value=H},{default:()=>[t.createVNode("div",{class:"devui-auto-complete-menu",style:{width:`
|
|
2
|
+
${l.value+"px"}
|
|
3
|
+
`}},[t.createVNode(G,null,oe(k=se())?k:{default:()=>[k]})])]})]})]})}else{let k;return t.createVNode(t.Transition,{name:h?"fade":""},{default:()=>[t.createVNode(te,{"show-arrow":!0,origin:M.value,position:m.value,modelValue:L.value,"onUpdate:modelValue":H=>L.value=H},{default:()=>[t.createVNode("div",{class:"devui-auto-complete-menu",style:{width:`
|
|
4
|
+
${l.value+"px"}
|
|
5
|
+
`}},[t.createVNode(G,null,oe(k=se())?k:{default:()=>[k]})])]})]})}};return()=>t.withDirectives(t.createVNode("div",{class:["devui-auto-complete","devui-form-group","devui-has-feedback",L.value&&"devui-select-open"],ref:M,style:{width:`${l.value+"px"}`}},[t.createVNode("input",{disabled:o.value,type:"text",onClick:ke,class:["devui-form-control","devui-dropdown-origin","devui-dropdown-origin-open",o.value&&"disabled"],placeholder:"Search",onInput:F,onFocus:g,value:a.value,ref:E,onKeydown:xe},null),Pe()]),[[t.resolveDirective("click-outside"),j]])}}),Le={title:"AutoComplete \u81EA\u52A8\u8865\u5168",category:"\u6570\u636E\u5F55\u5165",status:"100%",install(e){e.component(B.name,B)}};v.AutoComplete=B,v.DropdownPropsKey=R,v.autoCompleteProps=_,v.default=Le,Object.defineProperty(v,"__esModule",{value:!0}),v[Symbol.toStringTag]="Module"});
|
package/auto-complete/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.devui-auto-complete .devui-dropdown-menu,.devui-auto-complete-menu .devui-dropdown-menu{left:0!important;top:0!important}.devui-auto-complete .active{background:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-auto-complete .devui-dropdown-menu{width:100%;display:block}.devui-auto-complete .devui-dropdown-menu-cdk{position:static}.devui-auto-complete .devui-dropdown-item{cursor:pointer;display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:14px}.devui-auto-complete .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected{color:var(--devui-list-item-active-text, #ffffff);background-color:var(--devui-list-item-active-bg, #5e7ce0)}.devui-auto-complete .devui-no-result-template,.devui-auto-complete .devui-is-searching-template{display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:not-allowed;background-color:var(--devui-disabled-bg, #f5f5f6);color:var(--devui-disabled-text, #adb0b8);line-height:14px}.devui-auto-complete .devui-no-result-template:hover,.devui-auto-complete .devui-no-result-template:active,.devui-auto-complete .devui-no-result-template:hover:active,.devui-auto-complete .devui-is-searching-template:hover,.devui-auto-complete .devui-is-searching-template:active,.devui-auto-complete .devui-is-searching-template:hover:active{background-color:var(--devui-unavailable, #f5f5f6)}.devui-auto-complete .devui-dropdown-item.disabled,.devui-auto-complete .devui-dropdown-item.disabled:hover{cursor:not-allowed;color:var(--devui-disabled-text, #adb0b8)}.devui-auto-complete ul.devui-list-unstyled{margin:0;overflow-y:auto}.devui-auto-complete .devui-dropdown-bg{background:var(--devui-list-item-hover-bg, #f2f5fc);color:var(--devui-list-item-hover-text, #526ecc)}.devui-auto-complete .devui-popup-tips{color:var(--devui-text-weak, #575d6c);padding:4px 12px}.devui-auto-complete .devui-dropdown-latestSource ul{line-height:initial!important}@keyframes devui-busy-spinner-anim{0%{transform:rotate(0) scale(1)}50%{transform:rotate(135deg) scale(1.5)}to{transform:rotate(270deg) scale(1)}}.devui-loading-mask{position:absolute;left:0;right:0;bottom:0;top:0;background-color:var(--devui-line, #adb0b8);opacity:.3}.devui-loading-wrapper{text-align:center}.devui-loading--full{position:fixed;left:0;right:0;bottom:0;top:0;z-index:9999}.devui-loading--hidden{overflow:hidden}.devui-loading-text{margin-left:10px}.devui-loading-area{position:absolute;transform:translate(-50%,-50%);padding:12px 14px;background:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px)}.devui-busy-default-spinner{position:relative;display:inline-block;width:15px;height:15px;animation:devui-busy-spinner-anim 1s linear infinite}.devui-busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:6px;height:6px;border-radius:50%}.devui-busy-default-spinner .devui-loading-bar1{top:0;left:0;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-busy-default-spinner .devui-loading-bar2{top:0;left:9px;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar3{top:9px;left:0;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar4{top:9px;left:9px;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-connected-overlay, 0 2px 8px 0) var(--devui-shadow, rgba(0, 0, 0, .2));z-index:1000}.devui-flexible-overlay-arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}
|
|
1
|
+
@charset "UTF-8";.devui-auto-complete .devui-dropdown-menu,.devui-auto-complete-menu .devui-dropdown-menu{width:100%;left:0!important;top:0!important;margin:0!important}.devui-auto-complete .devui-dropdown-menu ul,.devui-auto-complete-menu .devui-dropdown-menu ul{width:100%;padding:0}.devui-auto-complete .devui-form-control{padding:4px 8px}.devui-auto-complete .active,.devui-auto-complete-menu .active{background:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-auto-complete .devui-dropdown-menu,.devui-auto-complete-menu .devui-dropdown-menu{width:100%;display:block}.devui-auto-complete .devui-dropdown-menu-cdk,.devui-auto-complete-menu .devui-dropdown-menu-cdk{position:static}.devui-auto-complete .devui-dropdown-item,.devui-auto-complete-menu .devui-dropdown-item{cursor:pointer;display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:14px}.devui-auto-complete .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected,.devui-auto-complete .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected .devui-auto-complete .devui-dropdown-menu .devui-dropdown-item:not(.disabled):hover,.devui-auto-complete-menu .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected,.devui-auto-complete .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected .devui-auto-complete-menu .devui-dropdown-menu .devui-dropdown-item:not(.disabled):hover,.devui-auto-complete-menu .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected .devui-auto-complete .devui-dropdown-menu .devui-dropdown-item:not(.disabled):hover,.devui-auto-complete-menu .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected .devui-auto-complete-menu .devui-dropdown-menu .devui-dropdown-item:not(.disabled):hover{color:var(--devui-list-item-active-text, #ffffff)!important;background-color:var(--devui-list-item-active-bg, #5e7ce0)!important}.devui-auto-complete .devui-no-result-template,.devui-auto-complete .devui-is-searching-template,.devui-auto-complete-menu .devui-no-result-template,.devui-auto-complete-menu .devui-is-searching-template{display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:not-allowed;background-color:var(--devui-disabled-bg, #f5f5f6);color:var(--devui-disabled-text, #adb0b8);line-height:14px}.devui-auto-complete .devui-no-result-template:hover,.devui-auto-complete .devui-no-result-template:active,.devui-auto-complete .devui-no-result-template:hover:active,.devui-auto-complete .devui-is-searching-template:hover,.devui-auto-complete .devui-is-searching-template:active,.devui-auto-complete .devui-is-searching-template:hover:active,.devui-auto-complete-menu .devui-no-result-template:hover,.devui-auto-complete-menu .devui-no-result-template:active,.devui-auto-complete-menu .devui-no-result-template:hover:active,.devui-auto-complete-menu .devui-is-searching-template:hover,.devui-auto-complete-menu .devui-is-searching-template:active,.devui-auto-complete-menu .devui-is-searching-template:hover:active{background-color:var(--devui-unavailable, #f5f5f6)}.devui-auto-complete .devui-dropdown-item.disabled,.devui-auto-complete .devui-dropdown-item.disabled:hover,.devui-auto-complete-menu .devui-dropdown-item.disabled,.devui-auto-complete-menu .devui-dropdown-item.disabled:hover{cursor:not-allowed;color:var(--devui-disabled-text, #adb0b8)}.devui-auto-complete ul.devui-list-unstyled,.devui-auto-complete-menu ul.devui-list-unstyled{margin:0;overflow-y:auto}.devui-auto-complete .devui-dropdown-bg,.devui-auto-complete-menu .devui-dropdown-bg{background:var(--devui-list-item-hover-bg, #f2f5fc);color:var(--devui-list-item-hover-text, #526ecc)}.devui-auto-complete .devui-popup-tips,.devui-auto-complete-menu .devui-popup-tips{color:var(--devui-text-weak, #575d6c);padding:4px 12px}.devui-auto-complete .devui-dropdown-latestSource ul,.devui-auto-complete-menu .devui-dropdown-latestSource ul{line-height:initial!important}@keyframes devui-busy-spinner-anim{0%{transform:rotate(0) scale(1)}50%{transform:rotate(135deg) scale(1.5)}to{transform:rotate(270deg) scale(1)}}.devui-loading-mask{position:absolute;left:0;right:0;bottom:0;top:0;background-color:var(--devui-line, #adb0b8);opacity:.3}.devui-loading-wrapper{text-align:center}.devui-loading--full{position:fixed;left:0;right:0;bottom:0;top:0;z-index:9999}.devui-loading--hidden{overflow:hidden}.devui-loading-text{margin-left:10px}.devui-loading-area{position:absolute;transform:translate(-50%,-50%);padding:12px 14px;background:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px)}.devui-busy-default-spinner{position:relative;display:inline-block;width:15px;height:15px;animation:devui-busy-spinner-anim 1s linear infinite}.devui-busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:6px;height:6px;border-radius:50%}.devui-busy-default-spinner .devui-loading-bar1{top:0;left:0;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-busy-default-spinner .devui-loading-bar2{top:0;left:9px;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar3{top:9px;left:0;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar4{top:9px;left:9px;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-connected-overlay, 0 2px 8px 0) var(--devui-shadow, rgba(0, 0, 0, .2));z-index:1000}.devui-flexible-overlay-arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}
|