www-thermferm/jqwidgets/jqxbuttongroup.js

Sun, 07 Jul 2019 14:31:10 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 07 Jul 2019 14:31:10 +0200
branch
stable
changeset 603
fcff55324b84
parent 511
2d1d43c3a2c2
child 617
b216f9d4b917
permissions
-rw-r--r--

Merged fix from default

117
7119ea8a5225 Initial setup of wqwidgets
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /*
511
2d1d43c3a2c2 Upgraded jqwidgets to version 4.5.2
Michiel Broek <mbroek@mbse.eu>
parents: 373
diff changeset
2 jQWidgets v4.5.2 (2017-May)
2d1d43c3a2c2 Upgraded jqwidgets to version 4.5.2
Michiel Broek <mbroek@mbse.eu>
parents: 373
diff changeset
3 Copyright (c) 2011-2017 jQWidgets.
117
7119ea8a5225 Initial setup of wqwidgets
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 License: http://jqwidgets.com/license/
511
2d1d43c3a2c2 Upgraded jqwidgets to version 4.5.2
Michiel Broek <mbroek@mbse.eu>
parents: 373
diff changeset
5 */
2d1d43c3a2c2 Upgraded jqwidgets to version 4.5.2
Michiel Broek <mbroek@mbse.eu>
parents: 373
diff changeset
6 !function(a){a.jqx.jqxWidget("jqxButtonGroup","",{}),a.extend(a.jqx._jqxButtonGroup.prototype,{defineInstance:function(){var b={mode:"default",roundedCorners:!0,disabled:!1,enableHover:!1,orientation:"horizontal",width:null,height:null,_eventsMap:{mousedown:a.jqx.mobile.getTouchEventName("touchstart"),mouseup:a.jqx.mobile.getTouchEventName("touchend")},_events:["selected","unselected","buttonclick"],_buttonId:{},_selected:null,_pressed:null,rtl:!1,template:"",_baseId:"group_button",aria:{"aria-disabled":{name:"disabled",type:"boolean"}}};return this===a.jqx._jqxButtonGroup.prototype?b:(a.extend(!0,this,b),b)},createInstance:function(b){var c=this;c._isTouchDevice=a.jqx.mobile.isTouchDevice(),a.jqx.aria(c),c._baseId=c._baseId+c.element.id,c.addHandler(c.host,"selectstart",function(a){c.disabled||a.preventDefault()})},refresh:function(){var a=this;a.width&&(a.width.toString()&&a.width.indexOf("%")>=0?a.element.style.width=a.width:a.host.width(a.width)),a.height&&a.host.height(a.height),a._refreshButtons()},render:function(){this.refresh()},resize:function(){this.refresh()},_getEvent:function(a){var b=this;if(b._isTouchDevice){var c=b._eventsMap[a]||a;return c+="."+b.element.id}return a+="."+b.element.id},_refreshButtons:function(){var b=this;b.lastElement&&b.lastElement.remove(),b.lastElement=a("<div style='clear: both;'></div>");var c,d=b.host.children(),e=d.length;switch(b.mode){case"radio":b.host.attr("role","radiogroup");break;case"checkbox":case"default":b.host.attr("role","group")}for(var f=new Number(100/e).toFixed(2),g=0;g<e;g+=1)c=a(d[g]),b.width&&("horizontal"===b.orientation?(c.css("width",f+"%"),c.css("box-sizing","border-box"),c.css("-moz-box-sizing","border-box"),c.css("white-space","nowrap"),c.css("text-overflow","ellipsis"),c.css("overflow","hidden")):(c.css("box-sizing","border-box"),c.css("-moz-box-sizing","border-box"),c.css("width","100%"))),b._refreshButton(c,g,e);b.lastElement.appendTo(b.host)},_refreshButton:function(a,b,c){(function(a){var d=this;a=d._render(a),d._removeStyles(a),d._addStyles(a,b,c),d._performLayout(a),d._removeButtonListeners(a),d._addButtonListeners(a),d._handleButtonId(a,b),"radio"===d.mode?a.attr("role","radio"):a.attr("role","button"),a.attr("disabled",d.disabled),d.disabled?a.addClass(d.toThemeProperty("jqx-fill-state-disabled")):a.removeClass(d.toThemeProperty("jqx-fill-state-disabled"))}).apply(this,[a])},destroy:function(b){for(var c,d=this,e=d.host.children(),f=e.length,g=0;g<f;g+=1)c=a(e[g]),d._removeStyles(c),d._removeButtonListeners(c);b!==!1&&d.host.remove()},_render:function(a){var b=this;return"button"===a[0].tagName.toLowerCase()?b._renderFromButton(a):b._renderButton(a)},_renderButton:function(a){return a.wrapInner("<div/>"),a},_removeStyles:function(a){var b=this,c=b.toThemeProperty;b.host.removeClass("jqx-widget"),b.host.removeClass("jqx-rc-all"),a.removeClass(c.call(this,"jqx-fill-state-normal")),a.removeClass(c.call(this,"jqx-group-button-normal")),a.removeClass(c.call(this,"jqx-rc-tl")),a.removeClass(c.call(this,"jqx-rc-bl")),a.removeClass(c.call(this,"jqx-rc-tr")),a.removeClass(c.call(this,"jqx-rc-br")),a.css("margin-left",0)},_addStyles:function(a,b,c){var d=this,e=this.toThemeProperty;d.host.addClass(e.call(this,"jqx-widget")),d.host.addClass(e.call(this,"jqx-rc-all")),d.host.addClass(e.call(this,"jqx-buttongroup")),a.addClass(e.call(this,"jqx-button")),a.addClass(e.call(this,"jqx-group-button-normal")),a.addClass(e.call(this,"jqx-fill-state-normal")),d.template&&a.addClass(e.call(this,"jqx-"+d.template)),d.roundedCorners&&(0===b?d._addRoundedCorners(a,!0):b===c-1&&d._addRoundedCorners(a,!1)),"horizontal"===d.orientation?a.css("margin-left",-parseInt(a.css("border-left-width"),10)):a.css("margin-top",-parseInt(a.css("border-left-width"),10))},_addRoundedCorners:function(a,b){var c=this,d=c.toThemeProperty;"horizontal"===c.orientation?b?(a.addClass(d.call(this,"jqx-rc-tl")),a.addClass(d.call(this,"jqx-rc-bl"))):(a.addClass(d.call(this,"jqx-rc-tr")),a.addClass(d.call(this,"jqx-rc-br"))):b?(a.addClass(d.call(this,"jqx-rc-tl")),a.addClass(d.call(this,"jqx-rc-tr"))):(a.addClass(d.call(this,"jqx-rc-bl")),a.addClass(d.call(this,"jqx-rc-br")))},_centerContent:function(a,b){return a.css({"margin-top":(b.height()-a.height())/2,"margin-left":(b.width()-a.width())/2}),a},_renderFromButton:function(b){var c=b.val();""===c&&(c=b.html());var d,e=b[0].id;return b.wrap("<div/>"),d=b.parent(),d.attr("style",b.attr("style")),b.remove(),a.jqx.utilities.html(d,c),d[0].id=e,d},_performLayout:function(b){"horizontal"===this.orientation?this.rtl?b.css("float","right"):b.css("float","left"):b.css("float","none"),this._centerContent(a(b.children()),b)},_mouseEnterHandler:function(b){var c=b.data.self,d=a(b.currentTarget);if(!c._isDisabled(d)&&c.enableHover){var e=c.toThemeProperty;d.addClass(e.call(c,"jqx-group-button-hover")),d.addClass(e.call(c,"jqx-fill-state-hover"))}},_mouseLeaveHandler:function(b){var c=b.data.self,d=a(b.currentTarget);if(!c._isDisabled(d)&&c.enableHover){var e=c.toThemeProperty;d.removeClass(e.call(c,"jqx-group-button-hover")),d.removeClass(e.call(c,"jqx-fill-state-hover"))}},_mouseDownHandler:function(b){var c=b.data.self,d=a(b.currentTarget);if(!c._isDisabled(d)){c._pressed=d;var e=c.toThemeProperty;d.addClass(e.call(c,"jqx-group-button-pressed")),d.addClass(e.call(c,"jqx-fill-state-pressed"))}},_mouseUpHandler:function(b){var c=b.data.self,d=a(b.currentTarget);c._isDisabled(d)||(c._handleSelection(d),c._pressed=null,d=c._buttonId[d[0].id],c._raiseEvent(2,{index:d.num,button:d.btn}))},_isDisabled:function(a){return!(!a||!a[0])&&this._buttonId[a[0].id].disabled},_documentUpHandler:function(a){var b=a.data.self,c=b._pressed;c&&!b._buttonId[c[0].id].selected&&(c.removeClass(b.toThemeProperty("jqx-fill-state-pressed")),b._pressed=null)},_addButtonListeners:function(b){var c=this,d=c.addHandler,e=c._getEvent;d(b,e.call(c,"mouseenter"),c._mouseEnterHandler,{self:c}),d(b,e.call(c,"mouseleave"),c._mouseLeaveHandler,{self:c}),d(b,e.call(c,"mousedown"),c._mouseDownHandler,{self:c}),d(b,e.call(c,"mouseup"),c._mouseUpHandler,{self:c}),d(a(document),e.call(c,"mouseup"),c._documentUpHandler,{self:c})},_removeButtonListeners:function(b){var c=this,d=c.removeHandler,e=c._getEvent;d(b,e.call(c,"mouseenter"),c._mouseEnterHandler),d(b,e.call(c,"mouseleave"),c._mouseLeaveHandler),d(b,e.call(c,"mousedown"),c._mouseDownHandler),d(b,e.call(c,"mouseup"),c._mouseUpHandler),d(a(document),e.call(c,"mouseup"),c._documentUpHandler)},_handleSelection:function(a){var b=this;"radio"===b.mode?b._handleRadio(a):"checkbox"===b.mode?b._handleCheckbox(a):b._handleDefault(a)},_handleRadio:function(a){var b=this,c=b._getSelectedButton();c&&c.btn[0].id!==a[0].id&&b._unselectButton(c.btn,!0);for(var d in b._buttonId)b._buttonId[d].selected=!0,b._unselectButton(b._buttonId[d].btn,!1);b._selectButton(a,!0)},_handleCheckbox:function(a){var b=this,c=b._buttonId[a[0].id];c.selected?b._unselectButton(c.btn,!0):b._selectButton(a,!0)},_handleDefault:function(a){var b=this;b._selectButton(a,!1);for(var c in b._buttonId)b._buttonId[c].selected=!0,b._unselectButton(b._buttonId[c].btn,!1)},_getSelectedButton:function(){var a=this;for(var b in a._buttonId)if(a._buttonId[b].selected)return a._buttonId[b];return null},_getSelectedButtons:function(){var a=this,b=[];for(var c in a._buttonId)a._buttonId[c].selected&&b.push(a._buttonId[c].num);return b},_getButtonByIndex:function(a){var b=this;for(var c in b._buttonId)if(b._buttonId[c].num===a)return b._buttonId[c];return null},_selectButton:function(b,c){var d=this,e=d._buttonId[b[0].id];if(!e.selected){var f=d.toThemeProperty;e.btn.addClass(f.call(this,"jqx-group-button-pressed")),e.btn.addClass(f.call(this,"jqx-fill-state-pressed")),e.selected=!0,c&&d._raiseEvent(0,{index:e.num,button:e.btn}),a.jqx.aria(e.btn,"aria-checked",!0)}},_unselectButton:function(b,c){var d=this,e=d._buttonId[b[0].id];if(e.selected){var f=d.toThemeProperty;e.btn.removeClass(f.call(this,"jqx-group-button-pressed")),e.btn.removeClass(f.call(this,"jqx-fill-state-pressed")),e.selected=!1,c&&d._raiseEvent(1,{index:e.num,button:e.btn}),a.jqx.aria(e.btn,"aria-checked",!1)}},setSelection:function(a){var b=this;if(a===-1)return void b.clearSelection();if("checkbox"===b.mode)if("number"==typeof a)b._setSelection(a);else for(var c=0;c<a.length;c+=1)b._setSelection(a[c]);else"number"==typeof a&&"radio"===b.mode&&b._setSelection(a)},_setSelection:function(a){var b=this,c=b._getButtonByIndex(a);c&&b._handleSelection(c.btn)},getSelection:function(){var a=this;if("radio"===a.mode){if(a._getSelectedButton())return a._getSelectedButton().num}else if("checkbox"===a.mode)return a._getSelectedButtons()},disable:function(){var b=this;b.disabled=!0;var c;for(var d in b._buttonId)c=b._buttonId[d],b.disableAt(c.num);a.jqx.aria(b,"aria-disabled",!0)},enable:function(){var b=this;b.disabled=!1;var c;for(var d in b._buttonId)c=b._buttonId[d],b.enableAt(c.num);a.jqx.aria(b,"aria-disabled",!1)},disableAt:function(a){var b=this,c=b._getButtonByIndex(a);c.disabled||(c.disabled=!0,c.btn.addClass(b.toThemeProperty("jqx-fill-state-disabled")))},enableAt:function(a){var b=this,c=b._getButtonByIndex(a);c.disabled&&(c.disabled=!1,c.btn.removeClass(b.toThemeProperty("jqx-fill-state-disabled")))},_handleButtonId:function(a,b){var c=a[0].id,d={btn:a,num:b,selected:!1};return c||(c=this._baseId+a.index()),a[0].id=c,this._buttonId[c]=d,c},_raiseEvent:function(b,c){var d=a.Event(this._events[b]);return d.args=c,this.host.trigger(d)},_unselectAll:function(){for(var a in this._buttonId)this._unselectButton(this._buttonId[a].btn,!1)},clearSelection:function(){this._unselectAll()},propertyChangedHandler:function(b,c,d,e){return"theme"===c&&null!==e&&a.jqx.utilities.setTheme(d,e,b.host),"template"===c&&b.refresh(),"mode"===c?(b._unselectAll(),void b.refresh()):void("disabled"===c?e?b.disable():b.enable():b.refresh())}})}(jqxBaseFramework);
2d1d43c3a2c2 Upgraded jqwidgets to version 4.5.2
Michiel Broek <mbroek@mbse.eu>
parents: 373
diff changeset
7

mercurial