@shwfed/config 2.9.10 → 2.9.11
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/mcp.mjs +2 -2
- package/dist/module.json +1 -1
- package/dist/preview/assets/{FieldGroup.vue_vue_type_script_setup_true_lang-B_lv0Qb4.js → FieldGroup.vue_vue_type_script_setup_true_lang-CN4xD2hQ.js} +1 -1
- package/dist/preview/assets/{badge-DkCzSREV.js → badge-CzfW1Ked.js} +1 -1
- package/dist/preview/assets/config-BdX3zl4t.js +1 -0
- package/dist/preview/assets/{config-y0whCdxg.js → config-Bzwfqv6w.js} +1 -1
- package/dist/preview/assets/{config-CfTdhIiz.js → config-C2y2XI2Q.js} +1 -1
- package/dist/preview/assets/{config-CLszlI7X.js → config-CCXJvpik.js} +1 -1
- package/dist/preview/assets/{config-BQZZzdBi.js → config-CDYZN7EX.js} +1 -1
- package/dist/preview/assets/{config-BzUZdTRZ.js → config-CPuERNUd.js} +1 -1
- package/dist/preview/assets/{config-CJYUWHSt.js → config-D37gWDMV.js} +1 -1
- package/dist/preview/assets/{config-DG9kUyIX.js → config-DbNukLyq.js} +1 -1
- package/dist/preview/assets/{config-IAY_3DyY.js → config-Op5IHwI_.js} +1 -1
- package/dist/preview/assets/{config-DnxWfe-p.js → config-e5aOGFb2.js} +1 -1
- package/dist/preview/assets/{config-BO6oZNCA.js → config-jJQ2fulH.js} +1 -1
- package/dist/preview/assets/{config-DcOjw4Ib.js → config-jzfHh7bp.js} +1 -1
- package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-D6Dl1HG7.js → definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js} +1 -1
- package/dist/preview/assets/index-0vF7XQ-J.js +1 -0
- package/dist/preview/assets/{index-BxEz7F0S.js → index-CAIvIAWJ.js} +1 -1
- package/dist/preview/assets/{index-CEpio2Ai.js → index-Cyjm-GKs.js} +138 -138
- package/dist/preview/assets/{index-DEk1Sey_.css → index-D0eGXK5P.css} +1 -1
- package/dist/preview/assets/{item-BgY4KzDy.js → item-CUoRMMz1.js} +1 -1
- package/dist/preview/assets/{runtime-C9L73GlB.js → runtime-BALr-Cq0.js} +1 -1
- package/dist/preview/assets/{runtime-ObPbN32X.js → runtime-BvcTYin8.js} +1 -1
- package/dist/preview/assets/{runtime-DNCNcjrA.js → runtime-CHQwYQ80.js} +1 -1
- package/dist/preview/assets/{runtime-DIHeE12q.js → runtime-CU5fYNMI.js} +1 -1
- package/dist/preview/assets/{runtime-B1vIYtF_.js → runtime-CWt21RRo.js} +1 -1
- package/dist/preview/assets/{runtime-B0yAZrhv.js → runtime-C_epees8.js} +1 -1
- package/dist/preview/assets/{runtime-BweDVL2G.js → runtime-D3TnRYXn.js} +1 -1
- package/dist/preview/assets/{runtime-74HxxB_6.js → runtime-DWKqftSK.js} +1 -1
- package/dist/preview/assets/{runtime-BrfrrA2a.js → runtime-V_usL1Fa.js} +1 -1
- package/dist/preview/assets/runtime-wAz72cCJ.js +1 -0
- package/dist/preview/assets/{schema-meta-dmADcmVf.js → schema-meta-DwWuSVqk.js} +1 -1
- package/dist/preview/index.html +2 -2
- package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.vue +6 -1
- package/dist/runtime/components/actions/config.d.vue.ts +1 -0
- package/dist/runtime/components/actions/config.vue +6 -2
- package/dist/runtime/components/actions/config.vue.d.ts +1 -0
- package/dist/runtime/components/block-layout-editor/index.vue +15 -2
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.vue +5 -2
- package/dist/runtime/components/config/blocks/2026-06-02/com.shwfed.block.card/config.vue +4 -1
- package/dist/runtime/components/config/config.d.vue.ts +1 -1
- package/dist/runtime/components/config/config.vue +2 -33
- package/dist/runtime/components/config/config.vue.d.ts +1 -1
- package/dist/runtime/components/config/use-editor.d.ts +19 -0
- package/dist/runtime/components/config/use-editor.js +36 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.js +1 -1
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.d.vue.ts +2 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue +3 -2
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue.d.ts +2 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/runtime.vue +1 -1
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts +3 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.js +1 -1
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +6 -6
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +6 -6
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +6 -6
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +6 -6
- package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.actions/config.vue +1 -0
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/config.vue +1 -1
- package/package.json +1 -1
- package/dist/preview/assets/config-9Ny1em1E.js +0 -1
- package/dist/preview/assets/index-eXjRNljQ.js +0 -1
- package/dist/preview/assets/runtime--G6ZYJWm.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as O,v as M,x as k,y,o as q,c as E,z,b as A,A as x,B as i,C as J,D as L,E as s,F as T,G as V,H as D,I as G,J as H,K,L as g,M as P,N as b,O as U}from"./index-
|
|
1
|
+
import{d as O,v as M,x as k,y,o as q,c as E,z,b as A,A as x,B as i,C as J,D as L,E as s,F as T,G as V,H as D,I as G,J as H,K,L as g,M as P,N as b,O as U}from"./index-Cyjm-GKs.js";import W from"./index-CAIvIAWJ.js";const X=O({name:"ShwfedBlockAnimatedNumberItem",__name:"item",props:{item:{}},setup(h){const n=h,j=P(),a=x(void 0),m=x(0);function u(){return K(j)}function S(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){const t=Number(e);return Number.isFinite(t)?t:0}return 0}const d=i(()=>a.value===void 0?g():U(a.value));function v(e){if(!e)return"";try{const t=b(s(e,{...u(),json:d.value}));return t==null?"":String(t)}catch{return""}}const w=i(()=>v(n.item.prefix)),C=i(()=>v(n.item.suffix));function F(e){if(e)try{const t=b(s(e,{...u(),json:d.value}));return t==null?void 0:typeof t=="string"||typeof t=="object"?t:String(t)}catch{return}}const I=i(()=>F(n.item.style));async function r(){const e=n.item.dataSource,t=u(),_=J(function*(){let o=g();e.request&&(o=yield*L(yield*s(e.request,t)));const B=yield*s(e.value,{...t,json:o});return{json:T(o),value:B}});try{const o=await V(D(_,G));a.value=o.json,m.value=S(o.value)}catch(o){console.warn("[shwfed-animated-number] fetch failed",o)}}const l=i(()=>(n.item.pollingInterval??0)>0),N=i(()=>Math.max(1,n.item.pollingInterval??1)*1e3),c=H(),{pause:p,resume:f}=M(()=>{r()},N,{immediate:!1});return k(()=>{r(),l.value&&c.value&&f()}),y(c,e=>{l.value&&(e?(r(),f()):p())}),y(()=>[n.item.dataSource.request??"",n.item.dataSource.value,n.item.pollingInterval??0].join("|"),()=>{r(),l.value&&c.value?f():p()}),(e,t)=>(q(),E(A(W),{value:m.value,prefix:w.value,suffix:C.value,style:z(I.value)},null,8,["value","prefix","suffix","style"]))}});export{X as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as b,
|
|
1
|
+
import{d as b,aR as E,C as _,aY as r,aM as m,b1 as S,b2 as j,c as v,b as x,E as B,K as C,aQ as L,M as R,o as k}from"./index-Cyjm-GKs.js";import{_ as T}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const q=b({name:"ShwfedHttpDownloadActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(d){const c=d,g=R(),t=(e,n)=>B(e,{...C(g),...n}),l=L(),p=new Set(["success","error","warning","info"]);function f(e){const n=URL.createObjectURL(e),o=document.createElement("a");o.href=n,o.download=e.name,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(n)}const y=E(()=>_(function*(){const{template:e,messageExpression:n,resultExpression:o}=c.config,u=yield*t(e.request);if(!e.download){const s=yield*u.file();return yield*r(()=>f(s)),yield*m(l,c.config.onSuccess,t)}const a={json:yield*u.json()},i=o===void 0?"success":yield*S(t(o,a),s=>p.has(s)?s:"success");if(n!==void 0){const s=yield*t(n,a);yield*r(()=>j[i](s))}if(i==="success"||i==="info"){const h=yield*(yield*t(e.download,a)).file();yield*r(()=>f(h))}const w={success:c.config.onSuccess,warning:c.config.onWarning,error:c.config.onError,info:c.config.onInfo};return yield*m(l,w[i],t)}));return(e,n)=>(k(),v(T,{"action-id":d.buttonId,effect:x(y)},null,8,["action-id","effect"]))}});export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as r,
|
|
1
|
+
import{d as r,aR as f,aS as u,aM as g,aP as p,c as d,b as m,E as l,K as x,aQ as E,M as h,o as _}from"./index-Cyjm-GKs.js";import{_ as b}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const B=r({name:"ShwfedHttpRequestActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(n){const e=n,i=h(),s=(t,c)=>l(t,{...x(i),...c}),o=E(),a=f(()=>u(g(o,e.config.before,s),()=>p(e.config.expression,s,{messageExpression:e.config.messageExpression,resultExpression:e.config.resultExpression,channel:o,triggers:{success:e.config.onSuccess,warning:e.config.onWarning,error:e.config.onError,info:e.config.onInfo}})));return(t,c)=>(_(),d(b,{"action-id":n.buttonId,effect:m(a)},null,8,["action-id","effect"]))}});export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,Y as u,
|
|
1
|
+
import{d as f,Y as u,aR as p,aS as d,aM as l,b5 as m,a1 as g,c as x,b as h,E,K as _,aQ as b,o as B,M as k}from"./index-Cyjm-GKs.js";import{_ as C}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const I=f({name:"ShwfedHttpRequestBatchActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(n){const e=n,{locale:a}=u(),c=k(),s=(t,o)=>E(t,{..._(c),...o}),i=b(),r=p(()=>d(l(i,e.config.before,s),()=>m(e.config.expression,s,{messageExpression:e.config.messageExpression,resultExpression:e.config.resultExpression,continueOnError:e.config.continueOnError,markdown:g(e.config.markdown,a.value)??""})));return(t,o)=>(B(),x(C,{"action-id":n.buttonId,effect:h(r)},null,8,["action-id","effect"]))}});export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as u,Y as i,c as l,b as p,B as m,o as d,h as f,a1 as _,
|
|
1
|
+
import{d as u,Y as i,c as l,b as p,B as m,o as d,h as f,a1 as _,aN as k,E as w,K as x,M as g}from"./index-Cyjm-GKs.js";const B=u({name:"ShwfedMarkdownItemRuntime",__name:"runtime",props:{config:{}},setup(s){const o=s,{locale:t}=i(),a=g(),c=(e,n)=>w(e,{...x(a),...n}),r=m(()=>{const e=_(o.config.content,t.value)??"";return k(e,c)});return(e,n)=>(d(),l(p(f),{"data-slot":"buttons-markdown",source:r.value,class:"prose prose-sm prose-zinc px-1"},null,8,["source"]))}});export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as r,
|
|
1
|
+
import{d as r,aR as f,aM as d,c as u,b as m,aQ as p,o as l,E as g,K as h,M as _}from"./index-Cyjm-GKs.js";import{_ as C}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const x=r({name:"ShwfedEventDispatchActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(e){const c=e,s=_(),a=(n,t)=>g(n,{...h(s),...t}),o=p(),i=f(()=>d(o,c.config.triggers,a));return(n,t)=>(l(),u(C,{"action-id":e.buttonId,effect:m(i)},null,8,["action-id","effect"]))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o}from"./definition.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as o}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";import{d as n,c,b as a,o as f,aT as i}from"./index-Cyjm-GKs.js";const _=n({name:"ShwfedPrototypeActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(t){const e=i;return(r,s)=>(f(),c(o,{"action-id":t.buttonId,effect:a(e)},null,8,["action-id","effect"]))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,Y as g,C as l,
|
|
1
|
+
import{d as f,Y as g,C as l,aM as u,a1 as d,aN as p,aO as m,aP as x,c as E,b as _,E as h,K as C,aQ as w,M as b,o as k}from"./index-Cyjm-GKs.js";import{_ as I}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const M=f({name:"ShwfedHttpRequestConfirmActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(c){const n=c,{locale:i}=g(),a=b(),s=(e,o)=>h(e,{...C(a),...o}),t=w(),r=l(function*(){yield*u(t,n.config.before,s);const e=d(n.config.markdown,i.value)??"",o=p(e,s);(yield*m({content:o,icon:n.config.icon,color:n.config.color}))||(yield*x(n.config.expression,s,{messageExpression:n.config.messageExpression,resultExpression:n.config.resultExpression,channel:t,triggers:{success:n.config.onSuccess,warning:n.config.onWarning,error:n.config.onError,info:n.config.onInfo}}))});return(e,o)=>(k(),E(I,{"action-id":c.buttonId,effect:_(r)},null,8,["action-id","effect"]))}});export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as l,
|
|
1
|
+
import{d as l,b3 as g,aR as A,aU as y,aM as b,c as _,b as h,E as S,K as j,aQ as k,b4 as C,M as B,o as E}from"./index-Cyjm-GKs.js";import{_ as M}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const F=l({name:"ShwfedStateWriteActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(s){const a=s,f=B(),c=(e,t)=>S(e,{...j(f),...t}),n=g(),o=n.kind==="form"&&n.parent?n.parent:n,u=k(),m=C((e,t,r)=>{if(Array.isArray(e[t])&&Array.isArray(r))return e[t]=r,!0});function i(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function p(e,t){return i(e)&&i(t)?m({...t},e):t}const d=A(()=>y(c(a.config.expression),e=>{for(const t of Object.keys(e)){const r=p(o.getAt(t),e[t]);o.setAt(t,r)}return b(u,a.config.onSuccess,c)}));return(e,t)=>(E(),_(M,{"action-id":s.buttonId,effect:h(d)},null,8,["action-id","effect"]))}});export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,
|
|
1
|
+
import{d as f,aR as u,aU as l,aV as d,c as m,b as w,E as p,K as _,M as g,o as h}from"./index-Cyjm-GKs.js";import{_ as b}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";function v(){return{resolve:e=>({href:new URL(e,window.location.href).href})}}function x(e,t){return window.location.assign(e),Promise.resolve()}const B=f({name:"ShwfedNavigationActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(e){const t=e,i=v(),a=g(),r=(n,o)=>p(n,{..._(a),...o});function c(n){try{return new URL(n,window.location.href).origin!==window.location.origin}catch{return!1}}const s=u(()=>l(r(t.config.url),n=>d(async()=>{const o=c(n);if(t.config.mode==="_blank"){window.open(o?n:i.resolve(n).href,"_blank");return}await x(n)})));return(n,o)=>(h(),m(b,{"action-id":e.buttonId,effect:w(s)},null,8,["action-id","effect"]))}});export{B as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as s,Y as M,aW as b,C as p,a1 as c,aX as x,N,c as T,w as d,b as u,A as k,Q as L,aQ as S,aY as w,o as A,j as I,z as V,a as r,aZ as Y,a_ as $,aD as j,M as z,a$ as f,V as m,b0 as F}from"./index-Cyjm-GKs.js";import{_ as H}from"./definition.vue_vue_type_script_setup_true_lang-BgssDGxW.js";const R=s({name:"ShwfedModalLayoutActionRuntime",__name:"runtime",props:{buttonId:{},config:{},buttonTitle:{}},setup(n){const a=n,{locale:l}=M(),v=e=>{},h=z(),i=L(f,void 0),C=S(),o=k(null),g=b(a.buttonId,{close:()=>w(()=>{o.value?.()})},C),_=s({name:"ModalBoundaryBridge",setup(e,{slots:t}){return $(h),m(F,g),i&&m(f,i),()=>t.default?.()}}),E=(e,t)=>j()?.(e,t),y=p(function*(){const e=c(a.config.modalTitle,l.value)??c(a.buttonTitle,l.value)??"",{modal:t,close:B}=yield*x({title:e,width:a.config.modalWidth});o.value=()=>N(B()),yield*t,o.value=null});return(e,t)=>(A(),T(H,{"action-id":n.buttonId,effect:u(y)},{default:d(()=>[I("div",{style:V(n.config.modalMinHeight?`min-height: ${n.config.modalMinHeight}`:void 0)},[r(u(_),null,{default:d(()=>[r(Y,{"slot-value":n.config.slot,configure:v,"find-entry":E},null,8,["slot-value"])]),_:1})],4)]),_:1},8,["action-id","effect"]))}});export{R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as o,q as l,r as p}from"./index-
|
|
1
|
+
import{p as o,q as l,r as p}from"./index-Cyjm-GKs.js";function i(n){switch(n._tag){case"TypeLiteral":return n;case"Transformation":return i(n.to);case"Refinement":return i(n.from);case"Suspend":return i(n.f());default:return null}}function d(n,t){const e=i(n.ast);return e?e.propertySignatures.find(r=>r.name===t)??null:null}function y(n){const t=n.type;if(t._tag==="Union"&&n.isOptional){const e=t.types.find(r=>r._tag!=="UndefinedKeyword");if(e)return e}return t}function c(n,t,e){const r=d(n,t);if(!r)return;const u=e(r);if(o(u))return u.value;const f=y(r),s=e(f);if(o(s))return s.value;if(f!==r.type){const a=e(r.type);if(o(a))return a.value}}function m(n,t){return c(n,t,l)}function v(n,t){return c(n,t,p)}export{v as a,m as g};
|
package/dist/preview/index.html
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
`--primary`, the primary button variant renders as transparent. */
|
|
11
11
|
body { --primary: #009689; }
|
|
12
12
|
</style>
|
|
13
|
-
<script type="module" crossorigin src="./assets/index-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
13
|
+
<script type="module" crossorigin src="./assets/index-Cyjm-GKs.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="./assets/index-D0eGXK5P.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="app"></div>
|
|
@@ -14,7 +14,7 @@ import { Markdown } from "../../../../ui/markdown";
|
|
|
14
14
|
import { BREADCRUMB_EXTENSION_KEY } from "../../../../config/breadcrumb-extension";
|
|
15
15
|
import { SIDEBAR_TAKEOVER_KEY } from "../../../../sidebar-takeover";
|
|
16
16
|
import { lookupFindBlock } from "../../../../config/utils/block-ref-cache";
|
|
17
|
-
import { useSlotEditor } from "../../../../config/use-editor";
|
|
17
|
+
import { useSlotEditor, useSlotClipboard } from "../../../../config/use-editor";
|
|
18
18
|
import { getStructFieldDescription, getStructFieldTitle } from "../../../schema";
|
|
19
19
|
import { schema } from "./schema";
|
|
20
20
|
defineOptions({ name: "ShwfedModalLayoutActionConfig" });
|
|
@@ -35,6 +35,7 @@ const slot = computed({
|
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
const editor = useSlotEditor(slot, { configure: configure.value });
|
|
38
|
+
const { copy: copyBlocks, paste: pasteBlocks } = useSlotClipboard(editor);
|
|
38
39
|
function setModalTitle(next) {
|
|
39
40
|
value.value = { ...value.value, modalTitle: next };
|
|
40
41
|
}
|
|
@@ -311,6 +312,8 @@ onBeforeUnmount(() => {
|
|
|
311
312
|
@drill-down="onDrillDown"
|
|
312
313
|
@delete-item="deleteBlock"
|
|
313
314
|
@delete-items="deleteBlocks"
|
|
315
|
+
@copy-items="copyBlocks"
|
|
316
|
+
@paste="pasteBlocks"
|
|
314
317
|
/>
|
|
315
318
|
</div>
|
|
316
319
|
</div>
|
|
@@ -352,6 +355,8 @@ onBeforeUnmount(() => {
|
|
|
352
355
|
@drill-down="onDrillDown"
|
|
353
356
|
@delete-item="deleteBlock"
|
|
354
357
|
@delete-items="deleteBlocks"
|
|
358
|
+
@copy-items="copyBlocks"
|
|
359
|
+
@paste="pasteBlocks"
|
|
355
360
|
/>
|
|
356
361
|
</div>
|
|
357
362
|
</div>
|
|
@@ -2,6 +2,7 @@ import { type ActionsConfigValue, type RegistryItemValue, type RegistrySubItemVa
|
|
|
2
2
|
import { Environment } from '../../vendor/cel-js/lib/index.js';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
configure?: (env: Environment) => void;
|
|
5
|
+
hideSize?: boolean;
|
|
5
6
|
};
|
|
6
7
|
type __VLS_ModelProps = {
|
|
7
8
|
'modelValue': ActionsConfigValue;
|
|
@@ -49,7 +49,8 @@ import {
|
|
|
49
49
|
} from "../../share/event-bus";
|
|
50
50
|
defineOptions({ name: "ShwfedActionsConfig" });
|
|
51
51
|
const props = defineProps({
|
|
52
|
-
configure: { type: Function, required: false }
|
|
52
|
+
configure: { type: Function, required: false },
|
|
53
|
+
hideSize: { type: Boolean, required: false }
|
|
53
54
|
});
|
|
54
55
|
const config = defineModel("modelValue", { type: null, ...{ required: true } });
|
|
55
56
|
const configure = props.configure ?? (() => {
|
|
@@ -1202,7 +1203,10 @@ const newGroupZoneId = (insertIndex) => `new-group-${insertIndex}`;
|
|
|
1202
1203
|
<slot name="general-extra" />
|
|
1203
1204
|
|
|
1204
1205
|
<div class="grid grid-cols-2 gap-4">
|
|
1205
|
-
<Field
|
|
1206
|
+
<Field
|
|
1207
|
+
v-if="!hideSize"
|
|
1208
|
+
orientation="vertical"
|
|
1209
|
+
>
|
|
1206
1210
|
<FieldLabel class="text-xs text-zinc-500">
|
|
1207
1211
|
<template
|
|
1208
1212
|
v-if="generalFieldDescription('size')"
|
|
@@ -2,6 +2,7 @@ import { type ActionsConfigValue, type RegistryItemValue, type RegistrySubItemVa
|
|
|
2
2
|
import { Environment } from '../../vendor/cel-js/lib/index.js';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
configure?: (env: Environment) => void;
|
|
5
|
+
hideSize?: boolean;
|
|
5
6
|
};
|
|
6
7
|
type __VLS_ModelProps = {
|
|
7
8
|
'modelValue': ActionsConfigValue;
|
|
@@ -413,6 +413,13 @@ function confirmDelete() {
|
|
|
413
413
|
if (ids.length === 1) emit("delete-item", ids[0]);
|
|
414
414
|
else emitDeleteMany(ids);
|
|
415
415
|
}
|
|
416
|
+
const deleteConfirmRef = ref(null);
|
|
417
|
+
async function focusDeleteConfirm(event) {
|
|
418
|
+
event.preventDefault();
|
|
419
|
+
await nextTick();
|
|
420
|
+
await nextTick();
|
|
421
|
+
deleteConfirmRef.value?.$el?.focus({ preventScroll: true });
|
|
422
|
+
}
|
|
416
423
|
function hideItems(itemIds) {
|
|
417
424
|
const i = activeIndex.value;
|
|
418
425
|
const ls = layouts.value[i];
|
|
@@ -1501,7 +1508,10 @@ function onCanvasKeydown(e) {
|
|
|
1501
1508
|
deleteDialogOpen = open;
|
|
1502
1509
|
}"
|
|
1503
1510
|
>
|
|
1504
|
-
<AlertDialogContent
|
|
1511
|
+
<AlertDialogContent
|
|
1512
|
+
class="sm:px-12 sm:py-8 flex flex-col gap-12"
|
|
1513
|
+
@open-auto-focus="focusDeleteConfirm"
|
|
1514
|
+
>
|
|
1505
1515
|
<AlertDialogHeader class="sr-only">
|
|
1506
1516
|
<AlertDialogTitle>彻底删除{{ itemNoun }}</AlertDialogTitle>
|
|
1507
1517
|
<AlertDialogDescription>Confirmation dialog</AlertDialogDescription>
|
|
@@ -1518,7 +1528,10 @@ function onCanvasKeydown(e) {
|
|
|
1518
1528
|
<Icon icon="fluent:dismiss-20-regular" />
|
|
1519
1529
|
取消
|
|
1520
1530
|
</AlertDialogCancel>
|
|
1521
|
-
<AlertDialogAction
|
|
1531
|
+
<AlertDialogAction
|
|
1532
|
+
ref="deleteConfirmRef"
|
|
1533
|
+
@click="confirmDelete"
|
|
1534
|
+
>
|
|
1522
1535
|
<Icon icon="fluent:checkmark-20-regular" />
|
|
1523
1536
|
确认
|
|
1524
1537
|
</AlertDialogAction>
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "../../../../../composables/useTreeDnd";
|
|
21
21
|
import { BREADCRUMB_EXTENSION_KEY } from "../../../breadcrumb-extension";
|
|
22
22
|
import { findBlock } from "../../../utils/resolve";
|
|
23
|
-
import { useSlotEditor } from "../../../use-editor";
|
|
23
|
+
import { useSlotClipboard, useSlotEditor } from "../../../use-editor";
|
|
24
24
|
import { TabPaneMeta, getStructFieldDescription, getStructFieldTitle } from "./schema";
|
|
25
25
|
defineOptions({ name: "ShwfedBlockTabsConfig" });
|
|
26
26
|
const block = defineModel({ type: null, ...{ required: true } });
|
|
@@ -84,7 +84,8 @@ function buildShell(id) {
|
|
|
84
84
|
set value(next) {
|
|
85
85
|
editor.selectedBlockIds.value = next;
|
|
86
86
|
}
|
|
87
|
-
}
|
|
87
|
+
},
|
|
88
|
+
clipboard: useSlotClipboard(editor)
|
|
88
89
|
};
|
|
89
90
|
}
|
|
90
91
|
function ensureShell(id) {
|
|
@@ -554,6 +555,8 @@ function deleteBlocksFromActive(ids) {
|
|
|
554
555
|
@drill-down="onDrillDown"
|
|
555
556
|
@delete-item="deleteBlockFromActive"
|
|
556
557
|
@delete-items="deleteBlocksFromActive"
|
|
558
|
+
@copy-items="activeShell.clipboard.copy"
|
|
559
|
+
@paste="activeShell.clipboard.paste"
|
|
557
560
|
/>
|
|
558
561
|
</div>
|
|
559
562
|
</template>
|
|
@@ -23,7 +23,7 @@ import { Separator } from "../../../../ui/separator";
|
|
|
23
23
|
import { Switch } from "../../../../ui/switch";
|
|
24
24
|
import { BREADCRUMB_EXTENSION_KEY } from "../../../breadcrumb-extension";
|
|
25
25
|
import { findBlock } from "../../../utils/resolve";
|
|
26
|
-
import { useSlotEditor } from "../../../use-editor";
|
|
26
|
+
import { useSlotEditor, useSlotClipboard } from "../../../use-editor";
|
|
27
27
|
import {
|
|
28
28
|
BADGE_VARIANTS,
|
|
29
29
|
badgeSchema,
|
|
@@ -60,6 +60,7 @@ const slotAccessor = computed({
|
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
62
|
const editor = useSlotEditor(slotAccessor, { configure: configure.value });
|
|
63
|
+
const { copy: copyBlocks, paste: pasteBlocks } = useSlotClipboard(editor);
|
|
63
64
|
const viewMode = ref("general");
|
|
64
65
|
function selectContent() {
|
|
65
66
|
viewMode.value = "content";
|
|
@@ -539,6 +540,8 @@ if (breadcrumbExt) {
|
|
|
539
540
|
@drill-down="onDrillDown"
|
|
540
541
|
@delete-item="(id) => editor.removeBlock(id)"
|
|
541
542
|
@delete-items="(ids) => editor.removeBlocks(ids)"
|
|
543
|
+
@copy-items="copyBlocks"
|
|
544
|
+
@paste="pasteBlocks"
|
|
542
545
|
/>
|
|
543
546
|
</div>
|
|
544
547
|
</template>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed, provide, ref, toRef, useTemplateRef } from "vue";
|
|
3
3
|
import { Icon } from "@iconify/vue";
|
|
4
|
-
import { toast } from "vue-sonner";
|
|
5
|
-
import { readClip, reidFragment, writeClip } from "../../share/clipboard";
|
|
6
4
|
import BlockLayoutEditor from "../block-layout-editor/index.vue";
|
|
7
5
|
import LayoutsSidebar from "../block-layout-editor/sidebar.vue";
|
|
8
6
|
import LayoutMetaStrip from "../block-layout-editor/meta-strip.vue";
|
|
@@ -16,6 +14,7 @@ import { Separator } from "../ui/separator";
|
|
|
16
14
|
import { provideEventAncestor } from "../../share/event-bus";
|
|
17
15
|
import { BREADCRUMB_EXTENSION_KEY } from "./breadcrumb-extension";
|
|
18
16
|
import { PAGE_TARGET_ID, PageConfig, getStructFieldDescription, getStructFieldTitle, metadata as pageMetadata } from "./schema";
|
|
17
|
+
import { useSlotClipboard } from "./use-editor";
|
|
19
18
|
defineOptions({ name: "ShwfedConfigConfig" });
|
|
20
19
|
const props = defineProps({
|
|
21
20
|
state: { type: Object, required: true }
|
|
@@ -100,37 +99,7 @@ function addBlock(entry, options) {
|
|
|
100
99
|
function onDrillDown(id) {
|
|
101
100
|
props.state.onDrillDown(id);
|
|
102
101
|
}
|
|
103
|
-
|
|
104
|
-
const want = new Set(ids);
|
|
105
|
-
const items = props.state.blocks.value.filter((b) => want.has(b.id));
|
|
106
|
-
if (items.length === 0) return;
|
|
107
|
-
const ls = layouts.value[activeLayoutIndex.value];
|
|
108
|
-
const placements = {};
|
|
109
|
-
if (ls) {
|
|
110
|
-
for (const id of ids) {
|
|
111
|
-
const p = ls.layout.placements[id];
|
|
112
|
-
if (p) placements[id] = p;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (!await writeClip("block", items, placements)) {
|
|
116
|
-
toast.error("\u590D\u5236\u5931\u8D25");
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
toast.success(`\u5DF2\u590D\u5236 ${items.length} \u4E2A\u5757`);
|
|
120
|
-
}
|
|
121
|
-
async function pasteBlocks(target) {
|
|
122
|
-
const payload = await readClip();
|
|
123
|
-
if (!payload || payload.surface !== "block") return;
|
|
124
|
-
const { items, placements } = reidFragment(payload.items, payload.placements);
|
|
125
|
-
const pasted = items;
|
|
126
|
-
if (pasted.length === 0) return;
|
|
127
|
-
if (placements && Object.keys(placements).length > 0) {
|
|
128
|
-
props.state.addBlocksWithPlacements(pasted, placements, target);
|
|
129
|
-
} else {
|
|
130
|
-
props.state.addBlocks(pasted);
|
|
131
|
-
}
|
|
132
|
-
toast.success(`\u5DF2\u7C98\u8D34 ${pasted.length} \u4E2A\u5757`);
|
|
133
|
-
}
|
|
102
|
+
const { copy: copyBlocks, paste: pasteBlocks } = useSlotClipboard(props.state);
|
|
134
103
|
function updateActiveBlock(next) {
|
|
135
104
|
props.state.updateActiveBlock(next);
|
|
136
105
|
}
|
|
@@ -59,6 +59,25 @@ export interface SlotEditor {
|
|
|
59
59
|
configure: (env: Environment) => void;
|
|
60
60
|
}
|
|
61
61
|
export declare function useSlotEditor(slot: WritableComputedRef<SlotValue> | Ref<SlotValue>, options?: SlotEditorOptions): SlotEditor;
|
|
62
|
+
export interface SlotClipboardTarget {
|
|
63
|
+
blocks: ComputedRef<ReadonlyArray<BlockValue>>;
|
|
64
|
+
layouts: {
|
|
65
|
+
value: LayoutSetValue[];
|
|
66
|
+
};
|
|
67
|
+
activeLayoutIndex: Ref<number>;
|
|
68
|
+
addBlocks: (blocks: ReadonlyArray<BlockValue>) => void;
|
|
69
|
+
addBlocksWithPlacements: (blocks: ReadonlyArray<BlockValue>, placements: Readonly<Record<string, PlacementValue>>, target: {
|
|
70
|
+
x: number;
|
|
71
|
+
y: number;
|
|
72
|
+
} | null) => void;
|
|
73
|
+
}
|
|
74
|
+
export declare function useSlotClipboard(target: SlotClipboardTarget): {
|
|
75
|
+
copy: (ids: string[]) => Promise<void>;
|
|
76
|
+
paste: (anchor: {
|
|
77
|
+
x: number;
|
|
78
|
+
y: number;
|
|
79
|
+
} | null) => Promise<void>;
|
|
80
|
+
};
|
|
62
81
|
export interface ConfigEditorState {
|
|
63
82
|
draft: Ref<PageConfigValue>;
|
|
64
83
|
stack: Ref<StackEntry[]>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
import { computed, ref, shallowRef, watch } from "vue";
|
|
3
|
+
import { toast } from "vue-sonner";
|
|
3
4
|
import { findFreePlacement, normalizeLayoutSet, placeGroupAt } from "../../share/layout.js";
|
|
5
|
+
import { readClip, reidFragment, writeClip } from "../../share/clipboard.js";
|
|
4
6
|
import { PageConfig } from "./schema.js";
|
|
5
7
|
import { BLOCKS, findBlock } from "./utils/resolve.js";
|
|
6
8
|
import { formatValidationError } from "./utils/validation-error.js";
|
|
@@ -180,6 +182,40 @@ export function useSlotEditor(slot, options = {}) {
|
|
|
180
182
|
configure
|
|
181
183
|
};
|
|
182
184
|
}
|
|
185
|
+
export function useSlotClipboard(target) {
|
|
186
|
+
async function copy(ids) {
|
|
187
|
+
const want = new Set(ids);
|
|
188
|
+
const items = target.blocks.value.filter((b) => want.has(b.id));
|
|
189
|
+
if (items.length === 0) return;
|
|
190
|
+
const ls = target.layouts.value[target.activeLayoutIndex.value];
|
|
191
|
+
const placements = {};
|
|
192
|
+
if (ls) {
|
|
193
|
+
for (const id of ids) {
|
|
194
|
+
const p = ls.layout.placements[id];
|
|
195
|
+
if (p) placements[id] = p;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (!await writeClip("block", items, placements)) {
|
|
199
|
+
toast.error("\u590D\u5236\u5931\u8D25");
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
toast.success(`\u5DF2\u590D\u5236 ${items.length} \u4E2A\u5757`);
|
|
203
|
+
}
|
|
204
|
+
async function paste(anchor) {
|
|
205
|
+
const payload = await readClip();
|
|
206
|
+
if (!payload || payload.surface !== "block") return;
|
|
207
|
+
const { items, placements } = reidFragment(payload.items, payload.placements);
|
|
208
|
+
const pasted = items;
|
|
209
|
+
if (pasted.length === 0) return;
|
|
210
|
+
if (placements && Object.keys(placements).length > 0) {
|
|
211
|
+
target.addBlocksWithPlacements(pasted, placements, anchor);
|
|
212
|
+
} else {
|
|
213
|
+
target.addBlocks(pasted);
|
|
214
|
+
}
|
|
215
|
+
toast.success(`\u5DF2\u7C98\u8D34 ${pasted.length} \u4E2A\u5757`);
|
|
216
|
+
}
|
|
217
|
+
return { copy, paste };
|
|
218
|
+
}
|
|
183
219
|
export function useConfigEditor(model, options = {}) {
|
|
184
220
|
const configure = options.configure ?? (() => {
|
|
185
221
|
});
|
package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.js
CHANGED
|
@@ -7,7 +7,7 @@ export const metadata = {
|
|
|
7
7
|
name: "Markdown",
|
|
8
8
|
icon: "fluent:markdown-20-regular",
|
|
9
9
|
w: { initial: 8, min: 2, max: Infinity },
|
|
10
|
-
h: { initial: 2, min: 2, max: Infinity }
|
|
10
|
+
h: { initial: 2, min: 2, max: Infinity, grow: true }
|
|
11
11
|
};
|
|
12
12
|
export function schema(configure) {
|
|
13
13
|
return Schema.Struct({
|
package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.d.vue.ts
CHANGED
|
@@ -4,6 +4,7 @@ type __VLS_ModelProps = {
|
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
6
|
"update:modelValue": (value: {
|
|
7
|
+
readonly size: "default" | "sm" | "xs";
|
|
7
8
|
readonly type: "com.shwfed.form.field.actions";
|
|
8
9
|
readonly style?: string | undefined;
|
|
9
10
|
readonly id: string;
|
|
@@ -88,6 +89,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
88
89
|
}) => any;
|
|
89
90
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
90
91
|
"onUpdate:modelValue"?: ((value: {
|
|
92
|
+
readonly size: "default" | "sm" | "xs";
|
|
91
93
|
readonly type: "com.shwfed.form.field.actions";
|
|
92
94
|
readonly style?: string | undefined;
|
|
93
95
|
readonly id: string;
|
package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue
CHANGED
|
@@ -24,17 +24,18 @@ onBeforeUnmount(() => {
|
|
|
24
24
|
const actionValue = computed({
|
|
25
25
|
get: () => ({
|
|
26
26
|
kind: "shwfed.component.action",
|
|
27
|
-
size: "default",
|
|
27
|
+
size: value.value.size ?? "default",
|
|
28
28
|
gap: value.value.gap ?? 4,
|
|
29
29
|
style: value.value.style,
|
|
30
30
|
groups: value.value.groups ?? [],
|
|
31
31
|
items: value.value.items ?? []
|
|
32
32
|
}),
|
|
33
33
|
set: (next) => {
|
|
34
|
-
const { gap, style, groups, items } = next;
|
|
34
|
+
const { size, gap, style, groups, items } = next;
|
|
35
35
|
const { style: _drop, ...rest } = value.value;
|
|
36
36
|
value.value = {
|
|
37
37
|
...rest,
|
|
38
|
+
size,
|
|
38
39
|
gap,
|
|
39
40
|
groups,
|
|
40
41
|
items,
|
package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ type __VLS_ModelProps = {
|
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
6
|
"update:modelValue": (value: {
|
|
7
|
+
readonly size: "default" | "sm" | "xs";
|
|
7
8
|
readonly type: "com.shwfed.form.field.actions";
|
|
8
9
|
readonly style?: string | undefined;
|
|
9
10
|
readonly id: string;
|
|
@@ -88,6 +89,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
88
89
|
}) => any;
|
|
89
90
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
90
91
|
"onUpdate:modelValue"?: ((value: {
|
|
92
|
+
readonly size: "default" | "sm" | "xs";
|
|
91
93
|
readonly type: "com.shwfed.form.field.actions";
|
|
92
94
|
readonly style?: string | undefined;
|
|
93
95
|
readonly id: string;
|
package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/runtime.vue
CHANGED
|
@@ -8,7 +8,7 @@ const props = defineProps({
|
|
|
8
8
|
});
|
|
9
9
|
const actionsConfig = computed(() => ({
|
|
10
10
|
kind: "shwfed.component.action",
|
|
11
|
-
size: "default",
|
|
11
|
+
size: props.config.size ?? "default",
|
|
12
12
|
gap: props.config.gap,
|
|
13
13
|
style: props.config.style,
|
|
14
14
|
groups: props.config.groups.map((group) => ({
|
package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts
CHANGED
|
@@ -141,6 +141,9 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
|
|
|
141
141
|
}, never>>, {
|
|
142
142
|
default: () => never[];
|
|
143
143
|
}>;
|
|
144
|
+
size: Schema.optionalWith<Schema.Literal<["default", "sm", "xs"]>, {
|
|
145
|
+
default: () => "default";
|
|
146
|
+
}>;
|
|
144
147
|
gap: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.Number>>, {
|
|
145
148
|
default: () => number;
|
|
146
149
|
}>;
|
package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.js
CHANGED
|
@@ -14,7 +14,7 @@ export const metadata = {
|
|
|
14
14
|
};
|
|
15
15
|
export function schema(configure) {
|
|
16
16
|
const { fields: actionFields } = ActionSchemaFields(configure);
|
|
17
|
-
const {
|
|
17
|
+
const { groups, items, ...rest } = actionFields;
|
|
18
18
|
return Schema.Struct({
|
|
19
19
|
type: Schema.Literal(type),
|
|
20
20
|
compatibilityDate: Schema.Literal(compatibilityDate),
|
package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts
CHANGED
|
@@ -42,9 +42,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
42
42
|
readonly mode: "formula" | "prefill";
|
|
43
43
|
readonly expression: string;
|
|
44
44
|
} | undefined;
|
|
45
|
-
readonly precision?: number | undefined;
|
|
46
|
-
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
47
|
-
readonly valueAsString?: boolean | undefined;
|
|
48
45
|
readonly validations?: readonly {
|
|
49
46
|
readonly message: readonly [{
|
|
50
47
|
readonly locale: "zh";
|
|
@@ -56,6 +53,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
56
53
|
readonly warning?: boolean | undefined;
|
|
57
54
|
readonly when: string;
|
|
58
55
|
}[] | undefined;
|
|
56
|
+
readonly precision?: number | undefined;
|
|
57
|
+
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
58
|
+
readonly valueAsString?: boolean | undefined;
|
|
59
59
|
}) => any;
|
|
60
60
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
61
61
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -97,9 +97,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
97
97
|
readonly mode: "formula" | "prefill";
|
|
98
98
|
readonly expression: string;
|
|
99
99
|
} | undefined;
|
|
100
|
-
readonly precision?: number | undefined;
|
|
101
|
-
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
102
|
-
readonly valueAsString?: boolean | undefined;
|
|
103
100
|
readonly validations?: readonly {
|
|
104
101
|
readonly message: readonly [{
|
|
105
102
|
readonly locale: "zh";
|
|
@@ -111,6 +108,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
111
108
|
readonly warning?: boolean | undefined;
|
|
112
109
|
readonly when: string;
|
|
113
110
|
}[] | undefined;
|
|
111
|
+
readonly precision?: number | undefined;
|
|
112
|
+
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
113
|
+
readonly valueAsString?: boolean | undefined;
|
|
114
114
|
}) => any) | undefined;
|
|
115
115
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
116
116
|
declare const _default: typeof __VLS_export;
|
package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts
CHANGED
|
@@ -42,9 +42,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
42
42
|
readonly mode: "formula" | "prefill";
|
|
43
43
|
readonly expression: string;
|
|
44
44
|
} | undefined;
|
|
45
|
-
readonly precision?: number | undefined;
|
|
46
|
-
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
47
|
-
readonly valueAsString?: boolean | undefined;
|
|
48
45
|
readonly validations?: readonly {
|
|
49
46
|
readonly message: readonly [{
|
|
50
47
|
readonly locale: "zh";
|
|
@@ -56,6 +53,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
56
53
|
readonly warning?: boolean | undefined;
|
|
57
54
|
readonly when: string;
|
|
58
55
|
}[] | undefined;
|
|
56
|
+
readonly precision?: number | undefined;
|
|
57
|
+
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
58
|
+
readonly valueAsString?: boolean | undefined;
|
|
59
59
|
}) => any;
|
|
60
60
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
61
61
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -97,9 +97,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
97
97
|
readonly mode: "formula" | "prefill";
|
|
98
98
|
readonly expression: string;
|
|
99
99
|
} | undefined;
|
|
100
|
-
readonly precision?: number | undefined;
|
|
101
|
-
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
102
|
-
readonly valueAsString?: boolean | undefined;
|
|
103
100
|
readonly validations?: readonly {
|
|
104
101
|
readonly message: readonly [{
|
|
105
102
|
readonly locale: "zh";
|
|
@@ -111,6 +108,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
111
108
|
readonly warning?: boolean | undefined;
|
|
112
109
|
readonly when: string;
|
|
113
110
|
}[] | undefined;
|
|
111
|
+
readonly precision?: number | undefined;
|
|
112
|
+
readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
|
|
113
|
+
readonly valueAsString?: boolean | undefined;
|
|
114
114
|
}) => any) | undefined;
|
|
115
115
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
116
116
|
declare const _default: typeof __VLS_export;
|