vue-devui 1.5.12-hotfix.1 → 1.5.13

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 (95) hide show
  1. package/auto-complete/index.es.js +139 -61
  2. package/auto-complete/index.umd.js +16 -16
  3. package/auto-complete/style.css +1 -1
  4. package/checkbox/index.es.js +115 -61
  5. package/checkbox/index.umd.js +15 -15
  6. package/checkbox/style.css +1 -1
  7. package/code-editor/index.es.js +5 -2
  8. package/code-editor/index.umd.js +6 -6
  9. package/code-review/index.es.js +12 -1
  10. package/code-review/index.umd.js +18 -18
  11. package/code-review/style.css +1 -1
  12. package/date-picker-pro/index.es.js +213 -109
  13. package/date-picker-pro/index.umd.js +19 -19
  14. package/date-picker-pro/style.css +1 -1
  15. package/editor-md/index.es.js +1 -1
  16. package/editor-md/index.umd.js +1 -1
  17. package/form/index.es.js +142 -64
  18. package/form/index.umd.js +14 -14
  19. package/form/style.css +1 -1
  20. package/image-preview/index.es.js +2 -6
  21. package/image-preview/index.umd.js +2 -2
  22. package/image-preview/style.css +1 -1
  23. package/input/index.es.js +207 -79
  24. package/input/index.umd.js +18 -18
  25. package/input/style.css +1 -1
  26. package/input-number/index.es.js +123 -46
  27. package/input-number/index.umd.js +20 -20
  28. package/input-number/style.css +1 -1
  29. package/mention/index.es.js +138 -60
  30. package/mention/index.umd.js +16 -16
  31. package/mention/style.css +1 -1
  32. package/nuxt/components/STYLE_TOKEN.js +3 -0
  33. package/nuxt/components/formControlProps.js +3 -0
  34. package/package.json +1 -1
  35. package/pagination/index.es.js +376 -161
  36. package/pagination/index.umd.js +19 -19
  37. package/pagination/style.css +1 -1
  38. package/progress/index.es.js +6 -6
  39. package/progress/index.umd.js +1 -1
  40. package/radio/index.es.js +115 -61
  41. package/radio/index.umd.js +16 -16
  42. package/radio/style.css +1 -1
  43. package/search/index.es.js +211 -83
  44. package/search/index.umd.js +19 -19
  45. package/search/style.css +1 -1
  46. package/select/index.es.js +358 -143
  47. package/select/index.umd.js +17 -17
  48. package/select/style.css +1 -1
  49. package/skeleton/index.es.js +1 -0
  50. package/skeleton/index.umd.js +2 -2
  51. package/steps/index.es.js +35 -11
  52. package/steps/index.umd.js +1 -1
  53. package/style.css +1 -1
  54. package/switch/index.es.js +115 -61
  55. package/switch/index.umd.js +14 -14
  56. package/switch/style.css +1 -1
  57. package/table/index.es.js +88 -34
  58. package/table/index.umd.js +15 -15
  59. package/table/style.css +1 -1
  60. package/textarea/index.es.js +141 -63
  61. package/textarea/index.umd.js +17 -17
  62. package/textarea/style.css +1 -1
  63. package/time-picker/index.es.js +159 -55
  64. package/time-picker/index.umd.js +11 -11
  65. package/time-picker/style.css +1 -1
  66. package/time-select/index.es.js +358 -143
  67. package/time-select/index.umd.js +22 -22
  68. package/time-select/style.css +1 -1
  69. package/tree/index.es.js +86 -32
  70. package/tree/index.umd.js +11 -11
  71. package/tree/style.css +1 -1
  72. package/types/auto-focus/index.d.ts +9 -0
  73. package/types/auto-focus/src/auto-focus-directive.d.ts +4 -0
  74. package/types/code-review/src/code-review-types.d.ts +6 -0
  75. package/types/code-review/src/code-review.d.ts +9 -0
  76. package/types/form/index.d.ts +1 -0
  77. package/types/form/src/components/form-control/use-form-control.d.ts +11 -2
  78. package/types/form/src/components/form-item/form-item-types.d.ts +10 -2
  79. package/types/form/src/components/form-item/form-item.d.ts +3 -3
  80. package/types/form/src/components/form-label/form-label.d.ts +1 -13
  81. package/types/form/src/components/form-label/use-form-label.d.ts +14 -2
  82. package/types/form/src/form-types.d.ts +11 -0
  83. package/types/form/src/form.d.ts +18 -0
  84. package/types/input/src/composables/use-input-event.d.ts +12 -2
  85. package/types/input/src/input-types.d.ts +8 -0
  86. package/types/input/src/input.d.ts +18 -0
  87. package/types/input-icon/src/input-icon.d.ts +18 -0
  88. package/types/list/index.d.ts +0 -1
  89. package/types/select/src/composables/use-select-menu-size.d.ts +5 -0
  90. package/types/select/src/select-types.d.ts +23 -4
  91. package/types/select/src/select.d.ts +19 -1
  92. package/types/select/src/use-select.d.ts +1 -1
  93. package/types/vue-devui.d.ts +2 -1
  94. package/vue-devui.es.js +415 -134
  95. package/vue-devui.umd.js +76 -76
@@ -153,32 +153,18 @@ const formProps = {
153
153
  hideRequiredMark: {
154
154
  type: Boolean,
155
155
  default: false
156
+ },
157
+ styleType: {
158
+ type: String,
159
+ default: "default"
160
+ },
161
+ appendToBodyScrollStrategy: {
162
+ type: String,
163
+ default: "reposition"
156
164
  }
157
165
  };
158
166
  const FORM_TOKEN = Symbol("dForm");
159
- function createBem(namespace, element, modifier) {
160
- let cls = namespace;
161
- if (element) {
162
- cls += `__${element}`;
163
- }
164
- if (modifier) {
165
- cls += `--${modifier}`;
166
- }
167
- return cls;
168
- }
169
- function useNamespace(block, needDot = false) {
170
- const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
171
- const b = () => createBem(namespace);
172
- const e = (element) => element ? createBem(namespace, element) : "";
173
- const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
174
- const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
175
- return {
176
- b,
177
- e,
178
- m,
179
- em
180
- };
181
- }
167
+ const STYLE_TOKEN = Symbol("dForm");
182
168
  function useFieldCollection() {
183
169
  const itemContexts = [];
184
170
  const addItemContext = (field) => {
@@ -1369,7 +1355,7 @@ var lodash = { exports: {} };
1369
1355
  if (typeof func != "function") {
1370
1356
  throw new TypeError2(FUNC_ERROR_TEXT);
1371
1357
  }
1372
- return setTimeout(function() {
1358
+ return setTimeout2(function() {
1373
1359
  func.apply(undefined$1, args);
1374
1360
  }, wait);
1375
1361
  }
@@ -3178,7 +3164,7 @@ var lodash = { exports: {} };
3178
3164
  return object4[key];
3179
3165
  }
3180
3166
  var setData = shortOut(baseSetData);
3181
- var setTimeout = ctxSetTimeout || function(func, wait) {
3167
+ var setTimeout2 = ctxSetTimeout || function(func, wait) {
3182
3168
  return root.setTimeout(func, wait);
3183
3169
  };
3184
3170
  var setToString = shortOut(baseSetToString);
@@ -3970,7 +3956,7 @@ var lodash = { exports: {} };
3970
3956
  }
3971
3957
  function leadingEdge(time) {
3972
3958
  lastInvokeTime = time;
3973
- timerId = setTimeout(timerExpired, wait);
3959
+ timerId = setTimeout2(timerExpired, wait);
3974
3960
  return leading ? invokeFunc(time) : result2;
3975
3961
  }
3976
3962
  function remainingWait(time) {
@@ -3986,7 +3972,7 @@ var lodash = { exports: {} };
3986
3972
  if (shouldInvoke(time)) {
3987
3973
  return trailingEdge(time);
3988
3974
  }
3989
- timerId = setTimeout(timerExpired, remainingWait(time));
3975
+ timerId = setTimeout2(timerExpired, remainingWait(time));
3990
3976
  }
3991
3977
  function trailingEdge(time) {
3992
3978
  timerId = undefined$1;
@@ -4017,12 +4003,12 @@ var lodash = { exports: {} };
4017
4003
  }
4018
4004
  if (maxing) {
4019
4005
  clearTimeout(timerId);
4020
- timerId = setTimeout(timerExpired, wait);
4006
+ timerId = setTimeout2(timerExpired, wait);
4021
4007
  return invokeFunc(lastCallTime);
4022
4008
  }
4023
4009
  }
4024
4010
  if (timerId === undefined$1) {
4025
- timerId = setTimeout(timerExpired, wait);
4011
+ timerId = setTimeout2(timerExpired, wait);
4026
4012
  }
4027
4013
  return result2;
4028
4014
  }
@@ -5658,7 +5644,7 @@ defineComponent({
5658
5644
  props: formProps,
5659
5645
  emits: ["validate"],
5660
5646
  setup(props, ctx) {
5661
- const ns2 = useNamespace("form");
5647
+ const ns2 = useNamespace$1("form");
5662
5648
  const {
5663
5649
  itemContexts,
5664
5650
  addItemContext,
@@ -5685,6 +5671,7 @@ defineComponent({
5685
5671
  addItemContext,
5686
5672
  removeItemContext
5687
5673
  })));
5674
+ provide(STYLE_TOKEN, props.styleType);
5688
5675
  ctx.expose({
5689
5676
  validate,
5690
5677
  validateFields,
@@ -5726,7 +5713,7 @@ const formItemProps = {
5726
5713
  default: void 0
5727
5714
  },
5728
5715
  helpTips: {
5729
- type: String,
5716
+ type: [String, Object],
5730
5717
  default: ""
5731
5718
  },
5732
5719
  feedbackStatus: {
@@ -5739,12 +5726,6 @@ const formItemProps = {
5739
5726
  };
5740
5727
  const FORM_ITEM_TOKEN = Symbol("dFormItem");
5741
5728
  const LABEL_DATA = Symbol("labelData");
5742
- const formLabelProps = {
5743
- helpTips: {
5744
- type: String,
5745
- default: ""
5746
- }
5747
- };
5748
5729
  const fixedOverlayProps = {
5749
5730
  modelValue: {
5750
5731
  type: Boolean,
@@ -5781,6 +5762,29 @@ function useFixedOverlay(props, ctx) {
5781
5762
  onUnmounted(removeBodyAdditions);
5782
5763
  return { onClick };
5783
5764
  }
5765
+ function createBem(namespace, element, modifier) {
5766
+ let cls = namespace;
5767
+ if (element) {
5768
+ cls += `__${element}`;
5769
+ }
5770
+ if (modifier) {
5771
+ cls += `--${modifier}`;
5772
+ }
5773
+ return cls;
5774
+ }
5775
+ function useNamespace(block, needDot = false) {
5776
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
5777
+ const b = () => createBem(namespace);
5778
+ const e = (element) => element ? createBem(namespace, element) : "";
5779
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
5780
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
5781
+ return {
5782
+ b,
5783
+ e,
5784
+ m,
5785
+ em
5786
+ };
5787
+ }
5784
5788
  var fixedOverlay = "";
5785
5789
  defineComponent({
5786
5790
  name: "DFixedOverlay",
@@ -6445,7 +6449,13 @@ function useFormLabel() {
6445
6449
  const formContext = inject(FORM_TOKEN);
6446
6450
  const formItemContext = inject(FORM_ITEM_TOKEN);
6447
6451
  const labelData = inject(LABEL_DATA);
6448
- const ns2 = useNamespace("form");
6452
+ const ns2 = useNamespace$1("form");
6453
+ const defaultTipsPopover = {
6454
+ content: "",
6455
+ position: ["top"],
6456
+ trigger: "hover",
6457
+ popType: "info"
6458
+ };
6449
6459
  const labelClasses = computed(() => ({
6450
6460
  [`${ns2.e("label")}`]: true,
6451
6461
  [`${ns2.em("label", "vertical")}`]: labelData.value.layout === "vertical",
@@ -6457,17 +6467,24 @@ function useFormLabel() {
6457
6467
  [`${ns2.em("label", "required")}`]: formItemContext.isRequired,
6458
6468
  [`${ns2.em("label", "required-hide")}`]: formItemContext.isRequired && formContext.hideRequiredMark
6459
6469
  }));
6460
- return { labelClasses, labelInnerClasses };
6470
+ const tipsPopover = computed(() => {
6471
+ if (typeof labelData.value.helpTips === "string") {
6472
+ return __spreadProps(__spreadValues({}, defaultTipsPopover), { content: labelData.value.helpTips });
6473
+ } else {
6474
+ return __spreadValues(__spreadValues({}, defaultTipsPopover), labelData.value.helpTips);
6475
+ }
6476
+ });
6477
+ return { labelClasses, labelInnerClasses, tipsPopover };
6461
6478
  }
6462
6479
  var formLabel = "";
6463
6480
  var FormLabel = defineComponent({
6464
6481
  name: "DFormLabel",
6465
- props: formLabelProps,
6466
- setup(props, ctx) {
6467
- const ns2 = useNamespace("form");
6482
+ setup(_, ctx) {
6483
+ const ns2 = useNamespace$1("form");
6468
6484
  const {
6469
6485
  labelClasses,
6470
- labelInnerClasses
6486
+ labelInnerClasses,
6487
+ tipsPopover
6471
6488
  } = useFormLabel();
6472
6489
  return () => {
6473
6490
  var _a, _b;
@@ -6475,12 +6492,9 @@ var FormLabel = defineComponent({
6475
6492
  "class": labelClasses.value
6476
6493
  }, [createVNode("span", {
6477
6494
  "class": labelInnerClasses.value
6478
- }, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)]), props.helpTips && createVNode(Popover, {
6479
- "content": props.helpTips,
6480
- "position": ["top"],
6481
- "trigger": "hover",
6482
- "pop-type": "info"
6483
- }, {
6495
+ }, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)]), tipsPopover.value.content && createVNode(Popover, mergeProps({
6496
+ "class": ns2.e("label-tips-popover")
6497
+ }, tipsPopover.value), {
6484
6498
  default: () => [createVNode(HelpTipsIcon, {
6485
6499
  "class": ns2.e("label-help")
6486
6500
  }, null), createTextVNode(",")]
@@ -6499,7 +6513,7 @@ const formControlProps = {
6499
6513
  };
6500
6514
  function useFormControl(props) {
6501
6515
  const labelData = inject(LABEL_DATA);
6502
- const ns2 = useNamespace("form");
6516
+ const ns2 = useNamespace$1("form");
6503
6517
  const { feedbackStatus } = toRefs(props);
6504
6518
  const controlClasses = computed(() => ({
6505
6519
  [ns2.e("control")]: true,
@@ -6511,7 +6525,7 @@ function useFormControl(props) {
6511
6525
  [ns2.em("control-container", "has-feedback")]: Boolean(feedbackStatus == null ? void 0 : feedbackStatus.value),
6512
6526
  [ns2.em("control-container", "feedback-error")]: Boolean((feedbackStatus == null ? void 0 : feedbackStatus.value) === "error")
6513
6527
  }));
6514
- return { controlClasses, controlContainerClasses };
6528
+ return { controlClasses, controlContainerClasses, labelData };
6515
6529
  }
6516
6530
  function useFormControlValidate() {
6517
6531
  const formItemContext = inject(FORM_ITEM_TOKEN);
@@ -6528,11 +6542,15 @@ var FormControl = defineComponent({
6528
6542
  name: "DFormControl",
6529
6543
  props: formControlProps,
6530
6544
  setup(props, ctx) {
6545
+ const formContext = inject(FORM_TOKEN);
6531
6546
  const formControl2 = ref();
6532
- const ns2 = useNamespace("form");
6547
+ const popoverRef = ref();
6548
+ const ns2 = useNamespace$1("form");
6549
+ const showPopoverClick = ref(true);
6533
6550
  const {
6534
6551
  controlClasses,
6535
- controlContainerClasses
6552
+ controlContainerClasses,
6553
+ labelData
6536
6554
  } = useFormControl(props);
6537
6555
  const {
6538
6556
  feedbackStatus,
@@ -6542,17 +6560,52 @@ var FormControl = defineComponent({
6542
6560
  errorMessage,
6543
6561
  popPosition
6544
6562
  } = useFormControlValidate();
6563
+ const align = computed(() => {
6564
+ var _a, _b;
6565
+ if ((_a = popPosition.value) == null ? void 0 : _a.some((item) => item.includes("start"))) {
6566
+ return "start";
6567
+ }
6568
+ if ((_b = popPosition.value) == null ? void 0 : _b.some((item) => item.includes("end"))) {
6569
+ return "end";
6570
+ }
6571
+ return void 0;
6572
+ });
6573
+ const onDocumentClick = (e) => {
6574
+ const composedPath = e.composedPath();
6575
+ if (composedPath.includes(popoverRef.value.triggerEl)) {
6576
+ showPopoverClick.value = true;
6577
+ } else {
6578
+ showPopoverClick.value = false;
6579
+ }
6580
+ };
6581
+ watch(showPopover, (val) => {
6582
+ if (val) {
6583
+ setTimeout(() => {
6584
+ document.addEventListener("click", onDocumentClick);
6585
+ });
6586
+ } else {
6587
+ showPopoverClick.value = true;
6588
+ document.removeEventListener("click", onDocumentClick);
6589
+ }
6590
+ });
6591
+ onUnmounted(() => {
6592
+ document.removeEventListener("click", onDocumentClick);
6593
+ });
6545
6594
  return () => createVNode("div", {
6546
6595
  "class": controlClasses.value,
6547
6596
  "ref": formControl2
6548
6597
  }, [createVNode("div", {
6549
6598
  "class": controlContainerClasses.value
6550
6599
  }, [createVNode(Popover, {
6551
- "is-open": showPopover.value,
6600
+ "ref": popoverRef,
6601
+ "is-open": showPopover.value && showPopoverClick.value,
6552
6602
  "trigger": "manually",
6553
6603
  "content": errorMessage.value,
6554
6604
  "pop-type": "error",
6555
- "position": popPosition.value
6605
+ "position": popPosition.value,
6606
+ "align": align.value,
6607
+ "scroll-element": "auto",
6608
+ "append-to-body-scroll-strategy": formContext.appendToBodyScrollStrategy
6556
6609
  }, {
6557
6610
  default: () => {
6558
6611
  var _a, _b;
@@ -6564,7 +6617,7 @@ var FormControl = defineComponent({
6564
6617
  "class": ns2.e("control-info")
6565
6618
  }, [showMessage.value && createVNode("div", {
6566
6619
  "class": "error-message"
6567
- }, [errorMessage.value]), props.extraInfo && createVNode("div", {
6620
+ }, [errorMessage.value]), labelData.value.formItemCtx.slots.extraInfo ? labelData.value.formItemCtx.slots.extraInfo() : props.extraInfo && createVNode("div", {
6568
6621
  "class": ns2.e("control-extra")
6569
6622
  }, [props.extraInfo])])]);
6570
6623
  }
@@ -7583,7 +7636,7 @@ function getFieldValue(obj, path) {
7583
7636
  }
7584
7637
  function useFormItem(messageType, _rules, validateState) {
7585
7638
  const formContext = inject(FORM_TOKEN);
7586
- const ns2 = useNamespace("form");
7639
+ const ns2 = useNamespace$1("form");
7587
7640
  const itemClasses = computed(() => ({
7588
7641
  [`${ns2.em("item", "horizontal")}`]: formContext.layout === "horizontal",
7589
7642
  [`${ns2.em("item", "vertical")}`]: formContext.layout === "vertical",
@@ -7747,7 +7800,9 @@ defineComponent({
7747
7800
  const labelData = computed(() => ({
7748
7801
  layout: formContext.layout,
7749
7802
  labelSize: formContext.labelSize,
7750
- labelAlign: formContext.labelAlign
7803
+ labelAlign: formContext.labelAlign,
7804
+ helpTips: helpTips.value,
7805
+ formItemCtx: ctx
7751
7806
  }));
7752
7807
  provide(LABEL_DATA, labelData);
7753
7808
  const context = reactive(__spreadProps(__spreadValues({}, otherProps), {
@@ -7763,6 +7818,7 @@ defineComponent({
7763
7818
  }));
7764
7819
  provide(FORM_ITEM_TOKEN, context);
7765
7820
  ctx.expose({
7821
+ validate,
7766
7822
  resetField,
7767
7823
  clearValidate
7768
7824
  });
@@ -7776,9 +7832,7 @@ defineComponent({
7776
7832
  });
7777
7833
  return () => createVNode("div", {
7778
7834
  "class": itemClasses.value
7779
- }, [createVNode(FormLabel, {
7780
- "help-tips": helpTips.value
7781
- }, {
7835
+ }, [createVNode(FormLabel, null, {
7782
7836
  default: () => [ctx.slots.label ? ctx.slots.label() : label == null ? void 0 : label.value]
7783
7837
  }), createVNode(FormControl, {
7784
7838
  "feedback-status": feedbackStatus == null ? void 0 : feedbackStatus.value,