vue-devui 1.5.4-alpha.0 → 1.5.5
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/action-timeline/index.es.js +161 -0
- package/action-timeline/index.umd.js +1 -0
- package/action-timeline/package.json +8 -0
- package/action-timeline/style.css +1 -0
- package/carousel/index.es.js +448 -0
- package/carousel/index.umd.js +1 -0
- package/carousel/package.json +8 -0
- package/carousel/style.css +1 -0
- package/code-editor/index.es.js +1 -1
- package/code-editor/index.umd.js +1 -1
- package/code-review/index.es.js +73 -0
- package/code-review/index.umd.js +1 -0
- package/code-review/package.json +8 -0
- package/code-review/style.css +1 -0
- package/editor-md/index.es.js +9173 -0
- package/editor-md/index.umd.js +142 -0
- package/editor-md/package.json +8 -0
- package/editor-md/style.css +1 -0
- package/global.d.ts +10 -4
- package/grid/index.es.js +25 -1
- package/grid/index.umd.js +1 -1
- package/modal/index.es.js +10 -10
- package/modal/index.umd.js +1 -1
- package/nuxt/components/ActionTimeline.js +3 -0
- package/nuxt/components/Carousel.js +3 -0
- package/nuxt/components/CarouselItem.js +3 -0
- package/nuxt/components/CodeReview.js +3 -0
- package/nuxt/components/EditorMd.js +3 -0
- package/nuxt/components/EditorMdInjectionKey.js +3 -0
- package/nuxt/components/MdRender.js +3 -0
- package/nuxt/components/ModalBody.js +3 -0
- package/nuxt/components/ModalFooter.js +3 -0
- package/nuxt/components/ModalHeader.js +3 -0
- package/nuxt/components/SplitterPane.js +3 -0
- package/nuxt/components/actionTimelineProps.js +3 -0
- package/nuxt/components/codeReviewProps.js +3 -0
- package/nuxt/components/editorMdProps.js +3 -0
- package/nuxt/components/mdRenderProps.js +3 -0
- package/nuxt/components/mdToolbarItemProps.js +3 -0
- package/package.json +10 -3
- package/splitter/index.es.js +1 -1
- package/splitter/index.umd.js +7 -7
- package/style.css +1 -1
- package/types/action-timeline/index.d.ts +11 -0
- package/types/action-timeline/src/action-timeline-types.d.ts +46 -0
- package/types/action-timeline/src/action-timeline.d.ts +55 -0
- package/types/auto-complete/src/auto-complete.d.ts +1 -1
- package/types/carousel/index.d.ts +1 -2
- package/types/code-review/index.d.ts +11 -0
- package/types/code-review/src/code-review-types.d.ts +14 -0
- package/types/code-review/src/code-review.d.ts +27 -0
- package/types/code-review/src/composables/use-code-review.d.ts +4 -0
- package/types/editor-md/index.d.ts +12 -0
- package/types/editor-md/src/components/font-color.d.ts +2 -0
- package/types/editor-md/src/components/font-size.d.ts +2 -0
- package/types/editor-md/src/components/md-render.d.ts +95 -0
- package/types/editor-md/src/components/toolbar-item.d.ts +14 -0
- package/types/editor-md/src/components/toolbar.d.ts +3 -0
- package/types/editor-md/src/composables/helper.d.ts +2 -0
- package/types/editor-md/src/composables/md-render-service.d.ts +26 -0
- package/types/editor-md/src/composables/use-editor-md-render.d.ts +10 -0
- package/types/editor-md/src/composables/use-editor-md-theme.d.ts +3 -0
- package/types/editor-md/src/composables/use-editor-md-toolbar.d.ts +4 -0
- package/types/editor-md/src/composables/use-editor-md.d.ts +15 -0
- package/types/editor-md/src/editor-md-types.d.ts +172 -0
- package/types/editor-md/src/editor-md.d.ts +198 -0
- package/types/editor-md/src/icons-config.d.ts +23 -0
- package/types/editor-md/src/plugins/mermaid.d.ts +2 -0
- package/types/editor-md/src/plugins/toc.d.ts +1 -0
- package/types/editor-md/src/toolbar-config.d.ts +22 -0
- package/types/editor-md/src/utils.d.ts +2 -0
- package/types/grid/src/grid-types.d.ts +4 -0
- package/types/grid/src/row.d.ts +9 -0
- package/types/menu/src/menu.d.ts +1 -1
- package/types/modal/index.d.ts +4 -1
- package/types/nav-sprite/src/nav-sprite.d.ts +1 -1
- package/types/splitter/index.d.ts +2 -1
- package/types/upload/index.d.ts +2 -1
- package/types/vue-devui.d.ts +7 -4
- package/upload/index.es.js +1 -1
- package/upload/index.umd.js +1 -1
- package/vue-devui.es.js +16173 -14198
- package/vue-devui.umd.js +135 -20
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { defineComponent, toRefs, computed, createVNode, Fragment } from "vue";
|
|
2
|
+
const actionTimelineProps = {
|
|
3
|
+
data: {
|
|
4
|
+
type: Array
|
|
5
|
+
},
|
|
6
|
+
layout: {
|
|
7
|
+
type: String,
|
|
8
|
+
default: "horizontal"
|
|
9
|
+
},
|
|
10
|
+
loadMoreConfig: {
|
|
11
|
+
type: Object
|
|
12
|
+
},
|
|
13
|
+
showTailLine: {
|
|
14
|
+
type: Boolean,
|
|
15
|
+
default: true
|
|
16
|
+
},
|
|
17
|
+
showStatusBgColor: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: false
|
|
20
|
+
},
|
|
21
|
+
showStatusLineColor: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
default: false
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var actionTimeline = "";
|
|
27
|
+
var ActionTimeline = defineComponent({
|
|
28
|
+
name: "DActionTimeline",
|
|
29
|
+
props: actionTimelineProps,
|
|
30
|
+
emits: ["actionLoadMore"],
|
|
31
|
+
setup(props, ctx) {
|
|
32
|
+
const {
|
|
33
|
+
layout,
|
|
34
|
+
data,
|
|
35
|
+
showTailLine,
|
|
36
|
+
showStatusBgColor,
|
|
37
|
+
showStatusLineColor,
|
|
38
|
+
loadMoreConfig
|
|
39
|
+
} = toRefs(props);
|
|
40
|
+
const isVertical = computed(() => layout.value === "vertical");
|
|
41
|
+
const containerClass = computed(() => ({
|
|
42
|
+
"dp-action-timeline": true,
|
|
43
|
+
"dp-action-timeline-status-bg": showStatusBgColor.value,
|
|
44
|
+
"dp-action-timeline-status-line": showStatusLineColor.value
|
|
45
|
+
}));
|
|
46
|
+
const timelineItemClass = (childIndex, parentIndex, actionData, item) => ({
|
|
47
|
+
"dp-action-timeline-item": true,
|
|
48
|
+
"dp-action-timeline-item-info": showStatusLineColor.value && item.status === "color-info",
|
|
49
|
+
"dp-action-timeline-item-danger": showStatusLineColor.value && item.status === "color-danger",
|
|
50
|
+
"dp-action-timeline-item-success": showStatusLineColor.value && item.status === "color-info",
|
|
51
|
+
"vertical-list-item": isVertical.value,
|
|
52
|
+
"list-last-item": actionData.actions && (data == null ? void 0 : data.value) && childIndex === actionData.actions.length - 1 && parentIndex === data.value.length - 1 && showTailLine.value
|
|
53
|
+
});
|
|
54
|
+
const itemIconClass = (item, flag = false) => {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
if (flag) {
|
|
57
|
+
return {
|
|
58
|
+
"dp-action-timeline-list-icon": true,
|
|
59
|
+
"item-empty-icon": !item.icon,
|
|
60
|
+
[(_a = item.status) != null ? _a : ""]: true
|
|
61
|
+
};
|
|
62
|
+
} else {
|
|
63
|
+
return {
|
|
64
|
+
icon: true,
|
|
65
|
+
[(_b = item.icon) != null ? _b : ""]: true
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const renderVerticalBody = (actionData, parentIndex) => {
|
|
70
|
+
var _a;
|
|
71
|
+
return (_a = actionData.actions) == null ? void 0 : _a.map((item, index2) => {
|
|
72
|
+
var _a2, _b, _c, _d;
|
|
73
|
+
return createVNode("div", {
|
|
74
|
+
"class": timelineItemClass(index2, parentIndex, actionData, item)
|
|
75
|
+
}, [createVNode("div", {
|
|
76
|
+
"class": "vertical-list-item-top"
|
|
77
|
+
}, [createVNode("div", {
|
|
78
|
+
"class": "vertical-list-item-top-left"
|
|
79
|
+
}, [createVNode("div", {
|
|
80
|
+
"class": itemIconClass(item, true)
|
|
81
|
+
}, [!item.icon && createVNode("div", {
|
|
82
|
+
"class": "list-empty-icon-dot"
|
|
83
|
+
}, null), createVNode("em", {
|
|
84
|
+
"class": itemIconClass(item)
|
|
85
|
+
}, null)]), createVNode("div", {
|
|
86
|
+
"class": "vertical-list-item-top-left-title"
|
|
87
|
+
}, [(_b = (_a2 = ctx.slots).title) == null ? void 0 : _b.call(_a2, {
|
|
88
|
+
option: item
|
|
89
|
+
})])]), createVNode("div", {
|
|
90
|
+
"class": "dp-action-timeline-item-data"
|
|
91
|
+
}, [item.createdAt])]), createVNode("div", {
|
|
92
|
+
"class": "vertical-list-item-bottom"
|
|
93
|
+
}, [(_d = (_c = ctx.slots).content) == null ? void 0 : _d.call(_c, {
|
|
94
|
+
option: item
|
|
95
|
+
})])]);
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
const renderHorizontalBody = (actionData, parentIndex) => {
|
|
99
|
+
var _a;
|
|
100
|
+
return (_a = actionData.actions) == null ? void 0 : _a.map((item, index2) => {
|
|
101
|
+
var _a2, _b, _c;
|
|
102
|
+
return createVNode("div", {
|
|
103
|
+
"class": timelineItemClass(index2, parentIndex, actionData, item)
|
|
104
|
+
}, [createVNode("div", {
|
|
105
|
+
"class": itemIconClass(item, true)
|
|
106
|
+
}, [!item.icon && createVNode("div", {
|
|
107
|
+
"class": "list-empty-icon-dot"
|
|
108
|
+
}, null), createVNode("em", {
|
|
109
|
+
"class": itemIconClass(item)
|
|
110
|
+
}, null)]), createVNode("div", {
|
|
111
|
+
"class": "dp-action-timeline-list-data"
|
|
112
|
+
}, [(_b = (_a2 = ctx.slots).content) == null ? void 0 : _b.call(_a2, {
|
|
113
|
+
option: item
|
|
114
|
+
})]), createVNode("div", {
|
|
115
|
+
"class": "dp-action-timeline-item-date"
|
|
116
|
+
}, [item.createdAt]), !(actionData.actions && (data == null ? void 0 : data.value) && index2 === actionData.actions.length - 1 && parentIndex === ((_c = data == null ? void 0 : data.value) == null ? void 0 : _c.length) - 1) && createVNode("div", {
|
|
117
|
+
"class": "border-bottom"
|
|
118
|
+
}, null)]);
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
const handleLoadMoreClicked = () => {
|
|
122
|
+
ctx.emit("actionLoadMore");
|
|
123
|
+
};
|
|
124
|
+
const handleBackTopClicked = () => {
|
|
125
|
+
window.scrollTo(0, 0);
|
|
126
|
+
};
|
|
127
|
+
const renderLoadMore = () => {
|
|
128
|
+
var _a, _b;
|
|
129
|
+
return createVNode("div", {
|
|
130
|
+
"class": "dp-action-timeline-operation-container"
|
|
131
|
+
}, [((_a = loadMoreConfig == null ? void 0 : loadMoreConfig.value) == null ? void 0 : _a.loadMore) && createVNode("div", {
|
|
132
|
+
"class": "dp-action-timeline-operation",
|
|
133
|
+
"onClick": handleLoadMoreClicked
|
|
134
|
+
}, [loadMoreConfig.value.loadMoreText]), ((_b = loadMoreConfig == null ? void 0 : loadMoreConfig.value) == null ? void 0 : _b.isToTop) && createVNode("div", {
|
|
135
|
+
"class": "dp-action-timeline-operation",
|
|
136
|
+
"onClick": handleBackTopClicked
|
|
137
|
+
}, [loadMoreConfig.value.toTopText])]);
|
|
138
|
+
};
|
|
139
|
+
return () => {
|
|
140
|
+
var _a, _b;
|
|
141
|
+
return createVNode(Fragment, null, [(_a = data == null ? void 0 : data.value) == null ? void 0 : _a.map((item, parentIndex) => createVNode("div", {
|
|
142
|
+
"class": containerClass.value
|
|
143
|
+
}, [createVNode("div", {
|
|
144
|
+
"class": "dp-action-timeline-title"
|
|
145
|
+
}, [createVNode("p", null, [item.time])]), createVNode("div", {
|
|
146
|
+
"class": "dp-action-timeline-body"
|
|
147
|
+
}, [isVertical.value ? renderVerticalBody(item, parentIndex) : renderHorizontalBody(item, parentIndex)]), createVNode("div", {
|
|
148
|
+
"class": "border-left"
|
|
149
|
+
}, null)])), Boolean((_b = data == null ? void 0 : data.value) == null ? void 0 : _b.length) && renderLoadMore()]);
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
var index = {
|
|
154
|
+
title: "ActionTimeline \u64CD\u4F5C\u65F6\u95F4\u8F74",
|
|
155
|
+
category: "\u6F14\u8FDB\u4E2D",
|
|
156
|
+
status: "100%",
|
|
157
|
+
install(app) {
|
|
158
|
+
app.component(ActionTimeline.name, ActionTimeline);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
export { ActionTimeline, actionTimelineProps, index as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(a,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(a=typeof globalThis!="undefined"?globalThis:a||self,e(a.index={},a.Vue))})(this,function(a,e){"use strict";const v={data:{type:Array},layout:{type:String,default:"horizontal"},loadMoreConfig:{type:Object},showTailLine:{type:Boolean,default:!0},showStatusBgColor:{type:Boolean,default:!1},showStatusLineColor:{type:Boolean,default:!1}};var k="",f=e.defineComponent({name:"DActionTimeline",props:v,emits:["actionLoadMore"],setup(N,u){const{layout:C,data:i,showTailLine:B,showStatusBgColor:b,showStatusLineColor:p,loadMoreConfig:s}=e.toRefs(N),y=e.computed(()=>C.value==="vertical"),w=e.computed(()=>({"dp-action-timeline":!0,"dp-action-timeline-status-bg":b.value,"dp-action-timeline-status-line":p.value})),T=(o,n,l,t)=>({"dp-action-timeline-item":!0,"dp-action-timeline-item-info":p.value&&t.status==="color-info","dp-action-timeline-item-danger":p.value&&t.status==="color-danger","dp-action-timeline-item-success":p.value&&t.status==="color-info","vertical-list-item":y.value,"list-last-item":l.actions&&(i==null?void 0:i.value)&&o===l.actions.length-1&&n===i.value.length-1&&B.value}),m=(o,n=!1)=>{var l,t;return n?{"dp-action-timeline-list-icon":!0,"item-empty-icon":!o.icon,[(l=o.status)!=null?l:""]:!0}:{icon:!0,[(t=o.icon)!=null?t:""]:!0}},L=(o,n)=>{var l;return(l=o.actions)==null?void 0:l.map((t,V)=>{var c,d,r,h;return e.createVNode("div",{class:T(V,n,o,t)},[e.createVNode("div",{class:"vertical-list-item-top"},[e.createVNode("div",{class:"vertical-list-item-top-left"},[e.createVNode("div",{class:m(t,!0)},[!t.icon&&e.createVNode("div",{class:"list-empty-icon-dot"},null),e.createVNode("em",{class:m(t)},null)]),e.createVNode("div",{class:"vertical-list-item-top-left-title"},[(d=(c=u.slots).title)==null?void 0:d.call(c,{option:t})])]),e.createVNode("div",{class:"dp-action-timeline-item-data"},[t.createdAt])]),e.createVNode("div",{class:"vertical-list-item-bottom"},[(h=(r=u.slots).content)==null?void 0:h.call(r,{option:t})])])})},A=(o,n)=>{var l;return(l=o.actions)==null?void 0:l.map((t,V)=>{var c,d,r;return e.createVNode("div",{class:T(V,n,o,t)},[e.createVNode("div",{class:m(t,!0)},[!t.icon&&e.createVNode("div",{class:"list-empty-icon-dot"},null),e.createVNode("em",{class:m(t)},null)]),e.createVNode("div",{class:"dp-action-timeline-list-data"},[(d=(c=u.slots).content)==null?void 0:d.call(c,{option:t})]),e.createVNode("div",{class:"dp-action-timeline-item-date"},[t.createdAt]),!(o.actions&&(i==null?void 0:i.value)&&V===o.actions.length-1&&n===((r=i==null?void 0:i.value)==null?void 0:r.length)-1)&&e.createVNode("div",{class:"border-bottom"},null)])})},F=()=>{u.emit("actionLoadMore")},S=()=>{window.scrollTo(0,0)},M=()=>{var o,n;return e.createVNode("div",{class:"dp-action-timeline-operation-container"},[((o=s==null?void 0:s.value)==null?void 0:o.loadMore)&&e.createVNode("div",{class:"dp-action-timeline-operation",onClick:F},[s.value.loadMoreText]),((n=s==null?void 0:s.value)==null?void 0:n.isToTop)&&e.createVNode("div",{class:"dp-action-timeline-operation",onClick:S},[s.value.toTopText])])};return()=>{var o,n;return e.createVNode(e.Fragment,null,[(o=i==null?void 0:i.value)==null?void 0:o.map((l,t)=>e.createVNode("div",{class:w.value},[e.createVNode("div",{class:"dp-action-timeline-title"},[e.createVNode("p",null,[l.time])]),e.createVNode("div",{class:"dp-action-timeline-body"},[y.value?L(l,t):A(l,t)]),e.createVNode("div",{class:"border-left"},null)])),Boolean((n=i==null?void 0:i.value)==null?void 0:n.length)&&M()])}}}),g={title:"ActionTimeline \u64CD\u4F5C\u65F6\u95F4\u8F74",category:"\u6F14\u8FDB\u4E2D",status:"100%",install(N){N.component(f.name,f)}};a.ActionTimeline=f,a.actionTimelineProps=v,a.default=g,Object.defineProperty(a,"__esModule",{value:!0}),a[Symbol.toStringTag]="Module"});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dp-action-timeline{background-color:var(--devui-base-bg, #ffffff);padding:0 20px;position:relative}.dp-action-timeline .dp-action-timeline-title{font-size:var(--devui-font-size-sm, 12px);padding-top:12px}.dp-action-timeline .dp-action-timeline-title>p{position:relative;z-index:2;background-color:var(--devui-base-bg, #ffffff);padding:8px 0}.dp-action-timeline .dp-action-timeline-item{display:flex;position:relative;padding:12px 0}.dp-action-timeline .dp-action-timeline-item.list-last-item:before{content:"";position:absolute;top:24px;height:calc(100% - 24px);left:10px;border-left:4px solid var(--devui-base-bg, #ffffff);z-index:2}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon{width:24px;height:24px;margin-right:8px;border-radius:50%;background-color:var(--devui-list-item-hover-bg, #f2f2f3);position:relative;z-index:3}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon:before,.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon:after{content:"";position:absolute;height:2px;width:2px;left:11px;background-color:var(--devui-base-bg, #ffffff);z-index:3}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon:before{top:-2px}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon:after{bottom:-2px}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.item-empty-icon{background:none}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.item-empty-icon:before{top:7px}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.item-empty-icon:before{bottom:7px}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.item-empty-icon .list-empty-icon-dot{position:absolute;width:6px;height:6px;background-color:var(--devui-list-item-hover-bg, #f2f2f3);top:9px;left:9px;border-radius:50%}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon .icon{width:24px;font-size:var(--devui-font-size-icon, 16px);color:var(--devui-icon-text, #71757f);text-align:center;line-height:24px}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.color-info .icon{color:var(--devui-info, #5e7ce0)}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.color-danger .icon{color:var(--devui-danger, #f66f6a)}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.color-success .icon{color:var(--devui-success, #50d4ab)}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-icon.color-warning .icon{color:var(--devui-warning, #fac20a)}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-list-data{flex:1;word-break:break-all}.dp-action-timeline .dp-action-timeline-item .dp-action-timeline-item-date{font-size:var(--devui-font-size-sm, 12px);color:var(--devui-aide-text, #71757f)}.dp-action-timeline .dp-action-timeline-item .border-bottom{position:absolute;bottom:0;width:calc(100% - 12px);height:1px;margin-left:12px;background-color:var(--devui-dividing-line, #f2f2f3)}.dp-action-timeline .dp-action-timeline-item.vertical-list-item{display:flex;flex-direction:column}.dp-action-timeline .dp-action-timeline-item.vertical-list-item .vertical-list-item-top{display:flex;align-items:center;justify-content:space-between}.dp-action-timeline .dp-action-timeline-item.vertical-list-item .vertical-list-item-top .vertical-list-item-top-left{display:flex;align-items:center}.dp-action-timeline .border-left{position:absolute;bottom:0;left:31px;width:2px;height:100%;background-color:var(--devui-dividing-line, #f2f2f3);z-index:1}.dp-action-timeline:first-child .border-left{height:calc(100% - 26px)}.dp-action-timeline-operation-container .dp-action-timeline-operation{margin:0 18px;padding:4px 0;height:32px;font-size:var(--devui-font-size-lg, 14px);text-align:center;border:1px solid var(--devui-form-control-line, #d7d8da);background-color:var(--devui-base-bg, #ffffff);border-radius:4px;cursor:pointer;transition:color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)),border-color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.dp-action-timeline-operation-container .dp-action-timeline-operation:hover{color:var(--devui-brand-active, #526ecc);border-color:var(--devui-form-control-line-active, #5e7ce0)}.dp-action-timeline-status-bg .dp-action-timeline-list-icon.color-info{background-color:var(--devui-info-bg, #f2f5fc)}.dp-action-timeline-status-bg .dp-action-timeline-list-icon.color-danger{background-color:var(--devui-danger-bg, #ffeeed)}.dp-action-timeline-status-bg .dp-action-timeline-list-icon.color-success{background-color:var(--devui-success-bg, #edfff9)}.dp-action-timeline-status-bg .dp-action-timeline-list-icon.color-warning{background-color:var(--devui-warning-bg, #fff3e8)}.dp-action-timeline-status-line .border-left{display:none}.dp-action-timeline-status-line .dp-action-timeline-item:before{content:"";position:absolute;top:40px;height:calc(100% - 40px);left:11px;border-left:2px solid transparent;z-index:2;border-color:var(--devui-line, #d7d8da)}.dp-action-timeline-status-line .dp-action-timeline-item.dp-action-timeline-item-info:before{content:"";position:absolute;top:40px;height:calc(100% - 40px);left:11px;border-left:2px solid transparent;z-index:2;border-color:var(--devui-info-line, #5e7ce0)}.dp-action-timeline-status-line .dp-action-timeline-item.dp-action-timeline-item-danger:before{content:"";position:absolute;top:40px;height:calc(100% - 40px);left:11px;border-left:2px solid transparent;z-index:2;border-color:var(--devui-danger-line, #f66f6a)}.dp-action-timeline-status-line .dp-action-timeline-item.dp-action-timeline-item-success:before{content:"";position:absolute;top:40px;height:calc(100% - 40px);left:11px;border-left:2px solid transparent;z-index:2;border-color:var(--devui-success-line, #50d4ab)}.dp-action-timeline-status-line .dp-action-timeline-item.dp-action-timeline-item-warning:before{content:"";position:absolute;top:40px;height:calc(100% - 40px);left:11px;border-left:2px solid transparent;z-index:2;border-color:var(--devui-warning-line, #fa9841)}.dp-action-timeline-status-line .dp-action-timeline-item.list-last-item:before{content:"";position:absolute;top:40px;height:calc(100% - 40px);left:11px;border-left:2px solid transparent;z-index:2;border-color:var(--devui-base-bg, #ffffff)}
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
import { defineComponent, toRefs, computed, createVNode, resolveDynamicComponent, mergeProps, ref, watch, onMounted, onBeforeUnmount, Fragment, Comment } from "vue";
|
|
2
|
+
const carouselProps = {
|
|
3
|
+
arrowTrigger: {
|
|
4
|
+
type: String,
|
|
5
|
+
default: "hover"
|
|
6
|
+
},
|
|
7
|
+
autoplay: {
|
|
8
|
+
type: Boolean,
|
|
9
|
+
default: false
|
|
10
|
+
},
|
|
11
|
+
autoplaySpeed: {
|
|
12
|
+
type: Number,
|
|
13
|
+
default: 3e3
|
|
14
|
+
},
|
|
15
|
+
height: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: "100%"
|
|
18
|
+
},
|
|
19
|
+
showDots: {
|
|
20
|
+
type: Boolean,
|
|
21
|
+
default: true
|
|
22
|
+
},
|
|
23
|
+
dotTrigger: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: "click"
|
|
26
|
+
},
|
|
27
|
+
dotPosition: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: "bottom"
|
|
30
|
+
},
|
|
31
|
+
activeIndex: {
|
|
32
|
+
type: Number,
|
|
33
|
+
default: 0
|
|
34
|
+
},
|
|
35
|
+
transitionSpeed: {
|
|
36
|
+
type: Number,
|
|
37
|
+
default: 500
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const DEFAULT_PREFIX = "icon";
|
|
41
|
+
const iconProps = {
|
|
42
|
+
name: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: "",
|
|
45
|
+
required: true
|
|
46
|
+
},
|
|
47
|
+
size: {
|
|
48
|
+
type: [Number, String],
|
|
49
|
+
default: "inherit"
|
|
50
|
+
},
|
|
51
|
+
color: {
|
|
52
|
+
type: String,
|
|
53
|
+
default: "inherit"
|
|
54
|
+
},
|
|
55
|
+
component: {
|
|
56
|
+
type: Object,
|
|
57
|
+
default: null
|
|
58
|
+
},
|
|
59
|
+
classPrefix: {
|
|
60
|
+
type: String,
|
|
61
|
+
default: DEFAULT_PREFIX
|
|
62
|
+
},
|
|
63
|
+
operable: {
|
|
64
|
+
type: Boolean,
|
|
65
|
+
default: false
|
|
66
|
+
},
|
|
67
|
+
disabled: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: false
|
|
70
|
+
},
|
|
71
|
+
rotate: {
|
|
72
|
+
type: [Number, String]
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const svgIconProps = {
|
|
76
|
+
name: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: "",
|
|
79
|
+
required: true
|
|
80
|
+
},
|
|
81
|
+
color: {
|
|
82
|
+
type: String,
|
|
83
|
+
default: "inherit"
|
|
84
|
+
},
|
|
85
|
+
size: {
|
|
86
|
+
type: [Number, String],
|
|
87
|
+
default: "inherit"
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
function createBem(namespace, element, modifier) {
|
|
91
|
+
let cls = namespace;
|
|
92
|
+
if (element) {
|
|
93
|
+
cls += `__${element}`;
|
|
94
|
+
}
|
|
95
|
+
if (modifier) {
|
|
96
|
+
cls += `--${modifier}`;
|
|
97
|
+
}
|
|
98
|
+
return cls;
|
|
99
|
+
}
|
|
100
|
+
function useNamespace(block, needDot = false) {
|
|
101
|
+
const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
|
|
102
|
+
const b = () => createBem(namespace);
|
|
103
|
+
const e = (element) => element ? createBem(namespace, element) : "";
|
|
104
|
+
const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
|
|
105
|
+
const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
|
|
106
|
+
return {
|
|
107
|
+
b,
|
|
108
|
+
e,
|
|
109
|
+
m,
|
|
110
|
+
em
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
var icon = "";
|
|
114
|
+
var svgIcon = defineComponent({
|
|
115
|
+
name: "DSvgIcon",
|
|
116
|
+
props: svgIconProps,
|
|
117
|
+
setup(props) {
|
|
118
|
+
const {
|
|
119
|
+
name,
|
|
120
|
+
color,
|
|
121
|
+
size
|
|
122
|
+
} = toRefs(props);
|
|
123
|
+
const ns = useNamespace("svg-icon");
|
|
124
|
+
const iconName = computed(() => `#icon-${name.value}`);
|
|
125
|
+
const iconSize = computed(() => {
|
|
126
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
127
|
+
});
|
|
128
|
+
const styles = {
|
|
129
|
+
width: iconSize.value,
|
|
130
|
+
height: iconSize.value
|
|
131
|
+
};
|
|
132
|
+
return () => {
|
|
133
|
+
return createVNode("svg", {
|
|
134
|
+
"class": ns.b(),
|
|
135
|
+
"style": styles
|
|
136
|
+
}, [createVNode("use", {
|
|
137
|
+
"xlink:href": iconName.value,
|
|
138
|
+
"fill": color.value
|
|
139
|
+
}, null)]);
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
function isUrl(value) {
|
|
144
|
+
return /^((http|https):)?\/\//.test(value);
|
|
145
|
+
}
|
|
146
|
+
function useIconDom(props, ctx) {
|
|
147
|
+
const {
|
|
148
|
+
component,
|
|
149
|
+
name,
|
|
150
|
+
size,
|
|
151
|
+
color,
|
|
152
|
+
classPrefix,
|
|
153
|
+
rotate
|
|
154
|
+
} = toRefs(props);
|
|
155
|
+
const ns = useNamespace("icon");
|
|
156
|
+
const iconSize = computed(() => {
|
|
157
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
158
|
+
});
|
|
159
|
+
const IconComponent = component.value ? resolveDynamicComponent(component.value) : resolveDynamicComponent(svgIcon);
|
|
160
|
+
const imgIconDom = () => {
|
|
161
|
+
return createVNode("img", mergeProps({
|
|
162
|
+
"src": name.value,
|
|
163
|
+
"alt": name.value.split("/")[name.value.split("/").length - 1],
|
|
164
|
+
"class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
|
|
165
|
+
"style": {
|
|
166
|
+
width: iconSize.value || "",
|
|
167
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`,
|
|
168
|
+
verticalAlign: "middle"
|
|
169
|
+
}
|
|
170
|
+
}, ctx.attrs), null);
|
|
171
|
+
};
|
|
172
|
+
const svgIconDom = () => {
|
|
173
|
+
return createVNode(IconComponent, mergeProps({
|
|
174
|
+
"name": name.value,
|
|
175
|
+
"color": color.value,
|
|
176
|
+
"size": iconSize.value,
|
|
177
|
+
"class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
|
|
178
|
+
"style": {
|
|
179
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
180
|
+
}
|
|
181
|
+
}, ctx.attrs), null);
|
|
182
|
+
};
|
|
183
|
+
const fontIconDom = () => {
|
|
184
|
+
const fontIconClass = /^icon-/.test(name.value) ? name.value : `${classPrefix.value}-${name.value}`;
|
|
185
|
+
return createVNode("i", mergeProps({
|
|
186
|
+
"class": [classPrefix.value, fontIconClass, (rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
|
|
187
|
+
"style": {
|
|
188
|
+
fontSize: iconSize.value,
|
|
189
|
+
color: color.value,
|
|
190
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
191
|
+
}
|
|
192
|
+
}, ctx.attrs), null);
|
|
193
|
+
};
|
|
194
|
+
const iconDom = () => {
|
|
195
|
+
return component.value ? svgIconDom() : isUrl(name.value) ? imgIconDom() : fontIconDom();
|
|
196
|
+
};
|
|
197
|
+
return {
|
|
198
|
+
iconDom
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
var Icon = defineComponent({
|
|
202
|
+
name: "DIcon",
|
|
203
|
+
props: iconProps,
|
|
204
|
+
emits: ["click"],
|
|
205
|
+
setup(props, ctx) {
|
|
206
|
+
const {
|
|
207
|
+
disabled,
|
|
208
|
+
operable
|
|
209
|
+
} = toRefs(props);
|
|
210
|
+
const {
|
|
211
|
+
iconDom
|
|
212
|
+
} = useIconDom(props, ctx);
|
|
213
|
+
const ns = useNamespace("icon");
|
|
214
|
+
const wrapClassed = computed(() => ({
|
|
215
|
+
[ns.e("container")]: true,
|
|
216
|
+
[ns.m("disabled")]: disabled.value,
|
|
217
|
+
[ns.m("operable")]: operable.value,
|
|
218
|
+
[ns.m("no-slots")]: !Object.keys(ctx.slots).length
|
|
219
|
+
}));
|
|
220
|
+
const onClick = (e) => {
|
|
221
|
+
if (disabled.value) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
ctx.emit("click", e);
|
|
225
|
+
};
|
|
226
|
+
return () => {
|
|
227
|
+
var _a, _b, _c, _d;
|
|
228
|
+
return createVNode("div", {
|
|
229
|
+
"class": wrapClassed.value,
|
|
230
|
+
"onClick": onClick
|
|
231
|
+
}, [(_b = (_a = ctx.slots).prefix) == null ? void 0 : _b.call(_a), iconDom(), (_d = (_c = ctx.slots).suffix) == null ? void 0 : _d.call(_c)]);
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
var carousel = "";
|
|
236
|
+
var Carousel = defineComponent({
|
|
237
|
+
name: "DCarousel",
|
|
238
|
+
props: carouselProps,
|
|
239
|
+
emits: ["update:activeIndex", "activeIndexChange"],
|
|
240
|
+
setup(props, {
|
|
241
|
+
emit,
|
|
242
|
+
slots,
|
|
243
|
+
expose
|
|
244
|
+
}) {
|
|
245
|
+
const ns = useNamespace("carousel");
|
|
246
|
+
const {
|
|
247
|
+
height,
|
|
248
|
+
showDots,
|
|
249
|
+
dotPosition,
|
|
250
|
+
arrowTrigger,
|
|
251
|
+
autoplay,
|
|
252
|
+
autoplaySpeed,
|
|
253
|
+
dotTrigger,
|
|
254
|
+
activeIndex,
|
|
255
|
+
transitionSpeed
|
|
256
|
+
} = toRefs(props);
|
|
257
|
+
const itemCount = ref(0);
|
|
258
|
+
const showArrow = ref(false);
|
|
259
|
+
const currentIndex = ref(0);
|
|
260
|
+
const wrapperRef = ref(null);
|
|
261
|
+
const containerRef = ref(null);
|
|
262
|
+
const scheduledId = ref(null);
|
|
263
|
+
watch(() => arrowTrigger, () => {
|
|
264
|
+
showArrow.value = arrowTrigger.value === "always";
|
|
265
|
+
}, {
|
|
266
|
+
immediate: true
|
|
267
|
+
});
|
|
268
|
+
watch(() => activeIndex, () => {
|
|
269
|
+
currentIndex.value = activeIndex.value;
|
|
270
|
+
}, {
|
|
271
|
+
immediate: true
|
|
272
|
+
});
|
|
273
|
+
const translatePosition = (size) => {
|
|
274
|
+
if (containerRef.value) {
|
|
275
|
+
containerRef.value.style.left = `${-size * 100}%`;
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
const adjustTransition = (targetEl) => {
|
|
279
|
+
setTimeout(() => {
|
|
280
|
+
if (containerRef.value) {
|
|
281
|
+
containerRef.value.style.transition = "";
|
|
282
|
+
}
|
|
283
|
+
targetEl.style.transform = "";
|
|
284
|
+
translatePosition(currentIndex.value);
|
|
285
|
+
}, transitionSpeed.value);
|
|
286
|
+
};
|
|
287
|
+
const adjustPosition = (targetEl, firstToLast) => {
|
|
288
|
+
if (wrapperRef.value) {
|
|
289
|
+
const wrapperRect = wrapperRef.value.getBoundingClientRect();
|
|
290
|
+
targetEl.style.transform = `translateX(${(firstToLast ? -itemCount.value : itemCount.value) * wrapperRect.width}px)`;
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
const clearScheduledTransition = () => {
|
|
294
|
+
if (scheduledId.value) {
|
|
295
|
+
clearTimeout(scheduledId.value);
|
|
296
|
+
scheduledId.value = null;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
const autoScheduleTransition = (callback) => {
|
|
300
|
+
clearScheduledTransition();
|
|
301
|
+
if (autoplay.value && autoplaySpeed.value) {
|
|
302
|
+
scheduledId.value = setTimeout(() => {
|
|
303
|
+
callback == null ? void 0 : callback();
|
|
304
|
+
}, autoplaySpeed.value);
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
const goto = (index2) => {
|
|
308
|
+
if (index2 === currentIndex.value || !wrapperRef.value || !containerRef.value) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
containerRef.value.style.transition = `left ${transitionSpeed.value}ms ease`;
|
|
312
|
+
let latestIndex = currentIndex.value;
|
|
313
|
+
if (index2 < 0 && currentIndex.value === 0) {
|
|
314
|
+
latestIndex = itemCount.value - 1;
|
|
315
|
+
const targetEl = containerRef.value.children[latestIndex];
|
|
316
|
+
adjustPosition(targetEl, true);
|
|
317
|
+
translatePosition(-1);
|
|
318
|
+
adjustTransition(targetEl);
|
|
319
|
+
} else if (index2 >= itemCount.value && currentIndex.value === itemCount.value - 1) {
|
|
320
|
+
latestIndex = 0;
|
|
321
|
+
const targetEl = containerRef.value.children[latestIndex];
|
|
322
|
+
adjustPosition(targetEl, false);
|
|
323
|
+
translatePosition(itemCount.value);
|
|
324
|
+
adjustTransition(targetEl);
|
|
325
|
+
} else {
|
|
326
|
+
latestIndex = index2 < 0 ? 0 : index2 > itemCount.value - 1 ? itemCount.value - 1 : index2;
|
|
327
|
+
translatePosition(latestIndex);
|
|
328
|
+
}
|
|
329
|
+
currentIndex.value = latestIndex;
|
|
330
|
+
emit("update:activeIndex", latestIndex);
|
|
331
|
+
emit("activeIndexChange", latestIndex);
|
|
332
|
+
autoScheduleTransition(() => {
|
|
333
|
+
goto(currentIndex.value + 1);
|
|
334
|
+
});
|
|
335
|
+
};
|
|
336
|
+
const prev = () => {
|
|
337
|
+
goto(currentIndex.value - 1);
|
|
338
|
+
};
|
|
339
|
+
const next = () => {
|
|
340
|
+
goto(currentIndex.value + 1);
|
|
341
|
+
};
|
|
342
|
+
const arrowMouseEvent = (type) => {
|
|
343
|
+
if (arrowTrigger.value !== "hover") {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
showArrow.value = type === "enter";
|
|
347
|
+
};
|
|
348
|
+
const switchStep = (index2, type) => {
|
|
349
|
+
if (type === dotTrigger.value) {
|
|
350
|
+
goto(index2);
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
const changeItemCount = (val) => {
|
|
354
|
+
itemCount.value = val;
|
|
355
|
+
autoScheduleTransition(next);
|
|
356
|
+
};
|
|
357
|
+
onMounted(() => {
|
|
358
|
+
if (containerRef.value) {
|
|
359
|
+
containerRef.value.style.transition = `left ${transitionSpeed.value}ms ease`;
|
|
360
|
+
containerRef.value.style.left = "0%";
|
|
361
|
+
}
|
|
362
|
+
autoScheduleTransition(next);
|
|
363
|
+
});
|
|
364
|
+
onBeforeUnmount(() => {
|
|
365
|
+
clearScheduledTransition();
|
|
366
|
+
});
|
|
367
|
+
expose({
|
|
368
|
+
prev,
|
|
369
|
+
next,
|
|
370
|
+
goto
|
|
371
|
+
});
|
|
372
|
+
return () => {
|
|
373
|
+
var _a, _b;
|
|
374
|
+
const slot = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) != null ? _b : [];
|
|
375
|
+
let children = slot;
|
|
376
|
+
if (children.length === 1 && children[0].type === Fragment) {
|
|
377
|
+
children = (children[0].children || []).filter((item) => (item == null ? void 0 : item.type) !== Comment);
|
|
378
|
+
}
|
|
379
|
+
if (children.length !== itemCount.value) {
|
|
380
|
+
changeItemCount(children.length);
|
|
381
|
+
}
|
|
382
|
+
return createVNode("div", {
|
|
383
|
+
"class": ns.b(),
|
|
384
|
+
"style": {
|
|
385
|
+
height: height.value
|
|
386
|
+
},
|
|
387
|
+
"onMouseenter": () => arrowMouseEvent("enter"),
|
|
388
|
+
"onMouseleave": () => arrowMouseEvent("leave")
|
|
389
|
+
}, [arrowTrigger.value !== "never" && showArrow.value ? createVNode("div", {
|
|
390
|
+
"class": ns.e("arrow")
|
|
391
|
+
}, [createVNode("button", {
|
|
392
|
+
"class": "arrow-left",
|
|
393
|
+
"onClick": () => prev()
|
|
394
|
+
}, [createVNode(Icon, {
|
|
395
|
+
"name": "arrow-left"
|
|
396
|
+
}, null)]), createVNode("button", {
|
|
397
|
+
"class": "arrow-right",
|
|
398
|
+
"onClick": () => next()
|
|
399
|
+
}, [createVNode(Icon, {
|
|
400
|
+
"name": "arrow-right"
|
|
401
|
+
}, null)])]) : null, createVNode("div", {
|
|
402
|
+
"class": ns.e("item-wrapper"),
|
|
403
|
+
"ref": wrapperRef
|
|
404
|
+
}, [createVNode("div", {
|
|
405
|
+
"class": ns.e("item-container"),
|
|
406
|
+
"style": {
|
|
407
|
+
width: `${itemCount.value * 100}%`
|
|
408
|
+
},
|
|
409
|
+
"ref": containerRef
|
|
410
|
+
}, [slot])]), itemCount.value > 0 && showDots.value ? createVNode("ul", {
|
|
411
|
+
"class": [ns.e("dots"), dotPosition.value]
|
|
412
|
+
}, [children.map((_, index2) => createVNode("li", {
|
|
413
|
+
"class": {
|
|
414
|
+
"dot-item": true,
|
|
415
|
+
active: currentIndex.value === index2
|
|
416
|
+
},
|
|
417
|
+
"onClick": () => switchStep(index2, "click"),
|
|
418
|
+
"onMouseenter": () => switchStep(index2, "hover"),
|
|
419
|
+
"style": {
|
|
420
|
+
transition: `all ${transitionSpeed.value}ms ease`
|
|
421
|
+
}
|
|
422
|
+
}, null))]) : null]);
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
var CarouselItem = defineComponent({
|
|
427
|
+
name: "DCarouselItem",
|
|
428
|
+
setup(props, {
|
|
429
|
+
slots
|
|
430
|
+
}) {
|
|
431
|
+
var _a;
|
|
432
|
+
const ns = useNamespace("carousel");
|
|
433
|
+
const children = (_a = slots.default) == null ? void 0 : _a.call(slots);
|
|
434
|
+
return () => createVNode("div", {
|
|
435
|
+
"class": ns.e("item")
|
|
436
|
+
}, [children]);
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
var index = {
|
|
440
|
+
title: "Carousel \u8D70\u9A6C\u706F",
|
|
441
|
+
category: "\u6570\u636E\u5C55\u793A",
|
|
442
|
+
status: "100%",
|
|
443
|
+
install(app) {
|
|
444
|
+
app.component(Carousel.name, Carousel);
|
|
445
|
+
app.component(CarouselItem.name, CarouselItem);
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
export { Carousel, CarouselItem, index as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(p,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(p=typeof globalThis!="undefined"?globalThis:p||self,e(p.index={},p.Vue))})(this,function(p,e){"use strict";const O={arrowTrigger:{type:String,default:"hover"},autoplay:{type:Boolean,default:!1},autoplaySpeed:{type:Number,default:3e3},height:{type:String,default:"100%"},showDots:{type:Boolean,default:!0},dotTrigger:{type:String,default:"click"},dotPosition:{type:String,default:"bottom"},activeIndex:{type:Number,default:0},transitionSpeed:{type:Number,default:500}},X={name:{type:String,default:"",required:!0},size:{type:[Number,String],default:"inherit"},color:{type:String,default:"inherit"},component:{type:Object,default:null},classPrefix:{type:String,default:"icon"},operable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rotate:{type:[Number,String]}},L={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function b(r,a,o){let l=r;return a&&(l+=`__${a}`),o&&(l+=`--${o}`),l}function N(r,a=!1){const o=a?`.devui-${r}`:`devui-${r}`;return{b:()=>b(o),e:t=>t?b(o,t):"",m:t=>t?b(o,"",t):"",em:(t,i)=>t&&i?b(o,t,i):""}}var Y="",G=e.defineComponent({name:"DSvgIcon",props:L,setup(r){const{name:a,color:o,size:l}=e.toRefs(r),u=N("svg-icon"),d=e.computed(()=>`#icon-${a.value}`),m=e.computed(()=>typeof l.value=="number"?`${l.value}px`:l.value),t={width:m.value,height:m.value};return()=>e.createVNode("svg",{class:u.b(),style:t},[e.createVNode("use",{"xlink:href":d.value,fill:o.value},null)])}});function H(r){return/^((http|https):)?\/\//.test(r)}function J(r,a){const{component:o,name:l,size:u,color:d,classPrefix:m,rotate:t}=e.toRefs(r),i=N("icon"),y=e.computed(()=>typeof u.value=="number"?`${u.value}px`:u.value),h=o.value?e.resolveDynamicComponent(o.value):e.resolveDynamicComponent(G),C=()=>e.createVNode("img",e.mergeProps({src:l.value,alt:l.value.split("/")[l.value.split("/").length-1],class:[(t==null?void 0:t.value)==="infinite"&&i.m("spin")],style:{width:y.value||"",transform:`rotate(${t==null?void 0:t.value}deg)`,verticalAlign:"middle"}},a.attrs),null),D=()=>e.createVNode(h,e.mergeProps({name:l.value,color:d.value,size:y.value,class:[(t==null?void 0:t.value)==="infinite"&&i.m("spin")],style:{transform:`rotate(${t==null?void 0:t.value}deg)`}},a.attrs),null),I=()=>{const S=/^icon-/.test(l.value)?l.value:`${m.value}-${l.value}`;return e.createVNode("i",e.mergeProps({class:[m.value,S,(t==null?void 0:t.value)==="infinite"&&i.m("spin")],style:{fontSize:y.value,color:d.value,transform:`rotate(${t==null?void 0:t.value}deg)`}},a.attrs),null)};return{iconDom:()=>o.value?D():H(l.value)?C():I()}}var _=e.defineComponent({name:"DIcon",props:X,emits:["click"],setup(r,a){const{disabled:o,operable:l}=e.toRefs(r),{iconDom:u}=J(r,a),d=N("icon"),m=e.computed(()=>({[d.e("container")]:!0,[d.m("disabled")]:o.value,[d.m("operable")]:l.value,[d.m("no-slots")]:!Object.keys(a.slots).length})),t=i=>{o.value||a.emit("click",i)};return()=>{var i,y,h,C;return e.createVNode("div",{class:m.value,onClick:t},[(y=(i=a.slots).prefix)==null?void 0:y.call(i),u(),(C=(h=a.slots).suffix)==null?void 0:C.call(h)])}}}),Z="",z=e.defineComponent({name:"DCarousel",props:O,emits:["update:activeIndex","activeIndexChange"],setup(r,{emit:a,slots:o,expose:l}){const u=N("carousel"),{height:d,showDots:m,dotPosition:t,arrowTrigger:i,autoplay:y,autoplaySpeed:h,dotTrigger:C,activeIndex:D,transitionSpeed:I}=e.toRefs(r),c=e.ref(0),S=e.ref(!1),v=e.ref(0),V=e.ref(null),f=e.ref(null),$=e.ref(null);e.watch(()=>i,()=>{S.value=i.value==="always"},{immediate:!0}),e.watch(()=>D,()=>{v.value=D.value},{immediate:!0});const P=n=>{f.value&&(f.value.style.left=`${-n*100}%`)},j=n=>{setTimeout(()=>{f.value&&(f.value.style.transition=""),n.style.transform="",P(v.value)},I.value)},k=(n,s)=>{if(V.value){const g=V.value.getBoundingClientRect();n.style.transform=`translateX(${(s?-c.value:c.value)*g.width}px)`}},A=()=>{$.value&&(clearTimeout($.value),$.value=null)},B=n=>{A(),y.value&&h.value&&($.value=setTimeout(()=>{n==null||n()},h.value))},w=n=>{if(n===v.value||!V.value||!f.value)return;f.value.style.transition=`left ${I.value}ms ease`;let s=v.value;if(n<0&&v.value===0){s=c.value-1;const g=f.value.children[s];k(g,!0),P(-1),j(g)}else if(n>=c.value&&v.value===c.value-1){s=0;const g=f.value.children[s];k(g,!1),P(c.value),j(g)}else s=n<0?0:n>c.value-1?c.value-1:n,P(s);v.value=s,a("update:activeIndex",s),a("activeIndexChange",s),B(()=>{w(v.value+1)})},F=()=>{w(v.value-1)},T=()=>{w(v.value+1)},x=n=>{i.value==="hover"&&(S.value=n==="enter")},U=(n,s)=>{s===C.value&&w(n)},Q=n=>{c.value=n,B(T)};return e.onMounted(()=>{f.value&&(f.value.style.transition=`left ${I.value}ms ease`,f.value.style.left="0%"),B(T)}),e.onBeforeUnmount(()=>{A()}),l({prev:F,next:T,goto:w}),()=>{var g,q;const n=(q=(g=o.default)==null?void 0:g.call(o))!=null?q:[];let s=n;return s.length===1&&s[0].type===e.Fragment&&(s=(s[0].children||[]).filter(R=>(R==null?void 0:R.type)!==e.Comment)),s.length!==c.value&&Q(s.length),e.createVNode("div",{class:u.b(),style:{height:d.value},onMouseenter:()=>x("enter"),onMouseleave:()=>x("leave")},[i.value!=="never"&&S.value?e.createVNode("div",{class:u.e("arrow")},[e.createVNode("button",{class:"arrow-left",onClick:()=>F()},[e.createVNode(_,{name:"arrow-left"},null)]),e.createVNode("button",{class:"arrow-right",onClick:()=>T()},[e.createVNode(_,{name:"arrow-right"},null)])]):null,e.createVNode("div",{class:u.e("item-wrapper"),ref:V},[e.createVNode("div",{class:u.e("item-container"),style:{width:`${c.value*100}%`},ref:f},[n])]),c.value>0&&m.value?e.createVNode("ul",{class:[u.e("dots"),t.value]},[s.map((R,M)=>e.createVNode("li",{class:{"dot-item":!0,active:v.value===M},onClick:()=>U(M,"click"),onMouseenter:()=>U(M,"hover"),style:{transition:`all ${I.value}ms ease`}},null))]):null])}}}),E=e.defineComponent({name:"DCarouselItem",setup(r,{slots:a}){var u;const o=N("carousel"),l=(u=a.default)==null?void 0:u.call(a);return()=>e.createVNode("div",{class:o.e("item")},[l])}}),K={title:"Carousel \u8D70\u9A6C\u706F",category:"\u6570\u636E\u5C55\u793A",status:"100%",install(r){r.component(z.name,z),r.component(E.name,E)}};p.Carousel=z,p.CarouselItem=E,p.default=K,Object.defineProperty(p,"__esModule",{value:!0}),p[Symbol.toStringTag]="Module"});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.devui-icon__container{display:inline-block;color:var(--devui-icon-fill, #71757f)}.devui-icon__container>*:not(:last-child){vertical-align:middle;margin-right:8px}.devui-icon__container i{vertical-align:middle;transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--no-slots i,.devui-icon--no-slots img{display:block}.devui-icon--disabled{color:var(--devui-disabled-text, #adb0b8);cursor:not-allowed}.devui-icon--disabled i{color:var(--devui-disabled-text, #adb0b8)}.devui-icon--operable:not(.devui-icon--disabled){cursor:pointer;transition:color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--operable:not(.devui-icon--disabled) i{cursor:pointer}.devui-icon--operable:hover:not(.devui-icon--disabled){color:var(--devui-icon-fill-hover, #252b3a)}.devui-icon--operable:hover:not(.devui-icon--disabled).devui-icon__container{background-color:var(--devui-icon-background-hover, var(--devui-list-item-hover-bg, #f2f2f3))}.devui-icon--operable:hover:not(.devui-icon--disabled) i{color:var(--devui-icon-fill-hover, #252b3a)}.devui-icon--operable:active:not(.devui-icon--disabled){color:var(--devui-icon-active-color, var(--devui-icon-fill-active, #252b3a))}.devui-icon--operable:active:not(.devui-icon--disabled).devui-icon__container{background-color:var(--devui-icon-background-active, var(--devui-list-item-active-bg, #f2f5fc))}.devui-icon--operable:active:not(.devui-icon--disabled) i{color:var(--devui-icon-active-color, var(--devui-icon-fill-active, #252b3a))}.devui-icon--operable.devui-icon__container{height:32px;line-height:32px;padding:0 8px;margin-left:-8px;border-radius:var(--devui-border-radius, 2px);transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--spin{animation:iconSpin 2.5s linear infinite}.devui-svg-icon{vertical-align:middle}@keyframes iconSpin{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.devui-carousel{display:block;position:relative}.devui-carousel .devui-carousel__arrow{position:absolute;width:100%;top:50%}.devui-carousel .devui-carousel__arrow .arrow-left{position:absolute;top:-18px;z-index:2;cursor:pointer;width:36px;height:36px;border-radius:18px;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-hover, 0 8px 16px 0) var(--devui-light-shadow, rgba(37, 43, 58, .1));display:inline-flex;align-items:center;justify-content:center;left:10px}.devui-carousel .devui-carousel__arrow .arrow-left:hover{background:var(--devui-area, #f8f8f8)}.devui-carousel .devui-carousel__arrow .arrow-left svg polygon{fill:var(--devui-text, #252b3a)}.devui-carousel .devui-carousel__arrow .arrow-right{position:absolute;top:-18px;z-index:2;cursor:pointer;width:36px;height:36px;border-radius:18px;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-hover, 0 8px 16px 0) var(--devui-light-shadow, rgba(37, 43, 58, .1));display:inline-flex;align-items:center;justify-content:center;right:10px}.devui-carousel .devui-carousel__arrow .arrow-right:hover{background:var(--devui-area, #f8f8f8)}.devui-carousel .devui-carousel__arrow .arrow-right svg polygon{fill:var(--devui-text, #252b3a)}.devui-carousel .devui-carousel__item-wrapper{position:relative;overflow:hidden;height:100%}.devui-carousel .devui-carousel__item-wrapper .devui-carousel__item-container{display:flex;height:100%;position:relative}.devui-carousel .devui-carousel__item-wrapper .devui-carousel__item-container .devui-carousel__item{flex:1;position:relative;height:100%}.devui-carousel .devui-carousel__dots{position:absolute;display:flex;justify-content:center;width:100%;list-style:none}.devui-carousel .devui-carousel__dots.bottom{bottom:8px}.devui-carousel .devui-carousel__dots.top{top:8px}.devui-carousel .devui-carousel__dots .dot-item{width:6px;height:6px;border-radius:3px;margin-right:8px;background:var(--devui-icon-fill, #71757f)}.devui-carousel .devui-carousel__dots .dot-item:hover{cursor:pointer;background:var(--devui-icon-fill-hover, #252b3a)}.devui-carousel .devui-carousel__dots .dot-item.active{width:24px;background:var(--devui-icon-fill-active, #252b3a);transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-carousel .devui-carousel__arrow .arrow-left,.devui-carousel .devui-carousel__arrow .arrow-right{transition:background-color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1))}
|