PageSourceSearch

https://seoup.su/bitrix/templates/seoup/assets/plugins/jquery-bootree/bootree.min.js?1587500997220821

js seoup.su collected 2026-10-05 00:08:57 UTC 220,821 bytes, 410 lines download raw bytes

1var bt={};bt.widget=function(){var self=this;self.xhr=null;self.generateGUID=function(){function s4(){return Math.floor((1+Math.random())*0x10000).toString(16).substring(1)}
2return s4()+s4()+'-'+s4()+'-'+s4()+'-'+s4()+'-'+s4()+s4()+s4()};self.mouseX=function(e){if(e){if(e.pageX){return e.pageX}else if(e.clientX){return e.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft)}else if(e.touches&&e.touches.length){return e.touches[0].pageX}else if(e.changedTouches&&e.changedTouches.length){return e.changedTouches[0].pageX}else if(e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length){return e.originalEvent.touches[0].pageX}else if(e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches.length){return e.originalEvent.touches[0].pageX}}
3return null};self.mouseY=function(e){if(e){if(e.pageY){return e.pageY}else if(e.clientY){return e.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)}else if(e.touches&&e.touches.length){return e.touches[0].pageY}else if(e.changedTouches&&e.changedTouches.length){return e.changedTouches[0].pageY}else if(e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length){return e.originalEvent.touches[0].pageY}else if(e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches.length){return e.originalEvent.touches[0].pageY}}
4return null}};bt.widget.prototype.init=function(jsConfig,type){var option,clientConfig,fullConfig;this.attr('data-type',type);clientConfig=$.extend(!0,{},this.getHTMLConfig()||{});$.extend(!0,clientConfig,jsConfig||{});fullConfig=this.getConfig(clientConfig,type);this.attr('data-guid',fullConfig.guid);this.data(fullConfig);for(option in fullConfig){if(bt[type].events.hasOwnProperty(option)){this.on(option,fullConfig[option]);delete fullConfig[option]}}
5for(plugin in bt[type].plugins){if(bt[type].plugins.hasOwnProperty(plugin)){bt[type].plugins[plugin].configure(this,fullConfig,clientConfig)}}
6return this};bt.widget.prototype.getConfig=function(clientConfig,type){var config,uiLibrary,iconsLibrary,plugin;config=$.extend(!0,{},bt[type].config.base);uiLibrary=clientConfig.hasOwnProperty('uiLibrary')?clientConfig.uiLibrary:config.uiLibrary;if(bt[type].config[uiLibrary]){$.extend(!0,config,bt[type].config[uiLibrary])}
7iconsLibrary=clientConfig.hasOwnProperty('iconsLibrary')?clientConfig.iconsLibrary:config.iconsLibrary;if(bt[type].config[iconsLibrary]){$.extend(!0,config,bt[type].config[iconsLibrary])}
8for(plugin in bt[type].plugins){if(bt[type].plugins.hasOwnProperty(plugin)){$.extend(!0,config,bt[type].plugins[plugin].config.base);if(bt[type].plugins[plugin].config[uiLibrary]){$.extend(!0,config,bt[type].plugins[plugin].config[uiLibrary])}
9if(bt[type].plugins[plugin].config[iconsLibrary]){$.extend(!0,config,bt[type].plugins[plugin].config[iconsLibrary])}}}
10$.extend(!0,config,clientConfig);if(!config.guid){config.guid=this.generateGUID()}
11return config}
12bt.widget.prototype.getHTMLConfig=function(){var result=this.data(),attrs=this[0].attributes;if(attrs.width){result.width=attrs.width.value}
13if(attrs.height){result.height=attrs.height.value}
14if(attrs.value){result.value=attrs.value.value}
15if(attrs.align){result.align=attrs.align.value}
16if(result&&result.source){result.dataSource=result.source;delete result.source}
17return result};bt.widget.prototype.createDoneHandler=function(){var $widget=this;return function(response){if(typeof(response)==='string'&&JSON){response=JSON.parse(response)}
18bt[$widget.data('type')].methods.render($widget,response)}};bt.widget.prototype.createErrorHandler=function(){var $widget=this;return function(response){if(response&&response.statusText&&response.statusText!=='abort'){alert(response.statusText)}}};bt.widget.prototype.reload=function(params){var ajaxOptions,result,data=this.data(),type=this.data('type');if(data.dataSource===undefined){bt[type].methods.useHtmlDataSource(this,data)}
19$.extend(data.params,params);if($.isArray(data.dataSource)){result=bt[type].methods.filter(this);bt[type].methods.render(this,result)}else if(typeof(data.dataSource)==='string'){ajaxOptions={url:data.dataSource,data:data.params};if(this.xhr){this.xhr.abort()}
20this.xhr=$.ajax(ajaxOptions).done(this.createDoneHandler()).fail(this.createErrorHandler())}else if(typeof(data.dataSource)==='object'){if(!data.dataSource.data){data.dataSource.data={}}
21$.extend(data.dataSource.data,data.params);ajaxOptions=$.extend(!0,{},data.dataSource);if(ajaxOptions.dataType==='json'&&typeof(ajaxOptions.data)==='object'){ajaxOptions.data=JSON.stringify(ajaxOptions.data)}
22if(!ajaxOptions.success){ajaxOptions.success=this.createDoneHandler()}
23if(!ajaxOptions.error){ajaxOptions.error=this.createErrorHandler()}
24if(this.xhr){this.xhr.abort()}
25this.xhr=$.ajax(ajaxOptions)}
26return this}
27bt.documentManager={events:{},subscribeForEvent:function(eventName,widgetId,callback){if(!bt.documentManager.events[eventName]||bt.documentManager.events[eventName].length===0){bt.documentManager.events[eventName]=[{widgetId:widgetId,callback:callback}];$(document).on(eventName,bt.documentManager.executeCallbacks)}else if(!bt.documentManager.events[eventName][widgetId]){bt.documentManager.events[eventName].push({widgetId:widgetId,callback:callback})}else{throw 'Event '+eventName+' for widget with guid="'+widgetId+'" is already attached.'}},executeCallbacks:function(e){var callbacks=bt.documentManager.events[e.type];if(callbacks){for(var i=0;i<callbacks.length;i++){callbacks[i].callback(e)}}},unsubscribeForEvent:function(eventName,widgetId){var success=!1,events=bt.documentManager.events[eventName];if(events){for(var i=0;i<events.length;i++){if(events[i].widgetId===widgetId){events.splice(i,1);success=!0;if(events.length===0){$(document).off(eventName);delete bt.documentManager.events[eventName]}}}}
28if(!success){throw 'The "'+eventName+'" for widget with guid="'+widgetId+'" can\'t be removed.'}}};bt.core={messages:{'en-us':{monthNames:['January','February','March','April','May','June','July','August','September','October','November','December'],monthShortNames:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],weekDaysMin:['S','M','T','W','T','F','S'],weekDaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
28ay","Saturday"],am:'AM',pm:'PM',ok:'Ok',cancel:'Cancel'}},parseDate:function(value,format,locale){var i,year=0,month=0,date=0,hour=0,minute=0,dateParts,formatParts,result;if(value&&typeof value==='string'){if(/^\d+$/.test(value)){result=new Date(value)}else if(value.indexOf('/Date(')>-1){result=new Date(parseInt(value.substr(6),10))}else if(value){dateParts=value.split(/[\s,-\.//\:]+/);formatParts=format.split(/[\s,-\.//\:]+/);for(i=0;i<formatParts.length;i++){if(['d','dd'].indexOf(formatParts[i])>-1){date=parseInt(dateParts[i],10)}else if(['m','mm'].indexOf(formatParts[i])>-1){month=parseInt(dateParts[i],10)-1}else if('mmm'===formatParts[i]){month=bt.core.messages[locale||'en-us'].monthShortNames.indexOf(dateParts[i])}else if('mmmm'===formatParts[i]){month=bt.core.messages[locale||'en-us'].monthNames.indexOf(dateParts[i])}else if(['yy','yyyy'].indexOf(formatParts[i])>-1){year=parseInt(dateParts[i],10);if(formatParts[i]==='yy'){year+=2000}}else if(['h','hh','H','HH'].indexOf(formatParts[i])>-1){hour=parseInt(dateParts[i],10)}else if(['M','MM'].indexOf(formatParts[i])>-1){minute=parseInt(dateParts[i],10)}}
29result=new Date(year,month,date,hour,minute)}}else if(typeof value==='number'){result=new Date(value)}else if(value instanceof Date){result=value}
30return result},formatDate:function(date,format,locale){var result='',separator,tmp,formatParts=format.split(/[\s,-\.//\:]+/),separators=format.split(/s+|M+|H+|h+|t+|T+|d+|m+|y+/);separators=separators.splice(1,separators.length-2);for(i=0;i<formatParts.length;i++){separator=(separators[i]||'');switch(formatParts[i]){case 's':result+=date.getSeconds()+separator;break;case 'ss':result+=bt.core.pad(date.getSeconds())+separator;break;case 'M':result+=date.getMinutes()+separator;break;case 'MM':result+=bt.core.pad(date.getMinutes())+separator;break;case 'H':result+=date.getHours()+separator;break;case 'HH':result+=bt.core.pad(date.getHours())+separator;break;case 'h':tmp=date.getHours()>12?date.getHours()%12:date.getHours();result+=tmp+separator;break;case 'hh':tmp=date.getHours()>12?date.getHours()%12:date.getHours();result+=bt.core.pad(tmp)+separator;break;case 'tt':result+=(date.getHours()>=12?'pm':'am')+separator;break;case 'TT':result+=(date.getHours()>=12?'PM':'AM')+separator;break;case 'd':result+=date.getDate()+separator;break;case 'dd':result+=bt.core.pad(date.getDate())+separator;break;case 'ddd':result+=bt.core.messages[locale||'en-us'].weekDaysShort[date.getDay()]+separator;break;case 'dddd':result+=bt.core.messages[locale||'en-us'].weekDays[date.getDay()]+separator;break;case 'm':result+=(date.getMonth()+1)+separator;break;case 'mm':result+=bt.core.pad(date.getMonth()+1)+separator;break;case 'mmm':result+=bt.core.messages[locale||'en-us'].monthShortNames[date.getMonth()]+separator;break;case 'mmmm':result+=bt.core.messages[locale||'en-us'].monthNames[date.getMonth()]+separator;break;case 'yy':result+=date.getFullYear().toString().substr(2)+separator;break;case 'yyyy':result+=date.getFullYear()+separator;break}}
31return result},pad:function(val,len){val=String(val);len=len||2;while(val.length<len){val='0'+val}
32return val},center:function($dialog){var left=($(window).width()/2)-($dialog.width()/2),top=($(window).height()/2)-($dialog.height()/2);$dialog.css('position','absolute');$dialog.css('left',left>0?left:0);$dialog.css('top',top>0?top:0)},isIE:function(){return!!navigator.userAgent.match(/Trident/g)||!!navigator.userAgent.match(/MSIE/g)},setChildPosition:function(mainEl,childEl){var mainElRect=mainEl.getBoundingClientRect(),mainElHeight=bt.core.height(mainEl,!0),childElHeight=bt.core.height(childEl,!0),mainElWidth=bt.core.width(mainEl,!0),childElWidth=bt.core.width(childEl,!0),scrollY=window.scrollY||window.pageYOffset||0,scrollX=window.scrollX||window.pageXOffset||0;if((mainElRect.top+mainElHeight+childElHeight)>window.innerHeight&&mainElRect.top>childElHeight){childEl.style.top=Math.round(mainElRect.top+scrollY-childElHeight-3)+'px'}else{childEl.style.top=Math.round(mainElRect.top+scrollY+mainElHeight+3)+'px'}
33if(mainElRect.left+childElWidth>document.body.clientWidth){childEl.style.left=Math.round(mainElRect.left+scrollX+mainElWidth-childElWi
33dth)+'px'}else{childEl.style.left=Math.round(mainElRect.left+scrollX)+'px'}},height:function(el,margin){var result,style=window.getComputedStyle(el);if(style.boxSizing==='border-box'){result=parseInt(style.height,10)}else{result=parseInt(style.height,10);result+=parseInt(style.paddingTop||0,10)+parseInt(style.paddingBottom||0,10);result+=parseInt(style.borderTop||0,10)+parseInt(style.borderBottom||0,10)}
34if(margin){result+=parseInt(style.marginTop||0,10)+parseInt(style.marginBottom||0,10)}
35return result},width:function(el,margin){var result,style=window.getComputedStyle(el);if(style.boxSizing==='border-box'){result=parseInt(style.width,10)}else{result=parseInt(style.width,10);result+=parseInt(style.paddingLeft||0,10)+parseInt(style.paddingRight||0,10);result+=parseInt(style.borderLeft||0,10)+parseInt(style.borderRight||0,10)}
36if(margin){result+=parseInt(style.marginLeft||0,10)+parseInt(style.marginRight||0,10)}
37return result},addClasses:function(el,classes){var i,arr;if(classes){arr=classes.split(' ');for(i=0;i<arr.length;i++){el.classList.add(arr[i])}}},position:function(elem,padding,margin){var box=elem.getBoundingClientRect(),body=document.body,bodyStyle=window.getComputedStyle(body),docEl=document.documentElement,scrollTop=window.pageYOffset||docEl.scrollTop||body.scrollTop,scrollLeft=window.pageXOffset||docEl.scrollLeft||body.scrollLeft,clientTop=docEl.clientTop||body.clientTop||0,clientLeft=docEl.clientLeft||body.clientLeft||0,top=Math.round(box.top+scrollTop-clientTop),left=Math.round(box.left+scrollLeft-clientLeft);if(padding){top+=parseInt(bodyStyle.paddingTop||0,10);left+=parseInt(bodyStyle.paddingLeft||0,10)}
38if(margin){top+=parseInt(bodyStyle.marginTop||0,10);left+=parseInt(bodyStyle.marginLeft||0,10)}
39return{top:top,left:left,bottom:top+bt.core.height(elem),right:left+bt.core.width(elem)}}};bt.dialog={plugins:{},messages:{}};bt.dialog.config={base:{autoOpen:!0,closeButtonInHeader:!0,closeOnEscape:!0,draggable:!0,height:'auto',locale:'en-us',maxHeight:undefined,maxWidth:undefined,minHeight:undefined,minWidth:undefined,modal:!1,resizable:!1,scrollable:!1,title:undefined,uiLibrary:undefined,width:300,style:{modal:'bt-modal',content:'bt-dialog-md',header:'bt-dialog-md-header bt-unselectable',headerTitle:'bt-dialog-md-title',headerCloseButton:'bt-dialog-md-close',body:'bt-dialog-md-body',footer:'bt-dialog-footer bt-dialog-md-footer'}},bootstrap:{style:{modal:'modal',content:'modal-content bt-dialog-bootstrap',header:'modal-header',headerTitle:'modal-title',headerCloseButton:'close',body:'modal-body',footer:'bt-dialog-footer modal-footer'}},bootstrap4:{style:{modal:'modal',content:'modal-content bt-dialog-bootstrap4',header:'modal-header',headerTitle:'modal-title',headerCloseButton:'close',body:'modal-body',footer:'bt-dialog-footer modal-footer'}}};bt.dialog.events={initialized:function($dialog){$dialog.trigger("initialized")},opening:function($dialog){$dialog.trigger("opening")},opened:function($dialog){$dialog.trigger("opened")},closing:function($dialog){$dialog.trigger("closing")},closed:function($dialog){$dialog.trigger("closed")},drag:function($dialog){$dialog.trigger("drag")},dragStart:function($dialog){$dialog.trigger("dragStart")},dragStop:function($dialog){$dialog.trigger("dragStop")},resize:function($dialog){$dialog.trigger("resize")},resizeStart:function($dialog){$dialog.trigger("resizeStart")},resizeStop:function($dialog){$dialog.trigger("resizeStop")}};bt.dialog.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'dialog');bt.dialog.methods.localization(this);bt.dialog.methods.initialize(this);bt.dialog.events.initialized(this);return this},localization:function($dialog){var data=$dialog.data();if(typeof(data.title)==='undefined'){data.title=bt.dialog.messages[data.locale].DefaultTitle}},getHTMLConfig:function(){var result=bt.widget.prototype.getHTMLConfig.call(this),attrs=this[0].attributes;if(attrs.title){result.title=attrs.title.value}
40return result},initialize:function($dialog){var data=$dialog.data(),$header,$body,$footer;$dialog.addClass(data.style.content);bt.dialog.methods.setSize($dialog);
40if(data.closeOnEscape){$(document).keyup(function(e){if(e.keyCode===27){$dialog.close()}})}
41$body=$dialog.children('div[data-role="body"]');if($body.length===0){$body=$('<div data-role="body"/>').addClass(data.style.body);$dialog.wrapInner($body)}else{$body.addClass(data.style.body)}
42$header=bt.dialog.methods.renderHeader($dialog);$footer=$dialog.children('div[data-role="footer"]').addClass(data.style.footer);$dialog.find('[data-role="close"]').on('click',function(){$dialog.close()});if(bt.draggable){if(data.draggable){bt.dialog.methods.draggable($dialog,$header)}
43if(data.resizable){bt.dialog.methods.resizable($dialog)}}
44if(data.scrollable&&data.height){$dialog.addClass('bt-dialog-scrollable');$dialog.on('opened',function(){var $body=$dialog.children('div[data-role="body"]');$body.css('height',data.height-$header.outerHeight()-($footer.length?$footer.outerHeight():0))})}
45bt.core.center($dialog);if(data.modal){$dialog.wrapAll('<div data-role="modal" class="'+data.style.modal+'"/>')}
46if(data.autoOpen){$dialog.open()}},setSize:function($dialog){var data=$dialog.data();if(data.width){$dialog.css("width",data.width)}
47if(data.height){$dialog.css("height",data.height)}},renderHeader:function($dialog){var $header,$title,$closeButton,data=$dialog.data();$header=$dialog.children('div[data-role="header"]');if($header.length===0){$header=$('<div data-role="header" />');$dialog.prepend($header)}
48$header.addClass(data.style.header);$title=$header.find('[data-role="title"]');if($title.length===0){$title=$('<h4 data-role="title">'+data.title+'</h4>');$header.append($title)}
49$title.addClass(data.style.headerTitle);$closeButton=$header.find('[data-role="close"]');if($closeButton.length===0&&data.closeButtonInHeader){$closeButton=$('<button type="button" data-role="close" title="'+bt.dialog.messages[data.locale].Close+'"><span>×</span></button>');$closeButton.addClass(data.style.headerCloseButton);$header.append($closeButton)}else if($closeButton.length>0&&data.closeButtonInHeader===!1){$closeButton.hide()}else{$closeButton.addClass(data.style.headerCloseButton)}
50return $header},draggable:function($dialog,$header){$dialog.appendTo('body');$header.addClass('bt-draggable');$dialog.draggable({handle:$header,start:function(){$dialog.addClass('bt-unselectable');bt.dialog.events.dragStart($dialog)},stop:function(){$dialog.removeClass('bt-unselectable');bt.dialog.events.dragStop($dialog)}})},resizable:function($dialog){var config={'drag':bt.dialog.methods.resize,'start':function(){$dialog.addClass('bt-unselectable');bt.dialog.events.resizeStart($dialog)},'stop':function(){this.removeAttribute('style');$dialog.removeClass('bt-unselectable');bt.dialog.events.resizeStop($dialog)}};$dialog.append($('<div class="bt-resizable-handle bt-resizable-n"></div>').draggable($.extend(!0,{horizontal:!1},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-e"></div>').draggable($.extend(!0,{vertical:!1},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-s"></div>').draggable($.extend(!0,{horizontal:!1},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-w"></div>').draggable($.extend(!0,{vertical:!1},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-ne"></div>').draggable($.extend(!0,{},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-nw"></div>').draggable($.extend(!0,{},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-sw"></div>').draggable($.extend(!0,{},config)));$dialog.append($('<div class="bt-resizable-handle bt-resizable-se"></div>').draggable($.extend(!0,{},config)))},resize:function(e,newPosition){var $el,$dialog,position,data,height,width,top,left,result=!1;$el=$(this);$dialog=$el.parent();position=bt.core.position(this);offset={top:newPosition.top-position.top,left:newPosition.left-position.left};data=$dialog.data();if($el.hasClass('bt-resizable-n')){height=$dialog.height()-offset.top;top=$dialog.offset().top+offset.top}else if($el.hasClass('bt-resizable-e')){width=$dialog.width()+offset.left}else if($el.hasClass('bt-resizable-s')){height=$dialog.height()+offset.top}else if($el.hasClass('bt-resizable-w')){width=$dialog.width()-offset.left;
50left=$dialog.offset().left+offset.left}else if($el.hasClass('bt-resizable-ne')){height=$dialog.height()-offset.top;top=$dialog.offset().top+offset.top;width=$dialog.width()+offset.left}else if($el.hasClass('bt-resizable-nw')){height=$dialog.height()-offset.top;top=$dialog.offset().top+offset.top;width=$dialog.width()-offset.left;left=$dialog.offset().left+offset.left}else if($el.hasClass('bt-resizable-se')){height=$dialog.height()+offset.top;width=$dialog.width()+offset.left}else if($el.hasClass('bt-resizable-sw')){height=$dialog.height()+offset.top;width=$dialog.width()-offset.left;left=$dialog.offset().left+offset.left}
51if(height&&(!data.minHeight||height>=data.minHeight)&&(!data.maxHeight||height<=data.maxHeight)){$dialog.height(height);if(top){$dialog.css('top',top)}
52result=!0}
53if(width&&(!data.minWidth||width>=data.minWidth)&&(!data.maxWidth||width<=data.maxWidth)){$dialog.width(width);if(left){$dialog.css('left',left)}
54result=!0}
55if(result){bt.dialog.events.resize($dialog)}
56return result},open:function($dialog,title){var $footer;bt.dialog.events.opening($dialog);$dialog.css('display','block');$dialog.closest('div[data-role="modal"]').css('display','block');$footer=$dialog.children('div[data-role="footer"]');if($footer.length&&$footer.outerHeight()){$dialog.children('div[data-role="body"]').css('margin-bottom',$footer.outerHeight())}
57if(title!==undefined){$dialog.find('[data-role="title"]').html(title)}
58bt.dialog.events.opened($dialog);return $dialog},close:function($dialog){if($dialog.is(':visible')){bt.dialog.events.closing($dialog);$dialog.css('display','none');$dialog.closest('div[data-role="modal"]').css('display','none');bt.dialog.events.closed($dialog)}
59return $dialog},isOpen:function($dialog){return $dialog.is(':visible')},content:function($dialog,html){var $body=$dialog.children('div[data-role="body"]');if(typeof(html)==="undefined"){return $body.html()}else{return $body.html(html)}},destroy:function($dialog,keepHtml){var data=$dialog.data();if(data){if(keepHtml===!1){$dialog.remove()}else{$dialog.close();$dialog.off();$dialog.removeData();$dialog.removeAttr('data-type');$dialog.removeClass(data.style.content);$dialog.find('[data-role="header"]').removeClass(data.style.header);$dialog.find('[data-role="title"]').removeClass(data.style.headerTitle);$dialog.find('[data-role="close"]').remove();$dialog.find('[data-role="body"]').removeClass(data.style.body);$dialog.find('[data-role="footer"]').removeClass(data.style.footer)}}
60return $dialog}};bt.dialog.widget=function($element,jsConfig){var self=this,methods=bt.dialog.methods;self.open=function(title){return methods.open(this,title)}
61self.close=function(){return methods.close(this)}
62self.isOpen=function(){return methods.isOpen(this)}
63self.content=function(content){return methods.content(this,content)}
64self.destroy=function(keepHtml){return methods.destroy(this,keepHtml)}
65$.extend($element,self);if('dialog'!==$element.attr('data-type')){methods.init.call($element,jsConfig)}
66return $element};bt.dialog.widget.prototype=new bt.widget();bt.dialog.widget.constructor=bt.dialog.widget;bt.dialog.widget.prototype.getHTMLConfig=bt.dialog.methods.getHTMLConfig;(function($){$.fn.dialog=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.dialog.widget(this,method)}else{$widget=new bt.dialog.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.dialog.messages['en-us']={Close:'Close',DefaultTitle:'Dialog'};bt.draggable={plugins:{}};bt.draggable.config={base:{handle:undefined,vertical:!0,horizontal:!0,containment:undefined}};bt.draggable.methods={init:function(jsConfig){var $handleEl,data,$dragEl=this;bt.widget.prototype.init.call(this,jsConfig,'draggable');data=this.data();$dragEl.attr('data-draggable','true');$handleEl=bt.draggable.methods.getHandleElement($dragEl);$handleEl.on('touchstart mousedown',function(e){var position=bt.core.position($dragEl[0]);$dragEl[0].style.top=position.top+'px';$dragEl[0].style.left=position.left+'px';$dragEl[0].style.position='fixed';$dragEl.attr('draggable-dragging',!0);$dragEl.removeAttr('draggable-x').removeAttr('draggable-y');bt.documentManager.subscribeForEvent('touchmove',$dragEl.data('guid'),bt.draggable.methods.createMoveHandler($dragEl,$handleEl,data));bt.documentManager.subscribeForEvent('mousemove',$dragEl.data('guid'),bt.draggable.methods.createMoveHandler($dragEl,$handleEl,data))});bt.documentManager.subscribeForEvent('mouseup',$dragEl.data('guid'),bt.draggable.methods.createUpHandler($dragEl));bt.documentManager.subscribeForEvent('touchend',$dragEl.data('guid'),bt.draggable.methods.createUpHandler($dragEl));bt.documentManager.subscribeForEvent('touchcancel',$dragEl.data('guid'),bt.draggable.methods.createUpHandler($dragEl));return $dragEl},getHandleElement:function($dragEl){var $handle=$dragEl.data('handle');return($handle&&$handle.length)?$handle:$dragEl},createUpHandler:function($dragEl){return function(e){if($dragEl.attr('draggable-dragging')==='true'){$dragEl.attr('draggable-dragging',!1);bt.documentManager.unsubscribeForEvent('mousemove',$dragEl.data('guid'));bt.documentManager.unsubscribeForEvent('touchmove',$dragEl.data('guid'));bt.draggable.events.stop($dragEl,{x:$dragEl.mouseX(e),y:$dragEl.mouseY(e)})}}},createMoveHandler:function($dragEl,$handleEl,data){return function(e){var mouseX,mouseY,offsetX,offsetY,prevX,prevY;if($dragEl.attr('draggable-dragging')==='true'){mouseX=Math.round($dragEl.mouseX(e));mouseY=Math.round($dragEl.mouseY(e));prevX=$dragEl.attr('draggable-x');prevY=$dragEl.attr('draggable-y');if(prevX&&prevY){offsetX=data.horizontal?mouseX-parseInt(prevX,10):0;offsetY=data.vertical?mouseY-parseInt(prevY,10):0;bt.draggable.methods.move($dragEl[0],data,offsetX,offsetY,mouseX,mouseY)}else{bt.draggable.events.start($dragEl,mouseX,mouseY)}
67$dragEl.attr('draggable-x',mouseX);$dragEl.attr('draggable-y',mouseY)}}},move:function(dragEl,data,offsetX,offsetY,mouseX,mouseY){var contPosition,maxTop,maxLeft,position=bt.core.position(dragEl),newTop=position.top+offsetY,newLeft=position.left+offsetX;if(data.containment){contPosition=bt.core.position(data.containment);maxTop=contPosition.top+bt.core.height(data.containment)-bt.core.height(dragEl);maxLeft=contPosition.left+bt.core.width(data.containment)-bt.core.width(dragEl);if(newTop>contPosition.top&&newTop<maxTop){if(contPosition.top>=mouseY||contPosition.bottom<=mouseY){newTop=position.top}}else{if(newTop<=contPosition.top){newTop=contPosition.top+1}else{newTop=maxTop-1}}
68if(newLeft>contPosition.left&&newLeft<maxLeft){if(contPosition.left>=mouseX||contPosition.right<=mouseX){newLeft=position.left}}else{if(newLeft<=contPosition.left){newLeft=contPosition.left+1}else{newLeft=maxLeft-1}}}
69if(!1!==bt.draggable.events.drag($(dragEl),newTop,newLeft,mouseX,mouseY)){dragEl.style.top=newTop+'px';dragEl.style.left=newLeft+'px'}},destroy:function($dragEl){if($dragEl.attr('data-draggable')==='true'){bt.documentManager.unsubscribeForEvent('mouseup',$dragEl.data('guid'));$dragEl.removeData();$dragEl.removeAttr('data-guid');$dragEl.removeAttr('data-draggable');$dragEl.off('drag').off('start').off('stop');bt.draggable.methods.getHandleElement($dragEl).off('mousedown')}
70return $dragEl}};bt.draggable.events={drag:function($dragEl,newTop,newLeft,mouseX,mouseY){return $dragEl.triggerHandler('drag',[{top:newTop,left
70:newLeft},{x:mouseX,y:mouseY}])},start:function($dragEl,mouseX,mouseY){$dragEl.triggerHandler('start',[{x:mouseX,y:mouseY}])},stop:function($dragEl,mousePosition){$dragEl.triggerHandler('stop',[mousePosition])}};bt.draggable.widget=function($element,jsConfig){var self=this,methods=bt.draggable.methods;if(!$element.destroy){self.destroy=function(){return methods.destroy(this)}}
71$.extend($element,self);if('true'!==$element.attr('data-draggable')){methods.init.call($element,jsConfig)}
72return $element};bt.draggable.widget.prototype=new bt.widget();bt.draggable.widget.constructor=bt.draggable.widget;(function($){$.fn.draggable=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.draggable.widget(this,method)}else{$widget=new bt.draggable.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.droppable={plugins:{}};bt.droppable.config={hoverClass:undefined};bt.droppable.methods={init:function(jsConfig){var $dropEl=this;bt.widget.prototype.init.call(this,jsConfig,'droppable');$dropEl.attr('data-droppable','true');bt.documentManager.subscribeForEvent('mousedown',$dropEl.data('guid'),bt.droppable.methods.createMouseDownHandler($dropEl));bt.documentManager.subscribeForEvent('mousemove',$dropEl.data('guid'),bt.droppable.methods.createMouseMoveHandler($dropEl));bt.documentManager.subscribeForEvent('mouseup',$dropEl.data('guid'),bt.droppable.methods.createMouseUpHandler($dropEl));return $dropEl},createMouseDownHandler:function($dropEl){return function(e){$dropEl.isDragging=!0}},createMouseMoveHandler:function($dropEl){return function(e){if($dropEl.isDragging){var hoverClass=$dropEl.data('hoverClass'),mousePosition={x:$dropEl.mouseX(e),y:$dropEl.mouseY(e)},newIsOver=bt.droppable.methods.isOver($dropEl,mousePosition);if(newIsOver!=$dropEl.isOver){if(newIsOver){if(hoverClass){$dropEl.addClass(hoverClass)}
73bt.droppable.events.over($dropEl,mousePosition)}else{if(hoverClass){$dropEl.removeClass(hoverClass)}
74bt.droppable.events.out($dropEl)}}
75$dropEl.isOver=newIsOver}}},createMouseUpHandler:function($dropEl){return function(e){var mousePosition={left:$dropEl.mouseX(e),top:$dropEl.mouseY(e)};$dropEl.isDragging=!1;if(bt.droppable.methods.isOver($dropEl,mousePosition)){bt.droppable.events.drop($dropEl)}}},isOver:function($dropEl,mousePosition){var offsetTop=$dropEl.offset().top,offsetLeft=$dropEl.offset().left;return mousePosition.x>offsetLeft&&mousePosition.x<(offsetLeft+$dropEl.outerWidth(!0))&&mousePosition.y>offsetTop&&mousePosition.y<(offsetTop+$dropEl.outerHeight(!0))},destroy:function($dropEl){if($dropEl.attr('data-droppable')==='true'){bt.documentManager.unsubscribeForEvent('mousedown',$dropEl.data('guid'));bt.documentManager.unsubscribeForEvent('mousemove',$dropEl.data('guid'));bt.documentManager.unsubscribeForEvent('mouseup',$dropEl.data('guid'));$dropEl.removeData();$dropEl.removeAttr('data-guid');$dropEl.removeAttr('data-droppable');$dropEl.off('drop').off('over').off('out')}
76return $dropEl}};bt.droppable.events={drop:function($dropEl,offsetX,offsetY){$dropEl.trigger('drop',[{top:offsetY,left:offsetX}])},over:function($dropEl,mousePosition){$dropEl.trigger('over',[mousePosition])},out:function($dropEl){$dropEl.trigger('out')}};bt.droppable.widget=function($element,jsConfig){var self=this,methods=bt.droppable.methods;self.isOver=!1;self.isDragging=!1;self.destroy=function(){return methods.destroy(this)}
77self.isOver=function(mousePosition){return methods.isOver(this,mousePosition)}
78$.extend($element,self);if('true'!==$element.attr('data-droppable')){methods.init.call($element,jsConfig)}
79return $element};bt.droppable.widget.prototype=new bt.widget();bt.droppable.widget.constructor=bt.droppable.widget;(function($){$.fn.droppable=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.droppable.widget(this,method)}else{$widget=new bt.droppable.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1
79))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.grid={plugins:{},messages:{}};bt.grid.config={base:{dataSource:undefined,columns:[],autoGenerateColumns:!1,defaultColumnSettings:{hidden:!1,width:undefined,sortable:!1,type:'text',title:undefined,field:undefined,align:undefined,cssClass:undefined,headerCssClass:undefined,tooltip:undefined,icon:undefined,events:undefined,format:'mm/dd/yyyy',decimalDigits:undefined,tmpl:undefined,stopPropagation:!1,renderer:undefined,filter:undefined},mapping:{dataField:'records',totalRecordsField:'total'},params:{},paramNames:{sortBy:'sortBy',direction:'direction'},uiLibrary:'materialdesign',iconsLibrary:'materialicons',selectionType:'single',selectionMethod:'basic',autoLoad:!0,notFoundText:undefined,width:undefined,minWidth:undefined,headerRowHeight:'fixed',bodyRowHeight:'autogrow',fontSize:undefined,primaryKey:undefined,locale:'en-us',defaultIconColumnWidth:70,defaultCheckBoxColumnWidth:70,style:{wrapper:'bt-grid-wrapper',table:'bt-grid bt-grid-md',loadingCover:'bt-grid-loading-cover',loadingText:'bt-grid-loading-text',header:{cell:undefined,sortable:'bt-cursor-pointer bt-unselectable'},content:{rowSelected:'bt-grid-md-select'}},icons:{asc:'▲',desc:'▼'}},bootstrap:{style:{wrapper:'bt-grid-wrapper',table:'bt-grid bt-grid-bootstrap bt-grid-bootstrap-3 table table-bordered table-hover',content:{rowSelected:'active'}},iconsLibrary:'glyphicons',defaultIconColumnWidth:34,defaultCheckBoxColumnWidth:36},bootstrap4:{style:{wrapper:'bt-grid-wrapper',table:'bt-grid bt-grid-bootstrap bt-grid-bootstrap-4 table table-bordered table-hover',content:{rowSelected:'active'}},defaultIconColumnWidth:42,defaultCheckBoxColumnWidth:44},materialicons:{icons:{asc:'<i class="bt-icon arrow-upward" />',desc:'<i class="bt-icon arrow-downward" />'}},fontawesome:{icons:{asc:'<i class="fa fa-sort-amount-asc" aria-hidden="true"></i>',desc:'<i class="fa fa-sort-amount-desc" aria-hidden="true"></i>'}},glyphicons:{icons:{asc:'<span class="glyphicon glyphicon-sort-by-alphabet" />',desc:'<span class="glyphicon glyphicon-sort-by-alphabet-alt" />'}}};bt.grid.events={beforeEmptyRowInsert:function($grid,$row){return $grid.triggerHandler('beforeEmptyRowInsert',[$row])},dataBinding:function($grid,records){return $grid.triggerHandler('dataBinding',[records])},dataBound:function($grid,records,totalRecords){return $grid.triggerHandler('dataBound',[records,totalRecords])},rowDataBound:function($grid,$row,id,record){return $grid.triggerHandler('rowDataBound',[$row,id,record])},cellDataBound:function($grid,$displayEl,id,column,record){return $grid.triggerHandler('cellDataBound',[$displayEl,id,column,record])},rowSelect:function($grid,$row,id,record){return $grid.triggerHandler('rowSelect',[$row,id,record])},rowUnselect:function($grid,$row,id,record){return $grid.triggerHandler('rowUnselect',[$row,id,record])},rowRemoving:function($grid,$row,id,record){return $grid.triggerHandler('rowRemoving',[$row,id,record])},destroying:function($grid){return $grid.triggerHandler('destroying')},columnHide:function($grid,column){return $grid.triggerHandler('columnHide',[column])},columnShow:function($grid,column){return $grid.triggerHandler('columnShow',[column])},initialized:function($grid){return $grid.triggerHandler('initialized')},dataFiltered:function($grid,records){return $grid.triggerHandler('dataFiltered',[records])}};bt.grid.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'grid');bt.grid.methods.initialize(this);if(this.data('autoLoad')){this.reload()}
80return this},getConfig:function(jsConfig,type){var config=bt.widget.prototype.getConfig.call(this,jsConfig,type);bt.grid.methods.setDefaultColumnConfig(config.columns,config.defaultColumnSettings);return config},setDefaultColumnConfig:function(columns,defaultColumnSettings){var column,i;if(columns&&columns.length){for(i=0;i<columns.length;i++){column=$.extend(!0,{},defaultColumnSettings);$.extend(!0,column,columns[i]);columns[i]=column}}},getHTMLConfig:function(){var result=bt.widget.prototype.getHTMLConfig.call(this);result.columns=[];this.find('thead > tr > th').each(function(){var $el=$(this),title=$el.text(),config=bt.widget.prototype.getHTMLConfig.call($el);config.title=title;if(!config.field){config.field=title}
81if(config.events){config.events=bt.grid.methods.eventsParser(config.events)}
82result.columns.push(config)});return result},eventsParser:function(events){var result={},list,i,key,func,position;list=events.split(',');for(i=0;i<list.length;i++){position=list[i].indexOf(':');if(position>0){key=$.trim(list[i].substr(0,position));func=$.trim(list[i].substr(position+1,list[i].length));result[key]=eval('window.'+func)}}
83return result},initialize:function($grid){var data=$grid.data(),$wrapper=$grid.parent('div[data-role="wrapper"]');bt.grid.methods.localization(data);if($wrapper.length===0){$wrapper=$('<div data-role="wrapper" />').addClass(data.style.wrapper);$grid.wrap($wrapper)}else{$wrapper.addClass(data.style.wrapper)}
84if(data.width){$grid.parent().css('width',data.width)}
85if(data.minWidth){$grid.css('min-width',data.minWidth)}
86if(data.fontSize){$grid.css('font-size',data.fontSize)}
87if(data.headerRowHeight==='autogrow'){$grid.addClass('autogrow-header-row')}
88if(data.bodyRowHeight==='fixed'){$grid.addClass('fixed-body-rows')}
89$grid.addClass(data.style.table);if('checkbox'===data.selectionMethod){data.columns.splice(bt.grid.methods.getColumnPositionNotInRole($grid),0,{title:'',width:data.defaultCheckBoxColumnWidth,align:'center',type:'checkbox',role:'selectRow',events:{click:function(e){bt.grid.methods.setSelected($grid,e.data.id,$(this).closest('tr'))}},headerCssClass:'bt-grid-select-all',stopPropagation:!0})}
90if($grid.children('tbody').length===0){$grid.append($('<tbody/>'))}
91bt.grid.methods.renderHeader($grid);bt.grid.methods.appendEmptyRow($grid,'&nbsp;');bt.grid.events.initialized($grid)},localization:function(data){if(!data.notFoundText){data.notFoundText=bt.grid.messages[data.locale].NoRecordsFound}},renderHeader:function($grid){var data,columns,style,$thead,$row,$cell,$title,i,$checkAllBoxes;data=$grid.data();columns=data.columns;style=data.style.header;$thead=$grid.children('thead');if($thead.length===0){$thead=$('<thead />');$grid.prepend($thead)}
92$row=$('<tr data-role="caption" />');for(i=0;i<columns.length;i+=1){$cell=$('<th data-field="'+(columns[i].field||'')+'" />');if(columns[i].width){$cell.attr('width',columns[i].width)}else if(columns[i].type==='checkbox'){$cell.attr('width',data.defaultIconColumnWidth)}
93$cell.addClass(style.cell);if(columns[i].headerCssClass){$cell.addClass(columns[i].headerCssClass)}
94$cell.css('text-align',columns[i].align||'left');if('checkbox'===data.selectionMethod&&'multiple'===data.selectionType&&'checkbox'===columns[i].type&&'selectRow'===columns[i].role){$checkAllBoxes=$cell.find('input[data-role="selectAll"]');if($checkAllBoxes.length===0){$checkAllBoxes=$('<input type="checkbox" data-role="selectAll" />');$cell.append($checkAllBoxes);$checkAllBoxes.checkbox({uiLibrary:data.uiLibrary})}
95$checkAllBoxes.off('click').on('click',function(){if(this.checked){$grid.selectAll()}else{$grid.unSelectAll()}})}else{$title=$('<div data-role="title"/>').html(typeof(columns[i].title)==='undefined'?columns[i].field:columns[i].title);$cell.append($title);if(columns[i].sortable){$title.addClass(style.sortable);$title.on('click',bt.grid.methods.createSortHandler($grid,columns[i]))}}
96if(columns[i].hidden){$cell.hide()}
97$row.append($cell)}
98$thead.empty().append($row)},createSortHandler:function($grid,column){return function(){var data,params={};if($grid.count()>0){data=$grid.data();params[data.paramNames.sortBy]=column.field;column.direction=(column.direction==='asc'?'desc':'asc');params[data.paramNames.direction]=column.direction;$grid.reload(params)}}},updateHeader:function($grid){var $sortIcon,$cellTitle,data=$grid.data(),sortBy=data.params[data.paramNames.sortBy],direction=data.params[data.paramNames.direction];$grid.find('thead tr th [data-role="sorticon"]').remove();if(sortBy){position=bt.grid.methods.getColumnPosition($grid.data('columns'),sortBy);if(position>-1){$cellTitle=$grid.find('thead tr th:eq('+position+') div[data-role="title"]');$sortIcon=$('<div data-role="sorticon" class="bt-unselectable" />').append(('desc'===direction)?data.icons.desc:data.icons.asc);$cellTitle.after($sortIcon)}}},useHtmlDataSource:function($grid,data){var dataSource=[],i,j,$cells,record,$rows=$grid.find('tbody tr[data-role != "empty"]');for(i=0;i<$rows.length;i++){$cells=$($rows[i]).find('td');record={};for(j=0;j<$cells.length;j++){record[data.columns[j].field]=$($cells[j]).html()}
99dataSource.push(record)}
100data.dataSource=dataSource},startLoading:function($grid){var $tbody,$cover,$loading,width,height,top,data;bt.grid.methods.stopLoading($grid);data=$grid.data();if(0===$grid.outerHeight()){return}
101$tbody=$grid.children('tbody');width=$tbody.outerWidth(!1);height=$tbody.outerHeight(!1);top=Math.abs($grid.parent().offset().top-$tbody.offset().top);$cover=$('<div data-role="loading-cover" />').addClass(data.style.loadingCover).css({width:width,height:height,top:top});$loading=$('<div data-role="loading-text">'+bt.grid.messages[data.locale].Loading+'</div>').addClass(data.style.loadingText);$loading.insertAfter($grid);$cover.insertAfter($grid);$loading.css({top:top+(height/2)-($loading.outerHeight(!1)/2),left:(width/2)-($loading.outerWidth(!1)/2)})},stopLoading:function($grid){$grid.parent().find('div[data-role="loading-cover"]').remove();$grid.parent().find('div[data-role="loading-text"]').remove()},appendEmptyRow:function($grid,caption){var data,$row,$cell,$wrapper;data=$grid.data();$row=$('<tr data-role="empty"/>');$cell=$('<td/>').css({width:'100%','text-align':'center'});$cell.attr('colspan',bt.grid.methods.countVisibleColumns($grid));$wrapper=$('<div />').html(caption||data.notFoundText);$cell.append($wrapper);$row.append($cell);bt.grid.events.beforeEmptyRowInsert($grid,$row);$grid.append($row)},autoGenerateColumns:function($grid,records){var names,value,type,i,data=$grid.data();data.columns=[];if(records.length>0){names=Object.getOwnPropertyNames(records[0]);for(i=0;i<names.length;i++){value=records[0][names[i]];type='text';if(value){if(typeof value==='number'){type='number'}else if(value.indexOf('/Date(')>-1){type='date'}}
102data.columns.push({field:names[i],type:type})}
103bt.grid.methods.setDefaultColumnConfig(data.columns,data.defaultColumnSettings)}
104bt.grid.methods.renderHeader($grid)},loadData:function($grid){var data,records,i,recLen,rowCount,$tbody,$rows,$row;data=$grid.data();records=$grid.getAll();bt.grid.events.dataBinding($grid,records);recLen=records.length;bt.grid.methods.stopLoading($grid);if(data.autoGenerateColumns){bt.grid.methods.autoGenerateColumns($grid,records)}
105$tbody=$grid.children('tbody');if('checkbox'===data.selectionMethod&&'multiple'===data.selectionType){$grid.find('thead input[data-role="selectAll"]').prop('checked',!1)}
106$tbody.children('tr').not('[data-role="row"]').remove();if(0===recLen){$tbody.empty();bt.grid.methods.appendEmptyRow($grid)}
107$rows=$tbody.children('tr');rowCount=$rows.length;for(i=0;i<rowCount;i++){if(i<recLen){$row=$rows.eq(i);bt.grid.methods.renderRow($grid,$row,records[i],i)}else{$tbody.find('tr[data-role="row"]:gt('+(i-1)+')').remove();break}}
108for(i=rowCount;i<recLen;i++){bt.grid.methods.renderRow($grid,null,records[i],i)}
109bt.grid.events.dataBound($grid,records,data.totalRecords)},getId:function(record,primaryKey,position){return(primaryKey&&record[primaryKey])?record[primaryKey]:position},renderRow:function($grid,$row,record,position){var id,$cell,i,data,mode;data=$grid.data();if(!$row||$row.length===0){mode='create';
109$row=$('<tr data-role="row"/>');$grid.children('tbody').append($row)}else{mode='update';$row.removeClass(data.style.content.rowSelected).removeAttr('data-selected').off('click')}
110id=bt.grid.methods.getId(record,data.primaryKey,(position+1));$row.attr('data-position',position+1);if(data.selectionMethod!=='checkbox'){$row.on('click',bt.grid.methods.createRowClickHandler($grid,id))}
111for(i=0;i<data.columns.length;i++){if(mode==='update'){$cell=$row.find('td:eq('+i+')');bt.grid.methods.renderCell($grid,$cell,data.columns[i],record,id)}else{$cell=bt.grid.methods.renderCell($grid,null,data.columns[i],record,id);$row.append($cell)}}
112bt.grid.events.rowDataBound($grid,$row,id,record)},renderCell:function($grid,$cell,column,record,id,mode){var $displayEl,key;if(!$cell||$cell.length===0){$cell=$('<td/>');$displayEl=$('<div data-role="display" />');column.align&&$cell.css('text-align',column.align);column.cssClass&&$cell.addClass(column.cssClass);$cell.append($displayEl);mode='create'}else{$displayEl=$cell.find('div[data-role="display"]');mode='update'}
113bt.grid.methods.renderDisplayElement($grid,$displayEl,column,record,id,mode);if('update'===mode){$cell.off();$displayEl.off()}
114if(column.events){for(key in column.events){if(column.events.hasOwnProperty(key)){$cell.on(key,{id:id,field:column.field,record:record},bt.grid.methods.createCellEventHandler(column,column.events[key]))}}}
115if(column.hidden){$cell.hide()}
116bt.grid.events.cellDataBound($grid,$displayEl,id,column,record);return $cell},createCellEventHandler:function(column,func){return function(e){if(column.stopPropagation){e.stopPropagation()}
117func.call(this,e)}},renderDisplayElement:function($grid,$displayEl,column,record,id,mode){var text,$checkbox;if('checkbox'===column.type&&bt.checkbox){if('create'===mode){$checkbox=$('<input type="checkbox" />').val(id).prop('checked',(record[column.field]?!0:!1));column.role&&$checkbox.attr('data-role',column.role);$displayEl.append($checkbox);$checkbox.checkbox({uiLibrary:$grid.data('uiLibrary')});if(column.role==='selectRow'){$checkbox.on('click',function(){return!1})}else{$checkbox.prop('disabled',!0)}}else{$displayEl.find('input[type="checkbox"]').val(id).prop('checked',(record[column.field]?!0:!1))}}else if('icon'===column.type){if('create'===mode){$displayEl.append($('<span/>').addClass(column.icon).css({cursor:'pointer'}));$grid.data().uiLibrary==='bootstrap'&&$displayEl.children('span').addClass('glyphicon');column.stopPropagation=!0}}else if(column.tmpl){text=column.tmpl;column.tmpl.replace(/\{(.+?)\}/g,function($0,$1){text=text.replace($0,bt.grid.methods.formatText(record[$1],column))});$displayEl.html(text)}else if(column.renderer&&typeof(column.renderer)==='function'){text=column.renderer(record[column.field],record,$displayEl.parent(),$displayEl,id,$grid);if(text){$displayEl.html(text)}}else{record[column.field]=bt.grid.methods.formatText(record[column.field],column);if(!column.tooltip&&record[column.field]){$displayEl.attr('title',record[column.field])}
118$displayEl.html(record[column.field])}
119if(column.tooltip&&'create'===mode){$displayEl.attr('title',column.tooltip)}},formatText:function(text,column){if(text&&column.type==='date'){text=bt.core.formatDate(bt.core.parseDate(text,column.format),column.format)}else{text=(typeof(text)==='undefined'||text===null)?'':text.toString()}
120if(column.decimalDigits&&text){text=parseFloat(text).toFixed(column.decimalDigits)}
121return text},setRecordsData:function($grid,response){var records=[],totalRecords=0,data=$grid.data();if($.isArray(response)){records=response;totalRecords=response.length}else if(data&&data.mapping&&$.isArray(response[data.mapping.dataField])){records=response[data.mapping.dataField];totalRecords=response[data.mapping.totalRecordsField];if(!totalRecords||isNaN(totalRecords)){totalRecords=0}}
122$grid.data('records',records);$grid.data('totalRecords',totalRecords);return records},createRowClickHandler:function($grid,id){return function(){bt.grid.methods.setSelected($grid,id,$(this))}},selectRow:function($grid,data,$row,id){var $checkbox;$row.addClass(data.style.content.rowSelected);$row.attr('data-selected','true');
122if('checkbox'===data.selectionMethod){$checkbox=$row.find('input[type="checkbox"][data-role="selectRow"]');$checkbox.length&&!$checkbox.prop('checked')&&$checkbox.prop('checked',!0);if('multiple'===data.selectionType&&$grid.getSelections().length===$grid.count(!1)){$grid.find('thead input[data-role="selectAll"]').prop('checked',!0)}}
123return bt.grid.events.rowSelect($grid,$row,id,$grid.getById(id))},unselectRow:function($grid,data,$row,id){var $checkbox;if($row.attr('data-selected')==='true'){$row.removeClass(data.style.content.rowSelected);if('checkbox'===data.selectionMethod){$checkbox=$row.find('td input[type="checkbox"][data-role="selectRow"]');$checkbox.length&&$checkbox.prop('checked')&&$checkbox.prop('checked',!1);if('multiple'===data.selectionType){$grid.find('thead input[data-role="selectAll"]').prop('checked',!1)}}
124$row.removeAttr('data-selected');return bt.grid.events.rowUnselect($grid,$row,id,$grid.getById(id))}},setSelected:function($grid,id,$row){var data=$grid.data();if(!$row||!$row.length){$row=bt.grid.methods.getRowById($grid,id)}
125if($row){if($row.attr('data-selected')==='true'){bt.grid.methods.unselectRow($grid,data,$row,id)}else{if('single'===data.selectionType){$row.siblings('[data-selected="true"]').each(function(){var $row=$(this),id=bt.grid.methods.getId($row,data.primaryKey,$row.data('position'));bt.grid.methods.unselectRow($grid,data,$row,id)})}
126bt.grid.methods.selectRow($grid,data,$row,id)}}
127return $grid},selectAll:function($grid){var data=$grid.data();$grid.find('tbody tr[data-role="row"]').each(function(){var $row=$(this),position=$row.data('position'),record=$grid.get(position),id=bt.grid.methods.getId(record,data.primaryKey,position);bt.grid.methods.selectRow($grid,data,$row,id)});$grid.find('thead input[data-role="selectAll"]').prop('checked',!0);return $grid},unSelectAll:function($grid){var data=$grid.data();$grid.find('tbody tr').each(function(){var $row=$(this),position=$row.data('position'),record=$grid.get(position),id=bt.grid.methods.getId(record,data.primaryKey,position);bt.grid.methods.unselectRow($grid,data,$row,id);$row.find('input[type="checkbox"][data-role="selectRow"]').prop('checked',!1)});$grid.find('thead input[data-role="selectAll"]').prop('checked',!1);return $grid},getSelected:function($grid){var result=null,selections,record,position;selections=$grid.find('tbody>tr[data-selected="true"]');if(selections.length>0){position=$(selections[0]).data('position');record=$grid.get(position);result=bt.grid.methods.getId(record,$grid.data().primaryKey,position)}
128return result},getSelectedRows:function($grid){var data=$grid.data();return $grid.find('tbody>tr[data-selected="true"]')},getSelections:function($grid){var result=[],position,record,data=$grid.data(),$selections=bt.grid.methods.getSelectedRows($grid);if(0<$selections.length){$selections.each(function(){position=$(this).data('position');record=$grid.get(position);result.push(bt.grid.methods.getId(record,data.primaryKey,position))})}
129return result},getById:function($grid,id){var result=null,i,primaryKey=$grid.data('primaryKey'),records=$grid.data('records');if(primaryKey){for(i=0;i<records.length;i++){if(records[i][primaryKey]==id){result=records[i];break}}}else{result=$grid.get(id)}
130return result},getRecVPosById:function($grid,id){var result=id,i,data=$grid.data();if(data.primaryKey){for(i=0;i<data.dataSource.length;i++){if(data.dataSource[i][data.primaryKey]==id){result=i;break}}}
131return result},getRowById:function($grid,id){var records=$grid.getAll(!1),primaryKey=$grid.data('primaryKey'),$result=undefined,position,i;if(primaryKey){for(i=0;i<records.length;i++){if(records[i][primaryKey]==id){position=i+1;break}}}else{position=id}
132if(position){$result=$grid.children('tbody').children('tr[data-position="'+position+'"]')}
133return $result},getByPosition:function($grid,position){return $grid.getAll(!1)[position-1]},getColumnPosition:function(columns,field){var position=-1,i;for(i=0;i<columns.length;i++){if(columns[i].field===field){position=i;break}}
134return position},getColumnInfo:function($grid,field){var i,result={},data=$grid.data();for(i=0;i<data.columns.length;i+=1){if(data.columns[i].field===field){result=data.columns[i];break}}
135return result},getCell:function($grid,id,field){var position,$row,$result=null;position=bt.grid.methods.getColumnPosition($grid.data('columns'),field);if(position>-1){$row=bt.grid.methods.getRowById($grid,id);$result=$row.find('td:eq('+position+') div[data-role="display"]')}
136return $result},setCellContent:function($grid,id,field,value){var column,$displayEl=bt.grid.methods.getCell($grid,id,field);if($displayEl){$displayEl.empty();if(typeof(value)==='object'){$displayEl.append(value)}else{column=bt.grid.methods.getColumnInfo($grid,field);bt.grid.methods.renderDisplayElement($grid,$displayEl,column,$grid.getById(id),id,'update')}}},clone:function(source){var target=[];$.each(source,function(){target.push(this.clone())});return target},getAll:function($grid){return $grid.data('records')},countVisibleColumns:function($grid){var columns,count,i;columns=$grid.data().columns;count=0;for(i=0;i<columns.length;i++){if(columns[i].hidden!==!0){count++}}
137return count},clear:function($grid,showNotFoundText){var data=$grid.data();$grid.xhr&&$grid.xhr.abort();$grid.children('tbody').empty();data.records=[];bt.grid.methods.stopLoading($grid);bt.grid.methods.appendEmptyRow($grid,showNotFoundText?data.notFoundText:'&nbsp;');bt.grid.events.dataBound($grid,[],0);return $grid},render:function($grid,response){if(response){bt.grid.methods.setRecordsData($grid,response);bt.grid.methods.updateHeader($grid);bt.grid.methods.loadData($grid)}
138return $grid},filter:function($grid){var field,column,data=$grid.data(),records=data.dataSource.slice();if(data.params[data.paramNames.sortBy]){column=bt.grid.methods.getColumnInfo($grid,data.params[data.paramNames.sortBy]);records.sort(column.sortable.sorter?column.sortable.sorter(column.direction,column):bt.grid.methods.createDefaultSorter(column.direction,column.field))}
139for(field in data.params){if(data.params[field]&&!data.paramNames[field]){column=bt.grid.methods.getColumnInfo($grid,field);records=$.grep(records,function(record){var value=record[field]||'',searchStr=data.params[field]||'';return column&&typeof(column.filter)==='function'?column.filter(value,searchStr):(value.toUpperCase().indexOf(searchStr.toUpperCase())>-1)})}}
140bt.grid.events.dataFiltered($grid,records);return records},createDefaultSorter:function(direction,field){return function(recordA,recordB){var a=(recordA[field]||'').toString(),b=(recordB[field]||'').toString();return(direction==='asc')?a.localeCompare(b):b.localeCompare(a)}},destroy:function($grid,keepTableTag,keepWrapperTag){var data=$grid.data();if(data){bt.grid.events.destroying($grid);bt.grid.methods.stopLoading($grid);$grid.xhr&&$grid.xhr.abort();$grid.off();if(keepWrapperTag===!1&&$grid.parent('div[data-role="wrapper"]').length>0){$grid.unwrap()}
141$grid.removeData();if(keepTableTag===!1){$grid.remove()}else{$grid.removeClass().empty()}
142$grid.removeAttr('data-type')}
143return $grid},showColumn:function($grid,field){var data=$grid.data(),position=bt.grid.methods.getColumnPosition(data.columns,field),$cells;if(position>-1){$grid.find('thead>tr').each(function(){$(this).children('th').eq(position).show()});$.each($grid.find('tbody>tr'),function(){$(this).children('td').eq(position).show()});data.columns[position].hidden=!1;$cells=$grid.find('tbody > tr[data-role="empty"] > td');if($cells&&$cells.length){$cells.attr('colspan',bt.grid.methods.countVisibleColumns($grid))}
144bt.grid.events.columnShow($grid,data.columns[position])}
145return $grid},hideColumn:function($grid,field){var data=$grid.data(),position=bt.grid.methods.getColumnPosition(data.columns,field),$cells;if(position>-1){$grid.find('thead>tr').each(function(){$(this).children('th').eq(position).hide()});$.each($grid.find('tbody>tr'),function(){$(this).children('td').eq(position).hide()});data.columns[position].hidden=!0;$cells=$grid.find('tbody > tr[data-role="empty"] > td');if($cells&&$cells.length){$cells.attr('colspan',bt.grid.methods.countVisibleColumns($grid))}
146bt.grid.events.columnHide($grid,data.columns[position])}
147return $grid},isLastRecordVisible:function(){return!0},addRow:function($grid,record){var data=$grid.data();data.totalRecords=$grid.data('totalRecords')+1;bt.grid.events.dataBinding($grid,[record]);data.records.push(record);
147if($.isArray(data.dataSource)){data.dataSource.push(record)}
148if(data.totalRecords===1){$grid.children('tbody').empty()}
149if(bt.grid.methods.isLastRecordVisible($grid)){bt.grid.methods.renderRow($grid,null,record,$grid.count()-1)}
150bt.grid.events.dataBound($grid,[record],data.totalRecords);return $grid},updateRow:function($grid,id,record){var $row=bt.grid.methods.getRowById($grid,id),data=$grid.data(),position;data.records[$row.data('position')-1]=record;if($.isArray(data.dataSource)){position=bt.grid.methods.getRecVPosById($grid,id);data.dataSource[position]=record}
151bt.grid.methods.renderRow($grid,$row,record,$row.index());return $grid},removeRow:function($grid,id){var position,data=$grid.data(),$row=bt.grid.methods.getRowById($grid,id);bt.grid.events.rowRemoving($grid,$row,id,$grid.getById(id));if($.isArray(data.dataSource)){position=bt.grid.methods.getRecVPosById($grid,id);data.dataSource.splice(position,1)}
152$grid.reload();return $grid},count:function($grid,includeAllRecords){return includeAllRecords?$grid.data().totalRecords:$grid.getAll().length},getColumnPositionByRole:function($grid,role){var i,result,columns=$grid.data('columns');for(i=0;i<columns.length;i++){if(columns[i].role===role){result=i;break}}
153return result},getColumnPositionNotInRole:function($grid){var i,result=0,columns=$grid.data('columns');for(i=0;i<columns.length;i++){if(!columns[i].role){result=i;break}}
154return result}};bt.grid.widget=function($grid,jsConfig){var self=this,methods=bt.grid.methods;self.reload=function(params){methods.startLoading(this);return bt.widget.prototype.reload.call(this,params)};self.clear=function(showNotFoundText){return methods.clear(this,showNotFoundText)};self.count=function(includeAllRecords){return methods.count(this,includeAllRecords)};self.render=function(response){return methods.render($grid,response)};self.destroy=function(keepTableTag,keepWrapperTag){return methods.destroy(this,keepTableTag,keepWrapperTag)};self.setSelected=function(id){return methods.setSelected(this,id)};self.getSelected=function(){return methods.getSelected(this)};self.getSelections=function(){return methods.getSelections(this)};self.selectAll=function(){return methods.selectAll(this)};self.unSelectAll=function(){return methods.unSelectAll(this)};self.getById=function(id){return methods.getById(this,id)};self.get=function(position){return methods.getByPosition(this,position)};self.getAll=function(includeAllRecords){return methods.getAll(this,includeAllRecords)};self.showColumn=function(field){return methods.showColumn(this,field)};self.hideColumn=function(field){return methods.hideColumn(this,field)};self.addRow=function(record){return methods.addRow(this,record)};self.updateRow=function(id,record){return methods.updateRow(this,id,record)};self.setCellContent=function(id,index,value){methods.setCellContent(this,id,index,value)};self.removeRow=function(id){return methods.removeRow(this,id)};$.extend($grid,self);if('grid'!==$grid.attr('data-type')){methods.init.call($grid,jsConfig)}
155return $grid}
156bt.grid.widget.prototype=new bt.widget();bt.grid.widget.constructor=bt.grid.widget;bt.grid.widget.prototype.getConfig=bt.grid.methods.getConfig;bt.grid.widget.prototype.getHTMLConfig=bt.grid.methods.getHTMLConfig;(function($){$.fn.grid=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.grid.widget(this,method)}else{$widget=new bt.grid.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.grid.plugins.fixedHeader={config:{base:{fixedHeader:!1,height:300}},private:{init:function($grid){var data=$grid.data(),$tbody=$grid.children('tbody'),$thead=$grid.children('thead'),bodyHeight=data.height-$thead.outerHeight()-($grid.children('tfoot').outerHeight()||0);$grid.addClass('bt-grid-scrollable');$tbody.css('width',$thead.outerWidth());$tbody.height(bodyHeight)},refresh:function($grid){var i,width,data=$grid.data(),$tbody=$grid.children('tbody'),$thead=$grid.children('thead'),$tbodyCells=$grid.find('tbody tr[data-role="row"] td'),$theadCells=$grid.find('thead tr[data-role="caption"] th');if($grid.children('tbody').height()<bt.grid.plugins.fixedHeader.private.getRowsHeight($grid)){$tbody.css('width',$thead.outerWidth()+bt.grid.plugins.fixedHeader.private.getScrollBarWidth()+(navigator.userAgent.toLowerCase().indexOf('firefox')>-1?1:0))}else{$tbody.css('width',$thead.outerWidth())}
157for(i=0;i<$theadCells.length;i++){width=$($theadCells[i]).outerWidth();if(i===0&&bt.core.isIE()){width=width-1}
158$($tbodyCells[i]).attr('width',width)}},getRowsHeight:function($grid){var total=0;$grid.find('tbody tr').each(function(){total+=$(this).height()});return total},getScrollBarWidth:function(){var inner=document.createElement('p');inner.style.width="100%";inner.style.height="200px";var outer=document.createElement('div');outer.style.position="absolute";outer.style.top="0px";outer.style.left="0px";outer.style.visibility="hidden";outer.style.width="200px";outer.style.height="150px";outer.style.overflow="hidden";outer.appendChild(inner);document.body.appendChild(outer);var w1=inner.offsetWidth;outer.style.overflow='scroll';var w2=inner.offsetWidth;if(w1==w2)w2=outer.clientWidth;document.body.removeChild(outer);return(w1-w2)}},public:{},events:{},configure:function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.fixedHeader.public);var data=$grid.data();if(clientConfig.fixedHeader){$grid.on('initialized',function(){bt.grid.plugins.fixedHeader.private.init($grid)});$grid.on('dataBound',function(){bt.grid.plugins.fixedHeader.private.refresh($grid)});$grid.on('resize',function(){bt.grid.plugins.fixedHeader.private.refresh($grid)})}}};
158bt.grid.plugins.expandCollapseRows={config:{base:{detailTemplate:undefined,keepExpandedRows:!0,expandedRows:[],icons:{expandRow:'<i class="bt-icon chevron-right" />',collapseRow:'<i class="bt-icon chevron-down" />'}},fontawesome:{icons:{expandRow:'<i class="fa fa-angle-right" aria-hidden="true"></i>',collapseRow:'<i class="fa fa-angle-down" aria-hidden="true"></i>'}},glyphicons:{icons:{expandRow:'<span class="glyphicon glyphicon-chevron-right" />',collapseRow:'<span class="glyphicon glyphicon-chevron-down" />'}}},'private':{expandDetail:function($grid,$cell,id){var $contentRow=$cell.closest('tr'),$detailsRow=$('<tr data-role="details" />'),$detailsCell=$('<td colspan="'+bt.grid.methods.countVisibleColumns($grid)+'" />'),$detailsWrapper=$('<div data-role="display" />'),data=$grid.data(),position=$contentRow.data('position'),record=$grid.get(position),plugin=bt.grid.plugins.expandCollapseRows;if(typeof(id)===undefined){id=bt.grid.methods.getId(record,data.primaryKey,record)}
159$detailsRow.append($detailsCell.append($detailsWrapper.append($contentRow.data('details'))));$detailsRow.insertAfter($contentRow);$cell.children('div[data-role="display"]').empty().append(data.icons.collapseRow);$grid.updateDetails($contentRow);plugin.private.keepSelection($grid,id);plugin.events.detailExpand($grid,$detailsRow.find('td>div'),id)},collapseDetail:function($grid,$cell,id){var $contentRow=$cell.closest('tr'),$detailsRow=$contentRow.next('tr[data-role="details"]'),data=$grid.data(),plugin=bt.grid.plugins.expandCollapseRows;if(typeof(id)===undefined){id=bt.grid.methods.getId(record,data.primaryKey,record)}
160$detailsRow.remove();$cell.children('div[data-role="display"]').empty().append(data.icons.expandRow);plugin.private.removeSelection($grid,id);plugin.events.detailCollapse($grid,$detailsRow.find('td>div'),id)},keepSelection:function($grid,id){var data=$grid.data();if(data.keepExpandedRows){if($.isArray(data.expandedRows)){if(data.expandedRows.indexOf(id)==-1){data.expandedRows.push(id)}}else{data.expandedRows=[id]}}},removeSelection:function($grid,id){var data=$grid.data();if(data.keepExpandedRows&&$.isArray(data.expandedRows)&&data.expandedRows.indexOf(id)>-1){data.expandedRows.splice(data.expandedRows.indexOf(id),1)}},updateDetailsColSpan:function($grid){var $cells=$grid.find('tbody > tr[data-role="details"] > td');if($cells&&$cells.length){$cells.attr('colspan',bt.grid.methods.countVisibleColumns($grid))}}},'public':{collapseAll:function(){var $grid=this,data=$grid.data(),position;if(typeof(data.detailTemplate)!=='undefined'){position=bt.grid.methods.getColumnPositionByRole($grid,'expander');$grid.find('tbody tr[data-role="row"]').each(function(){bt.grid.plugins.expandCollapseRows.private.collapseDetail($grid,$(this).find('td:eq('+position+')'))})}
161if(typeof(data.grouping)!=='undefined'){$grid.find('tbody tr[role="group"]').each(function(){bt.grid.plugins.grouping.private.collapseGroup(data,$(this).find('td:eq(0)'))})}
162return $grid},expandAll:function(){var $grid=this,data=$grid.data(),position;if(typeof(data.detailTemplate)!=='undefined'){position=bt.grid.methods.getColumnPositionByRole($grid,'expander');$grid.find('tbody tr[data-role="row"]').each(function(){bt.grid.plugins.expandCollapseRows.private.expandDetail($grid,$(this).find('td:eq('+position+')'))})}
163if(typeof(data.grouping)!=='undefined'){$grid.find('tbody tr[role="group"]').each(function(){bt.grid.plugins.grouping.private.expandGroup(data,$(this).find('td:eq(0)'))})}
164return $grid},updateDetails:function($contentRow){var $grid=this,$detailWrapper=$contentRow.data('details'),content=$detailWrapper.html(),record=$grid.get($contentRow.data('position'));if(record&&content){$detailWrapper.html().replace(/\{(.+?)\}/g,function($0,$1){var column=bt.grid.methods.getColumnInfo($grid,$1);content=content.replace($0,bt.grid.methods.formatText(record[$1],column))});$detailWrapper.html(content)}
165return $grid}},'events':{detailExpand:function($grid,$detailWrapper,id){$grid.triggerHandler('detailExpand',[$detailWrapper,id])},detailCollapse:function($grid,$detailWrapper,id){$grid.triggerHandler('detailCollapse',[$detailWrapper,id])}},'configure':function($grid){var column,data=$grid.data();$.extend(!0,$grid,bt.grid.plugins.expandCollapseRows.public);if(typeof(data.detailTemplate)!=='undefined'){column={title:'',width:data.defaultIconColumnWidth,align:'center',stopPropagation:!0,cssClass:'bt-cursor-pointer bt-unselectable',tmpl:data.icons.expandRow,role:'expander',events:{'click':function(e){var $cell=$(this),methods=bt.grid.plugins.expandCollapseRows.private;if($cell.closest('tr').next().attr('data-role')==='details'){methods.collapseDetail($grid,$cell,e.data.id)}else{methods.expandDetail($grid,$(this),e.data.id)}}}};data.columns=[column].concat(data.columns);$grid.on('rowDataBound',function(e,$row,id,record){$row.data('details',$(data.detailTemplate))});$grid.on('columnShow',function(e,column){bt.grid.plugins.expandCollapseRows.private.updateDetailsColSpan($grid)});$grid.on('columnHide',function(e,column){bt.grid.plugins.expandCollapseRows.private.updateDetailsColSpan($grid)});$grid.on('rowRemoving',function(e,$row,id,record){bt.grid.plugins.expandCollapseRows.private.collapseDetail($grid,$row.children('td').first(),id)});$grid.on('dataBinding',function(){$grid.collapseAll()});$grid.on('pageChanging',function(){$grid.collapseAll()});$grid.on('dataBound',function(){var i,$cell,$row,position,data=$grid.data();if(data.keepExpandedRows&&$.isArray(data.expandedRows)){for(i=0;i<data.expandedRows.length;i++){$row=bt.grid.methods.getRowById($grid,data.expandedRows[i]);if($row&&$row.length){position=bt.grid.methods.getColumnPositionByRole($grid,'expander');$cell=$row.children('td:eq('+position+')');if($cell&&$cell.length){bt.grid.plugins.expandCollapseRows.private.expandDetail($grid,$cell)}}}}})}}};bt.grid.plugins.inlineEditing={renderers:{editManager:function(value,record,$cell,$displayEl,id,$grid){var data=$grid.data(),$edit=$(data.inlineEditing.editButton).attr('key',id),$delete=$(data.inlineEditing.deleteButton).attr('key',id),$update=$(data.inlineEditing.updateButton).attr('key',id).hide(),$cancel=$(data.inlineEditing.cancelButton).attr('key',id).hide();$edit.on('click',function(e){$grid.edit($(this).attr('key'))});$delete.on('click',function(e){$grid.removeRow($(this).attr('key'))});$update.on('click',function(e){$grid.update($(this).attr('key'))});$cancel.on('click',function(e){$grid.cancel($(this).attr('key'))});$displayEl.empty().append($edit).append($delete).append($update).append($cancel)}}};
165bt.grid.plugins.inlineEditing.config={base:{defaultColumnSettings:{editor:undefined,editField:undefined,mode:'readEdit'},inlineEditing:{mode:'click',managementColumn:!0,managementColumnConfig:{width:300,role:'managementColumn',align:'center',renderer:bt.grid.plugins.inlineEditing.renderers.editManager,cssClass:'bt-grid-management-column'}}},bootstrap:{inlineEditing:{managementColumnConfig:{width:200,role:'managementColumn',align:'center',renderer:bt.grid.plugins.inlineEditing.renderers.editManager,cssClass:'bt-grid-management-column'}}},bootstrap4:{inlineEditing:{managementColumnConfig:{width:280,role:'managementColumn',align:'center',renderer:bt.grid.plugins.inlineEditing.renderers.editManager,cssClass:'bt-grid-management-column'}}}};bt.grid.plugins.inlineEditing.private={localization:function(data){if(data.uiLibrary==='bootstrap'){data.inlineEditing.editButton='<button role="edit" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> '+bt.grid.messages[data.locale].Edit+'</button>';data.inlineEditing.deleteButton='<button role="delete" class="btn btn-default btn-sm bt-margin-left-10"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> '+bt.grid.messages[data.locale].Delete+'</button>';data.inlineEditing.updateButton='<button role="update" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> '+bt.grid.messages[data.locale].Update+'</button>';data.inlineEditing.cancelButton='<button role="cancel" class="btn btn-default btn-sm bt-margin-left-10"><span class="glyphicon glyphicon-ban-circle" aria-hidden="true"></span> '+bt.grid.messages[data.locale].Cancel+'</button>'}else{data.inlineEditing.editButton='<button role="edit" class="bt-button-md"><i class="bt-icon pencil" /> '+bt.grid.messages[data.locale].Edit.toUpperCase()+'</button>';data.inlineEditing.deleteButton='<button role="delete" class="bt-button-md"><i class="bt-icon delete" /> '+bt.grid.messages[data.locale].Delete.toUpperCase()+'</button>';data.inlineEditing.updateButton='<button role="update" class="bt-button-md"><i class="bt-icon check-circle" /> '+bt.grid.messages[data.locale].Update.toUpperCase()+'</button>';data.inlineEditing.cancelButton='<button role="cancel" class="bt-button-md"><i class="bt-icon cancel" /> '+bt.grid.messages[data.locale].Cancel.toUpperCase()+'</button>'}},editMode:function($grid,$cell,column,record){var $displayContainer,$editorContainer,$editorField,value,config,data=$grid.data();if($cell.attr('data-mode')!=='edit'){if(column.editor){bt.grid.plugins.inlineEditing.private.updateOtherCells($grid,column.mode);$displayContainer=$cell.find('div[data-role="display"]').hide();$editorContainer=$cell.find('div[data-role="edit"]').show();if($editorContainer.length===0){$editorContainer=$('<div data-role="edit" />');$cell.append($editorContainer)}
166value=record[column.editField||column.field];$editorField=$editorContainer.find('input, select, textarea').first();if($editorField.length){column.type==='checkbox'?$editorField.prop('checked',value):$editorField.val(value)}else{if(typeof(column.editor)==='function'){column.editor($editorContainer,value,record);$editorField=$editorContainer.find('input, select, textarea').first()}else{config=typeof column.editor==="object"?column.editor:{};config.uiLibrary=data.uiLibrary;config.iconsLibrary=data.iconsLibrary;config.fontSize=$grid.css('font-size');if('checkbox'===column.type&&bt.checkbox){$editorField=$('<input type="checkbox" />').prop('checked',value);$editorContainer.append($editorField);$editorField.checkbox(config)}else if('date'===column.type&&bt.datepicker){$editorField=$('<input type="text" width="100%"/>');$editorContainer.append($editorField);if(column.format){config.format=column.format}
167$editorField=$editorField.datepicker(config);if($editorField.value){$editorField.value($displayContainer.html())}}else if('dropdown'===column.type&&bt.dropdown){$editorField=$('<select type="text" width="100%"/>');$editorContainer.append($editorField);config.dataBound=function(e){var $dropdown=$(this).dropdown();if(column.editField){$dropdown.value(record[column.editField])}else{$dropdown.value(record[column.field])}};$editorField=$editorField.dropdown(config)}else{$editorField=$('<input type="text" value="'+value+'" class="bt-width-full"/>');if(data.uiLibrary==='materialdesign'){$editorField.addClass('bt-textbox-md').css('font-size',$grid.css('font-size'))}
168$editorContainer.append($editorField)}}
169if(data.inlineEditing.mode!=='command'&&column.mode!=='editOnly'){$editorField=$editorContainer.find('input, select, textarea').first();$editorField.on('keyup',function(e){if(e.keyCode===13||e.keyCode===27){bt.grid.plugins.inlineEditing.private.displayMode($grid,$cell,column)}})}}
170if($editorField.prop('tagName').toUpperCase()==="INPUT"&&$editorField.prop('type').toUpperCase()==='TEXT'){bt.grid.plugins.inlineEditing.private.setCaretAtEnd($editorField[0])}else{$editorField.focus()}
171$cell.attr('data-mode','edit')}else if(column.role==='managementColumn'){$cell.find('[role="edit"]').hide();$cell.find('[role="delete"]').hide();$cell.find('[role="update"]').show();$cell.find('[role="cancel"]').show()}}},setCaretAtEnd:function(elem){var elemLen;if(elem){elemLen=elem.value.length;if(document.selection){elem.focus();var oSel=document.selection.createRange();oSel.moveStart('character',-elemLen);oSel.moveStart('character',elemLen);oSel.moveEnd('character',0);oSel.select()}else if(elem.selectionStart||elem.selectionStart=='0'){elem.selectionStart=elemLen;elem.selectionEnd=elemLen;elem.focus()}}},displayMode:function($grid,$cell,column,cancel){var $editorContainer,$displayContainer,$ele,newValue,newEditFieldValue,record,position,style='';if(column.mode!=='editOnly'){if($cell.attr('data-mode')==='edit'){$editorContainer=$cell.find('div[data-role="edit"]');$displayContainer=$cell.find('div[data-role="display"]');$ele=$editorContainer.find('input, select, textarea').first();if($ele[0].tagName.toUpperCase()==="SELECT"&&$ele[0].selectedIndex>-1){newValue=$ele[0].options[$ele[0].selectedIndex].innerHTML;newEditFieldValue=$ele[0].value}else if($ele[0].tagName.toUpperCase()==="INPUT"&&$ele[0].type.toUpperCase()==="CHECKBOX"){newValue=$ele[0].checked}else{newValue=$ele.val()}
172position=$cell.parent().data('position');record=$grid.get(position);if(cancel!==!0&&newValue!==record[column.field]){record[column.field]=column.type==='date'?bt.core.parseDate(newValue,column.format):newValue;if(column.editField){record[column.editField]=newEditFieldValue||newValue}
173if(column.mode!=='editOnly'){bt.grid.methods.renderDisplayElement($grid,$displayContainer,column,record,bt.grid.methods.getId(record,$grid.data('primaryKey'),position),'update');if($cell.find('span.bt-dirty').length===0){$cell.prepend($('<span class="bt-dirty" />'))}}
174bt.grid.plugins.inlineEditing.events.cellDataChanged($grid,$cell,column,record,newValue);bt.grid.plugins.inlineEditing.private.updateChanges($grid,column,record,newValue)}
175$editorContainer.hide();$displayContainer.show();$cell.attr('data-mode','display')}
176if(column.role==='managementColumn'){$cell.find('[role="update"]').hide();$cell.find('[role="cancel"]').hide();$cell.find('[role="edit"]').show();$cell.find('[role="delete"]').show()}}},updateOtherCells:function($grid,mode){var data=$grid.data();if(data.inlineEditing.mode!=='command'&&mode!=='editOnly'){$grid.find('div[data-role="edit"]:visible').parent('td').each(function(){var $cell=$(this),column=data.columns[$cell.index()];bt.grid.plugins.inlineEditing.private.displayMode($grid,$cell,column)})}},updateChanges:function($grid,column,sourceRecord,newValue){var targetRecords,filterResult,newRecord,data=$grid.data();if(!data.guid){data.guid=bt.grid.plugins.inlineEditing.private.generateGUID()}
177if(data.primaryKey){targetRecords=JSON.parse(sessionStorage.getItem('bt.grid.'+data.guid));if(targetRecords){filterResult=targetRecords.filter(function(record){return record[data.primaryKey]===sourceRecord[data.primaryKey]})}else{targetRecords=[]}
178if(filterResult&&filterResult.length===1){filterResult[0][column.field]=newValue}else{newRecord={};newRecord[data.primaryKey]=sourceRecord[data.primaryKey];if(data.primaryKey!==column.field){newRecord[column.field]=newValue}
179targetRecords.push(newRecord)}
180sessionStorage.setItem('bt.grid.'+data.guid,JSON.stringify(targetRecords))}},generateGUID:function(){function s4(){return Math.floor((1+Math.random())*0x10000).toString(16).substring(1)}
181return s4()+s4()+'-'+s4()+'-'+s4()+'-'+s4()+'-'+s4()+s4()+s4()}};bt.grid.plugins.inlineEditing.public={getChanges:function(){return JSON.parse(sessionStorage.getItem('bt.grid.'+this.data().guid))},edit:function(id){var i,record=this.getById(id),$cells=bt.grid.methods.getRowById(this,id).children('td'),columns=this.data('columns');for(i=0;i<$cells.length;i++){bt.grid.plugins.inlineEditing.private.editMode(this,$($cells[i]),columns[i],record)}
182return this},update:function(id){var i,record=this.getById(id),$cells=bt.grid.methods.getRowById(this,id).children('td'),columns=this.data('columns');for(i=0;i<$cells.length;i++){bt.grid.plugins.inlineEditing.private.displayMode(this,$($cells[i]),columns[i],!1)}
183bt.grid.plugins.inlineEditing.events.rowDataChanged(this,id,record);return this},cancel:function(id){var i,record=this.getById(id),$cells=bt.grid.methods.getRowById(this,id).children('td'),columns=this.data('columns');for(i=0;i<$cells.length;i++){bt.grid.plugins.inlineEditing.private.displayMode(this,$($cells[i]),columns[i],!0)}
184return this}};bt.grid.plugins.inlineEditing.events={cellDataChanged:function($grid,$cell,column,record,oldValue,newValue){$grid.triggerHandler('cellDataChanged',[$cell,column,record,oldValue,newValue])},rowDataChanged:function($grid,id,record){$grid.triggerHandler('rowDataChanged',[id,record])}};bt.grid.plugins.inlineEditing.configure=function($grid,fullConfig,clientConfig){var data=$grid.data();$.extend(!0,$grid,bt.grid.plugins.inlineEditing.public);if(clientConfig.inlineEditing){$grid.on('dataBound',function(){$grid.find('span.bt-dirty').remove()});$grid.on('rowDataBound',function(e,$row,id,record){$grid.cancel(id)})}
185if(data.inlineEditing.mode==='command'){bt.grid.plugins.inlineEditing.private.localization(data);if(fullConfig.inlineEditing.managementColumn){data.columns.push(fullConfig.inlineEditing.managementColumnConfig)}}else{$grid.on('cellDataBound',function(e,$displayEl,id,column,record){if(column.editor){if(column.mode==='editOnly'){bt.grid.plugins.inlineEditing.private.editMode($grid,$displayEl.parent(),column,record)}else{$displayEl.parent('td').on(data.inlineEditing.mode==='dblclick'?'dblclick':'click',function(){bt.grid.plugins.inlineEditing.private.editMode($grid,$displayEl.parent(),column,record)})}}})}};bt.grid.plugins.optimisticPersistence={config:{base:{optimisticPersistence:{localStorage:undefined,sessionStorage:undefined}}},private:{applyParams:function($grid){var data=$grid.data(),params={},storage;storage=JSON.parse(sessionStorage.getItem('bt.grid.'+data.guid));if(storage&&storage.optimisticPersistence){$.extend(params,storage.optimisticPersistence)}
186storage=JSON.parse(localStorage.getItem('bt.grid.'+data.guid));if(storage&&storage.optimisticPersistence){$.extend(params,storage.optimisticPersistence)}
187$.extend(data.params,params)},saveParams:function($grid){var i,param,data=$grid.data(),storage={optimisticPersistence:{}};if(data.optimisticPersistence.sessionStorage){for(i=0;i<data.optimisticPersistence.sessionStorage.length;i++){param=data.optimisticPersistence.sessionStorage[i];storage.optimisticPersistence[param]=data.params[param]}
188storage=$.extend(!0,JSON.parse(sessionStorage.getItem('bt.grid.'+data.guid)),storage);sessionStorage.setItem('bt.grid.'+data.guid,JSON.stringify(storage))}
189if(data.optimisticPersistence.localStorage){storage={optimisticPersistence:{}};for(i=0;i<data.optimisticPersistence.localStorage.length;i++){param=data.optimisticPersistence.localStorage[i];storage.optimisticPersistence[param]=data.params[param]}
190storage=$.extend(!0,JSON.parse(localStorage.getItem('bt.grid.'+data.guid)),storage);localStorage.setItem('bt.grid.'+data.guid,JSON.stringify(storage))}}},configure:function($grid,fullConfig,clientConfig){if(fullConfig.guid){if(fullConfig.optimisticPersistence.localStorage||fullConfig.optimisticPersistence.sessionStorage){bt.grid.plugins.optimisticPersistence.private.applyParams($grid);$grid.on('dataBound',function(e){bt.grid.plugins.optimisticPersistence.private.saveParams($grid)})}}}};
190bt.grid.plugins.pagination={config:{base:{style:{pager:{panel:'',stateDisabled:'',activeButton:''}},paramNames:{page:'page',limit:'limit'},pager:{limit:10,sizes:[5,10,20,100],leftControls:undefined,rightControls:undefined}},bootstrap:{style:{pager:{panel:'',stateDisabled:''}}},bootstrap4:{style:{pager:{panel:'btn-toolbar',stateDisabled:''}}},glyphicons:{icons:{first:'<span class="glyphicon glyphicon-step-backward"></span>',previous:'<span class="glyphicon glyphicon-backward"></span>',next:'<span class="glyphicon glyphicon-forward"></span>',last:'<span class="glyphicon glyphicon-step-forward"></span>',refresh:'<span class="glyphicon glyphicon-refresh"></span>'}},materialicons:{icons:{first:'<i class="bt-icon first-page" />',previous:'<i class="bt-icon chevron-left" />',next:'<i class="bt-icon chevron-right" />',last:'<i class="bt-icon last-page" />',refresh:'<i class="bt-icon refresh" />'}},fontawesome:{icons:{first:'<i class="fa fa-fast-backward" aria-hidden="true"></i>',previous:'<i class="fa fa-backward" aria-hidden="true"></i>',next:'<i class="fa fa-forward" aria-hidden="true"></i>',last:'<i class="fa fa-fast-forward" aria-hidden="true"></i>',refresh:'<i class="fa fa-refresh" aria-hidden="true"></i>'}}},private:{init:function($grid){var $row,$cell,data,controls,$leftPanel,$rightPanel,$tfoot,leftControls,rightControls,i;data=$grid.data();if(data.pager){if(!data.params[data.paramNames.page]){data.params[data.paramNames.page]=1}
191if(!data.params[data.paramNames.limit]){data.params[data.paramNames.limit]=data.pager.limit}
192bt.grid.plugins.pagination.private.localization(data);$row=$('<tr data-role="pager"/>');$cell=$('<th/>');$row.append($cell);$leftPanel=$('<div data-role="display" />').addClass(data.style.pager.panel).css({'float':'left'});$rightPanel=$('<div data-role="display" />').addClass(data.style.pager.panel).css({'float':'right'});$cell.append($leftPanel).append($rightPanel);$tfoot=$('<tfoot />').append($row);$grid.append($tfoot);bt.grid.plugins.pagination.private.updatePagerColSpan($grid);leftControls=bt.grid.methods.clone(data.pager.leftControls);$.each(leftControls,function(){$leftPanel.append(this)});rightControls=bt.grid.methods.clone(data.pager.rightControls);$.each(rightControls,function(){$rightPanel.append(this)});controls=$grid.find('tfoot [data-role]');for(i=0;i<controls.length;i++){bt.grid.plugins.pagination.private.initPagerControl($(controls[i]),$grid)}}},localization:function(data){if(data.uiLibrary==='bootstrap'){bt.grid.plugins.pagination.private.localizationBootstrap(data)}else if(data.uiLibrary==='bootstrap4'){bt.grid.plugins.pagination.private.localizationBootstrap4(data)}else{bt.grid.plugins.pagination.private.localizationMaterialDesign(data)}},localizationBootstrap:function(data){var msg=bt.grid.messages[data.locale];if(typeof(data.pager.leftControls)==='undefined'){data.pager.leftControls=[$('<button type="button" class="btn btn-default btn-sm">'+(data.icons.first||msg.First)+'</button>').attr('title',msg.FirstPageTooltip).attr('data-role','page-first'),$('<button type="button" class="btn btn-default btn-sm">'+(data.icons.previous||msg.Previous)+'</button>').attr('title',msg.PreviousPageTooltip).attr('data-role','page-previous'),$('<div>'+msg.Page+'</div>'),$('<input data-role="page-number" class="form-control input-sm" type="text" value="0">'),$('<div>'+msg.Of+'</div>'),$('<div data-role="page-label-last">0</div>'),$('<button type="button" class="btn btn-default btn-sm">'+(data.icons.next||msg.Next)+'</button>').attr('title',msg.NextPageTooltip).attr('data-role','page-next'),$('<button type="button" class="btn btn-default btn-sm">'+(data.icons.last||msg.Last)+'</button>').attr('title',msg.LastPageTooltip).attr('data-role','page-last'),$('<button type="button" class="btn btn-default btn-sm">'+(data.icons.refresh||msg.Refresh)+'</button>').attr('title',msg.Refresh).attr('data-role','page-refresh'),$('<select data-role="page-size" class="form-control input-sm" width="60"></select>')]}
193if(typeof(data.pager.rightControls)==='undefined'){data.pager.rightControls=[$('<div>'+msg.DisplayingRecords+'</div>'),$('<div data-role="record-first">0</div>'),$('<div>-</div>'),$('<div data-role="record-last">0</div>'),$('<div>'+msg.Of+'</div>'),$('<div data-role="record-total">0</div>')]}},localizationBootstrap4:function(data){var msg=bt.grid.messages[data.locale];if(typeof(data.pager.leftControls)==='undefined'){data.pager.leftControls=[$('<button class="btn btn-default btn-sm bt-cursor-pointer">'+(data.icons.first||msg.First)+'</button>').attr('title',msg.FirstPageTooltip).attr('data-role','page-first'),$('<button class="btn btn-default btn-sm bt-cursor-pointer">'+(data.icons.previous||msg.Previous)+'</button>').attr('title',msg.PreviousPageTooltip).attr('data-role','page-previous'),$('<div>'+msg.Page+'</div>'),$('<div class="input-group"><input data-role="page-number" class="form-control form-control-sm" type="text" value="
1930"></div>'),$('<div>'+msg.Of+'</div>'),$('<div data-role="page-label-last">0</div>'),$('<button class="btn btn-default btn-sm bt-cursor-pointer">'+(data.icons.next||msg.Next)+'</button>').attr('title',msg.NextPageTooltip).attr('data-role','page-next'),$('<button class="btn btn-default btn-sm bt-cursor-pointer">'+(data.icons.last||msg.Last)+'</button>').attr('title',msg.LastPageTooltip).attr('data-role','page-last'),$('<button class="btn btn-default btn-sm bt-cursor-pointer">'+(data.icons.refresh||msg.Refresh)+'</button>').attr('title',msg.Refresh).attr('data-role','page-refresh'),$('<select data-role="page-size" class="form-control input-sm" width="60"></select>')]}
194if(typeof(data.pager.rightControls)==='undefined'){data.pager.rightControls=[$('<div>'+msg.DisplayingRecords+'&nbsp;</div>'),$('<div data-role="record-first">0</div>'),$('<div>-</div>'),$('<div data-role="record-last">0</div>'),$('<div>'+msg.Of+'</div>'),$('<div data-role="record-total">0</div>')]}},localizationMaterialDesign:function(data){var msg=bt.grid.messages[data.locale];if(typeof(data.pager.leftControls)==='undefined'){data.pager.leftControls=[]}
195if(typeof(data.pager.rightControls)==='undefined'){data.pager.rightControls=[$('<span class="">'+msg.RowsPerPage+'</span>'),$('<select data-role="page-size" class="bt-grid-md-limit-select" width="52"></select></div>'),$('<span class="bt-md-spacer-32">&nbsp;</span>'),$('<span data-role="record-first" class="">0</span>'),$('<span class="">-</span>'),$('<span data-role="record-last" class="">0</span>'),$('<span class="bt-grid-mdl-pager-label">'+msg.Of+'</span>'),$('<span data-role="record-total" class="">0</span>'),$('<span class="bt-md-spacer-32">&nbsp;</span>'),$('<button class="bt-button-md">'+(data.icons.previous||msg.Previous)+'</button>').attr('title',msg.PreviousPageTooltip).attr('data-role','page-previous').addClass(data.icons.first?'bt-button-md-icon':''),$('<span class="bt-md-spacer-24">&nbsp;</span>'),$('<button class="bt-button-md">'+(data.icons.next||msg.Next)+'</button>').attr('title',msg.NextPageTooltip).attr('data-role','page-next').addClass(data.icons.first?'bt-button-md-icon':'')]}},initPagerControl:function($control,$grid){var data=$grid.data();switch($control.data('role')){case 'page-size':if(data.pager.sizes&&0<data.pager.sizes.length){$control.show();$.each(data.pager.sizes,function(){$control.append($('<option/>').attr('value',this.toString()).text(this.toString()))});$control.change(function(){var newSize=parseInt(this.value,10);data.params[data.paramNames.limit]=newSize;bt.grid.plugins.pagination.private.changePage($grid,1);bt.grid.plugins.pagination.events.pageSizeChange($grid,newSize)});$control.val(data.params[data.paramNames.limit]);if(bt.dropdown){$control.dropdown({uiLibrary:data.uiLibrary,iconsLibrary:data.iconsLibrary,fontSize:$control.css('font-size'),style:{presenter:'btn btn-default btn-sm'}})}}else{$control.hide()}
196break;case 'page-refresh':$control.on('click',function(){$grid.reload()});break}},reloadPager:function($grid,totalRecords){var page,limit,lastPage,firstRecord,lastRecord,data,controls,i;data=$grid.data();if(data.pager){page=(0===totalRecords)?0:parseInt(data.params[data.paramNames.page],10);limit=parseInt(data.params[data.paramNames.limit],10);lastPage=Math.ceil(totalRecords/limit);firstRecord=(0===page)?0:(limit*(page-1))+1;lastRecord=(firstRecord+limit)>totalRecords?totalRecords:(firstRecord+limit)-1;controls=$grid.find('TFOOT [data-role]');for(i=0;i<controls.length;i++){bt.grid.plugins.pagination.private.reloadPagerControl($(controls[i]),$grid,page,lastPage,firstRecord,lastRecord,totalRecords)}
197bt.grid.plugins.pagination.private.updatePagerColSpan($grid)}},reloadPagerControl:function($control,$grid,page,lastPage,firstRecord,lastRecord,totalRecords){var newPage;switch($control.data('role')){case 'page-first':bt.grid.plugins.pagination.private.assignPageHandler($grid,$control,1,page<2);break;case 'page-previous':bt.grid.plugins.pagination.private.assignPageHandler($grid,$control,page-1,page<2);break;case 'page-number':$control.val(page).off('change').on('change',bt.grid.plugins.pagination.private.createChangePageHandler($grid,page));break;case 'page-label-last':$control.text(lastPage);break;case 'page-next':bt.grid.plugins.pagination.private.assignPageHandler($grid,$control,page+1,lastPage===page);break;case 'page-last':bt.grid.plugins.pagination.private.assignPageHandler($grid,$control,lastPage,lastPage===page);break;case 'page-button-one':newPage=(page===1)?1:((page==lastPage)?(page-2):(page-1));bt.grid.plugins.pagination.private.assignButtonHandler($grid,$control,page,newPage,lastPage);break;case 'page-button-two':newPage=(page===1)?2:((page==lastPage)?lastPage-1:page);bt.grid.plugins.pagination.private.assignButtonHandler($grid,$control,page,newPage,lastPage);break;case 'page-button-three':newPage=(page===1)?page+2:((page==lastPage)?page:(page+1));bt.grid.plugins.pagination.private.assignButtonHandler($grid,$control,page,newPage,lastPage);break;case 'record-first':$control.text(firstRecord);break;case 'record-last':$control.text(lastRecord);break;
197case 'record-total':$control.text(totalRecords);break}},assignPageHandler:function($grid,$control,newPage,disabled){var style=$grid.data().style.pager;if(disabled){$control.addClass(style.stateDisabled).prop('disabled',!0).off('click')}else{$control.removeClass(style.stateDisabled).prop('disabled',!1).off('click').on('click',function(){bt.grid.plugins.pagination.private.changePage($grid,newPage)})}},assignButtonHandler:function($grid,$control,page,newPage,lastPage){var style=$grid.data().style.pager;if(newPage<1||newPage>lastPage){$control.hide()}else{$control.show().off('click').text(newPage);if(newPage===page){$control.addClass(style.activeButton)}else{$control.removeClass(style.activeButton).on('click',function(){bt.grid.plugins.pagination.private.changePage($grid,newPage)})}}},createChangePageHandler:function($grid,currentPage){return function(){var data=$grid.data(),newPage=parseInt(this.value,10);bt.grid.plugins.pagination.private.changePage($grid,newPage)}},changePage:function($grid,newPage){var data=$grid.data();if(bt.grid.plugins.pagination.events.pageChanging($grid,newPage)!==!1&&!isNaN(newPage)){$grid.find('TFOOT [data-role="page-number"]').val(newPage);data.params[data.paramNames.page]=newPage}
198$grid.reload()},updatePagerColSpan:function($grid){var $cell=$grid.find('tfoot > tr[data-role="pager"] > th');if($cell&&$cell.length){$cell.attr('colspan',bt.grid.methods.countVisibleColumns($grid))}},isLastRecordVisible:function($grid){var result=!0,data=$grid.data(),limit=parseInt(data.params[data.paramNames.limit],10),page=parseInt(data.params[data.paramNames.page],10),count=$grid.count();if(limit&&page){result=((page-1)*limit)+count===data.totalRecords}
199return result}},public:{getAll:function(includeAllRecords){var limit,page,start,data=this.data();if($.isArray(data.dataSource)){if(includeAllRecords){return data.dataSource}else if(data.params[data.paramNames.limit]&&data.params[data.paramNames.page]){limit=parseInt(data.params[data.paramNames.limit],10);page=parseInt(data.params[data.paramNames.page],10);start=(page-1)*limit;return data.records.slice(start,start+limit)}else{return data.records}}else{return data.records}}},events:{pageSizeChange:function($grid,newSize){$grid.triggerHandler('pageSizeChange',[newSize])},pageChanging:function($grid,newSize){$grid.triggerHandler('pageChanging',[newSize])}},configure:function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.pagination.public);var data=$grid.data();if(clientConfig.pager){bt.grid.methods.isLastRecordVisible=bt.grid.plugins.pagination.private.isLastRecordVisible;$grid.on('initialized',function(){bt.grid.plugins.pagination.private.init($grid)});$grid.on('dataBound',function(e,records,totalRecords){bt.grid.plugins.pagination.private.reloadPager($grid,totalRecords)});$grid.on('columnShow',function(){bt.grid.plugins.pagination.private.updatePagerColSpan($grid)});$grid.on('columnHide',function(){bt.grid.plugins.pagination.private.updatePagerColSpan($grid)})}}};bt.grid.plugins.responsiveDesign={config:{base:{resizeCheckInterval:500,responsive:!1,showHiddenColumnsAsDetails:!1,defaultColumn:{priority:undefined,minWidth:250},style:{rowDetailItem:''}},bootstrap:{style:{rowDetailItem:'col-lg-4'}}},'private':{orderColumns:function(config){var result=[];if(config.columns&&config.columns.length){for(i=0;i<config.columns.length;i++){result.push({position:i,field:config.columns[i].field,minWidth:config.columns[i].width||config.columns[i].minWidth||config.defaultColumn.minWidth,priority:config.columns[i].priority||0})}
200result.sort(function(a,b){var result=0;if(a.priority<b.priority){result=-1}else if(a.priority>b.priority){result=1}
201return result})}
202return result},updateDetails:function($grid){var rows,data,i,j,$row,details,$placeholder,column,tmp;rows=$grid.find('tbody > tr[data-role="row"]');data=$grid.data();for(i=0;i<rows.length;i++){$row=$(rows[i]);details=$row.data('details');for(j=0;j<data.columns.length;j++){column=data.columns[j];$placeholder=details&&details.find('div[data-id="'+column.field+'"]');if(data.columns[j].hidden){tmp='<b>'+(column.title||column.field)+'</b>: {'+column.field+'}';if(!$placeholder||!$placeholder.length){$placeholder=$('<div data-id="'+column.field+'"/>').html(tmp);$placeholder.addClass(data.style.rowDetailItem);
202if(!details||!details.length){details=$('<div class="row"/>')}
203details.append($placeholder)}else{$placeholder.empty().html(tmp)}}else if($placeholder&&$placeholder.length){$placeholder.remove()}}
204$grid.updateDetails($row)}}},'public':{oldWidth:undefined,resizeCheckIntervalId:undefined,makeResponsive:function(){var i,$column,extraWidth=0,config=this.data(),columns=bt.grid.plugins.responsiveDesign.private.orderColumns(config);for(i=0;i<columns.length;i++){$column=this.find('thead>tr>th:eq('+columns[i].position+')');if($column.is(':visible')&&columns[i].minWidth<$column.width()){extraWidth+=$column.width()-columns[i].minWidth}}
205if(extraWidth){for(i=0;i<columns.length;i++){$column=this.find('thead>tr>th:eq('+columns[i].position+')');if(!$column.is(':visible')&&columns[i].minWidth<=extraWidth){this.showColumn(columns[i].field);extraWidth-=$column.width()}}}
206for(i=(columns.length-1);i>=0;i--){$column=this.find('thead>tr>th:eq('+columns[i].position+')');if($column.is(':visible')&&columns[i].priority&&columns[i].minWidth>$column.outerWidth()){this.hideColumn(columns[i].field)}}
207return this},},'events':{resize:function($grid,newWidth,oldWidth){$grid.triggerHandler('resize',[newWidth,oldWidth])}},'configure':function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.responsiveDesign.public);if(fullConfig.responsive){$grid.on('initialized',function(){$grid.makeResponsive();$grid.oldWidth=$grid.width();$grid.resizeCheckIntervalId=setInterval(function(){var newWidth=$grid.width();if(newWidth!==$grid.oldWidth){bt.grid.plugins.responsiveDesign.events.resize($grid,newWidth,$grid.oldWidth)}
208$grid.oldWidth=newWidth},fullConfig.resizeCheckInterval)});$grid.on('destroy',function(){if($grid.resizeCheckIntervalId){clearInterval($grid.resizeCheckIntervalId)}});$grid.on('resize',function(){$grid.makeResponsive()})}
209if(fullConfig.showHiddenColumnsAsDetails&&bt.grid.plugins.expandCollapseRows){$grid.on('dataBound',function(){bt.grid.plugins.responsiveDesign.private.updateDetails($grid)});$grid.on('columnHide',function(){bt.grid.plugins.responsiveDesign.private.updateDetails($grid)});$grid.on('columnShow',function(){bt.grid.plugins.responsiveDesign.private.updateDetails($grid)});$grid.on('rowDataBound',function(){bt.grid.plugins.responsiveDesign.private.updateDetails($grid)})}}};bt.grid.plugins.toolbar={config:{base:{toolbarTemplate:undefined,title:undefined,style:{toolbar:'bt-grid-md-toolbar'}},bootstrap:{style:{toolbar:'bt-grid-bootstrap-toolbar'}},bootstrap4:{style:{toolbar:'bt-grid-bootstrap-4-toolbar'}}},private:{init:function($grid){var data,$toolbar,$title;data=$grid.data();$toolbar=$grid.prev('div[data-role="toolbar"]');if(typeof(data.toolbarTemplate)!=='undefined'||typeof(data.title)!=='undefined'||$toolbar.length>0){if($toolbar.length===0){$toolbar=$('<div data-role="toolbar"></div>');$grid.before($toolbar)}
210$toolbar.addClass(data.style.toolbar);if($toolbar.children().length===0&&data.toolbarTemplate){$toolbar.append(data.toolbarTemplate)}
211$title=$toolbar.find('[data-role="title"]');if($title.length===0){$title=$('<div data-role="title"/>');$toolbar.prepend($title)}
212if(data.title){$title.text(data.title)}
213if(data.minWidth){$toolbar.css('min-width',data.minWidth)}}}},public:{title:function(text){var $titleEl=this.parent().find('div[data-role="toolbar"] [data-role="title"]');if(typeof(text)!=='undefined'){$titleEl.text(text);return this}else{return $titleEl.text()}}},configure:function($grid){$.extend(!0,$grid,bt.grid.plugins.toolbar.public);$grid.on('initialized',function(){bt.grid.plugins.toolbar.private.init($grid)});$grid.on('destroying',function(){$grid.prev('[data-role="toolbar"]').remove()})}};bt.grid.plugins.resizableColumns={config:{base:{resizableColumns:!1}},private:{init:function($grid,config){var $columns,$column,i,$wrapper,$resizer,marginRight;$columns=$grid.find('thead tr[data-role="caption"] th');if($columns.length){for(i=0;i<$columns.length-1;i++){$column=$($columns[i]);$wrapper=$('<div class="bt-grid-column-resizer-wrapper" />');marginRight=parseInt($column.css('padding-right'),10)+3;$resizer=$('<span class="bt-grid-column-resizer" />').css('margin-right','-'+marginRight+'px');$resizer.draggable({start:function(){$grid.addClass('bt-unselectable');$grid.addClass('bt-grid-resize-cursor')},stop:function(){$grid.removeClass('bt-unselectable');$grid.removeClass('bt-grid-resize-cursor');this.style.removeProperty('top');this.style.removeProperty('left');this.style.removeProperty('position')},drag:bt.grid.plugins.resizableColumns.private.createResizeHandle($grid,$column,config.columns[i])});$column.append($wrapper.append($resizer))}
214for(i=0;i<$columns.length;i++){$column=$($columns[i]);if(!$column.attr('width')){$column.attr('width',$column.outerWidth())}}}},createResizeHandle:function($grid,$column,column){var data=$grid.data();return function(e,newPosition){var i,index,rows,cell,newWidth,nextWidth,currentWidth=parseInt($column.attr('width'),10),position=bt.core.position(this),offset={top:newPosition.top-position.top,left
214:newPosition.left-position.left};if(!currentWidth){currentWidth=$column.outerWidth()}
215if(offset.left){newWidth=currentWidth+offset.left;column.width=newWidth;$column.attr('width',newWidth);index=$column[0].cellIndex;cell=$column[0].parentElement.children[index+1];nextWidth=parseInt($(cell).attr('width'),10)-offset.left;cell.setAttribute('width',nextWidth);if(data.resizableColumns){rows=$grid[0].tBodies[0].children;for(i=0;i<rows.length;i++){rows[i].cells[index].setAttribute('width',newWidth);cell=rows[i].cells[index+1];cell.setAttribute('width',nextWidth)}}}}}},public:{},configure:function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.resizableColumns.public);if(fullConfig.resizableColumns&&bt.draggable){$grid.on('initialized',function(){bt.grid.plugins.resizableColumns.private.init($grid,fullConfig)})}}};bt.grid.plugins.rowReorder={config:{base:{rowReorder:!1,rowReorderColumn:undefined,orderNumberField:undefined,style:{targetRowIndicatorTop:'bt-grid-row-reorder-indicator-top',targetRowIndicatorBottom:'bt-grid-row-reorder-indicator-bottom'}}},private:{init:function($grid){var i,columnPosition,$row,$rows=$grid.find('tbody tr[data-role="row"]');if($grid.data('rowReorderColumn')){columnPosition=bt.grid.methods.getColumnPosition($grid.data('columns'),$grid.data('rowReorderColumn'))}
216for(i=0;i<$rows.length;i++){$row=$($rows[i]);if(typeof(columnPosition)!=='undefined'){$row.find('td:eq('+columnPosition+')').on('mousedown',bt.grid.plugins.rowReorder.private.createRowMouseDownHandler($grid,$row))}else{$row.on('mousedown',bt.grid.plugins.rowReorder.private.createRowMouseDownHandler($grid,$row))}}},createRowMouseDownHandler:function($grid,$trSource){return function(e){var $dragEl=$grid.clone(),columns=$grid.data('columns'),i,$cells;$grid.addClass('bt-unselectable');$('body').append($dragEl);$dragEl.attr('data-role','draggable-clone').css('cursor','move');$dragEl.children('thead').remove().children('tfoot').remove();$dragEl.find('tbody tr:not([data-position="'+$trSource.data('position')+'"])').remove();$cells=$dragEl.find('tbody tr td');for(i=0;i<$cells.length;i++){if(columns[i].width){$cells[i].setAttribute('width',columns[i].width)}}
217$dragEl.draggable({stop:bt.grid.plugins.rowReorder.private.createDragStopHandler($grid,$trSource)});$dragEl.css({position:'absolute',top:$trSource.offset().top,left:$trSource.offset().left,width:$trSource.width(),zIndex:1});if($trSource.attr('data-droppable')==='true'){$trSource.droppable('destroy')}
218$trSource.siblings('tr[data-role="row"]').each(function(){var $dropEl=$(this);if($dropEl.attr('data-droppable')==='true'){$dropEl.droppable('destroy')}
219$dropEl.droppable({over:bt.grid.plugins.rowReorder.private.createDroppableOverHandler($trSource),out:bt.grid.plugins.rowReorder.private.droppableOut})});$dragEl.trigger('mousedown')}},createDragStopHandler:function($grid,$trSource){return function(e,mousePosition){$('table[data-role="draggable-clone"]').draggable('destroy').remove();$grid.removeClass('bt-unselectable');$trSource.siblings('tr[data-role="row"]').each(function(){var $trTarget=$(this),targetPosition=$trTarget.data('position'),sourcePosition=$trSource.data('position'),data=$grid.data(),$rows,$row,i,record,id;if($trTarget.droppable('isOver',mousePosition)){if(targetPosition<sourcePosition){$trTarget.before($trSource)}else{$trTarget.after($trSource)}
220data.records.splice(targetPosition-1,0,data.records.splice(sourcePosition-1,1)[0]);$rows=$trTarget.parent().find('tr[data-role="row"]');for(i=0;i<$rows.length;i++){$($rows[i]).attr('data-position',i+1)}
221if(data.orderNumberField){for(i=0;i<data.records.length;i++){data.records[i][data.orderNumberField]=i+1}
222for(i=0;i<$rows.length;i++){$row=$($rows[i]);id=bt.grid.methods.getId($row,data.primaryKey,$row.attr('data-position'));record=bt.grid.methods.getByPosition($grid,$row.attr('data-position'));$grid.setCellContent(id,data.orderNumberField,record[data.orderNumberField])}}}
223$trTarget.removeClass('bt-grid-top-border');$trTarget.removeClass('bt-grid-bottom-border');$trTarget.droppable('destroy')})}},createDroppableOverHandler:function($trSource){return function(e){var $trTarget=$(this),targetPosition=$trTarget.data('position'),sourcePosition=$trSource.data('position');if(targetPosition<sourcePosition){$trTarget.addClass('bt-grid-top-border')}else{$trTarget.addClass('bt-grid-bottom-border')}}},droppableOut:function(){$(this).removeClass('bt-grid-top-border');$(this).removeClass('bt-grid-bottom-border')}},public:{},configure:function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.rowReorder.public);if(fullConfig.rowReorder&&bt.draggable&&bt.droppable){$grid.on('dataBound',function(){bt.grid.plugins.rowReorder.private.init($grid)})}}};
223bt.grid.plugins.export={config:{base:{}},public:{getCSV:function(includeAllRecords){var i,j,line='',str='',columns=this.data().columns,records=this.getAll(includeAllRecords);if(records.length){for(i=0;i<columns.length;i++){if(columns[i].hidden!==!0){line+='"'+(columns[i].title||columns[i].field)+'",'}}
224str+=line.slice(0,line.length-1)+'\r\n';for(i=0;i<records.length;i++){line='';for(j=0;j<columns.length;j++){if(columns[j].hidden!==!0){line+='"'+records[i][columns[j].field]+'",'}}
225str+=line.slice(0,line.length-1)+'\r\n'}}
226return str},downloadCSV:function(filename,includeAllRecords){var link=document.createElement('a');document.body.appendChild(link);link.download=filename||'griddata.csv';link.href='data:text/csv;charset=utf-8,'+escape(this.getCSV(includeAllRecords));link.click();document.body.removeChild(link);return this}},configure:function($grid){$.extend(!0,$grid,bt.grid.plugins.export.public)}};bt.grid.plugins.columnReorder={config:{base:{columnReorder:!1,dragReady:!1,style:{targetRowIndicatorTop:'bt-grid-row-reorder-indicator-top',targetRowIndicatorBottom:'bt-grid-row-reorder-indicator-bottom'}}},private:{init:function($grid){var i,$cell,$cells=$grid.find('thead tr th');for(i=0;i<$cells.length;i++){$cell=$($cells[i]);$cell.on('mousedown',bt.grid.plugins.columnReorder.private.createMouseDownHandler($grid,$cell));$cell.on('mousemove',bt.grid.plugins.columnReorder.private.createMouseMoveHandler($grid,$cell));$cell.on('mouseup',bt.grid.plugins.columnReorder.private.createMouseUpHandler($grid,$cell))}},createMouseDownHandler:function($grid){return function(e){$grid.timeout=setTimeout(function(){$grid.data('dragReady',!0)},100)}},createMouseUpHandler:function($grid){return function(e){clearTimeout($grid.timeout);$grid.data('dragReady',!1)}},createMouseMoveHandler:function($grid,$thSource){return function(e){var $dragEl,srcIndex;if($grid.data('dragReady')){$grid.data('dragReady',!1);$dragEl=$grid.clone();srcIndex=$thSource.index();$grid.addClass('bt-unselectable');$('body').append($dragEl);$dragEl.attr('data-role','draggable-clone').css('cursor','move');$dragEl.find('thead tr th:eq('+srcIndex+')').siblings().remove();$dragEl.find('tbody tr[data-role != "row"]').remove();$dragEl.find('tbody tr td:nth-child('+(srcIndex+1)+')').siblings().remove();$dragEl.find('tfoot').remove();$dragEl.draggable({stop:bt.grid.plugins.columnReorder.private.createDragStopHandler($grid,$thSource)});$dragEl.css({position:'absolute',top:$thSource.offset().top,left:$thSource.offset().left,width:$thSource.width(),zIndex:1});if($thSource.attr('data-droppable')==='true'){$thSource.droppable('destroy')}
227$thSource.siblings('th').each(function(){var $dropEl=$(this);if($dropEl.attr('data-droppable')==='true'){$dropEl.droppable('destroy')}
228$dropEl.droppable({over:bt.grid.plugins.columnReorder.private.createDroppableOverHandler($grid,$thSource),out:bt.grid.plugins.columnReorder.private.droppableOut})});$dragEl.trigger('mousedown')}}},createDragStopHandler:function($grid,$thSource){return function(e,mousePosition){$('table[data-role="draggable-clone"]').draggable('destroy').remove();$grid.removeClass('bt-unselectable');$thSource.siblings('th').each(function(){var $thTarget=$(this),data=$grid.data(),targetPosition=bt.grid.methods.getColumnPosition(data.columns,$thTarget.data('field')),sourcePosition=bt.grid.methods.getColumnPosition(data.columns,$thSource.data('field'));$thTarget.removeClass('bt-grid-left-border').removeClass('bt-grid-right-border');$thTarget.closest('table').find('tbody tr[data-role="row"] td:nth-child('+($thTarget.index()+1)+')').removeClass('bt-grid-left-border').removeClass('bt-grid-right-border');if($thTarget.droppable('isOver',mousePosition)){if(targetPosition<sourcePosition){$thTarget.before($thSource)}else{$thTarget.after($thSource)}
229bt.grid.plugins.columnReorder.private.moveRowCells($grid,sourcePosition,targetPosition);data.columns.splice(targetPosition,0,data.columns.splice(sourcePosition,1)[0])}
230$thTarget.droppable('destroy')})}},moveRowCells:function($grid,sourcePosition,targetPosition){var i,$row,$rows=$grid.find('tbody tr[data-role="row"]');for(i=0;i<$rows.length;i++){$row=$($rows[i]);if(targetPosition<sourcePosition){$row.find('td:eq('+targetPosition+')').before($row.find('td:eq('+sourcePosition+')'))}else{$row.find('td:eq('+targetPosition+')').after($row.find('td:eq('+sourcePosition+')'))}}},createDroppableOverHandler:function($grid,$thSource){return function(e){var $thTarget=$(this),data=$grid.data(),targetPosition=bt.grid.methods.getColumnPosition(data.columns,$thTarget.data('field')),sourcePosition=bt.grid.methods.getColumnPosition(data.columns,$thSource.data('field'));if(targetPosition<sourcePosition){$thTarget.addClass('bt-grid-left-border');$grid.find('tbody tr[data-role="row"] td:nth-child('+($thTarget.index()+1)+')').addClass('bt-grid-left-border')}else{$thTarget.addClass('bt-grid-right-border');$grid.find('tbody tr[data-role="row"] td:nth-child('+($thTarget.index()+1)+')').addClass('bt-grid-right-border')}}},droppableOut:function(){var $thTarget=$(this);$thTarget.removeClass('bt-grid-left-border').removeClass('bt-grid-right-border');$thTarget.closest('table').find('tbody tr[data-role="row"] td:nth-child('+($thTarget.index()+1)+')').removeClass('bt-grid-left-border').removeClass('bt-grid-right-border')}},public:{},configure:function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.columnReorder.public);if(fullConfig.columnReorder){$grid.on('initialized',function(){bt.grid.plugins.columnReorder.private.init($grid)})}}};
230bt.grid.plugins.headerFilter={config:{base:{defaultColumnSettings:{filterable:!0},headerFilter:{type:'onenterkeypress'}}},private:{init:function($grid){var i,$th,$ctrl,data=$grid.data(),$filterTr=$('<tr data-role="filter"/>');for(i=0;i<data.columns.length;i++){$th=$('<th/>');if(data.columns[i].filterable){$ctrl=$('<input data-field="'+data.columns[i].field+'" class="bt-width-full" />');if('onchange'===data.headerFilter.type){$ctrl.on('input propertychange',function(e){bt.grid.plugins.headerFilter.private.reload($grid,$(this))})}else{$ctrl.on('keypress',function(e){if(e.which==13){bt.grid.plugins.headerFilter.private.reload($grid,$(this))}});$ctrl.on('blur',function(e){bt.grid.plugins.headerFilter.private.reload($grid,$(this))})}
231$th.append($ctrl)}
232if(data.columns[i].hidden){$th.hide()}
233$filterTr.append($th)}
234$grid.children('thead').append($filterTr)},reload:function($grid,$ctrl){var params={};params[$ctrl.data('field')]=$ctrl.val();$grid.reload(params)}},public:{},events:{},configure:function($grid,fullConfig,clientConfig){$.extend(!0,$grid,bt.grid.plugins.headerFilter.public);var data=$grid.data();if(clientConfig.headerFilter){$grid.on('initialized',function(){bt.grid.plugins.headerFilter.private.init($grid)})}}};bt.grid.plugins.grouping={config:{base:{paramNames:{groupBy:'groupBy',groupByDirection:'groupByDirection'},grouping:{groupBy:undefined,direction:'asc'},icons:{expandGroup:'<i class="bt-icon plus" />',collapseGroup:'<i class="bt-icon minus" />'}},fontawesome:{icons:{expandGroup:'<i class="fa fa-plus" aria-hidden="true"></i>',collapseGroup:'<i class="fa fa-minus" aria-hidden="true"></i>'}},glyphicons:{icons:{expandGroup:'<span class="glyphicon glyphicon-plus" />',collapseGroup:'<span class="glyphicon glyphicon-minus" />'}}},private:{init:function($grid){var previousValue,data=$grid.data();previousValue=undefined;$grid.on('rowDataBound',function(e,$row,id,record){if(previousValue!==record[data.grouping.groupBy]||$row[0].rowIndex===1){var colspan=bt.grid.methods.countVisibleColumns($grid)-1,$groupRow=$('<tr role="group" />'),$expandCollapseCell=$('<td class="bt-text-align-center bt-unselectable bt-cursor-pointer" />');$expandCollapseCell.append('<div data-role="display">'+data.icons.collapseGroup+'</div>');$expandCollapseCell.on('click',bt.grid.plugins.grouping.private.createExpandCollapseHandler(data));$groupRow.append($expandCollapseCell);$groupRow.append('<td colspan="'+colspan+'"><div data-role="display">'+data.grouping.groupBy+': '+record[data.grouping.groupBy]+'</div></td>');$groupRow.insertBefore($row);previousValue=record[data.grouping.groupBy]}
235$row.show()});data.params[data.paramNames.groupBy]=data.grouping.groupBy;data.params[data.paramNames.groupByDirection]=data.grouping.direction},grouping:function($grid,records){var data=$grid.data();records.sort(bt.grid.methods.createDefaultSorter(data.grouping.direction,data.grouping.groupBy))},createExpandCollapseHandler:function(data){return function(e){var $cell=$(this),methods=bt.grid.plugins.grouping.private;if($cell.closest('tr').next(':visible').data('role')==='row'){methods.collapseGroup(data,$cell)}else{methods.expandGroup(data,$cell)}}},collapseGroup:function(data,$cell){var $display=$cell.children('div[data-role="display"]'),$groupRow=$cell.closest('tr');$groupRow.nextUntil('[role="group"]').hide();$display.empty().append(data.icons.expandGroup)},expandGroup:function(data,$cell){var $display=$cell.children('div[data-role="display"]'),$groupRow=$cell.closest('tr');$groupRow.nextUntil('[role="group"]').show();$display.empty().append(data.icons.collapseGroup)}},public:{},configure:function($grid){var column,data=$grid.data();$.extend(!0,$grid,bt.grid.plugins.grouping.public);if(data.grouping&&data.grouping.groupBy){column={title:'',width:data.defaultIconColumnWidth,align:'center',stopPropagation:!0,cssClass:'bt-cursor-pointer bt-unselectable'};data.columns=[column].concat(data.columns);$grid.on('initialized',function(){bt.grid.plugins.grouping.private.init($grid)});$grid.on('dataFiltered',function(e,records){bt.grid.plugins.grouping.private.grouping($grid,records)})}}};bt.grid.messages['en-us']={First:'First',Previous:'Previous',Next:'Next',Last:'Last',Page:'Page',FirstPageTooltip:'First Page',PreviousPageTooltip:'Previous Page',NextPageTooltip:'Next Page',LastPageTooltip:'Last Page',Refresh:'Refresh',Of:'of',DisplayingRecords:'Displaying records',RowsPerPage:'Rows per page:',Edit:'Edit',Delete:'Delete',Update:'Update',Cancel:'Cancel',NoRecordsFound:'No records foun
235d.',Loading:'Loading...'};bt.tree={plugins:{}};bt.tree.config={base:{params:{},autoLoad:!0,selectionType:'single',cascadeSelection:!1,dataSource:undefined,primaryKey:undefined,textField:'text',childrenField:'children',hasChildrenField:'hasChildren',imageCssClassField:'imageCssClass',imageUrlField:'imageUrl',imageHtmlField:'imageHtml',disabledField:'disabled',width:undefined,border:!1,uiLibrary:'materialdesign',iconsLibrary:'materialicons',autoGenId:1,indentation:24,style:{wrapper:'bt-unselectable',list:'bt-list bt-list-md',item:undefined,active:'bt-list-md-active',leafIcon:undefined,border:'bt-tree-md-border'},icons:{expand:'<i class="bt-icon chevron-right" />',collapse:'<i class="bt-icon chevron-down" />'}},bootstrap:{style:{wrapper:'bt-unselectable bt-tree-bootstrap-3',list:'bt-list bt-list-bootstrap list-group',item:'list-group-item',active:'active',border:'bt-tree-bootstrap-border'},iconsLibrary:'glyphicons'},bootstrap4:{style:{wrapper:'bt-unselectable bt-tree-bootstrap-4',list:'bt-list bt-list-bootstrap',item:'list-group-item',active:'active',border:'bt-tree-bootstrap-border'},icons:{expand:'<i class="bt-icon plus" />',collapse:'<i class="bt-icon minus" />'}},materialicons:{style:{expander:'bt-tree-material-icons-expander'}},fontawesome:{style:{expander:'bt-tree-font-awesome-expander'},icons:{expand:'<i class="fa fa-plus" aria-hidden="true"></i>',collapse:'<i class="fa fa-minus" aria-hidden="true"></i>'}},glyphicons:{style:{expander:'bt-tree-glyphicons-expander'},icons:{expand:'<span class="glyphicon glyphicon-plus" />',collapse:'<span class="glyphicon glyphicon-minus" />'}}};bt.tree.events={initialized:function($tree){$tree.triggerHandler('initialized')},dataBinding:function($tree){$tree.triggerHandler('dataBinding')},dataBound:function($tree){$tree.triggerHandler('dataBound')},select:function($tree,$node,id){return $tree.triggerHandler('select',[$node,id])},unselect:function($tree,$node,id){return $tree.triggerHandler('unselect',[$node,id])},expand:function($tree,$node,id){return $tree.triggerHandler('exp
235and',[$node,id])},collapse:function($tree,$node,id){return $tree.triggerHandler('collapse',[$node,id])},enable:function($tree,$node){return $tree.triggerHandler('enable',[$node])},disable:function($tree,$node){return $tree.triggerHandler('disable',[$node])},destroying:function($tree){return $tree.triggerHandler('destroying')},nodeDataBound:function($tree,$node,id,record){return $tree.triggerHandler('nodeDataBound',[$node,id,record])}}
236bt.tree.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'tree');bt.tree.methods.initialize.call(this);if(this.data('autoLoad')){this.reload()}
237return this},initialize:function(){var data=this.data(),$root=$('<ul class="'+data.style.list+'"/>');this.empty().addClass(data.style.wrapper).append($root);if(data.width){this.width(data.width)}
238if(data.border){this.addClass(data.style.border)}
239bt.tree.events.initialized(this)},useHtmlDataSource:function($tree,data){data.dataSource=[]},render:function($tree,response){if(response){if(typeof(response)==='string'&&JSON){response=JSON.parse(response)}
240$tree.data('records',bt.tree.methods.getRecords($tree,response));bt.tree.methods.loadData($tree)}
241return $tree},filter:function($grid){return $grid.data().dataSource},getRecords:function($tree,response){var i,id,nodeData,result=[],data=$tree.data();for(i=0;i<response.length;i++){id=data.primaryKey&&response[i][data.primaryKey]?response[i][data.primaryKey]:data.autoGenId++;nodeData={id:id,data:response[i]};if(response[i][data.childrenField]&&response[i][data.childrenField].length){nodeData.children=bt.tree.methods.getRecords($tree,response[i][data.childrenField]);delete response[i][data.childrenField]}else{nodeData.children=[]}
242result.push(nodeData)}
243return result},loadData:function($tree){var i,records=$tree.data('records'),$root=$tree.children('ul');bt.tree.events.dataBinding($tree);$root.off().empty();for(i=0;i<records.length;i++){bt.tree.methods.appendNode($tree,$root,records[i],1)}
244bt.tree.events.dataBound($tree)},appendNode:function($tree,$parent,nodeData,level,position){var i,$node,$newParent,$span,$img,data=$tree.data(),$node=$('<li data-id="'+nodeData.id+'" data-role="node" />').addClass(data.style.item),$wrapper=$('<div data-role="wrapper" />'),$expander=$('<span data-role="expander" data-mode="close"></span>').addClass(data.style.expander),$display=$('<span data-role="display">'+nodeData.data[data.textField]+'</span>'),hasChildren=typeof(nodeData.data[data.hasChildrenField])!=='undefined'&&nodeData.data[data.hasChildrenField].toString().toLowerCase()==='true',disabled=typeof(nodeData.data[data.disabledField])!=='undefined'&&nodeData.data[data.disabledField].toString().toLowerCase()==='true';if(data.indentation){$wrapper.append('<span data-role="spacer" style="width: '+(data.indentation*(level-1))+'px;"></span>')}
245if(disabled){bt.tree.methods.disableNode($tree,$node)}else{$expander.on('click',bt.tree.methods.expanderClickHandler($tree));$display.on('click',bt.tree.methods.displayClickHandler($tree))}
246$wrapper.append($expander);$wrapper.append($display);$node.append($wrapper);if(position){$parent.find('li:eq('+(position-1)+')').before($node)}else{$parent.append($node)}
247if(nodeData.children.length||hasChildren){$expander.empty().append(data.icons.expand);$newParent=$('<ul />').addClass(data.style.list).addClass('bt-hidden');$node.append($newParent);for(i=0;i<nodeData.children.length;i++){bt.tree.methods.appendNode($tree,$newParent,nodeData.children[i],level+1)}}else{data.style.leafIcon?$expander.addClass(data.style.leafIcon):$expander.html('&nbsp;')}
248if(data.imageCssClassField&&nodeData.data[data.imageCssClassField]){$('<span data-role="image"><span class="'+nodeData.data[data.imageCssClassField]+'"></span></span>').insertBefore($display)}else if(data.imageUrlField&&nodeData.data[data.imageUrlField]){$span=$('<span data-role="image"></span>');$span.insertBefore($display);$img=$('<img src="'+nodeData.data[data.imageUrlField]+'"></img>');$img.attr('width',$span.width()).attr('height',$span.height());$span.append($img)}else if(data.imageHtmlField&&nodeData.data[data.imageHtmlField]){$span=$('<span data-role="image">'+nodeData.data[data.imageHtmlField]+'</span>');$span.insertBefore($display)}
249bt.tree.events.nodeDataBound($tree,$node,nodeData.id,nodeData.data)},expanderClickHandler:function($tree){return function(e){var $expander=$(this),$node=$expander.closest('li');if($expander.attr('data-mode')==='close'){$tree.expand($node)}else{$tree.collapse($node)}}},expand:function($tree,$node,cascade){var $children,i,$expander=$node.find('>[data-role="wrapper"]>[data-role="expander"]'),data=$tree.data(),id=$node.attr('data-id'),$list=$node.children('ul');if(bt.tree.events.expand($tree,$node,id)!==!1&&$list&&$list.length){$list.show();$expander.attr('data-mode','open');$expander.empty().append(data.icons.collapse);if(cascade){$children=$node.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.expand($tree,$($children[i]),cascade)}}}
250return $tree},collapse:function($tree,$node,cascade){var $children,i,$expander=$node.find('>[data-role="wrapper"]>[data-role="expander"]'),data=$tree.data(),id=$node.attr('data-id'),$list=$node.children('ul');if(bt.tree.events.collapse($tree,$node,id)!==!1&&$list&&$list.length){$list.hide();$expander.attr('data-mode','close');$expander.empty().append(data.icons.expand);if(cascade){$children=$node.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.collapse($tree,$($children[i]),cascade)}}}
251return $tree},expandAll:function($tree){var i,$nodes=$tree.find('ul>li');for(i=0;i<$nodes.length;i++){bt.tree.methods.expand($tree,$($nodes[i]),!0)}
252return $tree},collapseAll:function($tree){var i,$nodes=$tree.find('ul>li');for(i=0;i<$nodes.length;i++){bt.tree.methods.collapse($tree,$($nodes[i]),!0)}
253return $tree},displayClickHandler:function($tree){return function(e){var $display=$(this),$node=$display.closest('li'),cascade=$tree.data().cascadeSelection;if($node.attr('data-selected')==='true'){bt.tree.methods.unselect($tree,$node,cascade)}else{if($tree.data('selectionType')==='single'){bt.tree.methods.unselectAll($tree)}
254bt.tree.methods.select($tree,$node,cascade)}}},selectAll:function($tree){var i,$nodes=$tree.find('ul>li');for(i=0;i<$nodes.length;i++){bt.tree.methods.select($tree,$($nodes[i]),!0)}
255return $tree},select:function($tree,$node,cascade){var i,$children,data=$tree.data();if($node.attr('data-selected')!=='true'&&bt.tree.events.select($tree,$node,$node.attr('data-id'))!==!1){$node.addClass(data.style.active).attr('data-selected','true');if(cascade){$children=$node.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.select($tree,$($children[i]),cascade)}}}},unselectAll:function($tree){var i,$nodes=$tree.find('ul>li');for(i=0;i<$nodes.length;i++){bt.tree.methods.unselect($tree,$($nodes[i]),!0)}
256return $tree},unselect:function($tree,$node,cascade){var i,$children,data=$tree.data();if($node.attr('data-selected')==='true'&&bt.tree.events.unselect($tree,$node,$node.attr('data-id'))!==!1){$node.removeClass($tree.data().style.active).removeAttr('data-selected');if(cascade){$children=$node.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.unselect($tree,$($children[i]),cascade)}}}},getSelections:function($list){var i,$node,children,result=[],$nodes=$list.children('li');if($nodes&&$nodes.length){for(i=0;i<$nodes.length;i++){$node=$($nodes[i]);if($node.attr('data-selected')==='true'){result.push($node.attr('data-id'))}else if($node.has('ul')){children=bt.tree.methods.getSelections($node.children('ul'));if(children.length){result=result.concat(children)}}}}
257return result},getById:function($tree,id,records){var i,result=undefined;for(i=0;i<records.length;i++){if(id==records[i].id){result=records[i];break}else if(records[i].children&&records[i].children.length){result=bt.tree.methods.getById($tree,id,records[i].children);if(result){break}}}
258return result},getDataById:function($tree,id,records){var result=bt.tree.methods.getById($tree,id,records);return result?result.data:result},getDataByText:function($tree,text,records){var i,id,result=undefined,data=$tree.data();for(i=0;i<records.length;i++){if(text===records[i].data[data.textField]){result=records[i].data;break}else if(records[i].children&&records[i].children.length){result=bt.tree.methods.getDataByText($tree,text,records[i].children);if(result){break}}}
259return result},getNodeById:function($list,id){var i,$node,$result=undefined,$nodes=$list.children('li');if($nodes&&$nodes.length){for(i=0;i<$nodes.length;i++){$node=$($nodes[i]);if(id==$node.attr('data-id')){$result=$node;break}else if($node.has('ul')){$result=bt.tree.methods.getNodeById($node.children('ul'),id);if($result){break}}}}
260return $result},getNodeByText:function($list,text){var i,$node,$result=undefined,$nodes=$list.children('li');if($nodes&&$nodes.length){for(i=0;i<$nodes.length;i++){$node=$($nodes[i]);if(text===$node.find('>[data-role="wrapper"]>[data-role="display"]').text()){$result=$node;break}else if($node.has('ul')){$result=bt.tree.methods.getNodeByText($node.children('ul'),text);if($result){break}}}}
261return $result},getAll:function($tree,records){var i,$node,id,targetRecord,result=[],childrenField=$tree.data('childrenField');for(i=0;i<records.length;
261i++){targetRecord=JSON.parse(JSON.stringify(records[i].data));if(records[i].children.length){targetRecord[childrenField]=bt.tree.methods.getAll($tree,records[i].children)}
262result.push(targetRecord)}
263return result},addNode:function($tree,data,$parent,position){var level,newNodeData=bt.tree.methods.getRecords($tree,[data])[0];if(!$parent||!$parent.length){$parent=$tree.children('ul');$tree.data('records').push(newNodeData)}else{if($parent[0].tagName.toLowerCase()==='li'){if($parent.children('ul').length===0){$parent.find('[data-role="expander"]').empty().append($tree.data().icons.collapse);$parent.append($('<ul />').addClass($tree.data().style.list))}
264$parent=$parent.children('ul')}
265bt.tree.methods.getById($tree,$parent.parent().data('id'),$tree.data('records')).children.push(newNodeData)}
266level=$parent.parentsUntil('[data-type="tree"]','ul').length+1;bt.tree.methods.appendNode($tree,$parent,newNodeData,level,position);return $tree},remove:function($tree,$node){bt.tree.methods.removeDataById($tree,$node.attr('data-id'),$tree.data('records'));$node.remove();return $tree},removeDataById:function($tree,id,records){var i;for(i=0;i<records.length;i++){if(id==records[i].id){records.splice(i,1);break}else if(records[i].children&&records[i].children.length){bt.tree.methods.removeDataById($tree,id,records[i].children)}}},update:function($tree,id,newRecord){var data=$tree.data(),$node=$tree.getNodeById(id),oldRecord=$tree.getDataById(id);oldRecord=newRecord;$node.find('>[data-role="wrapper"]>[data-role="display"]').html(newRecord[data.textField]);bt.tree.events.nodeDataBound($tree,$node,id,newRecord);return $tree},getChildren:function($tree,$node,cascade){var result=[],i,$children,cascade=typeof(cascade)==='undefined'?!0:cascade;if(cascade){$children=$node.find('ul li')}else{$children=$node.find('>ul>li')}
267for(i=0;i<$children.length;i++){result.push($($children[i]).data('id'))}
268return result},enableAll:function($tree){var i,$children=$tree.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.enableNode($tree,$($children[i]),!0)}
269return $tree},enableNode:function($tree,$node,cascade){var i,$children,$expander=$node.find('>[data-role="wrapper"]>[data-role="expander"]'),$display=$node.find('>[data-role="wrapper"]>[data-role="display"]'),cascade=typeof(cascade)==='undefined'?!0:cascade;$node.removeClass('disabled');$expander.on('click',bt.tree.methods.expanderClickHandler($tree));$display.on('click',bt.tree.methods.displayClickHandler($tree));bt.tree.events.enable($tree,$node);if(cascade){$children=$node.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.enableNode($tree,$($children[i]),cascade)}}},disableAll:function($tree){var i,$children=$tree.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.disableNode($tree,$($children[i]),!0)}
270return $tree},disableNode:function($tree,$node,cascade){var i,$children,$expander=$node.find('>[data-role="wrapper"]>[data-role="expander"]'),$display=$node.find('>[data-role="wrapper"]>[data-role="display"]'),cascade=typeof(cascade)==='undefined'?!0:cascade;$node.addClass('disabled');$expander.off('click');$display.off('click');bt.tree.events.disable($tree,$node);if(cascade){$children=$node.find('ul>li');for(i=0;i<$children.length;i++){bt.tree.methods.disableNode($tree,$($children[i]),cascade)}}},destroy:function($tree){var data=$tree.data();if(data){bt.tree.events.destroying($tree);$tree.xhr&&$tree.xhr.abort();$tree.off();$tree.removeData();$tree.removeAttr('data-type');$tree.removeClass().empty()}
271return $tree}}
272bt.tree.widget=function($element,jsConfig){var self=this,methods=bt.tree.methods;self.reload=function(params){return bt.widget.prototype.reload.call(this,params)};self.render=function(response){return methods.render(this,response)};self.addNode=function(data,$parentNode,position){return methods.addNode(this,data,$parentNode,position)};self.removeNode=function($node){return methods.remove(this,$node)};self.updateNode=function(id,record){return methods.update(this,id,record)};self.destroy=function(){return methods.destroy(this)};self.expand=function($node,cascade){return methods.expand(this,$node,cascade)};self.collapse=function($node,cascade){return methods.collapse(this,$node,cascade)};self.expandAll=function(){return methods.expandAll(this)};self.collapseAll=function(){return methods.collapseAll(this)};self.getDataById=function(id){return methods.getDataById(this,id,this.data('records'))};self.getDataByText=function(text){return methods.getDataByText(this,text,this.data('records'))};self.getNodeById=function(id){return methods.getNodeById(this.children('ul'),id)};self.getNodeByText=function(text){return methods.getNodeByText(this.children('ul'),text)};self.getAll=function(){return methods.getAll(this,this.data('records'))};self.select=function($node){return methods.select(this,$node)};self.unselect=function($node){return methods.unselect(this,$node)};self.selectAll=function(){return methods.selectAll(this)};self.unselectAll=function(){return methods.unselectAll(this)};self.getSelections=function(){return methods.getSelections(this.children('ul'))};self.getChildren=function($node,cascade){return methods.getChildren(this,$node,cascade)};self.enable=function($node,cascade){return methods.enableNode(this,$node,cascade)};self.enableAll=function(){return methods.enableAll(this)};self.disable=function($node,cascade){return methods.disableNode(this,$node,cascade)};self.disableAll=function(){return methods.disableAll(this)};$.extend($element,self);if('tree'!==$element.attr('data-type')){methods.init.call($element,jsConfig)}
273return $element};bt.tree.widget.prototype=new bt.widget();bt.tree.widget.constructor=bt.tree.widget;(function($){$.fn.tree=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.tree.widget(this,method)}else{$widget=new bt.tree.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1
273))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.tree.plugins.checkboxes={config:{base:{checkboxes:undefined,checkedField:'checked',cascadeCheck:!0,}},private:{dataBound:function($tree){var $nodes;if($tree.data('cascadeCheck')){$nodes=$tree.find('li[data-role="node"]');$.each($nodes,function(){var $node=$(this),state=$node.find('[data-role="checkbox"] input[type="checkbox"]').checkbox('state');if(state==='checked'){bt.tree.plugins.checkboxes.private.updateChildrenState($node,state);bt.tree.plugins.checkboxes.private.updateParentState($node,state)}})}},nodeDataBound:function($tree,$node,id,record){var data=$tree.data(),$expander=$node.find('> [data-role="wrapper"] > [data-role="expander"]'),$checkbox=$('<input type="checkbox"/>'),$wrapper=$('<span data-role="checkbox"></span>').append($checkbox),disabled=typeof(record[data.disabledField])!=='undefined'&&record[data.disabledField].toString().toLowerCase()==='true';$checkbox=$checkbox.checkbox({uiLibrary:data.uiLibrary,iconsLibrary:data.iconsLibrary,change:function(e,state){bt.tree.plugins.checkboxes.events.checkboxChange($tree,$node,record,$checkbox.state())}});disabled&&$checkbox.prop('disabled',!0);record[data.checkedField]&&$checkbox.state('checked');$checkbox.on('click',function(e){var $node=$checkbox.closest('li'),state=$checkbox.state();if(data.cascadeCheck){bt.tree.plugins.checkboxes.private.updateChildrenState($node,state);bt.tree.plugins.checkboxes.private.updateParentState($node,state)}});$expander.after($wrapper)},updateParentState:function($node,state){var $parentNode,$parentCheckbox,$siblingCheckboxes,allChecked,allUnchecked,parentState;$parentNode=$node.parent('ul').parent('li');if($parentNode.length===1){$parentCheckbox=$node.parent('ul').parent('li').find('> [data-role="wrapper"] > [data-role="checkbox"] input[type="checkbox"]');$siblingCheckboxes=$node.siblings().find('> [data-role="wrapper"] > span[data-role="checkbox"] input[type="checkbox"]');allChecked=(state==='checked');allUnchecked=(state==='unchecked');parentState='indeterminate';$.each($siblingCheckboxes,function(){var state=$(this).checkbox('state');if(allChecked&&state!=='checked'){allChecked=!1}
274if(allUnchecked&&state!=='unchecked'){allUnchecked=!1}});if(allChecked&&!allUnchecked){parentState='checked'}
275if(!allChecked&&allUnchecked){parentState='unchecked'}
276$parentCheckbox.checkbox('state',parentState);bt.tree.plugins.checkboxes.private.updateParentState($parentNode,$parentCheckbox.checkbox('state'))}},updateChildrenState:function($node,state){var $childrenCheckboxes=$node.find('ul li [data-role="wrapper"] [data-role="checkbox"] input[type="checkbox"]');if($childrenCheckboxes.length>0){$.each($childrenCheckboxes,function(){$(this).checkbox('state',state)})}},update:function($tree,$node,state){var checkbox=$node.find('[data-role="checkbox"] input[type="checkbox"]').first();$(checkbox).checkbox('state',state);if($tree.data().cascadeCheck){bt.tree.plugins.checkboxes.private.updateChildrenState($node,state);bt.tree.plugins.checkboxes.private.updateParentState($node,state)}}},public:{getCheckedNodes:function(){var result=[],checkboxes=this.find('li [data-role="checkbox"] input[type="checkbox"]');$.each(checkboxes,function(){var checkbox=$(this);if(checkbox.checkbox('state')==='checked'){result.push(checkbox.closest('li').data('id'))}});return result},checkAll:function(){var $checkboxes=this.find('li [data-role="checkbox"] input[type="checkbox"]');$.each($checkboxes,function(){$(this).checkbox('state','checked')});return this},uncheckAll:function(){var $checkboxes=this.find('li [data-role="checkbox"] input[type="checkbox"]');$.each($checkboxes,function(){$(this).checkbox('state','unchecked')});return this},check:function($node){bt.tree.plugins.checkboxes.private.update(this,$node,'checked');return this},uncheck:function($node){bt.tree.plugins.checkboxes.private.update(this,$node,'unchecked');return this}},events:{checkboxChange:function($tree,$node,record,state){return $tree.triggerHandler('checkboxChange',[$node,record,state])}},configure:function($tree){if($tree.data('checkboxes')&&bt.checkbox){$.extend(!0,$tree,bt.tree.plugins.checkboxes.public);$tree.on('nodeDataBound',function(e,$node,id,record){bt.tree.plugins.checkboxes.private.nodeDataBound($tree,$node,id,record)});$tree.on('dataBound',function(){bt.tree.plugins.checkboxes.private.dataBound($tree)});$tree.on('enable',function(e,$node){$node.find('>[data-role="wrapper"]>[data-role="checkbox"] input[type="checkbox"]').prop('disabled',!1)});$tree.on('disable',function(e,$node){$node.find('>[data-role="wrapper"]>[data-role="checkbox"] input[type="checkbox"]').prop('disabled',!0)})}}};
276bt.tree.plugins.dragAndDrop={config:{base:{dragAndDrop:undefined,style:{dragEl:'bt-tree-drag-el bt-tree-md-drag-el',dropAsChildIcon:'bt-cursor-pointer bt-icon plus',dropAbove:'bt-tree-drop-above',dropBelow:'bt-tree-drop-below'}},bootstrap:{style:{dragEl:'bt-tree-drag-el bt-tree-bootstrap-drag-el',dropAsChildIcon:'glyphicon glyphicon-plus',dropAbove:'drop-above',dropBelow:'drop-below'}},bootstrap4:{style:{dragEl:'bt-tree-drag-el bt-tree-bootstrap-drag-el',dropAsChildIcon:'bt-cursor-pointer bt-icon plus',dropAbove:'drop-above',dropBelow:'drop-below'}}},private:{nodeDataBound:function($tree,$node){var $wrapper=$node.children('[data-role="wrapper"]'),$display=$node.find('>[data-role="wrapper"]>[data-role="display"]');if($wrapper.length&&$display.length){$display.on('mousedown',bt.tree.plugins.dragAndDrop.private.createNodeMouseDownHandler($tree));$display.on('mousemove',bt.tree.plugins.dragAndDrop.private.createNodeMouseMoveHandler($tree,$node,$display));$display.on('mouseup',bt.tree.plugins.dragAndDrop.private.createNodeMouseUpHandler($tree))}},createNodeMouseDownHandler:function($tree){return function(e){$tree.data('dragReady',!0)}},createNodeMouseUpHandler:function($tree){return function(e){$tree.data('dragReady',!1)}},createNodeMouseMoveHandler:function($tree,$node,$display){return function(e){if($tree.data('dragReady')){var data=$tree.data(),$dragEl,$wrapper,offsetTop,offsetLeft;$tree.data('dragReady',!1);$dragEl=$display.clone().wrap('<div data-role="wrapper"/>').closest('div').wrap('<li class="'+data.style.item+'" />').closest('li').wrap('<ul class="'+data.style.list+'" />').closest('ul');$('body').append($dragEl);$dragEl.attr('data-role','draggable-clone').addClass('bt-unselectable').addClass(data.style.dragEl);$dragEl.find('[data-role="wrapper"]').prepend('<span data-role="indicator" />');$dragEl.draggable({drag:bt.tree.plugins.dragAndDrop.private.createDragHandler($tree,$node,$display),stop:bt.tree.plugins.dragAndDrop.private.createDragStopHandler($tree,$node,$display)});$wrapper=$display.parent();offsetTop=$display.offset().top;offsetTop-=parseInt($wrapper.css("border-top-width"))+parseInt($wrapper.css("margin-top"))+parseInt($wrapper.css("padding-top"));offsetLeft=$display.offset().left;offsetLeft-=parseInt($wrapper.css("border-left-width"))+parseInt($wrapper.css("margin-left"))+parseInt($wrapper.css("padding-left"));offsetLeft-=$dragEl.find('[data-role="indicator"]').outerWidth(!0);$dragEl.css({position:'absolute',top:offsetTop,left:offsetLeft,width:$display.outerWidth(!0)});if($display.attr('data-droppable')==='true'){$display.droppable('destroy')}
277bt.tree.plugins.dragAndDrop.private.getTargetDisplays($tree,$node,$display).each(function(){var $dropEl=$(this);if($dropEl.attr('data-droppable')==='true'){$dropEl.droppable('destroy')}
278$dropEl.droppable()});bt.tree.plugins.dragAndDrop.private.getTargetDisplays($tree,$node).each(function(){var $dropEl=$(this);if($dropEl.attr('data-droppable')==='true'){$dropEl.droppable('destroy')}
279$dropEl.droppable()});$dragEl.trigger('mousedown')}}},getTargetDisplays:function($tree,$node,$display){return $tree.find('[data-role="display"]').not($display).not($node.find('[data-role="display"]'))},getTargetWrappers:function($tree,$node){return $tree.find('[data-role="wrapper"]').not($node.find('[data-role="wrapper"]'))},createDragHandler:function($tree,$node,$display){var $displays=bt.tree.plugins.dragAndDrop.private.getTargetDisplays($tree,$node,$display),$wrappers=bt.tree.plugins.dragAndDrop.private.getTargetWrappers($tree,$node),data=$tree.data();return function(e,offset,mousePosition){var $dragEl=$(this),success=!1;$displays.each(function(){var $targetDisplay=$(this),$indicator;if($targetDisplay.droppable('isOver',mousePosition)){$indicator=$dragEl.find('[data-role="indicator"]');data.style.dropAsChildIcon?$indicator.addClass(data.style.dropAsChildIcon):$indicator.text('+');success=!0;return!1}else{$dragEl.find('[data-role="indicator"]').removeClass(data.style.dropAsChildIcon).empty()}});$wrappers.each(function(){var $wrapper=$(this),$indicator,middle;if(!success&&$wrapper.droppable('isOver',mousePosition)){middle=$wrapper.position().top+($wrapper.outerHeight()/2);if(mousePosition.y<middle){$wrapper.addClass(data.style.dropAbove).removeClass(data.style.dropBelow)}else{$wrapper.addClass(data.style.dropBelow).removeClass(data.style.dropAbove)}}else{$wrapper.removeClass(data.style.dropAbove).removeClass(data.style.dropBelow)}})}},createDragStopHandler:function($tree,$sourceNode,$sourceDisplay){var $displays=bt.tree.plugins.dragAndDrop.private.getTargetDisplays($tree,$sourceNode,$sourceDisplay),$wrappers=bt.tree.plugins.dragAndDrop.private.getTargetWrappers($tree,$sourceNode),data=$tree.data();return function(e,mousePosition){var success=!1;$(this).draggable('destroy').remove();$displays.each(function(){var $targetDisplay=$(this),$targetNode,$sourceParentNode,$ul;if($targetDisplay.droppable('isOver',mousePosition)){$targetNode=$targetDisplay.closest('li');$sourceParentNode=$sourceNode.parent('ul').parent('li');$ul=$targetNode.children('ul');if($ul.length===0){$ul=$('<ul />').addClass(data.style.list);$targetNode.append($ul)}
280if(bt.tree.plugins.dragAndDrop.events.nodeDrop($tree,$sourceNode.data('id'),$targetNode.data('id'),$ul.children('li').length+1)!==!1){$ul.append($sourceNode);bt.tree.plugins.dragAndDrop.private.refresh($tree,$sourceNode,$targetNode,$sourceParentNode)}
281success=!0;return!1}
282$targetDisplay.droppable('destroy')});
282if(!success){$wrappers.each(function(){var $targetWrapper=$(this),$targetNode,$sourceParentNode,prepend,orderNumber,sourceNodeId;if($targetWrapper.droppable('isOver',mousePosition)){$targetNode=$targetWrapper.closest('li');$sourceParentNode=$sourceNode.parent('ul').parent('li');prepend=mousePosition.top<($targetWrapper.position().top+($targetWrapper.outerHeight()/2));sourceNodeId=$sourceNode.data('id');orderNumber=$targetNode.prevAll('li:not([data-id="'+sourceNodeId+'"])').length+(prepend?1:2);if(bt.tree.plugins.dragAndDrop.events.nodeDrop($tree,sourceNodeId,$targetNode.parent('ul').parent('li').data('id'),orderNumber)!==!1){if(prepend){$sourceNode.insertBefore($targetNode)}else{$sourceNode.insertAfter($targetNode)}
283bt.tree.plugins.dragAndDrop.private.refresh($tree,$sourceNode,$targetNode,$sourceParentNode)}
284return!1}
285$targetWrapper.droppable('destroy')})}}},refresh:function($tree,$sourceNode,$targetNode,$sourceParentNode){var data=$tree.data();bt.tree.plugins.dragAndDrop.private.refreshNode($tree,$targetNode);bt.tree.plugins.dragAndDrop.private.refreshNode($tree,$sourceParentNode);bt.tree.plugins.dragAndDrop.private.refreshNode($tree,$sourceNode);$sourceNode.find('li[data-role="node"]').each(function(){bt.tree.plugins.dragAndDrop.private.refreshNode($tree,$(this))});$targetNode.children('[data-role="wrapper"]').removeClass(data.style.dropAbove).removeClass(data.style.dropBelow)},refreshNode:function($tree,$node){var $wrapper=$node.children('[data-role="wrapper"]'),$expander=$wrapper.children('[data-role="expander"]'),$spacer=$wrapper.children('[data-role="spacer"]'),$list=$node.children('ul'),data=$tree.data(),level=$node.parentsUntil('[data-type="tree"]','ul').length;if($list.length&&$list.children().length){if($list.is(':visible')){$expander.empty().append(data.icons.collapse)}else{$expander.empty().append(data.icons.expand)}}else{$expander.empty()}
286$wrapper.removeClass(data.style.dropAbove).removeClass(data.style.dropBelow);$spacer.css('width',(data.indentation*(level-1)))}},public:{},events:{nodeDrop:function($tree,id,parentId,orderNumber){return $tree.triggerHandler('nodeDrop',[id,parentId,orderNumber])}},configure:function($tree){$.extend(!0,$tree,bt.tree.plugins.dragAndDrop.public);if($tree.data('dragAndDrop')&&bt.draggable&&bt.droppable){$tree.on('nodeDataBound',function(e,$node){bt.tree.plugins.dragAndDrop.private.nodeDataBound($tree,$node)})}}};bt.tree.plugins.lazyLoading={config:{base:{paramNames:{parentId:'parentId'},lazyLoading:!1}},private:{nodeDataBound:function($tree,$node,id,record){var data=$tree.data(),$expander=$node.find('> [data-role="wrapper"] > [data-role="expander"]');if(record.hasChildren){$expander.empty().append(data.icons.expand)}},createDoneHandler:function($tree,$node){return function(response){var i,$expander,$list,data=$tree.data();if(typeof(response)==='string'&&JSON){response=JSON.parse(response)}
287if(response&&response.length){$list=$('<ul />').addClass(data.style.list);$node.append($list);for(i=0;i<response.length;i++){$tree.addNode(response[i],$list)}
288$expander=$node.find('>[data-role="wrapper"]>[data-role="expander"]'),$expander.attr('data-mode','open');$expander.empty().append(data.icons.collapse);bt.tree.events.dataBound($tree)}}},expand:function($tree,$node,id){var ajaxOptions,data=$tree.data(),params={},$children=$node.find('>ul>li');if(!$children||!$children.length){if(typeof(data.dataSource)==='string'){params[data.paramNames.parentId]=id;ajaxOptions={url:data.dataSource,data:params};if($tree.xhr){$tree.xhr.abort()}
289$tree.xhr=$.ajax(ajaxOptions).done(bt.tree.plugins.lazyLoading.private.createDoneHandler($tree,$node)).fail($tree.createErrorHandler())}}}},public:{},events:{},configure:function($tree,fullConfig,clientConfig){if(clientConfig.lazyLoading){$tree.on('nodeDataBound',function(e,$node,id,record){bt.tree.plugins.lazyLoading.private.nodeDataBound($tree,$node,id,record)});$tree.on('expand',function(e,$node,id){bt.tree.plugins.lazyLoading.private.expand($tree,$node,id)})}}};bt.checkbox={plugins:{}};bt.checkbox.config={base:{uiLibrary:'materialdesign',iconsLibrary:'materialicons',style:{wrapperCssClass:'bt-checkbox-md',spanCssClass:undefined}},bootstrap:{style:{wrapperCssClass:'bt-checkbox-bootstrap'},iconsLibrary:'glyphicons'},bootstrap4:{style:{wrapperCssClass:'bt-checkbox-bootstrap bt-checkbox-bootstrap-4'},iconsLibrary:'materialicons'},materialicons:{style:{iconsCssClass:'bt-checkbox-material-icons',spanCssClass:'bt-icon'}},glyphicons:{style:{iconsCssClass:'bt-checkbox-glyphicons',spanCssClass:''}},fontawesome:{style:{iconsCssClass:'bt-checkbox-fontawesome',spanCssClass:'fa'}}};bt.checkbox.methods={init:function(jsConfig){var $chkb=this;bt.widget.prototype.init.call(this,jsConfig,'checkbox');$chkb.attr('data-checkbox','true');bt.checkbox.methods.initialize($chkb);return $chkb},initialize:function($chkb){var data=$chkb.data(),$wrapper,$span;if(data.style.wrapperCssClass){$wrapper=$('<label class="'+data.style.wrapperCssClass+' '+data.style.iconsCssClass+'"></label>');
289if($chkb.attr('id')){$wrapper.attr('for',$chkb.attr('id'))}
290$chkb.wrap($wrapper);$span=$('<span />');if(data.style.spanCssClass){$span.addClass(data.style.spanCssClass)}
291$chkb.parent().append($span)}},state:function($chkb,value){if(value){if('checked'===value){$chkb.prop('indeterminate',!1);$chkb.prop('checked',!0)}else if('unchecked'===value){$chkb.prop('indeterminate',!1);$chkb.prop('checked',!1)}else if('indeterminate'===value){$chkb.prop('checked',!0);$chkb.prop('indeterminate',!0)}
292bt.checkbox.events.change($chkb,value);return $chkb}else{if($chkb.prop('indeterminate')){value='indeterminate'}else if($chkb.prop('checked')){value='checked'}else{value='unchecked'}
293return value}},toggle:function($chkb){if($chkb.state()=='checked'){$chkb.state('unchecked')}else{$chkb.state('checked')}
294return $chkb},destroy:function($chkb){if($chkb.attr('data-checkbox')==='true'){$chkb.removeData();$chkb.removeAttr('data-guid');$chkb.removeAttr('data-checkbox');$chkb.off();$chkb.next('span').remove();$chkb.unwrap()}
295return $chkb}};bt.checkbox.events={change:function($chkb,state){return $chkb.triggerHandler('change',[state])}};bt.checkbox.widget=function($element,jsConfig){var self=this,methods=bt.checkbox.methods;self.toggle=function(){return methods.toggle(this)};self.state=function(value){return methods.state(this,value)};self.destroy=function(){return methods.destroy(this)};$.extend($element,self);if('true'!==$element.attr('data-checkbox')){methods.init.call($element,jsConfig)}
296return $element};bt.checkbox.widget.prototype=new bt.widget();bt.checkbox.widget.constructor=bt.checkbox.widget;(function($){$.fn.checkbox=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.checkbox.widget(this,method)}else{$widget=new bt.checkbox.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.editor={plugins:{},messages:{}};bt.editor.config={base:{height:300,width:undefined,uiLibrary:'materialdesign',iconsLibrary:'materialicons',locale:'en-us',buttons:undefined,style:{wrapper:'bt-editor bt-editor-md',buttonsGroup:'bt-button-md-group',button:'bt-button-md',buttonActive:'active'}},bootstrap:{style:{wrapper:'bt-editor bt-editor-bootstrap',buttonsGroup:'btn-group',button:'btn btn-default bt-cursor-pointer',buttonActive:'active'}},bootstrap4:{style:{wrapper:'bt-editor bt-editor-bootstrap',buttonsGroup:'btn-group',button:'btn btn-outline-secondary bt-cursor-pointer',buttonActive:'active'}},materialicons:{icons:{bold:'<i class="bt-icon bold" />',italic:'<i class="bt-icon italic" />',strikethrough:'<i class="bt-icon strikethrough" />',underline:'<i class="bt-icon underlined" />',listBulleted:'<i class="bt-icon list-bulleted" />',listNumbered:'<i class="bt-icon list-numbered" />',indentDecrease:'<i class="bt-icon indent-decrease" />',indentIncrease:'<i class="bt-icon indent-increase" />',alignLeft:'<i class="bt-icon align-left" />',alignCenter:'<i class="bt-icon align-center" />',alignRight:'<i class="bt-icon align-right" />',alignJustify:'<i class="bt-icon align-justify" />',undo:'<i class="bt-icon undo" />',redo:'<i class="bt-icon redo" />'}},fontawesome:{icons:{bold:'<i class="fa fa-bold" aria-hidden="true"></i>',italic:'<i class="fa fa-italic" aria-hidden="true"></i>',strikethrough:'<i class="fa fa-strikethrough" aria-hidden="true"></i>',underline:'<i class="fa fa-underline" aria-hidden="true"></i>',listBulleted:'<i class="fa fa-list-ul" aria-hidden="true"></i>',listNumbered:'<i class="fa fa-list-ol" aria-hidden="true"></i>',indentDecrease:'<i class="fa fa-indent" aria-hidden="true"></i>',indentIncrease:'<i class="fa fa-outdent" aria-hidden="true"></i>',alignLeft:'<i class="fa fa-align-left" aria-hidden="true"></i>',alignCenter:'<i class="fa fa-align-center" aria-hidden="true"></i>',alignRight:'<i class="fa fa-align-right" aria-hidden="true"></i>',alignJustify:'<i class="fa fa-align-justify" aria-hidden="true"></i>',undo:'<i class="fa fa-undo" aria-hidden="true"></i>',redo:'<i class="fa fa-repeat" aria-hidden="true"></i>'}}};bt.editor.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'editor');this.attr('data-editor','true');bt.editor.methods.initialize(this);return this},initialize:function($editor){var self=this,data=$editor.data(),$group,$btn,wrapper,$body,$toolbar;$editor.hide();if($editor[0].parentElement.attributes.role!=='wrapper'){wrapper=document.createElement('div');wrapper.setAttribute('role','wrapper');$editor[0].parentNode.insertBefore(wrapper,$editor[0]);wrapper.appendChild($editor[0])}
297bt.editor.methods.localization(data);$(wrapper).addClass(data.style.wrapper);if(data.width){$(wrapper).width(data.width)}
298$body=$(wrapper).children('div[role="body"]');if($body.length===0){$body=$('<div role="body"></div>');$(wrapper).append($body);if($editor[0].innerText){$body[0].innerHTML=$editor[0].innerText}}
299$body.attr('contenteditable',!0);$body.on('keydown',function(e){var key=event.keyCode||event.charCode;if(bt.editor.events.changing($editor)===!1&&key!==8&&key!==46){e.preventDefault()}});$body.on('mouseup keyup mouseout cut paste',function(e){self.updateToolbar($editor,$toolbar);bt.editor.events.changed($editor);$editor.html($body.html())});$toolbar=$(wrapper).children('div[role="toolbar"]');if($toolbar.length===0){$toolbar=$('<div role="toolbar"></div>');$body.before($toolbar);for(var group in data.buttons){$group=$('<div />').addClass(data.style.buttonsGroup);for(var btn in data.buttons[group]){$btn=$(data.buttons[group][btn]);$btn.on('click',function(){bt.editor.methods.executeCmd($editor,$body,$toolbar,$(this))});$group.append($btn)}
300$toolbar.append($group)}}
301$body.height(data.height-bt.core.height($toolbar[0],!0))},localization:function(data){var msg=bt.editor.messages[data.locale];if(typeof(data.buttons)==='undefined'){data.buttons=[['<button type="button" class="'+data.style.button+'" title="'+msg.bold+'" role="bold">'+data.icons.bold+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.italic+'" role="italic">'+data.icons.italic+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.strikethrough+'" role="strikethrough">'+data.icons.strikethrough+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.underline+'" role="underline">'+data.icons.underline+'</button>'],['<button type="button" class="'+data.style.button+'" title="'+msg.listBulleted+'" role="insertunorderedlist">'+data.icons.listBulleted+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.listNumbered+'" role="insertorderedlist">'+data.icons.listNumbered+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.indentDecrease+'" role="outdent">'+data.icons.indentDecrease+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.indentIncrease+'" role="indent">'+data.icons.indentIncrease+'</button>'],['<button type="button" class="'+data.style.button+'" title="'+msg.alignLeft+'" role="justifyleft">'+data.icons.alignLeft+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.alignCenter+'" role="justifycenter">
301'+data.icons.alignCenter+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.alignRight+'" role="justifyright">'+data.icons.alignRight+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.alignJustify+'" role="justifyfull">'+data.icons.alignJustify+'</button>'],['<button type="button" class="'+data.style.button+'" title="'+msg.undo+'" role="undo">'+data.icons.undo+'</button>','<button type="button" class="'+data.style.button+'" title="'+msg.redo+'" role="redo">'+data.icons.redo+'</button>']]}},updateToolbar:function($editor,$toolbar){var data=$editor.data();$buttons=$toolbar.find('[role]').each(function(){var $btn=$(this),cmd=$btn.attr('role');if(cmd&&document.queryCommandEnabled(cmd)&&document.queryCommandValue(cmd)==="true"){$btn.addClass(data.style.buttonActive)}else{$btn.removeClass(data.style.buttonActive)}})},executeCmd:function($editor,$body,$toolbar,$btn){$body.focus();document.execCommand($btn.attr('role'),!1);bt.editor.methods.updateToolbar($editor,$toolbar)},content:function($editor,html){var $body=$editor.parent().children('div[role="body"]');if(typeof(html)==="undefined"){return $body.html()}else{return $body.html(html)}},destroy:function($editor){var $wrapper;if($editor.attr('data-editor')==='true'){$wrapper=$editor.parent();$wrapper.children('div[role="body"]').remove();$wrapper.children('div[role="toolbar"]').remove();$editor.unwrap();$editor.removeData();$editor.removeAttr('data-guid');$editor.removeAttr('data-editor');$editor.off();$editor.show()}
302return $editor}};bt.editor.events={changing:function($editor){return $editor.triggerHandler('changing')},changed:function($editor){return $editor.triggerHandler('changed')}};bt.editor.widget=function($element,jsConfig){var self=this,methods=bt.editor.methods;self.content=function(html){return methods.content(this,html)};self.destroy=function(){return methods.destroy(this)};$.extend($element,self);if('true'!==$element.attr('data-editor')){methods.init.call($element,jsConfig)}
303return $element};bt.editor.widget.prototype=new bt.widget();bt.editor.widget.constructor=bt.editor.widget;(function($){$.fn.editor=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.editor.widget(this,method)}else{$widget=new bt.editor.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.editor.messages['en-us']={bold:'Bold',italic:'Italic',strikethrough:'Strikethrough',underline:'Underline',listBulleted:'List Bulleted',listNumbered:'List Numbered',indentDecrease:'Indent Decrease',indentIncrease:'Indent Increase',alignLeft:'Align Left',alignCenter:'Align Center',alignRight:'Align Right',alignJustify:'Align Justify',undo:'Undo',redo:'Redo'};bt.dropdown={plugins:{}};bt.dropdown.config={base:{dataSource:undefined,textField:'text',valueField:'value',selectedField:'selected',width:undefined,maxHeight:'auto',placeholder:undefined,fontSize:undefined,uiLibrary:'materialdesign',iconsLibrary:'materialicons',icons:{dropdown:'<i class="bt-icon arrow-dropdown" />',dropup:'<i class="bt-icon arrow-dropup" />'},style:{wrapper:'bt-dropdown bt-dropdown-md bt-unselectable',list:'bt-list bt-list-md bt-dropdown-list-md',active:'bt-list-md-active'}},bootstrap:{style:{wrapper:'bt-dropdown bt-dropdown-bootstrap bt-dropdown-bootstrap-3 bt-unselectable',presenter:'btn btn-default',list:'bt-list bt-list-bootstrap bt-dropdown-list-bootstrap list-group',item:'list-group-item',active:'active'},iconsLibrary:'glyphicons'},bootstrap4:{style:{wrapper:'bt-dropdown bt-dropdown-bootstrap bt-dropdown-bootstrap-4 bt-unselectable',presenter:'btn btn-outline-secondary',list:'bt-list bt-list-bootstrap bt-dropdown-list-bootstrap list-group',item:'list-group-item',active:'active'}},materialicons:{style:{expander:'bt-dropdown-expander-mi'}},fontawesome:{icons:{dropdown:'<i class="fa fa-caret-down" aria-hidden="true"></i>',dropup:'<i class="fa fa-caret-up" aria-hidden="true"></i>'},style:{expander:'bt-dropdown-expander-fa'}},glyphicons:{icons:{dropdown:'<span class="caret"></span>',dropup:'<span class="dropup"><span class="caret" ></span></span>'},style:{expander:'bt-dropdown-expander-glyphicons'}}};bt.dropdown.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'dropdown');this.attr('data-dropdown','true');bt.dropdown.methods.initialize(this);return this},getHTMLConfig:function(){var result=bt.widget.prototype.getHTMLConfig.call(this),attrs=this[0].attributes;if(attrs.placeholder){result.placeholder=attrs.placeholder.value}
304return result},initialize:function($dropdown){var $item,data=$dropdown.data(),$wrapper=$dropdown.parent('div[role="wrapper"]'),$display=$('<span role="display"></span>'),$expander=$('<span role="expander">'+data.icons.dropdown+'</span>').addClass(data.style.expander),$presenter=$('<button role="presenter" type="button"></button>').addClass(data.style.presenter),$list=$('<ul role="list" class="'+data.style.list+'"></ul>').attr('guid',$dropdown.attr('data-guid'));if($wrapper.length===0){$wrapper=$('<div role="wrapper" />').addClass(data.style.wrapper);$dropdown.wrap($wrapper)}else{$wrapper.addClass(data.style.wrapper)}
305if(data.fontSize){$presenter.css('font-size',data.fontSize)}
306$presenter.on('click',function(e){if($list.is(':visible')){bt.dropdown.methods.close($dropdown,$list)}else{bt.dropdown.methods.open($dropdown,$list)}});$presenter.on('blur',function(e){setTimeout(function(){bt.dropdown.methods.close($dropdown,$list)},500)});$presenter.append($display).append($expander);$dropdown.hide();$dropdown.after($presenter);$('body').append($list);$list.hide();$dropdown.reload()},setListPosition:function(presenter,list,data){var top,listHeight,presenterHeight,newHeight,listElRect,mainElRect=presenter.getBoundingClientRect(),scrollY=window.scrollY||window.pageYOffset||0,scrollX=window.scrollX||window.pageXOffset||0;list.style.overflow='';list.style.overflowX='';list.style.height='';bt.core.setChildPosition(presenter,list);listHeight=bt.core.height(list,!0);listElRect=list.getBoundingClientRect();presenterHeight=bt.core.height(presenter,!0);if(data.maxHeight==='auto'){if(mainElRect.top<listElRect.top){if(mainElRect.top+listHeight+presenterHeight>window.innerHeight){newHeight=window.innerHeight-mainElRect.top-presenterHeight-3}}else{if(mainElRect.top-listHeight-3>0){list.style.top=Math.round(mainElRect.top+scrollY-listHeight-3)+'px'}else{list.style.top=scrollY+'px';newHeight=mainElRect.top-3}}}else if(!isNaN(data.maxHeight)&&data.maxHeight<listHeight){newHeight=data.maxHeight}
307if(newHeight){list.style.overflow='scroll';list.style.overflowX='hidden';list.style.height=newHeight+'px'}},useHtmlDataSource:function($dropdown,data){var dataSource=[],i,record,$options=$dropdown.find('option');for(i=0;i<$options.length;i++){record={};record[data.valueField]=$options[i].value;record[data.textField]=$options[i].innerHTML;record[data.selectedField]=$dropdown[0].value===$options[i].value;
307dataSource.push(record)}
308data.dataSource=dataSource},filter:function($dropdown){var i,record,data=$dropdown.data();if(!data.dataSource)
309{data.dataSource=[]}else if(typeof data.dataSource[0]==='string'){for(i=0;i<data.dataSource.length;i++){record={};record[data.valueField]=data.dataSource[i];record[data.textField]=data.dataSource[i];data.dataSource[i]=record}}
310return data.dataSource},render:function($dropdown,response){var selections=[],data=$dropdown.data(),$parent=$dropdown.parent(),$list=$('body').children('[role="list"][guid="'+$dropdown.attr('data-guid')+'"]'),$presenter=$parent.children('[role="presenter"]'),$expander=$presenter.children('[role="expander"]'),$display=$presenter.children('[role="display"]');$dropdown.data('records',response);$dropdown.empty();$list.empty();if(response&&response.length){$.each(response,function(){var value=this[data.valueField],text=this[data.textField],selected=this[data.selectedField]&&this[data.selectedField].toString().toLowerCase()==='true',$item,i;$item=$('<li value="'+value+'"><div data-role="wrapper"><span data-role="display">'+text+'</span></div></li>');$item.addClass(data.style.item);$item.on('click',function(e){bt.dropdown.methods.select($dropdown,value)});$list.append($item);$dropdown.append('<option value="'+value+'">'+text+'</option>');if(selected){selections.push(value)}});if(selections.length===0){$dropdown.prepend('<option value=""></option>');if(data.placeholder){$display[0].innerHTML='<span class="placeholder">'+data.placeholder+'</span>'}}else{for(i=0;i<selections.length;i++){bt.dropdown.methods.select($dropdown,selections[i])}}}
311if(data.width){$parent.css('width',data.width);$presenter.css('width',data.width)}
312if(data.fontSize){$list.children('li').css('font-size',data.fontSize)}
313bt.dropdown.events.dataBound($dropdown);return $dropdown},open:function($dropdown,$list){var data=$dropdown.data(),$expander=$dropdown.parent().find('[role="expander"]'),$presenter=$dropdown.parent().find('[role="presenter"]');$list.css('width',bt.core.width($presenter[0]));$list.show();bt.dropdown.methods.setListPosition($presenter[0],$list[0],data);$expander.html(data.icons.dropup)},close:function($dropdown,$list){var data=$dropdown.data(),$expander=$dropdown.parent().find('[role="expander"]');$expander.html(data.icons.dropdown);$list.hide()},select:function($dropdown,value){var data=$dropdown.data(),$list=$('body').children('[role="list"][guid="'+$dropdown.attr('data-guid')+'"]'),$item=$list.children('li[value="'+value+'"]'),record=bt.dropdown.methods.getRecordByValue($dropdown,value);if(record){$list.children('li').removeClass(data.style.active);$item.addClass(data.style.active);$dropdown[0].value=value;$dropdown.next('[role="presenter"]').find('[role="display"]').html(record[data.textField]);bt.dropdown.events.change($dropdown)}
314bt.dropdown.methods.close($dropdown,$list);return $dropdown},getRecordByValue:function($dropdown,value){var data=$dropdown.data(),i,result=undefined;for(i=0;i<data.records.length;i++){if(data.records[i][data.valueField]===value){result=data.records[i];break}}
315return result},value:function($dropdown,value){if(typeof(value)==="undefined"){return $dropdown.val()}else{bt.dropdown.methods.select($dropdown,value);return $dropdown}},destroy:function($dropdown){var data=$dropdown.data(),$parent=$dropdown.parent('div[role="wrapper"]');if(data){$dropdown.xhr&&$dropdown.xhr.abort();$dropdown.off();$dropdown.removeData();$dropdown.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-dropdown');$dropdown.removeClass();if($parent.length>0){$parent.children('[role="presenter"]').remove();$parent.children('[role="list"]').remove();$dropdown.unwrap()}
316$dropdown.show()}
317return $tree}};bt.dropdown.events={change:function($dropdown){return $dropdown.triggerHandler('change')},dataBound:function($dropdown){return $dropdown.triggerHandler('dataBound')}};bt.dropdown.widget=function($element,jsConfig){var self=this,methods=bt.dropdown.methods;self.value=function(value){return methods.value(this,value)};self.enable=function(){return methods.enable(this)};self.disable=function(){return methods.disable(this)};self.destroy=function(){return methods.destroy(this)};$.extend($element,self);if('true'!==$element.attr('data-dropdown')){methods.init.call($element,jsConfig)}
318return $element};bt.dropdown.widget.prototype=new bt.widget();bt.dropdown.widget.constructor=bt.dropdown.widget;bt.dropdown.widget.prototype.getHTMLConfig=bt.dropdown.methods.getHTMLConfig;(function($){$.fn.dropdown=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.dropdown.widget(this,method)}else{$widget=new bt.dropdown.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1
318))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.datepicker={plugins:{}};bt.datepicker.config={base:{showOtherMonths:!1,selectOtherMonths:!0,width:undefined,minDate:undefined,maxDate:undefined,format:'mm/dd/yyyy',uiLibrary:'materialdesign',iconsLibrary:'materialicons',value:undefined,weekStartDay:0,disableDates:undefined,disableDaysOfWeek:undefined,calendarWeeks:!1,keyboardNavigation:!0,locale:'en-us',icons:{rightIcon:'<i class="bt-icon">event</i>',previousMonth:'<i class="bt-icon chevron-left"></i>',nextMonth:'<i class="bt-icon chevron-right"></i>'},fontSize:undefined,size:'default',modal:!1,header:!1,footer:!1,style:{modal:'bt-modal',wrapper:'bt-datepicker bt-datepicker-md bt-unselectable',input:'bt-textbox-md',calendar:'bt-picker bt-picker-md datepicker bt-unselectable',footer:'',button:'bt-button-md'}},bootstrap:{style:{wrapper:'bt-datepicker bt-datepicker-bootstrap bt-unselectable input-group',input:'form-control',calendar:'bt-picker bt-picker-bootstrap datepicker bt-unselectable',footer:'modal-footer',button:'btn btn-default'},iconsLibrary:'glyphicons',showOtherMonths:!0},bootstrap4:{style:{wrapper:'bt-datepicker bt-datepicker-bootstrap bt-unselectable input-group',input:'form-control',calendar:'bt-picker bt-picker-bootstrap datepicker bt-unselectable',footer:'modal-footer',button:'btn btn-default'},showOtherMonths:!0},fontawesome:{icons:{rightIcon:'<i class="fa fa-calendar" aria-hidden="true"></i>',previousMonth:'<i class="fa fa-chevron-left" aria-hidden="true"></i>',nextMonth:'<i class="fa fa-chevron-right" aria-hidden="true"></i>'}},glyphicons:{icons:{rightIcon:'<span class="glyphicon glyphicon-calendar"></span>',previousMonth:'<span class="glyphicon glyphicon-chevron-left"></span>',nextMonth:'<span class="glyphicon glyphicon-chevron-right"></span>'}}};bt.datepicker.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'datepicker');this.attr('data-datepicker','true');bt.datepicker.methods.initialize(this,this.data());return this},initialize:function($datepicker,data){var $calendar,$rightIcon,$wrapper=$datepicker.parent('div[role="wrapper"]');if(data.uiLibrary==='bootstrap'){$rightIcon=$('<span class="input-group-addon">'+data.icons.rightIcon+'</span>')}else if(data.uiLibrary==='bootstrap4'){$rightIcon=$('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">'+data.icons.rightIcon+'</button></span>')}else{$rightIcon=$(data.icons.rightIcon)}
319$rightIcon.attr('role','right-icon');if($wrapper.length===0){$wrapper=$('<div role="wrapper" />').addClass(data.style.wrapper);$datepicker.wrap($wrapper)}else{$wrapper.addClass(data.style.wrapper)}
320$wrapper=$datepicker.parent('div[role="wrapper"]');data.width&&$wrapper.css('width',data.width);$datepicker.val(data.value).addClass(data.style.input).attr('role','input');data.fontSize&&$datepicker.css('font-size',data.fontSize);if(data.uiLibrary==='bootstrap'||data.uiLibrary==='bootstrap4'){if(data.size==='small'){$wrapper.addClass('input-group-sm');$datepicker.addClass('form-control-sm')}else if(data.size==='large'){$wrapper.addClass('input-group-lg');$datepicker.addClass('form-control-lg')}}else{if(data.size==='small'){$wrapper.addClass('small')}else if(data.size==='large'){$wrapper.addClass('large')}}
321$rightIcon.on('click',function(e){var $calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');if($calendar.is(':visible')){bt.datepicker.methods.close($datepicker)}else{bt.datepicker.methods.open($datepicker,data)}});$wrapper.append($rightIcon);$calendar=bt.datepicker.methods.createCalendar($datepicker,data);if(data.footer!==!0){$datepicker.on('blur',function(){$datepicker.timeout=setTimeout(function(){bt.datepicker.methods.close($datepicker)},500)});$calendar.mousedown(function(){clearTimeout($datepicker.timeout);$datepicker.focus();return!1});$calendar.on('click',function(){clearTimeout($datepicker.timeout);$datepicker.focus()})}
322if(data.keyboardNavigation){$(document).on('keydown',bt.datepicker.methods.createKeyDownHandler($datepicker,$calendar,data))}},createCalendar:function($datepicker,data){var date,$body,$footer,$btnCancel,$btnOk,$calendar=$('<div role="calendar" type="month"/>').addClass(data.style.calendar).attr('guid',$datepicker.attr('data-guid'));data.fontSize&&$calendar.css('font-size',data.fontSize);date=bt.core.parseDate(data.value,data.format,data.locale);if(!date||isNaN(date.getTime())){date=new Date()}else{$datepicker.attr('day',date.getFullYear()+'-'+date.getMonth()+'-'+date.getDate())}
323$calendar.attr('month',date.getMonth());$calendar.attr('year',date.getFullYear());bt.datepicker.methods.renderHeader($datepicker,$calendar,data,date);$body=$('<div role="body" />');$calendar.append($body);if(data.footer){$footer=$('<div role="footer" class="'+data.style.footer+'" />');$btnCancel=$('<button class="'+data.style.button+'">'+bt.core.messages[data.locale].cancel+'</button>');$btnCancel.on('click',function(){$datepicker.close()});$footer.append($btnCancel);$btnOk=$('<button class="'+data.style.button+'">'+bt.core.messages[data.locale].ok+'</button>');$btnOk.on('click',function(){var date,dayArr,dayStr=$calendar.attr('selectedDay');if(dayStr){dayArr=dayStr.split('-');date=new Date(dayArr[0],dayArr[1],dayArr[2],$calendar.attr('hour')||0,$calendar.attr('minute')||0);bt.datepicker.methods.change($datepicker,$calendar,data,date)}else{$datepicker.close()}});$footer.append($btnOk);$calendar.append($footer)}
324$calendar.hide();$('body').append($calendar);if(data.modal){$calendar.wrapAll('<div role="modal" class="'+data.style.modal+'"/>');bt.core.center($calendar)}
325return $calendar},renderHeader:function($datepicker,$calendar,data,date){var $header,$date,$year;if(data.header){$header=$('<div role="header" />');$year=$('<div role="year" />').on('click',function(){bt.datepicker.methods.renderDecade($datepicker,$calendar,data);$year.addClass('selected');$date.removeClass('selected')});$year.html(bt.core.formatDate(date,'yyyy',data.locale));$header.append($year);$date=$('<div role="date" class="selected" />').on('click',function(){bt.datepicker.methods.renderMonth($datepicker,$calendar,data);$date.addClass('selected');$year.removeClass('selected')});$date.html(bt.core.formatDate(date,'ddd, mmm dd',data.locale));$header.append($date);$calendar.append($header)}},updateHeader:function($calendar,data,date){$calendar.find('[role="header"] [role="year"]').removeClass('selected').html(bt.core.formatDate(date,'yyyy',data.locale));$calendar.find('[role="header"] [role="date"]').addClass('selected').html(bt.core.formatDate(date,'ddd, mmm dd',data.locale));$calendar.find('[role="header"] [role="hour"]').removeClass('selected').html(bt.core.formatDate(date,'HH',data.locale));$calendar.find('[role="header"] [role="minute"]').removeClass('selected').html(bt.core.formatDate(date,'MM',data.locale))},createNavigation:function($datepicker,$body,$table,data){var $row,$navigator,$thead=$('<thead/>');$navigator=$('<div role="navigator" />');$navigator.append($('<div>'+data.icons.previousMonth+'</div>').on('click',bt.datepicker.methods.prev($datepicker,data)));$navigator.append($('<div role="period"></div>
325').on('click',bt.datepicker.methods.changePeriod($datepicker,data)));$navigator.append($('<div>'+data.icons.nextMonth+'</div>').on('click',bt.datepicker.methods.next($datepicker,data)));$body.append($navigator);$row=$('<tr role="week-days" />');if(data.calendarWeeks){$row.append('<th><div>&nbsp;</div></th>')}
326for(i=data.weekStartDay;i<bt.core.messages[data.locale].weekDaysMin.length;i++){$row.append('<th><div>'+bt.core.messages[data.locale].weekDaysMin[i]+'</div></th>')}
327for(i=0;i<data.weekStartDay;i++){$row.append('<th><div>'+bt.core.messages[data.locale].weekDaysMin[i]+'</div></th>')}
328$thead.append($row);$table.append($thead)},renderMonth:function($datepicker,$calendar,data){var weekDay,selectedDay,day,month,year,daysInMonth,total,firstDayPosition,i,now,prevMonth,nextMonth,$cell,$day,date,$body=$calendar.children('[role="body"]'),$table=$('<table/>'),$tbody=$('<tbody/>');$body.off().empty();bt.datepicker.methods.createNavigation($datepicker,$body,$table,data);month=parseInt($calendar.attr('month'),10);year=parseInt($calendar.attr('year'),10);$calendar.attr('type','month');$calendar.find('div[role="period"]').text(bt.core.messages[data.locale].monthNames[month]+' '+year);daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);if(year%4==0&&year!=1900){daysInMonth[1]=29}
329total=daysInMonth[month];firstDayPosition=(new Date(year,month,1).getDay()+7-data.weekStartDay)%7;weekDay=0;$row=$('<tr />');prevMonth=bt.datepicker.methods.getPrevMonth(month,year);for(i=1;i<=firstDayPosition;i++){day=(daysInMonth[prevMonth.month]-firstDayPosition+i);date=new Date(prevMonth.year,prevMonth.month,day);if(data.calendarWeeks&&i===1){$row.append('<td class="calendar-week"><div>'+bt.datepicker.methods.getWeekNumber(date)+'</div></td>')}
330$cell=$('<td class="other-month" />');if(data.showOtherMonths){$day=$('<div>'+day+'</div>');$cell.append($day);if(data.selectOtherMonths&&bt.datepicker.methods.isSelectable(data,date)){$cell.addClass('bt-cursor-pointer').attr('day',day).attr('month',prevMonth.month).attr('year',prevMonth.year);$day.on('click',bt.datepicker.methods.dayClickHandler($datepicker,$calendar,data,date));$day.on('mousedown',function(e){e.stopPropagation()})}else{$cell.addClass('disabled')}}
331$row.append($cell);weekDay++}
332if(i>1){$tbody.append($row)}
333now=new Date();for(i=1;i<=total;i++){date=new Date(year,month,i);if(weekDay==0){$row=$('<tr>');if(data.calendarWeeks){$row.append('<td class="calendar-week"><div>'+bt.datepicker.methods.getWeekNumber(date)+'</div></td>')}}
334$cell=$('<td day="'+i+'" month="'+month+'" year="'+year+'" />');if(year===now.getFullYear()&&month===now.getMonth()&&i===now.getDate()){$cell.addClass('today')}else{$cell.addClass('current-month')}
335$day=$('<div>'+i+'</div>');if(bt.datepicker.methods.isSelectable(data,date)){$cell.addClass('bt-cursor-pointer');$day.on('click',bt.datepicker.methods.dayClickHandler($datepicker,$calendar,data,date));$day.on('mousedown',function(e){e.stopPropagation()})}else{$cell.addClass('disabled')}
336$cell.append($day);$row.append($cell);weekDay++;if(weekDay==7){$tbody.append($row);weekDay=0}}
337nextMonth=bt.datepicker.methods.getNextMonth(month,year);for(i=1;weekDay!=0;i++){date=new Date(nextMonth.year,nextMonth.month,i);$cell=$('<td class="other-month" />');if(data.showOtherMonths){$day=$('<div>'+i+'</div>');if(data.selectOtherMonths&&bt.datepicker.methods.isSelectable(data,date)){$cell.addClass('bt-cursor-pointer').attr('day',i).attr('month',nextMonth.month).attr('year',nextMonth.year);$day.on('click',bt.datepicker.methods.dayClickHandler($datepicker,$calendar,data,date));$day.on('mousedown',function(e){e.stopPropagation()})}else{$cell.addClass('disabled')}
338$cell.append($day)}
339$row.append($cell);weekDay++;if(weekDay==7){$tbody.append($row);weekDay=0}}
340$table.append($tbody);$body.append($table);if($calendar.attr('selectedDay')){selectedDay=$calendar.attr('selectedDay').split('-');date=new Date(selectedDay[0],selectedDay[1],selectedDay[2],$calendar.attr('hour')||0,$calendar.attr('minute')||0);$calendar.find('tbody td[day="'+selectedDay[2]+'"][month="'+selectedDay[1]+'"]').addClass('selected');bt.datepicker.methods.updateHeader($calendar,data,date)}},renderYear:function($datepicker,$calendar,data){var year,i,m,$month,$table=$calendar.find('>[role="body"]>
340table'),$tbody=$table.children('tbody');$table.children('thead').hide();year=parseInt($calendar.attr('year'),10);$calendar.attr('type','year');$calendar.find('div[role="period"]').text(year);$tbody.empty();for(i=0;i<3;i++){$row=$('<tr />');for(m=(i*4);m<=(i*4)+3;m++){$month=$('<div>'+bt.core.messages[data.locale].monthShortNames[m]+'</div>');$month.on('click',bt.datepicker.methods.selectMonth($datepicker,$calendar,data,m));$cell=$('<td></td>').append($month);$row.append($cell)}
341$tbody.append($row)}},renderDecade:function($datepicker,$calendar,data){var year,decade,i,y,$year,$table=$calendar.find('>[role="body"]>table'),$tbody=$table.children('tbody');$table.children('thead').hide();year=parseInt($calendar.attr('year'),10);decade=year-(year%10);$calendar.attr('type','decade');$calendar.find('div[role="period"]').text(decade+' - '+(decade+9));$tbody.empty();for(i=decade-1;i<=decade+10;i+=4){$row=$('<tr />');for(y=i;y<=i+3;y++){$year=$('<div>'+y+'</div>');$year.on('click',bt.datepicker.methods.selectYear($datepicker,$calendar,data,y));$cell=$('<td></td>').append($year);$row.append($cell)}
342$tbody.append($row)}},renderCentury:function($datepicker,$calendar,data){var year,century,i,d,$decade,$table=$calendar.find('>[role="body"]>table'),$tbody=$table.children('tbody');$table.children('thead').hide();year=parseInt($calendar.attr('year'),10);century=year-(year%100);$calendar.attr('type','century');$calendar.find('div[role="period"]').text(century+' - '+(century+99));$tbody.empty();for(i=(century-10);i<century+100;i+=40){$row=$('<tr />');for(d=i;d<=i+30;d+=10){$decade=$('<div>'+d+'</div>');$decade.on('click',bt.datepicker.methods.selectDecade($datepicker,$calendar,data,d));$cell=$('<td></td>').append($decade);$row.append($cell)}
343$tbody.append($row)}},getWeekNumber:function(date){var d=new Date(date.valueOf());d.setDate(d.getDate()+6);d=new Date(Date.UTC(d.getFullYear(),d.getMonth(),d.getDate()));d.setUTCDate(d.getUTCDate()+4-(d.getUTCDay()||7));var yearStart=new Date(Date.UTC(d.getUTCFullYear(),0,1));var weekNo=Math.ceil((((d-yearStart)/86400000)+1)/7);return weekNo},getMinDate:function(data){var minDate;if(data.minDate){if(typeof(data.minDate)==='string'){minDate=bt.core.parseDate(data.minDate,data.format,data.locale)}else if(typeof(data.minDate)==='function'){minDate=data.minDate();if(typeof minDate==='string'){minDate=bt.core.parseDate(minDate,data.format,data.locale)}}else if(typeof data.minDate.getMonth==='function'){minDate=data.minDate}}
344return minDate},getMaxDate:function(data){var maxDate;if(data.maxDate){if(typeof data.maxDate==='string'){maxDate=bt.core.parseDate(data.maxDate,data.format,data.locale)}else if(typeof data.maxDate==='function'){maxDate=data.maxDate();if(typeof maxDate==='string'){maxDate=bt.core.parseDate(maxDate,data.format,data.locale)}}else if(typeof data.maxDate.getMonth==='function'){maxDate=data.maxDate}}
345return maxDate},isSelectable:function(data,date){var result=!0,minDate=bt.datepicker.methods.getMinDate(data),maxDate=bt.datepicker.methods.getMaxDate(data),i;if(minDate&&date<minDate){result=!1}else if(maxDate&&date>maxDate){result=!1}
346if(result){if(data.disableDates){if($.isArray(data.disableDates)){for(i=0;i<data.disableDates.length;i++){if(data.disableDates[i]instanceof Date&&data.disableDates[i].getTime()===date.getTime()){result=!1}else if(typeof data.disableDates[i]==='string'&&bt.core.parseDate(data.disableDates[i],data.format,data.locale).getTime()===date.getTime()){result=!1}}}else if(data.disableDates instanceof Function){result=data.disableDates(date)}}
347if($.isArray(data.disableDaysOfWeek)&&data.disableDaysOfWeek.indexOf(date.getDay())>-1){result=!1}}
348return result},getPrevMonth:function(month,year){date=new Date(year,month,1);date.setMonth(date.getMonth()-1);return{month:date.getMonth(),year:date.getFullYear()}},getNextMonth:function(month,year){date=new Date(year,month,1);date.setMonth(date.getMonth()+1);return{month:date.getMonth(),year:date.getFullYear()}},prev:function($datepicker,data){return function(){var date,month,year,decade,century,$calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');switch($calendar.attr('type')){case 'month':month=parseInt($calendar.attr('month'),10);year=parseInt($calendar.attr('year'),10);date=bt.datepicker.methods.getPrevMonth(month,year);$calendar.attr('month',date.month);$calendar.attr('year',date.year);bt.datepicker.methods.renderMonth($datepicker,$calendar,data);break;
348case 'year':year=parseInt($calendar.attr('year'),10);$calendar.attr('year',year-1);bt.datepicker.methods.renderYear($datepicker,$calendar,data);break;case 'decade':year=parseInt($calendar.attr('year'),10);decade=year-(year%10);$calendar.attr('year',decade-10);bt.datepicker.methods.renderDecade($datepicker,$calendar,data);break;case 'century':year=parseInt($calendar.attr('year'),10);century=year-(year%100);$calendar.attr('year',century-100);bt.datepicker.methods.renderCentury($datepicker,$calendar,data);break}}},next:function($datepicker,data){return function(){var date,month,year,decade,century,$calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');switch($calendar.attr('type')){case 'month':month=parseInt($calendar.attr('month'),10);year=parseInt($calendar.attr('year'),10);date=bt.datepicker.methods.getNextMonth(month,year);$calendar.attr('month',date.month);$calendar.attr('year',date.year);bt.datepicker.methods.renderMonth($datepicker,$calendar,data);break;case 'year':year=parseInt($calendar.attr('year'),10);$calendar.attr('year',year+1);bt.datepicker.methods.renderYear($datepicker,$calendar,data);break;case 'decade':year=parseInt($calendar.attr('year'),10);decade=year-(year%10);$calendar.attr('year',decade+10);bt.datepicker.methods.renderDecade($datepicker,$calendar,data);break;case 'century':year=parseInt($calendar.attr('year'),10);century=year-(year%100);$calendar.attr('year',century+100);bt.datepicker.methods.renderCentury($datepicker,$calendar,data);break}}},changePeriod:function($datepicker,data){return function(e){var $calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');switch($calendar.attr('type')){case 'month':bt.datepicker.methods.renderYear($datepicker,$calendar,data);break;case 'year':bt.datepicker.methods.renderDecade($datepicker,$calendar,data);break;case 'decade':bt.datepicker.methods.renderCentury($datepicker,$calendar,data);break}}},dayClickHandler:function($datepicker,$calendar,data,date){return function(e){e&&e.stopPropagation();bt.datepicker.methods.selectDay($datepicker,$calendar,data,date);if(data.footer!==!0&&data.autoClose!==!1){bt.datepicker.methods.change($datepicker,$calendar,data,date)}
349return $datepicker}},change:function($datepicker,$calendar,data,date){var day=date.getDate(),month=date.getMonth(),year=date.getFullYear(),value=bt.core.formatDate(date,data.format,data.locale);$calendar.attr('month',month);$calendar.attr('year',year);$datepicker.val(value);bt.datepicker.events.change($datepicker);if(window.getComputedStyle($calendar[0]).display!=='none'){bt.datepicker.methods.close($datepicker)}},selectDay:function($datepicker,$calendar,data,date){var day=date.getDate(),month=date.getMonth(),year=date.getFullYear();$calendar.attr('selectedDay',year+'-'+month+'-'+day);$calendar.find('tbody td').removeClass('selected');$calendar.find('tbody td[day="'+day+'"][month="'+month+'"]').addClass('selected');bt.datepicker.methods.updateHeader($calendar,data,date);bt.datepicker.events.select($datepicker,'day')},selectMonth:function($datepicker,$calendar,data,month){return function(e){$calendar.attr('month',month);bt.datepicker.methods.renderMonth($datepicker,$calendar,data);bt.datepicker.events.select($datepicker,'month')}},selectYear:function($datepicker,$calendar,data,year){return function(e){$calendar.attr('year',year);bt.datepicker.methods.renderYear($datepicker,$calendar,data);bt.datepicker.events.select($datepicker,'year')}},selectDecade:function($datepicker,$calendar,data,year){return function(e){$calendar.attr('year',year);bt.datepicker.methods.renderDecade($datepicker,$calendar,data);bt.datepicker.events.select($datepicker,'decade')}},open:function($datepicker,data){var $calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');if($datepicker.val()){$datepicker.value($datepicker.val())}
350switch($calendar.attr('type')){case 'month':bt.datepicker.methods.renderMonth($datepicker,$calendar,data);break;case 'year':bt.datepicker.methods.renderYear($datepicker,$calendar,data);break;case 'decade':bt.datepicker.methods.renderDecade($datepicker,$calendar,data);break;case 'century':bt.datepicker.methods.renderCentury($datepicker,$calendar,data);break}
351$calendar.show();$calendar.closest('div[role="modal"]').show();if(data.modal){bt.core.center($calendar)}else{bt.core.setChildPosition($datepicker[0],$calendar[0]);$datepicker.focus()}
352clearTimeout($datepicker.timeout);bt.datepicker.events.open($datepicker)},close:function($datepicker){var $calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');$calendar.hide();$calendar.closest('div[role="modal"]').hide();bt.datepicker.events.close($datepicker)},createKeyDownHandler:function($datepicker,$calendar,data){return function(e){var month,year,day,index,$new,$active,e=e||window.event;if(window.getComputedStyle($calendar[0]).display!=='none')
353{$active=bt.datepicker.methods.getActiveCell($calendar);if(e.keyCode=='38'){index=$active.index();$new=$active.closest('tr').prev('tr').find('td:eq('+index+')');if(!$new.is('[day]')){bt.datepicker.methods.prev($datepicker,data)();$new=$calendar.find('tbody tr').last().find('td:eq('+index+')');if($new.is(':empty')){$new=$calendar.find('tbody tr').last().prev().find('td:eq('+index+')')}}
354if($new.is('[day]')){$new.addClass('focused');$active.removeClass('focused')}}else if(e.keyCode=='40'){index=$active.index();$new=$active.closest('tr').next('tr').find('td:eq('+index+')');if(!$new.is('[day]')){bt.datepicker.methods.next($datepicker,data)();$new=$calendar.find('tbody tr').first().find('td:eq('+index+')');if(!$new.is('[day]')){$new=$calendar.find('tbody tr:eq(1)').find('td:eq('+index+')')}}
355if($new.is('[day]')){$new.addClass('focused');$active.removeClass('focused')}}else if(e.keyCode=='37'){$new=$active.prev('td[day]:not(.disabled)');if($new.length===0){$new=$active.closest('tr').prev('tr').find('td[day]').last()}
356if($new.length===0){bt.datepicker.methods.prev($datepicker,data)();$new=$calendar.find('tbody tr').last().find('td[day]').last()}
357if($new.length>0){$new.addClass('focused');$active.removeClass('focused')}}
357else if(e.keyCode=='39'){$new=$active.next('[day]:not(.disabled)');if($new.length===0){$new=$active.closest('tr').next('tr').find('td[day]').first()}
358if($new.length===0){bt.datepicker.methods.next($datepicker,data)();$new=$calendar.find('tbody tr').first().find('td[day]').first()}
359if($new.length>0){$new.addClass('focused');$active.removeClass('focused')}}else if(e.keyCode=='13'){day=parseInt($active.attr('day'),10);month=parseInt($active.attr('month'),10);year=parseInt($active.attr('year'),10);bt.datepicker.methods.dayClickHandler($datepicker,$calendar,data,new Date(year,month,day))()}else if(e.keyCode=='27'){$datepicker.close()}}}},getActiveCell:function($calendar){var $cell=$calendar.find('td[day].focused');if($cell.length===0){$cell=$calendar.find('td[day].selected');if($cell.length===0){$cell=$calendar.find('td[day].today');if($cell.length===0){$cell=$calendar.find('td[day]:not(.disabled)').first()}}}
360return $cell},value:function($datepicker,value){var $calendar,date,data=$datepicker.data();if(typeof(value)==="undefined"){return $datepicker.val()}else{date=bt.core.parseDate(value,data.format,data.locale);if(date){$calendar=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');bt.datepicker.methods.dayClickHandler($datepicker,$calendar,data,date)()}else{$datepicker.val('')}
361return $datepicker}},destroy:function($datepicker){var data=$datepicker.data(),$parent=$datepicker.parent(),$picker=$('body').find('[role="calendar"][guid="'+$datepicker.attr('data-guid')+'"]');if(data){$datepicker.off();if($picker.parent('[role="modal"]').length>0){$picker.unwrap()}
362$picker.remove();$datepicker.removeData();$datepicker.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-datepicker');$datepicker.removeClass();$parent.children('[role="right-icon"]').remove();$datepicker.unwrap()}
363return $datepicker}};bt.datepicker.events={change:function($datepicker){return $datepicker.triggerHandler('change')},select:function($datepicker,type){return $datepicker.triggerHandler('select',[type])},open:function($datepicker){return $datepicker.triggerHandler('open')},close:function($datepicker){return $datepicker.triggerHandler('close')}};bt.datepicker.widget=function($element,jsConfig){var self=this,methods=bt.datepicker.methods;self.value=function(value){return methods.value(this,value)};self.destroy=function(){return methods.destroy(this)};self.open=function(){bt.datepicker.methods.open(this,this.data())};self.close=function(){bt.datepicker.methods.close(this)};$.extend($element,self);if('true'!==$element.attr('data-datepicker')){methods.init.call($element,jsConfig)}
364return $element};bt.datepicker.widget.prototype=new bt.widget();bt.datepicker.widget.constructor=bt.datepicker.widget;(function($){$.fn.datepicker=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.datepicker.widget(this,method)}else{$widget=new bt.datepicker.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.timepicker={plugins:{}};bt.timepicker.config={base:{width:undefined,modal:!0,header:!0,footer:!0,format:'HH:MM',uiLibrary:'materialdesign',value:undefined,mode:'ampm',locale:'en-us',size:'default',icons:{rightIcon:'<i class="bt-icon clock" />'},style:{modal:'bt-modal',wrapper:'bt-timepicker bt-timepicker-md bt-unselectable',input:'bt-textbox-md',clock:'bt-picker bt-picker-md timepicker',footer:'',button:'bt-button-md'}},bootstrap:{style:{wrapper:'bt-timepicker bt-timepicker-bootstrap bt-unselectable input-group',input:'form-control',clock:'bt-picker bt-picker-bootstrap timepicker',footer:'modal-footer',button:'btn btn-default'},iconsLibrary:'glyphicons'},bootstrap4:{style:{wrapper:'bt-timepicker bt-timepicker-bootstrap bt-unselectable input-group',input:'form-control border',clock:'bt-picker bt-picker-bootstrap timepicker',footer:'modal-footer',button:'btn btn-default'}}};bt.timepicker.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'timepicker');this.attr('data-timepicker','true');bt.timepicker.methods.initialize(this,this.data());bt.timepicker.methods.createClock(this);return this},initialize:function($timepicker,data){var $calendar,$rightIcon,$wrapper=$timepicker.parent('div[role="wrapper"]');if(data.uiLibrary==='bootstrap'){$rightIcon=$('<span class="input-group-addon">'+data.icons.rightIcon+'</span>')}else if(data.uiLibrary==='bootstrap4'){$rightIcon=$('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0 border" type="button">'+data.icons.rightIcon+'</button></span>')}else{$rightIcon=$(data.icons.rightIcon)}
365$rightIcon.attr('role','right-icon');if($wrapper.length===0){$wrapper=$('<div role="wrapper" />').addClass(data.style.wrapper);$timepicker.wrap($wrapper)}else{$wrapper.addClass(data.style.wrapper)}
366$wrapper=$timepicker.parent('div[role="wrapper"]');data.width&&$wrapper.css('width',data.width);$timepicker.val(data.value).addClass(data.style.input).attr('role','input');if(data.uiLibrary==='bootstrap'||data.uiLibrary==='bootstrap4'){if(data.size==='small'){$wrapper.addClass('input-group-sm');$timepicker.addClass('form-control-sm')}else if(data.size==='large'){$wrapper.addClass('input-group-lg');$timepicker.addClass('form-control-lg')}}else{if(data.size==='small'){$wrapper.addClass('small')}else if(data.size==='large'){$wrapper.addClass('large')}}
367$rightIcon.on('click',function(e){var $clock=$('body').find('[role="clock"][guid="'+$timepicker.attr('data-guid')+'"]');if($clock.is(':visible')){bt.timepicker.methods.close($timepicker)}else{bt.timepicker.methods.open($timepicker)}});if(data.footer===!1){$timepicker.on('blur',function(){$timepicker.timeout=setTimeout(function(){if(!$timepicker.mouseMove){bt.timepicker.methods.close($timepicker)}},500)})}
368$wrapper.append($rightIcon)},initMouse:function($body,$input,$picker,data){$body.off();$body.on('mousedown',bt.timepicker.methods.mouseDownHandler($input,$picker));$body.on('mousemove',bt.timepicker.methods.mouseMoveHandler($input,$picker,data));$body.on('mouseup',bt.timepicker.methods.mouseUpHandler($input,$picker,data))},createClock:function($timepicker){var date,data=$timepicker.data(),$clock=$('<div role="clock" />').addClass(data.style.clock).attr('guid',$timepicker.attr('data-guid')),$hour=$('<div role="hour" />'),$minute=$('<div role="minute" />'),$header=$('<div role="header" />'),$mode=$('<div role="mode" />'),$body=$('<div role="body" />'),$btnOk=$('<button class="'+data.style.button+'">'+bt.core.messages[data.locale].ok+'</button>'),$btnCancel=$('<button class="'+data.style.button+'">'+bt.core.messages[data.locale].cancel+'</button>'),$footer=$('<div role="footer" class="'+data.style.footer+'" />');date=bt.core.parseDate(data.value,data.format,data.locale);if(!date||isNaN(date.getTime())){date=new Date()}else{$timepicker.attr('hours',date.getHours())}
369bt.timepicker.methods.initMouse($body,$timepicker,$clock,data);if(data.header){$hour.on('click',function(){bt.timepicker.methods.renderHours($timepicker,$clock,data)});$minute.on('click',function(){bt.timepicker.methods.renderMinutes($timepicker,$clock,data)});$header.append($hour).append(':').append($minute);if(data.mode==='ampm'){$mode.append($('<span role="am">
369'+bt.core.messages[data.locale].am+'</span>').on('click',function(){var hour=bt.timepicker.methods.getHour($clock);$clock.attr('mode','am');$(this).addClass('selected');$(this).parent().children('[role="pm"]').removeClass('selected');if(hour>=12){$clock.attr('hour',hour-12)}
370if(!data.modal){clearTimeout($timepicker.timeout);$timepicker.focus()}}));$mode.append('<br />');$mode.append($('<span role="pm">'+bt.core.messages[data.locale].pm+'</span>').on('click',function(){var hour=bt.timepicker.methods.getHour($clock);$clock.attr('mode','pm');$(this).addClass('selected');$(this).parent().children('[role="am"]').removeClass('selected');if(hour<12){$clock.attr('hour',hour+12)}
371if(!data.modal){clearTimeout($timepicker.timeout);$timepicker.focus()}}));$header.append($mode)}
372$clock.append($header)}
373$clock.append($body);if(data.footer){$btnCancel.on('click',function(){$timepicker.close()});$footer.append($btnCancel);$btnOk.on('click',bt.timepicker.methods.setTime($timepicker,$clock));$footer.append($btnOk);$clock.append($footer)}
374$clock.hide();$('body').append($clock);if(data.modal){$clock.wrapAll('<div role="modal" class="'+data.style.modal+'"/>');bt.core.center($clock)}
375return $clock},getHour:function($clock){return parseInt($clock.attr('hour'),10)||0},getMinute:function($clock){return parseInt($clock.attr('minute'),10)||0},setTime:function($timepicker,$clock){return function(){var hour=bt.timepicker.methods.getHour($clock),minute=bt.timepicker.methods.getMinute($clock),mode=$clock.attr('mode'),date=new Date(0,0,0,(hour===12&&mode==='am'?0:hour),minute),data=$timepicker.data(),value=bt.core.formatDate(date,data.format,data.locale);$timepicker.value(value);$timepicker.close()}},getPointerValue:function(x,y,mode){var value,radius,size=256,angle=Math.atan2(size/2-x,size/2-y)/Math.PI*180;if(angle<0){angle=360+angle}
376switch(mode){case 'ampm':{value=12-Math.round(angle*12/360);return value===0?12:value}
377case '24hr':{radius=Math.sqrt(Math.pow(size/2-x,2)+Math.pow(size/2-y,2));value=12-Math.round(angle*12/360);if(value===0){value=12}
378if(radius<size/2-32){value=value===12?0:value+12}
379return value}
380case 'minutes':{value=Math.round(60-60*angle/360);return value===60?0:value}}},updateArrow:function(e,$timepicker,$clock,data){var rect,value,mouseX=$timepicker.mouseX(e),mouseY=$timepicker.mouseY(e),scrollY=window.scrollY||window.pageYOffset||0,scrollX=window.scrollX||window.pageXOffset||0;rect=e.target.getBoundingClientRect();if(data.dialMode=='hours'){value=bt.timepicker.methods.getPointerValue(mouseX-scrollX-rect.left,mouseY-scrollY-rect.top,data.mode);$clock.attr('hour',data.mode==='ampm'&&$clock.attr('mode')==='pm'&&value<12?value+12:value)}else if(data.dialMode=='minutes'){value=bt.timepicker.methods.getPointerValue(mouseX-scrollX-rect.left,mouseY-scrollY-rect.top,'minutes');$clock.attr('minute',value)}
381bt.timepicker.methods.update($timepicker,$clock,data)},update:function($timepicker,$clock,data){var hour,minute,$arrow,visualHour,$header,$numbers;hour=bt.timepicker.methods.getHour($clock);minute=bt.timepicker.methods.getMinute($clock);$arrow=$clock.find('[role="arrow"]');if(data.dialMode=='hours'&&(hour==0||hour>12)&&data.mode==='24hr'){$arrow.css('width','calc(50% - 52px)')}else{$arrow.css('width','calc(50% - 20px)')}
382if(data.dialMode=='hours'){$arrow.css('transform','rotate('+((hour*30)-90).toString()+'deg)')}else{$arrow.css('transform','rotate('+((minute*6)-90).toString()+'deg)')}
383$arrow.show();visualHour=(data.mode==='ampm'&&hour>12?hour-12:(hour==0?12:hour));$numbers=$clock.find('[role="body"] span');$numbers.removeClass('selected');$numbers.filter(function(e){if(data.dialMode=='hours'){return parseInt($(this).text(),10)==visualHour}else{return parseInt($(this).text(),10)==minute}}).addClass('selected');if(data.header){$header=$clock.find('[role="header"]');$header.find('[role="hour"]').text(visualHour);$header.find('[role="minute"]').text(bt.core.pad(minute));if(data.mode==='ampm'){if(hour>=12){$header.find('[role="pm"]').addClass('selected');$header.find('[role="am"]').removeClass('selected')}else{$header.find('[role="am"]').addClass('selected');$header.find('[role="pm"]').removeClass('selected')}}}},mouseDownHandler:function($timepicker,$clock){return function(e){$timepicker.mouseMove=!0}},mouseMoveHandler:function($timepicker,$clock,data){return function(e){if($timepicker.mouseMove){bt.timepicker.methods.updateArrow(e,$timepicker,$clock,data)}}},mouseUpHandler:function($timepicker,$clock,data){return function(e){bt.timepicker.methods.updateArrow(e,$timepicker,$clock,data);$timepicker.mouseMove=!1;if(!data.modal){clearTimeout($timepicker.timeout);$timepicker.focus()}
384if(data.dialMode=='hours'){setTimeout(function(){bt.timepicker.events.select($timepicker,'hour');bt.timepicker.methods.renderMinutes($timepicker,$clock,data)},1000)}else if(data.dialMode=='minutes'){if(data.footer!==!0&&data.autoClose!==!1){bt.timepicker.methods.setTime($timepicker,$clock)()}
385bt.timepicker.events.select($timepicker,'minute')}}},renderHours:function($timepicker,$clock,data){var $dial,$body=$clock.find('[role="body"]');clearTimeout($timepicker.timeout);$body.empty();$dial=$('<div role="dial"></div>');$dial.append('<div role="arrow" style="transform: rotate(-90deg); display: none;"><div class="arrow-begin"></div><div class="arrow-end"></div></div>');$dial.append('<span role="hour" style="transform: translate(54px, -93.5307px);">1</span>');$dial.append('<span role="hour" style="transform: translate(93.5307px, -54px);">2</span>');$dial.append('<span role="hour" style="transform: translate(108px, 0px);">3</span>');$dial.append('<span role="hour" style="transform: translate(93.5307px, 54px);">4</span>');$dial.append('<span role="hour" style="transform: translate(54px, 93.5307p
385x);">5</span>');$dial.append('<span role="hour" style="transform: translate(6.61309e-15px, 108px);">6</span>');$dial.append('<span role="hour" style="transform: translate(-54px, 93.5307px);">7</span>');$dial.append('<span role="hour" style="transform: translate(-93.5307px, 54px);">8</span>');$dial.append('<span role="hour" style="transform: translate(-108px, 1.32262e-14px);">9</span>');$dial.append('<span role="hour" style="transform: translate(-93.5307px, -54px);">10</span>');$dial.append('<span role="hour" style="transform: translate(-54px, -93.5307px);">11</span>');$dial.append('<span role="hour" style="transform: translate(-1.98393e-14px, -108px);">12</span>');if(data.mode==='24hr'){$dial.append('<span role="hour" style="transform: translate(38px, -65.8179px);">13</span>');$dial.append('<span role="hour" style="transform: translate(65.8179px, -38px);">14</span>');$dial.append('<span role="hour" style="transform: translate(76px, 0px);">15</span>');$dial.append('<span role="hour" style="transform: translate(65.8179px, 38px);">16</span>');$dial.append('<span role="hour" style="transform: translate(38px, 65.8179px);">17</span>');$dial.append('<span role="hour" style="transform: translate(4.65366e-15px, 76px);">18</span>');$dial.append('<span role="hour" style="transform: translate(-38px, 65.8179px);">19</span>');$dial.append('<span role="hour" style="transform: translate(-65.8179px, 38px);">20</span>');$dial.append('<span role="hour" style="transform: translate(-76px, 9.30732e-15px);">21</span>');$dial.append('<span role="hour" style="transform: translate(-65.8179px, -38px);">22</span>');$dial.append('<span role="hour" style="transform: translate(-38px, -65.8179px);">23</span>');$dial.append('<span role="hour" style="transform: translate(-1.3961e-14px, -76px);">00</span>')}
386$body.append($dial);$clock.find('[role="header"] [role="hour"]').addClass('selected');$clock.find('[role="header"] [role="minute"]').removeClass('selected');data.dialMode='hours';bt.timepicker.methods.update($timepicker,$clock,data)},renderMinutes:function($timepicker,$clock,data){var $body=$clock.find('[role="body"]');clearTimeout($timepicker.timeout);$body.empty();$dial=$('<div role="dial"></div>');$dial.append('<div role="arrow" style="transform: rotate(-90deg); display: none;"><div class="arrow-begin"></div><div class="arrow-end"></div></div>');$dial.append('<span role="hour" style="transform: translate(54px, -93.5307px);">5</span>');$dial.append('<span role="hour" style="transform: translate(93.5307px, -54px);">10</span>');$dial.append('<span role="hour" style="transform: translate(108px, 0px);">15</span>');$dial.append('<span role="hour" style="transform: translate(93.5307px, 54px);">20</span>');$dial.append('<span role="hour" style="transform: translate(54px, 93.5307px);">25</span>');$dial.append('<span role="hour" style="transform: translate(6.61309e-15px, 108px);">30</span>');$dial.append('<span role="hour" style="transform: translate(-54px, 93.5307px);">35</span>');$dial.append('<span role="hour" style="transform: translate(-93.5307px, 54px);">40</span>');$dial.append('<span role="hour" style="transform: translate(-108px, 1.32262e-14px);">45</span>');$dial.append('<span role="hour" style="transform: translate(-93.5307px, -54px);">50</span>');$dial.append('<span role="hour" style="transform: translate(-54px, -93.5307px);">55</span>');$dial.append('<span role="hour" style="transform: translate(-1.98393e-14px, -108px);">00</span>');$body.append($dial);$clock.find('[role="header"] [role="hour"]').removeClass('selected');$clock.find('[role="header"] [role="minute"]').addClass('selected');data.dialMode='minutes';bt.timepicker.methods.update($timepicker,$clock,data)},open:function($timepicker){var time,hour,data=$timepicker.data(),$clock=$('body').find('[role="clock"][guid="'+$timepicker.attr('data-guid')+'"]');if($timepicker.value()){time=bt.core.parseDate($timepicker.value(),data.format,data.locale)}else{time=new Date()}
387hour=time.getHours();if(data.mode==='ampm'){$clock.attr('mode',hour>12?'pm':'am')}
388$clock.attr('hour',hour);$clock.attr('minute',time.getMinutes());bt.timepicker.methods.renderHours($timepicker,$clock,data);$clock.show();$clock.closest('div[role="modal"]').show();if(data.modal){bt.core.center($clock)}else{bt.core.setChildPosition($timepicker[0],$clock[0]);$timepicker.focus()}
389bt.timepicker.events.open($timepicker);return $timepicker},close:function($timepicker){var $clock=$('body').find('[role="clock"][guid="'+$timepicker.attr('data-guid')+'"]');$clock.hide();$clock.closest('div[role="modal"]').hide();bt.timepicker.events.close($timepicker);return $timepicker},value:function($timepicker,value){var $clock,time,data=$timepicker.data();if(typeof(value)==="undefined"){return $timepicker.val()}else{$timepicker.val(value);bt.timepicker.events.change($timepicker);return $timepicker}},destroy:function($timepicker){var data=$timepicker.data(),$parent=$timepicker.parent(),$clock=$('body').find('[role="clock"][guid="'+$timepicker.attr('data-guid')+'"]');if(data){$timepicker.off();if($clock.parent('[role="modal"]').length>0){$clock.unwrap()}
390$clock.remove();$timepicker.removeData();$timepicker.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-timepicker');$timepicker.removeClass();$parent.children('[role="right-icon"]').remove();$timepicker.unwrap()}
391return $timepicker}};bt.timepicker.events={change:function($timepicker){return $timepicker.triggerHandler('change')},select:function($timepicker,type){return $timepicker.triggerHandler('select',[type])},open:function($timepicker){return $timepicker.triggerHandler('open')},close:function($timepicker){return $timepicker.triggerHandler('close')}};bt.timepicker.widget=function($element,jsConfig){var self=this,methods=bt.timepicker.methods;self.mouseMove=!1;self.value=function(value){return methods.value(this,value)};self.destroy=function(){return methods.destroy(this)};self.open=function(){return bt.timepicker.methods.open(this)};self.close=function(){return bt.timepicker.methods.close(this)};$.extend($element,self);if('true'!==$element.attr('data-timepicker')){methods.init.call($element,jsConfig)}
392return $element};bt.timepicker.widget.prototype=new bt.widget();bt.timepicker.widget.constructor=bt.timepicker.widget;(function($){$.fn.timepicker=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.timepicker.widget(this,method)}else{$widget=new bt.timepicker.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1
392))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.datetimepicker={plugins:{},messages:{'en-us':{}}};bt.datetimepicker.config={base:{datepicker:bt.datepicker.config.base,timepicker:bt.timepicker.config.base,uiLibrary:'materialdesign',value:undefined,format:'HH:MM mm/dd/yyyy',width:undefined,modal:!1,footer:!1,size:'default',locale:'en-us',icons:{},style:{calendar:'bt-picker bt-picker-md datetimepicker bt-unselectable'}},bootstrap:{style:{calendar:'bt-picker bt-picker-bootstrap datetimepicker bt-unselectable'},iconsLibrary:'glyphicons'},bootstrap4:{style:{calendar:'bt-picker bt-picker-bootstrap datetimepicker bt-unselectable'}}};bt.datetimepicker.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'datetimepicker');this.attr('data-datetimepicker','true');bt.datetimepicker.methods.initialize(this);return this},getConfig:function(clientConfig,type){var config=bt.widget.prototype.getConfig.call(this,clientConfig,type);uiLibrary=clientConfig.hasOwnProperty('uiLibrary')?clientConfig.uiLibrary:config.uiLibrary;if(bt.datepicker.config[uiLibrary]){$.extend(!0,config.datepicker,bt.datepicker.config[uiLibrary])}
393if(bt.timepicker.config[uiLibrary]){$.extend(!0,config.timepicker,bt.timepicker.config[uiLibrary])}
394iconsLibrary=clientConfig.hasOwnProperty('iconsLibrary')?clientConfig.iconsLibrary:config.iconsLibrary;if(bt.datepicker.config[iconsLibrary]){$.extend(!0,config.datepicker,bt.datepicker.config[iconsLibrary])}
395if(bt.timepicker.config[iconsLibrary]){$.extend(!0,config.timepicker,bt.timepicker.config[iconsLibrary])}
396return config},initialize:function($datetimepicker){var $picker,$header,$date,$time,date,$switch,$calendarMode,$clockMode,data=$datetimepicker.data();data.datepicker.uiLibrary=data.uiLibrary;data.datepicker.iconsLibrary=data.iconsLibrary;data.datepicker.width=data.width;data.datepicker.format=data.format;data.datepicker.locale=data.locale;data.datepicker.modal=data.modal;data.datepicker.footer=data.footer;data.datepicker.style.calendar=data.style.calendar;data.datepicker.value=data.value;data.datepicker.size=data.size;data.datepicker.autoClose=!1;bt.datepicker.methods.initialize($datetimepicker,data.datepicker);$datetimepicker.on('select',function(e,type){var date,value;if(type==='day'){bt.datetimepicker.methods.createShowHourHandler($datetimepicker,$picker,data)()}else if(type==='minute'){if($picker.attr('selectedDay')&&data.footer!==!0){selectedDay=$picker.attr('selectedDay').split('-');date=new Date(selectedDay[0],selectedDay[1],selectedDay[2],$picker.attr('hour')||0,$picker.attr('minute')||0);value=bt.core.formatDate(date,data.format,data.locale);$datetimepicker.val(value);bt.datetimepicker.events.change($datetimepicker);bt.datetimepicker.methods.close($datetimepicker)}}});$datetimepicker.on('open',function(){var $header=$picker.children('[role="header"]');$header.find('[role="calendarMode"]').addClass("selected");$header.find('[role="clockMode"]').removeClass("selected")});$picker=$('body').find('[role="calendar"][guid="'+$datetimepicker.attr('data-guid')+'"]');date=data.value?bt.core.parseDate(data.value,data.format,data.locale):new Date();$picker.attr('hour',date.getHours());$picker.attr('minute',date.getMinutes());data.timepicker.uiLibrary=data.uiLibrary;data.timepicker.iconsLibrary=data.iconsLibrary;data.timepicker.format=data.format;data.timepicker.locale=data.locale;data.timepicker.header=!0;data.timepicker.footer=data.footer;data.timepicker.size=data.size;data.timepicker.mode='24hr';data.timepicker.autoClose=!1;$header=$('<div role="header" />');$date=$('<div role="date" class="selected" />');$date.on('click',bt.datetimepicker.methods.createShowDateHandler($datetimepicker,$picker,data));$date.html(bt.core.formatDate(new Date(),'ddd, mmm dd',data.locale));$header.append($date);$switch=$('<div role="switch"></div>');$calendarMode=$('<i class="bt-icon selected" role="calendarMode">event</i>');$calendarMode.on('click',bt.datetimepicker.methods.createShowDateHandler($datetimepicker,$picker,data));$switch.append($calendarMode);$time=$('<div role="time" />');$time.append($('<div role="hour" />').on('click',bt.datetimepicker.methods.createShowHourHandler($datetimepicker,$picker,data)).html(bt.core.formatDate(new Date(),'HH',data.locale)));$time.append(':');$time.append($('<div role="minute" />').on('click',bt.datetimepicker.methods.createShowMinuteHandler($datetimepicker,$picker,data)).html(bt.core.formatDate(new Date(),'MM',data.locale)));$switch.append($time);$clockMode=$('<i class="bt-icon" role="clockMode">clock</i>');$clockMode.on('click',bt.datetimepicker.methods.createShowHourHandler($datetimepicker,$picker,data));$switch.append($clockMode);$header.append($switch);$picker.prepend($header)},createShowDateHandler:function($datetimepicker,$picker,data){return function(e){var $header=$picker.children('[role="header"]');$header.find('[role="calendarMode"]').addClass("selected");$header.find('[role="date"]').addClass("selected");$header.find('[role="clockMode"]').removeClass("selected");$header.find('[role="hour"]').removeClass("selected");$header.find('[role="minute"]').removeClass("selected");bt.datepicker.methods.renderMonth($datetimepicker,$picker,data.datepicker)}},createShowHourHandler:function($datetimepicker,$picker,data){return function(){var $header=$picker.children('[role="header"]');$header.find('[role="calendarMode"]').removeClass("selected");$header.find('[role="date"]').removeClass("selected");$header.find('[role="clockMode"]').addClass("selected");$header.find('[role="hour"]').addClass("selected");$header.find('[role="minute"]').removeClass("selected");bt.timepicker.methods.initMouse($picker.children('[role="body"]'),$datetimepicker,$picker,data.timepicker);bt.timepicker.methods.renderHours($datetimepicker,$picker,data.timepicker)}},createShowMinuteHandler:function($datetimepicker,$picker,data){return function(){var $header=$picker.children('[role="header"]');$header.find('[role="calendarMode"]').removeClass("selected");$header.find('[role="date"]').removeClass("selected");$header.find('[role="clockMode"]').addClass("selected");$header.find('[role="hour"]').removeClass("selected");$header.find('[role="minute"]').addClass("selected");bt.timepicker.methods.initMouse($picker.children('[role="body"]'),$datetimepicker,$picker,data.timepicker);bt.timepicker.methods.renderMinutes($datetimepicker,$picker,data.timepicker)}},close:function($datetimepicker){var $calendar=$('body').find('[role="calendar"][guid="'+$datetimepicker.attr('data-guid')+'"]');$calendar.hide();$calendar.closest('div[role="modal"]').hide()},value:function($datetimepicker,value){var $calendar,date,data=$datetimepicker.data();if(typeof(value)==="undefined"){return $datetimepicker.val()}else{date=bt.core.parseDate(value,data.format,data.locale);if(date){$calendar=$('body').find('[role="calendar"][guid="'+$datetimepicker.attr('data-guid')+'"]');bt.datepicker.methods.dayClickHandler($datetimepicker,$calendar,data,date)()}else{$datetimepicker.val('')}
397return $datetimepicker}},destroy:function($datetimepicker){var data=$datetimepicker.data(),$parent=$datetimepicker.parent(),$picker=$('body').find('[role="calendar"][guid="'+$datetimepicker.attr('data-guid')+'"]');if(data){$datetimepicker.off();if($picker.parent('[role="modal"]').length>0){$picker.unwrap()}
398$picker.remove();$datetimepicker.removeData();$datetimepicker.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-datetimepicker');$datetimepicker.removeClass();$parent.children('[role="right-icon"]').remove();$datetimepicker.unwrap()}
399return $datetimepicker}};bt.datetimepicker.events={change:function($datetimepicker){return $datetimepicker.triggerHandler('change')}};bt.datetimepicker.widget=function($element,jsConfig){var self=this,methods=bt.datetimepicker.methods;self.mouseMove=!1;self.value=function(value){return methods.value(this,value)};self.destroy=function(){return methods.destroy(this)};$.extend($element,self);if('true'!==$element.attr('data-datetimepicker')){methods.init.call($element,jsConfig)}
400return $element};bt.datetimepicker.widget.prototype=new bt.widget();bt.datetimepicker.widget.constructor=bt.datetimepicker.widget;bt.datetimepicker.widget.prototype.getConfig=bt.datetimepicker.methods.getConfig;(function($){$.fn.datetimepicker=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.datetimepicker.widget(this,method)}else{$widget=new bt.datetimepicker.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1
400))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);bt.slider={plugins:{},messages:{'en-us':{}}};bt.slider.config={base:{min:0,max:100,uiLibrary:'materialdesign',value:undefined,icons:{},style:{wrapper:'bt-slider bt-slider-md',progress:undefined,track:undefined}},bootstrap:{style:{wrapper:'bt-slider bt-slider-bootstrap bt-slider-bootstrap-3',progress:'progress-bar',track:'progress'}},bootstrap4:{style:{wrapper:'bt-slider bt-slider-bootstrap bt-slider-bootstrap-4',progress:'progress-bar',track:'progress'}}};bt.slider.methods={init:function(jsConfig){bt.widget.prototype.init.call(this,jsConfig,'slider');this.attr('data-slider','true');bt.slider.methods.initialize(this,this.data());return this},initialize:function($slider,data){var wrapper,track,handle,progress;$slider[0].style.display='none';if($slider[0].parentElement.attributes.role!=='wrapper'){wrapper=document.createElement('div');wrapper.setAttribute('role','wrapper');$slider[0].parentNode.insertBefore(wrapper,$slider[0]);wrapper.appendChild($slider[0])}else{wrapper=$slider[0].parentElement}
401if(data.width){wrapper.style.width=data.width+'px'}
402bt.core.addClasses(wrapper,data.style.wrapper);track=$slider[0].querySelector('[role="track"]');if(track==null){track=document.createElement('div');track.setAttribute('role','track');wrapper.appendChild(track)}
403bt.core.addClasses(track,data.style.track);handle=$slider[0].querySelector('[role="handle"]');if(handle==null){handle=document.createElement('div');handle.setAttribute('role','handle');wrapper.appendChild(handle)}
404progress=$slider[0].querySelector('[role="progress"]');if(progress==null){progress=document.createElement('div');progress.setAttribute('role','progress');wrapper.appendChild(progress)}
405bt.core.addClasses(progress,data.style.progress);if(!data.value){data.value=data.min}
406bt.slider.methods.value($slider,data,data.value);bt.documentManager.subscribeForEvent('mouseup',$slider.data('guid'),bt.slider.methods.createMouseUpHandler($slider,handle,data));handle.addEventListener('mousedown',bt.slider.methods.createMouseDownHandler(handle,data));bt.documentManager.subscribeForEvent('mousemove',$slider.data('guid'),bt.slider.methods.createMouseMoveHandler($slider,track,handle,progress,data))},createMouseUpHandler:function($slider,handle,data){return function(e){if(handle.getAttribute('drag')==='true'){handle.setAttribute('drag','false');bt.slider.events.change($slider)}}},createMouseDownHandler:function(handle,data){return function(e){handle.setAttribute('drag','true')}},createMouseMoveHandler:function($slider,track,handle,progress,data){return function(e){var sliderPos,x,trackWidth,offset,stepSize,valuePos,newValue;if(handle.getAttribute('drag')==='true'){sliderPos=bt.core.position($slider[0],!0,!0);x=new bt.widget().mouseX(e)-sliderPos.left;trackWidth=bt.core.width(track);offset=bt.core.width(handle)/2;stepSize=trackWidth/(data.max-data.min);valuePos=(data.value-data.min)*stepSize;if(x>=offset&&x<=(trackWidth+offset)){if(x>valuePos+(stepSize/2)||x<valuePos-(stepSize/2)){newValue=Math.round((x-offset)/stepSize)+data.min;bt.slider.methods.value($slider,data,newValue)}}}}},value:function($slider,data,value){var stepSize,track,handle,progress;if(typeof(value)==="undefined"){return $slider[0].value}else{$slider[0].setAttribute('value',value);data.value=value;track=$slider.parent().children('[role="track"]')[0]
407stepSize=bt.core.width(track)/(data.max-data.min);handle=$slider.parent().children('[role="handle"]')[0];handle.style.left=((value-data.min)*stepSize)+'px';progress=$slider.parent().children('[role="progress"]')[0];progress.style.width=((value-data.min)*stepSize)+'px';bt.slider.events.slide($slider,value);return $slider}},destroy:function($slider){var data=$slider.data(),$wrapper=$slider.parent();if(data){$wrapper.children('[role="track"]').remove();$wrapper.children('[role="handle"]').remove();$wrapper.children('[role="progress"]').remove();$slider.unwrap();$slider.off();$slider.removeData();$slider.removeAttr('data-type').removeAttr('data-guid').removeAttr('data-slider');$slider.removeClass();$slider.show()}
408return $slider}};bt.slider.events={change:function($slider){return $slider.triggerHandler('change')},slide:function($slider,value){return $slider.triggerHandler('slide',[value])}};bt.slider.widget=function($element,jsConfig){var self=this,methods=bt.slider.methods;self.value=function(value){return methods.value(this,this.data(),value)};self.destroy=function(){return methods.destroy(this)};$.extend($element,self);
408if('true'!==$element.attr('data-slider')){methods.init.call($element,jsConfig)}
409return $element};bt.slider.widget.prototype=new bt.widget();bt.slider.widget.constructor=bt.slider.widget;(function($){$.fn.slider=function(method){var $widget;if(this&&this.length){if(typeof method==='object'||!method){return new bt.slider.widget(this,method)}else{$widget=new bt.slider.widget(this,null);if($widget[method]){return $widget[method].apply(this,Array.prototype.slice.call(arguments,1))}else{throw 'Method '+method+' does not exist.'}}}}})(jQuery);var _gaq=_gaq||[];function loadtracking(){window._gaq.push(['_setAccount','UA-117512685-2']);window._gaq.push(['_trackPageview']);(function(){var ga=document.createElement('script');ga.type='text/javascript';ga.async=!0;ga.src='https://www.googletagmanager.com/gtag/js?id=UA-117512685-2';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s)})()}
410loadtracking()

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.