n-design-readonly-plugin 1.0.0 → 1.0.2
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/dist/index.cjs.js +1 -0
- package/package.json +1 -1
- package/vite.config.ts +2 -1
- package/dist/index.umd.js +0 -1
- /package/dist/{index.mjs → index.es.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),l=require("n-designv3");function x(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(x).join("");if(typeof e=="object"){if(typeof e.children=="string")return e.children;if(e?.default&&typeof e.default=="function"){const n=e.default();if(Array.isArray(n))return x(n)}e.children&&x(e.children)}return""}function L(e,n={}){const t=new Map,{value:c="value",label:s="label"}=n;if(!e)return t;const d=Array.isArray(e)?e:[e];for(const r of d)if(!(!r||typeof r!="object")){if(r.type&&(typeof r.type=="object"||typeof r.type=="function")){let f=r.type.name?.toLowerCase()||"";if(typeof r.type=="function"?f=r.type.displayName?.toLowerCase()||"":typeof r.type=="string"&&(f=r.type?.toLowerCase()||""),/option|radio|checkbox/i.test(f)){const o=r.props||{},a=o[c]??o.value,y=o[s]??o.label;if(a!=null){const w=x(r.children)||y||String(a);t.set(a,w)}}}r.children&&L(r.children,n).forEach((o,a)=>{t.has(a)||t.set(a,o)})}return t}function G(e,n,t){const{value:c="value",label:s="label",children:d="children"}=t,r=[];let f=e;for(const o of n){const a=f.find(y=>y[c]===o);if(a)r.push(a[s]||a[c]||String(o)),f=a[d]||[];else{r.push(String(o));break}}return r}function D(e,n,t){const{value:c="value",label:s="title",children:d="children"}=t,r=[],f=new Set(Array.isArray(n)?n:[n]);function o(a){for(const y of a)f.has(y[c])&&r.push(y[s]||y[c]),y[d]&&o(y[d])}return o(e),r}function H({modelValue:e,options:n,treeData:t,valueToLabel:c,fieldNames:s,slots:d,isSelect:r,isRadioGroup:f,isCheckboxGroup:o,isCheckbox:a,isRadio:y,isCascader:w,isTreeSelect:C,isSwitch:T,attrs:p,emptyText:k}){if(c)try{return c(e)||k}catch(i){console.warn("[ReadonlyHOC] valueToLabel error",i)}if(T){const i=p.checkedValue??p["checked-value"]??!0,h=p.uncheckedValue??p["un-checked-value"]??!1;return e===i?p.checkedChildren??p["checked-children"]??"开启":e===h?p.uncheckedChildren??p["un-checked-children"]??"关闭":String(e||k)}if(w&&Array.isArray(e)&&n?.length)return G(n,e,s).join(" / ")||k;if(C&&t?.length)return D(t,e,s).join(", ")||k;if(n?.length){const i=s.value||"value",h=s.label||"label",S=v=>{const R=n.find(m=>m[i]===v);return R?R[h]||R[i]:v==null?"":String(v)};return Array.isArray(e)?e.map(S).join(", ")||k:S(e)||k}else if((r||f||o)&&d?.default)try{const i=d.default(),h=L(i,s);if(h.size>0){const S=v=>v==null?"":h.get(v)||String(v);return Array.isArray(e)?e.map(S).join(", ")||k:S(e)||k}}catch(i){console.warn("[ReadonlyHOC] Failed to parse slot options",i)}else if(d?.default&&(a||y)&&typeof e=="boolean")try{const i=d.default(),h=x(i);if(h)return h}catch{}return e==null||e===""?k:Array.isArray(e)?e.join(", "):String(e)}function O(e){const n=e.name||"",t=n.toLowerCase(),c=/select/i.test(t)&&!/tree|cascader/i.test(t),s=/radio/i.test(t)&&!/group/i.test(t),d=/radio.*group/i.test(t),r=/checkbox/i.test(t)&&!/group/i.test(t),f=/checkbox.*group/i.test(t),o=/switch/i.test(t),a=/cascader/i.test(t),y=/tree.*select/i.test(t),C=r||o||s?"checked":"value",T=`update:${C}`,p=/form$/i.test(t),k=/form.*item/i.test(t);return u.defineComponent({name:n,inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Array,Object],default:void 0},[C]:{type:[String,Number,Boolean,Array,Object],default:void 0},readonly:{type:Boolean,default:void 0},emptyText:{type:String,default:"--"},valueToLabel:{type:Function,default:null}},emits:["update:modelValue",T],setup(i,{emit:h,slots:S,expose:v}){const R=u.inject("nkReadonly",u.ref(!1)),m=u.computed(()=>i.readonly??R.value),F=u.computed(()=>i.readonly??R.value);p&&u.provide("nkReadonly",F);const j=u.computed(()=>i[C]!==void 0?i[C]:i.modelValue),P=g=>{h("update:modelValue",g),h(T,g)},b=u.useAttrs(),K=u.computed(()=>{if(!m.value)return"";const g=b.fieldNames??b["field-names"]??{},M=b.options,I=b.treeData??b["tree-data"];return H({modelValue:j.value,options:M,treeData:I,valueToLabel:i.valueToLabel,fieldNames:g,slots:S,isSelect:c,isRadioGroup:d,isCheckboxGroup:f,isCheckbox:r,isRadio:s,isCascader:a,isTreeSelect:y,isSwitch:o,attrs:b,emptyText:i.emptyText})}),N={lineHeight:"32px",padding:"0 6px",display:"inline-block",minHeight:"32px",border:"none",backgroundColor:"none",cursor:"default",wordBreak:"break-all",color:"rgba(0, 0, 0, 0.65)"},A=u.ref();return p&&v({validate:()=>m.value?Promise.resolve({}):A.value?.validate?.(),validateFields:g=>m.value?Promise.resolve({}):A.value?.validateFields?.(g),resetFields:g=>!m.value&&A.value?.resetFields?.(g),clearValidate:g=>!m.value&&A.value?.clearValidate?.(g),scrollToField:g=>!m.value&&A.value?.scrollToField?.(g)}),()=>k?u.h(e,{...b,style:{...b.style||{},marginBottom:m.value?"10px":void 0}},S):p?u.h(e,{...b,rules:F.value?null:b.rules,disabled:F.value?!0:b.disabled,ref:A},S):m.value?u.h("span",{class:"nk-readonly-wrapper",style:N,role:"text",tabindex:0,"aria-readonly":"true"},K.value):u.h(e,{...b,[C]:j.value,[`onUpdate:${C}`]:P,ref:p?A:void 0},S)}})}const $={Input:l.Input,InputNumber:l.InputNumber,Textarea:l.Textarea,Select:l.Select,SelectOption:l.Select.Option,TreeSelect:l.TreeSelect,Cascader:l.Cascader,DatePicker:l.DatePicker,TimePicker:l.TimePicker,Radio:l.Radio,Checkbox:l.Checkbox,RadioGroup:l.Radio.Group,CheckboxGroup:l.Checkbox.Group,Switch:l.Switch,Form:l.Form,FormItem:l.Form.Item},E={install(e){for(const[n,t]of Object.entries($))if(t){const c=O(t);e.component(`Nk${n}`,c)}}};exports.NkReadonlyPlugin=E;exports.withReadonly=O;
|
package/package.json
CHANGED
package/vite.config.ts
CHANGED
|
@@ -7,7 +7,8 @@ export default defineConfig({
|
|
|
7
7
|
lib: {
|
|
8
8
|
entry: resolve(__dirname, 'src/index.ts'),
|
|
9
9
|
name: 'NDesignReadolyPlugin',
|
|
10
|
-
fileName:
|
|
10
|
+
fileName: (format) => `index.${format}.js`,
|
|
11
|
+
formats: ['es', 'cjs']
|
|
11
12
|
},
|
|
12
13
|
rollupOptions: {
|
|
13
14
|
// external 排除 vue 和 n-designv3
|
package/dist/index.umd.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(function(A,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("n-designv3")):typeof define=="function"&&define.amd?define(["exports","vue","n-designv3"],o):(A=typeof globalThis<"u"?globalThis:A||self,o(A.NDesignReadolyPlugin={},A.Vue,A.nDesignv3))})(this,(function(A,o,c){"use strict";function w(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(w).join("");if(typeof e=="object"){if(typeof e.children=="string")return e.children;if(e?.default&&typeof e.default=="function"){const n=e.default();if(Array.isArray(n))return w(n)}e.children&&w(e.children)}return""}function L(e,n={}){const t=new Map,{value:s="value",label:u="label"}=n;if(!e)return t;const d=Array.isArray(e)?e:[e];for(const r of d)if(!(!r||typeof r!="object")){if(r.type&&(typeof r.type=="object"||typeof r.type=="function")){let f=r.type.name?.toLowerCase()||"";if(typeof r.type=="function"?f=r.type.displayName?.toLowerCase()||"":typeof r.type=="string"&&(f=r.type?.toLowerCase()||""),/option|radio|checkbox/i.test(f)){const a=r.props||{},l=a[s]??a.value,y=a[u]??a.label;if(l!=null){const j=w(r.children)||y||String(l);t.set(l,j)}}}r.children&&L(r.children,n).forEach((a,l)=>{t.has(l)||t.set(l,a)})}return t}function O(e,n,t){const{value:s="value",label:u="label",children:d="children"}=t,r=[];let f=e;for(const a of n){const l=f.find(y=>y[s]===a);if(l)r.push(l[u]||l[s]||String(a)),f=l[d]||[];else{r.push(String(a));break}}return r}function K(e,n,t){const{value:s="value",label:u="title",children:d="children"}=t,r=[],f=new Set(Array.isArray(n)?n:[n]);function a(l){for(const y of l)f.has(y[s])&&r.push(y[u]||y[s]),y[d]&&a(y[d])}return a(e),r}function M({modelValue:e,options:n,treeData:t,valueToLabel:s,fieldNames:u,slots:d,isSelect:r,isRadioGroup:f,isCheckboxGroup:a,isCheckbox:l,isRadio:y,isCascader:j,isTreeSelect:R,isSwitch:F,attrs:p,emptyText:m}){if(s)try{return s(e)||m}catch(i){console.warn("[ReadonlyHOC] valueToLabel error",i)}if(F){const i=p.checkedValue??p["checked-value"]??!0,h=p.uncheckedValue??p["un-checked-value"]??!1;return e===i?p.checkedChildren??p["checked-children"]??"开启":e===h?p.uncheckedChildren??p["un-checked-children"]??"关闭":String(e||m)}if(j&&Array.isArray(e)&&n?.length)return O(n,e,u).join(" / ")||m;if(R&&t?.length)return K(t,e,u).join(", ")||m;if(n?.length){const i=u.value||"value",h=u.label||"label",g=S=>{const T=n.find(C=>C[i]===S);return T?T[h]||T[i]:S==null?"":String(S)};return Array.isArray(e)?e.map(g).join(", ")||m:g(e)||m}else if((r||f||a)&&d?.default)try{const i=d.default(),h=L(i,u);if(h.size>0){const g=S=>S==null?"":h.get(S)||String(S);return Array.isArray(e)?e.map(g).join(", ")||m:g(e)||m}}catch(i){console.warn("[ReadonlyHOC] Failed to parse slot options",i)}else if(d?.default&&(l||y)&&typeof e=="boolean")try{const i=d.default(),h=w(i);if(h)return h}catch{}return e==null||e===""?m:Array.isArray(e)?e.join(", "):String(e)}function P(e){const n=e.name||"",t=n.toLowerCase(),s=/select/i.test(t)&&!/tree|cascader/i.test(t),u=/radio/i.test(t)&&!/group/i.test(t),d=/radio.*group/i.test(t),r=/checkbox/i.test(t)&&!/group/i.test(t),f=/checkbox.*group/i.test(t),a=/switch/i.test(t),l=/cascader/i.test(t),y=/tree.*select/i.test(t),R=r||a||u?"checked":"value",F=`update:${R}`,p=/form$/i.test(t),m=/form.*item/i.test(t);return o.defineComponent({name:n,inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Array,Object],default:void 0},[R]:{type:[String,Number,Boolean,Array,Object],default:void 0},readonly:{type:Boolean,default:void 0},emptyText:{type:String,default:"--"},valueToLabel:{type:Function,default:null}},emits:["update:modelValue",F],setup(i,{emit:h,slots:g,expose:S}){const T=o.inject("nkReadonly",o.ref(!1)),C=o.computed(()=>i.readonly??T.value),v=o.computed(()=>i.readonly??T.value);p&&o.provide("nkReadonly",v);const N=o.computed(()=>i[R]!==void 0?i[R]:i.modelValue),H=k=>{h("update:modelValue",k),h(F,k)},b=o.useAttrs(),$=o.computed(()=>{if(!C.value)return"";const k=b.fieldNames??b["field-names"]??{},q=b.options,B=b.treeData??b["tree-data"];return M({modelValue:N.value,options:q,treeData:B,valueToLabel:i.valueToLabel,fieldNames:k,slots:g,isSelect:s,isRadioGroup:d,isCheckboxGroup:f,isCheckbox:r,isRadio:u,isCascader:l,isTreeSelect:y,isSwitch:a,attrs:b,emptyText:i.emptyText})}),E={lineHeight:"32px",padding:"0 6px",display:"inline-block",minHeight:"32px",border:"none",backgroundColor:"none",cursor:"default",wordBreak:"break-all",color:"rgba(0, 0, 0, 0.65)"},x=o.ref();return p&&S({validate:()=>C.value?Promise.resolve({}):x.value?.validate?.(),validateFields:k=>C.value?Promise.resolve({}):x.value?.validateFields?.(k),resetFields:k=>!C.value&&x.value?.resetFields?.(k),clearValidate:k=>!C.value&&x.value?.clearValidate?.(k),scrollToField:k=>!C.value&&x.value?.scrollToField?.(k)}),()=>m?o.h(e,{...b,style:{...b.style||{},marginBottom:C.value?"10px":void 0}},g):p?o.h(e,{...b,rules:v.value?null:b.rules,disabled:v.value?!0:b.disabled,ref:x},g):C.value?o.h("span",{class:"nk-readonly-wrapper",style:E,role:"text",tabindex:0,"aria-readonly":"true"},$.value):o.h(e,{...b,[R]:N.value,[`onUpdate:${R}`]:H,ref:p?x:void 0},g)}})}const I={Input:c.Input,InputNumber:c.InputNumber,Textarea:c.Textarea,Select:c.Select,SelectOption:c.Select.Option,TreeSelect:c.TreeSelect,Cascader:c.Cascader,DatePicker:c.DatePicker,TimePicker:c.TimePicker,Radio:c.Radio,Checkbox:c.Checkbox,RadioGroup:c.Radio.Group,CheckboxGroup:c.Checkbox.Group,Switch:c.Switch,Form:c.Form,FormItem:c.Form.Item},G={install(e){for(const[n,t]of Object.entries(I))if(t){const s=P(t);e.component(`Nk${n}`,s)}}};A.NkReadonlyPlugin=G,A.withReadonly=P,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}));
|
|
File without changes
|