comfyui-frontend-package 1.38.5__py3-none-any.whl → 1.38.6__py3-none-any.whl
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.
- comfyui_frontend_package/static/assets/{AboutPanel-CHse5rOA.js → AboutPanel-lkjGFasi.js} +2 -2
- comfyui_frontend_package/static/assets/{AboutPanel-CHse5rOA.js.map → AboutPanel-lkjGFasi.js.map} +1 -1
- comfyui_frontend_package/static/assets/{AudioPreviewPlayer-CAa8V66L.js → AudioPreviewPlayer-BxCSKPl9.js} +2 -2
- comfyui_frontend_package/static/assets/{AudioPreviewPlayer-CAa8V66L.js.map → AudioPreviewPlayer-BxCSKPl9.js.map} +1 -1
- comfyui_frontend_package/static/assets/AudioPreviewPlayer-CkxKvcVf.js +1 -0
- comfyui_frontend_package/static/assets/{BaseViewTemplate-DA6zfigT.js → BaseViewTemplate-CjODF2hh.js} +2 -2
- comfyui_frontend_package/static/assets/{BaseViewTemplate-DA6zfigT.js.map → BaseViewTemplate-CjODF2hh.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudAuthTimeoutView-9OPBS1hE.js → CloudAuthTimeoutView-D-QkjPNh.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudAuthTimeoutView-9OPBS1hE.js.map → CloudAuthTimeoutView-D-QkjPNh.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudBadge-BnLiAHDN.js → CloudBadge-B4nmLus2.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudBadge-BnLiAHDN.js.map → CloudBadge-B4nmLus2.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudForgotPasswordView-BqDR_C7K.js → CloudForgotPasswordView-DOEV9hGr.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudForgotPasswordView-BqDR_C7K.js.map → CloudForgotPasswordView-DOEV9hGr.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudLayoutView-vTrrVUOY.js → CloudLayoutView-ShKH6rRV.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudLayoutView-vTrrVUOY.js.map → CloudLayoutView-ShKH6rRV.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudLoginView-T17euJly.js → CloudLoginView-C3Te42U9.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudLoginView-T17euJly.js.map → CloudLoginView-C3Te42U9.js.map} +1 -1
- comfyui_frontend_package/static/assets/CloudRunButtonWrapper-Cub7EB34.js +3 -0
- comfyui_frontend_package/static/assets/{CloudRunButtonWrapper-hQc4BNkX.js.map → CloudRunButtonWrapper-Cub7EB34.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudSignupView-vEDby5k3.js → CloudSignupView-X2oiL3ZR.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudSignupView-vEDby5k3.js.map → CloudSignupView-X2oiL3ZR.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudSubscriptionRedirectView-DPyO745g.js → CloudSubscriptionRedirectView-UjNv8emo.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudSubscriptionRedirectView-DPyO745g.js.map → CloudSubscriptionRedirectView-UjNv8emo.js.map} +1 -1
- comfyui_frontend_package/static/assets/{CloudSurveyView-CBtTd9Ru.js → CloudSurveyView-IaiucCTP.js} +2 -2
- comfyui_frontend_package/static/assets/{CloudSurveyView-CBtTd9Ru.js.map → CloudSurveyView-IaiucCTP.js.map} +1 -1
- comfyui_frontend_package/static/assets/ComfyQueueButton-BppnHbrl.js +1 -0
- comfyui_frontend_package/static/assets/{ComfyQueueButton-MZrp7wYJ.js → ComfyQueueButton-HjSIKZKO.js} +2 -2
- comfyui_frontend_package/static/assets/{ComfyQueueButton-MZrp7wYJ.js.map → ComfyQueueButton-HjSIKZKO.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ExtensionPanel-CrWVGUtg.js → ExtensionPanel-Bzb9QtKj.js} +2 -2
- comfyui_frontend_package/static/assets/{ExtensionPanel-CrWVGUtg.js.map → ExtensionPanel-Bzb9QtKj.js.map} +1 -1
- comfyui_frontend_package/static/assets/{GlobalToast-BiCmpIvO.js → GlobalToast-BSCvu6Hw.js} +2 -2
- comfyui_frontend_package/static/assets/{GlobalToast-BiCmpIvO.js.map → GlobalToast-BSCvu6Hw.js.map} +1 -1
- comfyui_frontend_package/static/assets/{GraphView-BCkpNGgz.js → GraphView-gYVCtm1V.js} +5 -5
- comfyui_frontend_package/static/assets/GraphView-gYVCtm1V.js.map +1 -0
- comfyui_frontend_package/static/assets/{KeybindingPanel-CAXL5TlV.js → KeybindingPanel-DF-bG4iO.js} +2 -2
- comfyui_frontend_package/static/assets/{KeybindingPanel-CAXL5TlV.js.map → KeybindingPanel-DF-bG4iO.js.map} +1 -1
- comfyui_frontend_package/static/assets/{LegacyCreditsPanel-6vR8koQy.js → LegacyCreditsPanel-D-CboO8k.js} +2 -2
- comfyui_frontend_package/static/assets/{LegacyCreditsPanel-6vR8koQy.js.map → LegacyCreditsPanel-D-CboO8k.js.map} +1 -1
- comfyui_frontend_package/static/assets/Load3D-c9UwgGoI.js +1 -0
- comfyui_frontend_package/static/assets/{Load3D-ei1BUF9O.js → Load3D-vYr8M3jJ.js} +2 -2
- comfyui_frontend_package/static/assets/{Load3D-ei1BUF9O.js.map → Load3D-vYr8M3jJ.js.map} +1 -1
- comfyui_frontend_package/static/assets/{PanelTemplate-BjN5XNg2.js → PanelTemplate-BJda9e5J.js} +2 -2
- comfyui_frontend_package/static/assets/{PanelTemplate-BjN5XNg2.js.map → PanelTemplate-BJda9e5J.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ServerConfigPanel-CxovH9Qk.js → ServerConfigPanel-VsC6xlZJ.js} +2 -2
- comfyui_frontend_package/static/assets/{ServerConfigPanel-CxovH9Qk.js.map → ServerConfigPanel-VsC6xlZJ.js.map} +1 -1
- comfyui_frontend_package/static/assets/{SubscribeButton-CTOQRkfg.js → SubscribeButton-DZBycfCA.js} +2 -2
- comfyui_frontend_package/static/assets/{SubscribeButton-CTOQRkfg.js.map → SubscribeButton-DZBycfCA.js.map} +1 -1
- comfyui_frontend_package/static/assets/{SubscribeToRun-DnXzV8y0.js → SubscribeToRun-4YolxBOL.js} +2 -2
- comfyui_frontend_package/static/assets/{SubscribeToRun-DnXzV8y0.js.map → SubscribeToRun-4YolxBOL.js.map} +1 -1
- comfyui_frontend_package/static/assets/{SubscriptionPanel-D9uv7z8f.js → SubscriptionPanel-B6txX4Vm.js} +2 -2
- comfyui_frontend_package/static/assets/{SubscriptionPanel-D9uv7z8f.js.map → SubscriptionPanel-B6txX4Vm.js.map} +1 -1
- comfyui_frontend_package/static/assets/{SubscriptionRequiredDialogContent--VmT16oc.js → SubscriptionRequiredDialogContent-COEF2VQ_.js} +2 -2
- comfyui_frontend_package/static/assets/{SubscriptionRequiredDialogContent--VmT16oc.js.map → SubscriptionRequiredDialogContent-COEF2VQ_.js.map} +1 -1
- comfyui_frontend_package/static/assets/{UserCheckView-spD3LyMu.js → UserCheckView-x-fkcYzc.js} +2 -2
- comfyui_frontend_package/static/assets/{UserCheckView-spD3LyMu.js.map → UserCheckView-x-fkcYzc.js.map} +1 -1
- comfyui_frontend_package/static/assets/{UserPanel-Su6NtJ5q.js → UserPanel-7N9QknQj.js} +2 -2
- comfyui_frontend_package/static/assets/{UserPanel-Su6NtJ5q.js.map → UserPanel-7N9QknQj.js.map} +1 -1
- comfyui_frontend_package/static/assets/{UserSelectView-C5LBOPcv.js → UserSelectView-BYjOkfSa.js} +2 -2
- comfyui_frontend_package/static/assets/{UserSelectView-C5LBOPcv.js.map → UserSelectView-BYjOkfSa.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ValueControlPopover-BdlDzT8l.js → ValueControlPopover-BPAa35QG.js} +2 -2
- comfyui_frontend_package/static/assets/{ValueControlPopover-BdlDzT8l.js.map → ValueControlPopover-BPAa35QG.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetAudioUI-BDZxDx_r.js → WidgetAudioUI-Dw-r3Ews.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetAudioUI-BDZxDx_r.js.map → WidgetAudioUI-Dw-r3Ews.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetImageCrop-CYRW7t2Q.js → WidgetImageCrop-kERy9g5I.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetImageCrop-CYRW7t2Q.js.map → WidgetImageCrop-kERy9g5I.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetInputNumber-BOKO36G3.js → WidgetInputNumber-BaClCNAC.js} +1 -1
- comfyui_frontend_package/static/assets/WidgetInputNumber-DU_D0Fzy.js +3 -0
- comfyui_frontend_package/static/assets/WidgetInputNumber-DU_D0Fzy.js.map +1 -0
- comfyui_frontend_package/static/assets/{WidgetLegacy-Bslv9wZZ.js → WidgetLegacy-B4nipUM9.js} +1 -1
- comfyui_frontend_package/static/assets/{WidgetRecordAudio-Bzy8PIzN.js → WidgetRecordAudio-Nk8dH238.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetRecordAudio-Bzy8PIzN.js.map → WidgetRecordAudio-Nk8dH238.js.map} +1 -1
- comfyui_frontend_package/static/assets/WidgetSelect-DzZPpO_-.js +1 -0
- comfyui_frontend_package/static/assets/{WidgetSelect-zgrFVzHH.js → WidgetSelect-nSQrk_hd.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetSelect-zgrFVzHH.js.map → WidgetSelect-nSQrk_hd.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetWithControl-Dh2FWOiA.js → WidgetWithControl-Da6zUB5e.js} +3 -3
- comfyui_frontend_package/static/assets/{WidgetWithControl-Dh2FWOiA.js.map → WidgetWithControl-Da6zUB5e.js.map} +1 -1
- comfyui_frontend_package/static/assets/{api-CUAc7rDA.js → api-Dwq2LQIW.js} +4 -4
- comfyui_frontend_package/static/assets/api-Dwq2LQIW.js.map +1 -0
- comfyui_frontend_package/static/assets/{audioService-DvndbCi2.js → audioService-DvVaKhuU.js} +2 -2
- comfyui_frontend_package/static/assets/{audioService-DvndbCi2.js.map → audioService-DvVaKhuU.js.map} +1 -1
- comfyui_frontend_package/static/assets/{audioUtils-DpjpcKbH.js → audioUtils-DD4rUYVZ.js} +2 -2
- comfyui_frontend_package/static/assets/{audioUtils-DpjpcKbH.js.map → audioUtils-DD4rUYVZ.js.map} +1 -1
- comfyui_frontend_package/static/assets/{auth-B8ZZ0KKQ.js → auth-B9axG-yZ.js} +2 -2
- comfyui_frontend_package/static/assets/{auth-B8ZZ0KKQ.js.map → auth-B9axG-yZ.js.map} +1 -1
- comfyui_frontend_package/static/assets/auth-D74DTev8.js +1 -0
- comfyui_frontend_package/static/assets/{cloudBadges-C1a7fBky.js → cloudBadges-D5mGJbRy.js} +2 -2
- comfyui_frontend_package/static/assets/{cloudBadges-C1a7fBky.js.map → cloudBadges-D5mGJbRy.js.map} +1 -1
- comfyui_frontend_package/static/assets/{cloudFeedbackTopbarButton-DR0T8sWG.js → cloudFeedbackTopbarButton-RZUssOmb.js} +2 -2
- comfyui_frontend_package/static/assets/{cloudFeedbackTopbarButton-DR0T8sWG.js.map → cloudFeedbackTopbarButton-RZUssOmb.js.map} +1 -1
- comfyui_frontend_package/static/assets/{cloudRemoteConfig-DhMjC5TB.js → cloudRemoteConfig-F9J0iGyF.js} +2 -2
- comfyui_frontend_package/static/assets/{cloudRemoteConfig-DhMjC5TB.js.map → cloudRemoteConfig-F9J0iGyF.js.map} +1 -1
- comfyui_frontend_package/static/assets/{cloudSessionCookie-Duxk6ux1.js → cloudSessionCookie-MEORlqtg.js} +2 -2
- comfyui_frontend_package/static/assets/{cloudSessionCookie-Duxk6ux1.js.map → cloudSessionCookie-MEORlqtg.js.map} +1 -1
- comfyui_frontend_package/static/assets/{cloudSubscription-B8l6B9Nx.js → cloudSubscription-CuWNXKVx.js} +2 -2
- comfyui_frontend_package/static/assets/{cloudSubscription-B8l6B9Nx.js.map → cloudSubscription-CuWNXKVx.js.map} +1 -1
- comfyui_frontend_package/static/assets/{core-DBfeqMDR.js → core-IYu8XAIx.js} +4 -4
- comfyui_frontend_package/static/assets/{core-DBfeqMDR.js.map → core-IYu8XAIx.js.map} +1 -1
- comfyui_frontend_package/static/assets/{dialogService-BZ1FmjZL.js → dialogService-YG0RH337.js} +9 -9
- comfyui_frontend_package/static/assets/{dialogService-BZ1FmjZL.js.map → dialogService-YG0RH337.js.map} +1 -1
- comfyui_frontend_package/static/assets/firebaseAuthStore-DnNaPbuZ.js +1 -0
- comfyui_frontend_package/static/assets/{graphHasMissingNodes-C79Wi51S.js → graphHasMissingNodes-BhD1N6zI.js} +2 -2
- comfyui_frontend_package/static/assets/{graphHasMissingNodes-C79Wi51S.js.map → graphHasMissingNodes-BhD1N6zI.js.map} +1 -1
- comfyui_frontend_package/static/assets/{index-CGxJFSof.js → index-BMy3twho.js} +3 -3
- comfyui_frontend_package/static/assets/{index-CGxJFSof.js.map → index-BMy3twho.js.map} +1 -1
- comfyui_frontend_package/static/assets/{index-DNpOhRra.css → index-KMO9qFHH.css} +1 -1
- comfyui_frontend_package/static/assets/{keybindingService-B88NjeAU.js → keybindingService-CBLPjYHI.js} +2 -2
- comfyui_frontend_package/static/assets/{keybindingService-B88NjeAU.js.map → keybindingService-CBLPjYHI.js.map} +1 -1
- comfyui_frontend_package/static/assets/{releaseStore-x0vHjxrw.js → releaseStore-DDOxzkVb.js} +2 -2
- comfyui_frontend_package/static/assets/{releaseStore-x0vHjxrw.js.map → releaseStore-DDOxzkVb.js.map} +1 -1
- comfyui_frontend_package/static/assets/releaseStore-iVkqunL8.js +1 -0
- comfyui_frontend_package/static/assets/{subscriptionCheckoutUtil-B_OvUP2T.js → subscriptionCheckoutUtil-DswSOreM.js} +2 -2
- comfyui_frontend_package/static/assets/{subscriptionCheckoutUtil-B_OvUP2T.js.map → subscriptionCheckoutUtil-DswSOreM.js.map} +1 -1
- comfyui_frontend_package/static/assets/{useCurrentUser-BJcn2Vgo.js → useCurrentUser-NdaCJzIK.js} +1 -1
- comfyui_frontend_package/static/assets/{useErrorHandling-CI8_F4yx.js → useErrorHandling-Cfa5N_7c.js} +2 -2
- comfyui_frontend_package/static/assets/{useErrorHandling-CI8_F4yx.js.map → useErrorHandling-Cfa5N_7c.js.map} +1 -1
- comfyui_frontend_package/static/assets/{useSubscriptionDialog-Chxkdny5.js → useSubscriptionDialog-792qfEJ2.js} +3 -3
- comfyui_frontend_package/static/assets/{useSubscriptionDialog-Chxkdny5.js.map → useSubscriptionDialog-792qfEJ2.js.map} +1 -1
- comfyui_frontend_package/static/assets/useSubscriptionDialog-B-eGeK3j.js +1 -0
- comfyui_frontend_package/static/assets/{userStore-BkgQPjq6.js → userStore-BAS9m9W6.js} +2 -2
- comfyui_frontend_package/static/assets/{userStore-BkgQPjq6.js.map → userStore-BAS9m9W6.js.map} +1 -1
- comfyui_frontend_package/static/assets/vendor-three-BFcUNSs9.js.map +1 -1
- comfyui_frontend_package/static/index.html +1 -1
- {comfyui_frontend_package-1.38.5.dist-info → comfyui_frontend_package-1.38.6.dist-info}/METADATA +1 -1
- {comfyui_frontend_package-1.38.5.dist-info → comfyui_frontend_package-1.38.6.dist-info}/RECORD +126 -126
- comfyui_frontend_package/static/assets/AudioPreviewPlayer-BoEdyGI_.js +0 -1
- comfyui_frontend_package/static/assets/CloudRunButtonWrapper-hQc4BNkX.js +0 -3
- comfyui_frontend_package/static/assets/ComfyQueueButton-BbQnRThI.js +0 -1
- comfyui_frontend_package/static/assets/GraphView-BCkpNGgz.js.map +0 -1
- comfyui_frontend_package/static/assets/Load3D-DHBmC_AU.js +0 -1
- comfyui_frontend_package/static/assets/WidgetInputNumber-DGKypM5j.js +0 -3
- comfyui_frontend_package/static/assets/WidgetInputNumber-DGKypM5j.js.map +0 -1
- comfyui_frontend_package/static/assets/WidgetSelect-DsJGH12l.js +0 -1
- comfyui_frontend_package/static/assets/api-CUAc7rDA.js.map +0 -1
- comfyui_frontend_package/static/assets/auth-D3RiiqZ8.js +0 -1
- comfyui_frontend_package/static/assets/firebaseAuthStore-CZgxeMyf.js +0 -1
- comfyui_frontend_package/static/assets/releaseStore-CubqSv5t.js +0 -1
- comfyui_frontend_package/static/assets/useSubscriptionDialog-BzMzio2H.js +0 -1
- {comfyui_frontend_package-1.38.5.dist-info → comfyui_frontend_package-1.38.6.dist-info}/WHEEL +0 -0
- {comfyui_frontend_package-1.38.5.dist-info → comfyui_frontend_package-1.38.6.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-primevue-DcMRXJN3.js";import"./vendor-other-DlQF6V2E.js";import"./api-CUAc7rDA.js";import"./remoteConfig-CZcEXsZS.js";import"./colorUtil-CzxntCbX.js";import"./useErrorHandling-CI8_F4yx.js";import"./Button-Do2I1OAA.js";import"./PanelTemplate-BjN5XNg2.js";import"./dialogService-BZ1FmjZL.js";import"./vendor-tiptap-_UqYL7N_.js";import"./vendor-xterm-BU_lcTPR.js";import"./vendor-three-BFcUNSs9.js";import"./markdownRendererUtil-DglHsU8t.js";import"./userStore-BkgQPjq6.js";import{t as L}from"./Load3D-ei1BUF9O.js";export{L as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var ae=Object.defineProperty;var v=(n,l)=>ae(n,"name",{value:l,configurable:!0});import{F as ne}from"./vendor-primevue-DcMRXJN3.js";import{Ba as W,Co as T,Do as H,Ha as z,Jo as d,Ko as oe,Ma as y,Oo as ue,Ua as F,Va as h,Xo as M,Ya as U,_o as le,do as b,go as ie,ja as I,mi as re,mo as se,no as $,qa as de,ro as S,xo as L,za as s,zo as k}from"./vendor-other-DlQF6V2E.js";import{n as pe}from"./vendor-vue-D9IUuwPJ.js";import{t as me}from"./widget-DNFXpyU8.js";import{t as g}from"./src-DTrob8OL.js";import{t as ve}from"./_plugin-vue_export-helper-PHE0iSCb.js";import{t as ce}from"./Slider-De1ykl8L.js";import{a as fe,o as j,r as ge}from"./widgetPropFilter-CKhENku4.js";import{t as J}from"./layout-C9TPTaej.js";import{t as q}from"./WidgetLayoutField-DXI3EnEF.js";import{t as be}from"./WidgetWithControl-Dh2FWOiA.js";var we=["aria-label"],Ve=["disabled"],xe={class:"relative min-w-[4ch] flex-1 py-1.5 my-0.25"},_e=["aria-valuenow","aria-valuemin","aria-valuemax","value","disabled"],Ne=["disabled"],G="w-8 bg-transparent border-0 text-sm text-smoke-700",ye=U({__name:"WidgetInputNumberInput",props:$({widget:{}},{modelValue:{default:0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const{n:l}=pe(),a=n,i=T("widgetContainer"),o=T("inputField"),u=k(!1);re(i,()=>{u.value&&(u.value=!1)});const c=s(()=>l(1.1).replace(/\p{Number}/gu,"")),_=s(()=>l(11111).replace(/\p{Number}/gu,""));function C(e){return e.replaceAll(_.value,"").replaceAll(c.value,".")}v(C,"unformatValue");const r=L(n,"modelValue"),p=s(()=>{const e=f.value??r.value;return isFinite(e)?l(e,{useGrouping:Y.value,minimumFractionDigits:x.value,maximumFractionDigits:x.value}):`${e}`});function B(e){const{target:t}=e;if(!(t instanceof HTMLInputElement))return;const P=me(C(t.value));P!==void 0?r.value=Math.min(m.value.max,Math.max(m.value.min,P)):t.value=p.value,u.value=!1}v(B,"updateValue");const R=s(()=>r.value>m.value.min&&!a.widget.options?.disabled),A=s(()=>r.value<m.value.max&&!a.widget.options?.disabled),m=s(()=>j(a.widget.options,ge)),x=s(()=>{const e=a.widget.options?.precision;return typeof e=="number"&&e>=0?e:void 0}),w=s(()=>{if(a.widget.options?.step2!==void 0)return Number(a.widget.options.step2);const e=a.widget.options?.step;return e!==void 0&&e>10?Number(e)/10:x.value!==void 0?x.value===0?1:Number((1/Math.pow(10,x.value)).toFixed(x.value)):0}),Y=s(()=>a.widget.options?.useGrouping===!0),E=s(()=>{const e=r.value??0;return!Number.isFinite(e)||Math.abs(e)>Number.MAX_SAFE_INTEGER});function D(e){r.value=Math.min(m.value.max,Math.max(m.value.min,r.value+e))}v(D,"updateValueBy");const f=k(),V=k(0);function Q(e){if(a.widget.options?.disabled)return;const{target:t}=e;t instanceof HTMLElement&&(t.setPointerCapture(e.pointerId),f.value=r.value,V.value=0)}v(Q,"handleMouseDown");function Z(e){if(f.value===void 0)return;V.value+=e.movementX;const t=f.value+(V.value/10|0)*w.value;V.value%=10,f.value=Math.min(m.value.max,Math.max(m.value.min,t))}v(Z,"handleMouseMove");function ee(){const e=f.value;e!==void 0&&(r.value=e,f.value=void 0,V.value===0&&(u.value=!0,o.value?.focus(),o.value?.setSelectionRange(0,-1)),V.value=0)}v(ee,"handleMouseUp");const te=s(()=>E.value?"Increment/decrement disabled: value exceeds JavaScript precision limit (±2^53)":null);return(e,t)=>{const P=ie("tooltip");return b(),h(q,{widget:e.widget},{default:H(()=>[ue((b(),F("div",S({ref_key:"widgetContainer",ref:i},m.value,{"aria-label":e.widget.name,class:d(g)(d(J),"grow text-xs flex h-7")}),[E.value?z("",!0):(b(),F("button",{key:0,"data-testid":"decrement",class:M(d(g)(G,"pi pi-minus",!R.value&&"opacity-60")),disabled:!R.value,tabindex:"-1",onClick:t[0]||(t[0]=N=>r.value-=w.value)},null,10,Ve)),W("div",xe,[W("input",{ref_key:"inputField",ref:o,"aria-valuenow":f.value??r.value,"aria-valuemin":m.value.min,"aria-valuemax":m.value.max,class:M(d(g)("bg-transparent border-0 focus:outline-0 p-1 truncate text-sm absolute inset-0")),inputmode:"decimal",value:p.value,role:"spinbutton",tabindex:"0",disabled:e.widget.options?.disabled,autocomplete:"off",autocorrect:"off",spellcheck:"false",onBlur:B,onKeyup:I(B,["enter"]),onKeydown:[t[1]||(t[1]=I(y(N=>D(w.value),["prevent"]),["up"])),t[2]||(t[2]=I(y(N=>D(-w.value),["prevent"]),["down"])),t[3]||(t[3]=I(y(N=>D(10*w.value),["prevent"]),["page-up"])),t[4]||(t[4]=I(y(N=>D(-10*w.value),["prevent"]),["page-down"]))],onDragstart:t[5]||(t[5]=y(()=>{},["prevent"]))},null,42,_e),W("div",{class:M(d(g)("absolute inset-0 z-10 cursor-ew-resize",u.value&&"hidden pointer-events-none")),onPointerdown:Q,onPointermove:Z,onPointerup:ee,onPointercancel:t[6]||(t[6]=()=>{f.value=void 0,V.value=0})},null,34)]),se(e.$slots,"default"),E.value?z("",!0):(b(),F("button",{key:1,"data-testid":"increment",class:M(d(g)(G,"pi pi-plus",!A.value&&"opacity-60")),disabled:!A.value,tabindex:"-1",onClick:t[7]||(t[7]=N=>r.value+=w.value)},null,10,Ne))],16,we)),[[P,te.value]])]),_:3},8,["widget"])}}}),X=ye;function Ie(n,l,a=!1){return s(()=>{const i=oe(l);if(n?.step2!==void 0)return Number(n.step2);const o=n?.step;if(o!==void 0&&o>10)return Number(o)/10;if(i===void 0)return a?void 0:0;if(i===0)return 1;const u=1/Math.pow(10,i);return a?u:Number(u.toFixed(i))})}v(Ie,"useNumberStepCalculation");var K=g("inline-flex items-center justify-center border-0 bg-transparent text-inherit transition-colors duration-150 ease-in-out ","hover:bg-node-component-surface-hovered active:bg-node-component-surface-selected","disabled:bg-node-component-disabled disabled:text-node-icon-disabled disabled:cursor-not-allowed");function Me(n){const{roundedLeft:l=!1,roundedRight:a=!1}=n??{},i=g(K,a&&"rounded-r-lg"),o=g(K,l&&"rounded-l-lg");return{incrementButton:{class:i},decrementButton:{class:o}}}v(Me,"useNumberWidgetButtonPt");var he=U({__name:"WidgetInputNumberSlider",props:$({widget:{}},{modelValue:{default:0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=L(n,"modelValue"),a=k(0),i=v(p=>{p?.length&&(l.value=p[0])},"updateLocalValue"),o=v(p=>{if(p!==void 0){i([p]);return}a.value+=1},"handleNumberInputUpdate"),u=s(()=>j(n.widget.options,fe)),c=n.widget.options?.precision,_=typeof c=="number"&&c>=0?c:void 0,C=Ie(n.widget.options,_,!0),r=Me({roundedLeft:!0,roundedRight:!0});return(p,B)=>(b(),h(q,{widget:p.widget},{default:H(()=>[W("div",{class:M(d(g)(d(J),"flex items-center gap-2 pl-3 pr-2"))},[de(ce,S({"model-value":[l.value]},u.value,{class:"flex-grow text-xs",step:d(C),"aria-label":p.widget.name,"onUpdate:modelValue":i}),null,16,["model-value","step","aria-label"]),(b(),h(d(ne),S({key:a.value,"model-value":l.value},u.value,{step:d(C),"min-fraction-digits":d(_),"max-fraction-digits":d(_),"aria-label":p.widget.name,size:"small","pt:pc-input-text:root":"min-w-[4ch] bg-transparent border-none text-center truncate",class:"w-16",pt:d(r),"onUpdate:modelValue":o}),null,16,["model-value","step","min-fraction-digits","max-fraction-digits","aria-label","pt"]))],2)]),_:1},8,["widget"]))}}),O=ve(he,[["__scopeId","data-v-989ee2f9"]]),Ce=U({__name:"WidgetInputNumber",props:$({widget:{}},{modelValue:{default:0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const l=n,a=L(n,"modelValue"),i=s(()=>!!l.widget.controlWidget);return(o,u)=>i.value?(b(),h(be,{key:0,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=c=>a.value=c),widget:o.widget,component:o.widget.type==="slider"?O:X},null,8,["modelValue","widget","component"])):(b(),h(le(o.widget.type==="slider"?O:X),S({key:1,modelValue:a.value,"onUpdate:modelValue":u[1]||(u[1]=c=>a.value=c),widget:o.widget},o.$attrs),null,16,["modelValue","widget"]))}}),Ae=Ce;export{Ae as t};
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=WidgetInputNumber-DGKypM5j.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetInputNumber-DGKypM5j.js","names":[],"sources":["../../src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumberInput.vue","../../src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumberInput.vue","../../src/renderer/extensions/vueNodes/widgets/composables/useNumberStepCalculation.ts","../../src/renderer/extensions/vueNodes/widgets/composables/useNumberWidgetButtonPt.ts","../../src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumberSlider.vue","../../src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumberSlider.vue","../../src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumber.vue","../../src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumber.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onClickOutside } from '@vueuse/core'\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport { evaluateInput } from '@/lib/litegraph/src/utils/widget'\nimport type { SimplifiedWidget } from '@/types/simplifiedWidget'\nimport { cn } from '@/utils/tailwindUtil'\nimport {\n INPUT_EXCLUDED_PROPS,\n filterWidgetProps\n} from '@/utils/widgetPropFilter'\n\nimport { WidgetInputBaseClass } from './layout'\nimport WidgetLayoutField from './layout/WidgetLayoutField.vue'\n\nconst { n } = useI18n()\n\nconst props = defineProps<{\n widget: SimplifiedWidget<number>\n}>()\n\nconst widgetContainer = useTemplateRef<HTMLDivElement>('widgetContainer')\nconst inputField = useTemplateRef<HTMLInputElement>('inputField')\nconst textEdit = ref(false)\nonClickOutside(widgetContainer, () => {\n if (textEdit.value) {\n textEdit.value = false\n }\n})\n\nconst decimalSeparator = computed(() => n(1.1).replace(/\\p{Number}/gu, ''))\nconst groupSeparator = computed(() => n(11111).replace(/\\p{Number}/gu, ''))\nfunction unformatValue(value: string) {\n return value\n .replaceAll(groupSeparator.value, '')\n .replaceAll(decimalSeparator.value, '.')\n}\n\nconst modelValue = defineModel<number>({ default: 0 })\n\nconst formattedValue = computed(() => {\n const unformattedValue = dragValue.value ?? modelValue.value\n if (!isFinite(unformattedValue)) return `${unformattedValue}`\n\n return n(unformattedValue, {\n useGrouping: useGrouping.value,\n minimumFractionDigits: precision.value,\n maximumFractionDigits: precision.value\n })\n})\n\nfunction updateValue(e: UIEvent) {\n const { target } = e\n if (!(target instanceof HTMLInputElement)) return\n const parsed = evaluateInput(unformatValue(target.value))\n if (parsed !== undefined)\n modelValue.value = Math.min(\n filteredProps.value.max,\n Math.max(filteredProps.value.min, parsed)\n )\n else target.value = formattedValue.value\n\n textEdit.value = false\n}\n\nconst sharedButtonClass = 'w-8 bg-transparent border-0 text-sm text-smoke-700'\nconst canDecrement = computed(\n () =>\n modelValue.value > filteredProps.value.min &&\n !props.widget.options?.disabled\n)\nconst canIncrement = computed(\n () =>\n modelValue.value < filteredProps.value.max &&\n !props.widget.options?.disabled\n)\n\nconst filteredProps = computed(() =>\n filterWidgetProps(props.widget.options, INPUT_EXCLUDED_PROPS)\n)\n\n// Get the precision value for proper number formatting\nconst precision = computed(() => {\n const p = props.widget.options?.precision\n // Treat negative or non-numeric precision as undefined\n return typeof p === 'number' && p >= 0 ? p : undefined\n})\n\n// Calculate the step value based on precision or widget options\nconst stepValue = computed(() => {\n // Use step2 (correct input spec value) if available\n if (props.widget.options?.step2 !== undefined) {\n return Number(props.widget.options.step2)\n }\n // Use step / 10 for custom large step values (> 10) to match litegraph behavior\n // This is important for extensions like Impact Pack that use custom step values (e.g., 640)\n // We skip default step values (1, 10) to avoid affecting normal widgets\n const step = props.widget.options?.step\n if (step !== undefined && step > 10) {\n return Number(step) / 10\n }\n // Otherwise, derive from precision\n if (precision.value !== undefined) {\n if (precision.value === 0) {\n return 1\n }\n // For precision > 0, step = 1 / (10^precision)\n // precision 1 → 0.1, precision 2 → 0.01, etc.\n return Number((1 / Math.pow(10, precision.value)).toFixed(precision.value))\n }\n // Default to 'any' for unrestricted stepping\n return 0\n})\n\n// Disable grouping separators by default unless explicitly enabled by the node author\nconst useGrouping = computed(() => {\n return props.widget.options?.useGrouping === true\n})\n\n// Check if increment/decrement buttons should be disabled due to precision limits\nconst buttonsDisabled = computed(() => {\n const currentValue = modelValue.value ?? 0\n return (\n !Number.isFinite(currentValue) ||\n Math.abs(currentValue) > Number.MAX_SAFE_INTEGER\n )\n})\n\nfunction updateValueBy(delta: number) {\n modelValue.value = Math.min(\n filteredProps.value.max,\n Math.max(filteredProps.value.min, modelValue.value + delta)\n )\n}\n\nconst dragValue = ref<number>()\nconst dragDelta = ref(0)\nfunction handleMouseDown(e: PointerEvent) {\n if (props.widget.options?.disabled) return\n const { target } = e\n if (!(target instanceof HTMLElement)) return\n target.setPointerCapture(e.pointerId)\n dragValue.value = modelValue.value\n dragDelta.value = 0\n}\nfunction handleMouseMove(e: PointerEvent) {\n if (dragValue.value === undefined) return\n dragDelta.value += e.movementX\n const unclippedValue =\n dragValue.value + ((dragDelta.value / 10) | 0) * stepValue.value\n dragDelta.value %= 10\n dragValue.value = Math.min(\n filteredProps.value.max,\n Math.max(filteredProps.value.min, unclippedValue)\n )\n}\nfunction handleMouseUp() {\n const newValue = dragValue.value\n if (newValue === undefined) return\n modelValue.value = newValue\n dragValue.value = undefined\n\n if (dragDelta.value === 0) {\n textEdit.value = true\n inputField.value?.focus()\n inputField.value?.setSelectionRange(0, -1)\n }\n dragDelta.value = 0\n}\n\nconst buttonTooltip = computed(() => {\n if (buttonsDisabled.value) {\n return 'Increment/decrement disabled: value exceeds JavaScript precision limit (±2^53)'\n }\n return null\n})\n</script>\n\n<template>\n <WidgetLayoutField :widget>\n <div\n ref=\"widgetContainer\"\n v-tooltip=\"buttonTooltip\"\n v-bind=\"filteredProps\"\n :aria-label=\"widget.name\"\n :class=\"cn(WidgetInputBaseClass, 'grow text-xs flex h-7')\"\n >\n <button\n v-if=\"!buttonsDisabled\"\n data-testid=\"decrement\"\n :class=\"\n cn(sharedButtonClass, 'pi pi-minus', !canDecrement && 'opacity-60')\n \"\n :disabled=\"!canDecrement\"\n tabindex=\"-1\"\n @click=\"modelValue -= stepValue\"\n />\n <div class=\"relative min-w-[4ch] flex-1 py-1.5 my-0.25\">\n <input\n ref=\"inputField\"\n :aria-valuenow=\"dragValue ?? modelValue\"\n :aria-valuemin=\"filteredProps.min\"\n :aria-valuemax=\"filteredProps.max\"\n :class=\"\n cn(\n 'bg-transparent border-0 focus:outline-0 p-1 truncate text-sm absolute inset-0'\n )\n \"\n inputmode=\"decimal\"\n :value=\"formattedValue\"\n role=\"spinbutton\"\n tabindex=\"0\"\n :disabled=\"widget.options?.disabled\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n @blur=\"updateValue\"\n @keyup.enter=\"updateValue\"\n @keydown.up.prevent=\"updateValueBy(stepValue)\"\n @keydown.down.prevent=\"updateValueBy(-stepValue)\"\n @keydown.page-up.prevent=\"updateValueBy(10 * stepValue)\"\n @keydown.page-down.prevent=\"updateValueBy(-10 * stepValue)\"\n @dragstart.prevent\n />\n <div\n :class=\"\n cn(\n 'absolute inset-0 z-10 cursor-ew-resize',\n textEdit && 'hidden pointer-events-none'\n )\n \"\n @pointerdown=\"handleMouseDown\"\n @pointermove=\"handleMouseMove\"\n @pointerup=\"handleMouseUp\"\n @pointercancel=\"\n () => {\n dragValue = undefined\n dragDelta = 0\n }\n \"\n />\n </div>\n\n <slot />\n <button\n v-if=\"!buttonsDisabled\"\n data-testid=\"increment\"\n :class=\"\n cn(sharedButtonClass, 'pi pi-plus', !canIncrement && 'opacity-60')\n \"\n :disabled=\"!canIncrement\"\n tabindex=\"-1\"\n @click=\"modelValue += stepValue\"\n />\n </div>\n </WidgetLayoutField>\n</template>\n","<script setup lang=\"ts\">\nimport { onClickOutside } from '@vueuse/core'\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport { evaluateInput } from '@/lib/litegraph/src/utils/widget'\nimport type { SimplifiedWidget } from '@/types/simplifiedWidget'\nimport { cn } from '@/utils/tailwindUtil'\nimport {\n INPUT_EXCLUDED_PROPS,\n filterWidgetProps\n} from '@/utils/widgetPropFilter'\n\nimport { WidgetInputBaseClass } from './layout'\nimport WidgetLayoutField from './layout/WidgetLayoutField.vue'\n\nconst { n } = useI18n()\n\nconst props = defineProps<{\n widget: SimplifiedWidget<number>\n}>()\n\nconst widgetContainer = useTemplateRef<HTMLDivElement>('widgetContainer')\nconst inputField = useTemplateRef<HTMLInputElement>('inputField')\nconst textEdit = ref(false)\nonClickOutside(widgetContainer, () => {\n if (textEdit.value) {\n textEdit.value = false\n }\n})\n\nconst decimalSeparator = computed(() => n(1.1).replace(/\\p{Number}/gu, ''))\nconst groupSeparator = computed(() => n(11111).replace(/\\p{Number}/gu, ''))\nfunction unformatValue(value: string) {\n return value\n .replaceAll(groupSeparator.value, '')\n .replaceAll(decimalSeparator.value, '.')\n}\n\nconst modelValue = defineModel<number>({ default: 0 })\n\nconst formattedValue = computed(() => {\n const unformattedValue = dragValue.value ?? modelValue.value\n if (!isFinite(unformattedValue)) return `${unformattedValue}`\n\n return n(unformattedValue, {\n useGrouping: useGrouping.value,\n minimumFractionDigits: precision.value,\n maximumFractionDigits: precision.value\n })\n})\n\nfunction updateValue(e: UIEvent) {\n const { target } = e\n if (!(target instanceof HTMLInputElement)) return\n const parsed = evaluateInput(unformatValue(target.value))\n if (parsed !== undefined)\n modelValue.value = Math.min(\n filteredProps.value.max,\n Math.max(filteredProps.value.min, parsed)\n )\n else target.value = formattedValue.value\n\n textEdit.value = false\n}\n\nconst sharedButtonClass = 'w-8 bg-transparent border-0 text-sm text-smoke-700'\nconst canDecrement = computed(\n () =>\n modelValue.value > filteredProps.value.min &&\n !props.widget.options?.disabled\n)\nconst canIncrement = computed(\n () =>\n modelValue.value < filteredProps.value.max &&\n !props.widget.options?.disabled\n)\n\nconst filteredProps = computed(() =>\n filterWidgetProps(props.widget.options, INPUT_EXCLUDED_PROPS)\n)\n\n// Get the precision value for proper number formatting\nconst precision = computed(() => {\n const p = props.widget.options?.precision\n // Treat negative or non-numeric precision as undefined\n return typeof p === 'number' && p >= 0 ? p : undefined\n})\n\n// Calculate the step value based on precision or widget options\nconst stepValue = computed(() => {\n // Use step2 (correct input spec value) if available\n if (props.widget.options?.step2 !== undefined) {\n return Number(props.widget.options.step2)\n }\n // Use step / 10 for custom large step values (> 10) to match litegraph behavior\n // This is important for extensions like Impact Pack that use custom step values (e.g., 640)\n // We skip default step values (1, 10) to avoid affecting normal widgets\n const step = props.widget.options?.step\n if (step !== undefined && step > 10) {\n return Number(step) / 10\n }\n // Otherwise, derive from precision\n if (precision.value !== undefined) {\n if (precision.value === 0) {\n return 1\n }\n // For precision > 0, step = 1 / (10^precision)\n // precision 1 → 0.1, precision 2 → 0.01, etc.\n return Number((1 / Math.pow(10, precision.value)).toFixed(precision.value))\n }\n // Default to 'any' for unrestricted stepping\n return 0\n})\n\n// Disable grouping separators by default unless explicitly enabled by the node author\nconst useGrouping = computed(() => {\n return props.widget.options?.useGrouping === true\n})\n\n// Check if increment/decrement buttons should be disabled due to precision limits\nconst buttonsDisabled = computed(() => {\n const currentValue = modelValue.value ?? 0\n return (\n !Number.isFinite(currentValue) ||\n Math.abs(currentValue) > Number.MAX_SAFE_INTEGER\n )\n})\n\nfunction updateValueBy(delta: number) {\n modelValue.value = Math.min(\n filteredProps.value.max,\n Math.max(filteredProps.value.min, modelValue.value + delta)\n )\n}\n\nconst dragValue = ref<number>()\nconst dragDelta = ref(0)\nfunction handleMouseDown(e: PointerEvent) {\n if (props.widget.options?.disabled) return\n const { target } = e\n if (!(target instanceof HTMLElement)) return\n target.setPointerCapture(e.pointerId)\n dragValue.value = modelValue.value\n dragDelta.value = 0\n}\nfunction handleMouseMove(e: PointerEvent) {\n if (dragValue.value === undefined) return\n dragDelta.value += e.movementX\n const unclippedValue =\n dragValue.value + ((dragDelta.value / 10) | 0) * stepValue.value\n dragDelta.value %= 10\n dragValue.value = Math.min(\n filteredProps.value.max,\n Math.max(filteredProps.value.min, unclippedValue)\n )\n}\nfunction handleMouseUp() {\n const newValue = dragValue.value\n if (newValue === undefined) return\n modelValue.value = newValue\n dragValue.value = undefined\n\n if (dragDelta.value === 0) {\n textEdit.value = true\n inputField.value?.focus()\n inputField.value?.setSelectionRange(0, -1)\n }\n dragDelta.value = 0\n}\n\nconst buttonTooltip = computed(() => {\n if (buttonsDisabled.value) {\n return 'Increment/decrement disabled: value exceeds JavaScript precision limit (±2^53)'\n }\n return null\n})\n</script>\n\n<template>\n <WidgetLayoutField :widget>\n <div\n ref=\"widgetContainer\"\n v-tooltip=\"buttonTooltip\"\n v-bind=\"filteredProps\"\n :aria-label=\"widget.name\"\n :class=\"cn(WidgetInputBaseClass, 'grow text-xs flex h-7')\"\n >\n <button\n v-if=\"!buttonsDisabled\"\n data-testid=\"decrement\"\n :class=\"\n cn(sharedButtonClass, 'pi pi-minus', !canDecrement && 'opacity-60')\n \"\n :disabled=\"!canDecrement\"\n tabindex=\"-1\"\n @click=\"modelValue -= stepValue\"\n />\n <div class=\"relative min-w-[4ch] flex-1 py-1.5 my-0.25\">\n <input\n ref=\"inputField\"\n :aria-valuenow=\"dragValue ?? modelValue\"\n :aria-valuemin=\"filteredProps.min\"\n :aria-valuemax=\"filteredProps.max\"\n :class=\"\n cn(\n 'bg-transparent border-0 focus:outline-0 p-1 truncate text-sm absolute inset-0'\n )\n \"\n inputmode=\"decimal\"\n :value=\"formattedValue\"\n role=\"spinbutton\"\n tabindex=\"0\"\n :disabled=\"widget.options?.disabled\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n @blur=\"updateValue\"\n @keyup.enter=\"updateValue\"\n @keydown.up.prevent=\"updateValueBy(stepValue)\"\n @keydown.down.prevent=\"updateValueBy(-stepValue)\"\n @keydown.page-up.prevent=\"updateValueBy(10 * stepValue)\"\n @keydown.page-down.prevent=\"updateValueBy(-10 * stepValue)\"\n @dragstart.prevent\n />\n <div\n :class=\"\n cn(\n 'absolute inset-0 z-10 cursor-ew-resize',\n textEdit && 'hidden pointer-events-none'\n )\n \"\n @pointerdown=\"handleMouseDown\"\n @pointermove=\"handleMouseMove\"\n @pointerup=\"handleMouseUp\"\n @pointercancel=\"\n () => {\n dragValue = undefined\n dragDelta = 0\n }\n \"\n />\n </div>\n\n <slot />\n <button\n v-if=\"!buttonsDisabled\"\n data-testid=\"increment\"\n :class=\"\n cn(sharedButtonClass, 'pi pi-plus', !canIncrement && 'opacity-60')\n \"\n :disabled=\"!canIncrement\"\n tabindex=\"-1\"\n @click=\"modelValue += stepValue\"\n />\n </div>\n </WidgetLayoutField>\n</template>\n","import { computed, toValue } from 'vue'\nimport type { MaybeRefOrGetter } from 'vue'\n\ninterface NumberWidgetOptions {\n step?: number\n step2?: number\n precision?: number\n}\n\n/**\n * Shared composable for calculating step values in number input widgets\n * Handles both explicit step2 values and precision-derived steps\n */\nexport function useNumberStepCalculation(\n options: NumberWidgetOptions | undefined,\n precisionArg: MaybeRefOrGetter<number | undefined>,\n returnUndefinedForDefault = false\n) {\n return computed(() => {\n const precision = toValue(precisionArg)\n // Use step2 (correct input spec value) if available\n if (options?.step2 !== undefined) {\n return Number(options.step2)\n }\n // Use step / 10 for custom large step values (> 10) to match litegraph behavior\n // This is important for extensions like Impact Pack that use custom step values (e.g., 640)\n // We skip default step values (1, 10) to avoid affecting normal widgets\n const step = options?.step\n if (step !== undefined && step > 10) {\n return Number(step) / 10\n }\n\n if (precision === undefined) {\n return returnUndefinedForDefault ? undefined : 0\n }\n\n if (precision === 0) return 1\n\n // For precision > 0, step = 1 / (10^precision)\n const calculatedStep = 1 / Math.pow(10, precision)\n return returnUndefinedForDefault\n ? calculatedStep\n : Number(calculatedStep.toFixed(precision))\n })\n}\n","import { cn } from '@comfyorg/tailwind-utils'\n\nconst sharedButtonClasses = cn(\n 'inline-flex items-center justify-center border-0 bg-transparent text-inherit transition-colors duration-150 ease-in-out ',\n 'hover:bg-node-component-surface-hovered active:bg-node-component-surface-selected',\n 'disabled:bg-node-component-disabled disabled:text-node-icon-disabled disabled:cursor-not-allowed'\n)\n\nexport function useNumberWidgetButtonPt(options?: {\n roundedLeft?: boolean\n roundedRight?: boolean\n}) {\n const { roundedLeft = false, roundedRight = false } = options ?? {}\n\n const increment = cn(sharedButtonClasses, roundedRight && 'rounded-r-lg')\n const decrement = cn(sharedButtonClasses, roundedLeft && 'rounded-l-lg')\n\n return {\n incrementButton: {\n class: increment\n },\n decrementButton: {\n class: decrement\n }\n }\n}\n","<template>\n <WidgetLayoutField :widget=\"widget\">\n <div :class=\"cn(WidgetInputBaseClass, 'flex items-center gap-2 pl-3 pr-2')\">\n <Slider\n :model-value=\"[modelValue]\"\n v-bind=\"filteredProps\"\n class=\"flex-grow text-xs\"\n :step=\"stepValue\"\n :aria-label=\"widget.name\"\n @update:model-value=\"updateLocalValue\"\n />\n <InputNumber\n :key=\"timesEmptied\"\n :model-value=\"modelValue\"\n v-bind=\"filteredProps\"\n :step=\"stepValue\"\n :min-fraction-digits=\"precision\"\n :max-fraction-digits=\"precision\"\n :aria-label=\"widget.name\"\n size=\"small\"\n pt:pc-input-text:root=\"min-w-[4ch] bg-transparent border-none text-center truncate\"\n class=\"w-16\"\n :pt=\"sliderNumberPt\"\n @update:model-value=\"handleNumberInputUpdate\"\n />\n </div>\n </WidgetLayoutField>\n</template>\n\n<script setup lang=\"ts\">\nimport InputNumber from 'primevue/inputnumber'\nimport { computed, ref } from 'vue'\n\nimport Slider from '@/components/ui/slider/Slider.vue'\nimport type { SimplifiedWidget } from '@/types/simplifiedWidget'\nimport { cn } from '@/utils/tailwindUtil'\nimport {\n STANDARD_EXCLUDED_PROPS,\n filterWidgetProps\n} from '@/utils/widgetPropFilter'\n\nimport { useNumberStepCalculation } from '../composables/useNumberStepCalculation'\nimport { useNumberWidgetButtonPt } from '../composables/useNumberWidgetButtonPt'\nimport { WidgetInputBaseClass } from './layout'\nimport WidgetLayoutField from './layout/WidgetLayoutField.vue'\n\nconst { widget } = defineProps<{\n widget: SimplifiedWidget<number>\n}>()\n\nconst modelValue = defineModel<number>({ default: 0 })\n\nconst timesEmptied = ref(0)\n\nconst updateLocalValue = (newValue: number[] | undefined): void => {\n if (newValue?.length) modelValue.value = newValue[0]\n}\n\nconst handleNumberInputUpdate = (newValue: number | undefined) => {\n if (newValue !== undefined) {\n updateLocalValue([newValue])\n return\n }\n timesEmptied.value += 1\n}\n\nconst filteredProps = computed(() =>\n filterWidgetProps(widget.options, STANDARD_EXCLUDED_PROPS)\n)\n\nconst p = widget.options?.precision\nconst precision = typeof p === 'number' && p >= 0 ? p : undefined\n\n// Calculate the step value based on precision or widget options\nconst stepValue = useNumberStepCalculation(widget.options, precision, true)\n\nconst sliderNumberPt = useNumberWidgetButtonPt({\n roundedLeft: true,\n roundedRight: true\n})\n</script>\n\n<style scoped>\n:deep(.p-inputnumber-button.p-disabled .pi),\n:deep(.p-inputnumber-button.p-disabled .p-icon) {\n color: var(--color-node-icon-disabled) !important;\n}\n</style>\n","<template>\n <WidgetLayoutField :widget=\"widget\">\n <div :class=\"cn(WidgetInputBaseClass, 'flex items-center gap-2 pl-3 pr-2')\">\n <Slider\n :model-value=\"[modelValue]\"\n v-bind=\"filteredProps\"\n class=\"flex-grow text-xs\"\n :step=\"stepValue\"\n :aria-label=\"widget.name\"\n @update:model-value=\"updateLocalValue\"\n />\n <InputNumber\n :key=\"timesEmptied\"\n :model-value=\"modelValue\"\n v-bind=\"filteredProps\"\n :step=\"stepValue\"\n :min-fraction-digits=\"precision\"\n :max-fraction-digits=\"precision\"\n :aria-label=\"widget.name\"\n size=\"small\"\n pt:pc-input-text:root=\"min-w-[4ch] bg-transparent border-none text-center truncate\"\n class=\"w-16\"\n :pt=\"sliderNumberPt\"\n @update:model-value=\"handleNumberInputUpdate\"\n />\n </div>\n </WidgetLayoutField>\n</template>\n\n<script setup lang=\"ts\">\nimport InputNumber from 'primevue/inputnumber'\nimport { computed, ref } from 'vue'\n\nimport Slider from '@/components/ui/slider/Slider.vue'\nimport type { SimplifiedWidget } from '@/types/simplifiedWidget'\nimport { cn } from '@/utils/tailwindUtil'\nimport {\n STANDARD_EXCLUDED_PROPS,\n filterWidgetProps\n} from '@/utils/widgetPropFilter'\n\nimport { useNumberStepCalculation } from '../composables/useNumberStepCalculation'\nimport { useNumberWidgetButtonPt } from '../composables/useNumberWidgetButtonPt'\nimport { WidgetInputBaseClass } from './layout'\nimport WidgetLayoutField from './layout/WidgetLayoutField.vue'\n\nconst { widget } = defineProps<{\n widget: SimplifiedWidget<number>\n}>()\n\nconst modelValue = defineModel<number>({ default: 0 })\n\nconst timesEmptied = ref(0)\n\nconst updateLocalValue = (newValue: number[] | undefined): void => {\n if (newValue?.length) modelValue.value = newValue[0]\n}\n\nconst handleNumberInputUpdate = (newValue: number | undefined) => {\n if (newValue !== undefined) {\n updateLocalValue([newValue])\n return\n }\n timesEmptied.value += 1\n}\n\nconst filteredProps = computed(() =>\n filterWidgetProps(widget.options, STANDARD_EXCLUDED_PROPS)\n)\n\nconst p = widget.options?.precision\nconst precision = typeof p === 'number' && p >= 0 ? p : undefined\n\n// Calculate the step value based on precision or widget options\nconst stepValue = useNumberStepCalculation(widget.options, precision, true)\n\nconst sliderNumberPt = useNumberWidgetButtonPt({\n roundedLeft: true,\n roundedRight: true\n})\n</script>\n\n<style scoped>\n:deep(.p-inputnumber-button.p-disabled .pi),\n:deep(.p-inputnumber-button.p-disabled .p-icon) {\n color: var(--color-node-icon-disabled) !important;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport type {\n SimplifiedControlWidget,\n SimplifiedWidget\n} from '@/types/simplifiedWidget'\n\nimport WidgetInputNumberInput from './WidgetInputNumberInput.vue'\nimport WidgetInputNumberSlider from './WidgetInputNumberSlider.vue'\nimport WidgetWithControl from './WidgetWithControl.vue'\n\nconst props = defineProps<{\n widget: SimplifiedWidget<number>\n}>()\n\nconst modelValue = defineModel<number>({ default: 0 })\n\nconst hasControlAfterGenerate = computed(() => {\n return !!props.widget.controlWidget\n})\n</script>\n\n<template>\n <WidgetWithControl\n v-if=\"hasControlAfterGenerate\"\n v-model=\"modelValue\"\n :widget=\"widget as SimplifiedControlWidget<number>\"\n :component=\"\n widget.type === 'slider'\n ? WidgetInputNumberSlider\n : WidgetInputNumberInput\n \"\n />\n <component\n :is=\"\n widget.type === 'slider'\n ? WidgetInputNumberSlider\n : WidgetInputNumberInput\n \"\n v-else\n v-model=\"modelValue\"\n :widget=\"widget\"\n v-bind=\"$attrs\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport type {\n SimplifiedControlWidget,\n SimplifiedWidget\n} from '@/types/simplifiedWidget'\n\nimport WidgetInputNumberInput from './WidgetInputNumberInput.vue'\nimport WidgetInputNumberSlider from './WidgetInputNumberSlider.vue'\nimport WidgetWithControl from './WidgetWithControl.vue'\n\nconst props = defineProps<{\n widget: SimplifiedWidget<number>\n}>()\n\nconst modelValue = defineModel<number>({ default: 0 })\n\nconst hasControlAfterGenerate = computed(() => {\n return !!props.widget.controlWidget\n})\n</script>\n\n<template>\n <WidgetWithControl\n v-if=\"hasControlAfterGenerate\"\n v-model=\"modelValue\"\n :widget=\"widget as SimplifiedControlWidget<number>\"\n :component=\"\n widget.type === 'slider'\n ? WidgetInputNumberSlider\n : WidgetInputNumberInput\n \"\n />\n <component\n :is=\"\n widget.type === 'slider'\n ? WidgetInputNumberSlider\n : WidgetInputNumberInput\n \"\n v-else\n v-model=\"modelValue\"\n :widget=\"widget\"\n v-bind=\"$attrs\"\n />\n</template>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-primevue-DcMRXJN3.js";import"./vendor-other-DlQF6V2E.js";import"./api-CUAc7rDA.js";import"./remoteConfig-CZcEXsZS.js";import"./colorUtil-CzxntCbX.js";import"./useErrorHandling-CI8_F4yx.js";import"./Button-Do2I1OAA.js";import"./PanelTemplate-BjN5XNg2.js";import"./dialogService-BZ1FmjZL.js";import"./vendor-tiptap-_UqYL7N_.js";import"./vendor-xterm-BU_lcTPR.js";import"./vendor-three-BFcUNSs9.js";import"./markdownRendererUtil-DglHsU8t.js";import"./userStore-BkgQPjq6.js";import{t as x}from"./WidgetSelect-zgrFVzHH.js";import"./widgetPropFilter-CKhENku4.js";import"./layout-C9TPTaej.js";import"./LazyImage-D5qRMpUj.js";import"./WidgetWithControl-Dh2FWOiA.js";export{x as default};
|