Implementation of additional shiny inputs (no documentation)

This commit is contained in:
2026-02-03 13:12:55 +00:00
parent 706f8158ef
commit 2f97e9538b
19 changed files with 1024 additions and 1 deletions

1
inst/js/numericButtonInput.min.js vendored Normal file
View File

@@ -0,0 +1 @@
var numericButtonInputBinding=new Shiny.InputBinding;$.extend(numericButtonInputBinding,{find:function(n){return $(n).find(".shiny-input-numericButton")},getId:function(n){return $(n).attr("id")},getValue:function(n){var e=$("#"+Shiny.$escape(n.id)+"_value").val();if(/^\s*$/.test(e))e=null;else if(!isNaN(e))e=+e;else e=e;return e},setValue:function(n,e){$("#"+Shiny.$escape(n.id)+"_value").val(e)},subscribe:function(n,e){$(n).on("change",function(n){e()})},unsubscribe:function(n){$(n).off("change")},getState:function(n){$numeric=$("#"+Shiny.$escape(n.id)+"_value");return{label:$(n).find('label[for="'+n.id+'_value"]').text(),button:$("#"+Shiny.$escape(n.id)+"Button").val(),value:this.getValue(n),min:$numeric.attr("min"),max:$numeric.attr("max"),step:$numeric.attr("step")}},receiveMessage:function(n,e){$numeric=$("#"+Shiny.$escape(n.id)+"_value");if(e.hasOwnProperty("label")){$(n).find('label[for="'+n.id+'_value"]').text(e.label)}if(e.hasOwnProperty("min")){$numeric.attr("min",e.min)}if(e.hasOwnProperty("max")){$numeric.attr("max",e.max)}if(e.hasOwnProperty("step")){$numeric.attr("step",e.step)}if(e.hasOwnProperty("value")){this.setValue(n,e.value)}$(n).trigger("change")},initialize:function n(e){$("#"+Shiny.$escape(e.id)+"_value").on("keyup",function(n){$(e).trigger("change")});$("#"+Shiny.$escape(e.id)+"_value").on("input",function(n){$(e).trigger("change")});$("#"+Shiny.$escape(e.id)+"_value").on("change",function(n){$(e).trigger("change")})}});Shiny.inputBindings.register(numericButtonInputBinding,"shinyExtra.numericButtonInput");