Fixed accessibility label for date range input and min/max causing the date range to be selected on show

This commit is contained in:
bwilliams committed 2026-02-05 10:58:13 +00:00
1 parent 099b4def83
commit 0b1fe24b02
4 files changed
+12 -5

No files matched your search

+8 -1
View File
@@ -68,7 +68,12 @@ betterDateRangeInput <- function(
style = htmltools::css(
width = shiny::validateCssUnit(width)
),
shiny:::shinyInputLabel(inputId, label),
shiny::tags$label(
class = "control-label",
id = paste0(inputId, "-label"),
`for` = paste0(inputId, "_start"),
label
),
shiny::div(
class = "input-daterange input-group",
`data-date-language` = language,
@@ -82,6 +87,7 @@ betterDateRangeInput <- function(
`data-date-autoclose` = if (autoclose) "true" else "false",
`data-autonext` = if (autonext) "true" else "false",
shiny::tags$input(
id = paste0(inputId, "_start"),
class = "form-control",
type = "text",
name = paste0(inputId, "_start"),
@@ -94,6 +100,7 @@ betterDateRangeInput <- function(
shiny::span(class = "input-group-text", separator)
),
shiny::tags$input(
id = paste0(inputId, "_end"),
class = "form-control",
type = "text",
name = paste0(inputId, "_end"),
+2 -2
View File
@@ -10,7 +10,7 @@ $.extend(dateRangeInputBinding, {
},
_setMin: function(el, date) {
var $el = $(el);
var $mainInput = $el.find('.input-daterange').eq(0);
var $mainInput = $el.closest('.input-daterange').eq(0);
var autonext = false;
if ($mainInput.data('autonext') == true) {
@@ -42,7 +42,7 @@ $.extend(dateRangeInputBinding, {
},
_setMax: function(el, date) {
var $el = $(el);
var $mainInput = $el.find('.input-daterange').eq(0);
var $mainInput = $el.closest('.input-daterange').eq(0);
var autonext = false;
if ($mainInput.data('autonext') == true) {
+1 -1
View File
@@ -1 +1 @@
var dateRangeInputBinding=new Shiny.InputBinding;$.extend(dateRangeInputBinding,{_newDate:function(e){if(e instanceof Date)return e;var t=Date.parse(e);if(isNaN(t))return null;return new Date(t)},_setMin:function(e,t){var a=$(e);var n=a.find(".input-daterange").eq(0);var i=false;if(n.data("autonext")==true){n.data("autonext",false);i=true}if(t==null){a.bsDatepicker("setStartDate",null);n.data("autonext",i);return}var r=this._newDate(t);if(r===null){n.data("autonext",i);return}var s=$(e).bsDatepicker("getUTCDate");a.bsDatepicker("setStartDate",this._utcDateAsLocal(r));if(r&&s&&r.getTime()>s.getTime()){a.bsDatepicker("clearDates")}else{a.bsDatepicker("setUTCDate",s)}n.data("autonext",i)},_setMax:function(e,t){var a=$(e);var n=a.find(".input-daterange").eq(0);var i=false;if(n.data("autonext")==true){n.data("autonext",false);i=true}if(t==null){a.bsDatepicker("setEndDate",null);n.data("autonext",i);return}var r=this._newDate(t);if(r===null){n.data("autonext",i);return}var s=a.bsDatepicker("getUTCDate");a.bsDatepicker("setEndDate",this._utcDateAsLocal(r));if(r&&s&&r.getTime()<s.getTime()){a.bsDatepicker("clearDates")}else{a.bsDatepicker("setUTCDate",s)}n.data("autonext",i)},_dateAsUTC:function(e){return new Date(e.getTime()-e.getTimezoneOffset()*6e4)},_utcDateAsLocal:function(e){return new Date(e.getTime()+e.getTimezoneOffset()*6e4)},_padZeros:function(e,t){var a=e.toString();while(a.length<t){a="0"+a}return a},_formatDateUTC:function(e){if(e instanceof Date){return e.getUTCFullYear()+"-"+this._padZeros(e.getUTCMonth()+1,2)+"-"+this._padZeros(e.getUTCDate(),2)}else{return null}},find:function(e){return $(e).find(".shiny-dateRange-input")},getId:function(e){return $(e).attr("id")},getValue:function(e){var t=$(e).find("input");var a=t.eq(0).bsDatepicker("getUTCDate");var n=t.eq(1).bsDatepicker("getUTCDate");return{start:this._formatDateUTC(a),end:this._formatDateUTC(n)}},setValue:function(e,t){if(!(t instanceof Object)){return}var a=$(e);var n=a.find(".input-daterange").eq(0);var i=false;if(n.data("autonext")==true){n.data("autonext",false);i=true}var r=a.find("input");if(t.start!==void 0){if(t.start===null||t.start.length==0){r.eq(0).val("").bsDatepicker("clearDates")}else{var s=this._newDate(t.start);r.eq(0).bsDatepicker("setUTCDate",s)}}if(t.end!==void 0){if(t.end===null||t.end.length==0){r.eq(1).val("").bsDatepicker("clearDates")}else{var u=this._newDate(t.end);r.eq(1).bsDatepicker("setUTCDate",u)}}n.data("autonext",i)},subscribe:function(e,t){$(e).on("change",function(e){t()})},unsubscribe:function(e){$(e).off("change")},getState:function(e){return{value:this.getValue(e)}},receiveMessage:function(e,t){var a=$(e);var n=a.find("input");var i=n.eq(0);var r=n.eq(1);if(t.hasOwnProperty("label")){$(e).find('label[for="'+e.id+'Text"]').text(t.label)}if(t.hasOwnProperty("min")){this._setMin(i[0],t.min);this._setMin(r[0],t.min)}if(t.hasOwnProperty("max")){this._setMax(i[0],t.max);this._setMax(r[0],t.max)}if(t.hasOwnProperty("value")){this.setValue(e,t.value)}$(e).trigger("change")},initialize:function e(t){var a=$(t);var n=a.find(".input-daterange").eq(0);var i=a.find("input");var r=i.eq(0);var s=i.eq(1);var u=n.data("initial-start-date");var f=n.data("initial-end-date");a.find(".input-daterange").eq(0).bsDatepicker();this.setValue(t,{start:u,end:f});this._setMin(r[0],n.data("min-date"));this._setMin(s[0],n.data("min-date"));this._setMax(r[0],n.data("max-date"));this._setMax(s[0],n.data("max-date"));r.on("focus",function(e){$(this).select()});s.on("focus",function(e){$(this).select()});r.bsDatepicker().on("changeDate",function(e){if(n.data("autonext")==true&&r.bsDatepicker("getUTCDate")){r.bsDatepicker("hide");s.focus();s.select();s.bsDatepicker("show")}a.trigger("change")});s.bsDatepicker().on("changeDate",function(e){a.trigger("change")})}});Shiny.inputBindings.register(dateRangeInputBinding,"shinyExtra.dateRangeInputBinding");
var dateRangeInputBinding=new Shiny.InputBinding;$.extend(dateRangeInputBinding,{_newDate:function(e){if(e instanceof Date)return e;var t=Date.parse(e);if(isNaN(t))return null;return new Date(t)},_setMin:function(e,t){var a=$(e);var n=a.closest(".input-daterange").eq(0);var i=false;if(n.data("autonext")==true){n.data("autonext",false);i=true}if(t==null){a.bsDatepicker("setStartDate",null);n.data("autonext",i);return}var r=this._newDate(t);if(r===null){n.data("autonext",i);return}var s=$(e).bsDatepicker("getUTCDate");a.bsDatepicker("setStartDate",this._utcDateAsLocal(r));if(r&&s&&r.getTime()>s.getTime()){a.bsDatepicker("clearDates")}else{a.bsDatepicker("setUTCDate",s)}n.data("autonext",i)},_setMax:function(e,t){var a=$(e);var n=a.closest(".input-daterange").eq(0);var i=false;if(n.data("autonext")==true){n.data("autonext",false);i=true}if(t==null){a.bsDatepicker("setEndDate",null);n.data("autonext",i);return}var r=this._newDate(t);if(r===null){n.data("autonext",i);return}var s=a.bsDatepicker("getUTCDate");a.bsDatepicker("setEndDate",this._utcDateAsLocal(r));if(r&&s&&r.getTime()<s.getTime()){a.bsDatepicker("clearDates")}else{a.bsDatepicker("setUTCDate",s)}n.data("autonext",i)},_dateAsUTC:function(e){return new Date(e.getTime()-e.getTimezoneOffset()*6e4)},_utcDateAsLocal:function(e){return new Date(e.getTime()+e.getTimezoneOffset()*6e4)},_padZeros:function(e,t){var a=e.toString();while(a.length<t){a="0"+a}return a},_formatDateUTC:function(e){if(e instanceof Date){return e.getUTCFullYear()+"-"+this._padZeros(e.getUTCMonth()+1,2)+"-"+this._padZeros(e.getUTCDate(),2)}else{return null}},find:function(e){return $(e).find(".shiny-dateRange-input")},getId:function(e){return $(e).attr("id")},getValue:function(e){var t=$(e).find("input");var a=t.eq(0).bsDatepicker("getUTCDate");var n=t.eq(1).bsDatepicker("getUTCDate");return{start:this._formatDateUTC(a),end:this._formatDateUTC(n)}},setValue:function(e,t){if(!(t instanceof Object)){return}var a=$(e);var n=a.find(".input-daterange").eq(0);var i=false;if(n.data("autonext")==true){n.data("autonext",false);i=true}var r=a.find("input");if(t.start!==void 0){if(t.start===null||t.start.length==0){r.eq(0).val("").bsDatepicker("clearDates")}else{var s=this._newDate(t.start);r.eq(0).bsDatepicker("setUTCDate",s)}}if(t.end!==void 0){if(t.end===null||t.end.length==0){r.eq(1).val("").bsDatepicker("clearDates")}else{var u=this._newDate(t.end);r.eq(1).bsDatepicker("setUTCDate",u)}}n.data("autonext",i)},subscribe:function(e,t){$(e).on("change",function(e){t()})},unsubscribe:function(e){$(e).off("change")},getState:function(e){return{value:this.getValue(e)}},receiveMessage:function(e,t){var a=$(e);var n=a.find("input");var i=n.eq(0);var r=n.eq(1);if(t.hasOwnProperty("label")){$(e).find('label[for="'+e.id+'Text"]').text(t.label)}if(t.hasOwnProperty("min")){this._setMin(i[0],t.min);this._setMin(r[0],t.min)}if(t.hasOwnProperty("max")){this._setMax(i[0],t.max);this._setMax(r[0],t.max)}if(t.hasOwnProperty("value")){this.setValue(e,t.value)}$(e).trigger("change")},initialize:function e(t){var a=$(t);var n=a.find(".input-daterange").eq(0);var i=a.find("input");var r=i.eq(0);var s=i.eq(1);var u=n.data("initial-start-date");var c=n.data("initial-end-date");a.find(".input-daterange").eq(0).bsDatepicker();this.setValue(t,{start:u,end:c});this._setMin(r[0],n.data("min-date"));this._setMin(s[0],n.data("min-date"));this._setMax(r[0],n.data("max-date"));this._setMax(s[0],n.data("max-date"));r.on("focus",function(e){$(this).select()});s.on("focus",function(e){$(this).select()});r.bsDatepicker().on("changeDate",function(e){if(n.data("autonext")==true&&r.bsDatepicker("getUTCDate")){r.bsDatepicker("hide");s.focus();s.select();s.bsDatepicker("show")}a.trigger("change")});s.bsDatepicker().on("changeDate",function(e){a.trigger("change")})}});Shiny.inputBindings.register(dateRangeInputBinding,"shinyExtra.dateRangeInputBinding");
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["betterDateRangeInput.js"],"names":["dateRangeInputBinding","Shiny","InputBinding","$","extend","_newDate","date","Date","d","parse","isNaN","_setMin","el","$el","$mainInput","find","eq","autonext","data","bsDatepicker","parsedDate","this","curValue","_utcDateAsLocal","getTime","_setMax","_dateAsUTC","getTimezoneOffset","_padZeros","n","digits","str","toString","length","_formatDateUTC","getUTCFullYear","getUTCMonth","getUTCDate","scope","getId","attr","getValue","$inputs","start","end","setValue","value","Object","val","subscribe","callback","on","event","unsubscribe","off","getState","receiveMessage","$startinput","$endinput","hasOwnProperty","id","text","label","min","max","trigger","initialize","select","focus","inputBindings","register"],"mappings":"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 truncated
{"version":3,"sources":["betterDateRangeInput.js"],"names":["dateRangeInputBinding","Shiny","InputBinding","$","extend","_newDate","date","Date","d","parse","isNaN","_setMin","el","$el","$mainInput","closest","eq","autonext","data","bsDatepicker","parsedDate","this","curValue","_utcDateAsLocal","getTime","_setMax","_dateAsUTC","getTimezoneOffset","_padZeros","n","digits","str","toString","length","_formatDateUTC","getUTCFullYear","getUTCMonth","getUTCDate","find","scope","getId","attr","getValue","$inputs","start","end","setValue","value","Object","val","subscribe","callback","on","event","unsubscribe","off","getState","receiveMessage","$startinput","$endinput","hasOwnProperty","id","text","label","min","max","trigger","initialize","select","focus","inputBindings","register"],"mappings":"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 truncated