vue-devui 1.0.0-rc.1 → 1.0.0-rc.12
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 +70 -121
- package/alert/index.es.js +46 -15
- package/alert/index.umd.js +1 -1
- package/alert/style.css +1 -1
- package/auto-complete/index.es.js +8204 -296
- package/auto-complete/index.umd.js +29 -1
- package/auto-complete/style.css +1 -1
- package/avatar/index.es.js +153 -146
- package/avatar/index.umd.js +1 -1
- package/avatar/style.css +1 -1
- package/badge/index.es.js +36 -5
- package/badge/index.umd.js +1 -1
- package/badge/style.css +1 -1
- package/button/index.es.js +5727 -111
- package/button/index.umd.js +27 -1
- package/button/style.css +1 -1
- package/card/index.es.js +63 -35
- package/card/index.umd.js +1 -1
- package/card/style.css +1 -1
- package/checkbox/index.es.js +8068 -255
- package/checkbox/index.umd.js +27 -1
- package/checkbox/style.css +1 -1
- package/{accordion → collapse}/index.d.ts +0 -0
- package/collapse/index.es.js +213 -0
- package/collapse/index.umd.js +1 -0
- package/{anchor → collapse}/package.json +1 -1
- package/collapse/style.css +1 -0
- package/countdown/index.es.js +59 -19
- package/countdown/index.umd.js +1 -1
- package/{anchor → date-picker-pro}/index.d.ts +0 -0
- package/date-picker-pro/index.es.js +10856 -0
- package/date-picker-pro/index.umd.js +27 -0
- package/{breadcrumb → date-picker-pro}/package.json +1 -1
- package/date-picker-pro/style.css +1 -0
- package/drawer/index.es.js +31 -4
- package/drawer/index.umd.js +1 -1
- package/drawer/style.css +1 -1
- package/dropdown/index.es.js +210 -149
- package/dropdown/index.umd.js +1 -1
- package/dropdown/style.css +1 -1
- package/editable-select/index.es.js +569 -159
- package/editable-select/index.umd.js +1 -1
- package/editable-select/style.css +1 -1
- package/form/index.es.js +1048 -1187
- package/form/index.umd.js +15 -15
- package/form/style.css +1 -1
- package/fullscreen/index.es.js +29 -5
- package/fullscreen/index.umd.js +1 -1
- package/fullscreen/style.css +1 -1
- package/grid/index.es.js +101 -86
- package/grid/index.umd.js +1 -1
- package/grid/style.css +1 -1
- package/icon/index.es.js +183 -23
- package/icon/index.umd.js +1 -1
- package/icon/style.css +1 -0
- package/image-preview/index.es.js +53 -30
- package/image-preview/index.umd.js +1 -1
- package/image-preview/style.css +1 -1
- package/input/index.es.js +8101 -144
- package/input/index.umd.js +27 -1
- package/input/style.css +1 -1
- package/input-number/index.es.js +274 -177
- package/input-number/index.umd.js +1 -1
- package/input-number/style.css +1 -1
- package/layout/index.es.js +40 -25
- package/layout/index.umd.js +1 -1
- package/layout/style.css +1 -1
- package/loading/index.es.js +74 -35
- package/loading/index.umd.js +1 -1
- package/loading/style.css +1 -1
- package/modal/index.es.js +375 -171
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/notification/index.es.js +293 -40
- package/notification/index.umd.js +1 -1
- package/notification/style.css +1 -1
- package/nuxt/components/ButtonGroup.js +3 -0
- package/nuxt/components/CheckboxButton.js +3 -0
- package/nuxt/components/CheckboxGroup.js +3 -0
- package/nuxt/components/Collapse.js +3 -0
- package/nuxt/components/CollapseItem.js +3 -0
- package/nuxt/components/DRangeDatePickerPro.js +3 -0
- package/nuxt/components/DatePickerPro.js +3 -0
- package/nuxt/components/DropdownPropsKey.js +3 -0
- package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
- package/nuxt/components/FORM_TOKEN.js +3 -0
- package/nuxt/components/Icon.js +1 -0
- package/nuxt/components/IconGroup.js +3 -0
- package/nuxt/components/LABEL_DATA.js +3 -0
- package/nuxt/components/LoadingOptions.js +3 -0
- package/nuxt/components/Option.js +3 -0
- package/nuxt/components/OptionGroup.js +3 -0
- package/nuxt/components/RadioButton.js +3 -0
- package/nuxt/components/Step.js +3 -0
- package/nuxt/components/Steps.js +3 -0
- package/nuxt/components/TABLE_TOKEN.js +3 -0
- package/nuxt/components/Tab.js +3 -0
- package/nuxt/components/TimeSelect.js +3 -0
- package/nuxt/components/autoCompleteProps.js +3 -0
- package/nuxt/components/avatarProps.js +3 -0
- package/nuxt/components/buttonGroupInjectionKey.js +3 -0
- package/nuxt/components/buttonGroupProps.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/collapseItemProps.js +3 -0
- package/nuxt/components/collapseProps.js +3 -0
- package/nuxt/components/countdownProps.js +3 -0
- package/nuxt/components/datePickerProCommonProps.js +3 -0
- package/nuxt/components/datePickerProPanelProps.js +3 -0
- package/nuxt/components/datePickerProProps.js +3 -0
- package/nuxt/components/editableSelectProps.js +3 -0
- package/nuxt/components/formItemProps.js +3 -0
- package/nuxt/components/formProps.js +3 -0
- package/nuxt/components/iconProps.js +1 -0
- package/nuxt/components/imagePreviewProps.js +3 -0
- package/nuxt/components/inputProps.js +3 -0
- package/nuxt/components/loadingProps.js +3 -0
- package/nuxt/components/modalProps.js +3 -0
- package/nuxt/components/progressProps.js +3 -0
- package/nuxt/components/rateProps.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/skeletonProps.js +3 -0
- package/nuxt/components/sliderProps.js +3 -0
- package/nuxt/components/splitterProps.js +3 -0
- package/nuxt/components/statisticProps.js +3 -0
- package/nuxt/components/stepProps.js +3 -0
- package/nuxt/components/stepsProps.js +3 -0
- package/nuxt/components/svgIconProps.js +3 -0
- package/nuxt/components/switchProps.js +3 -0
- package/nuxt/components/tableProps.js +3 -0
- package/nuxt/components/tabsProps.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/nuxt/components/timerPickerPanelProps.js +3 -0
- package/nuxt/components/treeProps.js +3 -0
- package/overlay/index.es.js +104 -133
- package/overlay/index.umd.js +1 -1
- package/overlay/style.css +1 -1
- package/package.json +4 -2
- package/pagination/index.es.js +171 -141
- package/pagination/index.umd.js +1 -1
- package/pagination/style.css +1 -1
- package/panel/style.css +1 -1
- package/popover/index.es.js +294 -230
- package/popover/index.umd.js +15 -15
- package/popover/style.css +1 -1
- package/progress/index.es.js +110 -56
- package/progress/index.umd.js +3 -3
- package/progress/style.css +1 -1
- package/radio/index.es.js +7967 -146
- package/radio/index.umd.js +27 -1
- package/radio/style.css +1 -1
- package/rate/index.es.js +77 -55
- package/rate/index.umd.js +1 -1
- package/rate/style.css +1 -1
- package/result/index.es.js +170 -27
- package/result/index.umd.js +1 -1
- package/result/style.css +1 -1
- package/ripple/index.es.js +43 -42
- package/ripple/index.umd.js +1 -1
- package/search/index.es.js +3660 -1097
- package/search/index.umd.js +18 -18
- package/search/style.css +1 -1
- package/select/index.es.js +8998 -487
- package/select/index.umd.js +27 -1
- package/select/style.css +1 -1
- package/skeleton/index.es.js +46 -24
- package/skeleton/index.umd.js +1 -1
- package/skeleton/style.css +1 -1
- package/slider/index.es.js +144 -138
- package/slider/index.umd.js +1 -1
- package/slider/style.css +1 -1
- package/splitter/index.es.js +468 -340
- package/splitter/index.umd.js +16 -16
- package/splitter/style.css +1 -1
- package/statistic/index.es.js +41 -34
- package/statistic/index.umd.js +1 -1
- package/statistic/style.css +1 -1
- package/status/index.es.js +26 -2
- package/status/index.umd.js +1 -1
- package/status/style.css +1 -1
- package/{back-top → steps}/index.d.ts +0 -0
- package/steps/index.es.js +385 -0
- package/steps/index.umd.js +1 -0
- package/{gantt → steps}/package.json +1 -1
- package/steps/style.css +1 -0
- package/style.css +1 -1
- package/switch/index.es.js +7802 -64
- package/switch/index.umd.js +27 -1
- package/switch/style.css +1 -1
- package/table/index.es.js +10315 -1147
- package/table/index.umd.js +27 -1
- package/table/style.css +1 -1
- package/tabs/index.es.js +345 -142
- package/tabs/index.umd.js +1 -1
- package/tabs/style.css +1 -1
- package/tag/index.es.js +47 -23
- package/tag/index.umd.js +1 -1
- package/tag/style.css +1 -1
- package/textarea/index.es.js +7921 -83
- package/textarea/index.umd.js +35 -1
- package/textarea/style.css +1 -1
- package/time-picker/index.es.js +8704 -559
- package/time-picker/index.umd.js +27 -1
- package/time-picker/style.css +1 -1
- package/{breadcrumb → time-select}/index.d.ts +0 -0
- package/{color-picker → time-select}/index.es.js +4116 -2914
- package/time-select/index.umd.js +27 -0
- package/{back-top → time-select}/package.json +1 -1
- package/time-select/style.css +1 -0
- package/timeline/index.es.js +177 -37
- package/timeline/index.umd.js +1 -1
- package/timeline/style.css +1 -1
- package/tooltip/index.es.js +286 -221
- package/tooltip/index.umd.js +15 -15
- package/tooltip/style.css +1 -1
- package/tree/index.es.js +5325 -1855
- package/tree/index.umd.js +18 -18
- package/tree/style.css +1 -1
- package/upload/index.es.js +456 -133
- package/upload/index.umd.js +1 -1
- package/upload/style.css +1 -1
- package/vue-devui.es.js +14986 -16343
- package/vue-devui.umd.js +30 -20
- package/accordion/index.es.js +0 -723
- package/accordion/index.umd.js +0 -1
- package/accordion/package.json +0 -7
- package/accordion/style.css +0 -1
- package/anchor/index.es.js +0 -263
- package/anchor/index.umd.js +0 -1
- package/anchor/style.css +0 -1
- package/back-top/index.es.js +0 -130
- package/back-top/index.umd.js +0 -1
- package/back-top/style.css +0 -1
- package/breadcrumb/index.es.js +0 -128
- package/breadcrumb/index.umd.js +0 -1
- package/breadcrumb/style.css +0 -1
- package/carousel/index.d.ts +0 -7
- package/carousel/index.es.js +0 -314
- 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 -5971
- 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.umd.js +0 -27
- package/color-picker/package.json +0 -7
- package/color-picker/style.css +0 -1
- package/comment/index.d.ts +0 -7
- package/comment/index.es.js +0 -86
- package/comment/index.umd.js +0 -1
- package/comment/package.json +0 -7
- package/comment/style.css +0 -1
- package/date-picker/index.d.ts +0 -7
- package/date-picker/index.es.js +0 -1154
- 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/gantt/index.d.ts +0 -7
- package/gantt/index.es.js +0 -523
- package/gantt/index.umd.js +0 -1
- package/gantt/style.css +0 -1
- package/input-icon/index.d.ts +0 -7
- package/input-icon/index.es.js +0 -332
- package/input-icon/index.umd.js +0 -1
- package/input-icon/package.json +0 -7
- package/input-icon/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/Comment.js +0 -3
- package/nuxt/components/DatePicker.js +0 -3
- package/nuxt/components/FormControl.js +0 -3
- package/nuxt/components/FormLabel.js +0 -3
- package/nuxt/components/Gantt.js +0 -3
- package/nuxt/components/InputIcon.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/ReadTip.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/TagInput.js +0 -3
- package/nuxt/components/Transfer.js +0 -3
- package/nuxt/components/TreeSelect.js +0 -3
- package/nuxt/components/overlayEmits.js +0 -3
- package/nuxt/components/overlayProps.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/read-tip/index.d.ts +0 -7
- package/read-tip/index.es.js +0 -261
- package/read-tip/index.umd.js +0 -1
- package/read-tip/package.json +0 -7
- package/read-tip/style.css +0 -1
- package/steps-guide/index.d.ts +0 -7
- package/steps-guide/index.es.js +0 -242
- 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/tag-input/index.d.ts +0 -7
- package/tag-input/index.es.js +0 -331
- package/tag-input/index.umd.js +0 -1
- package/tag-input/package.json +0 -7
- package/tag-input/style.css +0 -1
- package/transfer/index.d.ts +0 -7
- package/transfer/index.es.js +0 -7615
- package/transfer/index.umd.js +0 -27
- package/transfer/package.json +0 -7
- package/transfer/style.css +0 -1
- package/tree-select/index.d.ts +0 -7
- package/tree-select/index.es.js +0 -627
- package/tree-select/index.umd.js +0 -1
- package/tree-select/package.json +0 -7
- package/tree-select/style.css +0 -1
package/upload/index.es.js
CHANGED
|
@@ -21,7 +21,7 @@ var __publicField = (obj, key, value) => {
|
|
|
21
21
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
22
22
|
return value;
|
|
23
23
|
};
|
|
24
|
-
import { defineComponent, toRefs, createVNode,
|
|
24
|
+
import { defineComponent, toRefs, computed, createVNode, resolveDynamicComponent, mergeProps, watch, Transition, reactive, createApp, onUnmounted, isVNode, ref, getCurrentInstance, withDirectives, resolveComponent, resolveDirective } from "vue";
|
|
25
25
|
const notificationProps = {
|
|
26
26
|
modelValue: {
|
|
27
27
|
type: Boolean,
|
|
@@ -43,6 +43,7 @@ const notificationProps = {
|
|
|
43
43
|
type: Function
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
|
+
const DEFAULT_PREFIX = "icon";
|
|
46
47
|
const iconProps = {
|
|
47
48
|
name: {
|
|
48
49
|
type: String,
|
|
@@ -50,43 +51,201 @@ const iconProps = {
|
|
|
50
51
|
required: true
|
|
51
52
|
},
|
|
52
53
|
size: {
|
|
53
|
-
type: String,
|
|
54
|
+
type: [Number, String],
|
|
54
55
|
default: "inherit"
|
|
55
56
|
},
|
|
56
57
|
color: {
|
|
57
58
|
type: String,
|
|
58
59
|
default: "inherit"
|
|
59
60
|
},
|
|
61
|
+
component: {
|
|
62
|
+
type: Object,
|
|
63
|
+
default: null
|
|
64
|
+
},
|
|
60
65
|
classPrefix: {
|
|
61
66
|
type: String,
|
|
62
|
-
default:
|
|
67
|
+
default: DEFAULT_PREFIX
|
|
68
|
+
},
|
|
69
|
+
operable: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: false
|
|
72
|
+
},
|
|
73
|
+
disabled: {
|
|
74
|
+
type: Boolean,
|
|
75
|
+
default: false
|
|
76
|
+
},
|
|
77
|
+
rotate: {
|
|
78
|
+
type: [Number, String]
|
|
63
79
|
}
|
|
64
80
|
};
|
|
65
|
-
|
|
66
|
-
name:
|
|
67
|
-
|
|
81
|
+
const svgIconProps = {
|
|
82
|
+
name: {
|
|
83
|
+
type: String,
|
|
84
|
+
default: "",
|
|
85
|
+
required: true
|
|
86
|
+
},
|
|
87
|
+
color: {
|
|
88
|
+
type: String,
|
|
89
|
+
default: "inherit"
|
|
90
|
+
},
|
|
91
|
+
size: {
|
|
92
|
+
type: [Number, String],
|
|
93
|
+
default: "inherit"
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
function createBem(namespace, element, modifier) {
|
|
97
|
+
let cls = namespace;
|
|
98
|
+
if (element) {
|
|
99
|
+
cls += `__${element}`;
|
|
100
|
+
}
|
|
101
|
+
if (modifier) {
|
|
102
|
+
cls += `--${modifier}`;
|
|
103
|
+
}
|
|
104
|
+
return cls;
|
|
105
|
+
}
|
|
106
|
+
function useNamespace(block, needDot = false) {
|
|
107
|
+
const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
|
|
108
|
+
const b = () => createBem(namespace);
|
|
109
|
+
const e = (element) => element ? createBem(namespace, element) : "";
|
|
110
|
+
const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
|
|
111
|
+
const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
|
|
112
|
+
return {
|
|
113
|
+
b,
|
|
114
|
+
e,
|
|
115
|
+
m,
|
|
116
|
+
em
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
var icon = "";
|
|
120
|
+
var svgIcon = defineComponent({
|
|
121
|
+
name: "DSvgIcon",
|
|
122
|
+
props: svgIconProps,
|
|
68
123
|
setup(props) {
|
|
69
124
|
const {
|
|
70
125
|
name,
|
|
71
|
-
size,
|
|
72
126
|
color,
|
|
73
|
-
|
|
127
|
+
size
|
|
74
128
|
} = toRefs(props);
|
|
129
|
+
const ns2 = useNamespace("svg-icon");
|
|
130
|
+
const iconName = computed(() => `#icon-${name.value}`);
|
|
131
|
+
const iconSize = computed(() => {
|
|
132
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
133
|
+
});
|
|
134
|
+
const styles = {
|
|
135
|
+
width: iconSize.value,
|
|
136
|
+
height: iconSize.value
|
|
137
|
+
};
|
|
75
138
|
return () => {
|
|
76
|
-
return
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
139
|
+
return createVNode("svg", {
|
|
140
|
+
"class": ns2.b(),
|
|
141
|
+
"style": styles
|
|
142
|
+
}, [createVNode("use", {
|
|
143
|
+
"xlink:href": iconName.value,
|
|
144
|
+
"fill": color.value
|
|
145
|
+
}, null)]);
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
function isUrl(value) {
|
|
150
|
+
return /^((http|https):)?\/\//.test(value);
|
|
151
|
+
}
|
|
152
|
+
function useIconDom(props, ctx) {
|
|
153
|
+
const {
|
|
154
|
+
component,
|
|
155
|
+
name,
|
|
156
|
+
size,
|
|
157
|
+
color,
|
|
158
|
+
classPrefix,
|
|
159
|
+
rotate
|
|
160
|
+
} = toRefs(props);
|
|
161
|
+
const ns2 = useNamespace("icon");
|
|
162
|
+
const iconSize = computed(() => {
|
|
163
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
164
|
+
});
|
|
165
|
+
const IconComponent = component.value ? resolveDynamicComponent(component.value) : resolveDynamicComponent(svgIcon);
|
|
166
|
+
const imgIconDom = () => {
|
|
167
|
+
return createVNode("img", mergeProps({
|
|
168
|
+
"src": name.value,
|
|
169
|
+
"alt": name.value.split("/")[name.value.split("/").length - 1],
|
|
170
|
+
"class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns2.m("spin")],
|
|
171
|
+
"style": {
|
|
172
|
+
width: iconSize.value || "",
|
|
173
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
174
|
+
}
|
|
175
|
+
}, ctx.attrs), null);
|
|
176
|
+
};
|
|
177
|
+
const svgIconDom = () => {
|
|
178
|
+
return createVNode(IconComponent, mergeProps({
|
|
179
|
+
"name": name.value,
|
|
180
|
+
"color": color.value,
|
|
181
|
+
"size": iconSize.value,
|
|
182
|
+
"class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns2.m("spin")],
|
|
183
|
+
"style": {
|
|
184
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
185
|
+
}
|
|
186
|
+
}, ctx.attrs), null);
|
|
187
|
+
};
|
|
188
|
+
const fontIconDom = () => {
|
|
189
|
+
const fontIconClass = /^icon-/.test(name.value) ? name.value : `${classPrefix.value}-${name.value}`;
|
|
190
|
+
return createVNode("i", mergeProps({
|
|
191
|
+
"class": [classPrefix.value, fontIconClass, (rotate == null ? void 0 : rotate.value) === "infinite" && ns2.m("spin")],
|
|
192
|
+
"style": {
|
|
193
|
+
fontSize: iconSize.value,
|
|
194
|
+
color: color.value,
|
|
195
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
196
|
+
}
|
|
197
|
+
}, ctx.attrs), null);
|
|
198
|
+
};
|
|
199
|
+
const iconDom = () => {
|
|
200
|
+
return component.value ? svgIconDom() : isUrl(name.value) ? imgIconDom() : fontIconDom();
|
|
201
|
+
};
|
|
202
|
+
return {
|
|
203
|
+
iconDom
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
var Icon = defineComponent({
|
|
207
|
+
name: "DIcon",
|
|
208
|
+
props: iconProps,
|
|
209
|
+
emits: ["click"],
|
|
210
|
+
setup(props, ctx) {
|
|
211
|
+
const {
|
|
212
|
+
disabled,
|
|
213
|
+
operable
|
|
214
|
+
} = toRefs(props);
|
|
215
|
+
const {
|
|
216
|
+
iconDom
|
|
217
|
+
} = useIconDom(props, ctx);
|
|
218
|
+
const ns2 = useNamespace("icon");
|
|
219
|
+
const wrapClassed = computed(() => ({
|
|
220
|
+
[ns2.e("container")]: true,
|
|
221
|
+
[ns2.m("disabled")]: disabled.value,
|
|
222
|
+
[ns2.m("operable")]: operable.value
|
|
223
|
+
}));
|
|
224
|
+
const onClick = (e) => {
|
|
225
|
+
if (disabled.value) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
ctx.emit("click", e);
|
|
229
|
+
};
|
|
230
|
+
return () => {
|
|
231
|
+
var _a, _b, _c, _d;
|
|
232
|
+
return createVNode("div", {
|
|
233
|
+
"class": wrapClassed.value,
|
|
234
|
+
"onClick": onClick
|
|
235
|
+
}, [(_b = (_a = ctx.slots).prefix) == null ? void 0 : _b.call(_a), iconDom(), (_d = (_c = ctx.slots).suffix) == null ? void 0 : _d.call(_c)]);
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
var iconGroup = "";
|
|
240
|
+
defineComponent({
|
|
241
|
+
name: "DIconGroup",
|
|
242
|
+
setup(_, ctx) {
|
|
243
|
+
const ns2 = useNamespace("icon-group");
|
|
244
|
+
return () => {
|
|
245
|
+
var _a, _b;
|
|
246
|
+
return createVNode("div", {
|
|
247
|
+
"class": ns2.b()
|
|
248
|
+
}, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)]);
|
|
90
249
|
};
|
|
91
250
|
}
|
|
92
251
|
});
|
|
@@ -95,8 +254,9 @@ var Close = defineComponent({
|
|
|
95
254
|
setup(props, {
|
|
96
255
|
emit
|
|
97
256
|
}) {
|
|
257
|
+
const ns2 = useNamespace("notification");
|
|
98
258
|
return () => createVNode("div", {
|
|
99
|
-
"class": "
|
|
259
|
+
"class": ns2.e("icon-close"),
|
|
100
260
|
"onClick": (e) => emit("click", e)
|
|
101
261
|
}, [createVNode(Icon, {
|
|
102
262
|
"name": "close",
|
|
@@ -104,6 +264,106 @@ var Close = defineComponent({
|
|
|
104
264
|
}, null)]);
|
|
105
265
|
}
|
|
106
266
|
});
|
|
267
|
+
const ns = useNamespace("notification");
|
|
268
|
+
function SuccessIcon() {
|
|
269
|
+
return createVNode("svg", {
|
|
270
|
+
"width": "16px",
|
|
271
|
+
"height": "16px",
|
|
272
|
+
"viewBox": "0 0 16 16",
|
|
273
|
+
"version": "1.1",
|
|
274
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
275
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
276
|
+
}, [createVNode("defs", null, [createVNode("polygon", {
|
|
277
|
+
"id": "path-s",
|
|
278
|
+
"points": "6.53553391 9.77817459 12.1923882 4.12132034 13.6066017 5.53553391 6.53553391 12.6066017 3 9.07106781 4.41421356 7.65685425 6.53553391 9.77817459"
|
|
279
|
+
}, null)]), createVNode("g", {
|
|
280
|
+
"id": "correct",
|
|
281
|
+
"stroke": "none",
|
|
282
|
+
"stroke-width": "1",
|
|
283
|
+
"fill": "none",
|
|
284
|
+
"fill-rule": "evenodd"
|
|
285
|
+
}, [createVNode("mask", {
|
|
286
|
+
"id": "mask-2",
|
|
287
|
+
"fill": "white"
|
|
288
|
+
}, [createVNode("use", {
|
|
289
|
+
"xlink:href": "#path-s"
|
|
290
|
+
}, null)]), createVNode("use", {
|
|
291
|
+
"id": "Mask",
|
|
292
|
+
"class": ns.e("image-success-path"),
|
|
293
|
+
"xlink:href": "#path-s"
|
|
294
|
+
}, null)])]);
|
|
295
|
+
}
|
|
296
|
+
function WarningIcon() {
|
|
297
|
+
return createVNode("svg", {
|
|
298
|
+
"width": "16px",
|
|
299
|
+
"height": "16px",
|
|
300
|
+
"viewBox": "0 0 16 16",
|
|
301
|
+
"version": "1.1",
|
|
302
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
303
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
304
|
+
}, [createVNode("g", {
|
|
305
|
+
"stroke": "none",
|
|
306
|
+
"stroke-width": "1",
|
|
307
|
+
"fill": "none",
|
|
308
|
+
"fill-rule": "evenodd"
|
|
309
|
+
}, [createVNode("path", {
|
|
310
|
+
"class": ns.e("warning-outer"),
|
|
311
|
+
"d": "M8.96244623,0.57254229 L15.8714442,13.4101975 C16.1549662,13.9370117 15.9538562,14.5918482 15.4222523,14.8728158 C15.2642579,14.9563203 15.0879506,15 14.9088903,15 L1.09089441,15 C0.488410063,15 0,14.5159904 0,13.9189343 C0,13.7414873 0.0440768395,13.5667684 0.128340519,13.4101975 L7.03733844,0.57254229 C7.32086049,0.0457280838 7.98165058,-0.153569987 8.51325441,0.127397589 C8.70423071,0.228333932 8.8605922,0.383286648 8.96244623,0.57254229 Z"
|
|
312
|
+
}, null), createVNode("path", {
|
|
313
|
+
"class": ns.e("warning-inner"),
|
|
314
|
+
"stroke-width": "0.3",
|
|
315
|
+
"fill-rule": "nonzero",
|
|
316
|
+
"d": "M8.87894737,13 L7.08947368,13 L7.08947368,11.2105263 L8.87894737,11.2105263 L8.87894737,13 Z M8.62102372,9.86842105 L7.32800539,9.86842105 L7,4.5 L8.96842105,4.5 L8.62102372,9.86842105 Z"
|
|
317
|
+
}, null)])]);
|
|
318
|
+
}
|
|
319
|
+
function InfoIcon() {
|
|
320
|
+
return createVNode("svg", {
|
|
321
|
+
"width": "16px",
|
|
322
|
+
"height": "16px",
|
|
323
|
+
"viewBox": "0 0 16 16",
|
|
324
|
+
"version": "1.1",
|
|
325
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
326
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
327
|
+
}, [createVNode("g", {
|
|
328
|
+
"id": "info",
|
|
329
|
+
"stroke": "none",
|
|
330
|
+
"stroke-width": "1",
|
|
331
|
+
"fill": "none",
|
|
332
|
+
"fill-rule": "evenodd"
|
|
333
|
+
}, [createVNode("path", {
|
|
334
|
+
"class": ns.e("image-info-path"),
|
|
335
|
+
"d": "M7,13 L7,6 L9,6 L9,13 L7,13 Z M7,5 L7,3 L9,3 L9,5 L7,5 Z",
|
|
336
|
+
"id": "info"
|
|
337
|
+
}, null)])]);
|
|
338
|
+
}
|
|
339
|
+
function ErrorIcon() {
|
|
340
|
+
return createVNode("svg", {
|
|
341
|
+
"width": "16px",
|
|
342
|
+
"height": "16px",
|
|
343
|
+
"viewBox": "0 0 16 16",
|
|
344
|
+
"version": "1.1",
|
|
345
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
346
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
347
|
+
}, [createVNode("defs", null, [createVNode("polygon", {
|
|
348
|
+
"id": "path-e",
|
|
349
|
+
"points": "8.07106781 6.65685425 10.8994949 3.82842712 12.3137085 5.24264069 9.48528137 8.07106781 12.3137085 10.8994949 10.8994949 12.3137085 8.07106781 9.48528137 5.24264069 12.3137085 3.82842712 10.8994949 6.65685425 8.07106781 3.82842712 5.24264069 5.24264069 3.82842712"
|
|
350
|
+
}, null)]), createVNode("g", {
|
|
351
|
+
"id": "error",
|
|
352
|
+
"stroke": "none",
|
|
353
|
+
"stroke-width": "1",
|
|
354
|
+
"fill": "none",
|
|
355
|
+
"fill-rule": "evenodd"
|
|
356
|
+
}, [createVNode("mask", {
|
|
357
|
+
"id": "mask-2",
|
|
358
|
+
"fill": "white"
|
|
359
|
+
}, [createVNode("use", {
|
|
360
|
+
"xlink:href": "#path-e"
|
|
361
|
+
}, null)]), createVNode("use", {
|
|
362
|
+
"id": "Mask",
|
|
363
|
+
"class": ns.e("image-error-path"),
|
|
364
|
+
"xlink:href": "#path-e"
|
|
365
|
+
}, null)])]);
|
|
366
|
+
}
|
|
107
367
|
var TypeIcon = defineComponent({
|
|
108
368
|
props: {
|
|
109
369
|
type: {
|
|
@@ -115,22 +375,14 @@ var TypeIcon = defineComponent({
|
|
|
115
375
|
const {
|
|
116
376
|
type
|
|
117
377
|
} = toRefs(props);
|
|
378
|
+
const ns2 = useNamespace("notification");
|
|
118
379
|
const classes = computed(() => ({
|
|
119
|
-
"
|
|
120
|
-
[
|
|
380
|
+
[ns2.e("image")]: true,
|
|
381
|
+
[ns2.em("image", type.value)]: true
|
|
121
382
|
}));
|
|
122
|
-
const severityIconMap = {
|
|
123
|
-
info: "info-o",
|
|
124
|
-
success: "right-o",
|
|
125
|
-
warning: "warning-o",
|
|
126
|
-
error: "error-o"
|
|
127
|
-
};
|
|
128
383
|
return () => createVNode("span", {
|
|
129
384
|
"class": classes.value
|
|
130
|
-
}, [type.value !== "normal" && createVNode(
|
|
131
|
-
"name": severityIconMap[type.value],
|
|
132
|
-
"size": "16px"
|
|
133
|
-
}, null)]);
|
|
385
|
+
}, [type.value && type.value !== "normal" && (type.value === "success" && createVNode(SuccessIcon, null, null) || type.value === "info" && createVNode(InfoIcon, null, null) || type.value === "warning" && createVNode(WarningIcon, null, null) || type.value === "error" && createVNode(ErrorIcon, null, null))]);
|
|
134
386
|
}
|
|
135
387
|
});
|
|
136
388
|
function useNotification(props) {
|
|
@@ -198,6 +450,7 @@ var Notification = defineComponent({
|
|
|
198
450
|
close: close2,
|
|
199
451
|
handleDestroy
|
|
200
452
|
} = useEvent(props, emit);
|
|
453
|
+
const ns2 = useNamespace("notification");
|
|
201
454
|
return () => createVNode(Transition, {
|
|
202
455
|
"name": "notification-fade",
|
|
203
456
|
"onAfterLeave": handleDestroy
|
|
@@ -205,23 +458,23 @@ var Notification = defineComponent({
|
|
|
205
458
|
default: () => {
|
|
206
459
|
var _a;
|
|
207
460
|
return [modelValue.value && createVNode("div", {
|
|
208
|
-
"class":
|
|
461
|
+
"class": ns2.b()
|
|
209
462
|
}, [createVNode("div", {
|
|
210
463
|
"class": classes.value,
|
|
211
464
|
"onMouseenter": interrupt,
|
|
212
465
|
"onMouseleave": removeReset
|
|
213
466
|
}, [createVNode("div", {
|
|
214
|
-
"class": "
|
|
467
|
+
"class": ns2.e("item")
|
|
215
468
|
}, [createVNode(Close, {
|
|
216
469
|
"onClick": close2
|
|
217
470
|
}, null), title.value && createVNode(TypeIcon, {
|
|
218
471
|
"type": type.value
|
|
219
472
|
}, null), createVNode("div", {
|
|
220
|
-
"class": "
|
|
473
|
+
"class": ns2.e("message")
|
|
221
474
|
}, [createVNode("span", {
|
|
222
|
-
"class": "
|
|
475
|
+
"class": ns2.e("title")
|
|
223
476
|
}, [title.value]), createVNode("span", {
|
|
224
|
-
"class": "
|
|
477
|
+
"class": ns2.e("content")
|
|
225
478
|
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)])])])])])];
|
|
226
479
|
}
|
|
227
480
|
});
|
|
@@ -326,7 +579,7 @@ const uploadProps = {
|
|
|
326
579
|
},
|
|
327
580
|
placeholder: {
|
|
328
581
|
type: String,
|
|
329
|
-
default: "
|
|
582
|
+
default: ""
|
|
330
583
|
},
|
|
331
584
|
modelValue: {
|
|
332
585
|
type: Array,
|
|
@@ -365,30 +618,40 @@ const uploadProps = {
|
|
|
365
618
|
type: Function,
|
|
366
619
|
default: void 0
|
|
367
620
|
},
|
|
368
|
-
|
|
621
|
+
onError: {
|
|
369
622
|
type: Function,
|
|
370
623
|
default: void 0
|
|
371
624
|
},
|
|
372
|
-
|
|
625
|
+
onSuccess: {
|
|
626
|
+
type: Function,
|
|
627
|
+
default: void 0
|
|
628
|
+
},
|
|
629
|
+
onExceed: {
|
|
630
|
+
type: Function,
|
|
631
|
+
default: void 0
|
|
632
|
+
},
|
|
633
|
+
onProgress: {
|
|
634
|
+
type: Function,
|
|
635
|
+
default: void 0
|
|
636
|
+
},
|
|
637
|
+
onPreview: {
|
|
373
638
|
type: Function,
|
|
374
639
|
default: void 0
|
|
375
640
|
},
|
|
376
641
|
oneTimeUpload: {
|
|
377
642
|
type: Boolean,
|
|
378
643
|
default: false
|
|
644
|
+
},
|
|
645
|
+
limit: {
|
|
646
|
+
type: Number,
|
|
647
|
+
default: 0
|
|
648
|
+
},
|
|
649
|
+
httpRequest: {
|
|
650
|
+
type: Function,
|
|
651
|
+
default: void 0
|
|
379
652
|
}
|
|
380
653
|
};
|
|
381
|
-
const
|
|
382
|
-
const getBeyondMaximalFileSizeMsg = (filename, maximalSize) => {
|
|
383
|
-
return `\u6700\u5927\u652F\u6301\u4E0A\u4F20${maximalSize}MB\u7684\u6587\u4EF6, \u60A8\u4E0A\u4F20\u7684\u6587\u4EF6"${filename}"\u8D85\u8FC7\u53EF\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F`;
|
|
384
|
-
};
|
|
385
|
-
const getNotAllowedFileTypeMsg = (filename, scope) => {
|
|
386
|
-
return `\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B: "${scope}", \u60A8\u4E0A\u4F20\u7684\u6587\u4EF6"${filename}"\u4E0D\u5728\u5141\u8BB8\u8303\u56F4\u5185\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6`;
|
|
387
|
-
};
|
|
388
|
-
const getExistSameNameFilesMsg = (sameNames) => {
|
|
389
|
-
return `\u60A8\u4E0A\u4F20\u7684 "${sameNames}" \u5B58\u5728\u91CD\u540D\u6587\u4EF6, \u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6`;
|
|
390
|
-
};
|
|
391
|
-
const useSelectFiles = () => {
|
|
654
|
+
const useSelectFiles = (t) => {
|
|
392
655
|
const BEYOND_MAXIMAL_FILE_SIZE_MSG = ref("");
|
|
393
656
|
const simulateClickEvent = (input) => {
|
|
394
657
|
const evt = document.createEvent("MouseEvents");
|
|
@@ -449,13 +712,13 @@ const useSelectFiles = () => {
|
|
|
449
712
|
if (!isAllowedFileType(accept, file)) {
|
|
450
713
|
return {
|
|
451
714
|
checkError: true,
|
|
452
|
-
errorMsg: getNotAllowedFileTypeMsg(file.name, accept)
|
|
715
|
+
errorMsg: t("getNotAllowedFileTypeMsg")(file.name, accept)
|
|
453
716
|
};
|
|
454
717
|
}
|
|
455
718
|
if (uploadOptions && beyondMaximalSize(file.size, uploadOptions.maximumSize)) {
|
|
456
719
|
return {
|
|
457
720
|
checkError: true,
|
|
458
|
-
errorMsg: getBeyondMaximalFileSizeMsg(file.name, uploadOptions.maximumSize)
|
|
721
|
+
errorMsg: t("getBeyondMaximalFileSizeMsg")(file.name, uploadOptions.maximumSize || 0)
|
|
459
722
|
};
|
|
460
723
|
}
|
|
461
724
|
return { checkError: false, errorMsg: void 0 };
|
|
@@ -469,7 +732,7 @@ const useSelectFiles = () => {
|
|
|
469
732
|
};
|
|
470
733
|
const checkAllFilesSize = (fileSize, maximumSize) => {
|
|
471
734
|
if (beyondMaximalSize(fileSize, maximumSize)) {
|
|
472
|
-
BEYOND_MAXIMAL_FILE_SIZE_MSG.value = getAllFilesBeyondMaximalFileSizeMsg(maximumSize);
|
|
735
|
+
BEYOND_MAXIMAL_FILE_SIZE_MSG.value = t("getAllFilesBeyondMaximalFileSizeMsg")(maximumSize);
|
|
473
736
|
return { checkError: true, errorMsg: BEYOND_MAXIMAL_FILE_SIZE_MSG.value };
|
|
474
737
|
}
|
|
475
738
|
};
|
|
@@ -494,11 +757,11 @@ class FileUploader {
|
|
|
494
757
|
}
|
|
495
758
|
send(uploadFiles) {
|
|
496
759
|
return new Promise((resolve, reject) => {
|
|
497
|
-
const { uri, method, headers, authToken, authTokenHeader, additionalParameter, fileFieldName, withCredentials, responseType } = this.uploadOptions;
|
|
760
|
+
const { uri, method, headers, authToken, authTokenHeader, additionalParameter, fileFieldName, withCredentials, responseType } = this.uploadOptions || {};
|
|
498
761
|
const authTokenHeader_ = authTokenHeader || "Authorization";
|
|
499
762
|
const fileFieldName_ = fileFieldName || "file";
|
|
500
763
|
this.xhr = new XMLHttpRequest();
|
|
501
|
-
this.xhr.open(method || "POST", uri);
|
|
764
|
+
this.xhr.open(method || "POST", uri || "");
|
|
502
765
|
if (withCredentials) {
|
|
503
766
|
this.xhr.withCredentials = withCredentials;
|
|
504
767
|
}
|
|
@@ -510,7 +773,8 @@ class FileUploader {
|
|
|
510
773
|
}
|
|
511
774
|
if (headers) {
|
|
512
775
|
Object.keys(headers).forEach((key) => {
|
|
513
|
-
|
|
776
|
+
var _a;
|
|
777
|
+
(_a = this.xhr) == null ? void 0 : _a.setRequestHeader(key, headers[key]);
|
|
514
778
|
});
|
|
515
779
|
}
|
|
516
780
|
this.xhr.upload.onprogress = (e) => {
|
|
@@ -524,19 +788,21 @@ class FileUploader {
|
|
|
524
788
|
this.xhr = null;
|
|
525
789
|
};
|
|
526
790
|
this.xhr.onerror = () => {
|
|
527
|
-
|
|
791
|
+
var _a, _b;
|
|
792
|
+
this.response = (_a = this.xhr) == null ? void 0 : _a.response;
|
|
528
793
|
this.status = UploadStatus.failed;
|
|
529
|
-
reject({ file: this.file, response: this.xhr.response });
|
|
794
|
+
reject({ file: this.file, response: (_b = this.xhr) == null ? void 0 : _b.response });
|
|
530
795
|
};
|
|
531
796
|
this.xhr.onload = () => {
|
|
532
|
-
|
|
797
|
+
var _a, _b, _c;
|
|
798
|
+
if (((_a = this.xhr) == null ? void 0 : _a.readyState) === 4 && this.xhr.status >= 200 && this.xhr.status < 300) {
|
|
533
799
|
this.response = this.xhr.response;
|
|
534
800
|
this.status = UploadStatus.uploaded;
|
|
535
801
|
resolve({ file: this.file, response: this.xhr.response });
|
|
536
802
|
} else {
|
|
537
|
-
this.response = this.xhr.response;
|
|
803
|
+
this.response = (_b = this.xhr) == null ? void 0 : _b.response;
|
|
538
804
|
this.status = UploadStatus.failed;
|
|
539
|
-
reject({ file: this.file, response: this.xhr.response });
|
|
805
|
+
reject({ file: this.file, response: (_c = this.xhr) == null ? void 0 : _c.response });
|
|
540
806
|
}
|
|
541
807
|
};
|
|
542
808
|
});
|
|
@@ -643,7 +909,7 @@ const useUpload = () => {
|
|
|
643
909
|
};
|
|
644
910
|
const deleteFile = (file) => {
|
|
645
911
|
const deleteUploadFile = fileUploaders.value.find((fileUploader) => fileUploader.file === file);
|
|
646
|
-
deleteUploadFile.cancel();
|
|
912
|
+
deleteUploadFile == null ? void 0 : deleteUploadFile.cancel();
|
|
647
913
|
fileUploaders.value = fileUploaders.value.filter((fileUploader) => {
|
|
648
914
|
return file !== fileUploader.file;
|
|
649
915
|
});
|
|
@@ -672,11 +938,31 @@ const useUpload = () => {
|
|
|
672
938
|
};
|
|
673
939
|
};
|
|
674
940
|
var upload = "";
|
|
941
|
+
const camelize = (name) => name.substring(1).replace(/^\S/, (s) => s.toLocaleLowerCase());
|
|
942
|
+
function get(object, path) {
|
|
943
|
+
const keys = path.split(".");
|
|
944
|
+
let result = object;
|
|
945
|
+
keys.forEach((key) => {
|
|
946
|
+
var _a;
|
|
947
|
+
result = (_a = result[key]) != null ? _a : "";
|
|
948
|
+
});
|
|
949
|
+
return result;
|
|
950
|
+
}
|
|
951
|
+
function createI18nTranslate(name, app, newPrefix) {
|
|
952
|
+
const prefix = newPrefix || camelize(name) + ".";
|
|
953
|
+
return (path) => {
|
|
954
|
+
const messages = app == null ? void 0 : app.appContext.config.globalProperties.langMessages.value;
|
|
955
|
+
const message = get(messages, prefix + path) || get(messages, path);
|
|
956
|
+
return message;
|
|
957
|
+
};
|
|
958
|
+
}
|
|
675
959
|
var Upload = defineComponent({
|
|
676
960
|
name: "DUpload",
|
|
677
961
|
props: uploadProps,
|
|
678
962
|
emits: ["fileDrop", "fileOver", "fileSelect", "deleteUploadedFile", "update:modelValue"],
|
|
679
963
|
setup(props, ctx) {
|
|
964
|
+
const app = getCurrentInstance();
|
|
965
|
+
const t = createI18nTranslate("DUpload", app);
|
|
680
966
|
const {
|
|
681
967
|
uploadOptions,
|
|
682
968
|
placeholder,
|
|
@@ -688,14 +974,20 @@ var Upload = defineComponent({
|
|
|
688
974
|
modelValue,
|
|
689
975
|
multiple,
|
|
690
976
|
accept,
|
|
691
|
-
webkitdirectory
|
|
977
|
+
webkitdirectory,
|
|
978
|
+
limit,
|
|
979
|
+
httpRequest
|
|
692
980
|
} = toRefs(props);
|
|
981
|
+
const ns2 = useNamespace("upload");
|
|
982
|
+
const inputGroupNs = useNamespace("input-group");
|
|
983
|
+
const formControlNs = useNamespace("form-control");
|
|
984
|
+
const inputGroupAddOnNs = useNamespace("input-group-addon");
|
|
693
985
|
const {
|
|
694
986
|
triggerSelectFiles,
|
|
695
987
|
_validateFiles,
|
|
696
988
|
triggerDropFiles,
|
|
697
989
|
checkAllFilesSize
|
|
698
|
-
} = useSelectFiles();
|
|
990
|
+
} = useSelectFiles(t);
|
|
699
991
|
const {
|
|
700
992
|
fileUploaders,
|
|
701
993
|
addFile,
|
|
@@ -707,8 +999,8 @@ var Upload = defineComponent({
|
|
|
707
999
|
_oneTimeUpload,
|
|
708
1000
|
getSameNameFiles
|
|
709
1001
|
} = useUpload();
|
|
710
|
-
const
|
|
711
|
-
ref(
|
|
1002
|
+
const isDropOver = ref(false);
|
|
1003
|
+
const selectedFiles = ref([]);
|
|
712
1004
|
const alertMsg = (errorMsg) => {
|
|
713
1005
|
NotificationService.open({
|
|
714
1006
|
type: "warning",
|
|
@@ -716,10 +1008,11 @@ var Upload = defineComponent({
|
|
|
716
1008
|
});
|
|
717
1009
|
};
|
|
718
1010
|
const checkValid = () => {
|
|
1011
|
+
var _a;
|
|
719
1012
|
let totalFileSize = 0;
|
|
720
1013
|
fileUploaders.value.forEach((fileUploader) => {
|
|
721
1014
|
totalFileSize += fileUploader.file.size;
|
|
722
|
-
const checkResult = _validateFiles(fileUploader.file, accept.value, fileUploader.uploadOptions);
|
|
1015
|
+
const checkResult = _validateFiles(fileUploader.file, (accept == null ? void 0 : accept.value) || "", fileUploader.uploadOptions);
|
|
723
1016
|
if (checkResult && checkResult.checkError) {
|
|
724
1017
|
deleteFile(fileUploader.file);
|
|
725
1018
|
alertMsg(checkResult.errorMsg);
|
|
@@ -727,53 +1020,15 @@ var Upload = defineComponent({
|
|
|
727
1020
|
}
|
|
728
1021
|
});
|
|
729
1022
|
if (oneTimeUpload.value) {
|
|
730
|
-
const checkResult = checkAllFilesSize(totalFileSize, uploadOptions.value.maximumSize);
|
|
1023
|
+
const checkResult = checkAllFilesSize(totalFileSize, ((_a = uploadOptions == null ? void 0 : uploadOptions.value) == null ? void 0 : _a.maximumSize) || 0);
|
|
731
1024
|
if (checkResult && checkResult.checkError) {
|
|
732
1025
|
removeFiles();
|
|
733
1026
|
alertMsg(checkResult.errorMsg);
|
|
734
1027
|
}
|
|
735
1028
|
}
|
|
736
1029
|
};
|
|
737
|
-
const _dealFiles = (promise) => {
|
|
738
|
-
resetSameNameFiles();
|
|
739
|
-
promise.then((files) => {
|
|
740
|
-
files.forEach((file) => {
|
|
741
|
-
if (!multiple.value) {
|
|
742
|
-
removeFiles();
|
|
743
|
-
}
|
|
744
|
-
addFile(file, uploadOptions.value);
|
|
745
|
-
});
|
|
746
|
-
checkValid();
|
|
747
|
-
const sameNameFiles = getSameNameFiles();
|
|
748
|
-
if (uploadOptions.value && uploadOptions.value.checkSameName && sameNameFiles.length) {
|
|
749
|
-
alertMsg(getExistSameNameFilesMsg(sameNameFiles));
|
|
750
|
-
}
|
|
751
|
-
const selectedFiles = fileUploaders.value.filter((fileUploader) => fileUploader.status === UploadStatus.preLoad).map((fileUploader) => fileUploader.file);
|
|
752
|
-
ctx.emit("fileSelect", selectedFiles);
|
|
753
|
-
if (autoUpload.value) {
|
|
754
|
-
fileUpload();
|
|
755
|
-
}
|
|
756
|
-
}).catch((error) => {
|
|
757
|
-
alertMsg(error.message);
|
|
758
|
-
});
|
|
759
|
-
};
|
|
760
|
-
const handleClick = () => {
|
|
761
|
-
if (disabled.value) {
|
|
762
|
-
return;
|
|
763
|
-
}
|
|
764
|
-
_dealFiles(triggerSelectFiles({
|
|
765
|
-
accept: accept.value,
|
|
766
|
-
multiple: multiple.value,
|
|
767
|
-
webkitdirectory: webkitdirectory.value
|
|
768
|
-
}));
|
|
769
|
-
};
|
|
770
|
-
const onFileDrop = (files) => {
|
|
771
|
-
isDropOVer.value = false;
|
|
772
|
-
_dealFiles(triggerDropFiles(files));
|
|
773
|
-
ctx.emit("fileDrop", files);
|
|
774
|
-
};
|
|
775
1030
|
const onFileOver = (event) => {
|
|
776
|
-
|
|
1031
|
+
isDropOver.value = event;
|
|
777
1032
|
ctx.emit("fileOver", event);
|
|
778
1033
|
};
|
|
779
1034
|
const deleteUploadedFile = (file) => {
|
|
@@ -784,7 +1039,7 @@ var Upload = defineComponent({
|
|
|
784
1039
|
ctx.emit("update:modelValue", newUploadedFiles);
|
|
785
1040
|
};
|
|
786
1041
|
const onDeleteFile = (event, file, status) => {
|
|
787
|
-
event.stopPropagation();
|
|
1042
|
+
event == null ? void 0 : event.stopPropagation();
|
|
788
1043
|
if (status === UploadStatus.uploaded) {
|
|
789
1044
|
deleteUploadedFile(file);
|
|
790
1045
|
}
|
|
@@ -792,13 +1047,13 @@ var Upload = defineComponent({
|
|
|
792
1047
|
};
|
|
793
1048
|
const canUpload = () => {
|
|
794
1049
|
let uploadResult = Promise.resolve(true);
|
|
795
|
-
if (beforeUpload.value) {
|
|
796
|
-
const result = beforeUpload.value(getFullFiles());
|
|
1050
|
+
if (beforeUpload == null ? void 0 : beforeUpload.value) {
|
|
1051
|
+
const result = beforeUpload == null ? void 0 : beforeUpload.value(getFullFiles());
|
|
797
1052
|
if (typeof result !== "undefined") {
|
|
798
|
-
if (result
|
|
799
|
-
uploadResult = result;
|
|
800
|
-
} else {
|
|
1053
|
+
if (typeof result === "boolean") {
|
|
801
1054
|
uploadResult = Promise.resolve(result);
|
|
1055
|
+
} else {
|
|
1056
|
+
uploadResult = result;
|
|
802
1057
|
}
|
|
803
1058
|
}
|
|
804
1059
|
}
|
|
@@ -813,44 +1068,112 @@ var Upload = defineComponent({
|
|
|
813
1068
|
removeFiles();
|
|
814
1069
|
return;
|
|
815
1070
|
}
|
|
1071
|
+
if (typeof (httpRequest == null ? void 0 : httpRequest.value) === "function") {
|
|
1072
|
+
const files = fileUploaders.value.map((tempFileUploader) => tempFileUploader.file);
|
|
1073
|
+
httpRequest.value(files);
|
|
1074
|
+
return;
|
|
1075
|
+
}
|
|
816
1076
|
const uploadObservable = oneTimeUpload.value ? _oneTimeUpload() : upload2(fileUploader);
|
|
817
|
-
|
|
818
|
-
|
|
1077
|
+
props.onProgress && props.onProgress(selectedFiles.value, modelValue.value);
|
|
1078
|
+
uploadObservable == null ? void 0 : uploadObservable.then((results) => {
|
|
1079
|
+
props.onSuccess && props.onSuccess(results);
|
|
819
1080
|
const newFiles = results.map((result) => result.file);
|
|
820
1081
|
const newUploadedFiles = [...newFiles, ...modelValue.value];
|
|
821
1082
|
ctx.emit("update:modelValue", newUploadedFiles);
|
|
1083
|
+
props.onChange && props.onChange(newFiles, newUploadedFiles);
|
|
822
1084
|
}).catch((error) => {
|
|
823
|
-
props
|
|
1085
|
+
props.onError && props.onError(error);
|
|
1086
|
+
props.onChange && props.onChange([error.file], modelValue.value);
|
|
1087
|
+
});
|
|
1088
|
+
});
|
|
1089
|
+
};
|
|
1090
|
+
const _dealFiles = (promise) => {
|
|
1091
|
+
resetSameNameFiles();
|
|
1092
|
+
promise.then((files) => {
|
|
1093
|
+
if (limit.value && modelValue.value.length + files.length > limit.value) {
|
|
1094
|
+
props.onExceed && props.onExceed(files, modelValue.value);
|
|
1095
|
+
return;
|
|
1096
|
+
}
|
|
1097
|
+
props.onChange && props.onChange(files, modelValue.value);
|
|
1098
|
+
files.forEach((file) => {
|
|
1099
|
+
if (!multiple.value) {
|
|
1100
|
+
removeFiles();
|
|
1101
|
+
}
|
|
1102
|
+
addFile(file, uploadOptions == null ? void 0 : uploadOptions.value);
|
|
824
1103
|
});
|
|
1104
|
+
checkValid();
|
|
1105
|
+
const sameNameFiles = getSameNameFiles();
|
|
1106
|
+
if ((uploadOptions == null ? void 0 : uploadOptions.value) && uploadOptions.value.checkSameName && sameNameFiles.length) {
|
|
1107
|
+
alertMsg(t("getExistSameNameFilesMsg")(sameNameFiles));
|
|
1108
|
+
}
|
|
1109
|
+
selectedFiles.value = fileUploaders.value.filter((fileUploader) => fileUploader.status === UploadStatus.preLoad).map((fileUploader) => fileUploader.file);
|
|
1110
|
+
ctx.emit("fileSelect", selectedFiles.value);
|
|
1111
|
+
if (autoUpload.value) {
|
|
1112
|
+
fileUpload();
|
|
1113
|
+
}
|
|
1114
|
+
}).catch((error) => {
|
|
1115
|
+
alertMsg(error.message);
|
|
1116
|
+
});
|
|
1117
|
+
};
|
|
1118
|
+
const handleClick = () => {
|
|
1119
|
+
if (disabled.value) {
|
|
1120
|
+
return;
|
|
1121
|
+
}
|
|
1122
|
+
_dealFiles(triggerSelectFiles({
|
|
1123
|
+
accept: accept == null ? void 0 : accept.value,
|
|
1124
|
+
multiple: multiple.value,
|
|
1125
|
+
webkitdirectory: webkitdirectory.value
|
|
1126
|
+
}));
|
|
1127
|
+
};
|
|
1128
|
+
const onFileDrop = (files) => {
|
|
1129
|
+
isDropOver.value = false;
|
|
1130
|
+
_dealFiles(triggerDropFiles(files));
|
|
1131
|
+
ctx.emit("fileDrop", files);
|
|
1132
|
+
};
|
|
1133
|
+
const submit = (event, fileUploader) => {
|
|
1134
|
+
fileUpload(event, fileUploader);
|
|
1135
|
+
};
|
|
1136
|
+
const clearFiles = (event) => {
|
|
1137
|
+
fileUploaders.value.forEach((fileUploader) => {
|
|
1138
|
+
onDeleteFile(event, fileUploader.file, fileUploader.status);
|
|
825
1139
|
});
|
|
826
1140
|
};
|
|
1141
|
+
const clickSelectedFile = (event, file) => {
|
|
1142
|
+
event == null ? void 0 : event.stopPropagation();
|
|
1143
|
+
props.onPreview && props.onPreview(file);
|
|
1144
|
+
};
|
|
1145
|
+
ctx.expose({
|
|
1146
|
+
submit,
|
|
1147
|
+
clearFiles
|
|
1148
|
+
});
|
|
827
1149
|
return () => {
|
|
828
1150
|
var _a, _b, _c, _d;
|
|
829
1151
|
return createVNode("div", null, [withDirectives(createVNode("div", {
|
|
830
|
-
"class":
|
|
831
|
-
"style": `border: ${
|
|
1152
|
+
"class": ns2.b(),
|
|
1153
|
+
"style": `border: ${isDropOver.value ? "1px solid #15bf15" : "0"}`
|
|
832
1154
|
}, [((_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)) ? createVNode("div", {
|
|
833
1155
|
"onClick": handleClick
|
|
834
1156
|
}, [ctx.slots.default()]) : createVNode("div", {
|
|
835
|
-
"class":
|
|
1157
|
+
"class": [inputGroupNs.b(), disabled.value ? "disabled" : ""],
|
|
836
1158
|
"onClick": handleClick
|
|
837
1159
|
}, [fileUploaders.value.length === 0 && createVNode("div", {
|
|
838
|
-
"class": "
|
|
839
|
-
}, [placeholder.value]), fileUploaders.value.length > 0 && createVNode("ul", {
|
|
840
|
-
"class": "
|
|
1160
|
+
"class": [formControlNs.b(), ns2.e("placeholder")]
|
|
1161
|
+
}, [placeholder.value || t("placeholder")]), fileUploaders.value.length > 0 && createVNode("ul", {
|
|
1162
|
+
"class": [formControlNs.b(), ns2.e("files-list")]
|
|
841
1163
|
}, [fileUploaders.value.map((fileUploader, index2) => createVNode("li", {
|
|
842
1164
|
"key": index2,
|
|
843
|
-
"class": "
|
|
844
|
-
"style": "display: inline-block;
|
|
845
|
-
"title": fileUploader.file.name
|
|
1165
|
+
"class": [ns2.e("file-item"), ns2.e("file-tag")],
|
|
1166
|
+
"style": "display: inline-block;",
|
|
1167
|
+
"title": fileUploader.file.name,
|
|
1168
|
+
"onClick": (event) => clickSelectedFile(event, fileUploader.file)
|
|
846
1169
|
}, [createVNode("span", {
|
|
847
|
-
"class":
|
|
1170
|
+
"class": [ns2.e("filename"), fileUploader.status === UploadStatus.failed ? ns2.m("failed-color") : ""]
|
|
848
1171
|
}, [fileUploader.file.name]), createVNode(resolveComponent("d-icon"), {
|
|
849
1172
|
"name": "close",
|
|
850
|
-
"class":
|
|
1173
|
+
"class": [(fileUploader == null ? void 0 : fileUploader.status) === UploadStatus.failed ? ns2.e("delete-file-button") : "", (fileUploader == null ? void 0 : fileUploader.status) === UploadStatus.uploading || (fileUploader == null ? void 0 : fileUploader.status) === UploadStatus.uploaded ? ns2.e("delete") : ""],
|
|
851
1174
|
"onClick": (event) => onDeleteFile(event, fileUploader.file, fileUploader.status)
|
|
852
1175
|
}, null), fileUploader.status === UploadStatus.uploading && createVNode("div", {
|
|
853
|
-
"class": "icon
|
|
1176
|
+
"class": ["icon", ns2.e("progress")]
|
|
854
1177
|
}, [createVNode(resolveComponent("d-progress"), {
|
|
855
1178
|
"isCircle": true,
|
|
856
1179
|
"percentage": fileUploader.percentage,
|
|
@@ -864,7 +1187,7 @@ var Upload = defineComponent({
|
|
|
864
1187
|
"name": "right",
|
|
865
1188
|
"color": "#50d4ab"
|
|
866
1189
|
}, null)]))]), createVNode("span", {
|
|
867
|
-
"class":
|
|
1190
|
+
"class": inputGroupAddOnNs.b()
|
|
868
1191
|
}, [createVNode(resolveComponent("d-icon"), {
|
|
869
1192
|
"name": "more-operate",
|
|
870
1193
|
"color": "#252b3a"
|