@qynpm/ui 1.0.23 → 1.0.24

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 (130) hide show
  1. package/README.md +222 -48
  2. package/dist/index.cjs +15 -5
  3. package/dist/index.mjs +50 -33
  4. package/dist/qy-action-bar/index.cjs +1 -1
  5. package/dist/qy-action-bar/index.mjs +1 -1
  6. package/dist/qy-button/index.cjs +1 -1
  7. package/dist/qy-button/index.mjs +1 -1
  8. package/dist/qy-checkbox/index.cjs +1 -1
  9. package/dist/qy-checkbox/index.mjs +4 -3
  10. package/dist/qy-checkbox-group/index.cjs +1 -0
  11. package/dist/qy-checkbox-group/index.mjs +7 -0
  12. package/dist/qy-date-picker/index.cjs +1 -1
  13. package/dist/qy-date-picker/index.mjs +4 -3
  14. package/dist/qy-dialog/index.cjs +1 -1
  15. package/dist/qy-dialog/index.mjs +2 -2
  16. package/dist/qy-dropdown/index.cjs +1 -1
  17. package/dist/qy-dropdown/index.mjs +1 -1
  18. package/dist/qy-file-picker/index.cjs +1 -0
  19. package/dist/qy-file-picker/index.mjs +7 -0
  20. package/dist/qy-form-section/index.cjs +1 -1
  21. package/dist/qy-form-section/index.mjs +1 -1
  22. package/dist/qy-image/index.cjs +1 -1
  23. package/dist/qy-image/index.mjs +1 -1
  24. package/dist/qy-image-upload/index.cjs +1 -1
  25. package/dist/qy-image-upload/index.mjs +1 -1
  26. package/dist/qy-input/index.cjs +2 -2
  27. package/dist/qy-input/index.mjs +6 -3
  28. package/dist/qy-input-number/index.cjs +1 -1
  29. package/dist/qy-input-number/index.mjs +4 -3
  30. package/dist/qy-legacy-selection-dialog/index.cjs +1 -1
  31. package/dist/qy-legacy-selection-dialog/index.mjs +2 -2
  32. package/dist/qy-menu-actions/index.cjs +1 -1
  33. package/dist/qy-menu-actions/index.mjs +1 -1
  34. package/dist/qy-money-input/index.cjs +1 -1
  35. package/dist/qy-money-input/index.mjs +2 -2
  36. package/dist/qy-popover/index.cjs +2 -0
  37. package/dist/qy-popover/index.mjs +8 -0
  38. package/dist/qy-radio/index.cjs +1 -0
  39. package/dist/qy-radio/index.mjs +7 -0
  40. package/dist/qy-radio-group/index.cjs +1 -1
  41. package/dist/qy-radio-group/index.mjs +5 -2
  42. package/dist/qy-record-quote-search/index.cjs +1 -1
  43. package/dist/qy-record-quote-search/index.mjs +1 -1
  44. package/dist/qy-remark-image/index.cjs +1 -1
  45. package/dist/qy-remark-image/index.mjs +2 -2
  46. package/dist/qy-remote-select/index.cjs +1 -1
  47. package/dist/qy-remote-select/index.mjs +1 -1
  48. package/dist/qy-search-input/index.cjs +1 -1
  49. package/dist/qy-search-input/index.mjs +2 -2
  50. package/dist/qy-select/index.cjs +1 -1
  51. package/dist/qy-select/index.mjs +4 -3
  52. package/dist/qy-selection-dialog/index.cjs +1 -1
  53. package/dist/qy-selection-dialog/index.mjs +1 -1
  54. package/dist/qy-switch/index.cjs +1 -0
  55. package/dist/qy-switch/index.mjs +7 -0
  56. package/dist/qy-table-column-settings/index.cjs +1 -1
  57. package/dist/qy-table-column-settings/index.mjs +1 -1
  58. package/dist/qy-tag/index.cjs +1 -0
  59. package/dist/qy-tag/index.mjs +7 -0
  60. package/dist/qy-tooltip/index.cjs +2 -0
  61. package/dist/qy-tooltip/index.mjs +8 -0
  62. package/dist/qy-upload/index.cjs +1 -1
  63. package/dist/qy-upload/index.mjs +1 -1
  64. package/dist/shared/index-8u4DJZwd.mjs +90 -0
  65. package/dist/shared/index-9WJeVamR.cjs +1 -0
  66. package/dist/shared/index-BDFscU3G.mjs +72 -0
  67. package/dist/shared/index-BYme5QGm.cjs +1 -0
  68. package/dist/shared/index-B_mI-37S.cjs +1 -0
  69. package/dist/shared/index-BrV6CR4H.mjs +54 -0
  70. package/dist/shared/index-C8CA7nkO.cjs +1 -0
  71. package/dist/shared/index-CTtAQ1LD.cjs +1 -0
  72. package/dist/shared/index-CczrP1H7.mjs +149 -0
  73. package/dist/shared/index-ClmefDi6.cjs +1 -0
  74. package/dist/shared/{index-D7lMppIb.mjs → index-DJnmpqCc.mjs} +63 -63
  75. package/dist/shared/index-DYohs_aV.mjs +225 -0
  76. package/dist/shared/index-DixSXWJj.mjs +68 -0
  77. package/dist/shared/index-aiJ7R6G-.cjs +1 -0
  78. package/dist/shared/{index-ZLoAI88M.mjs → index-c7lnX4vT.mjs} +1327 -1389
  79. package/dist/shared/index-dEWJKTS-.cjs +1 -0
  80. package/dist/shared/index-fBuu4V3A.mjs +129 -0
  81. package/dist/shared/index-wIXCDvwC.cjs +1 -0
  82. package/dist/shared/index.vue_vue_type_script_setup_true_lang-BF82tses.cjs +1 -0
  83. package/dist/shared/index.vue_vue_type_script_setup_true_lang-BNjoxcAR.mjs +61 -0
  84. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DmmW8UUK.mjs +106 -0
  85. package/dist/shared/index.vue_vue_type_script_setup_true_lang-tyM4_aoa.cjs +1 -0
  86. package/dist/shared/index.vue_vue_type_style_index_0_lang-1cTut9Ql.cjs +1 -0
  87. package/dist/shared/index.vue_vue_type_style_index_0_lang-BZQLyvw8.cjs +1 -0
  88. package/dist/shared/index.vue_vue_type_style_index_0_lang-BtbAft4t.cjs +1 -0
  89. package/dist/shared/index.vue_vue_type_style_index_0_lang-CJhIFeBC.mjs +166 -0
  90. package/dist/shared/index.vue_vue_type_style_index_0_lang-DSur831A.mjs +68 -0
  91. package/dist/shared/index.vue_vue_type_style_index_0_lang-DVqGYfD9.mjs +132 -0
  92. package/dist/shared/index.vue_vue_type_style_index_0_lang-Dm1r1WBK.cjs +1 -0
  93. package/dist/shared/index.vue_vue_type_style_index_0_lang-Q2gFF0PP.cjs +1 -0
  94. package/dist/shared/index.vue_vue_type_style_index_0_lang-aqtfjdVm.mjs +140 -0
  95. package/dist/shared/index.vue_vue_type_style_index_0_lang-ztD-It-2.mjs +121 -0
  96. package/index.d.ts +155 -17
  97. package/package.json +43 -1
  98. package/qy-checkbox/index.d.ts +42 -2
  99. package/qy-checkbox-group/index.d.ts +48 -0
  100. package/qy-date-picker/index.d.ts +140 -5
  101. package/qy-file-picker/index.d.ts +49 -0
  102. package/qy-input/index.d.ts +50 -5
  103. package/qy-input-number/index.d.ts +45 -5
  104. package/qy-popover/index.d.ts +63 -0
  105. package/qy-radio/index.d.ts +44 -0
  106. package/qy-radio-group/index.d.ts +60 -12
  107. package/qy-select/index.d.ts +67 -5
  108. package/qy-switch/index.d.ts +46 -0
  109. package/qy-tag/index.d.ts +44 -0
  110. package/qy-tooltip/index.d.ts +54 -0
  111. package/dist/shared/index-B3U7dqMt.cjs +0 -1
  112. package/dist/shared/index-BbpD7hM0.cjs +0 -1
  113. package/dist/shared/index-D3l7tLgw.cjs +0 -1
  114. package/dist/shared/index-NCpeoBUZ.mjs +0 -153
  115. package/dist/shared/index.vue_vue_type_script_setup_true_lang-BJakDlgd.mjs +0 -70
  116. package/dist/shared/index.vue_vue_type_script_setup_true_lang-CelW13DE.cjs +0 -1
  117. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DA1Nh7U1.mjs +0 -130
  118. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DEpXmMj5.mjs +0 -162
  119. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DNEVwqm7.cjs +0 -1
  120. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DfKTEci_.cjs +0 -1
  121. package/dist/shared/index.vue_vue_type_script_setup_true_lang-gTkP1LWg.mjs +0 -61
  122. package/dist/shared/index.vue_vue_type_script_setup_true_lang-svvSFv2K.cjs +0 -1
  123. package/dist/shared/index.vue_vue_type_style_index_0_lang-B_A4Nq6v.cjs +0 -1
  124. package/dist/shared/index.vue_vue_type_style_index_0_lang-DKFiK2fQ.mjs +0 -152
  125. /package/dist/shared/{index-CagHZ25z.mjs → index-BYLXkIxS.mjs} +0 -0
  126. /package/dist/shared/{index-CRZsiNVW.cjs → index-C1p86ezL.cjs} +0 -0
  127. /package/dist/shared/{index-BO5aWk3f.cjs → index-ClUqUsAv.cjs} +0 -0
  128. /package/dist/shared/{index-CSxCewXP.mjs → index-Cy_Glkc-.mjs} +0 -0
  129. /package/dist/shared/{index-BXlQSIWX.mjs → index-DMGXEAyl.mjs} +0 -0
  130. /package/dist/shared/{index-DyK6vf5h.cjs → index-M4vEHYZ_.cjs} +0 -0
@@ -0,0 +1,132 @@
1
+ import { defineComponent as p, useAttrs as x, computed as B, ref as g, openBlock as $, createBlock as k, unref as C, mergeProps as S, createSlots as V, withCtx as l, renderSlot as i } from "vue";
2
+ import { ElInputNumber as z } from "element-plus";
3
+ const N = /* @__PURE__ */ p({
4
+ name: "QyInputNumber",
5
+ inheritAttrs: !1,
6
+ __name: "index",
7
+ props: {
8
+ id: {},
9
+ step: { default: 1 },
10
+ stepStrictly: { type: Boolean, default: !1 },
11
+ max: { default: void 0 },
12
+ min: { default: void 0 },
13
+ readonly: { type: Boolean, default: !1 },
14
+ disabled: { type: Boolean, default: !1 },
15
+ controls: { type: Boolean, default: !0 },
16
+ name: {},
17
+ placeholder: { default: "请输入数字" },
18
+ precision: { default: void 0 },
19
+ validateEvent: { type: Boolean },
20
+ ariaLabel: {},
21
+ inputmode: {},
22
+ align: {},
23
+ disabledScientific: { type: Boolean },
24
+ formatter: {},
25
+ parser: {},
26
+ tabindex: {},
27
+ modelValue: { default: void 0 },
28
+ valueOnClear: { default: null },
29
+ controlsPosition: { default: "" },
30
+ size: { default: void 0 }
31
+ },
32
+ emits: ["update:modelValue", "input", "change", "focus", "blur"],
33
+ setup(a, { expose: d, emit: s }) {
34
+ const n = s, u = x(), r = B(
35
+ () => Object.fromEntries(
36
+ Object.entries(u).filter(([e]) => !e.startsWith("on"))
37
+ )
38
+ ), o = g(null);
39
+ function c(e) {
40
+ n("update:modelValue", e);
41
+ }
42
+ function f(e) {
43
+ n("input", e);
44
+ }
45
+ function m(e, t) {
46
+ n("change", e, t);
47
+ }
48
+ function b(e) {
49
+ n("focus", e);
50
+ }
51
+ function v(e) {
52
+ n("blur", e);
53
+ }
54
+ function y() {
55
+ var e, t;
56
+ (t = (e = o.value) == null ? void 0 : e.focus) == null || t.call(e);
57
+ }
58
+ function h() {
59
+ var e, t;
60
+ (t = (e = o.value) == null ? void 0 : e.blur) == null || t.call(e);
61
+ }
62
+ return d({
63
+ focus: y,
64
+ blur: h
65
+ }), (e, t) => ($(), k(C(z), S({
66
+ ref_key: "inputNumberRef",
67
+ ref: o
68
+ }, r.value, {
69
+ class: "qy-input-number",
70
+ "model-value": a.modelValue,
71
+ min: a.min,
72
+ max: a.max,
73
+ step: a.step,
74
+ "step-strictly": a.stepStrictly,
75
+ precision: a.precision,
76
+ controls: a.controls,
77
+ "controls-position": a.controlsPosition,
78
+ placeholder: a.placeholder,
79
+ disabled: a.disabled,
80
+ readonly: a.readonly,
81
+ size: a.size,
82
+ "value-on-clear": a.valueOnClear,
83
+ formatter: a.formatter,
84
+ parser: a.parser,
85
+ inputmode: a.inputmode,
86
+ align: a.align,
87
+ "disabled-scientific": a.disabledScientific,
88
+ "validate-event": a.validateEvent,
89
+ id: a.id,
90
+ name: a.name,
91
+ "aria-label": a.ariaLabel,
92
+ tabindex: a.tabindex,
93
+ "onUpdate:modelValue": c,
94
+ onInput: f,
95
+ onChange: m,
96
+ onFocus: b,
97
+ onBlur: v
98
+ }), V({ _: 2 }, [
99
+ e.$slots.prefix ? {
100
+ name: "prefix",
101
+ fn: l(() => [
102
+ i(e.$slots, "prefix")
103
+ ]),
104
+ key: "0"
105
+ } : void 0,
106
+ e.$slots.suffix ? {
107
+ name: "suffix",
108
+ fn: l(() => [
109
+ i(e.$slots, "suffix")
110
+ ]),
111
+ key: "1"
112
+ } : void 0,
113
+ e.$slots["increase-icon"] ? {
114
+ name: "increase-icon",
115
+ fn: l(() => [
116
+ i(e.$slots, "increase-icon")
117
+ ]),
118
+ key: "2"
119
+ } : void 0,
120
+ e.$slots["decrease-icon"] ? {
121
+ name: "decrease-icon",
122
+ fn: l(() => [
123
+ i(e.$slots, "decrease-icon")
124
+ ]),
125
+ key: "3"
126
+ } : void 0
127
+ ]), 1040, ["model-value", "min", "max", "step", "step-strictly", "precision", "controls", "controls-position", "placeholder", "disabled", "readonly", "size", "value-on-clear", "formatter", "parser", "inputmode", "align", "disabled-scientific", "validate-event", "id", "name", "aria-label", "tabindex"]));
128
+ }
129
+ });
130
+ export {
131
+ N as _
132
+ };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("vue"),M=require("element-plus"),T=t.defineComponent({name:"QyInput",inheritAttrs:!1,__name:"index",props:{modelValue:{default:""},removeSpace:{type:Boolean,default:!1},trimMode:{default:"none"}},emits:["update:modelValue","input","change","focus","blur","clear","enter"],setup(p,{expose:m,emit:v}){const l=p,u=v,h=t.useAttrs(),o=t.ref(null),r=t.ref(i(l.modelValue)),s=t.ref(i(l.modelValue)),a=t.ref("none"),V=t.computed(()=>i(l.modelValue));t.watch(()=>l.modelValue,e=>{const n=i(e);r.value=n,s.value=n,a.value="none"});function i(e){return e==null?"":String(e)}function g(e){return l.removeSpace?e.replace(/\s+/g,""):e}function d(e,n){return l.trimMode!==n?e:e.trim()}function f(e){return g(i(e))}function c(e){r.value=e,s.value=e,u("update:modelValue",e)}function x(e){const n=f(e);c(n),a.value=n===""?"updated":"none"}function y(e){const n=f(e);r.value=n,u("input",n)}function S(e){const n=d(f(e),"change");if(r.value=n,n===""&&a.value==="updated"){a.value="changed",u("change",n);return}n!==s.value&&c(n),a.value=n===""?"changed":"none",u("change",n)}function C(e){u("focus",e)}function $(e){const n=d(r.value,"blur");r.value=n,n!==s.value&&c(n),u("blur",e)}function k(){a.value==="none"?(c(""),u("change","")):a.value==="updated"&&(a.value="changed",u("change","")),a.value="cleared",u("clear")}function w(e){u("enter",e)}function b(){var e,n;(n=(e=o.value)==null?void 0:e.focus)==null||n.call(e)}function z(){var e,n;(n=(e=o.value)==null?void 0:e.blur)==null||n.call(e)}function B(){var e,n;(n=(e=o.value)==null?void 0:e.select)==null||n.call(e)}function I(){var e,n;(n=(e=o.value)==null?void 0:e.clear)==null||n.call(e)}function q(){var e,n;(n=(e=o.value)==null?void 0:e.resizeTextarea)==null||n.call(e)}return m({focus:b,blur:z,select:B,clear:I,resizeTextarea:q}),(e,n)=>(t.openBlock(),t.createBlock(t.unref(M.ElInput),t.mergeProps({ref_key:"inputRef",ref:o,class:"qy-input"},t.unref(h),{"model-value":V.value,"onUpdate:modelValue":x,onInput:y,onChange:S,onFocus:C,onBlur:$,onClear:k,onKeydown:t.withKeys(w,["enter"])}),t.createSlots({_:2},[e.$slots.prefix?{name:"prefix",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"prefix")]),key:"0"}:void 0,e.$slots.suffix?{name:"suffix",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"suffix")]),key:"1"}:void 0,e.$slots.prepend?{name:"prepend",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"prepend")]),key:"2"}:void 0,e.$slots.append?{name:"append",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"append")]),key:"3"}:void 0]),1040,["model-value"]))}});exports._sfc_main=T;
@@ -0,0 +1 @@
1
+ "use strict";const a=require("vue"),x=require("element-plus"),D=a.defineComponent({name:"QyDatePicker",inheritAttrs:!1,__name:"index",props:{modelValue:{default:void 0},type:{default:"date"},placeholder:{default:"请选择日期"},startPlaceholder:{default:"开始时间"},endPlaceholder:{default:"结束时间"},rangeSeparator:{default:"-"},format:{default:void 0},valueFormat:{default:void 0},defaultTime:{default:void 0},disabledDate:{type:Function,default:void 0},shortcuts:{default:void 0},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean},size:{default:void 0},teleported:{type:Boolean,default:!0},appendTo:{default:"body"},popperClass:{default:""},normalizeRangeEndTime:{type:Boolean,default:!1}},emits:["update:modelValue","change","clear","calendar-change","panel-change","visible-change","focus","blur"],setup(l,{expose:s,emit:c}){const d=l,r=c,f=a.useAttrs(),o=a.ref(null),h=a.computed(()=>["qy-date-picker__popper",d.popperClass].filter(Boolean).join(" "));function p(e){return Array.isArray(e)}function m(e){if(e.getHours()!==0||e.getMinutes()!==0||e.getSeconds()!==0||e.getMilliseconds()!==0)return e;const t=new Date(e);return t.setHours(23,59,59,0),t}function g(e){const t=e.match(/(T| )00:00:00(\.000)?(Z|[+-]\d{2}:?\d{2})?$/);return t?e.replace(t[0],`${t[1]}23:59:59${t[2]??""}${t[3]??""}`):e}function i(e){if(!d.normalizeRangeEndTime||!p(e)||e.length<2)return e;const t=e[1];let n=t;if(t instanceof Date?n=m(t):typeof t=="string"&&(n=g(t)),n===t)return e;const u=[...e];return u[1]=n,u}function y(e){r("update:modelValue",i(e))}function P(e){r("change",i(e))}function C(){r("clear")}function b(e){r("calendar-change",e)}function v(e,t,n){if(n===void 0){r("panel-change",e,t);return}r("panel-change",e,t,n)}function z(e){r("visible-change",e)}function V(e){r("focus",e)}function R(e){r("blur",e)}function B(){var e,t;(t=(e=o.value)==null?void 0:e.focus)==null||t.call(e)}function S(){var e,t;(t=(e=o.value)==null?void 0:e.blur)==null||t.call(e)}function $(){var e,t;(t=(e=o.value)==null?void 0:e.handleOpen)==null||t.call(e)}function k(){var e,t;(t=(e=o.value)==null?void 0:e.handleClose)==null||t.call(e)}return s({focus:B,blur:S,open:$,close:k}),(e,t)=>(a.openBlock(),a.createBlock(a.unref(x.ElDatePicker),a.mergeProps({ref_key:"datePickerRef",ref:o,class:"qy-date-picker"},a.unref(f),{"model-value":l.modelValue,type:l.type,placeholder:l.placeholder,"start-placeholder":l.startPlaceholder,"end-placeholder":l.endPlaceholder,"range-separator":l.rangeSeparator,format:l.format,"value-format":l.valueFormat,"default-time":l.defaultTime,"disabled-date":l.disabledDate,shortcuts:l.shortcuts,clearable:l.clearable,disabled:l.disabled,readonly:l.readonly,size:l.size,teleported:l.teleported,"append-to":l.appendTo,"popper-class":h.value,"onUpdate:modelValue":y,onChange:P,onClear:C,onCalendarChange:b,onPanelChange:v,onVisibleChange:z,onFocus:V,onBlur:R}),{default:a.withCtx(n=>[a.renderSlot(e.$slots,"default",a.normalizeProps(a.guardReactiveProps(n)))]),"range-separator":a.withCtx(n=>[a.renderSlot(e.$slots,"range-separator",a.normalizeProps(a.guardReactiveProps(n)))]),"prev-month":a.withCtx(n=>[a.renderSlot(e.$slots,"prev-month",a.normalizeProps(a.guardReactiveProps(n)))]),"next-month":a.withCtx(n=>[a.renderSlot(e.$slots,"next-month",a.normalizeProps(a.guardReactiveProps(n)))]),"prev-year":a.withCtx(n=>[a.renderSlot(e.$slots,"prev-year",a.normalizeProps(a.guardReactiveProps(n)))]),"next-year":a.withCtx(n=>[a.renderSlot(e.$slots,"next-year",a.normalizeProps(a.guardReactiveProps(n)))]),_:3},16,["model-value","type","placeholder","start-placeholder","end-placeholder","range-separator","format","value-format","default-time","disabled-date","shortcuts","clearable","disabled","readonly","size","teleported","append-to","popper-class"]))}});exports._sfc_main=D;
@@ -0,0 +1,140 @@
1
+ import { defineComponent as E, useAttrs as F, ref as c, computed as K, watch as R, openBlock as U, createBlock as P, unref as v, mergeProps as Q, withKeys as _, createSlots as j, withCtx as f, renderSlot as d } from "vue";
2
+ import { ElInput as D } from "element-plus";
3
+ const J = /* @__PURE__ */ E({
4
+ name: "QyInput",
5
+ inheritAttrs: !1,
6
+ __name: "index",
7
+ props: {
8
+ modelValue: { default: "" },
9
+ removeSpace: { type: Boolean, default: !1 },
10
+ trimMode: { default: "none" }
11
+ },
12
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "clear", "enter"],
13
+ setup(h, { expose: V, emit: g }) {
14
+ const u = h, t = g, y = F(), l = c(null), o = c(r(u.modelValue)), i = c(r(u.modelValue)), a = c("none"), x = K(() => r(u.modelValue));
15
+ R(
16
+ () => u.modelValue,
17
+ (e) => {
18
+ const n = r(e);
19
+ o.value = n, i.value = n, a.value = "none";
20
+ }
21
+ );
22
+ function r(e) {
23
+ return e == null ? "" : String(e);
24
+ }
25
+ function $(e) {
26
+ return u.removeSpace ? e.replace(/\s+/g, "") : e;
27
+ }
28
+ function m(e, n) {
29
+ return u.trimMode !== n ? e : e.trim();
30
+ }
31
+ function p(e) {
32
+ return $(r(e));
33
+ }
34
+ function s(e) {
35
+ o.value = e, i.value = e, t("update:modelValue", e);
36
+ }
37
+ function k(e) {
38
+ const n = p(e);
39
+ s(n), a.value = n === "" ? "updated" : "none";
40
+ }
41
+ function S(e) {
42
+ const n = p(e);
43
+ o.value = n, t("input", n);
44
+ }
45
+ function C(e) {
46
+ const n = m(p(e), "change");
47
+ if (o.value = n, n === "" && a.value === "updated") {
48
+ a.value = "changed", t("change", n);
49
+ return;
50
+ }
51
+ n !== i.value && s(n), a.value = n === "" ? "changed" : "none", t("change", n);
52
+ }
53
+ function b(e) {
54
+ t("focus", e);
55
+ }
56
+ function z(e) {
57
+ const n = m(o.value, "blur");
58
+ o.value = n, n !== i.value && s(n), t("blur", e);
59
+ }
60
+ function B() {
61
+ a.value === "none" ? (s(""), t("change", "")) : a.value === "updated" && (a.value = "changed", t("change", "")), a.value = "cleared", t("clear");
62
+ }
63
+ function I(e) {
64
+ t("enter", e);
65
+ }
66
+ function w() {
67
+ var e, n;
68
+ (n = (e = l.value) == null ? void 0 : e.focus) == null || n.call(e);
69
+ }
70
+ function M() {
71
+ var e, n;
72
+ (n = (e = l.value) == null ? void 0 : e.blur) == null || n.call(e);
73
+ }
74
+ function T() {
75
+ var e, n;
76
+ (n = (e = l.value) == null ? void 0 : e.select) == null || n.call(e);
77
+ }
78
+ function q() {
79
+ var e, n;
80
+ (n = (e = l.value) == null ? void 0 : e.clear) == null || n.call(e);
81
+ }
82
+ function A() {
83
+ var e, n;
84
+ (n = (e = l.value) == null ? void 0 : e.resizeTextarea) == null || n.call(e);
85
+ }
86
+ return V({
87
+ // 暴露 Element Plus 常用输入框方法,方便业务弹窗做聚焦、选中和 textarea 重算高度。
88
+ focus: w,
89
+ blur: M,
90
+ select: T,
91
+ clear: q,
92
+ resizeTextarea: A
93
+ }), (e, n) => (U(), P(v(D), Q({
94
+ ref_key: "inputRef",
95
+ ref: l,
96
+ class: "qy-input"
97
+ }, v(y), {
98
+ "model-value": x.value,
99
+ "onUpdate:modelValue": k,
100
+ onInput: S,
101
+ onChange: C,
102
+ onFocus: b,
103
+ onBlur: z,
104
+ onClear: B,
105
+ onKeydown: _(I, ["enter"])
106
+ }), j({ _: 2 }, [
107
+ e.$slots.prefix ? {
108
+ name: "prefix",
109
+ fn: f(() => [
110
+ d(e.$slots, "prefix")
111
+ ]),
112
+ key: "0"
113
+ } : void 0,
114
+ e.$slots.suffix ? {
115
+ name: "suffix",
116
+ fn: f(() => [
117
+ d(e.$slots, "suffix")
118
+ ]),
119
+ key: "1"
120
+ } : void 0,
121
+ e.$slots.prepend ? {
122
+ name: "prepend",
123
+ fn: f(() => [
124
+ d(e.$slots, "prepend")
125
+ ]),
126
+ key: "2"
127
+ } : void 0,
128
+ e.$slots.append ? {
129
+ name: "append",
130
+ fn: f(() => [
131
+ d(e.$slots, "append")
132
+ ]),
133
+ key: "3"
134
+ } : void 0
135
+ ]), 1040, ["model-value"]));
136
+ }
137
+ });
138
+ export {
139
+ J as _
140
+ };
@@ -0,0 +1,121 @@
1
+ import { defineComponent as z, computed as d, ref as p, useSlots as F, watch as v, onBeforeUnmount as K, openBlock as g, createBlock as N, unref as Q, withCtx as S, renderSlot as R, createElementBlock as j, Fragment as G, renderList as H, resolveDynamicComponent as J } from "vue";
2
+ import { ElPopover as M } from "element-plus";
3
+ const X = 1e3, x = /* @__PURE__ */ z({
4
+ name: "QyPopover",
5
+ inheritAttrs: !1,
6
+ __name: "index",
7
+ props: {
8
+ trigger: { type: String, default: "click" },
9
+ placement: { type: String, default: "bottom" },
10
+ effect: { type: String, default: "light" },
11
+ width: { type: [Number, String], default: 240 },
12
+ offset: { type: Number, default: 12 },
13
+ showDelay: { type: Number, default: 0 },
14
+ hideDelay: { type: Number, default: 200 },
15
+ showArrow: { type: Boolean, default: !0 },
16
+ disabled: { type: Boolean, default: !1 },
17
+ open: { type: Boolean, default: void 0 }
18
+ },
19
+ emits: ["update:open", "open-change", "open", "close"],
20
+ setup(n, { expose: T, emit: C }) {
21
+ const t = n, c = C, a = d(() => t.open !== void 0), m = a.value && t.open === !0 && !t.disabled, u = p(m), i = p(m), A = p(m), r = p(null), D = d(() => t.disabled ? !1 : a.value ? t.open === !0 : u.value);
22
+ let o, f = !1, s;
23
+ const E = d(
24
+ () => typeof t.width == "number" ? `${t.width}px` : t.width
25
+ ), q = d(() => ({
26
+ "--qy-popover-width": E.value,
27
+ "--qy-popover-mobile-gutter": "24px"
28
+ })), h = F(), L = d(
29
+ () => {
30
+ var e;
31
+ return ((e = h.reference) == null ? void 0 : e.call(h)) ?? [];
32
+ }
33
+ );
34
+ function w() {
35
+ o && (clearTimeout(o), o = void 0), r.value = null;
36
+ }
37
+ function W(e) {
38
+ o && clearTimeout(o), o = setTimeout(() => {
39
+ o = void 0, r.value === e && (r.value = null);
40
+ }, X);
41
+ }
42
+ function l() {
43
+ if (f) return;
44
+ const e = D.value;
45
+ i.value !== e && (f = !0, s = e, i.value = e);
46
+ }
47
+ function y(e) {
48
+ if (!(e && t.disabled)) {
49
+ if (!a.value) {
50
+ if (u.value === e) return;
51
+ u.value = e, c("update:open", e), l();
52
+ return;
53
+ }
54
+ r.value !== e && (r.value === null && t.open === e || (r.value = e, W(e), c("update:open", e), l()));
55
+ }
56
+ }
57
+ function b(e) {
58
+ e === i.value && (!f || s !== e || (f = !1, s = void 0, e !== A.value && (A.value = e, r.value === e && w(), c("open-change", e), c(e ? "open" : "close"), l())));
59
+ }
60
+ function I(e) {
61
+ y(e), l();
62
+ }
63
+ function O() {
64
+ b(!0);
65
+ }
66
+ function P() {
67
+ b(!1);
68
+ }
69
+ function U() {
70
+ y(!1);
71
+ }
72
+ return v(
73
+ D,
74
+ () => l()
75
+ ), v(a, (e) => {
76
+ w(), e ? u.value = t.open === !0 : u.value = i.value, l();
77
+ }), v(
78
+ () => t.open,
79
+ (e, k) => {
80
+ !a.value || r.value === null || (e === r.value || e !== k) && w();
81
+ }
82
+ ), v(
83
+ () => t.disabled,
84
+ (e) => {
85
+ e ? y(!1) : l();
86
+ }
87
+ ), K(() => {
88
+ f = !1, s = void 0, o && clearTimeout(o);
89
+ }), T({ close: U }), (e, k) => (g(), N(Q(M), {
90
+ visible: i.value,
91
+ trigger: n.trigger,
92
+ placement: n.placement,
93
+ effect: n.effect,
94
+ width: n.width,
95
+ offset: n.offset,
96
+ "show-after": n.showDelay,
97
+ "hide-after": n.hideDelay,
98
+ "show-arrow": n.showArrow,
99
+ disabled: n.disabled,
100
+ enterable: !0,
101
+ "popper-style": q.value,
102
+ "popper-class": "qy-popover-popper",
103
+ "onUpdate:visible": I,
104
+ onAfterEnter: O,
105
+ onAfterLeave: P
106
+ }, {
107
+ reference: S(() => [
108
+ (g(!0), j(G, null, H(L.value, (B, $) => (g(), N(J(B), {
109
+ key: B.key ?? $
110
+ }))), 128))
111
+ ]),
112
+ default: S(() => [
113
+ R(e.$slots, "default")
114
+ ]),
115
+ _: 3
116
+ }, 8, ["visible", "trigger", "placement", "effect", "width", "offset", "show-after", "hide-after", "show-arrow", "disabled", "popper-style"]));
117
+ }
118
+ });
119
+ export {
120
+ x as _
121
+ };
package/index.d.ts CHANGED
@@ -1,4 +1,128 @@
1
- import type { App, Plugin } from 'vue'
1
+ import type { App, Plugin } from 'vue'
2
+ import type QyFilePickerComponent from './qy-file-picker'
3
+ import type QyCheckboxComponent from './qy-checkbox'
4
+ import type QyCheckboxGroupComponent from './qy-checkbox-group'
5
+ import type QyRadioComponent from './qy-radio'
6
+ import type QyRadioGroupComponent from './qy-radio-group'
7
+ import type QySelectComponent from './qy-select'
8
+ import type QySwitchComponent from './qy-switch'
9
+ import type QyTagComponent from './qy-tag'
10
+ import type QyTooltipComponent from './qy-tooltip'
11
+ import type QyPopoverComponent from './qy-popover'
12
+ import type QyInputComponent from './qy-input'
13
+ import type QyDatePickerComponent from './qy-date-picker'
14
+
15
+ export type {
16
+ QyInputNumberClearValue,
17
+ QyInputNumberControlsPosition,
18
+ QyInputNumberEmits,
19
+ QyInputNumberExposed,
20
+ QyInputNumberProps,
21
+ QyInputNumberSize,
22
+ QyInputNumberValue
23
+ } from './qy-input-number'
24
+
25
+ export type {
26
+ QyInputEmits,
27
+ QyInputExposed,
28
+ QyInputModelValue,
29
+ QyInputProps,
30
+ QyInputSize,
31
+ QyInputTrimMode,
32
+ QyInputType,
33
+ QyInputValue
34
+ } from './qy-input'
35
+
36
+ export type {
37
+ QyFilePickerExposed,
38
+ QyFilePickerEmits,
39
+ QyFilePickerInvalidCode,
40
+ QyFilePickerInvalidDetail,
41
+ QyFilePickerProps
42
+ } from './qy-file-picker'
43
+ export type {
44
+ QyCheckboxEmits,
45
+ QyCheckboxProps,
46
+ QyCheckboxSize,
47
+ QyCheckboxValue
48
+ } from './qy-checkbox'
49
+ export type {
50
+ QyCheckboxGroupEmits,
51
+ QyCheckboxGroupOption,
52
+ QyCheckboxGroupProps,
53
+ QyCheckboxGroupSize
54
+ } from './qy-checkbox-group'
55
+ export type {
56
+ QyRadioEmits,
57
+ QyRadioProps,
58
+ QyRadioSize,
59
+ QyRadioValue
60
+ } from './qy-radio'
61
+ export type {
62
+ QyRadioGroupEmits,
63
+ QyRadioGroupExposed,
64
+ QyRadioGroupOption,
65
+ QyRadioGroupProps,
66
+ QyRadioGroupSize,
67
+ QyRadioGroupType
68
+ } from './qy-radio-group'
69
+ export type {
70
+ QySelectEmits,
71
+ QySelectExposed,
72
+ QySelectModelValue,
73
+ QySelectObjectValue,
74
+ QySelectOption,
75
+ QySelectPrimitive,
76
+ QySelectProps,
77
+ QySelectSize,
78
+ QySelectValue
79
+ } from './qy-select'
80
+ export type {
81
+ QySwitchEmits,
82
+ QySwitchProps,
83
+ QySwitchSize,
84
+ QySwitchValue
85
+ } from './qy-switch'
86
+ export type {
87
+ QyTagEffect,
88
+ QyTagEmits,
89
+ QyTagProps,
90
+ QyTagSize,
91
+ QyTagTone
92
+ } from './qy-tag'
93
+ export type {
94
+ QyTooltipEffect,
95
+ QyTooltipEmits,
96
+ QyTooltipPlacement,
97
+ QyTooltipProps
98
+ } from './qy-tooltip'
99
+ export type {
100
+ QyPopoverEffect,
101
+ QyPopoverEmits,
102
+ QyPopoverExposed,
103
+ QyPopoverPlacement,
104
+ QyPopoverProps,
105
+ QyPopoverTrigger
106
+ } from './qy-popover'
107
+ export type {
108
+ QyDatePickerCalendarChangeValue,
109
+ QyDatePickerDateCell,
110
+ QyDatePickerEmits,
111
+ QyDatePickerExposed,
112
+ QyDatePickerModelValue,
113
+ QyDatePickerPanelDate,
114
+ QyDatePickerPanelMode,
115
+ QyDatePickerPanelSlotProps,
116
+ QyDatePickerPanelView,
117
+ QyDatePickerProps,
118
+ QyDatePickerRangeValue,
119
+ QyDatePickerScalarValue,
120
+ QyDatePickerShortcut,
121
+ QyDatePickerShortcutValue,
122
+ QyDatePickerSize,
123
+ QyDatePickerSlots,
124
+ QyDatePickerType
125
+ } from './qy-date-picker'
2
126
 
3
127
  // 根入口类型声明,对应 @qynpm/ui 的命名导出和 app.use(QyUI) 整包注册。
4
128
  export const QyUpload: Plugin
@@ -8,25 +132,32 @@ export const QyImageUpload: Plugin
8
132
  export const QyDialog: Plugin
9
133
  export const QyButton: Plugin
10
134
  export const QyDropdown: Plugin
11
- export const QyInput: Plugin
12
- export const QyInputNumber: Plugin
13
- export const QyMoneyInput: Plugin
14
- export const QyDatePicker: Plugin
15
- export const QyCheckbox: Plugin
135
+ export const QyInput: typeof QyInputComponent
136
+ export { QyInputNumber } from './qy-input-number'
137
+ export const QyMoneyInput: Plugin
138
+ export const QyDatePicker: typeof QyDatePickerComponent
139
+ export const QyCheckbox: typeof QyCheckboxComponent
140
+ export const QyCheckboxGroup: typeof QyCheckboxGroupComponent
141
+ export const QyRadio: typeof QyRadioComponent
16
142
  export const QyAutocomplete: Plugin
17
143
  export const QyMenuActions: Plugin
18
144
  export const QyTableColumnSettings: Plugin
19
- export const QyRadioGroup: Plugin
145
+ export const QyRadioGroup: typeof QyRadioGroupComponent
20
146
  export const QyRemoteSelect: Plugin
21
147
  export const QySearchInput: Plugin
22
148
  export const QyRecordQuoteSearch: Plugin
23
- export const QySelect: Plugin
149
+ export const QySelect: typeof QySelectComponent
24
150
  export const QyTreeSelect: Plugin
25
151
  export const QySelectionDialog: Plugin
26
152
  export const QyLegacySelectionDialog: Plugin
27
153
  export const QyFormSection: Plugin
28
- export const QyActionBar: Plugin
29
- export const QyRemarkImage: Plugin
154
+ export const QyActionBar: Plugin
155
+ export const QyFilePicker: typeof QyFilePickerComponent
156
+ export const QySwitch: typeof QySwitchComponent
157
+ export const QyTag: typeof QyTagComponent
158
+ export const QyTooltip: typeof QyTooltipComponent
159
+ export const QyPopover: typeof QyPopoverComponent
160
+ export const QyRemarkImage: Plugin
30
161
  export function parseRemarkText(remarkText: string): {
31
162
  imageUrl: string
32
163
  text: string
@@ -52,10 +183,12 @@ declare const _default: Plugin & {
52
183
  QyButton: typeof QyButton
53
184
  QyDropdown: typeof QyDropdown
54
185
  QyInput: typeof QyInput
55
- QyInputNumber: typeof QyInputNumber
56
- QyMoneyInput: typeof QyMoneyInput
57
- QyDatePicker: typeof QyDatePicker
58
- QyCheckbox: typeof QyCheckbox
186
+ QyInputNumber: typeof QyInputNumber
187
+ QyMoneyInput: typeof QyMoneyInput
188
+ QyDatePicker: typeof QyDatePickerComponent
189
+ QyCheckbox: typeof QyCheckbox
190
+ QyCheckboxGroup: typeof QyCheckboxGroup
191
+ QyRadio: typeof QyRadio
59
192
  QyAutocomplete: typeof QyAutocomplete
60
193
  QyMenuActions: typeof QyMenuActions
61
194
  QyTableColumnSettings: typeof QyTableColumnSettings
@@ -68,8 +201,13 @@ declare const _default: Plugin & {
68
201
  QySelectionDialog: typeof QySelectionDialog
69
202
  QyLegacySelectionDialog: typeof QyLegacySelectionDialog
70
203
  QyFormSection: typeof QyFormSection
71
- QyActionBar: typeof QyActionBar
72
- QyRemarkImage: typeof QyRemarkImage
73
- }
204
+ QyActionBar: typeof QyActionBar
205
+ QyFilePicker: typeof QyFilePicker
206
+ QySwitch: typeof QySwitch
207
+ QyTag: typeof QyTag
208
+ QyTooltip: typeof QyTooltip
209
+ QyPopover: typeof QyPopover
210
+ QyRemarkImage: typeof QyRemarkImage
211
+ }
74
212
 
75
213
  export default _default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qynpm/ui",
3
- "version": "1.0.23",
3
+ "version": "1.0.24",
4
4
  "description": "起印公共 UI 组件包。",
5
5
  "author": "qy",
6
6
  "license": "MIT",
@@ -18,6 +18,31 @@
18
18
  "import": "./dist/qy-upload/index.mjs",
19
19
  "require": "./dist/qy-upload/index.cjs"
20
20
  },
21
+ "./qy-file-picker": {
22
+ "types": "./qy-file-picker/index.d.ts",
23
+ "import": "./dist/qy-file-picker/index.mjs",
24
+ "require": "./dist/qy-file-picker/index.cjs"
25
+ },
26
+ "./qy-switch": {
27
+ "types": "./qy-switch/index.d.ts",
28
+ "import": "./dist/qy-switch/index.mjs",
29
+ "require": "./dist/qy-switch/index.cjs"
30
+ },
31
+ "./qy-tag": {
32
+ "types": "./qy-tag/index.d.ts",
33
+ "import": "./dist/qy-tag/index.mjs",
34
+ "require": "./dist/qy-tag/index.cjs"
35
+ },
36
+ "./qy-tooltip": {
37
+ "types": "./qy-tooltip/index.d.ts",
38
+ "import": "./dist/qy-tooltip/index.mjs",
39
+ "require": "./dist/qy-tooltip/index.cjs"
40
+ },
41
+ "./qy-popover": {
42
+ "types": "./qy-popover/index.d.ts",
43
+ "import": "./dist/qy-popover/index.mjs",
44
+ "require": "./dist/qy-popover/index.cjs"
45
+ },
21
46
  "./qy-image": {
22
47
  "types": "./qy-image/index.d.ts",
23
48
  "import": "./dist/qy-image/index.mjs",
@@ -73,6 +98,16 @@
73
98
  "import": "./dist/qy-checkbox/index.mjs",
74
99
  "require": "./dist/qy-checkbox/index.cjs"
75
100
  },
101
+ "./qy-checkbox-group": {
102
+ "types": "./qy-checkbox-group/index.d.ts",
103
+ "import": "./dist/qy-checkbox-group/index.mjs",
104
+ "require": "./dist/qy-checkbox-group/index.cjs"
105
+ },
106
+ "./qy-radio": {
107
+ "types": "./qy-radio/index.d.ts",
108
+ "import": "./dist/qy-radio/index.mjs",
109
+ "require": "./dist/qy-radio/index.cjs"
110
+ },
76
111
  "./qy-autocomplete": {
77
112
  "types": "./qy-autocomplete/index.d.ts",
78
113
  "import": "./dist/qy-autocomplete/index.mjs",
@@ -149,6 +184,11 @@
149
184
  "dist",
150
185
  "README.md",
151
186
  "qy-upload/index.d.ts",
187
+ "qy-file-picker/index.d.ts",
188
+ "qy-switch/index.d.ts",
189
+ "qy-tag/index.d.ts",
190
+ "qy-tooltip/index.d.ts",
191
+ "qy-popover/index.d.ts",
152
192
  "qy-image/index.d.ts",
153
193
  "qy-image-preview/index.d.ts",
154
194
  "qy-image-upload/index.d.ts",
@@ -160,6 +200,8 @@
160
200
  "qy-money-input/index.d.ts",
161
201
  "qy-date-picker/index.d.ts",
162
202
  "qy-checkbox/index.d.ts",
203
+ "qy-checkbox-group/index.d.ts",
204
+ "qy-radio/index.d.ts",
163
205
  "qy-autocomplete/index.d.ts",
164
206
  "qy-menu-actions/index.d.ts",
165
207
  "qy-table-column-settings/index.d.ts",