n-design-readonly-plugin 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +71 -69
- package/dist/index.es.js +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [1.0.
|
|
5
|
+
## [1.0.10] - 2026-03-17
|
|
6
|
+
- 支持文本域换行展示
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- 复制时添加 ClipboardItem 不兼容提示
|
|
10
|
+
- 复制成功添加提示
|
|
11
|
+
|
|
12
|
+
## [1.0.8, 1.0.9] - 2026-03-05
|
|
6
13
|
|
|
7
14
|
### Added
|
|
8
15
|
- 添加组件类型提示
|
package/dist/index.cjs.js
CHANGED
|
@@ -54,4 +54,4 @@
|
|
|
54
54
|
}
|
|
55
55
|
`,ge=!1,ar=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nr;u.nextTick(function(){ge||(typeof window<"u"&&window.document&&window.document.documentElement&&Ze(t,{prepend:!0}),ge=!0)})},or=["icon","primaryColor","secondaryColor"];function ir(e,t){if(e==null)return{};var r=lr(e,t),n,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function lr(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,o;for(o=0;o<n.length;o++)a=n[o],!(t.indexOf(a)>=0)&&(r[a]=e[a]);return r}function U(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&n.push.apply(n,Object.getOwnPropertySymbols(r).filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),n.forEach(function(a){fr(e,a,r[a])})}return e}function fr(e,t,r){return t=cr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function cr(e){var t=ur(e,"string");return typeof t=="symbol"?t:String(t)}function ur(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var N={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};function sr(e){var t=e.primaryColor,r=e.secondaryColor;N.primaryColor=t,N.secondaryColor=r||xe(t),N.calculated=!!r}function dr(){return U({},N)}var F=function(t,r){var n=U({},t,r.attrs),a=n.icon,o=n.primaryColor,i=n.secondaryColor,l=ir(n,or),f=N;if(o&&(f={primaryColor:o,secondaryColor:i||xe(o)}),ar(),tr(ye(a),"icon should be icon definiton, but got ".concat(a)),!ye(a))return null;var c=a;return c&&typeof c.icon=="function"&&(c=U({},c,{icon:c.icon(f.primaryColor,f.secondaryColor)})),te(c.icon,"svg-".concat(c.name),U({},l,{"data-icon":c.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"}))};F.props={icon:Object,primaryColor:String,secondaryColor:String,focusable:String};F.inheritAttrs=!1;F.displayName="IconBase";F.getTwoToneColors=dr;F.setTwoToneColors=sr;function pr(e,t){return mr(e)||gr(e,t)||yr(e,t)||br()}function br(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
56
56
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yr(e,t){if(e){if(typeof e=="string")return me(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return me(e,t)}}function me(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function gr(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,a,o,i,l=[],f=!0,c=!1;try{if(o=(r=r.call(e)).next,t!==0)for(;!(f=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);f=!0);}catch(d){c=!0,a=d}finally{try{if(!f&&r.return!=null&&(i=r.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}function mr(e){if(Array.isArray(e))return e}function Oe(e){var t=ke(e),r=pr(t,2),n=r[0],a=r[1];return F.setTwoToneColors({primaryColor:n,secondaryColor:a})}function hr(){var e=F.getTwoToneColors();return e.calculated?[e.primaryColor,e.secondaryColor]:e.primaryColor}var vr=["class","icon","spin","rotate","tabindex","twoToneColor","onClick"];function wr(e,t){return kr(e)||xr(e,t)||Sr(e,t)||Cr()}function Cr(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
57
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sr(e,t){if(e){if(typeof e=="string")return he(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return he(e,t)}}function he(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function xr(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,a,o,i,l=[],f=!0,c=!1;try{if(o=(r=r.call(e)).next,t!==0)for(;!(f=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);f=!0);}catch(d){c=!0,a=d}finally{try{if(!f&&r.return!=null&&(i=r.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}function kr(e){if(Array.isArray(e))return e}function ve(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&n.push.apply(n,Object.getOwnPropertySymbols(r).filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),n.forEach(function(a){ne(e,a,r[a])})}return e}function ne(e,t,r){return t=Or(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Or(e){var t=Tr(e,"string");return typeof t=="symbol"?t:String(t)}function Tr(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function jr(e,t){if(e==null)return{};var r=Ar(e,t),n,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ar(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,o;for(o=0;o<n.length;o++)a=n[o],!(t.indexOf(a)>=0)&&(r[a]=e[a]);return r}Oe("#1890ff");var M=function(t,r){var n,a=ve({},t,r.attrs),o=a.class,i=a.icon,l=a.spin,f=a.rotate,c=a.tabindex,d=a.twoToneColor,k=a.onClick,h=jr(a,vr),j=(n={anticon:!0},ne(n,"anticon-".concat(i.name),!!i.name),ne(n,o,o),n),y=l===""||l||i.name==="loading"?"anticon-spin":"",g=c;g===void 0&&k&&(g=-1,h.tabindex=g);var s=f?{msTransform:"rotate(".concat(f,"deg)"),transform:"rotate(".concat(f,"deg)")}:void 0,m=ke(d),v=wr(m,2),w=v[0],A=v[1];return u.createVNode("span",ve({role:"img","aria-label":i.name},h,{onClick:k,class:j}),[u.createVNode(F,{class:y,icon:i,primaryColor:w,secondaryColor:A,style:s},null)])};M.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:String};M.displayName="AntdIcon";M.inheritAttrs=!1;M.getTwoToneColor=hr;M.setTwoToneColor=Oe;var Pr={icon:{tag:"svg",attrs:{viewBox:"32 32 960 960",focusable:"false"},children:[{tag:"path",attrs:{d:"M384 32a96 96 0 00-96 96v96a32 32 0 0064 0v-96a32 32 0 0132-32h512a32 32 0 0132 32v512a32 32 0 01-32 32h-96a32 32 0 000 64h96a96 96 0 0096-96V128a96 96 0 00-96-96H384z"}},{tag:"path",attrs:{d:"M128 288a96 96 0 00-96 96v512a96 96 0 0096 96h512a96 96 0 0096-96V384a96 96 0 00-96-96H128zm-32 96a32 32 0 0132-32h512a32 32 0 0132 32v512a32 32 0 01-32 32H128a32 32 0 01-32-32V384z"}}]},name:"copy",theme:"outlined"};function we(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&n.push.apply(n,Object.getOwnPropertySymbols(r).filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),n.forEach(function(a){Er(e,a,r[a])})}return e}function Er(e,t,r){return t=Fr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Fr(e){var t=Ir(e,"string");return typeof t=="symbol"?t:String(t)}function Ir(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ae=function(t,r){var n=we({},t,r.attrs);return u.createVNode(M,we({},n,{icon:Pr}),null)};ae.displayName="CopyOutlined";ae.inheritAttrs=!1;function _(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(_).join("");if(typeof e=="object"){if(typeof e.children=="string")return e.children;if(e?.default&&typeof e.default=="function"){const t=e.default();if(Array.isArray(t))return _(t)}e.children&&_(e.children)}return""}function Te(e,t={}){const r=new Map,{value:n="value",label:a="label"}=t;if(!e)return r;const o=Array.isArray(e)?e:[e];for(const i of o)if(!(!i||typeof i!="object")){if(i.type&&(typeof i.type=="object"||typeof i.type=="function")){let l=i.type.name?.toLowerCase()||"";if(typeof i.type=="function"?l=i.type.displayName?.toLowerCase()||"":typeof i.type=="string"&&(l=i.type?.toLowerCase()||""),/option|radio|checkbox/i.test(l)){const f=i.props||{},c=f[n]??f.value,d=f[a]??f.label;if(c!=null){const k=_(i.children)||d||String(c);r.set(c,k)}}}i.children&&Te(i.children,t).forEach((f,c)=>{r.has(c)||r.set(c,f)})}return r}function Mr(e,t,r){const{value:n="value",label:a="label",children:o="children"}=r,i=[];let l=e;for(const f of t){const c=l.find(d=>d[n]===f);if(c)i.push(c[a]||c[n]||String(f)),l=c[o]||[];else{i.push(String(f));break}}return i}function Rr(e,t,r){const{value:n="value",label:a="title",children:o="children"}=r,i=[],l=new Set(Array.isArray(t)?t:[t]);function f(c){for(const d of c)l.has(d[n])&&i.push(d[a]||d[n]),d[o]&&f(d[o])}return f(e),i}function $r({modelValue:e,options:t,treeData:r,valueToLabel:n,fieldNames:a,slots:o,isSelect:i,isRadioGroup:l,isCheckboxGroup:f,isCheckbox:c,isRadio:d,isCascader:k,isTreeSelect:h,isSwitch:j,attrs:y,emptyText:g}){if(n)try{return n(e)||g}catch(s){console.warn("[ReadonlyHOC] valueToLabel error",s)}if(j){const s=y.checkedValue??y["checked-value"]??!0,m=y.uncheckedValue??y["un-checked-value"]??!1;return e===s?y.checkedChildren??y["checked-children"]??"开启":e===m?y.uncheckedChildren??y["un-checked-children"]??"关闭":String(e||g)}if(k&&Array.isArray(e)&&t?.length)return Mr(t,e,a).join(" / ")||g;if(h&&r?.length)return Rr(r,e,a).join(", ")||g;if(t?.length){const s=a.value||"value",m=a.label||"label",v=w=>{const A=t.find(W=>W[s]===w);return A?A[m]||A[s]:w==null?"":String(w)};return Array.isArray(e)?e.map(v).join(", ")||g:v(e)||g}else if((i||l||f)&&o?.default)try{const s=o.default(),m=Te(s,a);if(m.size>0){const v=w=>w==null?"":m.get(w)||String(w);return Array.isArray(e)?e.map(v).join(", ")||g:v(e)||g}}catch(s){console.warn("[ReadonlyHOC] Failed to parse slot options",s)}else if(o?.default&&(c||d)&&typeof e=="boolean")try{const s=o.default(),m=_(s);if(m)return m}catch{}return e==null||e===""?g:Array.isArray(e)?e.join(", "):String(e)}function je(e){if(typeof e=="function")return e;const t=e.name||"",r=t.toLowerCase(),n=/select/i.test(r)&&!/tree|cascader/i.test(r),a=/radio/i.test(r)&&!/group/i.test(r),o=/radio.*group/i.test(r),i=/checkbox/i.test(r)&&!/group/i.test(r),l=/checkbox.*group/i.test(r),f=/switch/i.test(r),c=/cascader/i.test(r),d=/tree.*select/i.test(r),h=i||f||a?"checked":"value",j=`update:${h}`,y=/form$/i.test(r),g=/form.*item/i.test(r);return u.defineComponent({name:t,inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Array,Object],default:void 0},[h]:{type:[String,Number,Boolean,Array,Object],default:void 0},readonly:{type:Boolean,default:void 0},emptyText:{type:String,default:"--"},valueToLabel:{type:Function,default:null},copyable:{type:Boolean,default:void 0}},emits:["update:modelValue",j],setup(s,{emit:m,slots:v,expose:w}){const A=u.inject("nkReadonly",u.ref(!1)),W=u.inject("copyable",u.ref(!0)),P=u.computed(()=>s.readonly??A.value),q=u.computed(()=>s.readonly??A.value),G=u.computed(()=>s.copyable??W.value??!0),D=u.ref(!1);y&&(u.provide("nkReadonly",q),u.provide("copyable",G));const oe=u.computed(()=>s[h]!==void 0?s[h]:s.modelValue),Ae=b=>{m("update:modelValue",b),m(j,b)},S=u.useAttrs(),L=u.computed(()=>{if(!P.value)return"";const b=S.fieldNames??S["field-names"]??{},K=S.options,Ie=S.treeData??S["tree-data"];return $r({modelValue:oe.value,options:K,treeData:Ie,valueToLabel:s.valueToLabel,fieldNames:b,slots:v,isSelect:n,isRadioGroup:o,isCheckboxGroup:l,isCheckbox:i,isRadio:a,isCascader:c,isTreeSelect:d,isSwitch:f,attrs:S,emptyText:s.emptyText})}),Pe={lineHeight:"32px",padding:"0 6px",display:"inline-block",minHeight:"32px",cursor:"text",wordBreak:"break-all",color:"rgba(0, 0, 0, 0.85)",position:"relative",borderRadius:"4px",border:"none",backgroundColor:"none"},I=u.ref();y&&w({validate:()=>P.value?Promise.resolve({}):I.value?.validate?.(),validateFields:b=>P.value?Promise.resolve({}):I.value?.validateFields?.(b),resetFields:b=>!P.value&&I.value?.resetFields?.(b),clearValidate:b=>!P.value&&I.value?.clearValidate?.(b),scrollToField:b=>!P.value&&I.value?.scrollToField?.(b)});const Ee=()=>{D.value=!0},Fe=()=>{D.value=!1};return()=>g?u.h(e,{...S,style:{...S.style||{},marginBottom:P.value?"10px":void 0}},v):y?u.h(e,{...S,rules:q.value?null:S.rules,disabled:q.value?!0:S.disabled,ref:I},v):P.value?u.h("span",{onMouseenter:Ee,onMouseleave:Fe,class:"nk-readonly-wrapper",style:{...Pe,color:G.value&&D.value?"#6e9eff":"rgba(0, 0, 0, 0.65)"}},[u.h("span",{style:{marginRight:"8px"}},L.value),G.value&&L.value!==s.emptyText?u.h("span",{class:"copy-icon",style:{visibility:D.value?"visible":"hidden",marginLeft:"8px"}},[u.h(ae,{onClick:async()=>{try{if(window.__POWERED_BY_WUJIE__){if(await window.gvUtil?.clipboard(null,L.value)===!1){p.message.error("您的浏览器不支持自动复制,请手动复制");return}p.message.success("复制成功")}else{const b=new Blob([L.value],{type:"text/plain"}),K=new ClipboardItem({"text/plain":b});await navigator.clipboard.write([K]),p.message.success("复制成功")}}catch{p.message.error("您的浏览器不支持自动复制,请手动复制")}},style:{cursor:"pointer",color:"#447dfd",fontSize:"12px",position:"absolute",top:"5px",right:"6px"}})]):null]):u.h(e,{...S,[h]:oe.value,[`onUpdate:${h}`]:Ae,ref:y?I:void 0},v)}})}const Nr={Input:p.Input,InputNumber:p.InputNumber,Textarea:p.Textarea,Select:p.Select,SelectOption:p.Select.Option,TreeSelect:p.TreeSelect,Cascader:p.Cascader,DatePicker:p.DatePicker,TimePicker:p.TimePicker,Radio:p.Radio,Checkbox:p.Checkbox,RadioGroup:p.Radio.Group,CheckboxGroup:p.Checkbox.Group,Switch:p.Switch,Form:p.Form,FormItem:p.Form.Item},_r={install(e){for(const[t,r]of Object.entries(Nr))if(r){const n=je(r);e.component(`Nk${t}`,n)}}};exports.default=_r;exports.withReadonly=je;
|
|
57
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sr(e,t){if(e){if(typeof e=="string")return he(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return he(e,t)}}function he(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function xr(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,a,o,i,l=[],f=!0,c=!1;try{if(o=(r=r.call(e)).next,t!==0)for(;!(f=(n=o.call(r)).done)&&(l.push(n.value),l.length!==t);f=!0);}catch(d){c=!0,a=d}finally{try{if(!f&&r.return!=null&&(i=r.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}function kr(e){if(Array.isArray(e))return e}function ve(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&n.push.apply(n,Object.getOwnPropertySymbols(r).filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),n.forEach(function(a){ne(e,a,r[a])})}return e}function ne(e,t,r){return t=Or(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Or(e){var t=Tr(e,"string");return typeof t=="symbol"?t:String(t)}function Tr(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function jr(e,t){if(e==null)return{};var r=Ar(e,t),n,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ar(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,o;for(o=0;o<n.length;o++)a=n[o],!(t.indexOf(a)>=0)&&(r[a]=e[a]);return r}Oe("#1890ff");var M=function(t,r){var n,a=ve({},t,r.attrs),o=a.class,i=a.icon,l=a.spin,f=a.rotate,c=a.tabindex,d=a.twoToneColor,k=a.onClick,h=jr(a,vr),j=(n={anticon:!0},ne(n,"anticon-".concat(i.name),!!i.name),ne(n,o,o),n),y=l===""||l||i.name==="loading"?"anticon-spin":"",g=c;g===void 0&&k&&(g=-1,h.tabindex=g);var s=f?{msTransform:"rotate(".concat(f,"deg)"),transform:"rotate(".concat(f,"deg)")}:void 0,m=ke(d),v=wr(m,2),w=v[0],A=v[1];return u.createVNode("span",ve({role:"img","aria-label":i.name},h,{onClick:k,class:j}),[u.createVNode(F,{class:y,icon:i,primaryColor:w,secondaryColor:A,style:s},null)])};M.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:String};M.displayName="AntdIcon";M.inheritAttrs=!1;M.getTwoToneColor=hr;M.setTwoToneColor=Oe;var Pr={icon:{tag:"svg",attrs:{viewBox:"32 32 960 960",focusable:"false"},children:[{tag:"path",attrs:{d:"M384 32a96 96 0 00-96 96v96a32 32 0 0064 0v-96a32 32 0 0132-32h512a32 32 0 0132 32v512a32 32 0 01-32 32h-96a32 32 0 000 64h96a96 96 0 0096-96V128a96 96 0 00-96-96H384z"}},{tag:"path",attrs:{d:"M128 288a96 96 0 00-96 96v512a96 96 0 0096 96h512a96 96 0 0096-96V384a96 96 0 00-96-96H128zm-32 96a32 32 0 0132-32h512a32 32 0 0132 32v512a32 32 0 01-32 32H128a32 32 0 01-32-32V384z"}}]},name:"copy",theme:"outlined"};function we(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&n.push.apply(n,Object.getOwnPropertySymbols(r).filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),n.forEach(function(a){Er(e,a,r[a])})}return e}function Er(e,t,r){return t=Fr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Fr(e){var t=Ir(e,"string");return typeof t=="symbol"?t:String(t)}function Ir(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ae=function(t,r){var n=we({},t,r.attrs);return u.createVNode(M,we({},n,{icon:Pr}),null)};ae.displayName="CopyOutlined";ae.inheritAttrs=!1;function _(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(_).join("");if(typeof e=="object"){if(typeof e.children=="string")return e.children;if(e?.default&&typeof e.default=="function"){const t=e.default();if(Array.isArray(t))return _(t)}e.children&&_(e.children)}return""}function Te(e,t={}){const r=new Map,{value:n="value",label:a="label"}=t;if(!e)return r;const o=Array.isArray(e)?e:[e];for(const i of o)if(!(!i||typeof i!="object")){if(i.type&&(typeof i.type=="object"||typeof i.type=="function")){let l=i.type.name?.toLowerCase()||"";if(typeof i.type=="function"?l=i.type.displayName?.toLowerCase()||"":typeof i.type=="string"&&(l=i.type?.toLowerCase()||""),/option|radio|checkbox/i.test(l)){const f=i.props||{},c=f[n]??f.value,d=f[a]??f.label;if(c!=null){const k=_(i.children)||d||String(c);r.set(c,k)}}}i.children&&Te(i.children,t).forEach((f,c)=>{r.has(c)||r.set(c,f)})}return r}function Mr(e,t,r){const{value:n="value",label:a="label",children:o="children"}=r,i=[];let l=e;for(const f of t){const c=l.find(d=>d[n]===f);if(c)i.push(c[a]||c[n]||String(f)),l=c[o]||[];else{i.push(String(f));break}}return i}function Rr(e,t,r){const{value:n="value",label:a="title",children:o="children"}=r,i=[],l=new Set(Array.isArray(t)?t:[t]);function f(c){for(const d of c)l.has(d[n])&&i.push(d[a]||d[n]),d[o]&&f(d[o])}return f(e),i}function $r({modelValue:e,options:t,treeData:r,valueToLabel:n,fieldNames:a,slots:o,isSelect:i,isRadioGroup:l,isCheckboxGroup:f,isCheckbox:c,isRadio:d,isCascader:k,isTreeSelect:h,isSwitch:j,attrs:y,emptyText:g}){if(n)try{return n(e)||g}catch(s){console.warn("[ReadonlyHOC] valueToLabel error",s)}if(j){const s=y.checkedValue??y["checked-value"]??!0,m=y.uncheckedValue??y["un-checked-value"]??!1;return e===s?y.checkedChildren??y["checked-children"]??"开启":e===m?y.uncheckedChildren??y["un-checked-children"]??"关闭":String(e||g)}if(k&&Array.isArray(e)&&t?.length)return Mr(t,e,a).join(" / ")||g;if(h&&r?.length)return Rr(r,e,a).join(", ")||g;if(t?.length){const s=a.value||"value",m=a.label||"label",v=w=>{const A=t.find(W=>W[s]===w);return A?A[m]||A[s]:w==null?"":String(w)};return Array.isArray(e)?e.map(v).join(", ")||g:v(e)||g}else if((i||l||f)&&o?.default)try{const s=o.default(),m=Te(s,a);if(m.size>0){const v=w=>w==null?"":m.get(w)||String(w);return Array.isArray(e)?e.map(v).join(", ")||g:v(e)||g}}catch(s){console.warn("[ReadonlyHOC] Failed to parse slot options",s)}else if(o?.default&&(c||d)&&typeof e=="boolean")try{const s=o.default(),m=_(s);if(m)return m}catch{}return e==null||e===""?g:Array.isArray(e)?e.join(", "):String(e)}function je(e){if(typeof e=="function")return e;const t=e.name||"",r=t.toLowerCase(),n=/select/i.test(r)&&!/tree|cascader/i.test(r),a=/radio/i.test(r)&&!/group/i.test(r),o=/radio.*group/i.test(r),i=/checkbox/i.test(r)&&!/group/i.test(r),l=/checkbox.*group/i.test(r),f=/switch/i.test(r),c=/cascader/i.test(r),d=/tree.*select/i.test(r),h=i||f||a?"checked":"value",j=`update:${h}`,y=/form$/i.test(r),g=/form.*item/i.test(r);return u.defineComponent({name:t,inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Array,Object],default:void 0},[h]:{type:[String,Number,Boolean,Array,Object],default:void 0},readonly:{type:Boolean,default:void 0},emptyText:{type:String,default:"--"},valueToLabel:{type:Function,default:null},copyable:{type:Boolean,default:void 0}},emits:["update:modelValue",j],setup(s,{emit:m,slots:v,expose:w}){const A=u.inject("nkReadonly",u.ref(!1)),W=u.inject("copyable",u.ref(!0)),P=u.computed(()=>s.readonly??A.value),q=u.computed(()=>s.readonly??A.value),G=u.computed(()=>s.copyable??W.value??!0),D=u.ref(!1);y&&(u.provide("nkReadonly",q),u.provide("copyable",G));const oe=u.computed(()=>s[h]!==void 0?s[h]:s.modelValue),Ae=b=>{m("update:modelValue",b),m(j,b)},S=u.useAttrs(),L=u.computed(()=>{if(!P.value)return"";const b=S.fieldNames??S["field-names"]??{},K=S.options,Ie=S.treeData??S["tree-data"];return $r({modelValue:oe.value,options:K,treeData:Ie,valueToLabel:s.valueToLabel,fieldNames:b,slots:v,isSelect:n,isRadioGroup:o,isCheckboxGroup:l,isCheckbox:i,isRadio:a,isCascader:c,isTreeSelect:d,isSwitch:f,attrs:S,emptyText:s.emptyText})}),Pe={lineHeight:"32px",padding:"0 6px",display:"inline-block",minHeight:"32px",cursor:"text",wordBreak:"break-all",color:"rgba(0, 0, 0, 0.85)",position:"relative",borderRadius:"4px",border:"none",backgroundColor:"none",whiteSpace:"pre-wrap"},I=u.ref();y&&w({validate:()=>P.value?Promise.resolve({}):I.value?.validate?.(),validateFields:b=>P.value?Promise.resolve({}):I.value?.validateFields?.(b),resetFields:b=>!P.value&&I.value?.resetFields?.(b),clearValidate:b=>!P.value&&I.value?.clearValidate?.(b),scrollToField:b=>!P.value&&I.value?.scrollToField?.(b)});const Ee=()=>{D.value=!0},Fe=()=>{D.value=!1};return()=>g?u.h(e,{...S,style:{...S.style||{},marginBottom:P.value?"10px":void 0}},v):y?u.h(e,{...S,rules:q.value?null:S.rules,disabled:q.value?!0:S.disabled,ref:I},v):P.value?u.h("span",{onMouseenter:Ee,onMouseleave:Fe,class:"nk-readonly-wrapper",style:{...Pe,color:G.value&&D.value?"#6e9eff":"rgba(0, 0, 0, 0.65)"}},[u.h("span",{style:{marginRight:"8px"}},L.value),G.value&&L.value!==s.emptyText?u.h("span",{class:"copy-icon",style:{visibility:D.value?"visible":"hidden",marginLeft:"8px"}},[u.h(ae,{onClick:async()=>{try{if(window.__POWERED_BY_WUJIE__){if(await window.gvUtil?.clipboard(null,L.value)===!1){p.message.error("您的浏览器不支持自动复制,请手动复制");return}p.message.success("复制成功")}else{const b=new Blob([L.value],{type:"text/plain"}),K=new ClipboardItem({"text/plain":b});await navigator.clipboard.write([K]),p.message.success("复制成功")}}catch{p.message.error("您的浏览器不支持自动复制,请手动复制")}},style:{cursor:"pointer",color:"#447dfd",fontSize:"12px",position:"absolute",top:"5px",right:"6px"}})]):null]):u.h(e,{...S,[h]:oe.value,[`onUpdate:${h}`]:Ae,ref:y?I:void 0},v)}})}const Nr={Input:p.Input,InputNumber:p.InputNumber,Textarea:p.Textarea,Select:p.Select,SelectOption:p.Select.Option,TreeSelect:p.TreeSelect,Cascader:p.Cascader,DatePicker:p.DatePicker,TimePicker:p.TimePicker,Radio:p.Radio,Checkbox:p.Checkbox,RadioGroup:p.Radio.Group,CheckboxGroup:p.Checkbox.Group,Switch:p.Switch,Form:p.Form,FormItem:p.Form.Item},_r={install(e){for(const[t,r]of Object.entries(Nr))if(r){const n=je(r);e.component(`Nk${t}`,n)}}};exports.default=_r;exports.withReadonly=je;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,75 +12,77 @@ export interface ReadonlyExtraPropsType {
|
|
|
12
12
|
valueToLabel?: (value: FormModelValue) => string;
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
}
|
|
15
|
+
export interface NkComponents {
|
|
16
|
+
NkInput: Component<Omit<InputProps, 'modelValue' | 'value'> & {
|
|
17
|
+
modelValue?: FormModelValue;
|
|
18
|
+
value?: FormModelValue;
|
|
19
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
20
|
+
NkInputNumber: Component<Omit<InputNumberProps, 'modelValue' | 'value'> & {
|
|
21
|
+
modelValue?: FormModelValue;
|
|
22
|
+
value?: FormModelValue;
|
|
23
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
24
|
+
NkTextarea: Component<Omit<TextAreaProps, 'modelValue' | 'value'> & {
|
|
25
|
+
modelValue?: FormModelValue;
|
|
26
|
+
value?: FormModelValue;
|
|
27
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
28
|
+
NkSelect: Component<Omit<SelectProps, 'modelValue' | 'value'> & {
|
|
29
|
+
modelValue?: FormModelValue;
|
|
30
|
+
value?: FormModelValue;
|
|
31
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
32
|
+
NkSelectOption: Component<SelectProps['options']>;
|
|
33
|
+
NkTreeSelect: Component<Omit<TreeSelectProps, 'modelValue' | 'value'> & {
|
|
34
|
+
modelValue?: FormModelValue;
|
|
35
|
+
value?: FormModelValue;
|
|
36
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
37
|
+
NkCascader: Component<Omit<CascaderProps, 'modelValue' | 'value'> & {
|
|
38
|
+
modelValue?: FormModelValue;
|
|
39
|
+
value?: FormModelValue;
|
|
40
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
41
|
+
NkDatePicker: Component<Omit<DatePickerProps, 'modelValue' | 'value'> & {
|
|
42
|
+
modelValue?: FormModelValue;
|
|
43
|
+
value?: FormModelValue;
|
|
44
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
45
|
+
NkTimePicker: Component<Omit<TimePickerProps, 'modelValue' | 'value'> & {
|
|
46
|
+
modelValue?: FormModelValue;
|
|
47
|
+
value?: FormModelValue;
|
|
48
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
49
|
+
NkRadio: Component<Omit<RadioProps, 'modelValue' | 'value' | 'checked'> & {
|
|
50
|
+
modelValue?: FormModelValue;
|
|
51
|
+
value?: FormModelValue;
|
|
52
|
+
checked?: boolean;
|
|
53
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
54
|
+
NkCheckbox: Component<Omit<CheckboxProps, 'modelValue' | 'value' | 'checked'> & {
|
|
55
|
+
modelValue?: FormModelValue;
|
|
56
|
+
value?: FormModelValue;
|
|
57
|
+
checked?: boolean;
|
|
58
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
59
|
+
NkRadioGroup: Component<Omit<RadioProps, 'modelValue' | 'value'> & {
|
|
60
|
+
modelValue?: FormModelValue;
|
|
61
|
+
value?: FormModelValue;
|
|
62
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
63
|
+
NkCheckboxGroup: Component<Omit<CheckboxProps, 'modelValue' | 'value'> & {
|
|
64
|
+
modelValue?: FormModelValue;
|
|
65
|
+
value?: FormModelValue;
|
|
66
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
67
|
+
NkSwitch: Component<Omit<SwitchProps, 'modelValue' | 'value' | 'checked'> & {
|
|
68
|
+
modelValue?: FormModelValue;
|
|
69
|
+
value?: FormModelValue;
|
|
70
|
+
checked?: boolean;
|
|
71
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
72
|
+
NkSlider: Component<Omit<SliderProps, 'modelValue' | 'value'> & {
|
|
73
|
+
modelValue?: FormModelValue;
|
|
74
|
+
value?: FormModelValue;
|
|
75
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
76
|
+
NkRate: Component<Omit<RateProps, 'modelValue' | 'value'> & {
|
|
77
|
+
modelValue?: FormModelValue;
|
|
78
|
+
value?: FormModelValue;
|
|
79
|
+
} & Partial<ReadonlyExtraPropsType>>;
|
|
80
|
+
NkForm: Component<FormProps> & {
|
|
81
|
+
readonly?: boolean;
|
|
82
|
+
};
|
|
83
|
+
NkFormItem: Component<FormItemProps>;
|
|
84
|
+
}
|
|
15
85
|
declare module 'vue' {
|
|
16
|
-
interface GlobalComponents {
|
|
17
|
-
NkInput: Component<Omit<InputProps, 'modelValue' | 'value'> & {
|
|
18
|
-
modelValue?: FormModelValue;
|
|
19
|
-
value?: FormModelValue;
|
|
20
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
21
|
-
NkInputNumber: Component<Omit<InputNumberProps, 'modelValue' | 'value'> & {
|
|
22
|
-
modelValue?: FormModelValue;
|
|
23
|
-
value?: FormModelValue;
|
|
24
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
25
|
-
NkTextarea: Component<Omit<TextAreaProps, 'modelValue' | 'value'> & {
|
|
26
|
-
modelValue?: FormModelValue;
|
|
27
|
-
value?: FormModelValue;
|
|
28
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
29
|
-
NkSelect: Component<Omit<SelectProps, 'modelValue' | 'value'> & {
|
|
30
|
-
modelValue?: FormModelValue;
|
|
31
|
-
value?: FormModelValue;
|
|
32
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
33
|
-
NkSelectOption: Component<SelectProps['options']>;
|
|
34
|
-
NkTreeSelect: Component<Omit<TreeSelectProps, 'modelValue' | 'value'> & {
|
|
35
|
-
modelValue?: FormModelValue;
|
|
36
|
-
value?: FormModelValue;
|
|
37
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
38
|
-
NkCascader: Component<Omit<CascaderProps, 'modelValue' | 'value'> & {
|
|
39
|
-
modelValue?: FormModelValue;
|
|
40
|
-
value?: FormModelValue;
|
|
41
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
42
|
-
NkDatePicker: Component<Omit<DatePickerProps, 'modelValue' | 'value'> & {
|
|
43
|
-
modelValue?: FormModelValue;
|
|
44
|
-
value?: FormModelValue;
|
|
45
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
46
|
-
NkTimePicker: Component<Omit<TimePickerProps, 'modelValue' | 'value'> & {
|
|
47
|
-
modelValue?: FormModelValue;
|
|
48
|
-
value?: FormModelValue;
|
|
49
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
50
|
-
NkRadio: Component<Omit<RadioProps, 'modelValue' | 'value' | 'checked'> & {
|
|
51
|
-
modelValue?: FormModelValue;
|
|
52
|
-
value?: FormModelValue;
|
|
53
|
-
checked?: boolean;
|
|
54
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
55
|
-
NkCheckbox: Component<Omit<CheckboxProps, 'modelValue' | 'value' | 'checked'> & {
|
|
56
|
-
modelValue?: FormModelValue;
|
|
57
|
-
value?: FormModelValue;
|
|
58
|
-
checked?: boolean;
|
|
59
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
60
|
-
NkRadioGroup: Component<Omit<RadioProps, 'modelValue' | 'value'> & {
|
|
61
|
-
modelValue?: FormModelValue;
|
|
62
|
-
value?: FormModelValue;
|
|
63
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
64
|
-
NkCheckboxGroup: Component<Omit<CheckboxProps, 'modelValue' | 'value'> & {
|
|
65
|
-
modelValue?: FormModelValue;
|
|
66
|
-
value?: FormModelValue;
|
|
67
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
68
|
-
NkSwitch: Component<Omit<SwitchProps, 'modelValue' | 'value' | 'checked'> & {
|
|
69
|
-
modelValue?: FormModelValue;
|
|
70
|
-
value?: FormModelValue;
|
|
71
|
-
checked?: boolean;
|
|
72
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
73
|
-
NkSlider: Component<Omit<SliderProps, 'modelValue' | 'value'> & {
|
|
74
|
-
modelValue?: FormModelValue;
|
|
75
|
-
value?: FormModelValue;
|
|
76
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
77
|
-
NkRate: Component<Omit<RateProps, 'modelValue' | 'value'> & {
|
|
78
|
-
modelValue?: FormModelValue;
|
|
79
|
-
value?: FormModelValue;
|
|
80
|
-
} & Partial<ReadonlyExtraPropsType>>;
|
|
81
|
-
NkForm: Component<FormProps> & {
|
|
82
|
-
readonly?: boolean;
|
|
83
|
-
};
|
|
84
|
-
NkFormItem: Component<FormItemProps>;
|
|
86
|
+
interface GlobalComponents extends NkComponents {
|
|
85
87
|
}
|
|
86
88
|
}
|
package/dist/index.es.js
CHANGED
|
@@ -992,7 +992,8 @@ function rt(e) {
|
|
|
992
992
|
position: "relative",
|
|
993
993
|
borderRadius: "4px",
|
|
994
994
|
border: "none",
|
|
995
|
-
backgroundColor: "none"
|
|
995
|
+
backgroundColor: "none",
|
|
996
|
+
whiteSpace: "pre-wrap"
|
|
996
997
|
}, F = H();
|
|
997
998
|
p && v({
|
|
998
999
|
validate: () => j.value ? Promise.resolve({}) : F.value?.validate?.(),
|