@shwfed/config 2.9.13 → 2.10.0
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 +1553 -1112
- package/dist/module.json +1 -1
- package/dist/preview/assets/{FieldGroup.vue_vue_type_script_setup_true_lang-DZ_H-YRf.js → FieldGroup.vue_vue_type_script_setup_true_lang-CCaOWk_7.js} +1 -1
- package/dist/preview/assets/{badge-DoNuZh0A.js → badge-D9_7atSJ.js} +1 -1
- package/dist/preview/assets/{config-DTEJOYqA.js → config-B2d8SiPi.js} +1 -1
- package/dist/preview/assets/{config-D4rFsdGO.js → config-BLEovXei.js} +1 -1
- package/dist/preview/assets/{config-BrNZsgV0.js → config-Bf5Vckj3.js} +1 -1
- package/dist/preview/assets/{config-ugF_BOWz.js → config-Bk2VSNeu.js} +1 -1
- package/dist/preview/assets/{config-Cla0Qngs.js → config-C8lCItmz.js} +1 -1
- package/dist/preview/assets/{config-BDDuqAht.js → config-C9WPOoA7.js} +1 -1
- package/dist/preview/assets/{config-YGBoSq6x.js → config-CNKb25Qo.js} +1 -1
- package/dist/preview/assets/{config-CLsjWZz2.js → config-CQrqVV1U.js} +1 -1
- package/dist/preview/assets/{config-CIYui2J_.js → config-DWA385pD.js} +1 -1
- package/dist/preview/assets/{config-C6Cm7DWx.js → config-DYxMKhCU.js} +1 -1
- package/dist/preview/assets/{config-Bhc_Vu67.js → config-DZlaJUlF.js} +1 -1
- package/dist/preview/assets/{config-tdZMdIN3.js → config-DyPl6K2G.js} +1 -1
- package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-CgNXv26P.js → definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.js} +1 -1
- package/dist/preview/assets/index-7BE56IYF.js +739 -0
- package/dist/preview/assets/{index-CzzwZ7bp.css → index-BnJ5p1Mx.css} +1 -1
- package/dist/preview/assets/index-Bwv0Yz_L.js +1 -0
- package/dist/preview/assets/{index-C3FdepLE.js → index-CXOEVGFP.js} +1 -1
- package/dist/preview/assets/{item-DecwNzYq.js → item-DCVX69_o.js} +1 -1
- package/dist/preview/assets/{runtime-C3dmOj9s.js → runtime-BD1A-g1h.js} +1 -1
- package/dist/preview/assets/{runtime-C8Ufkmiw.js → runtime-BNk4EliL.js} +1 -1
- package/dist/preview/assets/{runtime-BK7KNEyN.js → runtime-BO-KY3T_.js} +1 -1
- package/dist/preview/assets/{runtime-DZ_AwduQ.js → runtime-BsNSI1XP.js} +1 -1
- package/dist/preview/assets/{runtime-blb90Fhv.js → runtime-Cbc5NH57.js} +1 -1
- package/dist/preview/assets/{runtime-CYpXd7Pq.js → runtime-DEWGIyvr.js} +1 -1
- package/dist/preview/assets/{runtime-CjPtRd-T.js → runtime-DJ9ElxWB.js} +1 -1
- package/dist/preview/assets/{runtime-C5hqSHRW.js → runtime-DSfMvph3.js} +1 -1
- package/dist/preview/assets/{runtime-DSUjc0Pk.js → runtime-O6MNC3GA.js} +1 -1
- package/dist/preview/assets/{runtime-DtP98Km5.js → runtime-r1wbrr4k.js} +1 -1
- package/dist/preview/assets/{schema-meta-DWUHNP8E.js → schema-meta-ovcuERKg.js} +1 -1
- package/dist/preview/index.html +2 -2
- package/dist/runtime/components/actions/components/triggers-field.vue +12 -12
- package/dist/runtime/components/config/use-editor.js +1 -1
- package/dist/runtime/components/config/utils/validation-error.d.ts +1 -1
- package/dist/runtime/components/config/utils/validation-error.js +40 -7
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/runtime.vue +3 -3
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +6 -5
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +6 -5
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/runtime.vue +10 -8
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +8 -6
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +10 -8
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +8 -6
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +10 -8
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +7 -5
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +8 -6
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +7 -6
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +9 -7
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +4 -3
- package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/runtime.vue +8 -6
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +5 -4
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +12 -10
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +5 -4
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +9 -7
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +9 -7
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.vue +13 -15
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/runtime.vue +8 -6
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/runtime.vue +10 -8
- package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/runtime.vue +10 -8
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/runtime.vue +13 -14
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/runtime.vue +13 -14
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +14 -12
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +14 -12
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +13 -14
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +13 -14
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +13 -15
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +15 -16
- package/dist/runtime/components/form/fields/2026-06-09/com.shwfed.form.field.upload/runtime.vue +8 -7
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/config.d.vue.ts +175 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/config.vue +782 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/config.vue.d.ts +175 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/runtime.d.vue.ts +8 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/runtime.vue +413 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/runtime.vue.d.ts +8 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/schema.d.ts +214 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.multi/schema.js +191 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/config.d.vue.ts +175 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/config.vue +782 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/config.vue.d.ts +175 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/runtime.d.vue.ts +8 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/runtime.vue +426 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/runtime.vue.d.ts +8 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/schema.d.ts +214 -0
- package/dist/runtime/components/form/fields/2026-06-14/com.shwfed.form.field.combobox.single/schema.js +191 -0
- package/dist/runtime/components/form/fields/2026-06-14/combobox-migrate.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-06-14/combobox-migrate.js +36 -0
- package/dist/runtime/components/form/utils/state.d.ts +11 -0
- package/dist/runtime/components/form/utils/state.js +5 -0
- package/dist/runtime/components/ui/input-group/InputGroupNumberField.vue +1 -1
- package/dist/runtime/share/expression.js +1 -0
- package/package.json +1 -1
- package/dist/preview/assets/index-B-QhiviS.js +0 -1
- package/dist/preview/assets/index-CWMhB7z4.js +0 -735
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ba as e}from"./index-7BE56IYF.js";import{bb as f,bc as r,bd as s}from"./index-7BE56IYF.js";export{f as TableConfig,r as createTableConfig,e as default,s as getColumnTechnicalKey};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as H,P as et,Q as it,o as nt,R as st,S as at,b as D,A as P,B as j,x as rt,T as ot,U as W,V as lt,y as ct,W as z,X as ht}from"./index-CWMhB7z4.js";const dt=String.raw,pt=(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0})(),ut=typeof CSS<"u"&&CSS.supports&&CSS.supports("line-height","mod(1,1)"),k=typeof matchMedia<"u"?matchMedia("(prefers-reduced-motion: reduce)"):null,C="--_number-flow-d-opacity",V="--_number-flow-d-width",S="--_number-flow-dx",L="--_number-flow-d",mt=(()=>{try{return CSS.registerProperty({name:C,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:S,syntax:"<length>",inherits:!0,initialValue:"0px"}),CSS.registerProperty({name:V,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:L,syntax:"<number>",inherits:!0,initialValue:"0"}),!0}catch{return!1}})(),U="round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px)",v=`calc(${U} * 2)`,R="var(--number-flow-mask-width, 0.5em)",y=`calc(${R} / var(--scale-x))`,$="#000 0, transparent 71%",ft=dt`:host{display:inline-block;direction:ltr;white-space:nowrap;isolation:isolate;line-height:1}.number,.number__inner{display:inline-block;transform-origin:left top}:host([data-will-change]) :is(.number,.number__inner,.section,.digit,.digit__num,.symbol){will-change:transform}.number{--scale-x:calc(1 + var(${V}) / var(--width));transform:translateX(var(${S})) scaleX(var(--scale-x));margin:0 calc(-1 * ${R});position:relative;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 ${y},#000 calc(100% - ${y}),transparent ),linear-gradient(to bottom,transparent 0,#000 ${v},#000 calc(100% - ${v}),transparent 100% ),radial-gradient(at bottom right,${$}),radial-gradient(at bottom left,${$}),radial-gradient(at top left,${$}),radial-gradient(at top right,${$});-webkit-mask-size:100% calc(100% - ${v} * 2),calc(100% - ${y} * 2) 100%,${y} ${v},${y} ${v},${y} ${v},${y} ${v};-webkit-mask-position:center,center,top left,top right,bottom right,bottom left;-webkit-mask-repeat:no-repeat}.number__inner{padding:${U} ${R};transform:scaleX(calc(1 / var(--scale-x))) translateX(calc(-1 * var(${S})))}:host > :not(.number){z-index:5}.section,.symbol{display:inline-block;position:relative;isolation:isolate}.section::after{content:'\200b';display:inline-block}.section--justify-left{transform-origin:center left}.section--justify-right{transform-origin:center right}.section > [inert],.symbol > [inert]{margin:0 !important;position:absolute !important;z-index:-1}.digit{display:inline-block;position:relative;--c:var(--current) + var(${L})}.digit__num,.number .section::after{padding:${U} 0}.digit__num{display:inline-block;--offset-raw:mod(var(--length) + var(--n) - mod(var(--c),var(--length)),var(--length));--offset:calc( var(--offset-raw) - var(--length) * round(down,var(--offset-raw) / (var(--length) / 2),1) );--y:clamp(-100%,var(--offset) * 100%,100%);transform:translateY(var(--y))}.digit__num[inert]{position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(var(--y))}.digit:not(.is-spinning) .digit__num[inert]{display:none}.symbol__value{display:inline-block;mix-blend-mode:plus-lighter;white-space:pre}.section--justify-left .symbol > [inert]{left:0}.section--justify-right .symbol > [inert]{right:0}.animate-presence{opacity:calc(1 + var(${C}))}`,gt=HTMLElement,vt=(s,t)=>s==null?t:t==null?s:Math.max(s,t),A=new WeakMap,jt={onUpdate(s,t,e){if(A.set(e,void 0),!e.computedTrend)return;const i=t.integer.concat(t.fraction).filter(o=>o.type==="integer"||o.type==="fraction"),n=s.integer.concat(s.fraction).filter(o=>o.type==="integer"||o.type==="fraction"),r=i.find(o=>!n.find(c=>c.pos===o.pos&&c.value===o.value)),a=n.find(o=>!i.find(c=>o.pos===c.pos&&o.value===c.value));A.set(e,vt(r?.pos,a?.pos))},getDelta(s,t,e){const i=s-t,n=A.get(e.flow);if(!i&&n!=null&&n>=e.pos)return e.length*e.flow.computedTrend}},g=(s,t,e)=>{const i=document.createElement(s),[n,r]=Array.isArray(t)?[void 0,t]:[t,e];return n&&Object.assign(i,n),r?.forEach(a=>i.appendChild(a)),i},yt=(s,t)=>{var e;return t==="left"?s.offsetLeft:(((e=s.offsetParent instanceof HTMLElement?s.offsetParent:null)==null?void 0:e.offsetWidth)??0)-s.offsetWidth-s.offsetLeft},wt=s=>s.offsetWidth>0&&s.offsetHeight>0,_t=(s,t)=>{!customElements.get(s)&&customElements.define(s,t)};function bt(s,t,{reverse:e=!1}={}){const i=s.length;for(let n=e?i-1:0;e?n>=0:n<i;e?n--:n++)t(s[n],n)}function $t(s,t,e,i){const n=t.formatToParts(s);e&&n.unshift({type:"prefix",value:e}),i&&n.push({type:"suffix",value:i});const r=[],a=[],o=[],c=[],l={},d=p=>`${p}:${l[p]=(l[p]??-1)+1}`;let m="",_=!1,b=!1;for(const p of n){m+=p.value;const h=p.type==="minusSign"||p.type==="plusSign"?"sign":p.type;h==="integer"?(_=!0,a.push(...p.value.split("").map(T=>({type:h,value:parseInt(T)})))):h==="group"?a.push({type:h,value:p.value}):h==="decimal"?(b=!0,o.push({type:h,value:p.value,key:d(h)})):h==="fraction"?o.push(...p.value.split("").map(T=>({type:h,value:parseInt(T),key:d(h),pos:-1-l[h]}))):(_||b?c:r).push({type:h,value:p.value,key:d(h)})}const F=[];for(let p=a.length-1;p>=0;p--){const h=a[p];F.unshift(h.type==="integer"?{...h,key:d(h.type),pos:l[h.type]}:{...h,key:d(h.type)})}return{pre:r,integer:F,fraction:o,post:c,valueAsString:m,value:typeof s=="string"?parseFloat(s):s}}const Y=ut&&pt&&mt;let u=class extends gt{constructor(){super(),this.created=!1,this.batched=!1;const{animated:t,...e}=this.constructor.defaultProps;this._animated=this.computedAnimated=t,Object.assign(this,e)}get animated(){return this._animated}set animated(t){var e;this.animated!==t&&(this._animated=t,(e=this.shadowRoot)==null||e.getAnimations().forEach(i=>i.finish()))}set data(t){var e,i;if(t==null)return;const{pre:n,integer:r,fraction:a,post:o,value:c}=t;if(this.created){const l=this._data;this._data=t,this.computedTrend=typeof this.trend=="function"?this.trend(l.value,c):this.trend,this.computedAnimated=Y&&this._animated&&(!this.respectMotionPreference||!((e=k)!=null&&e.matches))&&wt(this)&&this.ownerDocument.visibilityState==="visible",(i=this.plugins)==null||i.forEach(d=>{var m;return(m=d.onUpdate)==null?void 0:m.call(d,t,l,this)}),this.batched||this.willUpdate(),this._pre.update(n),this._num.update({integer:r,fraction:a}),this._post.update(o),this.batched||this.didUpdate()}else{this._data=t,this.attachShadow({mode:"open"});try{this._internals??(this._internals=this.attachInternals()),this._internals.role="img"}catch{}const l=document.createElement("style");this.nonce&&(l.nonce=this.nonce),l.textContent=ft,this.shadowRoot.appendChild(l),this._pre=new O(this,n,{justify:"right",part:"left"}),this.shadowRoot.appendChild(this._pre.el),this._num=new xt(this,r,a),this.shadowRoot.appendChild(this._num.el),this._post=new O(this,o,{justify:"left",part:"right"}),this.shadowRoot.appendChild(this._post.el),this.created=!0}try{this._internals.ariaLabel=t.valueAsString}catch{}}willUpdate(){this._pre.willUpdate(),this._num.willUpdate(),this._post.willUpdate()}didUpdate(){if(!this.computedAnimated)return;this._abortAnimationsFinish?this._abortAnimationsFinish.abort():this.dispatchEvent(new Event("animationsstart")),this._pre.didUpdate(),this._num.didUpdate(),this._post.didUpdate();const t=new AbortController;Promise.all(this.shadowRoot.getAnimations().map(e=>e.finished)).then(()=>{t.signal.aborted||(this.dispatchEvent(new Event("animationsfinish")),this._abortAnimationsFinish=void 0)}),this._abortAnimationsFinish=t}};u.defaultProps={transformTiming:{duration:900,easing:"linear(0,.005,.019,.039,.066,.096,.129,.165,.202,.24,.278,.316,.354,.39,.426,.461,.494,.526,.557,.586,.614,.64,.665,.689,.711,.731,.751,.769,.786,.802,.817,.831,.844,.856,.867,.877,.887,.896,.904,.912,.919,.925,.931,.937,.942,.947,.951,.955,.959,.962,.965,.968,.971,.973,.976,.978,.98,.981,.983,.984,.986,.987,.988,.989,.99,.991,.992,.992,.993,.994,.994,.995,.995,.996,.996,.9963,.9967,.9969,.9972,.9975,.9977,.9979,.9981,.9982,.9984,.9985,.9987,.9988,.9989,1)"},spinTiming:void 0,opacityTiming:{duration:450,easing:"ease-out"},animated:!0,trend:(s,t)=>Math.sign(t-s),respectMotionPreference:!0,plugins:void 0,digits:void 0};class xt{constructor(t,e,i,{className:n,...r}={}){this.flow=t,this._integer=new I(t,e,{justify:"right",part:"integer"}),this._fraction=new I(t,i,{justify:"left",part:"fraction"}),this._inner=g("span",{className:"number__inner"},[this._integer.el,this._fraction.el]),this.el=g("span",{...r,part:"number",className:`number ${n??""}`},[this._inner])}willUpdate(){this._prevWidth=this.el.offsetWidth,this._prevLeft=this.el.getBoundingClientRect().left,this._integer.willUpdate(),this._fraction.willUpdate()}update({integer:t,fraction:e}){this._integer.update(t),this._fraction.update(e)}didUpdate(){const t=this.el.getBoundingClientRect();this._integer.didUpdate(),this._fraction.didUpdate();const e=this._prevLeft-t.left,i=this.el.offsetWidth,n=this._prevWidth-i;this.el.style.setProperty("--width",String(i)),this.el.animate({[S]:[`${e}px`,"0px"],[V]:[n,0]},{...this.flow.transformTiming,composite:"accumulate"})}}let G=class{constructor(t,e,{justify:i,className:n,...r},a){this.flow=t,this.children=new Map,this.onCharRemove=c=>()=>{this.children.delete(c)},this.justify=i;const o=e.map(c=>this.addChar(c).el);this.el=g("span",{...r,className:`section section--justify-${i} ${n??""}`},a?a(o):o)}addChar(t,{startDigitsAtZero:e=!1,...i}={}){const n=t.type==="integer"||t.type==="fraction"?new q(this,t.type,e?0:t.value,t.pos,{...i,onRemove:this.onCharRemove(t.key)}):new kt(this,t.type,t.value,{...i,onRemove:this.onCharRemove(t.key)});return this.children.set(t.key,n),n}unpop(t){t.el.removeAttribute("inert"),t.el.style.top="",t.el.style[this.justify]=""}pop(t){t.forEach(e=>{e.el.style.top=`${e.el.offsetTop}px`,e.el.style[this.justify]=`${yt(e.el,this.justify)}px`}),t.forEach(e=>{e.el.setAttribute("inert",""),e.present=!1})}addNewAndUpdateExisting(t){const e=new Map,i=new Map,n=this.justify==="left",r=n?"prepend":"append";if(bt(t,a=>{let o;this.children.has(a.key)?(o=this.children.get(a.key),i.set(a,o),this.unpop(o),o.present=!0):(o=this.addChar(a,{startDigitsAtZero:!0,animateIn:!0}),e.set(a,o)),this.el[r](o.el)},{reverse:n}),this.flow.computedAnimated){const a=this.el.getBoundingClientRect();e.forEach(o=>{o.willUpdate(a)})}e.forEach((a,o)=>{a.update(o.value)}),i.forEach((a,o)=>{a.update(o.value)})}willUpdate(){const t=this.el.getBoundingClientRect();this._prevOffset=t[this.justify],this.children.forEach(e=>e.willUpdate(t))}didUpdate(){const t=this.el.getBoundingClientRect();this.children.forEach(n=>n.didUpdate(t));const e=t[this.justify],i=this._prevOffset-e;i&&this.children.size&&this.el.animate({transform:[`translateX(${i}px)`,"none"]},{...this.flow.transformTiming,composite:"accumulate"})}};class I extends G{update(t){const e=new Map;this.children.forEach((i,n)=>{t.find(r=>r.key===n)||e.set(n,i),this.unpop(i)}),this.addNewAndUpdateExisting(t),e.forEach(i=>{i instanceof q&&i.update(0)}),this.pop(e)}}class O extends G{update(t){const e=new Map;this.children.forEach((i,n)=>{t.find(r=>r.key===n)||e.set(n,i)}),this.pop(e),this.addNewAndUpdateExisting(t)}}class M{constructor(t,e,{onRemove:i,animateIn:n=!1}={}){this.flow=t,this.el=e,this._present=!0,this._remove=()=>{var r;this.el.remove(),(r=this._onRemove)==null||r.call(this)},this.el.classList.add("animate-presence"),this.flow.computedAnimated&&n&&this.el.animate({[C]:[-.9999,0]},{...this.flow.opacityTiming,composite:"accumulate"}),this._onRemove=i}get present(){return this._present}set present(t){if(this._present!==t){if(this._present=t,t?this.el.removeAttribute("inert"):this.el.setAttribute("inert",""),!this.flow.computedAnimated){t||this._remove();return}this.el.style.setProperty("--_number-flow-d-opacity",t?"0":"-.999"),this.el.animate({[C]:t?[-.9999,0]:[.999,0]},{...this.flow.opacityTiming,composite:"accumulate"}),t?this.flow.removeEventListener("animationsfinish",this._remove):this.flow.addEventListener("animationsfinish",this._remove,{once:!0})}}}class Z extends M{constructor(t,e,i,n){super(t.flow,i,n),this.section=t,this.value=e,this.el=i}}class q extends Z{constructor(t,e,i,n,r){var a,o;const c=(((o=(a=t.flow.digits)==null?void 0:a[n])==null?void 0:o.max)??9)+1,l=Array.from({length:c}).map((m,_)=>{const b=g("span",{className:"digit__num"},[document.createTextNode(String(_))]);return _!==i&&b.setAttribute("inert",""),b.style.setProperty("--n",String(_)),b}),d=g("span",{part:`digit ${e}-digit`,className:"digit"},l);d.style.setProperty("--current",String(i)),d.style.setProperty("--length",String(c)),super(t,i,d,r),this.pos=n,this._onAnimationsFinish=()=>{this.el.classList.remove("is-spinning")},this._numbers=l,this.length=c}willUpdate(t){const e=this.el.getBoundingClientRect();this._prevValue=this.value;const i=e[this.section.justify]-t[this.section.justify],n=e.width/2;this._prevCenter=this.section.justify==="left"?i+n:i-n}update(t){this.el.style.setProperty("--current",String(t)),this._numbers.forEach((e,i)=>i===t?e.removeAttribute("inert"):e.setAttribute("inert","")),this.value=t}didUpdate(t){const e=this.el.getBoundingClientRect(),i=e[this.section.justify]-t[this.section.justify],n=e.width/2,r=this.section.justify==="left"?i+n:i-n,a=this._prevCenter-r;a&&this.el.animate({transform:[`translateX(${a}px)`,"none"]},{...this.flow.transformTiming,composite:"accumulate"});const o=this.getDelta();o&&(this.el.classList.add("is-spinning"),this.el.animate({[L]:[-o,0]},{...this.flow.spinTiming??this.flow.transformTiming,composite:"accumulate"}),this.flow.addEventListener("animationsfinish",this._onAnimationsFinish,{once:!0}))}getDelta(){var t;if(this.flow.plugins)for(const n of this.flow.plugins){const r=(t=n.getDelta)==null?void 0:t.call(n,this.value,this._prevValue,this);if(r!=null)return r}const e=this.value-this._prevValue,i=this.flow.computedTrend||Math.sign(e);return i<0&&this.value>this._prevValue?this.value-this.length-this._prevValue:i>0&&this.value<this._prevValue?this.length-this._prevValue+this.value:e}}class kt extends Z{constructor(t,e,i,n){const r=g("span",{className:"symbol__value",textContent:i});super(t,i,g("span",{part:`symbol ${e}`,className:"symbol"},[r]),n),this.type=e,this._children=new Map,this._onChildRemove=a=>()=>{this._children.delete(a)},this._children.set(i,new M(this.flow,r,{onRemove:this._onChildRemove(i)}))}willUpdate(t){if(this.type==="decimal")return;const e=this.el.getBoundingClientRect();this._prevOffset=e[this.section.justify]-t[this.section.justify]}update(t){if(this.value!==t){const e=this._children.get(this.value);e&&(e.present=!1);const i=this._children.get(t);if(i)i.present=!0;else{const n=g("span",{className:"symbol__value",textContent:t});this.el.appendChild(n),this._children.set(t,new M(this.flow,n,{animateIn:!0,onRemove:this._onChildRemove(t)}))}}this.value=t}didUpdate(t){if(this.type==="decimal")return;const e=this.el.getBoundingClientRect()[this.section.justify]-t[this.section.justify],i=this._prevOffset-e;i&&this.el.animate({transform:[`translateX(${i}px)`,"none"]},{...this.flow.transformTiming,composite:"accumulate"})}}const X=String.raw;(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0})();typeof CSS<"u"&&CSS.supports&&CSS.supports("line-height","mod(1,1)");typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)");const J="--_number-flow-d-opacity",Q="--_number-flow-d-width",N="--_number-flow-dx",K="--_number-flow-d";(()=>{try{return CSS.registerProperty({name:J,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:N,syntax:"<length>",inherits:!0,initialValue:"0px"}),CSS.registerProperty({name:Q,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:K,syntax:"<number>",inherits:!0,initialValue:"0"}),!0}catch{return!1}})();const E="round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px)",f=`calc(${E} * 2)`,B="var(--number-flow-mask-width, 0.5em)",w=`calc(${B} / var(--scale-x))`,x="#000 0, transparent 71%",Ct=X`:host{display:inline-block;direction:ltr;white-space:nowrap;isolation:isolate;line-height:1}.number,.number__inner{display:inline-block;transform-origin:left top}:host([data-will-change]) :is(.number,.number__inner,.section,.digit,.digit__num,.symbol){will-change:transform}.number{--scale-x:calc(1 + var(${Q}) / var(--width));transform:translateX(var(${N})) scaleX(var(--scale-x));margin:0 calc(-1 * ${B});position:relative;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 ${w},#000 calc(100% - ${w}),transparent ),linear-gradient(to bottom,transparent 0,#000 ${f},#000 calc(100% - ${f}),transparent 100% ),radial-gradient(at bottom right,${x}),radial-gradient(at bottom left,${x}),radial-gradient(at top left,${x}),radial-gradient(at top right,${x});-webkit-mask-size:100% calc(100% - ${f} * 2),calc(100% - ${w} * 2) 100%,${w} ${f},${w} ${f},${w} ${f},${w} ${f};-webkit-mask-position:center,center,top left,top right,bottom right,bottom left;-webkit-mask-repeat:no-repeat}.number__inner{padding:${E} ${B};transform:scaleX(calc(1 / var(--scale-x))) translateX(calc(-1 * var(${N})))}:host > :not(.number){z-index:5}.section,.symbol{display:inline-block;position:relative;isolation:isolate}.section::after{content:'\200b';display:inline-block}.section--justify-left{transform-origin:center left}.section--justify-right{transform-origin:center right}.section > [inert],.symbol > [inert]{margin:0 !important;position:absolute !important;z-index:-1}.digit{display:inline-block;position:relative;--c:var(--current) + var(${K})}.digit__num,.number .section::after{padding:${E} 0}.digit__num{display:inline-block;--offset-raw:mod(var(--length) + var(--n) - mod(var(--c),var(--length)),var(--length));--offset:calc( var(--offset-raw) - var(--length) * round(down,var(--offset-raw) / (var(--length) / 2),1) );--y:clamp(-100%,var(--offset) * 100%,100%);transform:translateY(var(--y))}.digit__num[inert]{position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(var(--y))}.digit:not(.is-spinning) .digit__num[inert]{display:none}.symbol__value{display:inline-block;mix-blend-mode:plus-lighter;white-space:pre}.section--justify-left .symbol > [inert]{left:0}.section--justify-right .symbol > [inert]{right:0}.animate-presence{opacity:calc(1 + var(${J}))}`,St=X`:host{display:inline-block;direction:ltr;white-space:nowrap;line-height:1}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:${E} 0}.symbol{white-space:pre}`,Et=(s="")=>X`:where(number-flow${s}){line-height:1}number-flow${s} > span{font-kerning:none;display:inline-block;padding:${f} 0}`,Tt=s=>[St,Et(s),Ct],tt=Symbol(),Mt=H({__name:"NumberFlowGroup",setup(s){const t=new Set;let e=!1;return lt(tt,(i,n)=>{t.add(i),ct(n,async()=>{e||(e=!0,t.forEach(async r=>{var a;!r.value||!r.value.created||(r.value.willUpdate(),await z(),(a=r.value)==null||a.didUpdate())}),await z(),e=!1)}),ht(()=>{t.delete(i)})}),(i,n)=>et(i.$slots,"default")}}),At=["batched","trend","plugins","animated","transformTiming","spinTiming","opacityTiming","respectMotionPreference","nonce","data-will-change","digits","innerHTML","data"],Nt=H({inheritAttrs:!1,__name:"index",props:{transformTiming:{default:()=>u.defaultProps.transformTiming},spinTiming:{default:()=>u.defaultProps.spinTiming},opacityTiming:{default:()=>u.defaultProps.opacityTiming},animated:{type:Boolean,default:()=>u.defaultProps.animated},respectMotionPreference:{type:Boolean,default:()=>u.defaultProps.respectMotionPreference},trend:{type:[Number,Function],default:()=>u.defaultProps.trend},plugins:{default:()=>u.defaultProps.plugins},digits:{default:()=>u.defaultProps.digits},locales:{},format:{},value:{},prefix:{},suffix:{},nonce:{},willChange:{type:Boolean,default:!1}},emits:["animationsstart","animationsfinish"],setup(s,{expose:t,emit:e}){const i=P();t({el:i});const n=e,r=j(()=>new Intl.NumberFormat(s.locales,s.format)),a=j(()=>$t(s.value,r.value,s.prefix,s.suffix)),o=void 0,c=it(tt,void 0);return c?.(i,a),(l,d)=>(nt(),st("number-flow-vue",at({ref_key:"el",ref:i},l.$attrs,{batched:!!D(c),trend:l.trend,plugins:l.plugins,animated:l.animated,transformTiming:l.transformTiming,spinTiming:l.spinTiming,opacityTiming:l.opacityTiming,respectMotionPreference:l.respectMotionPreference,nonce:l.nonce,"data-will-change":l.willChange?"":void 0,digits:l.digits,innerHTML:D(o),"data-allow-mismatch":"",onAnimationsstart:d[0]||(d[0]=m=>n("animationsstart")),onAnimationsfinish:d[1]||(d[1]=m=>n("animationsfinish")),data:a.value}),null,16,At))}}),Bt=Tt("-vue");_t("number-flow-vue",u);function Vt({respectMotionPreference:s=!0}={}){const t=P(!1),e=P(!1);return rt(()=>{var i;t.value=Y,e.value=((i=k)==null?void 0:i.matches)??!1}),ot(i=>{var n;if(!W(s))return;const r=({matches:a})=>{e.value=a};(n=k)==null||n.addEventListener("change",r),i(()=>{var a;(a=k)==null||a.removeEventListener("change",r)})}),j(()=>t.value&&(!W(s)||!e.value))}export{u as NumberFlowElement,Mt as NumberFlowGroup,jt as continuous,Nt as default,Bt as styles,Vt as useCanAnimate};
|
|
1
|
+
import{d as H,P as et,Q as it,o as nt,R as st,S as at,b as D,A as P,B as j,x as rt,T as ot,U as W,V as lt,y as ct,W as z,X as ht}from"./index-7BE56IYF.js";const dt=String.raw,pt=(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0})(),ut=typeof CSS<"u"&&CSS.supports&&CSS.supports("line-height","mod(1,1)"),k=typeof matchMedia<"u"?matchMedia("(prefers-reduced-motion: reduce)"):null,C="--_number-flow-d-opacity",V="--_number-flow-d-width",S="--_number-flow-dx",L="--_number-flow-d",mt=(()=>{try{return CSS.registerProperty({name:C,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:S,syntax:"<length>",inherits:!0,initialValue:"0px"}),CSS.registerProperty({name:V,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:L,syntax:"<number>",inherits:!0,initialValue:"0"}),!0}catch{return!1}})(),U="round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px)",v=`calc(${U} * 2)`,R="var(--number-flow-mask-width, 0.5em)",y=`calc(${R} / var(--scale-x))`,$="#000 0, transparent 71%",ft=dt`:host{display:inline-block;direction:ltr;white-space:nowrap;isolation:isolate;line-height:1}.number,.number__inner{display:inline-block;transform-origin:left top}:host([data-will-change]) :is(.number,.number__inner,.section,.digit,.digit__num,.symbol){will-change:transform}.number{--scale-x:calc(1 + var(${V}) / var(--width));transform:translateX(var(${S})) scaleX(var(--scale-x));margin:0 calc(-1 * ${R});position:relative;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 ${y},#000 calc(100% - ${y}),transparent ),linear-gradient(to bottom,transparent 0,#000 ${v},#000 calc(100% - ${v}),transparent 100% ),radial-gradient(at bottom right,${$}),radial-gradient(at bottom left,${$}),radial-gradient(at top left,${$}),radial-gradient(at top right,${$});-webkit-mask-size:100% calc(100% - ${v} * 2),calc(100% - ${y} * 2) 100%,${y} ${v},${y} ${v},${y} ${v},${y} ${v};-webkit-mask-position:center,center,top left,top right,bottom right,bottom left;-webkit-mask-repeat:no-repeat}.number__inner{padding:${U} ${R};transform:scaleX(calc(1 / var(--scale-x))) translateX(calc(-1 * var(${S})))}:host > :not(.number){z-index:5}.section,.symbol{display:inline-block;position:relative;isolation:isolate}.section::after{content:'\200b';display:inline-block}.section--justify-left{transform-origin:center left}.section--justify-right{transform-origin:center right}.section > [inert],.symbol > [inert]{margin:0 !important;position:absolute !important;z-index:-1}.digit{display:inline-block;position:relative;--c:var(--current) + var(${L})}.digit__num,.number .section::after{padding:${U} 0}.digit__num{display:inline-block;--offset-raw:mod(var(--length) + var(--n) - mod(var(--c),var(--length)),var(--length));--offset:calc( var(--offset-raw) - var(--length) * round(down,var(--offset-raw) / (var(--length) / 2),1) );--y:clamp(-100%,var(--offset) * 100%,100%);transform:translateY(var(--y))}.digit__num[inert]{position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(var(--y))}.digit:not(.is-spinning) .digit__num[inert]{display:none}.symbol__value{display:inline-block;mix-blend-mode:plus-lighter;white-space:pre}.section--justify-left .symbol > [inert]{left:0}.section--justify-right .symbol > [inert]{right:0}.animate-presence{opacity:calc(1 + var(${C}))}`,gt=HTMLElement,vt=(s,t)=>s==null?t:t==null?s:Math.max(s,t),A=new WeakMap,jt={onUpdate(s,t,e){if(A.set(e,void 0),!e.computedTrend)return;const i=t.integer.concat(t.fraction).filter(o=>o.type==="integer"||o.type==="fraction"),n=s.integer.concat(s.fraction).filter(o=>o.type==="integer"||o.type==="fraction"),r=i.find(o=>!n.find(c=>c.pos===o.pos&&c.value===o.value)),a=n.find(o=>!i.find(c=>o.pos===c.pos&&o.value===c.value));A.set(e,vt(r?.pos,a?.pos))},getDelta(s,t,e){const i=s-t,n=A.get(e.flow);if(!i&&n!=null&&n>=e.pos)return e.length*e.flow.computedTrend}},g=(s,t,e)=>{const i=document.createElement(s),[n,r]=Array.isArray(t)?[void 0,t]:[t,e];return n&&Object.assign(i,n),r?.forEach(a=>i.appendChild(a)),i},yt=(s,t)=>{var e;return t==="left"?s.offsetLeft:(((e=s.offsetParent instanceof HTMLElement?s.offsetParent:null)==null?void 0:e.offsetWidth)??0)-s.offsetWidth-s.offsetLeft},wt=s=>s.offsetWidth>0&&s.offsetHeight>0,_t=(s,t)=>{!customElements.get(s)&&customElements.define(s,t)};function bt(s,t,{reverse:e=!1}={}){const i=s.length;for(let n=e?i-1:0;e?n>=0:n<i;e?n--:n++)t(s[n],n)}function $t(s,t,e,i){const n=t.formatToParts(s);e&&n.unshift({type:"prefix",value:e}),i&&n.push({type:"suffix",value:i});const r=[],a=[],o=[],c=[],l={},d=p=>`${p}:${l[p]=(l[p]??-1)+1}`;let m="",_=!1,b=!1;for(const p of n){m+=p.value;const h=p.type==="minusSign"||p.type==="plusSign"?"sign":p.type;h==="integer"?(_=!0,a.push(...p.value.split("").map(T=>({type:h,value:parseInt(T)})))):h==="group"?a.push({type:h,value:p.value}):h==="decimal"?(b=!0,o.push({type:h,value:p.value,key:d(h)})):h==="fraction"?o.push(...p.value.split("").map(T=>({type:h,value:parseInt(T),key:d(h),pos:-1-l[h]}))):(_||b?c:r).push({type:h,value:p.value,key:d(h)})}const F=[];for(let p=a.length-1;p>=0;p--){const h=a[p];F.unshift(h.type==="integer"?{...h,key:d(h.type),pos:l[h.type]}:{...h,key:d(h.type)})}return{pre:r,integer:F,fraction:o,post:c,valueAsString:m,value:typeof s=="string"?parseFloat(s):s}}const Y=ut&&pt&&mt;let u=class extends gt{constructor(){super(),this.created=!1,this.batched=!1;const{animated:t,...e}=this.constructor.defaultProps;this._animated=this.computedAnimated=t,Object.assign(this,e)}get animated(){return this._animated}set animated(t){var e;this.animated!==t&&(this._animated=t,(e=this.shadowRoot)==null||e.getAnimations().forEach(i=>i.finish()))}set data(t){var e,i;if(t==null)return;const{pre:n,integer:r,fraction:a,post:o,value:c}=t;if(this.created){const l=this._data;this._data=t,this.computedTrend=typeof this.trend=="function"?this.trend(l.value,c):this.trend,this.computedAnimated=Y&&this._animated&&(!this.respectMotionPreference||!((e=k)!=null&&e.matches))&&wt(this)&&this.ownerDocument.visibilityState==="visible",(i=this.plugins)==null||i.forEach(d=>{var m;return(m=d.onUpdate)==null?void 0:m.call(d,t,l,this)}),this.batched||this.willUpdate(),this._pre.update(n),this._num.update({integer:r,fraction:a}),this._post.update(o),this.batched||this.didUpdate()}else{this._data=t,this.attachShadow({mode:"open"});try{this._internals??(this._internals=this.attachInternals()),this._internals.role="img"}catch{}const l=document.createElement("style");this.nonce&&(l.nonce=this.nonce),l.textContent=ft,this.shadowRoot.appendChild(l),this._pre=new O(this,n,{justify:"right",part:"left"}),this.shadowRoot.appendChild(this._pre.el),this._num=new xt(this,r,a),this.shadowRoot.appendChild(this._num.el),this._post=new O(this,o,{justify:"left",part:"right"}),this.shadowRoot.appendChild(this._post.el),this.created=!0}try{this._internals.ariaLabel=t.valueAsString}catch{}}willUpdate(){this._pre.willUpdate(),this._num.willUpdate(),this._post.willUpdate()}didUpdate(){if(!this.computedAnimated)return;this._abortAnimationsFinish?this._abortAnimationsFinish.abort():this.dispatchEvent(new Event("animationsstart")),this._pre.didUpdate(),this._num.didUpdate(),this._post.didUpdate();const t=new AbortController;Promise.all(this.shadowRoot.getAnimations().map(e=>e.finished)).then(()=>{t.signal.aborted||(this.dispatchEvent(new Event("animationsfinish")),this._abortAnimationsFinish=void 0)}),this._abortAnimationsFinish=t}};u.defaultProps={transformTiming:{duration:900,easing:"linear(0,.005,.019,.039,.066,.096,.129,.165,.202,.24,.278,.316,.354,.39,.426,.461,.494,.526,.557,.586,.614,.64,.665,.689,.711,.731,.751,.769,.786,.802,.817,.831,.844,.856,.867,.877,.887,.896,.904,.912,.919,.925,.931,.937,.942,.947,.951,.955,.959,.962,.965,.968,.971,.973,.976,.978,.98,.981,.983,.984,.986,.987,.988,.989,.99,.991,.992,.992,.993,.994,.994,.995,.995,.996,.996,.9963,.9967,.9969,.9972,.9975,.9977,.9979,.9981,.9982,.9984,.9985,.9987,.9988,.9989,1)"},spinTiming:void 0,opacityTiming:{duration:450,easing:"ease-out"},animated:!0,trend:(s,t)=>Math.sign(t-s),respectMotionPreference:!0,plugins:void 0,digits:void 0};class xt{constructor(t,e,i,{className:n,...r}={}){this.flow=t,this._integer=new I(t,e,{justify:"right",part:"integer"}),this._fraction=new I(t,i,{justify:"left",part:"fraction"}),this._inner=g("span",{className:"number__inner"},[this._integer.el,this._fraction.el]),this.el=g("span",{...r,part:"number",className:`number ${n??""}`},[this._inner])}willUpdate(){this._prevWidth=this.el.offsetWidth,this._prevLeft=this.el.getBoundingClientRect().left,this._integer.willUpdate(),this._fraction.willUpdate()}update({integer:t,fraction:e}){this._integer.update(t),this._fraction.update(e)}didUpdate(){const t=this.el.getBoundingClientRect();this._integer.didUpdate(),this._fraction.didUpdate();const e=this._prevLeft-t.left,i=this.el.offsetWidth,n=this._prevWidth-i;this.el.style.setProperty("--width",String(i)),this.el.animate({[S]:[`${e}px`,"0px"],[V]:[n,0]},{...this.flow.transformTiming,composite:"accumulate"})}}let G=class{constructor(t,e,{justify:i,className:n,...r},a){this.flow=t,this.children=new Map,this.onCharRemove=c=>()=>{this.children.delete(c)},this.justify=i;const o=e.map(c=>this.addChar(c).el);this.el=g("span",{...r,className:`section section--justify-${i} ${n??""}`},a?a(o):o)}addChar(t,{startDigitsAtZero:e=!1,...i}={}){const n=t.type==="integer"||t.type==="fraction"?new q(this,t.type,e?0:t.value,t.pos,{...i,onRemove:this.onCharRemove(t.key)}):new kt(this,t.type,t.value,{...i,onRemove:this.onCharRemove(t.key)});return this.children.set(t.key,n),n}unpop(t){t.el.removeAttribute("inert"),t.el.style.top="",t.el.style[this.justify]=""}pop(t){t.forEach(e=>{e.el.style.top=`${e.el.offsetTop}px`,e.el.style[this.justify]=`${yt(e.el,this.justify)}px`}),t.forEach(e=>{e.el.setAttribute("inert",""),e.present=!1})}addNewAndUpdateExisting(t){const e=new Map,i=new Map,n=this.justify==="left",r=n?"prepend":"append";if(bt(t,a=>{let o;this.children.has(a.key)?(o=this.children.get(a.key),i.set(a,o),this.unpop(o),o.present=!0):(o=this.addChar(a,{startDigitsAtZero:!0,animateIn:!0}),e.set(a,o)),this.el[r](o.el)},{reverse:n}),this.flow.computedAnimated){const a=this.el.getBoundingClientRect();e.forEach(o=>{o.willUpdate(a)})}e.forEach((a,o)=>{a.update(o.value)}),i.forEach((a,o)=>{a.update(o.value)})}willUpdate(){const t=this.el.getBoundingClientRect();this._prevOffset=t[this.justify],this.children.forEach(e=>e.willUpdate(t))}didUpdate(){const t=this.el.getBoundingClientRect();this.children.forEach(n=>n.didUpdate(t));const e=t[this.justify],i=this._prevOffset-e;i&&this.children.size&&this.el.animate({transform:[`translateX(${i}px)`,"none"]},{...this.flow.transformTiming,composite:"accumulate"})}};class I extends G{update(t){const e=new Map;this.children.forEach((i,n)=>{t.find(r=>r.key===n)||e.set(n,i),this.unpop(i)}),this.addNewAndUpdateExisting(t),e.forEach(i=>{i instanceof q&&i.update(0)}),this.pop(e)}}class O extends G{update(t){const e=new Map;this.children.forEach((i,n)=>{t.find(r=>r.key===n)||e.set(n,i)}),this.pop(e),this.addNewAndUpdateExisting(t)}}class M{constructor(t,e,{onRemove:i,animateIn:n=!1}={}){this.flow=t,this.el=e,this._present=!0,this._remove=()=>{var r;this.el.remove(),(r=this._onRemove)==null||r.call(this)},this.el.classList.add("animate-presence"),this.flow.computedAnimated&&n&&this.el.animate({[C]:[-.9999,0]},{...this.flow.opacityTiming,composite:"accumulate"}),this._onRemove=i}get present(){return this._present}set present(t){if(this._present!==t){if(this._present=t,t?this.el.removeAttribute("inert"):this.el.setAttribute("inert",""),!this.flow.computedAnimated){t||this._remove();return}this.el.style.setProperty("--_number-flow-d-opacity",t?"0":"-.999"),this.el.animate({[C]:t?[-.9999,0]:[.999,0]},{...this.flow.opacityTiming,composite:"accumulate"}),t?this.flow.removeEventListener("animationsfinish",this._remove):this.flow.addEventListener("animationsfinish",this._remove,{once:!0})}}}class Z extends M{constructor(t,e,i,n){super(t.flow,i,n),this.section=t,this.value=e,this.el=i}}class q extends Z{constructor(t,e,i,n,r){var a,o;const c=(((o=(a=t.flow.digits)==null?void 0:a[n])==null?void 0:o.max)??9)+1,l=Array.from({length:c}).map((m,_)=>{const b=g("span",{className:"digit__num"},[document.createTextNode(String(_))]);return _!==i&&b.setAttribute("inert",""),b.style.setProperty("--n",String(_)),b}),d=g("span",{part:`digit ${e}-digit`,className:"digit"},l);d.style.setProperty("--current",String(i)),d.style.setProperty("--length",String(c)),super(t,i,d,r),this.pos=n,this._onAnimationsFinish=()=>{this.el.classList.remove("is-spinning")},this._numbers=l,this.length=c}willUpdate(t){const e=this.el.getBoundingClientRect();this._prevValue=this.value;const i=e[this.section.justify]-t[this.section.justify],n=e.width/2;this._prevCenter=this.section.justify==="left"?i+n:i-n}update(t){this.el.style.setProperty("--current",String(t)),this._numbers.forEach((e,i)=>i===t?e.removeAttribute("inert"):e.setAttribute("inert","")),this.value=t}didUpdate(t){const e=this.el.getBoundingClientRect(),i=e[this.section.justify]-t[this.section.justify],n=e.width/2,r=this.section.justify==="left"?i+n:i-n,a=this._prevCenter-r;a&&this.el.animate({transform:[`translateX(${a}px)`,"none"]},{...this.flow.transformTiming,composite:"accumulate"});const o=this.getDelta();o&&(this.el.classList.add("is-spinning"),this.el.animate({[L]:[-o,0]},{...this.flow.spinTiming??this.flow.transformTiming,composite:"accumulate"}),this.flow.addEventListener("animationsfinish",this._onAnimationsFinish,{once:!0}))}getDelta(){var t;if(this.flow.plugins)for(const n of this.flow.plugins){const r=(t=n.getDelta)==null?void 0:t.call(n,this.value,this._prevValue,this);if(r!=null)return r}const e=this.value-this._prevValue,i=this.flow.computedTrend||Math.sign(e);return i<0&&this.value>this._prevValue?this.value-this.length-this._prevValue:i>0&&this.value<this._prevValue?this.length-this._prevValue+this.value:e}}class kt extends Z{constructor(t,e,i,n){const r=g("span",{className:"symbol__value",textContent:i});super(t,i,g("span",{part:`symbol ${e}`,className:"symbol"},[r]),n),this.type=e,this._children=new Map,this._onChildRemove=a=>()=>{this._children.delete(a)},this._children.set(i,new M(this.flow,r,{onRemove:this._onChildRemove(i)}))}willUpdate(t){if(this.type==="decimal")return;const e=this.el.getBoundingClientRect();this._prevOffset=e[this.section.justify]-t[this.section.justify]}update(t){if(this.value!==t){const e=this._children.get(this.value);e&&(e.present=!1);const i=this._children.get(t);if(i)i.present=!0;else{const n=g("span",{className:"symbol__value",textContent:t});this.el.appendChild(n),this._children.set(t,new M(this.flow,n,{animateIn:!0,onRemove:this._onChildRemove(t)}))}}this.value=t}didUpdate(t){if(this.type==="decimal")return;const e=this.el.getBoundingClientRect()[this.section.justify]-t[this.section.justify],i=this._prevOffset-e;i&&this.el.animate({transform:[`translateX(${i}px)`,"none"]},{...this.flow.transformTiming,composite:"accumulate"})}}const X=String.raw;(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0})();typeof CSS<"u"&&CSS.supports&&CSS.supports("line-height","mod(1,1)");typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)");const J="--_number-flow-d-opacity",Q="--_number-flow-d-width",N="--_number-flow-dx",K="--_number-flow-d";(()=>{try{return CSS.registerProperty({name:J,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:N,syntax:"<length>",inherits:!0,initialValue:"0px"}),CSS.registerProperty({name:Q,syntax:"<number>",inherits:!1,initialValue:"0"}),CSS.registerProperty({name:K,syntax:"<number>",inherits:!0,initialValue:"0"}),!0}catch{return!1}})();const E="round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px)",f=`calc(${E} * 2)`,B="var(--number-flow-mask-width, 0.5em)",w=`calc(${B} / var(--scale-x))`,x="#000 0, transparent 71%",Ct=X`:host{display:inline-block;direction:ltr;white-space:nowrap;isolation:isolate;line-height:1}.number,.number__inner{display:inline-block;transform-origin:left top}:host([data-will-change]) :is(.number,.number__inner,.section,.digit,.digit__num,.symbol){will-change:transform}.number{--scale-x:calc(1 + var(${Q}) / var(--width));transform:translateX(var(${N})) scaleX(var(--scale-x));margin:0 calc(-1 * ${B});position:relative;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 ${w},#000 calc(100% - ${w}),transparent ),linear-gradient(to bottom,transparent 0,#000 ${f},#000 calc(100% - ${f}),transparent 100% ),radial-gradient(at bottom right,${x}),radial-gradient(at bottom left,${x}),radial-gradient(at top left,${x}),radial-gradient(at top right,${x});-webkit-mask-size:100% calc(100% - ${f} * 2),calc(100% - ${w} * 2) 100%,${w} ${f},${w} ${f},${w} ${f},${w} ${f};-webkit-mask-position:center,center,top left,top right,bottom right,bottom left;-webkit-mask-repeat:no-repeat}.number__inner{padding:${E} ${B};transform:scaleX(calc(1 / var(--scale-x))) translateX(calc(-1 * var(${N})))}:host > :not(.number){z-index:5}.section,.symbol{display:inline-block;position:relative;isolation:isolate}.section::after{content:'\200b';display:inline-block}.section--justify-left{transform-origin:center left}.section--justify-right{transform-origin:center right}.section > [inert],.symbol > [inert]{margin:0 !important;position:absolute !important;z-index:-1}.digit{display:inline-block;position:relative;--c:var(--current) + var(${K})}.digit__num,.number .section::after{padding:${E} 0}.digit__num{display:inline-block;--offset-raw:mod(var(--length) + var(--n) - mod(var(--c),var(--length)),var(--length));--offset:calc( var(--offset-raw) - var(--length) * round(down,var(--offset-raw) / (var(--length) / 2),1) );--y:clamp(-100%,var(--offset) * 100%,100%);transform:translateY(var(--y))}.digit__num[inert]{position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(var(--y))}.digit:not(.is-spinning) .digit__num[inert]{display:none}.symbol__value{display:inline-block;mix-blend-mode:plus-lighter;white-space:pre}.section--justify-left .symbol > [inert]{left:0}.section--justify-right .symbol > [inert]{right:0}.animate-presence{opacity:calc(1 + var(${J}))}`,St=X`:host{display:inline-block;direction:ltr;white-space:nowrap;line-height:1}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:${E} 0}.symbol{white-space:pre}`,Et=(s="")=>X`:where(number-flow${s}){line-height:1}number-flow${s} > span{font-kerning:none;display:inline-block;padding:${f} 0}`,Tt=s=>[St,Et(s),Ct],tt=Symbol(),Mt=H({__name:"NumberFlowGroup",setup(s){const t=new Set;let e=!1;return lt(tt,(i,n)=>{t.add(i),ct(n,async()=>{e||(e=!0,t.forEach(async r=>{var a;!r.value||!r.value.created||(r.value.willUpdate(),await z(),(a=r.value)==null||a.didUpdate())}),await z(),e=!1)}),ht(()=>{t.delete(i)})}),(i,n)=>et(i.$slots,"default")}}),At=["batched","trend","plugins","animated","transformTiming","spinTiming","opacityTiming","respectMotionPreference","nonce","data-will-change","digits","innerHTML","data"],Nt=H({inheritAttrs:!1,__name:"index",props:{transformTiming:{default:()=>u.defaultProps.transformTiming},spinTiming:{default:()=>u.defaultProps.spinTiming},opacityTiming:{default:()=>u.defaultProps.opacityTiming},animated:{type:Boolean,default:()=>u.defaultProps.animated},respectMotionPreference:{type:Boolean,default:()=>u.defaultProps.respectMotionPreference},trend:{type:[Number,Function],default:()=>u.defaultProps.trend},plugins:{default:()=>u.defaultProps.plugins},digits:{default:()=>u.defaultProps.digits},locales:{},format:{},value:{},prefix:{},suffix:{},nonce:{},willChange:{type:Boolean,default:!1}},emits:["animationsstart","animationsfinish"],setup(s,{expose:t,emit:e}){const i=P();t({el:i});const n=e,r=j(()=>new Intl.NumberFormat(s.locales,s.format)),a=j(()=>$t(s.value,r.value,s.prefix,s.suffix)),o=void 0,c=it(tt,void 0);return c?.(i,a),(l,d)=>(nt(),st("number-flow-vue",at({ref_key:"el",ref:i},l.$attrs,{batched:!!D(c),trend:l.trend,plugins:l.plugins,animated:l.animated,transformTiming:l.transformTiming,spinTiming:l.spinTiming,opacityTiming:l.opacityTiming,respectMotionPreference:l.respectMotionPreference,nonce:l.nonce,"data-will-change":l.willChange?"":void 0,digits:l.digits,innerHTML:D(o),"data-allow-mismatch":"",onAnimationsstart:d[0]||(d[0]=m=>n("animationsstart")),onAnimationsfinish:d[1]||(d[1]=m=>n("animationsfinish")),data:a.value}),null,16,At))}}),Bt=Tt("-vue");_t("number-flow-vue",u);function Vt({respectMotionPreference:s=!0}={}){const t=P(!1),e=P(!1);return rt(()=>{var i;t.value=Y,e.value=((i=k)==null?void 0:i.matches)??!1}),ot(i=>{var n;if(!W(s))return;const r=({matches:a})=>{e.value=a};(n=k)==null||n.addEventListener("change",r),i(()=>{var a;(a=k)==null||a.removeEventListener("change",r)})}),j(()=>t.value&&(!W(s)||!e.value))}export{u as NumberFlowElement,Mt as NumberFlowGroup,jt as continuous,Nt as default,Bt as styles,Vt as useCanAnimate};
|
|
@@ -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-7BE56IYF.js";import W from"./index-CXOEVGFP.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 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-
|
|
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-7BE56IYF.js";import{_ as M}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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{_ as o}from"./definition.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as o}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.js";import{d as n,c,b as a,o as f,aT as i}from"./index-7BE56IYF.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 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-
|
|
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-7BE56IYF.js";import{_ as C}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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{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-
|
|
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-7BE56IYF.js";import{_ as C}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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 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-
|
|
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-7BE56IYF.js";import{_ as H}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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{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-
|
|
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-7BE56IYF.js";import{_ as b}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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};
|
|
@@ -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 _,aN as k,E as w,K as x,M as g}from"./index-
|
|
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-7BE56IYF.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 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-
|
|
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-7BE56IYF.js";import{_ as I}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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 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-
|
|
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-7BE56IYF.js";import{_ as T}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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,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-
|
|
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-7BE56IYF.js";import{_ as b}from"./definition.vue_vue_type_script_setup_true_lang-CFzQ7icU.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{p as o,q as l,r as p}from"./index-
|
|
1
|
+
import{p as o,q as l,r as p}from"./index-7BE56IYF.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-7BE56IYF.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="./assets/index-BnJ5p1Mx.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="app"></div>
|
|
@@ -78,10 +78,10 @@ function addTrigger(option) {
|
|
|
78
78
|
function updateParams(index, params) {
|
|
79
79
|
emit("update:triggers", props.triggers.map((t, i) => i === index ? { ...t, params } : t));
|
|
80
80
|
}
|
|
81
|
-
const
|
|
82
|
-
function
|
|
83
|
-
if (
|
|
84
|
-
else
|
|
81
|
+
const expanded = ref(/* @__PURE__ */ new Set());
|
|
82
|
+
function toggleExpanded(key) {
|
|
83
|
+
if (expanded.value.has(key)) expanded.value.delete(key);
|
|
84
|
+
else expanded.value.add(key);
|
|
85
85
|
}
|
|
86
86
|
function opConfigFor(trigger) {
|
|
87
87
|
if (!trigger.compatibilityDate) return void 0;
|
|
@@ -200,12 +200,12 @@ function rowConfig(rowKey) {
|
|
|
200
200
|
>
|
|
201
201
|
<button
|
|
202
202
|
type="button"
|
|
203
|
-
:aria-expanded="
|
|
204
|
-
:aria-label="
|
|
205
|
-
@click="
|
|
203
|
+
:aria-expanded="expanded.has(row.key)"
|
|
204
|
+
:aria-label="expanded.has(row.key) ? '\u6298\u53E0\u53C2\u6570' : '\u5C55\u5F00\u53C2\u6570'"
|
|
205
|
+
@click="toggleExpanded(row.key)"
|
|
206
206
|
>
|
|
207
207
|
<Icon
|
|
208
|
-
:icon="
|
|
208
|
+
:icon="expanded.has(row.key) ? 'fluent:chevron-down-20-regular' : 'fluent:chevron-right-20-regular'"
|
|
209
209
|
/>
|
|
210
210
|
</button>
|
|
211
211
|
</InputGroupButton>
|
|
@@ -228,12 +228,12 @@ function rowConfig(rowKey) {
|
|
|
228
228
|
<!-- Parameterized op: its own `config.vue`, bound to the trigger's
|
|
229
229
|
`params`. Param-less ops and dangling rows render nothing here.
|
|
230
230
|
`v-show` (not `v-if`) so the editor stays mounted while collapsed —
|
|
231
|
-
its draft state and continuous validation keep running.
|
|
232
|
-
row-scope wrapper provides this row's step roster
|
|
233
|
-
outputs) to the param editor's ExpressionEditors. -->
|
|
231
|
+
its draft state and continuous validation keep running. Rows start
|
|
232
|
+
collapsed; the row-scope wrapper provides this row's step roster
|
|
233
|
+
(earlier rows' outputs) to the param editor's ExpressionEditors. -->
|
|
234
234
|
<div
|
|
235
235
|
v-if="opConfigFor(row.trigger)"
|
|
236
|
-
v-show="
|
|
236
|
+
v-show="expanded.has(row.key)"
|
|
237
237
|
class="mt-2 rounded-md border border-zinc-200 bg-zinc-50/50 p-3"
|
|
238
238
|
>
|
|
239
239
|
<TriggerRowScope :roster="stepRosterFor(index)">
|
|
@@ -389,7 +389,7 @@ export function useConfigEditor(model, options = {}) {
|
|
|
389
389
|
validationError.value = formatValidationError(err, (i) => {
|
|
390
390
|
const b = topSlotEditor.blocks.value[i];
|
|
391
391
|
return b ? topSlotEditor.getBlockLabel(b) : void 0;
|
|
392
|
-
});
|
|
392
|
+
}, draft.value);
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
395
|
function reset() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function formatValidationError(err: unknown, blockLabelAt: (index: number) => string | undefined): string;
|
|
1
|
+
export declare function formatValidationError(err: unknown, blockLabelAt: (index: number) => string | undefined, rootData?: unknown): string;
|
|
@@ -3,9 +3,43 @@ function isDiscriminatorMiss(issue) {
|
|
|
3
3
|
const last = issue.path[issue.path.length - 1];
|
|
4
4
|
return (last === "type" || last === "compatibilityDate") && issue.message.startsWith('Expected "');
|
|
5
5
|
}
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
function isObject(v) {
|
|
7
|
+
return typeof v === "object" && v !== null;
|
|
8
|
+
}
|
|
9
|
+
function localeText(v) {
|
|
10
|
+
if (!Array.isArray(v)) return void 0;
|
|
11
|
+
for (const item of v) {
|
|
12
|
+
if (isObject(item) && typeof item.message === "string" && item.message.trim()) {
|
|
13
|
+
return item.message.trim();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return void 0;
|
|
17
|
+
}
|
|
18
|
+
function nodeLabel(node) {
|
|
19
|
+
if (!isObject(node)) return void 0;
|
|
20
|
+
return localeText(node.label) ?? localeText(node.title) ?? (typeof node.displayName === "string" && node.displayName.trim() ? node.displayName.trim() : void 0) ?? (typeof node.type === "string" ? node.type : void 0);
|
|
21
|
+
}
|
|
22
|
+
function describePath(path, rootData, blockLabelAt) {
|
|
23
|
+
const segs = [];
|
|
24
|
+
let node = rootData;
|
|
25
|
+
let labeledTopBlock = false;
|
|
26
|
+
for (let i = 0; i < path.length; i++) {
|
|
27
|
+
const seg = path[i];
|
|
28
|
+
node = isObject(node) ? node[seg] : void 0;
|
|
29
|
+
const isLeaf = i === path.length - 1;
|
|
30
|
+
if (typeof seg === "number") {
|
|
31
|
+
const isTopBlock = !labeledTopBlock && path[i - 1] === "blocks" && path[i - 2] === "slot";
|
|
32
|
+
if (isTopBlock) {
|
|
33
|
+
labeledTopBlock = true;
|
|
34
|
+
segs.push(blockLabelAt(seg) ?? nodeLabel(node) ?? `#${seg}`);
|
|
35
|
+
} else {
|
|
36
|
+
segs.push(nodeLabel(node) ?? `#${seg}`);
|
|
37
|
+
}
|
|
38
|
+
} else if (isLeaf) {
|
|
39
|
+
segs.push(String(seg));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return segs;
|
|
9
43
|
}
|
|
10
44
|
function fallback(err) {
|
|
11
45
|
if (err instanceof Error) return err.message;
|
|
@@ -15,7 +49,7 @@ function fallback(err) {
|
|
|
15
49
|
return String(err);
|
|
16
50
|
}
|
|
17
51
|
}
|
|
18
|
-
export function formatValidationError(err, blockLabelAt) {
|
|
52
|
+
export function formatValidationError(err, blockLabelAt, rootData) {
|
|
19
53
|
if (!ParseResult.isParseError(err)) return fallback(err);
|
|
20
54
|
try {
|
|
21
55
|
const issues = ParseResult.ArrayFormatter.formatErrorSync(err);
|
|
@@ -23,9 +57,8 @@ export function formatValidationError(err, blockLabelAt) {
|
|
|
23
57
|
const picked = real.length > 0 ? real : issues;
|
|
24
58
|
const first = picked[0];
|
|
25
59
|
if (!first) return fallback(err);
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const prefix = label ? `\u300C${label}\u300D\uFF1A` : "";
|
|
60
|
+
const segs = describePath(first.path, rootData, blockLabelAt);
|
|
61
|
+
const prefix = segs.length > 0 ? `\u300C${segs.join(" \u203A ")}\u300D\uFF1A` : "";
|
|
29
62
|
const suffix = picked.length > 1 ? `\uFF08\u8FD8\u6709 ${picked.length - 1} \u4E2A\u95EE\u9898\uFF09` : "";
|
|
30
63
|
return `${prefix}${first.message}${suffix}`;
|
|
31
64
|
} catch {
|
package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/runtime.vue
CHANGED
|
@@ -6,20 +6,20 @@ import { celBindings, injectCELContext } from "../../../../../utils/cel-context"
|
|
|
6
6
|
import { getLocalizedText } from "../../../../../share/locale";
|
|
7
7
|
import { Markdown } from "../../../../ui/markdown";
|
|
8
8
|
import { interpolateMarkdown } from "../../../../table/utils/runtime";
|
|
9
|
-
import {
|
|
9
|
+
import { useFormScope } from "../../../utils/state";
|
|
10
10
|
defineOptions({ name: "ShwfedMarkdownFieldRuntime" });
|
|
11
11
|
const props = defineProps({
|
|
12
12
|
fieldId: { type: String, required: true },
|
|
13
13
|
config: { type: null, required: true }
|
|
14
14
|
});
|
|
15
15
|
const { locale } = useI18n();
|
|
16
|
-
const
|
|
16
|
+
const formScope = useFormScope();
|
|
17
17
|
const inherited = injectCELContext();
|
|
18
18
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
19
19
|
const source = computed(() => {
|
|
20
20
|
const template = getLocalizedText(props.config.content, locale.value) ?? "";
|
|
21
21
|
if (!template) return "";
|
|
22
|
-
return interpolateMarkdown(template, $cel, { form: state.value ?? {} });
|
|
22
|
+
return interpolateMarkdown(template, $cel, { form: formScope.state.value ?? {} });
|
|
23
23
|
});
|
|
24
24
|
</script>
|
|
25
25
|
|
package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue
CHANGED
|
@@ -13,14 +13,14 @@ import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
|
|
|
13
13
|
import { useFieldValue } from "../../../utils/field-value";
|
|
14
14
|
import { useFieldValidation } from "../../../utils/validation";
|
|
15
15
|
import { useFormReadonly } from "../../../utils/readonly";
|
|
16
|
-
import {
|
|
16
|
+
import { useFormScope } from "../../../utils/state";
|
|
17
17
|
defineOptions({ name: "ShwfedTextFieldRuntime" });
|
|
18
18
|
const props = defineProps({
|
|
19
19
|
fieldId: { type: String, required: true },
|
|
20
20
|
config: { type: null, required: true }
|
|
21
21
|
});
|
|
22
22
|
const { locale } = useI18n();
|
|
23
|
-
const
|
|
23
|
+
const formScope = useFormScope();
|
|
24
24
|
const inherited = injectCELContext();
|
|
25
25
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
26
26
|
const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
|
|
@@ -33,7 +33,7 @@ const tooltipText = computed(
|
|
|
33
33
|
function evalBool(expression, label) {
|
|
34
34
|
if (!expression) return false;
|
|
35
35
|
try {
|
|
36
|
-
return Effect.runSync($cel(expression, { form: state.value ?? {} }));
|
|
36
|
+
return Effect.runSync($cel(expression, { form: formScope.state.value ?? {} }));
|
|
37
37
|
} catch (err) {
|
|
38
38
|
console.error(`[shwfed-form] failed to evaluate ${label} for ${props.fieldId}:`, err);
|
|
39
39
|
return false;
|
|
@@ -90,9 +90,10 @@ function handleClear() {
|
|
|
90
90
|
</FieldLabel>
|
|
91
91
|
<div
|
|
92
92
|
v-if="effectiveReadonly"
|
|
93
|
-
class="min-h-9 py-1.5 text-sm
|
|
93
|
+
class="min-h-9 py-1.5 text-sm"
|
|
94
|
+
:class="draft ? 'text-zinc-700' : 'font-mono text-zinc-300 select-none'"
|
|
94
95
|
>
|
|
95
|
-
{{ draft || "
|
|
96
|
+
{{ draft || "-" }}
|
|
96
97
|
</div>
|
|
97
98
|
<InputGroup
|
|
98
99
|
v-else
|
package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue
CHANGED
|
@@ -12,14 +12,14 @@ import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
|
|
|
12
12
|
import { useFieldValue } from "../../../utils/field-value";
|
|
13
13
|
import { useFieldValidation } from "../../../utils/validation";
|
|
14
14
|
import { useFormReadonly } from "../../../utils/readonly";
|
|
15
|
-
import {
|
|
15
|
+
import { useFormScope } from "../../../utils/state";
|
|
16
16
|
defineOptions({ name: "ShwfedTextareaFieldRuntime" });
|
|
17
17
|
const props = defineProps({
|
|
18
18
|
fieldId: { type: String, required: true },
|
|
19
19
|
config: { type: null, required: true }
|
|
20
20
|
});
|
|
21
21
|
const { locale } = useI18n();
|
|
22
|
-
const
|
|
22
|
+
const formScope = useFormScope();
|
|
23
23
|
const inherited = injectCELContext();
|
|
24
24
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
25
25
|
const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
|
|
@@ -33,7 +33,7 @@ const maxLength = computed(() => props.config.maxLength);
|
|
|
33
33
|
function evalBool(expression, label) {
|
|
34
34
|
if (!expression) return false;
|
|
35
35
|
try {
|
|
36
|
-
return Effect.runSync($cel(expression, { form: state.value ?? {} }));
|
|
36
|
+
return Effect.runSync($cel(expression, { form: formScope.state.value ?? {} }));
|
|
37
37
|
} catch (err) {
|
|
38
38
|
console.error(`[shwfed-form] failed to evaluate ${label} for ${props.fieldId}:`, err);
|
|
39
39
|
return false;
|
|
@@ -85,9 +85,10 @@ const { isRequired, errors, warnings, visible } = useFieldValidation({
|
|
|
85
85
|
</FieldLabel>
|
|
86
86
|
<div
|
|
87
87
|
v-if="effectiveReadonly"
|
|
88
|
-
class="min-h-9 py-1.5 text-sm whitespace-pre-wrap
|
|
88
|
+
class="min-h-9 py-1.5 text-sm whitespace-pre-wrap"
|
|
89
|
+
:class="draft ? 'text-zinc-700' : 'font-mono text-zinc-300 select-none'"
|
|
89
90
|
>
|
|
90
|
-
{{ draft || "
|
|
91
|
+
{{ draft || "-" }}
|
|
91
92
|
</div>
|
|
92
93
|
<InputGroup v-else>
|
|
93
94
|
<InputGroupTextarea
|
|
@@ -21,7 +21,7 @@ import { Markdown } from "../../../../ui/markdown";
|
|
|
21
21
|
import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
|
|
22
22
|
import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
|
|
23
23
|
import { useFormReadonly } from "../../../utils/readonly";
|
|
24
|
-
import { useFormState } from "../../../utils/state";
|
|
24
|
+
import { useFormScope, useFormState } from "../../../utils/state";
|
|
25
25
|
defineOptions({ name: "ShwfedComboboxSingleFieldRuntime" });
|
|
26
26
|
const props = defineProps({
|
|
27
27
|
fieldId: { type: String, required: true },
|
|
@@ -47,7 +47,8 @@ const { locale, t } = useI18n({
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
|
-
const {
|
|
50
|
+
const { getAt, setAt } = useFormState();
|
|
51
|
+
const formScope = useFormScope();
|
|
51
52
|
const inherited = injectCELContext();
|
|
52
53
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
53
54
|
const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
|
|
@@ -60,7 +61,7 @@ const tooltipText = computed(
|
|
|
60
61
|
function evalBool(expression, label) {
|
|
61
62
|
if (!expression) return false;
|
|
62
63
|
try {
|
|
63
|
-
return Effect.runSync($cel(expression, { form: state.value ?? {} }));
|
|
64
|
+
return Effect.runSync($cel(expression, { form: formScope.state.value ?? {} }));
|
|
64
65
|
} catch (err) {
|
|
65
66
|
console.error(`[shwfed-form] failed to evaluate ${label} for ${props.fieldId}:`, err);
|
|
66
67
|
return false;
|
|
@@ -74,7 +75,7 @@ const isReadonly = computed(
|
|
|
74
75
|
const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
|
|
75
76
|
function valueOf(option) {
|
|
76
77
|
try {
|
|
77
|
-
return Effect.runSync($cel(props.config.optionValue, { form: state.value ?? {}, option }));
|
|
78
|
+
return Effect.runSync($cel(props.config.optionValue, { form: formScope.state.value ?? {}, option }));
|
|
78
79
|
} catch (err) {
|
|
79
80
|
console.error(`[shwfed-form] failed to evaluate optionValue for ${props.fieldId}:`, err);
|
|
80
81
|
return void 0;
|
|
@@ -83,12 +84,12 @@ function valueOf(option) {
|
|
|
83
84
|
function labelOf(option) {
|
|
84
85
|
const tpl = getLocalizedText(props.config.optionLabel, locale.value) ?? "";
|
|
85
86
|
if (!tpl) return "";
|
|
86
|
-
return interpolateMarkdown(tpl, $cel, { form: state.value ?? {}, option });
|
|
87
|
+
return interpolateMarkdown(tpl, $cel, { form: formScope.state.value ?? {}, option });
|
|
87
88
|
}
|
|
88
89
|
const entries = computed(() => {
|
|
89
90
|
let raw;
|
|
90
91
|
try {
|
|
91
|
-
raw = Effect.runSync($cel(props.config.options, { form: state.value ?? {} }));
|
|
92
|
+
raw = Effect.runSync($cel(props.config.options, { form: formScope.state.value ?? {} }));
|
|
92
93
|
} catch (err) {
|
|
93
94
|
console.error(`[shwfed-form] failed to evaluate options for ${props.fieldId}:`, err);
|
|
94
95
|
return [];
|
|
@@ -175,9 +176,10 @@ function handleClear() {
|
|
|
175
176
|
</FieldLabel>
|
|
176
177
|
<div
|
|
177
178
|
v-if="effectiveReadonly"
|
|
178
|
-
class="min-h-9 py-1.5 text-sm
|
|
179
|
+
class="min-h-9 py-1.5 text-sm"
|
|
180
|
+
:class="selectedLabel ? 'text-zinc-700' : 'font-mono text-zinc-300 select-none'"
|
|
179
181
|
>
|
|
180
|
-
{{ selectedLabel || "
|
|
182
|
+
{{ selectedLabel || "-" }}
|
|
181
183
|
</div>
|
|
182
184
|
<Popover
|
|
183
185
|
v-else
|
package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue
CHANGED
|
@@ -12,14 +12,15 @@ import { Markdown } from "../../../../ui/markdown";
|
|
|
12
12
|
import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
|
|
13
13
|
import { useFieldValidation } from "../../../utils/validation";
|
|
14
14
|
import { useFormReadonly } from "../../../utils/readonly";
|
|
15
|
-
import { useFormState } from "../../../utils/state";
|
|
15
|
+
import { useFormScope, useFormState } from "../../../utils/state";
|
|
16
16
|
defineOptions({ name: "ShwfedDateFieldRuntime" });
|
|
17
17
|
const props = defineProps({
|
|
18
18
|
fieldId: { type: String, required: true },
|
|
19
19
|
config: { type: null, required: true }
|
|
20
20
|
});
|
|
21
21
|
const { locale } = useI18n();
|
|
22
|
-
const {
|
|
22
|
+
const { getAt, setAt } = useFormState();
|
|
23
|
+
const formScope = useFormScope();
|
|
23
24
|
const inherited = injectCELContext();
|
|
24
25
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
25
26
|
const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
|
|
@@ -32,7 +33,7 @@ const tooltipText = computed(
|
|
|
32
33
|
function evalBool(expression, label) {
|
|
33
34
|
if (!expression) return false;
|
|
34
35
|
try {
|
|
35
|
-
return Effect.runSync($cel(expression, { form: state.value ?? {} }));
|
|
36
|
+
return Effect.runSync($cel(expression, { form: formScope.state.value ?? {} }));
|
|
36
37
|
} catch (err) {
|
|
37
38
|
console.error(`[shwfed-form] failed to evaluate ${label} for ${props.fieldId}:`, err);
|
|
38
39
|
return false;
|
|
@@ -54,7 +55,7 @@ const shortcuts = computed(() => {
|
|
|
54
55
|
name: preset.label,
|
|
55
56
|
value: () => {
|
|
56
57
|
try {
|
|
57
|
-
const d = Effect.runSync($cel(preset.value, { form: state.value ?? {} }));
|
|
58
|
+
const d = Effect.runSync($cel(preset.value, { form: formScope.state.value ?? {} }));
|
|
58
59
|
return formatDate(d, resolvedValueFormat.value);
|
|
59
60
|
} catch (err) {
|
|
60
61
|
console.error(`[shwfed-form] failed to evaluate preset "${preset.value}" for ${props.fieldId}:`, err);
|
|
@@ -115,9 +116,10 @@ const { isRequired, errors, warnings, visible } = useFieldValidation({
|
|
|
115
116
|
</FieldLabel>
|
|
116
117
|
<div
|
|
117
118
|
v-if="effectiveReadonly"
|
|
118
|
-
class="min-h-9 py-1.5 text-sm
|
|
119
|
+
class="min-h-9 py-1.5 text-sm"
|
|
120
|
+
:class="model ? 'text-zinc-700' : 'font-mono text-zinc-300 select-none'"
|
|
119
121
|
>
|
|
120
|
-
{{ model || "
|
|
122
|
+
{{ model || "-" }}
|
|
121
123
|
</div>
|
|
122
124
|
<DatePicker
|
|
123
125
|
v-else
|