diff --git a/bootstrap.html5.fallback.js b/bootstrap.html5.fallback.js index 7bccb7a..3ed405c 100644 --- a/bootstrap.html5.fallback.js +++ b/bootstrap.html5.fallback.js @@ -112,12 +112,14 @@ $.fn.datetimepicker.dates = $.fn.datetimepicker.dates || {}; $.fn.datetimepicker.dates[culture]=res; } - function getOptions(options, name){ + function getOptions(options, name, fNode, oNode){ var userOptions=options.html5FallbackWidgets ||{}; userOptions=userOptions[name] ||{}; + if(typeof userOptions === "function") + userOptions=userOptions(fNode, oNode) || {}; var res= {}; - for(var prop in defaults){ - res[prop]=userOptions[prop];; + for(var prop in userOptions){ + res[prop]=userOptions[prop]; } return res; } @@ -192,7 +194,7 @@ var enhance=handlers.enhance=handlers.enhance || {}; if (enhance.date !== null) enhance.date = function (fNode, oNode) { - var o = getOptions(options, "date"); + var o = getOptions(options, "date", fNode, oNode); o.language = culture; o.startView = 2; if (typeof o.autoclose == "undefined") o.autoclose = true; @@ -213,7 +215,7 @@ }; if (enhance.week !== null) enhance.week = function(fNode, oNode){ - var o = getOptions(options, "week"); + var o = getOptions(options, "week", fNode, oNode); o.language = culture; o.startView = 2; if (typeof o.autoclose == "undefined") o.autoclose = true; @@ -234,7 +236,7 @@ }; if (enhance.month !== null) enhance.month = function(fNode, oNode){ - var o = getOptions(options, "month"); + var o = getOptions(options, "month", fNode, oNode); o.language = culture; o.startView = 3; if (typeof o.autoclose == "undefined") o.autoclose = true; @@ -255,7 +257,7 @@ }; if (enhance.time !== null) enhance.time = function(fNode, oNode){ - var o = getOptions(options, "time"); + var o = getOptions(options, "time", fNode, oNode); o.language = culture; o.startView = o.maxView = 1; if (typeof o.autoclose == "undefined") o.autoclose = true; @@ -276,7 +278,7 @@ }; if (enhance.datetime !== null) enhance.datetime = function(fNode, oNode){ - var o = getOptions(options, "datetime"); + var o = getOptions(options, "datetime", fNode, oNode); o.language = culture; o.startView = 2; if (typeof o.autoclose == "undefined") o.autoclose = true; @@ -298,7 +300,7 @@ var humanFNFormatter = mvcct.enhancer.Globalize().numberFormatter(); if (enhance.range !== null) enhance.range = function (fNode, oNode) { - var o = getOptions(options, "range"); + var o = getOptions(options, "range", fNode, oNode); o.min= enhancer.parse("range", oNode.getAttribute("min"), true); o.max= enhancer.parse("range", oNode.getAttribute("max"), true); o.step = enhancer.parse("range", oNode.getAttribute("step"), true); @@ -322,7 +324,7 @@ }; if (enhance.color !== null) enhance.color = function(fNode, oNode){ - var o = getOptions(options, "range"); + var o = getOptions(options, "range", fNode, oNode); if(typeof o.format == "undefined") o.format = "hex"; var newContent; if(o.makeComponent){ diff --git a/bootstrap.html5.fallback.min.js b/bootstrap.html5.fallback.min.js index 49f2650..afbf3c5 100644 --- a/bootstrap.html5.fallback.min.js +++ b/bootstrap.html5.fallback.min.js @@ -1 +1 @@ -!function(e){function t(e){function t(e){return"string"==typeof e?e:"number"==typeof e?""+e:JSON.stringify(e)}function a(e,a){return e=e.replace(/{[0-9a-zA-Z-_. ]+}/g,function(e){return e=e.replace(/^{([^}]*)}$/,"$1"),t(a[e])})}function r(e,t,r){return a(m.dates.calendars.gregorian.dateTimeFormats[e],[r,t])}var n,i,o,d,c,s,m,u,l;switch(u=mvcct.enhancer,s=u.Globalize(),l=s.locale().attributes.language,m=s.cldr.get("main/"+l),!0){case"skeleton"in e:o=e.skeleton,i=m.dates.calendars.gregorian.dateTimeFormats.availableFormats[o],i||(d=o.split(/[^hHKkmsSAzZOvVXx]/).slice(-1)[0],n=o.split(/[^GyYuUrQqMLlwWdDFgEec]/)[0],c=/(MMMM|LLLL).*[Ec]/.test(n)?"full":/MMMM/g.test(n)?"long":/MMM/g.test(n)||/LLL/g.test(n)?"medium":"short",i=r(c,m.dates.calendars.gregorian.dateTimeFormats.availableFormats[n],m.dates.calendars.gregorian.dateTimeFormats.availableFormats[d]));break;case"date"in e:case"time"in e:i=m.dates.calendars.gregorian["date"in e?"dateFormats":"timeFormats"][e.date||e.time];break;case"datetime"in e:i=r(e.datetime,m.dates.calendars.gregorian.dateFormats[e.datetime],m.dates.calendars.gregorian.timeFormats[e.datetime]);break;case"raw"in e:i=e.raw;break;default:i=null}return i}function a(t){var a=mvcct.enhancer,r=a.Globalize();t=t||r.locale().attributes.language;var n=t.length>2?t.substring(3):t.toUpperCase(),i=r.cldr.get("main/"+t),d=r.cldr.get("supplemental"),c=i.dates.calendars.gregorian.months.format,s=i.dates.calendars.gregorian.days.format,m=i.dates.calendars.gregorian.dayPeriods.format.abbreviated,u=r(t).messageFormatter,l={days:[s.wide.sun,s.wide.mon,s.wide.tue,s.wide.wed,s.wide.thu,s.wide.fri,s.wide.sat,s.wide.sun],daysShort:[s.abbreviated.sun,s.abbreviated.mon,s.abbreviated.tue,s.abbreviated.wed,s.abbreviated.thu,s.abbreviated.fri,s.abbreviated.sat,s.abbreviated.sun],daysMin:[s.narrow.sun,s.narrow.mon,s.narrow.tue,s.narrow.wed,s.narrow.thu,s.narrow.fri,s.narrow.sat,s.narrow.sun],months:[c.wide[1],c.wide[2],c.wide[3],c.wide[4],c.wide[5],c.wide[6],c.wide[7],c.wide[8],c.wide[9],c.wide[10],c.wide[11],c.wide[12]],monthsShort:[c.abbreviated[1],c.abbreviated[2],c.abbreviated[3],c.abbreviated[4],c.abbreviated[5],c.abbreviated[6],c.abbreviated[7],c.abbreviated[8],c.abbreviated[9],c.abbreviated[10],c.abbreviated[11],c.abbreviated[12]],meridiem:[m.am,m.pm],weekStart:o[d.weekData.firstDay[n]],today:i.dates.fields.day["relative-type-0"],rtl:"right-to-left"==i.layout.orientation.characterOrder,clear:u?u("generic/clear"):void 0};e.fn.datetimepicker.dates=e.fn.datetimepicker.dates||{},e.fn.datetimepicker.dates[t]=l}function r(e,t){var a=e.html5FallbackWidgets||{};a=a[t]||{};var r={};for(var n in d)r[n]=a[n];return r}function n(e){var t,a,r,n="";for(x=0;x').insertAfter(d),d.remove(),o.prepend(d)}else o=e(t);o.colorpicker(n).on("showPicker",function(){o.colorpicker("setValue",t.value)})})}var o={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},d={dateFormat:{date:"short"},timeFormat:{skeleton:"Hms"},timeFormat1:{skeleton:"Hms"},datetimeFormat:{datetime:"short"},datetimeFormat1:{datetime:"short"},monthFormat:{date:"short"},weekFormat:{date:"short"}},s=mvcct.enhancer.addBasicInput;mvcct.enhancer.addBasicInput=function(e){s(e),mvcct.enhancer.register(null,!1,null,"html5 bootstrap/widgets fallback",i)}}(jQuery); \ No newline at end of file +!function(e){function t(e){function t(e){return"string"==typeof e?e:"number"==typeof e?""+e:JSON.stringify(e)}function a(e,a){return e=e.replace(/{[0-9a-zA-Z-_. ]+}/g,function(e){return e=e.replace(/^{([^}]*)}$/,"$1"),t(a[e])})}function r(e,t,r){return a(m.dates.calendars.gregorian.dateTimeFormats[e],[r,t])}var n,i,o,d,c,s,m,u,l;switch(u=mvcct.enhancer,s=u.Globalize(),l=s.locale().attributes.language,m=s.cldr.get("main/"+l),!0){case"skeleton"in e:o=e.skeleton,i=m.dates.calendars.gregorian.dateTimeFormats.availableFormats[o],i||(d=o.split(/[^hHKkmsSAzZOvVXx]/).slice(-1)[0],n=o.split(/[^GyYuUrQqMLlwWdDFgEec]/)[0],c=/(MMMM|LLLL).*[Ec]/.test(n)?"full":/MMMM/g.test(n)?"long":/MMM/g.test(n)||/LLL/g.test(n)?"medium":"short",i=r(c,m.dates.calendars.gregorian.dateTimeFormats.availableFormats[n],m.dates.calendars.gregorian.dateTimeFormats.availableFormats[d]));break;case"date"in e:case"time"in e:i=m.dates.calendars.gregorian["date"in e?"dateFormats":"timeFormats"][e.date||e.time];break;case"datetime"in e:i=r(e.datetime,m.dates.calendars.gregorian.dateFormats[e.datetime],m.dates.calendars.gregorian.timeFormats[e.datetime]);break;case"raw"in e:i=e.raw;break;default:i=null}return i}function a(t){var a=mvcct.enhancer,r=a.Globalize();t=t||r.locale().attributes.language;var n=t.length>2?t.substring(3):t.toUpperCase(),i=r.cldr.get("main/"+t),d=r.cldr.get("supplemental"),c=i.dates.calendars.gregorian.months.format,s=i.dates.calendars.gregorian.days.format,m=i.dates.calendars.gregorian.dayPeriods.format.abbreviated,u=r(t).messageFormatter,l={days:[s.wide.sun,s.wide.mon,s.wide.tue,s.wide.wed,s.wide.thu,s.wide.fri,s.wide.sat,s.wide.sun],daysShort:[s.abbreviated.sun,s.abbreviated.mon,s.abbreviated.tue,s.abbreviated.wed,s.abbreviated.thu,s.abbreviated.fri,s.abbreviated.sat,s.abbreviated.sun],daysMin:[s.narrow.sun,s.narrow.mon,s.narrow.tue,s.narrow.wed,s.narrow.thu,s.narrow.fri,s.narrow.sat,s.narrow.sun],months:[c.wide[1],c.wide[2],c.wide[3],c.wide[4],c.wide[5],c.wide[6],c.wide[7],c.wide[8],c.wide[9],c.wide[10],c.wide[11],c.wide[12]],monthsShort:[c.abbreviated[1],c.abbreviated[2],c.abbreviated[3],c.abbreviated[4],c.abbreviated[5],c.abbreviated[6],c.abbreviated[7],c.abbreviated[8],c.abbreviated[9],c.abbreviated[10],c.abbreviated[11],c.abbreviated[12]],meridiem:[m.am,m.pm],weekStart:o[d.weekData.firstDay[n]],today:i.dates.fields.day["relative-type-0"],rtl:"right-to-left"==i.layout.orientation.characterOrder,clear:u?u("generic/clear"):void 0};e.fn.datetimepicker.dates=e.fn.datetimepicker.dates||{},e.fn.datetimepicker.dates[t]=l}function r(e,t,a,r){var n=e.html5FallbackWidgets||{};n=n[t]||{},"function"==typeof n&&(n=n(a,r)||{});var i={};for(var o in n)i[o]=n[o];return i}function n(e){var t,a,r,n="";for(x=0;x').insertAfter(d),d.remove(),o.prepend(d)}else o=e(t);o.colorpicker(n).on("showPicker",function(){o.colorpicker("setValue",t.value)})})}var o={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},d={dateFormat:{date:"short"},timeFormat:{skeleton:"Hms"},timeFormat1:{skeleton:"Hms"},datetimeFormat:{datetime:"short"},datetimeFormat1:{datetime:"short"},monthFormat:{date:"short"},weekFormat:{date:"short"}},s=mvcct.enhancer.addBasicInput;mvcct.enhancer.addBasicInput=function(e){s(e),mvcct.enhancer.register(null,!1,null,"html5 bootstrap/widgets fallback",i)}}(jQuery); \ No newline at end of file diff --git a/bower.json b/bower.json index 457b7fa..0c7deae 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "bootstrap-html5-fallback", - "version": "1.0.1", + "version": "1.0.2", "homepage": "https://github.com/MvcControlsToolkit/bootstrap-html5-fallback", "description": "bootstrap widgets based html5 inputs fallback", "main": [ @@ -21,7 +21,7 @@ "polyfill" ], "dependencies": { - "mvcct-enhancer": ">=1.0.0", + "mvcct-enhancer": ">=1.0.1", "bootstrap-colorpicker": ">=2.3.3", "smalot-bootstrap-datetimepicker": ">=2.3.10", "seiyria-bootstrap-slider": ">=7.0.3" diff --git a/package.json b/package.json index fd02cf1..78617a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-html5-fallback", - "version": "1.0.1", + "version": "1.0.2", "description": "bootstrap widgets based html5 inputs fallback", "main": "bootstrap.html5.fallback.js", "repository": { @@ -28,7 +28,7 @@ "bootstrap.html5.fallback.d.ts" ], "dependencies": { - "mvcct-enhancer": ">=1.0.0", + "mvcct-enhancer": ">=1.0.1", "bootstrap-colorpicker": ">=2.3.3", "bootstrap-datetime-picker": ">=2.3.10", "bootstrap-slider": ">=7.0.2"