vue-devui 1.5.3 → 1.5.4

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 (60) hide show
  1. package/action-timeline/index.es.js +161 -0
  2. package/action-timeline/index.umd.js +1 -0
  3. package/action-timeline/package.json +8 -0
  4. package/action-timeline/style.css +1 -0
  5. package/breadcrumb/index.es.js +845 -0
  6. package/breadcrumb/index.umd.js +1 -0
  7. package/breadcrumb/package.json +8 -0
  8. package/breadcrumb/style.css +1 -0
  9. package/code-editor/index.es.js +5874 -0
  10. package/code-editor/index.umd.js +27 -0
  11. package/code-editor/package.json +8 -0
  12. package/code-editor/style.css +1 -0
  13. package/global.d.ts +8 -4
  14. package/menu/index.es.js +4 -3
  15. package/menu/index.umd.js +1 -1
  16. package/modal/index.es.js +10 -10
  17. package/modal/index.umd.js +1 -1
  18. package/nuxt/components/ActionTimeline.js +3 -0
  19. package/nuxt/components/Breadcrumb.js +3 -0
  20. package/nuxt/components/BreadcrumbItem.js +3 -0
  21. package/nuxt/components/CodeEditor.js +3 -0
  22. package/nuxt/components/ModalBody.js +3 -0
  23. package/nuxt/components/ModalFooter.js +3 -0
  24. package/nuxt/components/ModalHeader.js +3 -0
  25. package/nuxt/components/SplitterPane.js +3 -0
  26. package/nuxt/components/actionTimelineProps.js +3 -0
  27. package/nuxt/components/breadcrumbItemProps.js +3 -0
  28. package/nuxt/components/breadcrumbProps.js +3 -0
  29. package/nuxt/components/codeEditorProps.js +3 -0
  30. package/package.json +3 -2
  31. package/pagination/index.es.js +1 -0
  32. package/pagination/index.umd.js +6 -6
  33. package/select/index.es.js +1 -0
  34. package/select/index.umd.js +4 -4
  35. package/splitter/index.es.js +1 -1
  36. package/splitter/index.umd.js +7 -7
  37. package/style.css +1 -1
  38. package/time-select/index.es.js +1 -0
  39. package/time-select/index.umd.js +4 -4
  40. package/tree/index.es.js +5 -0
  41. package/tree/index.umd.js +1 -1
  42. package/types/action-timeline/index.d.ts +11 -0
  43. package/types/action-timeline/src/action-timeline-types.d.ts +46 -0
  44. package/types/action-timeline/src/action-timeline.d.ts +55 -0
  45. package/types/auto-complete/src/auto-complete.d.ts +1 -1
  46. package/types/breadcrumb/index.d.ts +2 -1
  47. package/types/carousel/index.d.ts +1 -2
  48. package/types/code-editor/index.d.ts +11 -0
  49. package/types/code-editor/src/code-editor-types.d.ts +82 -0
  50. package/types/code-editor/src/code-editor.d.ts +120 -0
  51. package/types/code-editor/src/composables/use-code-editor.d.ts +5 -0
  52. package/types/modal/index.d.ts +4 -1
  53. package/types/nav-sprite/src/nav-sprite.d.ts +1 -1
  54. package/types/splitter/index.d.ts +2 -1
  55. package/types/upload/index.d.ts +2 -1
  56. package/types/vue-devui.d.ts +7 -5
  57. package/upload/index.es.js +1 -1
  58. package/upload/index.umd.js +1 -1
  59. package/vue-devui.es.js +631 -20
  60. package/vue-devui.umd.js +18 -18
package/vue-devui.es.js CHANGED
@@ -33,7 +33,7 @@ var __publicField = (obj, key, value) => {
33
33
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34
34
  return value;
35
35
  };
36
- import { createVNode, getCurrentInstance, defineComponent, toRefs, inject, computed, Fragment, mergeProps, resolveComponent, isVNode, ref, reactive, createTextVNode, provide, onMounted, watch, Transition, withDirectives, vShow, nextTick, onUnmounted, unref, withModifiers, Comment as Comment$1, Text, h, cloneVNode, Teleport, onBeforeUnmount, render, resolveDirective, resolveDynamicComponent, toRef, shallowRef, onUpdated, onBeforeMount, readonly, toRaw, watchEffect, renderSlot, useSlots, createApp, shallowReactive, effect, TransitionGroup } from "vue";
36
+ import { createVNode, getCurrentInstance, defineComponent, toRefs, inject, computed, Fragment, mergeProps, resolveComponent, isVNode, ref, reactive, createTextVNode, provide, onMounted, watch, Transition, withDirectives, vShow, nextTick, onUnmounted, unref, withModifiers, Comment as Comment$1, Text, h, cloneVNode, Teleport, onBeforeUnmount, render, resolveDirective, resolveDynamicComponent, toRef, shallowRef, onBeforeMount, onUpdated, readonly, toRaw, watchEffect, renderSlot, useSlots, createApp, shallowReactive, effect, TransitionGroup } from "vue";
37
37
  import { useRoute } from "vue-router";
38
38
  import { offset, autoPlacement, arrow, shift, computePosition, flip } from "@floating-ui/dom";
39
39
  import { onClickOutside, useResizeObserver } from "@vueuse/core";
@@ -951,6 +951,165 @@ var AccordionInstall = {
951
951
  app.component(Accordion.name, Accordion);
952
952
  }
953
953
  };
954
+ const actionTimelineProps = {
955
+ data: {
956
+ type: Array
957
+ },
958
+ layout: {
959
+ type: String,
960
+ default: "horizontal"
961
+ },
962
+ loadMoreConfig: {
963
+ type: Object
964
+ },
965
+ showTailLine: {
966
+ type: Boolean,
967
+ default: true
968
+ },
969
+ showStatusBgColor: {
970
+ type: Boolean,
971
+ default: false
972
+ },
973
+ showStatusLineColor: {
974
+ type: Boolean,
975
+ default: false
976
+ }
977
+ };
978
+ var actionTimeline = "";
979
+ var ActionTimeline = defineComponent({
980
+ name: "DActionTimeline",
981
+ props: actionTimelineProps,
982
+ emits: ["actionLoadMore"],
983
+ setup(props, ctx2) {
984
+ const {
985
+ layout: layout2,
986
+ data,
987
+ showTailLine,
988
+ showStatusBgColor,
989
+ showStatusLineColor,
990
+ loadMoreConfig
991
+ } = toRefs(props);
992
+ const isVertical = computed(() => layout2.value === "vertical");
993
+ const containerClass = computed(() => ({
994
+ "dp-action-timeline": true,
995
+ "dp-action-timeline-status-bg": showStatusBgColor.value,
996
+ "dp-action-timeline-status-line": showStatusLineColor.value
997
+ }));
998
+ const timelineItemClass = (childIndex, parentIndex, actionData, item) => ({
999
+ "dp-action-timeline-item": true,
1000
+ "dp-action-timeline-item-info": showStatusLineColor.value && item.status === "color-info",
1001
+ "dp-action-timeline-item-danger": showStatusLineColor.value && item.status === "color-danger",
1002
+ "dp-action-timeline-item-success": showStatusLineColor.value && item.status === "color-info",
1003
+ "vertical-list-item": isVertical.value,
1004
+ "list-last-item": actionData.actions && (data == null ? void 0 : data.value) && childIndex === actionData.actions.length - 1 && parentIndex === data.value.length - 1 && showTailLine.value
1005
+ });
1006
+ const itemIconClass = (item, flag = false) => {
1007
+ var _a, _b;
1008
+ if (flag) {
1009
+ return {
1010
+ "dp-action-timeline-list-icon": true,
1011
+ "item-empty-icon": !item.icon,
1012
+ [(_a = item.status) != null ? _a : ""]: true
1013
+ };
1014
+ } else {
1015
+ return {
1016
+ icon: true,
1017
+ [(_b = item.icon) != null ? _b : ""]: true
1018
+ };
1019
+ }
1020
+ };
1021
+ const renderVerticalBody = (actionData, parentIndex) => {
1022
+ var _a;
1023
+ return (_a = actionData.actions) == null ? void 0 : _a.map((item, index2) => {
1024
+ var _a2, _b, _c, _d;
1025
+ return createVNode("div", {
1026
+ "class": timelineItemClass(index2, parentIndex, actionData, item)
1027
+ }, [createVNode("div", {
1028
+ "class": "vertical-list-item-top"
1029
+ }, [createVNode("div", {
1030
+ "class": "vertical-list-item-top-left"
1031
+ }, [createVNode("div", {
1032
+ "class": itemIconClass(item, true)
1033
+ }, [!item.icon && createVNode("div", {
1034
+ "class": "list-empty-icon-dot"
1035
+ }, null), createVNode("em", {
1036
+ "class": itemIconClass(item)
1037
+ }, null)]), createVNode("div", {
1038
+ "class": "vertical-list-item-top-left-title"
1039
+ }, [(_b = (_a2 = ctx2.slots).title) == null ? void 0 : _b.call(_a2, {
1040
+ option: item
1041
+ })])]), createVNode("div", {
1042
+ "class": "dp-action-timeline-item-data"
1043
+ }, [item.createdAt])]), createVNode("div", {
1044
+ "class": "vertical-list-item-bottom"
1045
+ }, [(_d = (_c = ctx2.slots).content) == null ? void 0 : _d.call(_c, {
1046
+ option: item
1047
+ })])]);
1048
+ });
1049
+ };
1050
+ const renderHorizontalBody = (actionData, parentIndex) => {
1051
+ var _a;
1052
+ return (_a = actionData.actions) == null ? void 0 : _a.map((item, index2) => {
1053
+ var _a2, _b, _c;
1054
+ return createVNode("div", {
1055
+ "class": timelineItemClass(index2, parentIndex, actionData, item)
1056
+ }, [createVNode("div", {
1057
+ "class": itemIconClass(item, true)
1058
+ }, [!item.icon && createVNode("div", {
1059
+ "class": "list-empty-icon-dot"
1060
+ }, null), createVNode("em", {
1061
+ "class": itemIconClass(item)
1062
+ }, null)]), createVNode("div", {
1063
+ "class": "dp-action-timeline-list-data"
1064
+ }, [(_b = (_a2 = ctx2.slots).content) == null ? void 0 : _b.call(_a2, {
1065
+ option: item
1066
+ })]), createVNode("div", {
1067
+ "class": "dp-action-timeline-item-date"
1068
+ }, [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", {
1069
+ "class": "border-bottom"
1070
+ }, null)]);
1071
+ });
1072
+ };
1073
+ const handleLoadMoreClicked = () => {
1074
+ ctx2.emit("actionLoadMore");
1075
+ };
1076
+ const handleBackTopClicked = () => {
1077
+ window.scrollTo(0, 0);
1078
+ };
1079
+ const renderLoadMore = () => {
1080
+ var _a, _b;
1081
+ return createVNode("div", {
1082
+ "class": "dp-action-timeline-operation-container"
1083
+ }, [((_a = loadMoreConfig == null ? void 0 : loadMoreConfig.value) == null ? void 0 : _a.loadMore) && createVNode("div", {
1084
+ "class": "dp-action-timeline-operation",
1085
+ "onClick": handleLoadMoreClicked
1086
+ }, [loadMoreConfig.value.loadMoreText]), ((_b = loadMoreConfig == null ? void 0 : loadMoreConfig.value) == null ? void 0 : _b.isToTop) && createVNode("div", {
1087
+ "class": "dp-action-timeline-operation",
1088
+ "onClick": handleBackTopClicked
1089
+ }, [loadMoreConfig.value.toTopText])]);
1090
+ };
1091
+ return () => {
1092
+ var _a, _b;
1093
+ return createVNode(Fragment, null, [(_a = data == null ? void 0 : data.value) == null ? void 0 : _a.map((item, parentIndex) => createVNode("div", {
1094
+ "class": containerClass.value
1095
+ }, [createVNode("div", {
1096
+ "class": "dp-action-timeline-title"
1097
+ }, [createVNode("p", null, [item.time])]), createVNode("div", {
1098
+ "class": "dp-action-timeline-body"
1099
+ }, [isVertical.value ? renderVerticalBody(item, parentIndex) : renderHorizontalBody(item, parentIndex)]), createVNode("div", {
1100
+ "class": "border-left"
1101
+ }, null)])), Boolean((_b = data == null ? void 0 : data.value) == null ? void 0 : _b.length) && renderLoadMore()]);
1102
+ };
1103
+ }
1104
+ });
1105
+ var ActionTimelineInstall = {
1106
+ title: "ActionTimeline \u64CD\u4F5C\u65F6\u95F4\u8F74",
1107
+ category: "\u6F14\u8FDB\u4E2D",
1108
+ status: "100%",
1109
+ install(app) {
1110
+ app.component(ActionTimeline.name, ActionTimeline);
1111
+ }
1112
+ };
954
1113
  const AlertCloseIcon = () => createVNode("svg", {
955
1114
  "width": "10px",
956
1115
  "height": "10px",
@@ -11302,7 +11461,7 @@ var Breadcrumb = defineComponent({
11302
11461
  var BreadcrumbInstall = {
11303
11462
  title: "Breadcrumb \u9762\u5305\u5C51",
11304
11463
  category: "\u5BFC\u822A",
11305
- status: "50%",
11464
+ status: "100%",
11306
11465
  install(app) {
11307
11466
  app.component(Breadcrumb.name, Breadcrumb);
11308
11467
  app.component(BreadcrumbItem.name, BreadcrumbItem);
@@ -13339,6 +13498,449 @@ var CascaderInstall = {
13339
13498
  app.component(Cascader.name, Cascader);
13340
13499
  }
13341
13500
  };
13501
+ const codeEditorProps = {
13502
+ modelValue: {
13503
+ type: String,
13504
+ default: ""
13505
+ },
13506
+ mode: {
13507
+ type: String,
13508
+ default: "normal"
13509
+ },
13510
+ originalText: {
13511
+ type: String,
13512
+ default: ""
13513
+ },
13514
+ theme: {
13515
+ type: String,
13516
+ default: "light"
13517
+ },
13518
+ autoHeight: {
13519
+ type: Boolean,
13520
+ default: false
13521
+ },
13522
+ refreshAll: {
13523
+ type: Boolean,
13524
+ default: false
13525
+ },
13526
+ offsetLeft: {
13527
+ type: Number
13528
+ },
13529
+ addCommentIcon: {
13530
+ type: String,
13531
+ default: ""
13532
+ },
13533
+ expandCommentIcon: {
13534
+ type: String,
13535
+ default: ""
13536
+ },
13537
+ options: {
13538
+ type: Object,
13539
+ default: () => ({})
13540
+ },
13541
+ mouseTargetTypes: {
13542
+ type: Array,
13543
+ default: () => [2, 4]
13544
+ },
13545
+ editorDecorations: {
13546
+ type: Array,
13547
+ default: () => []
13548
+ },
13549
+ comments: {
13550
+ type: Array,
13551
+ default: () => []
13552
+ }
13553
+ };
13554
+ function useCodeEditor(props, ctx2) {
13555
+ const editorEl = ref();
13556
+ const {
13557
+ modelValue,
13558
+ originalText,
13559
+ options,
13560
+ mode,
13561
+ theme,
13562
+ autoHeight,
13563
+ offsetLeft,
13564
+ refreshAll,
13565
+ mouseTargetTypes,
13566
+ editorDecorations,
13567
+ comments,
13568
+ addCommentIcon,
13569
+ expandCommentIcon
13570
+ } = toRefs(props);
13571
+ let monaco;
13572
+ let editor;
13573
+ let diffEditor;
13574
+ let themeService;
13575
+ let currentTheme;
13576
+ let commentViewZones = [];
13577
+ let heightMap = /* @__PURE__ */ new Map();
13578
+ let commentWidgets = [];
13579
+ let currentDecorations = [];
13580
+ let currentLineDecoration = [];
13581
+ let modifyValueFromInner = false;
13582
+ watch(editorDecorations, refreshDecorations, { deep: true });
13583
+ watch(comments, () => {
13584
+ refreshViewZones();
13585
+ refreshOverlayWidgets();
13586
+ }, { deep: true });
13587
+ watch(options, () => {
13588
+ updateLanguage();
13589
+ updateOptions();
13590
+ }, { deep: true });
13591
+ watch(originalText, setDiffEditorOriginValue);
13592
+ watch(theme, setCurrentTheme);
13593
+ watch(modelValue, () => {
13594
+ if (!modifyValueFromInner) {
13595
+ setValue();
13596
+ } else {
13597
+ modifyValueFromInner = false;
13598
+ }
13599
+ });
13600
+ onBeforeMount(() => {
13601
+ if (window["devuiThemeService"]) {
13602
+ themeService = window["devuiThemeService"];
13603
+ if (themeService.eventBus) {
13604
+ themeService.eventBus.add("themeChanged", setCurrentTheme);
13605
+ }
13606
+ }
13607
+ });
13608
+ onMounted(async () => {
13609
+ if (inBrowser) {
13610
+ monaco = await import("monaco-editor");
13611
+ setCurrentTheme();
13612
+ init();
13613
+ if (mode.value === "review") {
13614
+ nextTick(() => {
13615
+ refreshDecorations();
13616
+ refreshOverlayWidgets();
13617
+ refreshViewZones();
13618
+ });
13619
+ }
13620
+ }
13621
+ });
13622
+ function init() {
13623
+ if (mode.value === "normal" || mode.value === "review") {
13624
+ initNormalEditor();
13625
+ } else if (mode.value.includes("diff")) {
13626
+ initDiffEditor();
13627
+ }
13628
+ if (!options.value["theme"]) {
13629
+ monaco.editor.setTheme(currentTheme);
13630
+ }
13631
+ handleAutoHeight();
13632
+ setValueEmitter();
13633
+ }
13634
+ function initNormalEditor() {
13635
+ if (!editor) {
13636
+ editor = monaco.editor.create(editorEl.value, options.value);
13637
+ editor.setModel(monaco.editor.createModel(modelValue.value, options.value["language"]));
13638
+ ctx2.emit("afterEditorInit", editor);
13639
+ if (mode.value === "review") {
13640
+ editor.onMouseMove(handleMouseMove);
13641
+ editor.onMouseLeave(handleMouseLeave);
13642
+ editor.onMouseDown(handleMouseDown);
13643
+ }
13644
+ }
13645
+ }
13646
+ function initDiffEditor() {
13647
+ if (!diffEditor) {
13648
+ diffEditor = monaco.editor.createDiffEditor(editorEl.value, options.value);
13649
+ diffEditor.setModel({
13650
+ original: monaco.editor.createModel(originalText.value, options.value["language"]),
13651
+ modified: monaco.editor.createModel(modelValue.value, options.value["language"])
13652
+ });
13653
+ ctx2.emit("afterEditorInit", diffEditor);
13654
+ }
13655
+ }
13656
+ function setValue() {
13657
+ if (mode.value === "normal" || mode.value === "review") {
13658
+ setEditorValue();
13659
+ } else if (mode.value === "diff") {
13660
+ setDiffEditorValue();
13661
+ }
13662
+ }
13663
+ function setEditorValue() {
13664
+ var _a;
13665
+ if (!editor || !editor.getModel()) {
13666
+ return;
13667
+ }
13668
+ (_a = editor.getModel().modified) == null ? void 0 : _a.setValue(modelValue.value);
13669
+ }
13670
+ function setDiffEditorValue() {
13671
+ var _a;
13672
+ if (!diffEditor || !diffEditor.getModel()) {
13673
+ return;
13674
+ }
13675
+ (_a = diffEditor.getModel().modified) == null ? void 0 : _a.setValue(modelValue.value);
13676
+ }
13677
+ function setCurrentTheme() {
13678
+ if (options.value["theme"]) {
13679
+ return;
13680
+ }
13681
+ if (theme.value === "light") {
13682
+ currentTheme = themeService && themeService.currentTheme.isDark ? "vs-dark" : "vs";
13683
+ } else if (theme.value === "dark") {
13684
+ currentTheme = themeService && themeService.currentTheme.isDark ? "vs" : "vs-dark";
13685
+ }
13686
+ if (editor) {
13687
+ monaco.editor.setTheme(currentTheme);
13688
+ }
13689
+ }
13690
+ function handleAutoHeight() {
13691
+ if (autoHeight.value) {
13692
+ editor.onDidChangeModelDecorations(() => {
13693
+ setTimeout(updateEditorHeightAuto);
13694
+ });
13695
+ }
13696
+ }
13697
+ function setValueEmitter() {
13698
+ let model;
13699
+ if (editor) {
13700
+ model = editor.getModel();
13701
+ } else if (diffEditor) {
13702
+ model = diffEditor.getModel().modified;
13703
+ }
13704
+ model.onDidChangeContent(lodash.exports.throttle(() => {
13705
+ modifyValueFromInner = true;
13706
+ ctx2.emit("update: modelValue", model.getValue());
13707
+ }, 100));
13708
+ }
13709
+ function setDiffEditorOriginValue() {
13710
+ var _a;
13711
+ if (!diffEditor || !diffEditor.getModel()) {
13712
+ return;
13713
+ }
13714
+ (_a = diffEditor.getModel().original) == null ? void 0 : _a.setValue(originalText.value);
13715
+ }
13716
+ function updateLanguage() {
13717
+ const language = options.value.language;
13718
+ if (editor) {
13719
+ if (mode.value === "normal" || mode.value === "review") {
13720
+ const model = diffEditor.getModel();
13721
+ monaco.editor.setModelLanguage(model.modified, language);
13722
+ monaco.editor.setModelLanguage(model.original, language);
13723
+ }
13724
+ }
13725
+ }
13726
+ function updateOptions() {
13727
+ if (editor) {
13728
+ editor.updateOptions(__spreadValues({}, options.value));
13729
+ }
13730
+ if (diffEditor) {
13731
+ diffEditor.updateOptions(__spreadValues({}, options.value));
13732
+ }
13733
+ }
13734
+ function updateEditorHeightAuto() {
13735
+ var _a;
13736
+ const lineHeight = editor.getOption(monaco.editor.EditorOption.lineHeight);
13737
+ const lineCount = ((_a = editor.getModel()) == null ? void 0 : _a.getLineCount()) || 1;
13738
+ const height = editor.getTopForLineNumber(lineCount + 1) + lineHeight;
13739
+ if (editorEl.value) {
13740
+ editorEl.value.style.height = `${height}px`;
13741
+ }
13742
+ editor.layout();
13743
+ }
13744
+ function handleMouseMove(event) {
13745
+ if (event.target && event.target.position) {
13746
+ const currentLineNumber = event.target.position.lineNumber;
13747
+ if (!isDecorationExisted(currentLineNumber)) {
13748
+ const lineDecoration = [
13749
+ {
13750
+ range: new monaco.Range(currentLineNumber, 0, currentLineNumber, 0),
13751
+ option: {
13752
+ isWholeLine: true,
13753
+ glyphMarginClassName: `icon-pointer ${addCommentIcon.value}`
13754
+ }
13755
+ }
13756
+ ];
13757
+ currentLineDecoration = editor.deltaDecorations(currentLineDecoration, lineDecoration);
13758
+ } else {
13759
+ currentLineDecoration = editor.deltaDecorations(currentLineDecoration, []);
13760
+ }
13761
+ }
13762
+ }
13763
+ function handleMouseLeave() {
13764
+ editor.deltaDecorations(currentLineDecoration, []);
13765
+ }
13766
+ function handleMouseDown(event) {
13767
+ if (mouseTargetTypes.value.includes(event.target.type)) {
13768
+ ctx2.emit("click", event);
13769
+ }
13770
+ }
13771
+ function refreshDecorations() {
13772
+ if (editorDecorations.value.length >= 0 && editor) {
13773
+ const tempDecorations = editorDecorations.value.map(setDecorations);
13774
+ setTimeout(() => {
13775
+ currentDecorations = editor.deltaDecorations(currentDecorations, tempDecorations);
13776
+ });
13777
+ currentDecorations = editor.deltaDecorations(currentLineDecoration, []);
13778
+ }
13779
+ }
13780
+ function setDecorations(decoration) {
13781
+ return {
13782
+ range: new monaco.Range(decoration.lineNumber, 1, decoration.lineNumber, 1),
13783
+ options: {
13784
+ isWholeLine: true,
13785
+ className: decoration.customClasses || "",
13786
+ glyphMarginClassName: `icon-pointer ${decoration.icon || expandCommentIcon.value} ${decoration.glyphClassName || ""}`
13787
+ }
13788
+ };
13789
+ }
13790
+ function isDecorationExisted(lineNumber) {
13791
+ return editorDecorations.value.some((ed) => ed.lineNumber === lineNumber);
13792
+ }
13793
+ function refreshViewZones() {
13794
+ if (editor) {
13795
+ editor.changeViewZones((changeAccessor) => {
13796
+ resetViewZones(changeAccessor);
13797
+ renderViewZones(changeAccessor);
13798
+ if (autoHeight.value) {
13799
+ updateEditorHeightAuto();
13800
+ }
13801
+ });
13802
+ }
13803
+ }
13804
+ function resetViewZones(changeAccessor) {
13805
+ if (commentViewZones.length > 0) {
13806
+ commentViewZones.forEach((commentId) => {
13807
+ changeAccessor.removeZone(commentId.id);
13808
+ });
13809
+ commentViewZones = [];
13810
+ heightMap = /* @__PURE__ */ new Map();
13811
+ }
13812
+ }
13813
+ function renderViewZones(changeAccessor) {
13814
+ if (comments.value && comments.value.length) {
13815
+ const renderedComments = comments.value.filter((comment2) => comment2.isExpanded);
13816
+ renderedComments.forEach((comment2) => {
13817
+ const commentId = changeAccessor.addZone({
13818
+ afterLineNumber: comment2.lineNumber,
13819
+ heightInPx: comment2.heightInPx ? comment2.heightInPx : 0,
13820
+ afterColumn: 1,
13821
+ domNode: document.createElement("div"),
13822
+ ondomNodeTop: (top) => {
13823
+ layoutOverlayWidget(comment2.lineNumber, { top });
13824
+ },
13825
+ onComputedHeight: (height) => {
13826
+ layoutOverlayWidget(comment2.lineNumber, { height });
13827
+ }
13828
+ });
13829
+ commentViewZones.push({ lineNumber: comment2.lineNumber, id: commentId });
13830
+ });
13831
+ }
13832
+ }
13833
+ function layoutOverlayWidget(lineNumber, ...positionInfos) {
13834
+ const index2 = comments.value.findIndex((comment2) => comment2.lineNumber === lineNumber);
13835
+ const editorLayoutInfo = editor.getLayoutInfo();
13836
+ const layoutInfo = calculateLayoutInfo(positionInfos, editorLayoutInfo, index2);
13837
+ if (layoutInfo.height) {
13838
+ heightMap.set(index2, layoutInfo.height);
13839
+ }
13840
+ comments.value[index2].domNode.style.width = `${editorLayoutInfo.width - layoutInfo.minimapWidth - layoutInfo.offsetLeft}px`;
13841
+ handleDomNodePosition(layoutInfo.top, layoutInfo.height, index2);
13842
+ }
13843
+ function calculateLayoutInfo(positionInfos, editorLayoutInfo, index2) {
13844
+ let _offsetLeft = 0;
13845
+ const indexOffsetLeft = comments.value[index2].offserLeft;
13846
+ if (indexOffsetLeft) {
13847
+ _offsetLeft = indexOffsetLeft;
13848
+ } else {
13849
+ _offsetLeft = (offsetLeft == null ? void 0 : offsetLeft.value) ? offsetLeft == null ? void 0 : offsetLeft.value : 0;
13850
+ }
13851
+ return {
13852
+ top: positionInfos[0].top,
13853
+ height: positionInfos[0].height,
13854
+ minimapWidth: editorLayoutInfo.minimap.minimapWidth,
13855
+ offsetLeft: _offsetLeft
13856
+ };
13857
+ }
13858
+ function handleDomNodePosition(top, hieght, index2) {
13859
+ comments.value[index2].domNode.style.height = `${hieght}px`;
13860
+ if (heightMap.get(index2) === 0) {
13861
+ comments.value[index2].domNode.style.top = `-${1e4 + top}px`;
13862
+ } else {
13863
+ comments.value[index2].domNode.style.top = `${top}px`;
13864
+ }
13865
+ }
13866
+ function refreshOverlayWidgets() {
13867
+ if (editor) {
13868
+ renderOverlayWidget();
13869
+ }
13870
+ }
13871
+ function renderOverlayWidget() {
13872
+ if (refreshAll.value) {
13873
+ resetAllOverlayWidget();
13874
+ } else {
13875
+ resetOverlayWidget();
13876
+ }
13877
+ const renderedWidget = comments.value.filter((comment2) => comment2.isExpanded);
13878
+ renderedWidget == null ? void 0 : renderedWidget.forEach((comment2) => {
13879
+ const commentIndex = commentWidgets.findIndex((cw) => cw.lineNumber === comment2.lineNumber);
13880
+ if (commentIndex === -1) {
13881
+ const overlayWidget = buildOverlayWidget(comment2);
13882
+ commentWidgets.push({ lineNumber: comment2.lineNumber, widget: overlayWidget });
13883
+ editor.addOverlayWidget(overlayWidget);
13884
+ }
13885
+ });
13886
+ }
13887
+ function resetOverlayWidget() {
13888
+ comments.value.forEach((comment2) => {
13889
+ if (!comment2.isExpanded) {
13890
+ const commentIndex = commentWidgets.findIndex((cw) => cw.lineNumber === comment2.lineNumber);
13891
+ if (commentIndex !== -1) {
13892
+ const commentRemoved = commentWidgets.splice(commentIndex, 1)[0];
13893
+ editor.removeOverlayWidget(commentRemoved.widget);
13894
+ }
13895
+ }
13896
+ });
13897
+ }
13898
+ function resetAllOverlayWidget() {
13899
+ if (commentWidgets.length > 0) {
13900
+ commentWidgets.forEach((widget) => {
13901
+ editor.removeOverlayWidget(widget.widget);
13902
+ });
13903
+ commentWidgets = [];
13904
+ }
13905
+ }
13906
+ function buildOverlayWidget(comment2) {
13907
+ return {
13908
+ getId: () => {
13909
+ return `widget-lineNumber${comment2.lineNumber}`;
13910
+ },
13911
+ getDomNode: () => {
13912
+ return comment2.domNode;
13913
+ },
13914
+ getPosition: () => {
13915
+ return null;
13916
+ }
13917
+ };
13918
+ }
13919
+ return { editorEl };
13920
+ }
13921
+ var codeEditor = "";
13922
+ var CodeEditor = defineComponent({
13923
+ name: "DCodeEditor",
13924
+ props: codeEditorProps,
13925
+ emits: ["update: modelValue", "afterEditorInit", "click"],
13926
+ setup(props, ctx2) {
13927
+ const {
13928
+ editorEl
13929
+ } = useCodeEditor(props, ctx2);
13930
+ return () => createVNode("div", {
13931
+ "ref": editorEl,
13932
+ "class": "devui-code-editor"
13933
+ }, null);
13934
+ }
13935
+ });
13936
+ var CodeEditorInstall = {
13937
+ title: "Code Editor \u4EE3\u7801\u7F16\u8F91\u5668",
13938
+ category: "\u6F14\u8FDB\u4E2D",
13939
+ status: "100%",
13940
+ install(app) {
13941
+ app.component(CodeEditor.name, CodeEditor);
13942
+ }
13943
+ };
13342
13944
  const SELECT_TOKEN$1 = Symbol("dCollapse");
13343
13945
  const collapseProps = {
13344
13946
  modelValue: {
@@ -23069,7 +23671,7 @@ var Content = defineComponent({
23069
23671
  }
23070
23672
  });
23071
23673
  var header$1 = "";
23072
- var Header$1 = defineComponent({
23674
+ var Header = defineComponent({
23073
23675
  name: "DHeader",
23074
23676
  setup(props, {
23075
23677
  slots
@@ -23084,7 +23686,7 @@ var Header$1 = defineComponent({
23084
23686
  }
23085
23687
  });
23086
23688
  var footer = "";
23087
- var Footer$1 = defineComponent({
23689
+ var Footer = defineComponent({
23088
23690
  name: "DFooter",
23089
23691
  setup(props, {
23090
23692
  slots
@@ -23119,8 +23721,8 @@ var LayoutInstall = {
23119
23721
  install(app) {
23120
23722
  app.component(Layout.name, Layout);
23121
23723
  app.component(Content.name, Content);
23122
- app.component(Header$1.name, Header$1);
23123
- app.component(Footer$1.name, Footer$1);
23724
+ app.component(Header.name, Header);
23725
+ app.component(Footer.name, Footer);
23124
23726
  app.component(Aside.name, Aside);
23125
23727
  }
23126
23728
  };
@@ -23888,7 +24490,7 @@ var MenuItem = defineComponent({
23888
24490
  useClick(e);
23889
24491
  }
23890
24492
  isSelect.value = true;
23891
- changeRouteResult = changeRoute(props, router, useRouter, key);
24493
+ changeRouteResult = changeRoute(props, router, useRouter.value, key);
23892
24494
  } else {
23893
24495
  if (ele.classList.contains(menuItemSelect)) {
23894
24496
  rootMenuEmit("deselect", {
@@ -24384,7 +24986,8 @@ var Menu = defineComponent({
24384
24986
  openKeys,
24385
24987
  mode,
24386
24988
  collapsed,
24387
- defaultSelectKeys
24989
+ defaultSelectKeys,
24990
+ router
24388
24991
  } = toRefs(props);
24389
24992
  const menuId = randomId(16);
24390
24993
  const store = useStore(menuId);
@@ -24397,7 +25000,7 @@ var Menu = defineComponent({
24397
25000
  provide("mode", mode);
24398
25001
  provide("collapsedIndent", props["collapsedIndent"]);
24399
25002
  provide("rootMenuEmit", ctx2.emit);
24400
- provide("useRouter", props.router);
25003
+ provide("useRouter", router);
24401
25004
  setDefaultIndent(props["indentSize"]);
24402
25005
  const menuRoot = ref(null);
24403
25006
  const overflowItemLength = ref(0);
@@ -25004,7 +25607,7 @@ const useDraggable = (targetRef, dragRef, draggable) => {
25004
25607
  modalPosition
25005
25608
  };
25006
25609
  };
25007
- var Header = defineComponent({
25610
+ var ModalHeader = defineComponent({
25008
25611
  name: "DModalHeader",
25009
25612
  setup(props, {
25010
25613
  slots
@@ -25018,7 +25621,7 @@ var Header = defineComponent({
25018
25621
  };
25019
25622
  }
25020
25623
  });
25021
- var Body = defineComponent({
25624
+ var ModalBody = defineComponent({
25022
25625
  name: "DModalBody",
25023
25626
  setup(props, {
25024
25627
  slots
@@ -25103,7 +25706,7 @@ var Modal = defineComponent({
25103
25706
  cursor: props.draggable ? "move" : "default"
25104
25707
  },
25105
25708
  "ref": headerRef
25106
- }, [createVNode(Header, null, {
25709
+ }, [createVNode(ModalHeader, null, {
25107
25710
  default: () => [createVNode("div", {
25108
25711
  "class": "type-content"
25109
25712
  }, [createVNode("div", {
@@ -25155,9 +25758,9 @@ var Modal = defineComponent({
25155
25758
  cursor: props.draggable ? "move" : "default"
25156
25759
  },
25157
25760
  "ref": headerRef
25158
- }, [slots.header ? slots.header() : title.value && createVNode(Header, null, {
25761
+ }, [slots.header ? slots.header() : title.value && createVNode(ModalHeader, null, {
25159
25762
  default: () => [title.value]
25160
- })]), createVNode(Body, null, {
25763
+ })]), createVNode(ModalBody, null, {
25161
25764
  default: () => {
25162
25765
  var _a2;
25163
25766
  return [(_a2 = slots.default) == null ? void 0 : _a2.call(slots)];
@@ -25168,7 +25771,7 @@ var Modal = defineComponent({
25168
25771
  });
25169
25772
  }
25170
25773
  });
25171
- var Footer = defineComponent({
25774
+ var ModalFooter = defineComponent({
25172
25775
  name: "DModalFooter",
25173
25776
  setup(props, {
25174
25777
  slots
@@ -25246,9 +25849,9 @@ var ModalInstall = {
25246
25849
  status: "100%",
25247
25850
  install(app) {
25248
25851
  app.component(Modal.name, Modal);
25249
- app.component(Header.name, Header);
25250
- app.component(Body.name, Body);
25251
- app.component(Footer.name, Footer);
25852
+ app.component(ModalHeader.name, ModalHeader);
25853
+ app.component(ModalBody.name, ModalBody);
25854
+ app.component(ModalFooter.name, ModalFooter);
25252
25855
  if (!inBrowser) {
25253
25856
  return;
25254
25857
  }
@@ -25850,6 +26453,7 @@ function useSelect$2(props, selectRef, ctx2, focus, blur2, isSelectFocus, t) {
25850
26453
  handleClose();
25851
26454
  blur2();
25852
26455
  }
26456
+ filterQuery.value = "";
25853
26457
  };
25854
26458
  const tagDelete = (data) => {
25855
26459
  let { modelValue } = props;
@@ -37206,6 +37810,11 @@ function useOperate() {
37206
37810
  }
37207
37811
  setNodeValue(parentNode, "expanded", true);
37208
37812
  setNodeValue(parentNode, "isLeaf", false);
37813
+ let childrenLen = parentNode.childNodeCount;
37814
+ if (!childrenLen) {
37815
+ childrenLen = 0;
37816
+ setNodeValue(parentNode, "childNodeCount", childrenLen + 1);
37817
+ }
37209
37818
  if (lastChild) {
37210
37819
  setNodeValue(lastChild, "parentChildNodeCount", children.length + 1);
37211
37820
  }
@@ -38970,6 +39579,7 @@ var UploadInstall = {
38970
39579
  var devui = "";
38971
39580
  const installs = [
38972
39581
  AccordionInstall,
39582
+ ActionTimelineInstall,
38973
39583
  AlertInstall,
38974
39584
  AnchorInstall,
38975
39585
  AutoCompleteInstall,
@@ -38982,6 +39592,7 @@ const installs = [
38982
39592
  CarouselInstall,
38983
39593
  CascaderInstall,
38984
39594
  CheckboxInstall,
39595
+ CodeEditorInstall,
38985
39596
  CollapseInstall,
38986
39597
  ColorPickerInstall,
38987
39598
  CommentInstall,
@@ -39049,9 +39660,9 @@ const installs = [
39049
39660
  VirtualListInstall
39050
39661
  ];
39051
39662
  var vueDevui = {
39052
- version: "1.5.3",
39663
+ version: "1.5.4",
39053
39664
  install(app) {
39054
39665
  installs.forEach((p) => app.use(p));
39055
39666
  }
39056
39667
  };
39057
- export { Accordion, Alert, Anchor, Aside, AutoComplete, Avatar, BackTop, Badge, Breadcrumb, DButton as Button, ButtonGroup, Card, Carousel, CarouselItem, Cascader, Checkbox, CheckboxButton, DCheckboxGroup as CheckboxGroup, Col, Collapse, CollapseItem, ColorPicker, Column, Comment, Content, Countdown, DRangeDatePickerPro, DatePicker, DatePickerPro, DraggableDirective, Drawer, DrawerService, Dropdown$1 as Dropdown, DropdownMenu, DroppableDirective, EditableSelect, FixedOverlay, FlexibleOverlay, Footer$1 as Footer, Form, FormItem, FormOperation, Fullscreen, Gantt, Header$1 as Header, DIcon as Icon, IconGroup, ImagePreviewDirective, ImagePreviewService, DInput as Input, InputIcon, InputNumber, Layout, List, ListItem, LoadingDirective, loading as LoadingService, Mention, Menu, MenuItem, Message, Modal, MultiAutoComplete, NavSprite, Notification, NotificationService, Option, OptionGroup, Pagination, Panel, PanelBody, PanelFooter, PanelHeader, Popover, Progress, QuadrantDiagram, Radio, RadioButton, RadioGroup, Rate, ReadTip, Result, RippleDirective, Row, DSearch as Search, Select, Skeleton, SkeletonItem, Slider, SortableDirective, Splitter, Statistic, Status, Step, Steps, StepsGuide, StepsGuideDirective, StickSlider, Sticky, SubMenu, Switch, Tab, Table, Tabs, Tag, TagInput, Textarea, TimePicker, TimeSelect, Timeline, TimelineItem, Tooltip, Transfer, Tree, TreeSelect, Upload, VirtualList, vueDevui as default };
39668
+ export { Accordion, ActionTimeline, Alert, Anchor, Aside, AutoComplete, Avatar, BackTop, Badge, Breadcrumb, BreadcrumbItem, DButton as Button, ButtonGroup, Card, Carousel, CarouselItem, Cascader, Checkbox, CheckboxButton, DCheckboxGroup as CheckboxGroup, CodeEditor, Col, Collapse, CollapseItem, ColorPicker, Column, Comment, Content, Countdown, DRangeDatePickerPro, DatePicker, DatePickerPro, DraggableDirective, Drawer, DrawerService, Dropdown$1 as Dropdown, DropdownMenu, DroppableDirective, EditableSelect, FixedOverlay, FlexibleOverlay, Footer, Form, FormItem, FormOperation, Fullscreen, Gantt, Header, DIcon as Icon, IconGroup, ImagePreviewDirective, ImagePreviewService, DInput as Input, InputIcon, InputNumber, Layout, List, ListItem, LoadingDirective, loading as LoadingService, Mention, Menu, MenuItem, Message, Modal, ModalBody, ModalFooter, ModalHeader, MultiAutoComplete, NavSprite, Notification, NotificationService, Option, OptionGroup, Pagination, Panel, PanelBody, PanelFooter, PanelHeader, Popover, Progress, QuadrantDiagram, Radio, RadioButton, RadioGroup, Rate, ReadTip, Result, RippleDirective, Row, DSearch as Search, Select, Skeleton, SkeletonItem, Slider, SortableDirective, Splitter, SplitterPane, Statistic, Status, Step, Steps, StepsGuide, StepsGuideDirective, StickSlider, Sticky, SubMenu, Switch, Tab, Table, Tabs, Tag, TagInput, Textarea, TimePicker, TimeSelect, Timeline, TimelineItem, Tooltip, Transfer, Tree, TreeSelect, Upload, VirtualList, vueDevui as default, fileDropDirective };