vue-devui 1.5.4 → 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.
Files changed (57) hide show
  1. package/carousel/index.es.js +448 -0
  2. package/carousel/index.umd.js +1 -0
  3. package/carousel/package.json +8 -0
  4. package/carousel/style.css +1 -0
  5. package/code-review/index.es.js +73 -0
  6. package/code-review/index.umd.js +1 -0
  7. package/code-review/package.json +8 -0
  8. package/code-review/style.css +1 -0
  9. package/editor-md/index.es.js +9173 -0
  10. package/editor-md/index.umd.js +142 -0
  11. package/editor-md/package.json +8 -0
  12. package/editor-md/style.css +1 -0
  13. package/global.d.ts +5 -0
  14. package/grid/index.es.js +25 -1
  15. package/grid/index.umd.js +1 -1
  16. package/nuxt/components/Carousel.js +3 -0
  17. package/nuxt/components/CarouselItem.js +3 -0
  18. package/nuxt/components/CodeReview.js +3 -0
  19. package/nuxt/components/EditorMd.js +3 -0
  20. package/nuxt/components/EditorMdInjectionKey.js +3 -0
  21. package/nuxt/components/MdRender.js +3 -0
  22. package/nuxt/components/codeReviewProps.js +3 -0
  23. package/nuxt/components/editorMdProps.js +3 -0
  24. package/nuxt/components/mdRenderProps.js +3 -0
  25. package/nuxt/components/mdToolbarItemProps.js +3 -0
  26. package/package.json +10 -3
  27. package/style.css +1 -1
  28. package/types/code-review/index.d.ts +11 -0
  29. package/types/code-review/src/code-review-types.d.ts +14 -0
  30. package/types/code-review/src/code-review.d.ts +27 -0
  31. package/types/code-review/src/composables/use-code-review.d.ts +4 -0
  32. package/types/editor-md/index.d.ts +12 -0
  33. package/types/editor-md/src/components/font-color.d.ts +2 -0
  34. package/types/editor-md/src/components/font-size.d.ts +2 -0
  35. package/types/editor-md/src/components/md-render.d.ts +95 -0
  36. package/types/editor-md/src/components/toolbar-item.d.ts +14 -0
  37. package/types/editor-md/src/components/toolbar.d.ts +3 -0
  38. package/types/editor-md/src/composables/helper.d.ts +2 -0
  39. package/types/editor-md/src/composables/md-render-service.d.ts +26 -0
  40. package/types/editor-md/src/composables/use-editor-md-render.d.ts +10 -0
  41. package/types/editor-md/src/composables/use-editor-md-theme.d.ts +3 -0
  42. package/types/editor-md/src/composables/use-editor-md-toolbar.d.ts +4 -0
  43. package/types/editor-md/src/composables/use-editor-md.d.ts +15 -0
  44. package/types/editor-md/src/editor-md-types.d.ts +172 -0
  45. package/types/editor-md/src/editor-md.d.ts +198 -0
  46. package/types/editor-md/src/icons-config.d.ts +23 -0
  47. package/types/editor-md/src/plugins/mermaid.d.ts +2 -0
  48. package/types/editor-md/src/plugins/toc.d.ts +1 -0
  49. package/types/editor-md/src/toolbar-config.d.ts +22 -0
  50. package/types/editor-md/src/utils.d.ts +2 -0
  51. package/types/grid/src/grid-types.d.ts +4 -0
  52. package/types/grid/src/row.d.ts +9 -0
  53. package/types/menu/src/menu.d.ts +1 -1
  54. package/types/nav-sprite/src/nav-sprite.d.ts +1 -1
  55. package/types/vue-devui.d.ts +3 -1
  56. package/vue-devui.es.js +16052 -14237
  57. package/vue-devui.umd.js +135 -20
@@ -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,8 @@
1
+ {
2
+ "name": "carousel",
3
+ "version": "0.0.0",
4
+ "main": "index.umd.js",
5
+ "module": "index.es.js",
6
+ "style": "style.css",
7
+ "types": "../types/carousel/index.d.ts"
8
+ }
@@ -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))}
@@ -0,0 +1,73 @@
1
+ import { toRefs, ref, onMounted, defineComponent, createVNode } from "vue";
2
+ import * as Diff2Html from "diff2html";
3
+ const codeReviewProps = {
4
+ diff: {
5
+ type: String,
6
+ required: true,
7
+ default: ""
8
+ },
9
+ outputFormat: {
10
+ type: String,
11
+ default: "line-by-line"
12
+ }
13
+ };
14
+ function createBem(namespace, element, modifier) {
15
+ let cls = namespace;
16
+ if (element) {
17
+ cls += `__${element}`;
18
+ }
19
+ if (modifier) {
20
+ cls += `--${modifier}`;
21
+ }
22
+ return cls;
23
+ }
24
+ function useNamespace(block, needDot = false) {
25
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
26
+ const b = () => createBem(namespace);
27
+ const e = (element) => element ? createBem(namespace, element) : "";
28
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
29
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
30
+ return {
31
+ b,
32
+ e,
33
+ m,
34
+ em
35
+ };
36
+ }
37
+ function useCodeReview(props) {
38
+ const { diff, outputFormat } = toRefs(props);
39
+ const renderHtml = ref("");
40
+ onMounted(() => {
41
+ renderHtml.value = Diff2Html.html(diff.value, {
42
+ drawFileList: true,
43
+ matching: "lines",
44
+ outputFormat: outputFormat.value
45
+ });
46
+ });
47
+ return { renderHtml };
48
+ }
49
+ var diff2html_min = "";
50
+ var codeReview = "";
51
+ var CodeReview = defineComponent({
52
+ name: "DCodeReview",
53
+ props: codeReviewProps,
54
+ setup(props) {
55
+ const ns = useNamespace("code-review");
56
+ const {
57
+ renderHtml
58
+ } = useCodeReview(props);
59
+ return () => createVNode("div", {
60
+ "class": ns.b(),
61
+ "innerHTML": renderHtml.value
62
+ }, null);
63
+ }
64
+ });
65
+ var index = {
66
+ title: "CodeReview \u4EE3\u7801\u68C0\u89C6",
67
+ category: "\u6F14\u8FDB\u4E2D",
68
+ status: "100%",
69
+ install(app) {
70
+ app.component(CodeReview.name, CodeReview);
71
+ }
72
+ };
73
+ export { CodeReview, codeReviewProps, index as default };
@@ -0,0 +1 @@
1
+ (function(u,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("vue"),require("diff2html")):typeof define=="function"&&define.amd?define(["exports","vue","diff2html"],r):(u=typeof globalThis!="undefined"?globalThis:u||self,r(u.index={},u.Vue,u.Diff2Html))})(this,function(u,r,s){"use strict";function l(e){if(e&&e.__esModule)return e;var n={__proto__:null,[Symbol.toStringTag]:"Module"};return e&&Object.keys(e).forEach(function(t){if(t!=="default"){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}}),n.default=e,Object.freeze(n)}var m=l(s);const a={diff:{type:String,required:!0,default:""},outputFormat:{type:String,default:"line-by-line"}};function f(e,n,t){let i=e;return n&&(i+=`__${n}`),t&&(i+=`--${t}`),i}function p(e,n=!1){const t=n?`.devui-${e}`:`devui-${e}`;return{b:()=>f(t),e:o=>o?f(t,o):"",m:o=>o?f(t,"",o):"",em:(o,c)=>o&&c?f(t,o,c):""}}function v(e){const{diff:n,outputFormat:t}=r.toRefs(e),i=r.ref("");return r.onMounted(()=>{i.value=m.html(n.value,{drawFileList:!0,matching:"lines",outputFormat:t.value})}),{renderHtml:i}}var y="",w="",d=r.defineComponent({name:"DCodeReview",props:a,setup(e){const n=p("code-review"),{renderHtml:t}=v(e);return()=>r.createVNode("div",{class:n.b(),innerHTML:t.value},null)}}),_={title:"CodeReview \u4EE3\u7801\u68C0\u89C6",category:"\u6F14\u8FDB\u4E2D",status:"100%",install(e){e.component(d.name,d)}};u.CodeReview=d,u.codeReviewProps=a,u.default=_,Object.defineProperty(u,"__esModule",{value:!0}),u[Symbol.toStringTag]="Module"});
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "code-review",
3
+ "version": "0.0.0",
4
+ "main": "index.umd.js",
5
+ "module": "index.es.js",
6
+ "style": "style.css",
7
+ "types": "../types/code-review/index.d.ts"
8
+ }
@@ -0,0 +1 @@
1
+ .d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;border-bottom:1px solid #d8d8d8;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;height:35px;padding:5px 10px}.d2h-file-header.d2h-sticky-header{position:sticky;top:0;z-index:1}.d2h-file-stats{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;margin-left:auto}.d2h-lines-added{border:1px solid #b4e2b4;border-radius:5px 0 0 5px;color:#399839;padding:2px;text-align:right;vertical-align:middle}.d2h-lines-deleted{border:1px solid #e9aeae;border-radius:0 5px 5px 0;color:#c33;margin-left:1px;padding:2px;text-align:left;vertical-align:middle}.d2h-file-name-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;width:100%}.d2h-file-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.d2h-file-wrapper{border:1px solid #ddd;border-radius:3px;margin-bottom:1em}.d2h-file-collapse{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #ddd;border-radius:3px;cursor:pointer;display:none;font-size:12px;justify-content:flex-end;padding:4px 8px}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;font-family:Menlo,Consolas,monospace;font-size:13px;width:100%}.d2h-files-diff{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{display:inline-block;overflow-x:scroll;overflow-y:hidden;width:50%}.d2h-code-line{padding:0 8em;width:calc(100% - 16em)}.d2h-code-line,.d2h-code-side-line{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.d2h-code-side-line{padding:0 4.5em;width:calc(100% - 9em)}.d2h-code-line-ctn{word-wrap:normal;background:none;display:inline-block;padding:0;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;vertical-align:middle;white-space:pre;width:100%}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba;border-radius:.2em;display:inline-block;margin-top:-1px;text-decoration:none}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;border-radius:.2em;display:inline-block;margin-top:-1px;text-align:left;text-decoration:none}.d2h-code-line-prefix{word-wrap:normal;background:none;display:inline;padding:0;white-space:pre}.line-num1{float:left}.line-num1,.line-num2{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;width:3.5em}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;cursor:pointer;display:inline-block;position:absolute;text-align:right;width:7.5em}.d2h-code-linenumber:after{content:"\200b"}.d2h-code-side-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;cursor:pointer;display:inline-block;overflow:hidden;padding:0 .5em;position:absolute;text-align:right;text-overflow:ellipsis;width:4em}.d2h-code-side-linenumber:after{content:"\200b"}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;border-color:#e1e1e1}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;border-color:#e9aeae}.d2h-ins{background-color:#dfd;border-color:#b4e2b4}.d2h-info{background-color:#f8fafd;border-color:#d5e4f2;color:#0000004d}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{color:#3572b0;text-decoration:none}.d2h-file-list-wrapper a:visited{color:#3572b0}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{display:-webkit-box;display:-ms-flexbox;display:flex;text-align:left}.d2h-file-list{display:block;list-style:none;margin:0;padding:0}.d2h-file-list>li{border-bottom:1px solid #ddd;margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;display:none;font-size:10px}.d2h-icon{fill:currentColor;margin-right:10px;vertical-align:middle}.d2h-deleted{color:#c33}.d2h-added{color:#399839}.d2h-changed{color:#d0b44c}.d2h-moved{color:#3572b0}.d2h-tag{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:10px;margin-left:5px;padding:0 2px}.d2h-deleted-tag{border:1px solid #c33}.d2h-added-tag{border:1px solid #399839}.d2h-changed-tag{border:1px solid #d0b44c}.d2h-moved-tag{border:1px solid #3572b0}.devui-code-review tr{border:none}.devui-code-review th,.devui-code-review td{border:none;padding:0}