Spade
Mini Shell
main.js000064400000000733151167217540006042
0ustar00jQuery(document).ready(function($){
$('.owl-carousel').owlCarousel({
center: false,
loop: true,
margin:10,
nav:true,
autoplay:true,
autoplayTimeout:2500,
autoplayHoverPause:true,
responsive:{
0:{
items:1
},
600:{
items:2
},
1000:{
items:4
}
}
});
});owl.carousel.min.js000064400000126466151167217540010331 0ustar00/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN
https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
!function(a,b,c,d){function
e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new
b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var
b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var
b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var
b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var
a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var
a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var
b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else
c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var
a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("),
:eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var
b=this.$element.find(".owl-item");if(b.length)return
this._items=b.get().map(function(b){return
a(b)}),this._mergers=this._items.map(function(){return 1}),void
this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var
a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var
b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof
e.stagePadding&&(e.stagePadding=e.stagePadding()),delete
e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new
RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var
c=this.trigger("prepare",{content:b});return
c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var
b=0,c=this._pipe.length,d=a.proxy(function(a){return
this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case
e.Width.Inner:case e.Width.Outer:return this._width;default:return
this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void
this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core
selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var
d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)|
/g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new
Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core
touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core
touchmove.owl.core",a.proxy(function(b){var
d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core
touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var
b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var
d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new
Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var
e=-1,f=30,g=this.width(),h=this.coordinates();return
this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var
c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?"
"+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return
this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return
this._current;if(0===this._items.length)return
d;if(a=this.normalize(a),this._current!==a){var
b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return
this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return
b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var
c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return
a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var
b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else
if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else
f=e.center?this._items.length-1:this._items.length-e.items;return
a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return
a?0:this._clones.length/2},e.prototype.items=function(a){return
a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return
a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var
c=this._clones.length/2,e=c+this._items.length,f=function(a){return
a%2==0?e+a/2:c-(a+1)/2};return
b===d?a.map(this._clones,function(a,b){return
f(b)}):a.map(this._clones,function(a,c){return
a===b?f(c):null})},e.prototype.speed=function(a){return
a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var
c,e=1,f=b-1;return
b===d?a.map(this._coordinates,a.proxy(function(a,b){return
this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return
0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var
c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var
d;return
this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can
not detect viewport
width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b
instanceof
jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return
1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var
e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b
instanceof
jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new
Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var
d in
this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new
RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var
d=this.settings.rtl;switch(b){case"<":return
d?a>c:a<c;case">":return
d?a<c:a>c;case">=":return
d?a<=c:a>=c;case"<=":return
d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var
h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return
a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return
this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof
this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var
c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else
b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return
a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete
this._supress[b]},this))},e.prototype.pointer=function(a){var
c={x:null,y:null};return
a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var
c=Array.prototype.slice.call(arguments,1);return this.each(function(){var
d=a(this),f=d.data("owl.carousel");f||(f=new
e(this,"object"==typeof
b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof
b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var
e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var
a,c;b.clearInterval(this._interval);for(a in
this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in
Object.getOwnPropertyNames(this))"function"!=typeof
this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var
e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel
change.owl.carousel
resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var
c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var
d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var
e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new
Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var
a,b;for(a in
this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in
Object.getOwnPropertyNames(this))"function"!=typeof
this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var
e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel
refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var
d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var
b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var
a,b;for(a in
this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in
Object.getOwnPropertyNames(this))"function"!=typeof
this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var
e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned
.owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var
c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var
c=function(){return
a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw
new Error("Missing video
URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else
if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw
new Error("Video URL not
supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var
d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div
class="owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"owl-video-tn
"+j,srcType:c}):a("<div/>",{class:"owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return
l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var
c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe
frameborder="0" allowfullscreen mozallowfullscreen
webkitAllowFullScreen
></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div
class="owl-video-frame"
/>').insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var
b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return
b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var
a,b;this._core.$element.off("click.owl.video");for(a in
this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in
Object.getOwnPropertyNames(this))"function"!=typeof
this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var
e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel
dragged.owl.carousel
translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,
animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var
b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated
owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated
owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated
owl-animated-out
owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var
a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b
in Object.getOwnPropertyNames(this))"function"!=typeof
this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var
e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new
Date).getTime()-this._time},e.prototype.play=function(c,d){var
e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var
a,b;this.stop();for(a in
this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in
Object.getOwnPropertyNames(this))"function"!=typeof
this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use
strict";var
e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div
class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span
aria-label="Previous">‹</span>','<span
aria-label="Next">›</span>'],navSpeed:!1,navElement:'button
type="button"
role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var
b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button
role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var
d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b
in
this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var
a,b,c,d,e;e=this._core.settings;for(a in
this._handlers)this.$element.off(a,this._handlers[a]);for(b in
this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d
in this.overides)this._core[d]=this._overrides[d];for(c in
Object.getOwnPropertyNames(this))"function"!=typeof
this[c]&&(this[c]=null)},e.prototype.update=function(){var
a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var
b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new
Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var
c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var
b=this._core.relative(this._core.current());return
a.grep(this._pages,a.proxy(function(a,c){return
a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var
c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var
e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use
strict";var
e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var
c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var
d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return
a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var
c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var
c,d;a(b).off("hashchange.owl.navigation");for(c in
this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in
Object.getOwnPropertyNames(this))"function"!=typeof
this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function
e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return
a.each((b+" "+h.join(f+" ")+f).split("
"),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function
f(a){return e(a,!0)}var
g=a("<support>").get(0).style,h="Webkit Moz O
ms".split("
"),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new
String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new
String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new
String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);admin_custom_tabs.js000064400000000606151167367470010620
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
admin_fields.js000064400000000606151167367470007543 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
admin_fields_conditions.js000064400000002510151167367470011770 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
function getFieldSelectOptions_server(fieldId){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.fieldSelectOptions&format=json");
if(token.length > 0 && fieldId > 0){
var request = token+'=1&id='+fieldId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getFieldSelectOptions(fieldKey){
// first check if the field is set
if(jQuery("#jform_addconditions__addconditions"+fieldKey+"__match_field").length)
{
var fieldId =
jQuery("#jform_addconditions__addconditions"+fieldKey+"__match_field
option:selected").val();
getFieldSelectOptions_server(fieldId).done(function(result) {
if(result){
jQuery('textarea#jform_addconditions__addconditions'+fieldKey+'__match_options').val(result);
}
else
{
jQuery('textarea#jform_addconditions__addconditions'+fieldKey+'__match_options').val('');
}
});
}
}
admin_fields_relations.js000064400000007615151167367470011632 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jQuery(document).ready(function()
{
// check and load all the customcode edit buttons
getEditCustomCodeButtons();
});
// little script to set the value
function getCodeGlueOptions(field) {
// get the ID
var id = jQuery(field).attr('id');
var target = id.split('__');
//set the subID
var subID = target[0]+'__'+target[1];
// get listfield value
var listfield =
jQuery('#'+subID+'__listfield').val();
// get type value
var type = jQuery('#'+subID+'__join_type').val();
// get area value
var area = jQuery('#'+subID+'__area').val();
// check that values are set
if (_isSet(listfield) && _isSet(type) && _isSet(area)) {
// get joinfields values
var joinfields =
jQuery('#'+subID+'__joinfields').val();
// get codeGlueOptions
getCodeGlueOptions_server(listfield, joinfields, type,
area).done(function(result) {
if(result){
jQuery('#'+subID+'__set').val(result);
} else {
jQuery('#'+subID+'__set').val('');
}
});
} else {
jQuery('#'+subID+'__set').val('');
}
}
function getCodeGlueOptions_server(listfield, joinfields, type, area){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getCodeGlueOptions&format=json");
// make sure the joinfields are set
if (!_isSet(joinfields)) {
joinfields = 'none';
}
if(token.length > 0 && listfield > 0 && type > 0
&& area > 0) {
var request =
token+'=1&listfield='+listfield+'&type='+type+'&area='+area+'&joinfields='+joinfields;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
// the isSet function
function _isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
admin_view.js000064400000101373151167367470007252 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvvybvwa_required = false;
jform_vvvvvygvwb_required = false;
jform_vvvvvygvwc_required = false;
jform_vvvvvygvwd_required = false;
jform_vvvvvygvwe_required = false;
jform_vvvvvygvwf_required = false;
jform_vvvvvygvwg_required = false;
jform_vvvvvygvwh_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_css_view_vvvvvxb = jQuery("#jform_add_css_view
input[type='radio']:checked").val();
vvvvvxb(add_css_view_vvvvvxb);
var add_css_views_vvvvvxc = jQuery("#jform_add_css_views
input[type='radio']:checked").val();
vvvvvxc(add_css_views_vvvvvxc);
var add_javascript_view_file_vvvvvxd =
jQuery("#jform_add_javascript_view_file
input[type='radio']:checked").val();
vvvvvxd(add_javascript_view_file_vvvvvxd);
var add_javascript_views_file_vvvvvxe =
jQuery("#jform_add_javascript_views_file
input[type='radio']:checked").val();
vvvvvxe(add_javascript_views_file_vvvvvxe);
var add_javascript_view_footer_vvvvvxf =
jQuery("#jform_add_javascript_view_footer
input[type='radio']:checked").val();
vvvvvxf(add_javascript_view_footer_vvvvvxf);
var add_javascript_views_footer_vvvvvxg =
jQuery("#jform_add_javascript_views_footer
input[type='radio']:checked").val();
vvvvvxg(add_javascript_views_footer_vvvvvxg);
var add_php_ajax_vvvvvxh = jQuery("#jform_add_php_ajax
input[type='radio']:checked").val();
vvvvvxh(add_php_ajax_vvvvvxh);
var add_php_getitem_vvvvvxi = jQuery("#jform_add_php_getitem
input[type='radio']:checked").val();
vvvvvxi(add_php_getitem_vvvvvxi);
var add_php_getitems_vvvvvxj = jQuery("#jform_add_php_getitems
input[type='radio']:checked").val();
vvvvvxj(add_php_getitems_vvvvvxj);
var add_php_getitems_after_all_vvvvvxk =
jQuery("#jform_add_php_getitems_after_all
input[type='radio']:checked").val();
vvvvvxk(add_php_getitems_after_all_vvvvvxk);
var add_php_getlistquery_vvvvvxl =
jQuery("#jform_add_php_getlistquery
input[type='radio']:checked").val();
vvvvvxl(add_php_getlistquery_vvvvvxl);
var add_php_getform_vvvvvxm = jQuery("#jform_add_php_getform
input[type='radio']:checked").val();
vvvvvxm(add_php_getform_vvvvvxm);
var add_php_before_save_vvvvvxn = jQuery("#jform_add_php_before_save
input[type='radio']:checked").val();
vvvvvxn(add_php_before_save_vvvvvxn);
var add_php_save_vvvvvxo = jQuery("#jform_add_php_save
input[type='radio']:checked").val();
vvvvvxo(add_php_save_vvvvvxo);
var add_php_postsavehook_vvvvvxp =
jQuery("#jform_add_php_postsavehook
input[type='radio']:checked").val();
vvvvvxp(add_php_postsavehook_vvvvvxp);
var add_php_allowadd_vvvvvxq = jQuery("#jform_add_php_allowadd
input[type='radio']:checked").val();
vvvvvxq(add_php_allowadd_vvvvvxq);
var add_php_allowedit_vvvvvxr = jQuery("#jform_add_php_allowedit
input[type='radio']:checked").val();
vvvvvxr(add_php_allowedit_vvvvvxr);
var add_php_before_cancel_vvvvvxs =
jQuery("#jform_add_php_before_cancel
input[type='radio']:checked").val();
vvvvvxs(add_php_before_cancel_vvvvvxs);
var add_php_after_cancel_vvvvvxt =
jQuery("#jform_add_php_after_cancel
input[type='radio']:checked").val();
vvvvvxt(add_php_after_cancel_vvvvvxt);
var add_php_batchcopy_vvvvvxu = jQuery("#jform_add_php_batchcopy
input[type='radio']:checked").val();
vvvvvxu(add_php_batchcopy_vvvvvxu);
var add_php_batchmove_vvvvvxv = jQuery("#jform_add_php_batchmove
input[type='radio']:checked").val();
vvvvvxv(add_php_batchmove_vvvvvxv);
var add_php_before_publish_vvvvvxw =
jQuery("#jform_add_php_before_publish
input[type='radio']:checked").val();
vvvvvxw(add_php_before_publish_vvvvvxw);
var add_php_after_publish_vvvvvxx =
jQuery("#jform_add_php_after_publish
input[type='radio']:checked").val();
vvvvvxx(add_php_after_publish_vvvvvxx);
var add_php_before_delete_vvvvvxy =
jQuery("#jform_add_php_before_delete
input[type='radio']:checked").val();
vvvvvxy(add_php_before_delete_vvvvvxy);
var add_php_after_delete_vvvvvxz =
jQuery("#jform_add_php_after_delete
input[type='radio']:checked").val();
vvvvvxz(add_php_after_delete_vvvvvxz);
var add_php_document_vvvvvya = jQuery("#jform_add_php_document
input[type='radio']:checked").val();
vvvvvya(add_php_document_vvvvvya);
var add_sql_vvvvvyb = jQuery("#jform_add_sql
input[type='radio']:checked").val();
vvvvvyb(add_sql_vvvvvyb);
var source_vvvvvyc = jQuery("#jform_source
input[type='radio']:checked").val();
var add_sql_vvvvvyc = jQuery("#jform_add_sql
input[type='radio']:checked").val();
vvvvvyc(source_vvvvvyc,add_sql_vvvvvyc);
var source_vvvvvye = jQuery("#jform_source
input[type='radio']:checked").val();
var add_sql_vvvvvye = jQuery("#jform_add_sql
input[type='radio']:checked").val();
vvvvvye(source_vvvvvye,add_sql_vvvvvye);
var add_custom_import_vvvvvyg = jQuery("#jform_add_custom_import
input[type='radio']:checked").val();
vvvvvyg(add_custom_import_vvvvvyg);
var add_custom_import_vvvvvyh = jQuery("#jform_add_custom_import
input[type='radio']:checked").val();
vvvvvyh(add_custom_import_vvvvvyh);
var add_custom_button_vvvvvyi = jQuery("#jform_add_custom_button
input[type='radio']:checked").val();
vvvvvyi(add_custom_button_vvvvvyi);
});
// the vvvvvxb function
function vvvvvxb(add_css_view_vvvvvxb)
{
// set the function logic
if (add_css_view_vvvvvxb == 1)
{
jQuery('#jform_css_view-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css_view-lbl').closest('.control-group').hide();
}
}
// the vvvvvxc function
function vvvvvxc(add_css_views_vvvvvxc)
{
// set the function logic
if (add_css_views_vvvvvxc == 1)
{
jQuery('#jform_css_views-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css_views-lbl').closest('.control-group').hide();
}
}
// the vvvvvxd function
function vvvvvxd(add_javascript_view_file_vvvvvxd)
{
// set the function logic
if (add_javascript_view_file_vvvvvxd == 1)
{
jQuery('#jform_javascript_view_file-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_view_file-lbl').closest('.control-group').hide();
}
}
// the vvvvvxe function
function vvvvvxe(add_javascript_views_file_vvvvvxe)
{
// set the function logic
if (add_javascript_views_file_vvvvvxe == 1)
{
jQuery('#jform_javascript_views_file-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_views_file-lbl').closest('.control-group').hide();
}
}
// the vvvvvxf function
function vvvvvxf(add_javascript_view_footer_vvvvvxf)
{
// set the function logic
if (add_javascript_view_footer_vvvvvxf == 1)
{
jQuery('#jform_javascript_view_footer-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_view_footer-lbl').closest('.control-group').hide();
}
}
// the vvvvvxg function
function vvvvvxg(add_javascript_views_footer_vvvvvxg)
{
// set the function logic
if (add_javascript_views_footer_vvvvvxg == 1)
{
jQuery('#jform_javascript_views_footer-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_views_footer-lbl').closest('.control-group').hide();
}
}
// the vvvvvxh function
function vvvvvxh(add_php_ajax_vvvvvxh)
{
// set the function logic
if (add_php_ajax_vvvvvxh == 1)
{
jQuery('#jform_ajax_input-lbl').closest('.control-group').show();
jQuery('#jform_php_ajaxmethod-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_ajax_input-lbl').closest('.control-group').hide();
jQuery('#jform_php_ajaxmethod-lbl').closest('.control-group').hide();
}
}
// the vvvvvxi function
function vvvvvxi(add_php_getitem_vvvvvxi)
{
// set the function logic
if (add_php_getitem_vvvvvxi == 1)
{
jQuery('#jform_php_getitem-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_getitem-lbl').closest('.control-group').hide();
}
}
// the vvvvvxj function
function vvvvvxj(add_php_getitems_vvvvvxj)
{
// set the function logic
if (add_php_getitems_vvvvvxj == 1)
{
jQuery('#jform_php_getitems-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_getitems-lbl').closest('.control-group').hide();
}
}
// the vvvvvxk function
function vvvvvxk(add_php_getitems_after_all_vvvvvxk)
{
// set the function logic
if (add_php_getitems_after_all_vvvvvxk == 1)
{
jQuery('#jform_php_getitems_after_all-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_getitems_after_all-lbl').closest('.control-group').hide();
}
}
// the vvvvvxl function
function vvvvvxl(add_php_getlistquery_vvvvvxl)
{
// set the function logic
if (add_php_getlistquery_vvvvvxl == 1)
{
jQuery('#jform_php_getlistquery-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_getlistquery-lbl').closest('.control-group').hide();
}
}
// the vvvvvxm function
function vvvvvxm(add_php_getform_vvvvvxm)
{
// set the function logic
if (add_php_getform_vvvvvxm == 1)
{
jQuery('#jform_php_getform-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_getform-lbl').closest('.control-group').hide();
}
}
// the vvvvvxn function
function vvvvvxn(add_php_before_save_vvvvvxn)
{
// set the function logic
if (add_php_before_save_vvvvvxn == 1)
{
jQuery('#jform_php_before_save-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_before_save-lbl').closest('.control-group').hide();
}
}
// the vvvvvxo function
function vvvvvxo(add_php_save_vvvvvxo)
{
// set the function logic
if (add_php_save_vvvvvxo == 1)
{
jQuery('#jform_php_save-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_save-lbl').closest('.control-group').hide();
}
}
// the vvvvvxp function
function vvvvvxp(add_php_postsavehook_vvvvvxp)
{
// set the function logic
if (add_php_postsavehook_vvvvvxp == 1)
{
jQuery('#jform_php_postsavehook-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_postsavehook-lbl').closest('.control-group').hide();
}
}
// the vvvvvxq function
function vvvvvxq(add_php_allowadd_vvvvvxq)
{
// set the function logic
if (add_php_allowadd_vvvvvxq == 1)
{
jQuery('#jform_php_allowadd-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_allowadd-lbl').closest('.control-group').hide();
}
}
// the vvvvvxr function
function vvvvvxr(add_php_allowedit_vvvvvxr)
{
// set the function logic
if (add_php_allowedit_vvvvvxr == 1)
{
jQuery('#jform_php_allowedit-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_allowedit-lbl').closest('.control-group').hide();
}
}
// the vvvvvxs function
function vvvvvxs(add_php_before_cancel_vvvvvxs)
{
// set the function logic
if (add_php_before_cancel_vvvvvxs == 1)
{
jQuery('#jform_php_before_cancel-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_before_cancel-lbl').closest('.control-group').hide();
}
}
// the vvvvvxt function
function vvvvvxt(add_php_after_cancel_vvvvvxt)
{
// set the function logic
if (add_php_after_cancel_vvvvvxt == 1)
{
jQuery('#jform_php_after_cancel-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_after_cancel-lbl').closest('.control-group').hide();
}
}
// the vvvvvxu function
function vvvvvxu(add_php_batchcopy_vvvvvxu)
{
// set the function logic
if (add_php_batchcopy_vvvvvxu == 1)
{
jQuery('#jform_php_batchcopy-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_batchcopy-lbl').closest('.control-group').hide();
}
}
// the vvvvvxv function
function vvvvvxv(add_php_batchmove_vvvvvxv)
{
// set the function logic
if (add_php_batchmove_vvvvvxv == 1)
{
jQuery('#jform_php_batchmove-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_batchmove-lbl').closest('.control-group').hide();
}
}
// the vvvvvxw function
function vvvvvxw(add_php_before_publish_vvvvvxw)
{
// set the function logic
if (add_php_before_publish_vvvvvxw == 1)
{
jQuery('#jform_php_before_publish-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_before_publish-lbl').closest('.control-group').hide();
}
}
// the vvvvvxx function
function vvvvvxx(add_php_after_publish_vvvvvxx)
{
// set the function logic
if (add_php_after_publish_vvvvvxx == 1)
{
jQuery('#jform_php_after_publish-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_after_publish-lbl').closest('.control-group').hide();
}
}
// the vvvvvxy function
function vvvvvxy(add_php_before_delete_vvvvvxy)
{
// set the function logic
if (add_php_before_delete_vvvvvxy == 1)
{
jQuery('#jform_php_before_delete-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_before_delete-lbl').closest('.control-group').hide();
}
}
// the vvvvvxz function
function vvvvvxz(add_php_after_delete_vvvvvxz)
{
// set the function logic
if (add_php_after_delete_vvvvvxz == 1)
{
jQuery('#jform_php_after_delete-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_after_delete-lbl').closest('.control-group').hide();
}
}
// the vvvvvya function
function vvvvvya(add_php_document_vvvvvya)
{
// set the function logic
if (add_php_document_vvvvvya == 1)
{
jQuery('#jform_php_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvyb function
function vvvvvyb(add_sql_vvvvvyb)
{
// set the function logic
if (add_sql_vvvvvyb == 1)
{
jQuery('#jform_source').closest('.control-group').show();
// add required attribute to source field
if (jform_vvvvvybvwa_required)
{
updateFieldRequired('source',0);
jQuery('#jform_source').prop('required','required');
jQuery('#jform_source').attr('aria-required',true);
jQuery('#jform_source').addClass('required');
jform_vvvvvybvwa_required = false;
}
}
else
{
jQuery('#jform_source').closest('.control-group').hide();
// remove required attribute from source field
if (!jform_vvvvvybvwa_required)
{
updateFieldRequired('source',1);
jQuery('#jform_source').removeAttr('required');
jQuery('#jform_source').removeAttr('aria-required');
jQuery('#jform_source').removeClass('required');
jform_vvvvvybvwa_required = true;
}
}
}
// the vvvvvyc function
function vvvvvyc(source_vvvvvyc,add_sql_vvvvvyc)
{
// set the function logic
if (source_vvvvvyc == 2 && add_sql_vvvvvyc == 1)
{
jQuery('#jform_sql').closest('.control-group').show();
}
else
{
jQuery('#jform_sql').closest('.control-group').hide();
}
}
// the vvvvvye function
function vvvvvye(source_vvvvvye,add_sql_vvvvvye)
{
// set the function logic
if (source_vvvvvye == 1 && add_sql_vvvvvye == 1)
{
jQuery('#jform_addtables-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_addtables-lbl').closest('.control-group').hide();
}
}
// the vvvvvyg function
function vvvvvyg(add_custom_import_vvvvvyg)
{
// set the function logic
if (add_custom_import_vvvvvyg == 1)
{
jQuery('#jform_html_import_view').closest('.control-group').show();
// add required attribute to html_import_view field
if (jform_vvvvvygvwb_required)
{
updateFieldRequired('html_import_view',0);
jQuery('#jform_html_import_view').prop('required','required');
jQuery('#jform_html_import_view').attr('aria-required',true);
jQuery('#jform_html_import_view').addClass('required');
jform_vvvvvygvwb_required = false;
}
jQuery('.note_advanced_import').closest('.control-group').show();
jQuery('#jform_php_import_display').closest('.control-group').show();
// add required attribute to php_import_display field
if (jform_vvvvvygvwc_required)
{
updateFieldRequired('php_import_display',0);
jQuery('#jform_php_import_display').prop('required','required');
jQuery('#jform_php_import_display').attr('aria-required',true);
jQuery('#jform_php_import_display').addClass('required');
jform_vvvvvygvwc_required = false;
}
jQuery('#jform_php_import_ext').closest('.control-group').show();
// add required attribute to php_import_ext field
if (jform_vvvvvygvwd_required)
{
updateFieldRequired('php_import_ext',0);
jQuery('#jform_php_import_ext').prop('required','required');
jQuery('#jform_php_import_ext').attr('aria-required',true);
jQuery('#jform_php_import_ext').addClass('required');
jform_vvvvvygvwd_required = false;
}
jQuery('#jform_php_import_headers').closest('.control-group').show();
// add required attribute to php_import_headers field
if (jform_vvvvvygvwe_required)
{
updateFieldRequired('php_import_headers',0);
jQuery('#jform_php_import_headers').prop('required','required');
jQuery('#jform_php_import_headers').attr('aria-required',true);
jQuery('#jform_php_import_headers').addClass('required');
jform_vvvvvygvwe_required = false;
}
jQuery('#jform_php_import').closest('.control-group').show();
// add required attribute to php_import field
if (jform_vvvvvygvwf_required)
{
updateFieldRequired('php_import',0);
jQuery('#jform_php_import').prop('required','required');
jQuery('#jform_php_import').attr('aria-required',true);
jQuery('#jform_php_import').addClass('required');
jform_vvvvvygvwf_required = false;
}
jQuery('#jform_php_import_save').closest('.control-group').show();
// add required attribute to php_import_save field
if (jform_vvvvvygvwg_required)
{
updateFieldRequired('php_import_save',0);
jQuery('#jform_php_import_save').prop('required','required');
jQuery('#jform_php_import_save').attr('aria-required',true);
jQuery('#jform_php_import_save').addClass('required');
jform_vvvvvygvwg_required = false;
}
jQuery('#jform_php_import_setdata').closest('.control-group').show();
// add required attribute to php_import_setdata field
if (jform_vvvvvygvwh_required)
{
updateFieldRequired('php_import_setdata',0);
jQuery('#jform_php_import_setdata').prop('required','required');
jQuery('#jform_php_import_setdata').attr('aria-required',true);
jQuery('#jform_php_import_setdata').addClass('required');
jform_vvvvvygvwh_required = false;
}
}
else
{
jQuery('#jform_html_import_view').closest('.control-group').hide();
// remove required attribute from html_import_view field
if (!jform_vvvvvygvwb_required)
{
updateFieldRequired('html_import_view',1);
jQuery('#jform_html_import_view').removeAttr('required');
jQuery('#jform_html_import_view').removeAttr('aria-required');
jQuery('#jform_html_import_view').removeClass('required');
jform_vvvvvygvwb_required = true;
}
jQuery('.note_advanced_import').closest('.control-group').hide();
jQuery('#jform_php_import_display').closest('.control-group').hide();
// remove required attribute from php_import_display field
if (!jform_vvvvvygvwc_required)
{
updateFieldRequired('php_import_display',1);
jQuery('#jform_php_import_display').removeAttr('required');
jQuery('#jform_php_import_display').removeAttr('aria-required');
jQuery('#jform_php_import_display').removeClass('required');
jform_vvvvvygvwc_required = true;
}
jQuery('#jform_php_import_ext').closest('.control-group').hide();
// remove required attribute from php_import_ext field
if (!jform_vvvvvygvwd_required)
{
updateFieldRequired('php_import_ext',1);
jQuery('#jform_php_import_ext').removeAttr('required');
jQuery('#jform_php_import_ext').removeAttr('aria-required');
jQuery('#jform_php_import_ext').removeClass('required');
jform_vvvvvygvwd_required = true;
}
jQuery('#jform_php_import_headers').closest('.control-group').hide();
// remove required attribute from php_import_headers field
if (!jform_vvvvvygvwe_required)
{
updateFieldRequired('php_import_headers',1);
jQuery('#jform_php_import_headers').removeAttr('required');
jQuery('#jform_php_import_headers').removeAttr('aria-required');
jQuery('#jform_php_import_headers').removeClass('required');
jform_vvvvvygvwe_required = true;
}
jQuery('#jform_php_import').closest('.control-group').hide();
// remove required attribute from php_import field
if (!jform_vvvvvygvwf_required)
{
updateFieldRequired('php_import',1);
jQuery('#jform_php_import').removeAttr('required');
jQuery('#jform_php_import').removeAttr('aria-required');
jQuery('#jform_php_import').removeClass('required');
jform_vvvvvygvwf_required = true;
}
jQuery('#jform_php_import_save').closest('.control-group').hide();
// remove required attribute from php_import_save field
if (!jform_vvvvvygvwg_required)
{
updateFieldRequired('php_import_save',1);
jQuery('#jform_php_import_save').removeAttr('required');
jQuery('#jform_php_import_save').removeAttr('aria-required');
jQuery('#jform_php_import_save').removeClass('required');
jform_vvvvvygvwg_required = true;
}
jQuery('#jform_php_import_setdata').closest('.control-group').hide();
// remove required attribute from php_import_setdata field
if (!jform_vvvvvygvwh_required)
{
updateFieldRequired('php_import_setdata',1);
jQuery('#jform_php_import_setdata').removeAttr('required');
jQuery('#jform_php_import_setdata').removeAttr('aria-required');
jQuery('#jform_php_import_setdata').removeClass('required');
jform_vvvvvygvwh_required = true;
}
}
}
// the vvvvvyh function
function vvvvvyh(add_custom_import_vvvvvyh)
{
// set the function logic
if (add_custom_import_vvvvvyh == 0)
{
jQuery('.note_beginner_import').closest('.control-group').show();
}
else
{
jQuery('.note_beginner_import').closest('.control-group').hide();
}
}
// the vvvvvyi function
function vvvvvyi(add_custom_button_vvvvvyi)
{
// set the function logic
if (add_custom_button_vvvvvyi == 1)
{
jQuery('#jform_custom_button-lbl').closest('.control-group').show();
jQuery('#jform_php_controller-lbl').closest('.control-group').show();
jQuery('#jform_php_controller_list-lbl').closest('.control-group').show();
jQuery('#jform_php_model-lbl').closest('.control-group').show();
jQuery('#jform_php_model_list-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_custom_button-lbl').closest('.control-group').hide();
jQuery('#jform_php_controller-lbl').closest('.control-group').hide();
jQuery('#jform_php_controller_list-lbl').closest('.control-group').hide();
jQuery('#jform_php_model-lbl').closest('.control-group').hide();
jQuery('#jform_php_model_list-lbl').closest('.control-group').hide();
}
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// check if this view has alias field
checkAliasField();
// check if this view has category field
checkCategoryField();
// get the linked details
getLinked();
// set button
addButtonID('admin_fields','create_edit_buttons', 1);
// <-- first
var valueSwitch = jQuery("#jform_add_custom_import
input[type='radio']:checked").val();
getDynamicScripts(valueSwitch);
// now load the fields
getAjaxDisplay('admin_fields');
getAjaxDisplay('admin_fields_conditions');
getAjaxDisplay('admin_fields_relations');
// set button
addButtonID('admin_fields_conditions','create_edit_buttons',
1); // <-- second
// set button to create more fields
addButton('field','create_edit_buttons'); // <--
third
// set button
addButtonID('admin_fields_relations','create_edit_buttons',
1); // <-- forth
// set button
addButtonID('admin_custom_tabs','addtabs-lbl', 1); //
<-- fifth
// check and load all the customcode edit buttons
getEditCustomCodeButtons();
});
function checkAliasField() {
getCodeFrom_server(1, 'type', 'type',
'checkAliasField').then(function(result) {
if(result){
// remove the notice
jQuery('.note_create_edit_notice_p').remove();
} else {
// hide everything about alias management
jQuery('#jform_alias_builder_type').closest('.control-group').remove();
jQuery('#jform_alias_builder').closest('.control-group').remove();
jQuery('.note_alias_builder_default').closest('.control-group').remove();
jQuery('.note_alias_builder_custom').closest('.control-group').remove();
}
});
}
function checkCategoryField() {
getCodeFrom_server(1, 'type', 'type',
'checkCategoryField').then(function(result) {
if(result){
// remove the notice
jQuery('.note_create_edit_notice_p').remove();
} else {
// hide everything about category management
jQuery('#jform_add_category_submenu').closest('.control-group').remove();
jQuery('.note_category_menu_switch').closest('.control-group').remove();
}
});
}
function getAjaxDisplay(type){
getCodeFrom_server(1, type, 'type',
'getAjaxDisplay').then(function(result) {
if(result){
jQuery('#display_'+type).html(result);
}
// set button
addButtonID(type,'header_'+type+'_buttons', 2); //
<-- little edit button
});
}
function addData(result,where){
jQuery(result).insertAfter(jQuery(where).closest('.control-group'));
}
function getTableColumns(fieldKey, table_, nr_){
// first check if the field is set
if(jQuery("#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_table").length)
{
// get options
var tableName =
jQuery("#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_table
option:selected").val();
getCodeFrom_server(1, tableName, 'table',
'tableColumns').then(function(result) {
if(result){
jQuery("textarea#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_sourcemap").val(result);
} else {
jQuery("textarea#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_sourcemap").val('');
}
});
}
}
function getDynamicScripts(id){
if (1 == id) {
// get the current values
var current_import_display =
jQuery('textarea#jform_php_import_display').val();
var current_import =
jQuery('textarea#jform_php_import').val();
var current_headers =
jQuery('textarea#jform_php_import_headers').val();
var current_setdata =
jQuery('textarea#jform_php_import_setdata').val();
var current_save =
jQuery('textarea#jform_php_import_save').val();
var current_view =
jQuery('textarea#jform_html_import_view').val();
var current_ext =
jQuery('textarea#jform_php_import_ext').val();
// set the display method script
if(current_import_display.length == 0){
getCodeFrom_server(1, 'display', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_import_display').val(result);
}
});
}
// set the import method script
if(current_import.length == 0){
getCodeFrom_server(1, 'import', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_import').val(result);
}
});
}
// set the headers method script
if(current_headers.length == 0){
getCodeFrom_server(1, 'headers', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_import_headers').val(result);
}
});
}
// set the setData method script
if(current_setdata.length == 0){
getCodeFrom_server(1, 'setdata', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_import_setdata').val(result);
}
});
}
// set the save method script
if(current_save.length == 0){
getCodeFrom_server(1, 'save', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_import_save').val(result);
}
});
}
// set the view script
if(current_view.length == 0){
getCodeFrom_server(1, 'view', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_html_import_view').val(result);
}
});
}
// set the import ext script
if(current_ext.length == 0){
getCodeFrom_server(1, 'ext', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_import_ext').val(result);
}
});
}
}
}
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function addButtonID_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButtonID&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0 && size >
0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButtonID(type, where, size){
addButtonID_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
});
}
function addButton_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButton&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButton(type, where, size){
// just to insure that default behaviour still works
size = typeof size !== 'undefined' ? size : 1;
addButton_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
})
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
class_extends.js000064400000004556151167367470007774 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jQuery(document).ready(function()
{
// load the used in div
// jQuery('#usedin').show();
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
class_method.js000064400000012636151167367470007600 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwamvxa_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var extension_type_vvvvwam =
jQuery("#jform_extension_type").val();
vvvvwam(extension_type_vvvvwam);
});
// the vvvvwam function
function vvvvwam(extension_type_vvvvwam)
{
if (isSet(extension_type_vvvvwam) &&
extension_type_vvvvwam.constructor !== Array)
{
var temp_vvvvwam = extension_type_vvvvwam;
var extension_type_vvvvwam = [];
extension_type_vvvvwam.push(temp_vvvvwam);
}
else if (!isSet(extension_type_vvvvwam))
{
var extension_type_vvvvwam = [];
}
var extension_type =
extension_type_vvvvwam.some(extension_type_vvvvwam_SomeFunc);
// set this function logic
if (extension_type)
{
jQuery('#jform_joomla_plugin_group').closest('.control-group').show();
// add required attribute to joomla_plugin_group field
if (jform_vvvvwamvxa_required)
{
updateFieldRequired('joomla_plugin_group',0);
jQuery('#jform_joomla_plugin_group').prop('required','required');
jQuery('#jform_joomla_plugin_group').attr('aria-required',true);
jQuery('#jform_joomla_plugin_group').addClass('required');
jform_vvvvwamvxa_required = false;
}
}
else
{
jQuery('#jform_joomla_plugin_group').closest('.control-group').hide();
// remove required attribute from joomla_plugin_group field
if (!jform_vvvvwamvxa_required)
{
updateFieldRequired('joomla_plugin_group',1);
jQuery('#jform_joomla_plugin_group').removeAttr('required');
jQuery('#jform_joomla_plugin_group').removeAttr('aria-required');
jQuery('#jform_joomla_plugin_group').removeClass('required');
jform_vvvvwamvxa_required = true;
}
}
}
// the vvvvwam Some function
function extension_type_vvvvwam_SomeFunc(extension_type_vvvvwam)
{
// set the function logic
if (extension_type_vvvvwam == 'plugins' ||
extension_type_vvvvwam == 'plugin')
{
return true;
}
return false;
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// load the used in div
// jQuery('#usedin').show();
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
class_property.js000064400000012636151167367470010204 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwalvwz_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var extension_type_vvvvwal =
jQuery("#jform_extension_type").val();
vvvvwal(extension_type_vvvvwal);
});
// the vvvvwal function
function vvvvwal(extension_type_vvvvwal)
{
if (isSet(extension_type_vvvvwal) &&
extension_type_vvvvwal.constructor !== Array)
{
var temp_vvvvwal = extension_type_vvvvwal;
var extension_type_vvvvwal = [];
extension_type_vvvvwal.push(temp_vvvvwal);
}
else if (!isSet(extension_type_vvvvwal))
{
var extension_type_vvvvwal = [];
}
var extension_type =
extension_type_vvvvwal.some(extension_type_vvvvwal_SomeFunc);
// set this function logic
if (extension_type)
{
jQuery('#jform_joomla_plugin_group').closest('.control-group').show();
// add required attribute to joomla_plugin_group field
if (jform_vvvvwalvwz_required)
{
updateFieldRequired('joomla_plugin_group',0);
jQuery('#jform_joomla_plugin_group').prop('required','required');
jQuery('#jform_joomla_plugin_group').attr('aria-required',true);
jQuery('#jform_joomla_plugin_group').addClass('required');
jform_vvvvwalvwz_required = false;
}
}
else
{
jQuery('#jform_joomla_plugin_group').closest('.control-group').hide();
// remove required attribute from joomla_plugin_group field
if (!jform_vvvvwalvwz_required)
{
updateFieldRequired('joomla_plugin_group',1);
jQuery('#jform_joomla_plugin_group').removeAttr('required');
jQuery('#jform_joomla_plugin_group').removeAttr('aria-required');
jQuery('#jform_joomla_plugin_group').removeClass('required');
jform_vvvvwalvwz_required = true;
}
}
}
// the vvvvwal Some function
function extension_type_vvvvwal_SomeFunc(extension_type_vvvvwal)
{
// set the function logic
if (extension_type_vvvvwal == 'plugins' ||
extension_type_vvvvwal == 'plugin')
{
return true;
}
return false;
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// load the used in div
// jQuery('#usedin').show();
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
component_admin_views.js000064400000000606151167367470011514 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_config.js000064400000000606151167367470010454 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_custom_admin_menus.js000064400000000606151167367470013100
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_custom_admin_views.js000064400000000606151167367470013106
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_dashboard.js000064400000004446151167367470011144 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jQuery(document).ready(function()
{
// check and load all the customcode edit buttons
getEditCustomCodeButtons();
});
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
component_files_folders.js000064400000000606151167367470012027 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_modules.js000064400000000606151167367470010657 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_mysql_tweaks.js000064400000000606151167367470011732 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_placeholders.js000064400000000606151167367500011646 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_plugins.js000064400000000606151167367500010662 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_site_views.js000064400000000606151167367500011362 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
component_updates.js000064400000000606151167367500010646 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
custom_admin_view.js000064400000031251151167367500010633 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_php_view_vvvvvyj = jQuery("#jform_add_php_view
input[type='radio']:checked").val();
vvvvvyj(add_php_view_vvvvvyj);
var add_php_jview_display_vvvvvyk =
jQuery("#jform_add_php_jview_display
input[type='radio']:checked").val();
vvvvvyk(add_php_jview_display_vvvvvyk);
var add_php_jview_vvvvvyl = jQuery("#jform_add_php_jview
input[type='radio']:checked").val();
vvvvvyl(add_php_jview_vvvvvyl);
var add_php_document_vvvvvym = jQuery("#jform_add_php_document
input[type='radio']:checked").val();
vvvvvym(add_php_document_vvvvvym);
var add_css_document_vvvvvyn = jQuery("#jform_add_css_document
input[type='radio']:checked").val();
vvvvvyn(add_css_document_vvvvvyn);
var add_javascript_file_vvvvvyo = jQuery("#jform_add_javascript_file
input[type='radio']:checked").val();
vvvvvyo(add_javascript_file_vvvvvyo);
var add_js_document_vvvvvyp = jQuery("#jform_add_js_document
input[type='radio']:checked").val();
vvvvvyp(add_js_document_vvvvvyp);
var add_custom_button_vvvvvyq = jQuery("#jform_add_custom_button
input[type='radio']:checked").val();
vvvvvyq(add_custom_button_vvvvvyq);
var add_css_vvvvvyr = jQuery("#jform_add_css
input[type='radio']:checked").val();
vvvvvyr(add_css_vvvvvyr);
var add_php_ajax_vvvvvys = jQuery("#jform_add_php_ajax
input[type='radio']:checked").val();
vvvvvys(add_php_ajax_vvvvvys);
});
// the vvvvvyj function
function vvvvvyj(add_php_view_vvvvvyj)
{
// set the function logic
if (add_php_view_vvvvvyj == 1)
{
jQuery('#jform_php_view-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_view-lbl').closest('.control-group').hide();
}
}
// the vvvvvyk function
function vvvvvyk(add_php_jview_display_vvvvvyk)
{
// set the function logic
if (add_php_jview_display_vvvvvyk == 1)
{
jQuery('#jform_php_jview_display-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_jview_display-lbl').closest('.control-group').hide();
}
}
// the vvvvvyl function
function vvvvvyl(add_php_jview_vvvvvyl)
{
// set the function logic
if (add_php_jview_vvvvvyl == 1)
{
jQuery('#jform_php_jview-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_jview-lbl').closest('.control-group').hide();
}
}
// the vvvvvym function
function vvvvvym(add_php_document_vvvvvym)
{
// set the function logic
if (add_php_document_vvvvvym == 1)
{
jQuery('#jform_php_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvyn function
function vvvvvyn(add_css_document_vvvvvyn)
{
// set the function logic
if (add_css_document_vvvvvyn == 1)
{
jQuery('#jform_css_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvyo function
function vvvvvyo(add_javascript_file_vvvvvyo)
{
// set the function logic
if (add_javascript_file_vvvvvyo == 1)
{
jQuery('#jform_javascript_file-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_file-lbl').closest('.control-group').hide();
}
}
// the vvvvvyp function
function vvvvvyp(add_js_document_vvvvvyp)
{
// set the function logic
if (add_js_document_vvvvvyp == 1)
{
jQuery('#jform_js_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_js_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvyq function
function vvvvvyq(add_custom_button_vvvvvyq)
{
// set the function logic
if (add_custom_button_vvvvvyq == 1)
{
jQuery('#jform_custom_button-lbl').closest('.control-group').show();
jQuery('#jform_php_controller-lbl').closest('.control-group').show();
jQuery('#jform_php_model-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_custom_button-lbl').closest('.control-group').hide();
jQuery('#jform_php_controller-lbl').closest('.control-group').hide();
jQuery('#jform_php_model-lbl').closest('.control-group').hide();
}
}
// the vvvvvyr function
function vvvvvyr(add_css_vvvvvyr)
{
// set the function logic
if (add_css_vvvvvyr == 1)
{
jQuery('#jform_css-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css-lbl').closest('.control-group').hide();
}
}
// the vvvvvys function
function vvvvvys(add_php_ajax_vvvvvys)
{
// set the function logic
if (add_php_ajax_vvvvvys == 1)
{
jQuery('#jform_ajax_input-lbl').closest('.control-group').show();
jQuery('#jform_php_ajaxmethod-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_ajax_input-lbl').closest('.control-group').hide();
jQuery('#jform_php_ajaxmethod-lbl').closest('.control-group').hide();
}
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// get the linked details
getLinked();
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
function getSnippetDetails(id){
getCodeFrom_server(id, '_type', '_type',
'snippetDetails').then(function(result) {
if(result.snippet){
var description = '';
if (result.description.length > 0) {
description =
'<p>'+result.description+'</p>';
}
var library = '';
if (result.library.length > 0) {
library = '
<b>('+result.library+')</b>';
}
var code = '<div
id="snippet-code"><b>'+result.name+'
('+result.type+')</b> <a
href="'+result.url+'" target="_blank" >see
more details'+library+'</a><br
/><em>'+result.heading+'</em><br
/><textarea id="snippet" class="span12"
rows="11">'+result.snippet+'</textarea></div>';
jQuery('#snippet-code').remove();
jQuery('.snippet-code').append(code);
// make sure the code block is active
jQuery("#snippet").focus(function() {
var jQuerythis = jQuery(this);
jQuerythis.select();
// Work around Chrome's little problem
jQuerythis.mouseup(function() {
// Prevent further mouseup intervention
jQuerythis.unbind("mouseup");
return false;
});
});
}
if(result.usage){
var usage = '<div
id="snippet-usage"><p>'+result.usage+'</p></div>';
jQuery('#snippet-usage').remove();
jQuery('.snippet-usage').append(usage);
}
})
}
function getDynamicValues_server(dynamicId){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getDynamicValues&format=json");
if(token.length > 0 && dynamicId > 0){
var request =
token+'=1&view=custom_admin_view&id='+dynamicId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getDynamicValues(id){
getDynamicValues_server(id).done(function(result) {
if(result){
jQuery('#dynamic_values').remove();
jQuery('.dynamic_values').append('<div
id="dynamic_values">'+result+'</div>');
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getLayoutDetails_server(id){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod);
if(token.length > 0 && id > 0){
var request = token+'=1&id='+id;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getLayoutDetails(id){
getLayoutDetails_server(id).done(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getTemplateDetails(id){
getCodeFrom_server(id, 'type', 'type',
'templateDetails').then(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
// set snippets that are on the page
var snippetIds = [];
var snippets = {};
var snippet = 0;
jQuery(document).ready(function($)
{
jQuery("#jform_snippet option").each(function()
{
var key = jQuery(this).val();
var text = jQuery(this).text();
snippets[key] = text;
snippetIds.push(key);
});
snippet = jQuery("#jform_snippet").val();
getSnippets();
});
function getSnippets(){
jQuery("#loading").show();
// clear the selection
jQuery('#jform_snippet').find('option').remove().end();
jQuery('#jform_snippet').trigger('liszt:updated');
// get libraries value if set
var libraries = jQuery("#jform_libraries").val();
if (libraries) {
getCodeFrom_server(1, JSON.stringify(libraries), 'libraries',
'getSnippets').then(function(result) {
setSnippets(result);
jQuery("#loading").hide();
if (typeof snippetButton !== 'undefined') {
// ensure button is correct
var snippet = jQuery('#jform_snippet').val();
snippetButton(snippet);
}
});
}
else
{
// load all snippets in none is selected
setSnippets(snippetIds);
jQuery("#loading").hide();
}
}
function setSnippets(array){
if (array) {
jQuery('#jform_snippet').append('<option
value="">'+select_a_snippet+'</option>');
jQuery.each( array, function( i, id ) {
if (id in snippets) {
jQuery('#jform_snippet').append('<option
value="'+id+'">'+snippets[id]+'</option>');
}
if (id == snippet) {
jQuery('#jform_snippet').val(id);
}
});
} else {
jQuery('#jform_snippet').append('<option
value="">'+create_a_snippet+'</option>');
}
jQuery('#jform_snippet').trigger('liszt:updated');
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
custom_code.js000064400000033720151167367500007426 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwahvwv_required = false;
jform_vvvvwaivww_required = false;
jform_vvvvwaivwx_required = false;
jform_vvvvwaivwy_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var target_vvvvwah = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwah(target_vvvvwah);
var target_vvvvwai = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwai(target_vvvvwai);
var target_vvvvwaj = jQuery("#jform_target
input[type='radio']:checked").val();
var type_vvvvwaj = jQuery("#jform_type
input[type='radio']:checked").val();
vvvvwaj(target_vvvvwaj,type_vvvvwaj);
var type_vvvvwak = jQuery("#jform_type
input[type='radio']:checked").val();
var target_vvvvwak = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwak(type_vvvvwak,target_vvvvwak);
});
// the vvvvwah function
function vvvvwah(target_vvvvwah)
{
// set the function logic
if (target_vvvvwah == 2)
{
jQuery('#jform_function_name').closest('.control-group').show();
// add required attribute to function_name field
if (jform_vvvvwahvwv_required)
{
updateFieldRequired('function_name',0);
jQuery('#jform_function_name').prop('required','required');
jQuery('#jform_function_name').attr('aria-required',true);
jQuery('#jform_function_name').addClass('required');
jform_vvvvwahvwv_required = false;
}
jQuery('.note_jcb_placeholder').closest('.control-group').show();
jQuery('#jform_system_name').closest('.control-group').show();
}
else
{
jQuery('#jform_function_name').closest('.control-group').hide();
// remove required attribute from function_name field
if (!jform_vvvvwahvwv_required)
{
updateFieldRequired('function_name',1);
jQuery('#jform_function_name').removeAttr('required');
jQuery('#jform_function_name').removeAttr('aria-required');
jQuery('#jform_function_name').removeClass('required');
jform_vvvvwahvwv_required = true;
}
jQuery('.note_jcb_placeholder').closest('.control-group').hide();
jQuery('#jform_system_name').closest('.control-group').hide();
}
}
// the vvvvwai function
function vvvvwai(target_vvvvwai)
{
// set the function logic
if (target_vvvvwai == 1)
{
jQuery('#jform_component').closest('.control-group').show();
// add required attribute to component field
if (jform_vvvvwaivww_required)
{
updateFieldRequired('component',0);
jQuery('#jform_component').prop('required','required');
jQuery('#jform_component').attr('aria-required',true);
jQuery('#jform_component').addClass('required');
jform_vvvvwaivww_required = false;
}
jQuery('#jform_path').closest('.control-group').show();
// add required attribute to path field
if (jform_vvvvwaivwx_required)
{
updateFieldRequired('path',0);
jQuery('#jform_path').prop('required','required');
jQuery('#jform_path').attr('aria-required',true);
jQuery('#jform_path').addClass('required');
jform_vvvvwaivwx_required = false;
}
jQuery('#jform_from_line').closest('.control-group').show();
jQuery('#jform_hashtarget').closest('.control-group').show();
jQuery('#jform_to_line').closest('.control-group').show();
jQuery('#jform_type').closest('.control-group').show();
// add required attribute to type field
if (jform_vvvvwaivwy_required)
{
updateFieldRequired('type',0);
jQuery('#jform_type').prop('required','required');
jQuery('#jform_type').attr('aria-required',true);
jQuery('#jform_type').addClass('required');
jform_vvvvwaivwy_required = false;
}
}
else
{
jQuery('#jform_component').closest('.control-group').hide();
// remove required attribute from component field
if (!jform_vvvvwaivww_required)
{
updateFieldRequired('component',1);
jQuery('#jform_component').removeAttr('required');
jQuery('#jform_component').removeAttr('aria-required');
jQuery('#jform_component').removeClass('required');
jform_vvvvwaivww_required = true;
}
jQuery('#jform_path').closest('.control-group').hide();
// remove required attribute from path field
if (!jform_vvvvwaivwx_required)
{
updateFieldRequired('path',1);
jQuery('#jform_path').removeAttr('required');
jQuery('#jform_path').removeAttr('aria-required');
jQuery('#jform_path').removeClass('required');
jform_vvvvwaivwx_required = true;
}
jQuery('#jform_from_line').closest('.control-group').hide();
jQuery('#jform_hashtarget').closest('.control-group').hide();
jQuery('#jform_to_line').closest('.control-group').hide();
jQuery('#jform_type').closest('.control-group').hide();
// remove required attribute from type field
if (!jform_vvvvwaivwy_required)
{
updateFieldRequired('type',1);
jQuery('#jform_type').removeAttr('required');
jQuery('#jform_type').removeAttr('aria-required');
jQuery('#jform_type').removeClass('required');
jform_vvvvwaivwy_required = true;
}
}
}
// the vvvvwaj function
function vvvvwaj(target_vvvvwaj,type_vvvvwaj)
{
// set the function logic
if (target_vvvvwaj == 1 && type_vvvvwaj == 1)
{
jQuery('#jform_hashendtarget').closest('.control-group').show();
jQuery('#jform_to_line').closest('.control-group').show();
}
else
{
jQuery('#jform_hashendtarget').closest('.control-group').hide();
jQuery('#jform_to_line').closest('.control-group').hide();
}
}
// the vvvvwak function
function vvvvwak(type_vvvvwak,target_vvvvwak)
{
// set the function logic
if (type_vvvvwak == 1 && target_vvvvwak == 1)
{
jQuery('#jform_hashendtarget').closest('.control-group').show();
jQuery('#jform_to_line').closest('.control-group').show();
}
else
{
jQuery('#jform_hashendtarget').closest('.control-group').hide();
jQuery('#jform_to_line').closest('.control-group').hide();
}
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
var target = jQuery("#jform_target
input[type='radio']:checked").val();
if (target == 2) {
jQuery('#usedin').show();
var functioName = jQuery('#jform_function_name').val();
// check if this function name is taken
checkFunctionName(functioName);
}
var type = jQuery("#jform_comment_type
input[type='radio']:checked").val();
if (type == 2) {
jQuery('#html-comment-info').show();
jQuery('#phpjs-comment-info').hide();
} else {
jQuery('#html-comment-info').hide();
jQuery('#phpjs-comment-info').show();
}
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function setCustomCodePlaceholder() {
var ide = jQuery('#jform_id').val();
var functioName = jQuery('#jform_function_name').val();
if (ide > 0 && functioName.length > 2) {
jQuery('#jcb-placeholder').html('<code>[CUSTO'+'MCODE='+functioName+']</code>');
jQuery('#jcb-placeholder-arg').html('<code>[CUSTO'+'MCODE='+functioName+'+value1,value2]</code>');
} else if (ide > 0){
jQuery('#jcb-placeholder').html('<code>[not
ready]</code>');
jQuery('#jcb-placeholder-arg').html('<code>[not
ready]</code>');
} else if (functioName.length > 2) {
jQuery('#jcb-placeholder').html('<code>[CUSTO'+'MCODE='+functioName+']</code>');
jQuery('#jcb-placeholder-arg').html('<code>[CUSTO'+'MCODE='+functioName+'+value1,value2]</code>');
} else {
jQuery('#jcb-placeholder').html('<code>[save to
see]</code>');
jQuery('#jcb-placeholder-arg').html('<code>[save to
see]</code>');
}
// update the notes
if (ide > 0) {
jQuery('.placeholder-key-id').text(ide);
}
}
function checkFunctionName(functioName) {
if (functioName.length > 2) {
var ide = jQuery('#jform_id').val();
if (ide == 0) {
ide = -1;
}
checkFunctionName_server(functioName, ide).done(function(result) {
if(result.name && result.message){
// show notice that functioName is okay
jQuery.UIkit.notify({message: result.message, timeout: 5000, status:
result.status, pos: 'top-right'});
jQuery('#jform_function_name').val(result.name);
// now start search for where the function is used
usedin(result.name, ide);
} else if(result.message){
// show notice that functioName is not okay
jQuery.UIkit.notify({message: result.message, timeout: 5000, status:
result.status, pos: 'top-right'});
jQuery('#jform_function_name').val('');
} else {
// set an error that message was not send
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_FUNCTION_NAME_ALREADY_TAKEN_PLEASE_TRY_AGAIN'),
timeout: 5000, status: 'danger', pos: 'top-right'});
jQuery('#jform_function_name').val('');
}
// set custom code placeholder
setCustomCodePlaceholder();
});
} else {
// set an error that message was not send
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_YOU_MUST_ADD_AN_UNIQUE_FUNCTION_NAME'),
timeout: 5000, status: 'danger', pos: 'top-right'});
jQuery('#jform_function_name').val('');
// set custom code placeholder
setCustomCodePlaceholder();
}
}
// check Function name
function checkFunctionName_server(functioName, ide){
var getUrl =
"index.php?option=com_componentbuilder&task=ajax.checkFunctionName&raw=true&format=json";
if(token.length > 0){
var request =
'token='+token+'&functioName='+functioName+'&id='+ide;
}
return jQuery.ajax({
type: 'POST',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
// check where this Function is used
function usedin(functioName, ide) {
var found = false;
jQuery('#before-usedin').hide();
jQuery('#note-usedin-not').hide();
jQuery('#note-usedin-found').hide();
jQuery('#loading-usedin').show();
var targets =
['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v'];
// if you update this, also update (below 21) &
[customcode-codeUsedInHtmlNote]!
var targetNumber = 21;
var run = 0;
var usedinChecker = setInterval(function(){
var target = targets[run];
usedin_server(functioName, ide, target).done(function(used) {
if (used.in) {
jQuery('#usedin-'+used.id).show();
jQuery('#area-'+used.id).html(used.in);
jQuery.UIkit.notify({message: used.in, timeout: 5000, status:
'success', pos: 'top-right'});
found = true;
} else {
jQuery('#usedin-'+target).hide();
}
if (run == targetNumber) {
jQuery('#loading-usedin').hide();
if (found) {
jQuery('#note-usedin-found').show();
} else {
jQuery('#note-usedin-not').show();
}
}
});
if (run == targetNumber) {
clearInterval(usedinChecker);
}
run++;
}, 800);
}
function usedin_server(functioName, ide, target){
var getUrl =
"index.php?option=com_componentbuilder&task=ajax.usedin&format=json";
if(token.length > 0){
var request =
token+'=1&functioName='+functioName+'&id='+ide+'&target='+target+'&raw=true&return_here='+return_here;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
dynamic_get.js000064400000136263151167367500007413 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvvzgvwi_required = false;
jform_vvvvvzivwj_required = false;
jform_vvvvvzjvwk_required = false;
jform_vvvvvzkvwl_required = false;
jform_vvvvvzlvwm_required = false;
jform_vvvvvzwvwn_required = false;
jform_vvvvvzwvwo_required = false;
jform_vvvvwabvwp_required = false;
jform_vvvvwabvwq_required = false;
jform_vvvvwabvwr_required = false;
jform_vvvvwacvws_required = false;
jform_vvvvwadvwt_required = false;
jform_vvvvwaevwu_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var gettype_vvvvvzg = jQuery("#jform_gettype").val();
vvvvvzg(gettype_vvvvvzg);
var main_source_vvvvvzh = jQuery("#jform_main_source").val();
vvvvvzh(main_source_vvvvvzh);
var main_source_vvvvvzi = jQuery("#jform_main_source").val();
vvvvvzi(main_source_vvvvvzi);
var main_source_vvvvvzj = jQuery("#jform_main_source").val();
vvvvvzj(main_source_vvvvvzj);
var main_source_vvvvvzk = jQuery("#jform_main_source").val();
vvvvvzk(main_source_vvvvvzk);
var main_source_vvvvvzl = jQuery("#jform_main_source").val();
vvvvvzl(main_source_vvvvvzl);
var addcalculation_vvvvvzm = jQuery("#jform_addcalculation
input[type='radio']:checked").val();
vvvvvzm(addcalculation_vvvvvzm);
var addcalculation_vvvvvzn = jQuery("#jform_addcalculation
input[type='radio']:checked").val();
var gettype_vvvvvzn = jQuery("#jform_gettype").val();
vvvvvzn(addcalculation_vvvvvzn,gettype_vvvvvzn);
var addcalculation_vvvvvzo = jQuery("#jform_addcalculation
input[type='radio']:checked").val();
var gettype_vvvvvzo = jQuery("#jform_gettype").val();
vvvvvzo(addcalculation_vvvvvzo,gettype_vvvvvzo);
var main_source_vvvvvzr = jQuery("#jform_main_source").val();
vvvvvzr(main_source_vvvvvzr);
var main_source_vvvvvzs = jQuery("#jform_main_source").val();
vvvvvzs(main_source_vvvvvzs);
var add_php_before_getitem_vvvvvzt =
jQuery("#jform_add_php_before_getitem
input[type='radio']:checked").val();
var gettype_vvvvvzt = jQuery("#jform_gettype").val();
vvvvvzt(add_php_before_getitem_vvvvvzt,gettype_vvvvvzt);
var add_php_after_getitem_vvvvvzu =
jQuery("#jform_add_php_after_getitem
input[type='radio']:checked").val();
var gettype_vvvvvzu = jQuery("#jform_gettype").val();
vvvvvzu(add_php_after_getitem_vvvvvzu,gettype_vvvvvzu);
var gettype_vvvvvzw = jQuery("#jform_gettype").val();
vvvvvzw(gettype_vvvvvzw);
var add_php_getlistquery_vvvvvzx =
jQuery("#jform_add_php_getlistquery
input[type='radio']:checked").val();
var gettype_vvvvvzx = jQuery("#jform_gettype").val();
vvvvvzx(add_php_getlistquery_vvvvvzx,gettype_vvvvvzx);
var add_php_before_getitems_vvvvvzy =
jQuery("#jform_add_php_before_getitems
input[type='radio']:checked").val();
var gettype_vvvvvzy = jQuery("#jform_gettype").val();
vvvvvzy(add_php_before_getitems_vvvvvzy,gettype_vvvvvzy);
var add_php_after_getitems_vvvvvzz =
jQuery("#jform_add_php_after_getitems
input[type='radio']:checked").val();
var gettype_vvvvvzz = jQuery("#jform_gettype").val();
vvvvvzz(add_php_after_getitems_vvvvvzz,gettype_vvvvvzz);
var gettype_vvvvwab = jQuery("#jform_gettype").val();
vvvvwab(gettype_vvvvwab);
var gettype_vvvvwac = jQuery("#jform_gettype").val();
vvvvwac(gettype_vvvvwac);
var gettype_vvvvwad = jQuery("#jform_gettype").val();
vvvvwad(gettype_vvvvwad);
var gettype_vvvvwae = jQuery("#jform_gettype").val();
var add_php_router_parse_vvvvwae =
jQuery("#jform_add_php_router_parse
input[type='radio']:checked").val();
vvvvwae(gettype_vvvvwae,add_php_router_parse_vvvvwae);
var gettype_vvvvwag = jQuery("#jform_gettype").val();
vvvvwag(gettype_vvvvwag);
});
// the vvvvvzg function
function vvvvvzg(gettype_vvvvvzg)
{
if (isSet(gettype_vvvvvzg) && gettype_vvvvvzg.constructor !==
Array)
{
var temp_vvvvvzg = gettype_vvvvvzg;
var gettype_vvvvvzg = [];
gettype_vvvvvzg.push(temp_vvvvvzg);
}
else if (!isSet(gettype_vvvvvzg))
{
var gettype_vvvvvzg = [];
}
var gettype = gettype_vvvvvzg.some(gettype_vvvvvzg_SomeFunc);
// set this function logic
if (gettype)
{
jQuery('#jform_getcustom').closest('.control-group').show();
// add required attribute to getcustom field
if (jform_vvvvvzgvwi_required)
{
updateFieldRequired('getcustom',0);
jQuery('#jform_getcustom').prop('required','required');
jQuery('#jform_getcustom').attr('aria-required',true);
jQuery('#jform_getcustom').addClass('required');
jform_vvvvvzgvwi_required = false;
}
}
else
{
jQuery('#jform_getcustom').closest('.control-group').hide();
// remove required attribute from getcustom field
if (!jform_vvvvvzgvwi_required)
{
updateFieldRequired('getcustom',1);
jQuery('#jform_getcustom').removeAttr('required');
jQuery('#jform_getcustom').removeAttr('aria-required');
jQuery('#jform_getcustom').removeClass('required');
jform_vvvvvzgvwi_required = true;
}
}
}
// the vvvvvzg Some function
function gettype_vvvvvzg_SomeFunc(gettype_vvvvvzg)
{
// set the function logic
if (gettype_vvvvvzg == 3 || gettype_vvvvvzg == 4)
{
return true;
}
return false;
}
// the vvvvvzh function
function vvvvvzh(main_source_vvvvvzh)
{
if (isSet(main_source_vvvvvzh) && main_source_vvvvvzh.constructor
!== Array)
{
var temp_vvvvvzh = main_source_vvvvvzh;
var main_source_vvvvvzh = [];
main_source_vvvvvzh.push(temp_vvvvvzh);
}
else if (!isSet(main_source_vvvvvzh))
{
var main_source_vvvvvzh = [];
}
var main_source = main_source_vvvvvzh.some(main_source_vvvvvzh_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_select_all').closest('.control-group').show();
}
else
{
jQuery('#jform_select_all').closest('.control-group').hide();
}
}
// the vvvvvzh Some function
function main_source_vvvvvzh_SomeFunc(main_source_vvvvvzh)
{
// set the function logic
if (main_source_vvvvvzh == 1 || main_source_vvvvvzh == 2)
{
return true;
}
return false;
}
// the vvvvvzi function
function vvvvvzi(main_source_vvvvvzi)
{
if (isSet(main_source_vvvvvzi) && main_source_vvvvvzi.constructor
!== Array)
{
var temp_vvvvvzi = main_source_vvvvvzi;
var main_source_vvvvvzi = [];
main_source_vvvvvzi.push(temp_vvvvvzi);
}
else if (!isSet(main_source_vvvvvzi))
{
var main_source_vvvvvzi = [];
}
var main_source = main_source_vvvvvzi.some(main_source_vvvvvzi_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_view_table_main').closest('.control-group').show();
// add required attribute to view_table_main field
if (jform_vvvvvzivwj_required)
{
updateFieldRequired('view_table_main',0);
jQuery('#jform_view_table_main').prop('required','required');
jQuery('#jform_view_table_main').attr('aria-required',true);
jQuery('#jform_view_table_main').addClass('required');
jform_vvvvvzivwj_required = false;
}
}
else
{
jQuery('#jform_view_table_main').closest('.control-group').hide();
// remove required attribute from view_table_main field
if (!jform_vvvvvzivwj_required)
{
updateFieldRequired('view_table_main',1);
jQuery('#jform_view_table_main').removeAttr('required');
jQuery('#jform_view_table_main').removeAttr('aria-required');
jQuery('#jform_view_table_main').removeClass('required');
jform_vvvvvzivwj_required = true;
}
}
}
// the vvvvvzi Some function
function main_source_vvvvvzi_SomeFunc(main_source_vvvvvzi)
{
// set the function logic
if (main_source_vvvvvzi == 1)
{
return true;
}
return false;
}
// the vvvvvzj function
function vvvvvzj(main_source_vvvvvzj)
{
if (isSet(main_source_vvvvvzj) && main_source_vvvvvzj.constructor
!== Array)
{
var temp_vvvvvzj = main_source_vvvvvzj;
var main_source_vvvvvzj = [];
main_source_vvvvvzj.push(temp_vvvvvzj);
}
else if (!isSet(main_source_vvvvvzj))
{
var main_source_vvvvvzj = [];
}
var main_source = main_source_vvvvvzj.some(main_source_vvvvvzj_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_view_selection').closest('.control-group').show();
// add required attribute to view_selection field
if (jform_vvvvvzjvwk_required)
{
updateFieldRequired('view_selection',0);
jQuery('#jform_view_selection').prop('required','required');
jQuery('#jform_view_selection').attr('aria-required',true);
jQuery('#jform_view_selection').addClass('required');
jform_vvvvvzjvwk_required = false;
}
}
else
{
jQuery('#jform_view_selection').closest('.control-group').hide();
// remove required attribute from view_selection field
if (!jform_vvvvvzjvwk_required)
{
updateFieldRequired('view_selection',1);
jQuery('#jform_view_selection').removeAttr('required');
jQuery('#jform_view_selection').removeAttr('aria-required');
jQuery('#jform_view_selection').removeClass('required');
jform_vvvvvzjvwk_required = true;
}
}
}
// the vvvvvzj Some function
function main_source_vvvvvzj_SomeFunc(main_source_vvvvvzj)
{
// set the function logic
if (main_source_vvvvvzj == 1)
{
return true;
}
return false;
}
// the vvvvvzk function
function vvvvvzk(main_source_vvvvvzk)
{
if (isSet(main_source_vvvvvzk) && main_source_vvvvvzk.constructor
!== Array)
{
var temp_vvvvvzk = main_source_vvvvvzk;
var main_source_vvvvvzk = [];
main_source_vvvvvzk.push(temp_vvvvvzk);
}
else if (!isSet(main_source_vvvvvzk))
{
var main_source_vvvvvzk = [];
}
var main_source = main_source_vvvvvzk.some(main_source_vvvvvzk_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_db_table_main').closest('.control-group').show();
// add required attribute to db_table_main field
if (jform_vvvvvzkvwl_required)
{
updateFieldRequired('db_table_main',0);
jQuery('#jform_db_table_main').prop('required','required');
jQuery('#jform_db_table_main').attr('aria-required',true);
jQuery('#jform_db_table_main').addClass('required');
jform_vvvvvzkvwl_required = false;
}
}
else
{
jQuery('#jform_db_table_main').closest('.control-group').hide();
// remove required attribute from db_table_main field
if (!jform_vvvvvzkvwl_required)
{
updateFieldRequired('db_table_main',1);
jQuery('#jform_db_table_main').removeAttr('required');
jQuery('#jform_db_table_main').removeAttr('aria-required');
jQuery('#jform_db_table_main').removeClass('required');
jform_vvvvvzkvwl_required = true;
}
}
}
// the vvvvvzk Some function
function main_source_vvvvvzk_SomeFunc(main_source_vvvvvzk)
{
// set the function logic
if (main_source_vvvvvzk == 2)
{
return true;
}
return false;
}
// the vvvvvzl function
function vvvvvzl(main_source_vvvvvzl)
{
if (isSet(main_source_vvvvvzl) && main_source_vvvvvzl.constructor
!== Array)
{
var temp_vvvvvzl = main_source_vvvvvzl;
var main_source_vvvvvzl = [];
main_source_vvvvvzl.push(temp_vvvvvzl);
}
else if (!isSet(main_source_vvvvvzl))
{
var main_source_vvvvvzl = [];
}
var main_source = main_source_vvvvvzl.some(main_source_vvvvvzl_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_db_selection').closest('.control-group').show();
// add required attribute to db_selection field
if (jform_vvvvvzlvwm_required)
{
updateFieldRequired('db_selection',0);
jQuery('#jform_db_selection').prop('required','required');
jQuery('#jform_db_selection').attr('aria-required',true);
jQuery('#jform_db_selection').addClass('required');
jform_vvvvvzlvwm_required = false;
}
}
else
{
jQuery('#jform_db_selection').closest('.control-group').hide();
// remove required attribute from db_selection field
if (!jform_vvvvvzlvwm_required)
{
updateFieldRequired('db_selection',1);
jQuery('#jform_db_selection').removeAttr('required');
jQuery('#jform_db_selection').removeAttr('aria-required');
jQuery('#jform_db_selection').removeClass('required');
jform_vvvvvzlvwm_required = true;
}
}
}
// the vvvvvzl Some function
function main_source_vvvvvzl_SomeFunc(main_source_vvvvvzl)
{
// set the function logic
if (main_source_vvvvvzl == 2)
{
return true;
}
return false;
}
// the vvvvvzm function
function vvvvvzm(addcalculation_vvvvvzm)
{
// set the function logic
if (addcalculation_vvvvvzm == 1)
{
jQuery('#jform_php_calculation-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_calculation-lbl').closest('.control-group').hide();
}
}
// the vvvvvzn function
function vvvvvzn(addcalculation_vvvvvzn,gettype_vvvvvzn)
{
if (isSet(addcalculation_vvvvvzn) &&
addcalculation_vvvvvzn.constructor !== Array)
{
var temp_vvvvvzn = addcalculation_vvvvvzn;
var addcalculation_vvvvvzn = [];
addcalculation_vvvvvzn.push(temp_vvvvvzn);
}
else if (!isSet(addcalculation_vvvvvzn))
{
var addcalculation_vvvvvzn = [];
}
var addcalculation =
addcalculation_vvvvvzn.some(addcalculation_vvvvvzn_SomeFunc);
if (isSet(gettype_vvvvvzn) && gettype_vvvvvzn.constructor !==
Array)
{
var temp_vvvvvzn = gettype_vvvvvzn;
var gettype_vvvvvzn = [];
gettype_vvvvvzn.push(temp_vvvvvzn);
}
else if (!isSet(gettype_vvvvvzn))
{
var gettype_vvvvvzn = [];
}
var gettype = gettype_vvvvvzn.some(gettype_vvvvvzn_SomeFunc);
// set this function logic
if (addcalculation && gettype)
{
jQuery('.note_calculation_item').closest('.control-group').show();
}
else
{
jQuery('.note_calculation_item').closest('.control-group').hide();
}
}
// the vvvvvzn Some function
function addcalculation_vvvvvzn_SomeFunc(addcalculation_vvvvvzn)
{
// set the function logic
if (addcalculation_vvvvvzn == 1)
{
return true;
}
return false;
}
// the vvvvvzn Some function
function gettype_vvvvvzn_SomeFunc(gettype_vvvvvzn)
{
// set the function logic
if (gettype_vvvvvzn == 1 || gettype_vvvvvzn == 3)
{
return true;
}
return false;
}
// the vvvvvzo function
function vvvvvzo(addcalculation_vvvvvzo,gettype_vvvvvzo)
{
if (isSet(addcalculation_vvvvvzo) &&
addcalculation_vvvvvzo.constructor !== Array)
{
var temp_vvvvvzo = addcalculation_vvvvvzo;
var addcalculation_vvvvvzo = [];
addcalculation_vvvvvzo.push(temp_vvvvvzo);
}
else if (!isSet(addcalculation_vvvvvzo))
{
var addcalculation_vvvvvzo = [];
}
var addcalculation =
addcalculation_vvvvvzo.some(addcalculation_vvvvvzo_SomeFunc);
if (isSet(gettype_vvvvvzo) && gettype_vvvvvzo.constructor !==
Array)
{
var temp_vvvvvzo = gettype_vvvvvzo;
var gettype_vvvvvzo = [];
gettype_vvvvvzo.push(temp_vvvvvzo);
}
else if (!isSet(gettype_vvvvvzo))
{
var gettype_vvvvvzo = [];
}
var gettype = gettype_vvvvvzo.some(gettype_vvvvvzo_SomeFunc);
// set this function logic
if (addcalculation && gettype)
{
jQuery('.note_calculation_items').closest('.control-group').show();
}
else
{
jQuery('.note_calculation_items').closest('.control-group').hide();
}
}
// the vvvvvzo Some function
function addcalculation_vvvvvzo_SomeFunc(addcalculation_vvvvvzo)
{
// set the function logic
if (addcalculation_vvvvvzo == 1)
{
return true;
}
return false;
}
// the vvvvvzo Some function
function gettype_vvvvvzo_SomeFunc(gettype_vvvvvzo)
{
// set the function logic
if (gettype_vvvvvzo == 2 || gettype_vvvvvzo == 4)
{
return true;
}
return false;
}
// the vvvvvzr function
function vvvvvzr(main_source_vvvvvzr)
{
if (isSet(main_source_vvvvvzr) && main_source_vvvvvzr.constructor
!== Array)
{
var temp_vvvvvzr = main_source_vvvvvzr;
var main_source_vvvvvzr = [];
main_source_vvvvvzr.push(temp_vvvvvzr);
}
else if (!isSet(main_source_vvvvvzr))
{
var main_source_vvvvvzr = [];
}
var main_source = main_source_vvvvvzr.some(main_source_vvvvvzr_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_php_custom_get-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_custom_get-lbl').closest('.control-group').hide();
}
}
// the vvvvvzr Some function
function main_source_vvvvvzr_SomeFunc(main_source_vvvvvzr)
{
// set the function logic
if (main_source_vvvvvzr == 3)
{
return true;
}
return false;
}
// the vvvvvzs function
function vvvvvzs(main_source_vvvvvzs)
{
if (isSet(main_source_vvvvvzs) && main_source_vvvvvzs.constructor
!== Array)
{
var temp_vvvvvzs = main_source_vvvvvzs;
var main_source_vvvvvzs = [];
main_source_vvvvvzs.push(temp_vvvvvzs);
}
else if (!isSet(main_source_vvvvvzs))
{
var main_source_vvvvvzs = [];
}
var main_source = main_source_vvvvvzs.some(main_source_vvvvvzs_SomeFunc);
// set this function logic
if (main_source)
{
jQuery('#jform_filter-lbl').closest('.control-group').show();
jQuery('#jform_global-lbl').closest('.control-group').show();
jQuery('#jform_group-lbl').closest('.control-group').show();
jQuery('#jform_order-lbl').closest('.control-group').show();
jQuery('#jform_where-lbl').closest('.control-group').show();
jQuery('#jform_join_db_table-lbl').closest('.control-group').show();
jQuery('#jform_join_view_table-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_filter-lbl').closest('.control-group').hide();
jQuery('#jform_global-lbl').closest('.control-group').hide();
jQuery('#jform_group-lbl').closest('.control-group').hide();
jQuery('#jform_order-lbl').closest('.control-group').hide();
jQuery('#jform_where-lbl').closest('.control-group').hide();
jQuery('#jform_join_db_table-lbl').closest('.control-group').hide();
jQuery('#jform_join_view_table-lbl').closest('.control-group').hide();
}
}
// the vvvvvzs Some function
function main_source_vvvvvzs_SomeFunc(main_source_vvvvvzs)
{
// set the function logic
if (main_source_vvvvvzs == 1 || main_source_vvvvvzs == 2)
{
return true;
}
return false;
}
// the vvvvvzt function
function vvvvvzt(add_php_before_getitem_vvvvvzt,gettype_vvvvvzt)
{
if (isSet(add_php_before_getitem_vvvvvzt) &&
add_php_before_getitem_vvvvvzt.constructor !== Array)
{
var temp_vvvvvzt = add_php_before_getitem_vvvvvzt;
var add_php_before_getitem_vvvvvzt = [];
add_php_before_getitem_vvvvvzt.push(temp_vvvvvzt);
}
else if (!isSet(add_php_before_getitem_vvvvvzt))
{
var add_php_before_getitem_vvvvvzt = [];
}
var add_php_before_getitem =
add_php_before_getitem_vvvvvzt.some(add_php_before_getitem_vvvvvzt_SomeFunc);
if (isSet(gettype_vvvvvzt) && gettype_vvvvvzt.constructor !==
Array)
{
var temp_vvvvvzt = gettype_vvvvvzt;
var gettype_vvvvvzt = [];
gettype_vvvvvzt.push(temp_vvvvvzt);
}
else if (!isSet(gettype_vvvvvzt))
{
var gettype_vvvvvzt = [];
}
var gettype = gettype_vvvvvzt.some(gettype_vvvvvzt_SomeFunc);
// set this function logic
if (add_php_before_getitem && gettype)
{
jQuery('#jform_php_before_getitem-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_before_getitem-lbl').closest('.control-group').hide();
}
}
// the vvvvvzt Some function
function
add_php_before_getitem_vvvvvzt_SomeFunc(add_php_before_getitem_vvvvvzt)
{
// set the function logic
if (add_php_before_getitem_vvvvvzt == 1)
{
return true;
}
return false;
}
// the vvvvvzt Some function
function gettype_vvvvvzt_SomeFunc(gettype_vvvvvzt)
{
// set the function logic
if (gettype_vvvvvzt == 1 || gettype_vvvvvzt == 3)
{
return true;
}
return false;
}
// the vvvvvzu function
function vvvvvzu(add_php_after_getitem_vvvvvzu,gettype_vvvvvzu)
{
if (isSet(add_php_after_getitem_vvvvvzu) &&
add_php_after_getitem_vvvvvzu.constructor !== Array)
{
var temp_vvvvvzu = add_php_after_getitem_vvvvvzu;
var add_php_after_getitem_vvvvvzu = [];
add_php_after_getitem_vvvvvzu.push(temp_vvvvvzu);
}
else if (!isSet(add_php_after_getitem_vvvvvzu))
{
var add_php_after_getitem_vvvvvzu = [];
}
var add_php_after_getitem =
add_php_after_getitem_vvvvvzu.some(add_php_after_getitem_vvvvvzu_SomeFunc);
if (isSet(gettype_vvvvvzu) && gettype_vvvvvzu.constructor !==
Array)
{
var temp_vvvvvzu = gettype_vvvvvzu;
var gettype_vvvvvzu = [];
gettype_vvvvvzu.push(temp_vvvvvzu);
}
else if (!isSet(gettype_vvvvvzu))
{
var gettype_vvvvvzu = [];
}
var gettype = gettype_vvvvvzu.some(gettype_vvvvvzu_SomeFunc);
// set this function logic
if (add_php_after_getitem && gettype)
{
jQuery('#jform_php_after_getitem-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_after_getitem-lbl').closest('.control-group').hide();
}
}
// the vvvvvzu Some function
function
add_php_after_getitem_vvvvvzu_SomeFunc(add_php_after_getitem_vvvvvzu)
{
// set the function logic
if (add_php_after_getitem_vvvvvzu == 1)
{
return true;
}
return false;
}
// the vvvvvzu Some function
function gettype_vvvvvzu_SomeFunc(gettype_vvvvvzu)
{
// set the function logic
if (gettype_vvvvvzu == 1 || gettype_vvvvvzu == 3)
{
return true;
}
return false;
}
// the vvvvvzw function
function vvvvvzw(gettype_vvvvvzw)
{
if (isSet(gettype_vvvvvzw) && gettype_vvvvvzw.constructor !==
Array)
{
var temp_vvvvvzw = gettype_vvvvvzw;
var gettype_vvvvvzw = [];
gettype_vvvvvzw.push(temp_vvvvvzw);
}
else if (!isSet(gettype_vvvvvzw))
{
var gettype_vvvvvzw = [];
}
var gettype = gettype_vvvvvzw.some(gettype_vvvvvzw_SomeFunc);
// set this function logic
if (gettype)
{
jQuery('#jform_add_php_after_getitem').closest('.control-group').show();
// add required attribute to add_php_after_getitem field
if (jform_vvvvvzwvwn_required)
{
updateFieldRequired('add_php_after_getitem',0);
jQuery('#jform_add_php_after_getitem').prop('required','required');
jQuery('#jform_add_php_after_getitem').attr('aria-required',true);
jQuery('#jform_add_php_after_getitem').addClass('required');
jform_vvvvvzwvwn_required = false;
}
jQuery('#jform_add_php_before_getitem').closest('.control-group').show();
// add required attribute to add_php_before_getitem field
if (jform_vvvvvzwvwo_required)
{
updateFieldRequired('add_php_before_getitem',0);
jQuery('#jform_add_php_before_getitem').prop('required','required');
jQuery('#jform_add_php_before_getitem').attr('aria-required',true);
jQuery('#jform_add_php_before_getitem').addClass('required');
jform_vvvvvzwvwo_required = false;
}
}
else
{
jQuery('#jform_add_php_after_getitem').closest('.control-group').hide();
// remove required attribute from add_php_after_getitem field
if (!jform_vvvvvzwvwn_required)
{
updateFieldRequired('add_php_after_getitem',1);
jQuery('#jform_add_php_after_getitem').removeAttr('required');
jQuery('#jform_add_php_after_getitem').removeAttr('aria-required');
jQuery('#jform_add_php_after_getitem').removeClass('required');
jform_vvvvvzwvwn_required = true;
}
jQuery('#jform_add_php_before_getitem').closest('.control-group').hide();
// remove required attribute from add_php_before_getitem field
if (!jform_vvvvvzwvwo_required)
{
updateFieldRequired('add_php_before_getitem',1);
jQuery('#jform_add_php_before_getitem').removeAttr('required');
jQuery('#jform_add_php_before_getitem').removeAttr('aria-required');
jQuery('#jform_add_php_before_getitem').removeClass('required');
jform_vvvvvzwvwo_required = true;
}
}
}
// the vvvvvzw Some function
function gettype_vvvvvzw_SomeFunc(gettype_vvvvvzw)
{
// set the function logic
if (gettype_vvvvvzw == 1 || gettype_vvvvvzw == 3)
{
return true;
}
return false;
}
// the vvvvvzx function
function vvvvvzx(add_php_getlistquery_vvvvvzx,gettype_vvvvvzx)
{
if (isSet(add_php_getlistquery_vvvvvzx) &&
add_php_getlistquery_vvvvvzx.constructor !== Array)
{
var temp_vvvvvzx = add_php_getlistquery_vvvvvzx;
var add_php_getlistquery_vvvvvzx = [];
add_php_getlistquery_vvvvvzx.push(temp_vvvvvzx);
}
else if (!isSet(add_php_getlistquery_vvvvvzx))
{
var add_php_getlistquery_vvvvvzx = [];
}
var add_php_getlistquery =
add_php_getlistquery_vvvvvzx.some(add_php_getlistquery_vvvvvzx_SomeFunc);
if (isSet(gettype_vvvvvzx) && gettype_vvvvvzx.constructor !==
Array)
{
var temp_vvvvvzx = gettype_vvvvvzx;
var gettype_vvvvvzx = [];
gettype_vvvvvzx.push(temp_vvvvvzx);
}
else if (!isSet(gettype_vvvvvzx))
{
var gettype_vvvvvzx = [];
}
var gettype = gettype_vvvvvzx.some(gettype_vvvvvzx_SomeFunc);
// set this function logic
if (add_php_getlistquery && gettype)
{
jQuery('#jform_php_getlistquery-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_getlistquery-lbl').closest('.control-group').hide();
}
}
// the vvvvvzx Some function
function
add_php_getlistquery_vvvvvzx_SomeFunc(add_php_getlistquery_vvvvvzx)
{
// set the function logic
if (add_php_getlistquery_vvvvvzx == 1)
{
return true;
}
return false;
}
// the vvvvvzx Some function
function gettype_vvvvvzx_SomeFunc(gettype_vvvvvzx)
{
// set the function logic
if (gettype_vvvvvzx == 2 || gettype_vvvvvzx == 4)
{
return true;
}
return false;
}
// the vvvvvzy function
function vvvvvzy(add_php_before_getitems_vvvvvzy,gettype_vvvvvzy)
{
if (isSet(add_php_before_getitems_vvvvvzy) &&
add_php_before_getitems_vvvvvzy.constructor !== Array)
{
var temp_vvvvvzy = add_php_before_getitems_vvvvvzy;
var add_php_before_getitems_vvvvvzy = [];
add_php_before_getitems_vvvvvzy.push(temp_vvvvvzy);
}
else if (!isSet(add_php_before_getitems_vvvvvzy))
{
var add_php_before_getitems_vvvvvzy = [];
}
var add_php_before_getitems =
add_php_before_getitems_vvvvvzy.some(add_php_before_getitems_vvvvvzy_SomeFunc);
if (isSet(gettype_vvvvvzy) && gettype_vvvvvzy.constructor !==
Array)
{
var temp_vvvvvzy = gettype_vvvvvzy;
var gettype_vvvvvzy = [];
gettype_vvvvvzy.push(temp_vvvvvzy);
}
else if (!isSet(gettype_vvvvvzy))
{
var gettype_vvvvvzy = [];
}
var gettype = gettype_vvvvvzy.some(gettype_vvvvvzy_SomeFunc);
// set this function logic
if (add_php_before_getitems && gettype)
{
jQuery('#jform_php_before_getitems-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_before_getitems-lbl').closest('.control-group').hide();
}
}
// the vvvvvzy Some function
function
add_php_before_getitems_vvvvvzy_SomeFunc(add_php_before_getitems_vvvvvzy)
{
// set the function logic
if (add_php_before_getitems_vvvvvzy == 1)
{
return true;
}
return false;
}
// the vvvvvzy Some function
function gettype_vvvvvzy_SomeFunc(gettype_vvvvvzy)
{
// set the function logic
if (gettype_vvvvvzy == 2 || gettype_vvvvvzy == 4)
{
return true;
}
return false;
}
// the vvvvvzz function
function vvvvvzz(add_php_after_getitems_vvvvvzz,gettype_vvvvvzz)
{
if (isSet(add_php_after_getitems_vvvvvzz) &&
add_php_after_getitems_vvvvvzz.constructor !== Array)
{
var temp_vvvvvzz = add_php_after_getitems_vvvvvzz;
var add_php_after_getitems_vvvvvzz = [];
add_php_after_getitems_vvvvvzz.push(temp_vvvvvzz);
}
else if (!isSet(add_php_after_getitems_vvvvvzz))
{
var add_php_after_getitems_vvvvvzz = [];
}
var add_php_after_getitems =
add_php_after_getitems_vvvvvzz.some(add_php_after_getitems_vvvvvzz_SomeFunc);
if (isSet(gettype_vvvvvzz) && gettype_vvvvvzz.constructor !==
Array)
{
var temp_vvvvvzz = gettype_vvvvvzz;
var gettype_vvvvvzz = [];
gettype_vvvvvzz.push(temp_vvvvvzz);
}
else if (!isSet(gettype_vvvvvzz))
{
var gettype_vvvvvzz = [];
}
var gettype = gettype_vvvvvzz.some(gettype_vvvvvzz_SomeFunc);
// set this function logic
if (add_php_after_getitems && gettype)
{
jQuery('#jform_php_after_getitems-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_after_getitems-lbl').closest('.control-group').hide();
}
}
// the vvvvvzz Some function
function
add_php_after_getitems_vvvvvzz_SomeFunc(add_php_after_getitems_vvvvvzz)
{
// set the function logic
if (add_php_after_getitems_vvvvvzz == 1)
{
return true;
}
return false;
}
// the vvvvvzz Some function
function gettype_vvvvvzz_SomeFunc(gettype_vvvvvzz)
{
// set the function logic
if (gettype_vvvvvzz == 2 || gettype_vvvvvzz == 4)
{
return true;
}
return false;
}
// the vvvvwab function
function vvvvwab(gettype_vvvvwab)
{
if (isSet(gettype_vvvvwab) && gettype_vvvvwab.constructor !==
Array)
{
var temp_vvvvwab = gettype_vvvvwab;
var gettype_vvvvwab = [];
gettype_vvvvwab.push(temp_vvvvwab);
}
else if (!isSet(gettype_vvvvwab))
{
var gettype_vvvvwab = [];
}
var gettype = gettype_vvvvwab.some(gettype_vvvvwab_SomeFunc);
// set this function logic
if (gettype)
{
jQuery('#jform_add_php_after_getitems').closest('.control-group').show();
// add required attribute to add_php_after_getitems field
if (jform_vvvvwabvwp_required)
{
updateFieldRequired('add_php_after_getitems',0);
jQuery('#jform_add_php_after_getitems').prop('required','required');
jQuery('#jform_add_php_after_getitems').attr('aria-required',true);
jQuery('#jform_add_php_after_getitems').addClass('required');
jform_vvvvwabvwp_required = false;
}
jQuery('#jform_add_php_before_getitems').closest('.control-group').show();
// add required attribute to add_php_before_getitems field
if (jform_vvvvwabvwq_required)
{
updateFieldRequired('add_php_before_getitems',0);
jQuery('#jform_add_php_before_getitems').prop('required','required');
jQuery('#jform_add_php_before_getitems').attr('aria-required',true);
jQuery('#jform_add_php_before_getitems').addClass('required');
jform_vvvvwabvwq_required = false;
}
jQuery('#jform_add_php_getlistquery').closest('.control-group').show();
// add required attribute to add_php_getlistquery field
if (jform_vvvvwabvwr_required)
{
updateFieldRequired('add_php_getlistquery',0);
jQuery('#jform_add_php_getlistquery').prop('required','required');
jQuery('#jform_add_php_getlistquery').attr('aria-required',true);
jQuery('#jform_add_php_getlistquery').addClass('required');
jform_vvvvwabvwr_required = false;
}
}
else
{
jQuery('#jform_add_php_after_getitems').closest('.control-group').hide();
// remove required attribute from add_php_after_getitems field
if (!jform_vvvvwabvwp_required)
{
updateFieldRequired('add_php_after_getitems',1);
jQuery('#jform_add_php_after_getitems').removeAttr('required');
jQuery('#jform_add_php_after_getitems').removeAttr('aria-required');
jQuery('#jform_add_php_after_getitems').removeClass('required');
jform_vvvvwabvwp_required = true;
}
jQuery('#jform_add_php_before_getitems').closest('.control-group').hide();
// remove required attribute from add_php_before_getitems field
if (!jform_vvvvwabvwq_required)
{
updateFieldRequired('add_php_before_getitems',1);
jQuery('#jform_add_php_before_getitems').removeAttr('required');
jQuery('#jform_add_php_before_getitems').removeAttr('aria-required');
jQuery('#jform_add_php_before_getitems').removeClass('required');
jform_vvvvwabvwq_required = true;
}
jQuery('#jform_add_php_getlistquery').closest('.control-group').hide();
// remove required attribute from add_php_getlistquery field
if (!jform_vvvvwabvwr_required)
{
updateFieldRequired('add_php_getlistquery',1);
jQuery('#jform_add_php_getlistquery').removeAttr('required');
jQuery('#jform_add_php_getlistquery').removeAttr('aria-required');
jQuery('#jform_add_php_getlistquery').removeClass('required');
jform_vvvvwabvwr_required = true;
}
}
}
// the vvvvwab Some function
function gettype_vvvvwab_SomeFunc(gettype_vvvvwab)
{
// set the function logic
if (gettype_vvvvwab == 2 || gettype_vvvvwab == 4)
{
return true;
}
return false;
}
// the vvvvwac function
function vvvvwac(gettype_vvvvwac)
{
if (isSet(gettype_vvvvwac) && gettype_vvvvwac.constructor !==
Array)
{
var temp_vvvvwac = gettype_vvvvwac;
var gettype_vvvvwac = [];
gettype_vvvvwac.push(temp_vvvvwac);
}
else if (!isSet(gettype_vvvvwac))
{
var gettype_vvvvwac = [];
}
var gettype = gettype_vvvvwac.some(gettype_vvvvwac_SomeFunc);
// set this function logic
if (gettype)
{
jQuery('#jform_pagination').closest('.control-group').show();
// add required attribute to pagination field
if (jform_vvvvwacvws_required)
{
updateFieldRequired('pagination',0);
jQuery('#jform_pagination').prop('required','required');
jQuery('#jform_pagination').attr('aria-required',true);
jQuery('#jform_pagination').addClass('required');
jform_vvvvwacvws_required = false;
}
}
else
{
jQuery('#jform_pagination').closest('.control-group').hide();
// remove required attribute from pagination field
if (!jform_vvvvwacvws_required)
{
updateFieldRequired('pagination',1);
jQuery('#jform_pagination').removeAttr('required');
jQuery('#jform_pagination').removeAttr('aria-required');
jQuery('#jform_pagination').removeClass('required');
jform_vvvvwacvws_required = true;
}
}
}
// the vvvvwac Some function
function gettype_vvvvwac_SomeFunc(gettype_vvvvwac)
{
// set the function logic
if (gettype_vvvvwac == 2)
{
return true;
}
return false;
}
// the vvvvwad function
function vvvvwad(gettype_vvvvwad)
{
if (isSet(gettype_vvvvwad) && gettype_vvvvwad.constructor !==
Array)
{
var temp_vvvvwad = gettype_vvvvwad;
var gettype_vvvvwad = [];
gettype_vvvvwad.push(temp_vvvvwad);
}
else if (!isSet(gettype_vvvvwad))
{
var gettype_vvvvwad = [];
}
var gettype = gettype_vvvvwad.some(gettype_vvvvwad_SomeFunc);
// set this function logic
if (gettype)
{
jQuery('#jform_add_php_router_parse').closest('.control-group').show();
// add required attribute to add_php_router_parse field
if (jform_vvvvwadvwt_required)
{
updateFieldRequired('add_php_router_parse',0);
jQuery('#jform_add_php_router_parse').prop('required','required');
jQuery('#jform_add_php_router_parse').attr('aria-required',true);
jQuery('#jform_add_php_router_parse').addClass('required');
jform_vvvvwadvwt_required = false;
}
}
else
{
jQuery('#jform_add_php_router_parse').closest('.control-group').hide();
// remove required attribute from add_php_router_parse field
if (!jform_vvvvwadvwt_required)
{
updateFieldRequired('add_php_router_parse',1);
jQuery('#jform_add_php_router_parse').removeAttr('required');
jQuery('#jform_add_php_router_parse').removeAttr('aria-required');
jQuery('#jform_add_php_router_parse').removeClass('required');
jform_vvvvwadvwt_required = true;
}
}
}
// the vvvvwad Some function
function gettype_vvvvwad_SomeFunc(gettype_vvvvwad)
{
// set the function logic
if (gettype_vvvvwad == 1 || gettype_vvvvwad == 2)
{
return true;
}
return false;
}
// the vvvvwae function
function vvvvwae(gettype_vvvvwae,add_php_router_parse_vvvvwae)
{
if (isSet(gettype_vvvvwae) && gettype_vvvvwae.constructor !==
Array)
{
var temp_vvvvwae = gettype_vvvvwae;
var gettype_vvvvwae = [];
gettype_vvvvwae.push(temp_vvvvwae);
}
else if (!isSet(gettype_vvvvwae))
{
var gettype_vvvvwae = [];
}
var gettype = gettype_vvvvwae.some(gettype_vvvvwae_SomeFunc);
if (isSet(add_php_router_parse_vvvvwae) &&
add_php_router_parse_vvvvwae.constructor !== Array)
{
var temp_vvvvwae = add_php_router_parse_vvvvwae;
var add_php_router_parse_vvvvwae = [];
add_php_router_parse_vvvvwae.push(temp_vvvvwae);
}
else if (!isSet(add_php_router_parse_vvvvwae))
{
var add_php_router_parse_vvvvwae = [];
}
var add_php_router_parse =
add_php_router_parse_vvvvwae.some(add_php_router_parse_vvvvwae_SomeFunc);
// set this function logic
if (gettype && add_php_router_parse)
{
jQuery('#jform_php_router_parse').closest('.control-group').show();
// add required attribute to php_router_parse field
if (jform_vvvvwaevwu_required)
{
updateFieldRequired('php_router_parse',0);
jQuery('#jform_php_router_parse').prop('required','required');
jQuery('#jform_php_router_parse').attr('aria-required',true);
jQuery('#jform_php_router_parse').addClass('required');
jform_vvvvwaevwu_required = false;
}
}
else
{
jQuery('#jform_php_router_parse').closest('.control-group').hide();
// remove required attribute from php_router_parse field
if (!jform_vvvvwaevwu_required)
{
updateFieldRequired('php_router_parse',1);
jQuery('#jform_php_router_parse').removeAttr('required');
jQuery('#jform_php_router_parse').removeAttr('aria-required');
jQuery('#jform_php_router_parse').removeClass('required');
jform_vvvvwaevwu_required = true;
}
}
}
// the vvvvwae Some function
function gettype_vvvvwae_SomeFunc(gettype_vvvvwae)
{
// set the function logic
if (gettype_vvvvwae == 1 || gettype_vvvvwae == 2)
{
return true;
}
return false;
}
// the vvvvwae Some function
function
add_php_router_parse_vvvvwae_SomeFunc(add_php_router_parse_vvvvwae)
{
// set the function logic
if (add_php_router_parse_vvvvwae == 1)
{
return true;
}
return false;
}
// the vvvvwag function
function vvvvwag(gettype_vvvvwag)
{
if (isSet(gettype_vvvvwag) && gettype_vvvvwag.constructor !==
Array)
{
var temp_vvvvwag = gettype_vvvvwag;
var gettype_vvvvwag = [];
gettype_vvvvwag.push(temp_vvvvwag);
}
else if (!isSet(gettype_vvvvwag))
{
var gettype_vvvvwag = [];
}
var gettype = gettype_vvvvwag.some(gettype_vvvvwag_SomeFunc);
// set this function logic
if (gettype)
{
jQuery('#jform_plugin_events').closest('.control-group').show();
}
else
{
jQuery('#jform_plugin_events').closest('.control-group').hide();
}
}
// the vvvvwag Some function
function gettype_vvvvwag_SomeFunc(gettype_vvvvwag)
{
// set the function logic
if (gettype_vvvvwag == 1)
{
return true;
}
return false;
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// get the linked details
getLinked();
var valueSwitch = jQuery("#jform_add_php_router_parse
input[type='radio']:checked").val();
getDynamicScripts(valueSwitch);
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function setSelectAll(select_all){
// get source type
var main_source = jQuery("#jform_main_source").val();
if (1 == main_source) {
var key = 'view';
} else if (2 == main_source) {
var key = 'db';
} else {
return true;
}
// only continue if set
if (select_all == 1) {
// set default notice
jQuery("#jform_"+key+"_selection").val('a.*');
// set the selection text area to read only
jQuery("#jform_"+key+"_selection").prop("readonly",
true);
} else {
// remove the read only from selection text area
jQuery("#jform_"+key+"_selection").prop("readonly",
false);
// get selected options
var value_main = jQuery("#jform_"+key+"_table_main
option:selected").val();
// make sure that all fields are set as selected
if (key === 'view') {
getViewTableColumns(value_main, 'a', key, 3, true,
'', '');
} else {
getDbTableColumns(value_main, 'a', key, 3, true, '',
'');
}
}
}
function getViewTableColumns_server(viewId,asKey,rowType){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.viewTableColumns&format=json&raw=true");
if (token.length > 0 && viewId > 0 && asKey.length
> 0)
{
var request =
token+'=1&as='+asKey+'&type='+rowType+'&id='+viewId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getViewTableColumns(id, asKey, key, rowType, main, table_, nr_){
// check if this is the main view
if (main){
var select_all = jQuery("#jform_select_all
input[type='radio']:checked").val();
// do not continue if set
if (select_all == 1){
setSelectAll(select_all);
return true;
}
}
getViewTableColumns_server(id, asKey, rowType).done(function(result) {
if (result) {
loadSelectionData(result, 'view', key, main, table_, nr_);
} else {
loadSelectionData(false, 'view', key, main, table_, nr_);
}
})
}
function getDbTableColumns_server(name,asKey,rowType)
{
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.dbTableColumns&format=json&raw=true");
if (token.length > 0 && name.length > 0 &&
asKey.length > 0) {
var request =
token+'=1&as='+asKey+'&type='+rowType+'&name='+name;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getDbTableColumns(name, asKey, key, rowType, main, table_, nr_){
// check if this is the main view
if (main){
var select_all = jQuery("#jform_select_all
input[type='radio']:checked").val();
// do not continue if set
if (select_all == 1){
setSelectAll(select_all);
return true;
}
}
getDbTableColumns_server(name,asKey,rowType).done(function(result) {
if (result) {
loadSelectionData(result, 'db', key, main, table_, nr_);
} else {
loadSelectionData(false, 'db', key, main, table_, nr_);
}
})
}
function loadSelectionData(result, type, key, main, table_, nr_)
{
if (main)
{
var textArea = 'textarea#jform_'+key+'_selection';
}
else
{
var textArea =
'textarea#jform_join_'+type+'_table'+table_+'_join_'+type+'_table'+key+nr_+'_selection';
}
// no update the text area
if (result)
{
jQuery(textArea).val(result);
}
else
{
jQuery(textArea).val('');
}
}
function updateSubItems(fieldName, fieldNr, table_, nr_) {
if(jQuery('#jform_join_'+fieldName+'_table'+table_+'_join_'+fieldName+'_table'+fieldNr+nr_+'_'+fieldName+'_table').length)
{
jQuery('#adminForm').on('change',
'#jform_join_'+fieldName+'_table'+table_+'_join_'+fieldName+'_table'+fieldNr+nr_+'_'+fieldName+'_table',function
(e) {
e.preventDefault();
// get options
var value1 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_"+fieldName+"_table
option:selected").val();
var as_value2 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_as
option:selected").val();
var row_value1 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_row_type
option:selected").val();
if (fieldName === 'view') {
getViewTableColumns(value1, as_value2, fieldNr, row_value1, false,
table_, nr_);
} else {
getDbTableColumns(value1, as_value2, fieldNr, row_value1, false,
table_, nr_);
}
});
jQuery('#adminForm').on('change',
'#jform_join_'+fieldName+'_table'+table_+'_join_'+fieldName+'_table'+fieldNr+nr_+'_as',function
(e) {
e.preventDefault();
// get options
var value1 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_"+fieldName+"_table
option:selected").val();
var as_value2 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_as
option:selected").val();
var row_value1 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_row_type
option:selected").val();
if (fieldName === 'view') {
getViewTableColumns(value1, as_value2, fieldNr, row_value1, false,
table_, nr_);
} else {
getDbTableColumns(value1, as_value2, fieldNr, row_value1, false,
table_, nr_);
}
});
jQuery('#adminForm').on('change',
'#jform_join_'+fieldName+'_table'+table_+'_join_'+fieldName+'_table'+fieldNr+nr_+'_row_type',function
(e) {
e.preventDefault();
// get options
var value1 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_"+fieldName+"_table
option:selected").val();
var as_value2 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_as
option:selected").val();
var row_value1 =
jQuery("#jform_join_"+fieldName+"_table"+table_+"_join_"+fieldName+"_table"+fieldNr+nr_+"_row_type
option:selected").val();
if (fieldName === 'view') {
getViewTableColumns(value1, as_value2, fieldNr, row_value1, false,
table_, nr_);
} else {
getDbTableColumns(value1, as_value2, fieldNr, row_value1, false,
table_, nr_);
}
});
}
}
function getDynamicScripts(id){
if (1 == id) {
// get the current values
var current_router_parse =
jQuery('textarea#jform_php_router_parse').val();
// set the router parse method script
if(current_router_parse.length == 0){
getCodeFrom_server(1, 'routerparse', 'type',
'getDynamicScripts').then(function(result) {
if(result){
jQuery('textarea#jform_php_router_parse').val(result);
}
});
}
}
}
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
field.js000064400000071265151167367500006213 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwbfvxe_required = false;
jform_vvvvwbgvxf_required = false;
jform_vvvvwbhvxg_required = false;
jform_vvvvwbivxh_required = false;
jform_vvvvwblvxi_required = false;
jform_vvvvwblvxj_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var datalenght_vvvvwbf = jQuery("#jform_datalenght").val();
vvvvwbf(datalenght_vvvvwbf);
var datadefault_vvvvwbg = jQuery("#jform_datadefault").val();
vvvvwbg(datadefault_vvvvwbg);
var datatype_vvvvwbh = jQuery("#jform_datatype").val();
vvvvwbh(datatype_vvvvwbh);
var datatype_vvvvwbi = jQuery("#jform_datatype").val();
vvvvwbi(datatype_vvvvwbi);
var store_vvvvwbl = jQuery("#jform_store").val();
vvvvwbl(store_vvvvwbl);
var add_css_view_vvvvwbm = jQuery("#jform_add_css_view
input[type='radio']:checked").val();
vvvvwbm(add_css_view_vvvvwbm);
var add_css_views_vvvvwbn = jQuery("#jform_add_css_views
input[type='radio']:checked").val();
vvvvwbn(add_css_views_vvvvwbn);
var add_javascript_view_footer_vvvvwbo =
jQuery("#jform_add_javascript_view_footer
input[type='radio']:checked").val();
vvvvwbo(add_javascript_view_footer_vvvvwbo);
var add_javascript_views_footer_vvvvwbp =
jQuery("#jform_add_javascript_views_footer
input[type='radio']:checked").val();
vvvvwbp(add_javascript_views_footer_vvvvwbp);
});
// the vvvvwbf function
function vvvvwbf(datalenght_vvvvwbf)
{
if (isSet(datalenght_vvvvwbf) && datalenght_vvvvwbf.constructor
!== Array)
{
var temp_vvvvwbf = datalenght_vvvvwbf;
var datalenght_vvvvwbf = [];
datalenght_vvvvwbf.push(temp_vvvvwbf);
}
else if (!isSet(datalenght_vvvvwbf))
{
var datalenght_vvvvwbf = [];
}
var datalenght = datalenght_vvvvwbf.some(datalenght_vvvvwbf_SomeFunc);
// set this function logic
if (datalenght)
{
jQuery('#jform_datalenght_other').closest('.control-group').show();
// add required attribute to datalenght_other field
if (jform_vvvvwbfvxe_required)
{
updateFieldRequired('datalenght_other',0);
jQuery('#jform_datalenght_other').prop('required','required');
jQuery('#jform_datalenght_other').attr('aria-required',true);
jQuery('#jform_datalenght_other').addClass('required');
jform_vvvvwbfvxe_required = false;
}
}
else
{
jQuery('#jform_datalenght_other').closest('.control-group').hide();
// remove required attribute from datalenght_other field
if (!jform_vvvvwbfvxe_required)
{
updateFieldRequired('datalenght_other',1);
jQuery('#jform_datalenght_other').removeAttr('required');
jQuery('#jform_datalenght_other').removeAttr('aria-required');
jQuery('#jform_datalenght_other').removeClass('required');
jform_vvvvwbfvxe_required = true;
}
}
}
// the vvvvwbf Some function
function datalenght_vvvvwbf_SomeFunc(datalenght_vvvvwbf)
{
// set the function logic
if (datalenght_vvvvwbf == 'Other')
{
return true;
}
return false;
}
// the vvvvwbg function
function vvvvwbg(datadefault_vvvvwbg)
{
if (isSet(datadefault_vvvvwbg) && datadefault_vvvvwbg.constructor
!== Array)
{
var temp_vvvvwbg = datadefault_vvvvwbg;
var datadefault_vvvvwbg = [];
datadefault_vvvvwbg.push(temp_vvvvwbg);
}
else if (!isSet(datadefault_vvvvwbg))
{
var datadefault_vvvvwbg = [];
}
var datadefault = datadefault_vvvvwbg.some(datadefault_vvvvwbg_SomeFunc);
// set this function logic
if (datadefault)
{
jQuery('#jform_datadefault_other').closest('.control-group').show();
// add required attribute to datadefault_other field
if (jform_vvvvwbgvxf_required)
{
updateFieldRequired('datadefault_other',0);
jQuery('#jform_datadefault_other').prop('required','required');
jQuery('#jform_datadefault_other').attr('aria-required',true);
jQuery('#jform_datadefault_other').addClass('required');
jform_vvvvwbgvxf_required = false;
}
}
else
{
jQuery('#jform_datadefault_other').closest('.control-group').hide();
// remove required attribute from datadefault_other field
if (!jform_vvvvwbgvxf_required)
{
updateFieldRequired('datadefault_other',1);
jQuery('#jform_datadefault_other').removeAttr('required');
jQuery('#jform_datadefault_other').removeAttr('aria-required');
jQuery('#jform_datadefault_other').removeClass('required');
jform_vvvvwbgvxf_required = true;
}
}
}
// the vvvvwbg Some function
function datadefault_vvvvwbg_SomeFunc(datadefault_vvvvwbg)
{
// set the function logic
if (datadefault_vvvvwbg == 'Other')
{
return true;
}
return false;
}
// the vvvvwbh function
function vvvvwbh(datatype_vvvvwbh)
{
if (isSet(datatype_vvvvwbh) && datatype_vvvvwbh.constructor !==
Array)
{
var temp_vvvvwbh = datatype_vvvvwbh;
var datatype_vvvvwbh = [];
datatype_vvvvwbh.push(temp_vvvvwbh);
}
else if (!isSet(datatype_vvvvwbh))
{
var datatype_vvvvwbh = [];
}
var datatype = datatype_vvvvwbh.some(datatype_vvvvwbh_SomeFunc);
// set this function logic
if (datatype)
{
jQuery('#jform_datadefault').closest('.control-group').show();
jQuery('#jform_indexes').closest('.control-group').show();
// add required attribute to indexes field
if (jform_vvvvwbhvxg_required)
{
updateFieldRequired('indexes',0);
jQuery('#jform_indexes').prop('required','required');
jQuery('#jform_indexes').attr('aria-required',true);
jQuery('#jform_indexes').addClass('required');
jform_vvvvwbhvxg_required = false;
}
}
else
{
jQuery('#jform_datadefault').closest('.control-group').hide();
jQuery('#jform_indexes').closest('.control-group').hide();
// remove required attribute from indexes field
if (!jform_vvvvwbhvxg_required)
{
updateFieldRequired('indexes',1);
jQuery('#jform_indexes').removeAttr('required');
jQuery('#jform_indexes').removeAttr('aria-required');
jQuery('#jform_indexes').removeClass('required');
jform_vvvvwbhvxg_required = true;
}
}
}
// the vvvvwbh Some function
function datatype_vvvvwbh_SomeFunc(datatype_vvvvwbh)
{
// set the function logic
if (datatype_vvvvwbh == 'CHAR' || datatype_vvvvwbh ==
'VARCHAR' || datatype_vvvvwbh == 'DATETIME' ||
datatype_vvvvwbh == 'DATE' || datatype_vvvvwbh ==
'TIME' || datatype_vvvvwbh == 'INT' || datatype_vvvvwbh
== 'TINYINT' || datatype_vvvvwbh == 'BIGINT' ||
datatype_vvvvwbh == 'FLOAT' || datatype_vvvvwbh ==
'DECIMAL' || datatype_vvvvwbh == 'DOUBLE')
{
return true;
}
return false;
}
// the vvvvwbi function
function vvvvwbi(datatype_vvvvwbi)
{
if (isSet(datatype_vvvvwbi) && datatype_vvvvwbi.constructor !==
Array)
{
var temp_vvvvwbi = datatype_vvvvwbi;
var datatype_vvvvwbi = [];
datatype_vvvvwbi.push(temp_vvvvwbi);
}
else if (!isSet(datatype_vvvvwbi))
{
var datatype_vvvvwbi = [];
}
var datatype = datatype_vvvvwbi.some(datatype_vvvvwbi_SomeFunc);
// set this function logic
if (datatype)
{
jQuery('#jform_datalenght').closest('.control-group').show();
// add required attribute to datalenght field
if (jform_vvvvwbivxh_required)
{
updateFieldRequired('datalenght',0);
jQuery('#jform_datalenght').prop('required','required');
jQuery('#jform_datalenght').attr('aria-required',true);
jQuery('#jform_datalenght').addClass('required');
jform_vvvvwbivxh_required = false;
}
}
else
{
jQuery('#jform_datalenght').closest('.control-group').hide();
// remove required attribute from datalenght field
if (!jform_vvvvwbivxh_required)
{
updateFieldRequired('datalenght',1);
jQuery('#jform_datalenght').removeAttr('required');
jQuery('#jform_datalenght').removeAttr('aria-required');
jQuery('#jform_datalenght').removeClass('required');
jform_vvvvwbivxh_required = true;
}
}
}
// the vvvvwbi Some function
function datatype_vvvvwbi_SomeFunc(datatype_vvvvwbi)
{
// set the function logic
if (datatype_vvvvwbi == 'CHAR' || datatype_vvvvwbi ==
'VARCHAR' || datatype_vvvvwbi == 'INT' ||
datatype_vvvvwbi == 'TINYINT' || datatype_vvvvwbi ==
'BIGINT' || datatype_vvvvwbi == 'FLOAT' ||
datatype_vvvvwbi == 'DECIMAL' || datatype_vvvvwbi ==
'DOUBLE')
{
return true;
}
return false;
}
// the vvvvwbl function
function vvvvwbl(store_vvvvwbl)
{
if (isSet(store_vvvvwbl) && store_vvvvwbl.constructor !== Array)
{
var temp_vvvvwbl = store_vvvvwbl;
var store_vvvvwbl = [];
store_vvvvwbl.push(temp_vvvvwbl);
}
else if (!isSet(store_vvvvwbl))
{
var store_vvvvwbl = [];
}
var store = store_vvvvwbl.some(store_vvvvwbl_SomeFunc);
// set this function logic
if (store)
{
jQuery('#jform_initiator_on_get_model').closest('.control-group').show();
jQuery('#jform_initiator_on_save_model').closest('.control-group').show();
jQuery('.note_expert_field_save_mode').closest('.control-group').show();
jQuery('#jform_on_get_model_field').closest('.control-group').show();
// add required attribute to on_get_model_field field
if (jform_vvvvwblvxi_required)
{
updateFieldRequired('on_get_model_field',0);
jQuery('#jform_on_get_model_field').prop('required','required');
jQuery('#jform_on_get_model_field').attr('aria-required',true);
jQuery('#jform_on_get_model_field').addClass('required');
jform_vvvvwblvxi_required = false;
}
jQuery('#jform_on_save_model_field').closest('.control-group').show();
// add required attribute to on_save_model_field field
if (jform_vvvvwblvxj_required)
{
updateFieldRequired('on_save_model_field',0);
jQuery('#jform_on_save_model_field').prop('required','required');
jQuery('#jform_on_save_model_field').attr('aria-required',true);
jQuery('#jform_on_save_model_field').addClass('required');
jform_vvvvwblvxj_required = false;
}
}
else
{
jQuery('#jform_initiator_on_get_model').closest('.control-group').hide();
jQuery('#jform_initiator_on_save_model').closest('.control-group').hide();
jQuery('.note_expert_field_save_mode').closest('.control-group').hide();
jQuery('#jform_on_get_model_field').closest('.control-group').hide();
// remove required attribute from on_get_model_field field
if (!jform_vvvvwblvxi_required)
{
updateFieldRequired('on_get_model_field',1);
jQuery('#jform_on_get_model_field').removeAttr('required');
jQuery('#jform_on_get_model_field').removeAttr('aria-required');
jQuery('#jform_on_get_model_field').removeClass('required');
jform_vvvvwblvxi_required = true;
}
jQuery('#jform_on_save_model_field').closest('.control-group').hide();
// remove required attribute from on_save_model_field field
if (!jform_vvvvwblvxj_required)
{
updateFieldRequired('on_save_model_field',1);
jQuery('#jform_on_save_model_field').removeAttr('required');
jQuery('#jform_on_save_model_field').removeAttr('aria-required');
jQuery('#jform_on_save_model_field').removeClass('required');
jform_vvvvwblvxj_required = true;
}
}
}
// the vvvvwbl Some function
function store_vvvvwbl_SomeFunc(store_vvvvwbl)
{
// set the function logic
if (store_vvvvwbl == 6)
{
return true;
}
return false;
}
// the vvvvwbm function
function vvvvwbm(add_css_view_vvvvwbm)
{
// set the function logic
if (add_css_view_vvvvwbm == 1)
{
jQuery('#jform_css_view-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css_view-lbl').closest('.control-group').hide();
}
}
// the vvvvwbn function
function vvvvwbn(add_css_views_vvvvwbn)
{
// set the function logic
if (add_css_views_vvvvwbn == 1)
{
jQuery('#jform_css_views-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css_views-lbl').closest('.control-group').hide();
}
}
// the vvvvwbo function
function vvvvwbo(add_javascript_view_footer_vvvvwbo)
{
// set the function logic
if (add_javascript_view_footer_vvvvwbo == 1)
{
jQuery('#jform_javascript_view_footer-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_view_footer-lbl').closest('.control-group').hide();
}
}
// the vvvvwbp function
function vvvvwbp(add_javascript_views_footer_vvvvwbp)
{
// set the function logic
if (add_javascript_views_footer_vvvvwbp == 1)
{
jQuery('#jform_javascript_views_footer-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_views_footer-lbl').closest('.control-group').hide();
}
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// get type value
var fieldtype = jQuery("#jform_fieldtype
option:selected").val();
getFieldTypeProperties(fieldtype, false);
// get the linked details
getLinked();
// get the validation rules
getValidationRulesTable();
// set button to create more fields
addButton('validation_rule',
'validation_rules_header', 2);
// get the field type text
var fieldText = jQuery("#jform_fieldtype
option:selected").text().toLowerCase();
// now check if database input is needed
dbChecker(fieldText);
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
// the options row id key
var rowIdKey = 'properties';
function getFieldTypeProperties(fieldtype, db){
getCodeFrom_server(fieldtype, 'type', 'type',
'fieldTypeProperties').then(function(result) {
if(result.subform){
// load the list of properties
propertiesArray = result.nameListOptions;
// remove previous forms of exist
jQuery('.prop_removal').remove();
// hide notice
jQuery('.note_select_field_type').closest('.control-group').remove();
// append to note_filter_information class
jQuery('.note_filter_information').closest('.control-group').prepend(result.extra);
// append to note_filter_information class
if(result.textarea){
jQuery.each( result.textarea, function( i, tField ) {
// append to note_filter_information class
jQuery('.note_filter_information').closest('.control-group').prepend(tField);
});
}
// append to note_filter_information class
jQuery('.note_filter_information').closest('.control-group').prepend(result.subform);
// add the watcher
rowWatcher();
// initialize the new form
jQuery('div.subform-repeatable').subformRepeatable();
// update all the list fields to only show items not selected already
propertyDynamicSet();
// set the field type info
jQuery('#help').remove();
jQuery('.helpNote').append('<div
id="help">'+result.description+'<br
/>'+result.values_description+'</div>');
// load the database properties if not set and defaults were found
if (db && result.database){
// update datatype
jQuery('#jform_datatype').val(result.database.datatype);
jQuery('#jform_datatype').trigger("liszt:updated");
jQuery('#jform_datatype').trigger("change");
// be sure to remove from no required
updateFieldRequired('datatype', 0);
// update datalenght
jQuery('#jform_datalenght').val(result.database.datalenght);
jQuery('#jform_datalenght').trigger("liszt:updated");
jQuery('#jform_datalenght').trigger("change");
// be sure to remove from no required
updateFieldRequired('datalenght', 0);
// load the datalenght_other if needed
if ('Other' === result.database.datalenght){
jQuery('#jform_datalenght_other').val(result.database.datalenght_other);
// be sure to remove from no required
updateFieldRequired('datalenght_other', 0);
}
// update datadefault
jQuery('#jform_datadefault').val(result.database.datadefault);
jQuery('#jform_datadefault').trigger("liszt:updated");
jQuery('#jform_datadefault').trigger("change");
// load the datadefault_other if needed
if ('Other' === result.database.datadefault){
jQuery('#jform_datadefault_other').val(result.database.datadefault_other);
// be sure to remove from no required
updateFieldRequired('datadefault_other', 0);
}
// update indexes
jQuery('#jform_indexes').val(result.database.indexes);
jQuery('#jform_indexes').trigger("liszt:updated");
jQuery('#jform_indexes').trigger("change");
// be sure to remove from no required
updateFieldRequired('indexes', 0);
// update store
jQuery('#jform_store').val(result.database.store);
jQuery('#jform_store').trigger("liszt:updated");
jQuery('#jform_store').trigger("change");
// be sure to remove from no required
updateFieldRequired('store', 0);
}
}
})
}
function getFieldPropertyDesc(field, targetForm){
// get the ID
var id = jQuery(field).attr('id');
// build the target array
var target = id.split('__');
// get property value
var property = jQuery(field).val();
// first check that there isn't any of this property type already
set
if (propertyIsSet(property, id, targetForm)) {
// reset the selection
jQuery('#'+id).val('');
jQuery('#'+id).trigger("liszt:updated");
// give out a notice
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_PROPERTY_ALREADY_SELECTED_TRY_ANOTHER'),
timeout: 5000, status: 'warning', pos: 'top-center'});
// update the values
jQuery('#'+target[0]+'__desc').val('');
jQuery('#'+target[0]+'__value').val('');
} else {
// do a dynamic update
propertyDynamicSet();
// get type value
if (targetForm === 'properties') {
var fieldtype = jQuery("#jform_fieldtype
option:selected").val();
} else {
var fieldtype = 'extra';
}
getFieldPropertyDesc_server(fieldtype, property).done(function(result) {
if(result.desc || result.value){
// update the values
jQuery('#'+target[0]+'__desc').val(result.desc);
jQuery('#'+target[0]+'__value').val(result.value);
} else {
// update the values
jQuery('#'+target[0]+'__desc').val(Joomla.JText._('COM_COMPONENTBUILDER_NO_DESCRIPTION_FOUND'));
jQuery('#'+target[0]+'__value').val('');
}
});
}
}
// set properties the options
propertiesArray = {};
var propertyIdRemoved;
function propertyDynamicSet() {
propertiesAvailable = {};
propertiesSelectedArray = {};
propertiesTrackerArray = {};
var i;
for (i = 0; i < 70; i++) { // for now this is the number of field we
should check
// build ID
var id_check = rowIdKey+'_'+rowIdKey+i+'__name';
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length && propertyIdRemoved
!== id_check) {
// build the selected array
var key = jQuery("#"+id_check+"
option:selected").val();
var text = jQuery("#"+id_check+"
option:selected").text();
propertiesSelectedArray[key] = text;
// keep track of the value set
propertiesTrackerArray[id_check] = key;
// clear the options out
jQuery("#"+id_check).find('option').remove().end();
}
}
// trigger chosen on the list fields
jQuery('.field_list_name_options').chosen({"disable_search_threshold":10,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":Joomla.JText._("COM_COMPONENTBUILDER_TYPE_OR_SELECT_SOME_OPTIONS"),"placeholder_text_single":Joomla.JText._("COM_COMPONENTBUILDER_SELECT_A_PROPERTY"),"no_results_text":Joomla.JText._("COM_COMPONENTBUILDER_NO_RESULTS_MATCH")});
// now build the list to keep
jQuery.each( propertiesArray, function( prop, name ) {
if (!propertiesSelectedArray.hasOwnProperty(prop)) {
propertiesAvailable[prop] = name;
}
});
// now add the lists back
jQuery.each( propertiesTrackerArray, function( tId, tKey ) {
if (jQuery('#'+tId).length) {
jQuery('#'+tId).append('<option
value="'+tKey+'">'+propertiesSelectedArray[tKey]+'</option>');
jQuery.each( propertiesAvailable, function( aKey, aValue ) {
jQuery('#'+tId).append('<option
value="'+aKey+'">'+aValue+'</option>');
});
jQuery('#'+tId).val(tKey);
jQuery('#'+tId).trigger('liszt:updated');
}
});
}
function rowWatcher() {
jQuery(document).on('subform-row-remove', function(event, row){
propertyIdRemoved =
jQuery(row.innerHTML).find('.field_list_name_options').attr('id');
propertyDynamicSet();
});
jQuery(document).on('subform-row-add', function(event, row){
propertyDynamicSet();
});
}
function propertyIsSet(prop, id, targetForm) {
var i;
for (i = 0; i < 70; i++) { // for now this is the number of field we
should check
// build ID
var id_check = targetForm+'_'+targetForm+i+'__name';
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length && id_check != id) {
// get the property value
var tmp = jQuery("#"+id_check+"
option:selected").val();
// now validate
if (tmp === prop) {
return true;
}
}
}
return false;
}
function getFieldPropertyDesc_server(fieldtype, property){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getFieldPropertyDesc&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && (fieldtype > 0 || fieldtype.length
> 0) && property.length > 0){
var request =
token+'=1&fieldtype='+fieldtype+'&property='+property;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getValidationRulesTable(){
getCodeFrom_server(1,'type','type',
'getValidationRulesTable').then(function(result) {
if(result){
jQuery('#display_validation_rules').html(result);
}
});
}
function dbChecker(type){
if ('note' === type || 'spacer' === type) {
// update the datatype selection
jQuery('#jform_datatype').val('').trigger('liszt:updated').change();
jQuery('#jform_datalenght').val('').trigger('liszt:updated').change();
jQuery('#jform_datadefault').val('').trigger('liszt:updated').change();
jQuery('#jform_datadefault').val('').trigger('liszt:updated').change();
jQuery('#jform_indexes').val(0).trigger('liszt:updated').change();
jQuery('#jform_store').val(0).trigger('liszt:updated').change();
// remove the datatype
jQuery('#jform_datatype-lbl').closest('.control-group').hide();
jQuery('#jform_datatype').closest('.control-group').hide();
updateFieldRequired('datatype',1);
jQuery('#jform_datatype').removeAttr('required');
jQuery('#jform_datatype').removeAttr('aria-required');
jQuery('#jform_datatype').removeClass('required');
// remove the null selection
jQuery('#jform_null_switch-lbl').closest('.control-group').hide();
jQuery('#jform_null_switch').closest('.control-group').hide();
updateFieldRequired('null_switch',1);
jQuery('#jform_null_switch').removeAttr('required');
jQuery('#jform_null_switch').removeAttr('aria-required');
jQuery('#jform_null_switch').removeClass('required');
// remove the store (modeling method)
jQuery('#jform_store-lbl').closest('.control-group').hide();
jQuery('#jform_store').closest('.control-group').hide();
updateFieldRequired('store',1);
jQuery('#jform_store').removeAttr('required');
jQuery('#jform_store').removeAttr('aria-required');
jQuery('#jform_store').removeClass('required');
// show notice
jQuery('.note_no_database_settings_needed').closest('.control-group').show();
jQuery('.note_database_settings_needed').closest('.control-group').hide();
} else {
// add the datatype
jQuery('#jform_datatype-lbl').closest('.control-group').show();
jQuery('#jform_datatype').closest('.control-group').show();
updateFieldRequired('datatype',0);
jQuery('#jform_datatype').prop('required','required');
jQuery('#jform_datatype').attr('aria-required',true);
jQuery('#jform_datatype').addClass('required');
// add the null selection
jQuery('#jform_null_switch-lbl').closest('.control-group').show();
jQuery('#jform_null_switch').closest('.control-group').show();
updateFieldRequired('null_switch',0);
jQuery('#jform_null_switch').prop('required','required');
jQuery('#jform_null_switch').attr('aria-required',true);
jQuery('#jform_null_switch').addClass('required');
// remove the store (modeling method)
jQuery('#jform_store-lbl').closest('.control-group').show();
jQuery('#jform_store').closest('.control-group').show();
updateFieldRequired('store',0);
jQuery('#jform_store').prop('required','required');
jQuery('#jform_store').attr('aria-required',true);
jQuery('#jform_store').addClass('required');
// remove notice
jQuery('.note_no_database_settings_needed').closest('.control-group').hide();
jQuery('.note_database_settings_needed').closest('.control-group').show();
}
}
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
function addButton_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButton&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButton(type, where, size){
// just to insure that default behaviour still works
size = typeof size !== 'undefined' ? size : 1;
addButton_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
})
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
fieldtype.js000064400000066262151167367500007116 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwbqvxk_required = false;
jform_vvvvwbsvxl_required = false;
jform_vvvvwbuvxm_required = false;
jform_vvvvwbwvxn_required = false;
jform_vvvvwbxvxo_required = false;
jform_vvvvwbyvxp_required = false;
jform_vvvvwcdvxq_required = false;
jform_vvvvwcdvxr_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var datalenght_vvvvwbq = jQuery("#jform_datalenght").val();
var has_defaults_vvvvwbq = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwbq(datalenght_vvvvwbq,has_defaults_vvvvwbq);
var datadefault_vvvvwbs = jQuery("#jform_datadefault").val();
var has_defaults_vvvvwbs = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwbs(datadefault_vvvvwbs,has_defaults_vvvvwbs);
var datatype_vvvvwbu = jQuery("#jform_datatype").val();
var has_defaults_vvvvwbu = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwbu(datatype_vvvvwbu,has_defaults_vvvvwbu);
var datatype_vvvvwbw = jQuery("#jform_datatype").val();
var has_defaults_vvvvwbw = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwbw(datatype_vvvvwbw,has_defaults_vvvvwbw);
var has_defaults_vvvvwbx = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
var datatype_vvvvwbx = jQuery("#jform_datatype").val();
vvvvwbx(has_defaults_vvvvwbx,datatype_vvvvwbx);
var datatype_vvvvwby = jQuery("#jform_datatype").val();
var has_defaults_vvvvwby = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwby(datatype_vvvvwby,has_defaults_vvvvwby);
var store_vvvvwca = jQuery("#jform_store").val();
var datatype_vvvvwca = jQuery("#jform_datatype").val();
var has_defaults_vvvvwca = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwca(store_vvvvwca,datatype_vvvvwca,has_defaults_vvvvwca);
var datatype_vvvvwcb = jQuery("#jform_datatype").val();
var store_vvvvwcb = jQuery("#jform_store").val();
var has_defaults_vvvvwcb = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwcb(datatype_vvvvwcb,store_vvvvwcb,has_defaults_vvvvwcb);
var has_defaults_vvvvwcc = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
var store_vvvvwcc = jQuery("#jform_store").val();
var datatype_vvvvwcc = jQuery("#jform_datatype").val();
vvvvwcc(has_defaults_vvvvwcc,store_vvvvwcc,datatype_vvvvwcc);
var has_defaults_vvvvwcd = jQuery("#jform_has_defaults
input[type='radio']:checked").val();
vvvvwcd(has_defaults_vvvvwcd);
});
// the vvvvwbq function
function vvvvwbq(datalenght_vvvvwbq,has_defaults_vvvvwbq)
{
if (isSet(datalenght_vvvvwbq) && datalenght_vvvvwbq.constructor
!== Array)
{
var temp_vvvvwbq = datalenght_vvvvwbq;
var datalenght_vvvvwbq = [];
datalenght_vvvvwbq.push(temp_vvvvwbq);
}
else if (!isSet(datalenght_vvvvwbq))
{
var datalenght_vvvvwbq = [];
}
var datalenght = datalenght_vvvvwbq.some(datalenght_vvvvwbq_SomeFunc);
if (isSet(has_defaults_vvvvwbq) &&
has_defaults_vvvvwbq.constructor !== Array)
{
var temp_vvvvwbq = has_defaults_vvvvwbq;
var has_defaults_vvvvwbq = [];
has_defaults_vvvvwbq.push(temp_vvvvwbq);
}
else if (!isSet(has_defaults_vvvvwbq))
{
var has_defaults_vvvvwbq = [];
}
var has_defaults =
has_defaults_vvvvwbq.some(has_defaults_vvvvwbq_SomeFunc);
// set this function logic
if (datalenght && has_defaults)
{
jQuery('#jform_datalenght_other').closest('.control-group').show();
// add required attribute to datalenght_other field
if (jform_vvvvwbqvxk_required)
{
updateFieldRequired('datalenght_other',0);
jQuery('#jform_datalenght_other').prop('required','required');
jQuery('#jform_datalenght_other').attr('aria-required',true);
jQuery('#jform_datalenght_other').addClass('required');
jform_vvvvwbqvxk_required = false;
}
}
else
{
jQuery('#jform_datalenght_other').closest('.control-group').hide();
// remove required attribute from datalenght_other field
if (!jform_vvvvwbqvxk_required)
{
updateFieldRequired('datalenght_other',1);
jQuery('#jform_datalenght_other').removeAttr('required');
jQuery('#jform_datalenght_other').removeAttr('aria-required');
jQuery('#jform_datalenght_other').removeClass('required');
jform_vvvvwbqvxk_required = true;
}
}
}
// the vvvvwbq Some function
function datalenght_vvvvwbq_SomeFunc(datalenght_vvvvwbq)
{
// set the function logic
if (datalenght_vvvvwbq == 'Other')
{
return true;
}
return false;
}
// the vvvvwbq Some function
function has_defaults_vvvvwbq_SomeFunc(has_defaults_vvvvwbq)
{
// set the function logic
if (has_defaults_vvvvwbq == 1)
{
return true;
}
return false;
}
// the vvvvwbs function
function vvvvwbs(datadefault_vvvvwbs,has_defaults_vvvvwbs)
{
if (isSet(datadefault_vvvvwbs) && datadefault_vvvvwbs.constructor
!== Array)
{
var temp_vvvvwbs = datadefault_vvvvwbs;
var datadefault_vvvvwbs = [];
datadefault_vvvvwbs.push(temp_vvvvwbs);
}
else if (!isSet(datadefault_vvvvwbs))
{
var datadefault_vvvvwbs = [];
}
var datadefault = datadefault_vvvvwbs.some(datadefault_vvvvwbs_SomeFunc);
if (isSet(has_defaults_vvvvwbs) &&
has_defaults_vvvvwbs.constructor !== Array)
{
var temp_vvvvwbs = has_defaults_vvvvwbs;
var has_defaults_vvvvwbs = [];
has_defaults_vvvvwbs.push(temp_vvvvwbs);
}
else if (!isSet(has_defaults_vvvvwbs))
{
var has_defaults_vvvvwbs = [];
}
var has_defaults =
has_defaults_vvvvwbs.some(has_defaults_vvvvwbs_SomeFunc);
// set this function logic
if (datadefault && has_defaults)
{
jQuery('#jform_datadefault_other').closest('.control-group').show();
// add required attribute to datadefault_other field
if (jform_vvvvwbsvxl_required)
{
updateFieldRequired('datadefault_other',0);
jQuery('#jform_datadefault_other').prop('required','required');
jQuery('#jform_datadefault_other').attr('aria-required',true);
jQuery('#jform_datadefault_other').addClass('required');
jform_vvvvwbsvxl_required = false;
}
}
else
{
jQuery('#jform_datadefault_other').closest('.control-group').hide();
// remove required attribute from datadefault_other field
if (!jform_vvvvwbsvxl_required)
{
updateFieldRequired('datadefault_other',1);
jQuery('#jform_datadefault_other').removeAttr('required');
jQuery('#jform_datadefault_other').removeAttr('aria-required');
jQuery('#jform_datadefault_other').removeClass('required');
jform_vvvvwbsvxl_required = true;
}
}
}
// the vvvvwbs Some function
function datadefault_vvvvwbs_SomeFunc(datadefault_vvvvwbs)
{
// set the function logic
if (datadefault_vvvvwbs == 'Other')
{
return true;
}
return false;
}
// the vvvvwbs Some function
function has_defaults_vvvvwbs_SomeFunc(has_defaults_vvvvwbs)
{
// set the function logic
if (has_defaults_vvvvwbs == 1)
{
return true;
}
return false;
}
// the vvvvwbu function
function vvvvwbu(datatype_vvvvwbu,has_defaults_vvvvwbu)
{
if (isSet(datatype_vvvvwbu) && datatype_vvvvwbu.constructor !==
Array)
{
var temp_vvvvwbu = datatype_vvvvwbu;
var datatype_vvvvwbu = [];
datatype_vvvvwbu.push(temp_vvvvwbu);
}
else if (!isSet(datatype_vvvvwbu))
{
var datatype_vvvvwbu = [];
}
var datatype = datatype_vvvvwbu.some(datatype_vvvvwbu_SomeFunc);
if (isSet(has_defaults_vvvvwbu) &&
has_defaults_vvvvwbu.constructor !== Array)
{
var temp_vvvvwbu = has_defaults_vvvvwbu;
var has_defaults_vvvvwbu = [];
has_defaults_vvvvwbu.push(temp_vvvvwbu);
}
else if (!isSet(has_defaults_vvvvwbu))
{
var has_defaults_vvvvwbu = [];
}
var has_defaults =
has_defaults_vvvvwbu.some(has_defaults_vvvvwbu_SomeFunc);
// set this function logic
if (datatype && has_defaults)
{
jQuery('#jform_datalenght').closest('.control-group').show();
// add required attribute to datalenght field
if (jform_vvvvwbuvxm_required)
{
updateFieldRequired('datalenght',0);
jQuery('#jform_datalenght').prop('required','required');
jQuery('#jform_datalenght').attr('aria-required',true);
jQuery('#jform_datalenght').addClass('required');
jform_vvvvwbuvxm_required = false;
}
}
else
{
jQuery('#jform_datalenght').closest('.control-group').hide();
// remove required attribute from datalenght field
if (!jform_vvvvwbuvxm_required)
{
updateFieldRequired('datalenght',1);
jQuery('#jform_datalenght').removeAttr('required');
jQuery('#jform_datalenght').removeAttr('aria-required');
jQuery('#jform_datalenght').removeClass('required');
jform_vvvvwbuvxm_required = true;
}
}
}
// the vvvvwbu Some function
function datatype_vvvvwbu_SomeFunc(datatype_vvvvwbu)
{
// set the function logic
if (datatype_vvvvwbu == 'CHAR' || datatype_vvvvwbu ==
'VARCHAR' || datatype_vvvvwbu == 'INT' ||
datatype_vvvvwbu == 'TINYINT' || datatype_vvvvwbu ==
'BIGINT' || datatype_vvvvwbu == 'FLOAT' ||
datatype_vvvvwbu == 'DECIMAL' || datatype_vvvvwbu ==
'DOUBLE')
{
return true;
}
return false;
}
// the vvvvwbu Some function
function has_defaults_vvvvwbu_SomeFunc(has_defaults_vvvvwbu)
{
// set the function logic
if (has_defaults_vvvvwbu == 1)
{
return true;
}
return false;
}
// the vvvvwbw function
function vvvvwbw(datatype_vvvvwbw,has_defaults_vvvvwbw)
{
if (isSet(datatype_vvvvwbw) && datatype_vvvvwbw.constructor !==
Array)
{
var temp_vvvvwbw = datatype_vvvvwbw;
var datatype_vvvvwbw = [];
datatype_vvvvwbw.push(temp_vvvvwbw);
}
else if (!isSet(datatype_vvvvwbw))
{
var datatype_vvvvwbw = [];
}
var datatype = datatype_vvvvwbw.some(datatype_vvvvwbw_SomeFunc);
if (isSet(has_defaults_vvvvwbw) &&
has_defaults_vvvvwbw.constructor !== Array)
{
var temp_vvvvwbw = has_defaults_vvvvwbw;
var has_defaults_vvvvwbw = [];
has_defaults_vvvvwbw.push(temp_vvvvwbw);
}
else if (!isSet(has_defaults_vvvvwbw))
{
var has_defaults_vvvvwbw = [];
}
var has_defaults =
has_defaults_vvvvwbw.some(has_defaults_vvvvwbw_SomeFunc);
// set this function logic
if (datatype && has_defaults)
{
jQuery('#jform_datadefault').closest('.control-group').show();
jQuery('#jform_indexes').closest('.control-group').show();
// add required attribute to indexes field
if (jform_vvvvwbwvxn_required)
{
updateFieldRequired('indexes',0);
jQuery('#jform_indexes').prop('required','required');
jQuery('#jform_indexes').attr('aria-required',true);
jQuery('#jform_indexes').addClass('required');
jform_vvvvwbwvxn_required = false;
}
}
else
{
jQuery('#jform_datadefault').closest('.control-group').hide();
jQuery('#jform_indexes').closest('.control-group').hide();
// remove required attribute from indexes field
if (!jform_vvvvwbwvxn_required)
{
updateFieldRequired('indexes',1);
jQuery('#jform_indexes').removeAttr('required');
jQuery('#jform_indexes').removeAttr('aria-required');
jQuery('#jform_indexes').removeClass('required');
jform_vvvvwbwvxn_required = true;
}
}
}
// the vvvvwbw Some function
function datatype_vvvvwbw_SomeFunc(datatype_vvvvwbw)
{
// set the function logic
if (datatype_vvvvwbw == 'CHAR' || datatype_vvvvwbw ==
'VARCHAR' || datatype_vvvvwbw == 'DATETIME' ||
datatype_vvvvwbw == 'DATE' || datatype_vvvvwbw ==
'TIME' || datatype_vvvvwbw == 'INT' || datatype_vvvvwbw
== 'TINYINT' || datatype_vvvvwbw == 'BIGINT' ||
datatype_vvvvwbw == 'FLOAT' || datatype_vvvvwbw ==
'DECIMAL' || datatype_vvvvwbw == 'DOUBLE')
{
return true;
}
return false;
}
// the vvvvwbw Some function
function has_defaults_vvvvwbw_SomeFunc(has_defaults_vvvvwbw)
{
// set the function logic
if (has_defaults_vvvvwbw == 1)
{
return true;
}
return false;
}
// the vvvvwbx function
function vvvvwbx(has_defaults_vvvvwbx,datatype_vvvvwbx)
{
if (isSet(has_defaults_vvvvwbx) &&
has_defaults_vvvvwbx.constructor !== Array)
{
var temp_vvvvwbx = has_defaults_vvvvwbx;
var has_defaults_vvvvwbx = [];
has_defaults_vvvvwbx.push(temp_vvvvwbx);
}
else if (!isSet(has_defaults_vvvvwbx))
{
var has_defaults_vvvvwbx = [];
}
var has_defaults =
has_defaults_vvvvwbx.some(has_defaults_vvvvwbx_SomeFunc);
if (isSet(datatype_vvvvwbx) && datatype_vvvvwbx.constructor !==
Array)
{
var temp_vvvvwbx = datatype_vvvvwbx;
var datatype_vvvvwbx = [];
datatype_vvvvwbx.push(temp_vvvvwbx);
}
else if (!isSet(datatype_vvvvwbx))
{
var datatype_vvvvwbx = [];
}
var datatype = datatype_vvvvwbx.some(datatype_vvvvwbx_SomeFunc);
// set this function logic
if (has_defaults && datatype)
{
jQuery('#jform_datadefault').closest('.control-group').show();
jQuery('#jform_indexes').closest('.control-group').show();
// add required attribute to indexes field
if (jform_vvvvwbxvxo_required)
{
updateFieldRequired('indexes',0);
jQuery('#jform_indexes').prop('required','required');
jQuery('#jform_indexes').attr('aria-required',true);
jQuery('#jform_indexes').addClass('required');
jform_vvvvwbxvxo_required = false;
}
}
else
{
jQuery('#jform_datadefault').closest('.control-group').hide();
jQuery('#jform_indexes').closest('.control-group').hide();
// remove required attribute from indexes field
if (!jform_vvvvwbxvxo_required)
{
updateFieldRequired('indexes',1);
jQuery('#jform_indexes').removeAttr('required');
jQuery('#jform_indexes').removeAttr('aria-required');
jQuery('#jform_indexes').removeClass('required');
jform_vvvvwbxvxo_required = true;
}
}
}
// the vvvvwbx Some function
function has_defaults_vvvvwbx_SomeFunc(has_defaults_vvvvwbx)
{
// set the function logic
if (has_defaults_vvvvwbx == 1)
{
return true;
}
return false;
}
// the vvvvwbx Some function
function datatype_vvvvwbx_SomeFunc(datatype_vvvvwbx)
{
// set the function logic
if (datatype_vvvvwbx == 'CHAR' || datatype_vvvvwbx ==
'VARCHAR' || datatype_vvvvwbx == 'DATETIME' ||
datatype_vvvvwbx == 'DATE' || datatype_vvvvwbx ==
'TIME' || datatype_vvvvwbx == 'INT' || datatype_vvvvwbx
== 'TINYINT' || datatype_vvvvwbx == 'BIGINT' ||
datatype_vvvvwbx == 'FLOAT' || datatype_vvvvwbx ==
'DECIMAL' || datatype_vvvvwbx == 'DOUBLE')
{
return true;
}
return false;
}
// the vvvvwby function
function vvvvwby(datatype_vvvvwby,has_defaults_vvvvwby)
{
if (isSet(datatype_vvvvwby) && datatype_vvvvwby.constructor !==
Array)
{
var temp_vvvvwby = datatype_vvvvwby;
var datatype_vvvvwby = [];
datatype_vvvvwby.push(temp_vvvvwby);
}
else if (!isSet(datatype_vvvvwby))
{
var datatype_vvvvwby = [];
}
var datatype = datatype_vvvvwby.some(datatype_vvvvwby_SomeFunc);
if (isSet(has_defaults_vvvvwby) &&
has_defaults_vvvvwby.constructor !== Array)
{
var temp_vvvvwby = has_defaults_vvvvwby;
var has_defaults_vvvvwby = [];
has_defaults_vvvvwby.push(temp_vvvvwby);
}
else if (!isSet(has_defaults_vvvvwby))
{
var has_defaults_vvvvwby = [];
}
var has_defaults =
has_defaults_vvvvwby.some(has_defaults_vvvvwby_SomeFunc);
// set this function logic
if (datatype && has_defaults)
{
jQuery('#jform_store').closest('.control-group').show();
// add required attribute to store field
if (jform_vvvvwbyvxp_required)
{
updateFieldRequired('store',0);
jQuery('#jform_store').prop('required','required');
jQuery('#jform_store').attr('aria-required',true);
jQuery('#jform_store').addClass('required');
jform_vvvvwbyvxp_required = false;
}
}
else
{
jQuery('#jform_store').closest('.control-group').hide();
// remove required attribute from store field
if (!jform_vvvvwbyvxp_required)
{
updateFieldRequired('store',1);
jQuery('#jform_store').removeAttr('required');
jQuery('#jform_store').removeAttr('aria-required');
jQuery('#jform_store').removeClass('required');
jform_vvvvwbyvxp_required = true;
}
}
}
// the vvvvwby Some function
function datatype_vvvvwby_SomeFunc(datatype_vvvvwby)
{
// set the function logic
if (datatype_vvvvwby == 'CHAR' || datatype_vvvvwby ==
'VARCHAR' || datatype_vvvvwby == 'TEXT' ||
datatype_vvvvwby == 'MEDIUMTEXT' || datatype_vvvvwby ==
'LONGTEXT' || datatype_vvvvwby == 'BLOB' ||
datatype_vvvvwby == 'TINYBLOB' || datatype_vvvvwby ==
'MEDIUMBLOB' || datatype_vvvvwby == 'LONGBLOB')
{
return true;
}
return false;
}
// the vvvvwby Some function
function has_defaults_vvvvwby_SomeFunc(has_defaults_vvvvwby)
{
// set the function logic
if (has_defaults_vvvvwby == 1)
{
return true;
}
return false;
}
// the vvvvwca function
function vvvvwca(store_vvvvwca,datatype_vvvvwca,has_defaults_vvvvwca)
{
if (isSet(store_vvvvwca) && store_vvvvwca.constructor !== Array)
{
var temp_vvvvwca = store_vvvvwca;
var store_vvvvwca = [];
store_vvvvwca.push(temp_vvvvwca);
}
else if (!isSet(store_vvvvwca))
{
var store_vvvvwca = [];
}
var store = store_vvvvwca.some(store_vvvvwca_SomeFunc);
if (isSet(datatype_vvvvwca) && datatype_vvvvwca.constructor !==
Array)
{
var temp_vvvvwca = datatype_vvvvwca;
var datatype_vvvvwca = [];
datatype_vvvvwca.push(temp_vvvvwca);
}
else if (!isSet(datatype_vvvvwca))
{
var datatype_vvvvwca = [];
}
var datatype = datatype_vvvvwca.some(datatype_vvvvwca_SomeFunc);
if (isSet(has_defaults_vvvvwca) &&
has_defaults_vvvvwca.constructor !== Array)
{
var temp_vvvvwca = has_defaults_vvvvwca;
var has_defaults_vvvvwca = [];
has_defaults_vvvvwca.push(temp_vvvvwca);
}
else if (!isSet(has_defaults_vvvvwca))
{
var has_defaults_vvvvwca = [];
}
var has_defaults =
has_defaults_vvvvwca.some(has_defaults_vvvvwca_SomeFunc);
// set this function logic
if (store && datatype && has_defaults)
{
jQuery('.note_whmcs_encryption').closest('.control-group').show();
}
else
{
jQuery('.note_whmcs_encryption').closest('.control-group').hide();
}
}
// the vvvvwca Some function
function store_vvvvwca_SomeFunc(store_vvvvwca)
{
// set the function logic
if (store_vvvvwca == 4)
{
return true;
}
return false;
}
// the vvvvwca Some function
function datatype_vvvvwca_SomeFunc(datatype_vvvvwca)
{
// set the function logic
if (datatype_vvvvwca == 'CHAR' || datatype_vvvvwca ==
'VARCHAR' || datatype_vvvvwca == 'TEXT' ||
datatype_vvvvwca == 'MEDIUMTEXT' || datatype_vvvvwca ==
'LONGTEXT' || datatype_vvvvwca == 'BLOB' ||
datatype_vvvvwca == 'TINYBLOB' || datatype_vvvvwca ==
'MEDIUMBLOB' || datatype_vvvvwca == 'LONGBLOB')
{
return true;
}
return false;
}
// the vvvvwca Some function
function has_defaults_vvvvwca_SomeFunc(has_defaults_vvvvwca)
{
// set the function logic
if (has_defaults_vvvvwca == 1)
{
return true;
}
return false;
}
// the vvvvwcb function
function vvvvwcb(datatype_vvvvwcb,store_vvvvwcb,has_defaults_vvvvwcb)
{
if (isSet(datatype_vvvvwcb) && datatype_vvvvwcb.constructor !==
Array)
{
var temp_vvvvwcb = datatype_vvvvwcb;
var datatype_vvvvwcb = [];
datatype_vvvvwcb.push(temp_vvvvwcb);
}
else if (!isSet(datatype_vvvvwcb))
{
var datatype_vvvvwcb = [];
}
var datatype = datatype_vvvvwcb.some(datatype_vvvvwcb_SomeFunc);
if (isSet(store_vvvvwcb) && store_vvvvwcb.constructor !== Array)
{
var temp_vvvvwcb = store_vvvvwcb;
var store_vvvvwcb = [];
store_vvvvwcb.push(temp_vvvvwcb);
}
else if (!isSet(store_vvvvwcb))
{
var store_vvvvwcb = [];
}
var store = store_vvvvwcb.some(store_vvvvwcb_SomeFunc);
if (isSet(has_defaults_vvvvwcb) &&
has_defaults_vvvvwcb.constructor !== Array)
{
var temp_vvvvwcb = has_defaults_vvvvwcb;
var has_defaults_vvvvwcb = [];
has_defaults_vvvvwcb.push(temp_vvvvwcb);
}
else if (!isSet(has_defaults_vvvvwcb))
{
var has_defaults_vvvvwcb = [];
}
var has_defaults =
has_defaults_vvvvwcb.some(has_defaults_vvvvwcb_SomeFunc);
// set this function logic
if (datatype && store && has_defaults)
{
jQuery('.note_whmcs_encryption').closest('.control-group').show();
}
else
{
jQuery('.note_whmcs_encryption').closest('.control-group').hide();
}
}
// the vvvvwcb Some function
function datatype_vvvvwcb_SomeFunc(datatype_vvvvwcb)
{
// set the function logic
if (datatype_vvvvwcb == 'CHAR' || datatype_vvvvwcb ==
'VARCHAR' || datatype_vvvvwcb == 'TEXT' ||
datatype_vvvvwcb == 'MEDIUMTEXT' || datatype_vvvvwcb ==
'LONGTEXT' || datatype_vvvvwcb == 'BLOB' ||
datatype_vvvvwcb == 'TINYBLOB' || datatype_vvvvwcb ==
'MEDIUMBLOB' || datatype_vvvvwcb == 'LONGBLOB')
{
return true;
}
return false;
}
// the vvvvwcb Some function
function store_vvvvwcb_SomeFunc(store_vvvvwcb)
{
// set the function logic
if (store_vvvvwcb == 4)
{
return true;
}
return false;
}
// the vvvvwcb Some function
function has_defaults_vvvvwcb_SomeFunc(has_defaults_vvvvwcb)
{
// set the function logic
if (has_defaults_vvvvwcb == 1)
{
return true;
}
return false;
}
// the vvvvwcc function
function vvvvwcc(has_defaults_vvvvwcc,store_vvvvwcc,datatype_vvvvwcc)
{
if (isSet(has_defaults_vvvvwcc) &&
has_defaults_vvvvwcc.constructor !== Array)
{
var temp_vvvvwcc = has_defaults_vvvvwcc;
var has_defaults_vvvvwcc = [];
has_defaults_vvvvwcc.push(temp_vvvvwcc);
}
else if (!isSet(has_defaults_vvvvwcc))
{
var has_defaults_vvvvwcc = [];
}
var has_defaults =
has_defaults_vvvvwcc.some(has_defaults_vvvvwcc_SomeFunc);
if (isSet(store_vvvvwcc) && store_vvvvwcc.constructor !== Array)
{
var temp_vvvvwcc = store_vvvvwcc;
var store_vvvvwcc = [];
store_vvvvwcc.push(temp_vvvvwcc);
}
else if (!isSet(store_vvvvwcc))
{
var store_vvvvwcc = [];
}
var store = store_vvvvwcc.some(store_vvvvwcc_SomeFunc);
if (isSet(datatype_vvvvwcc) && datatype_vvvvwcc.constructor !==
Array)
{
var temp_vvvvwcc = datatype_vvvvwcc;
var datatype_vvvvwcc = [];
datatype_vvvvwcc.push(temp_vvvvwcc);
}
else if (!isSet(datatype_vvvvwcc))
{
var datatype_vvvvwcc = [];
}
var datatype = datatype_vvvvwcc.some(datatype_vvvvwcc_SomeFunc);
// set this function logic
if (has_defaults && store && datatype)
{
jQuery('.note_whmcs_encryption').closest('.control-group').show();
}
else
{
jQuery('.note_whmcs_encryption').closest('.control-group').hide();
}
}
// the vvvvwcc Some function
function has_defaults_vvvvwcc_SomeFunc(has_defaults_vvvvwcc)
{
// set the function logic
if (has_defaults_vvvvwcc == 1)
{
return true;
}
return false;
}
// the vvvvwcc Some function
function store_vvvvwcc_SomeFunc(store_vvvvwcc)
{
// set the function logic
if (store_vvvvwcc == 4)
{
return true;
}
return false;
}
// the vvvvwcc Some function
function datatype_vvvvwcc_SomeFunc(datatype_vvvvwcc)
{
// set the function logic
if (datatype_vvvvwcc == 'CHAR' || datatype_vvvvwcc ==
'VARCHAR' || datatype_vvvvwcc == 'TEXT' ||
datatype_vvvvwcc == 'MEDIUMTEXT' || datatype_vvvvwcc ==
'LONGTEXT' || datatype_vvvvwcc == 'BLOB' ||
datatype_vvvvwcc == 'TINYBLOB' || datatype_vvvvwcc ==
'MEDIUMBLOB' || datatype_vvvvwcc == 'LONGBLOB')
{
return true;
}
return false;
}
// the vvvvwcd function
function vvvvwcd(has_defaults_vvvvwcd)
{
// set the function logic
if (has_defaults_vvvvwcd == 1)
{
jQuery('#jform_datatype').closest('.control-group').show();
// add required attribute to datatype field
if (jform_vvvvwcdvxq_required)
{
updateFieldRequired('datatype',0);
jQuery('#jform_datatype').prop('required','required');
jQuery('#jform_datatype').attr('aria-required',true);
jQuery('#jform_datatype').addClass('required');
jform_vvvvwcdvxq_required = false;
}
jQuery('#jform_null_switch').closest('.control-group').show();
// add required attribute to null_switch field
if (jform_vvvvwcdvxr_required)
{
updateFieldRequired('null_switch',0);
jQuery('#jform_null_switch').prop('required','required');
jQuery('#jform_null_switch').attr('aria-required',true);
jQuery('#jform_null_switch').addClass('required');
jform_vvvvwcdvxr_required = false;
}
}
else
{
jQuery('#jform_datatype').closest('.control-group').hide();
// remove required attribute from datatype field
if (!jform_vvvvwcdvxq_required)
{
updateFieldRequired('datatype',1);
jQuery('#jform_datatype').removeAttr('required');
jQuery('#jform_datatype').removeAttr('aria-required');
jQuery('#jform_datatype').removeClass('required');
jform_vvvvwcdvxq_required = true;
}
jQuery('#jform_null_switch').closest('.control-group').hide();
// remove required attribute from null_switch field
if (!jform_vvvvwcdvxr_required)
{
updateFieldRequired('null_switch',1);
jQuery('#jform_null_switch').removeAttr('required');
jQuery('#jform_null_switch').removeAttr('aria-required');
jQuery('#jform_null_switch').removeClass('required');
jform_vvvvwcdvxr_required = true;
}
}
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function($)
{
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
help_document.js000064400000020523151167367500007745 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwcovyc_required = false;
jform_vvvvwcpvyd_required = false;
jform_vvvvwcqvye_required = false;
jform_vvvvwcrvyf_required = false;
jform_vvvvwctvyg_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var location_vvvvwco = jQuery("#jform_location
input[type='radio']:checked").val();
vvvvwco(location_vvvvwco);
var location_vvvvwcp = jQuery("#jform_location
input[type='radio']:checked").val();
vvvvwcp(location_vvvvwcp);
var type_vvvvwcq = jQuery("#jform_type").val();
vvvvwcq(type_vvvvwcq);
var type_vvvvwcr = jQuery("#jform_type").val();
vvvvwcr(type_vvvvwcr);
var type_vvvvwcs = jQuery("#jform_type").val();
vvvvwcs(type_vvvvwcs);
var target_vvvvwct = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwct(target_vvvvwct);
});
// the vvvvwco function
function vvvvwco(location_vvvvwco)
{
// set the function logic
if (location_vvvvwco == 1)
{
jQuery('#jform_admin_view').closest('.control-group').show();
// add required attribute to admin_view field
if (jform_vvvvwcovyc_required)
{
updateFieldRequired('admin_view',0);
jQuery('#jform_admin_view').prop('required','required');
jQuery('#jform_admin_view').attr('aria-required',true);
jQuery('#jform_admin_view').addClass('required');
jform_vvvvwcovyc_required = false;
}
}
else
{
jQuery('#jform_admin_view').closest('.control-group').hide();
// remove required attribute from admin_view field
if (!jform_vvvvwcovyc_required)
{
updateFieldRequired('admin_view',1);
jQuery('#jform_admin_view').removeAttr('required');
jQuery('#jform_admin_view').removeAttr('aria-required');
jQuery('#jform_admin_view').removeClass('required');
jform_vvvvwcovyc_required = true;
}
}
}
// the vvvvwcp function
function vvvvwcp(location_vvvvwcp)
{
// set the function logic
if (location_vvvvwcp == 2)
{
jQuery('#jform_site_view').closest('.control-group').show();
// add required attribute to site_view field
if (jform_vvvvwcpvyd_required)
{
updateFieldRequired('site_view',0);
jQuery('#jform_site_view').prop('required','required');
jQuery('#jform_site_view').attr('aria-required',true);
jQuery('#jform_site_view').addClass('required');
jform_vvvvwcpvyd_required = false;
}
}
else
{
jQuery('#jform_site_view').closest('.control-group').hide();
// remove required attribute from site_view field
if (!jform_vvvvwcpvyd_required)
{
updateFieldRequired('site_view',1);
jQuery('#jform_site_view').removeAttr('required');
jQuery('#jform_site_view').removeAttr('aria-required');
jQuery('#jform_site_view').removeClass('required');
jform_vvvvwcpvyd_required = true;
}
}
}
// the vvvvwcq function
function vvvvwcq(type_vvvvwcq)
{
if (isSet(type_vvvvwcq) && type_vvvvwcq.constructor !== Array)
{
var temp_vvvvwcq = type_vvvvwcq;
var type_vvvvwcq = [];
type_vvvvwcq.push(temp_vvvvwcq);
}
else if (!isSet(type_vvvvwcq))
{
var type_vvvvwcq = [];
}
var type = type_vvvvwcq.some(type_vvvvwcq_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_url').closest('.control-group').show();
// add required attribute to url field
if (jform_vvvvwcqvye_required)
{
updateFieldRequired('url',0);
jQuery('#jform_url').prop('required','required');
jQuery('#jform_url').attr('aria-required',true);
jQuery('#jform_url').addClass('required');
jform_vvvvwcqvye_required = false;
}
}
else
{
jQuery('#jform_url').closest('.control-group').hide();
// remove required attribute from url field
if (!jform_vvvvwcqvye_required)
{
updateFieldRequired('url',1);
jQuery('#jform_url').removeAttr('required');
jQuery('#jform_url').removeAttr('aria-required');
jQuery('#jform_url').removeClass('required');
jform_vvvvwcqvye_required = true;
}
}
}
// the vvvvwcq Some function
function type_vvvvwcq_SomeFunc(type_vvvvwcq)
{
// set the function logic
if (type_vvvvwcq == 3)
{
return true;
}
return false;
}
// the vvvvwcr function
function vvvvwcr(type_vvvvwcr)
{
if (isSet(type_vvvvwcr) && type_vvvvwcr.constructor !== Array)
{
var temp_vvvvwcr = type_vvvvwcr;
var type_vvvvwcr = [];
type_vvvvwcr.push(temp_vvvvwcr);
}
else if (!isSet(type_vvvvwcr))
{
var type_vvvvwcr = [];
}
var type = type_vvvvwcr.some(type_vvvvwcr_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_article').closest('.control-group').show();
// add required attribute to article field
if (jform_vvvvwcrvyf_required)
{
updateFieldRequired('article',0);
jQuery('#jform_article').prop('required','required');
jQuery('#jform_article').attr('aria-required',true);
jQuery('#jform_article').addClass('required');
jform_vvvvwcrvyf_required = false;
}
}
else
{
jQuery('#jform_article').closest('.control-group').hide();
// remove required attribute from article field
if (!jform_vvvvwcrvyf_required)
{
updateFieldRequired('article',1);
jQuery('#jform_article').removeAttr('required');
jQuery('#jform_article').removeAttr('aria-required');
jQuery('#jform_article').removeClass('required');
jform_vvvvwcrvyf_required = true;
}
}
}
// the vvvvwcr Some function
function type_vvvvwcr_SomeFunc(type_vvvvwcr)
{
// set the function logic
if (type_vvvvwcr == 1)
{
return true;
}
return false;
}
// the vvvvwcs function
function vvvvwcs(type_vvvvwcs)
{
if (isSet(type_vvvvwcs) && type_vvvvwcs.constructor !== Array)
{
var temp_vvvvwcs = type_vvvvwcs;
var type_vvvvwcs = [];
type_vvvvwcs.push(temp_vvvvwcs);
}
else if (!isSet(type_vvvvwcs))
{
var type_vvvvwcs = [];
}
var type = type_vvvvwcs.some(type_vvvvwcs_SomeFunc);
// set this function logic
if (type)
{
jQuery('#jform_content-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_content-lbl').closest('.control-group').hide();
}
}
// the vvvvwcs Some function
function type_vvvvwcs_SomeFunc(type_vvvvwcs)
{
// set the function logic
if (type_vvvvwcs == 2)
{
return true;
}
return false;
}
// the vvvvwct function
function vvvvwct(target_vvvvwct)
{
// set the function logic
if (target_vvvvwct == 1)
{
jQuery('#jform_groups').closest('.control-group').show();
// add required attribute to groups field
if (jform_vvvvwctvyg_required)
{
updateFieldRequired('groups',0);
jQuery('#jform_groups').prop('required','required');
jQuery('#jform_groups').attr('aria-required',true);
jQuery('#jform_groups').addClass('required');
jform_vvvvwctvyg_required = false;
}
}
else
{
jQuery('#jform_groups').closest('.control-group').hide();
// remove required attribute from groups field
if (!jform_vvvvwctvyg_required)
{
updateFieldRequired('groups',1);
jQuery('#jform_groups').removeAttr('required');
jQuery('#jform_groups').removeAttr('aria-required');
jQuery('#jform_groups').removeClass('required');
jform_vvvvwctvyg_required = true;
}
}
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
index.html000064400000000054151167367500006553 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>joomla_component.js000064400000046552151167367500010474
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvvwcvvv_required = false;
jform_vvvvvwdvvw_required = false;
jform_vvvvvwgvvx_required = false;
jform_vvvvvwgvvy_required = false;
jform_vvvvvwgvvz_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var emptycontributors_vvvvvvv = jQuery("#jform_emptycontributors
input[type='radio']:checked").val();
vvvvvvv(emptycontributors_vvvvvvv);
var update_server_target_vvvvvvw =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvvw = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvvw(update_server_target_vvvvvvw,add_update_server_vvvvvvw);
var add_update_server_vvvvvvx = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
var update_server_target_vvvvvvx =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
vvvvvvx(add_update_server_vvvvvvx,update_server_target_vvvvvvx);
var update_server_target_vvvvvvy =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvvy = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvvy(update_server_target_vvvvvvy,add_update_server_vvvvvvy);
var update_server_target_vvvvvwa =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvwa = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwa(update_server_target_vvvvvwa,add_update_server_vvvvvwa);
var add_update_server_vvvvvwc = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwc(add_update_server_vvvvvwc);
var buildcomp_vvvvvwd = jQuery("#jform_buildcomp
input[type='radio']:checked").val();
vvvvvwd(buildcomp_vvvvvwd);
var dashboard_type_vvvvvwe = jQuery("#jform_dashboard_type
input[type='radio']:checked").val();
vvvvvwe(dashboard_type_vvvvvwe);
var dashboard_type_vvvvvwf = jQuery("#jform_dashboard_type
input[type='radio']:checked").val();
vvvvvwf(dashboard_type_vvvvvwf);
var translation_tool_vvvvvwg =
jQuery("#jform_translation_tool").val();
vvvvvwg(translation_tool_vvvvvwg);
});
// the vvvvvvv function
function vvvvvvv(emptycontributors_vvvvvvv)
{
// set the function logic
if (emptycontributors_vvvvvvv == 1)
{
jQuery('#jform_number').closest('.control-group').show();
}
else
{
jQuery('#jform_number').closest('.control-group').hide();
}
}
// the vvvvvvw function
function vvvvvvw(update_server_target_vvvvvvw,add_update_server_vvvvvvw)
{
// set the function logic
if (update_server_target_vvvvvvw == 1 && add_update_server_vvvvvvw
== 1)
{
jQuery('#jform_update_server').closest('.control-group').show();
jQuery('.note_update_server_note_ftp').closest('.control-group').show();
}
else
{
jQuery('#jform_update_server').closest('.control-group').hide();
jQuery('.note_update_server_note_ftp').closest('.control-group').hide();
}
}
// the vvvvvvx function
function vvvvvvx(add_update_server_vvvvvvx,update_server_target_vvvvvvx)
{
// set the function logic
if (add_update_server_vvvvvvx == 1 && update_server_target_vvvvvvx
== 1)
{
jQuery('#jform_update_server').closest('.control-group').show();
jQuery('.note_update_server_note_ftp').closest('.control-group').show();
}
else
{
jQuery('#jform_update_server').closest('.control-group').hide();
jQuery('.note_update_server_note_ftp').closest('.control-group').hide();
}
}
// the vvvvvvy function
function vvvvvvy(update_server_target_vvvvvvy,add_update_server_vvvvvvy)
{
// set the function logic
if (update_server_target_vvvvvvy == 2 && add_update_server_vvvvvvy
== 1)
{
jQuery('.note_update_server_note_zip').closest('.control-group').show();
}
else
{
jQuery('.note_update_server_note_zip').closest('.control-group').hide();
}
}
// the vvvvvwa function
function vvvvvwa(update_server_target_vvvvvwa,add_update_server_vvvvvwa)
{
// set the function logic
if (update_server_target_vvvvvwa == 3 && add_update_server_vvvvvwa
== 1)
{
jQuery('.note_update_server_note_other').closest('.control-group').show();
}
else
{
jQuery('.note_update_server_note_other').closest('.control-group').hide();
}
}
// the vvvvvwc function
function vvvvvwc(add_update_server_vvvvvwc)
{
// set the function logic
if (add_update_server_vvvvvwc == 1)
{
jQuery('#jform_update_server_target').closest('.control-group').show();
// add required attribute to update_server_target field
if (jform_vvvvvwcvvv_required)
{
updateFieldRequired('update_server_target',0);
jQuery('#jform_update_server_target').prop('required','required');
jQuery('#jform_update_server_target').attr('aria-required',true);
jQuery('#jform_update_server_target').addClass('required');
jform_vvvvvwcvvv_required = false;
}
}
else
{
jQuery('#jform_update_server_target').closest('.control-group').hide();
// remove required attribute from update_server_target field
if (!jform_vvvvvwcvvv_required)
{
updateFieldRequired('update_server_target',1);
jQuery('#jform_update_server_target').removeAttr('required');
jQuery('#jform_update_server_target').removeAttr('aria-required');
jQuery('#jform_update_server_target').removeClass('required');
jform_vvvvvwcvvv_required = true;
}
}
}
// the vvvvvwd function
function vvvvvwd(buildcomp_vvvvvwd)
{
// set the function logic
if (buildcomp_vvvvvwd == 1)
{
jQuery('#jform_buildcompsql').closest('.control-group').show();
// add required attribute to buildcompsql field
if (jform_vvvvvwdvvw_required)
{
updateFieldRequired('buildcompsql',0);
jQuery('#jform_buildcompsql').prop('required','required');
jQuery('#jform_buildcompsql').attr('aria-required',true);
jQuery('#jform_buildcompsql').addClass('required');
jform_vvvvvwdvvw_required = false;
}
}
else
{
jQuery('#jform_buildcompsql').closest('.control-group').hide();
// remove required attribute from buildcompsql field
if (!jform_vvvvvwdvvw_required)
{
updateFieldRequired('buildcompsql',1);
jQuery('#jform_buildcompsql').removeAttr('required');
jQuery('#jform_buildcompsql').removeAttr('aria-required');
jQuery('#jform_buildcompsql').removeClass('required');
jform_vvvvvwdvvw_required = true;
}
}
}
// the vvvvvwe function
function vvvvvwe(dashboard_type_vvvvvwe)
{
// set the function logic
if (dashboard_type_vvvvvwe == 2)
{
jQuery('#jform_dashboard').closest('.control-group').show();
jQuery('.note_dynamic_dashboard').closest('.control-group').show();
}
else
{
jQuery('#jform_dashboard').closest('.control-group').hide();
jQuery('.note_dynamic_dashboard').closest('.control-group').hide();
}
}
// the vvvvvwf function
function vvvvvwf(dashboard_type_vvvvvwf)
{
// set the function logic
if (dashboard_type_vvvvvwf == 1)
{
jQuery('.note_botton_component_dashboard').closest('.control-group').show();
}
else
{
jQuery('.note_botton_component_dashboard').closest('.control-group').hide();
}
}
// the vvvvvwg function
function vvvvvwg(translation_tool_vvvvvwg)
{
if (isSet(translation_tool_vvvvvwg) &&
translation_tool_vvvvvwg.constructor !== Array)
{
var temp_vvvvvwg = translation_tool_vvvvvwg;
var translation_tool_vvvvvwg = [];
translation_tool_vvvvvwg.push(temp_vvvvvwg);
}
else if (!isSet(translation_tool_vvvvvwg))
{
var translation_tool_vvvvvwg = [];
}
var translation_tool =
translation_tool_vvvvvwg.some(translation_tool_vvvvvwg_SomeFunc);
// set this function logic
if (translation_tool)
{
jQuery('#jform_crowdin_account_api_key').closest('.control-group').show();
jQuery('.note_crowdin').closest('.control-group').show();
jQuery('#jform_crowdin_project_api_key').closest('.control-group').show();
// add required attribute to crowdin_project_api_key field
if (jform_vvvvvwgvvx_required)
{
updateFieldRequired('crowdin_project_api_key',0);
jQuery('#jform_crowdin_project_api_key').prop('required','required');
jQuery('#jform_crowdin_project_api_key').attr('aria-required',true);
jQuery('#jform_crowdin_project_api_key').addClass('required');
jform_vvvvvwgvvx_required = false;
}
jQuery('#jform_crowdin_project_identifier').closest('.control-group').show();
// add required attribute to crowdin_project_identifier field
if (jform_vvvvvwgvvy_required)
{
updateFieldRequired('crowdin_project_identifier',0);
jQuery('#jform_crowdin_project_identifier').prop('required','required');
jQuery('#jform_crowdin_project_identifier').attr('aria-required',true);
jQuery('#jform_crowdin_project_identifier').addClass('required');
jform_vvvvvwgvvy_required = false;
}
jQuery('#jform_crowdin_username').closest('.control-group').show();
// add required attribute to crowdin_username field
if (jform_vvvvvwgvvz_required)
{
updateFieldRequired('crowdin_username',0);
jQuery('#jform_crowdin_username').prop('required','required');
jQuery('#jform_crowdin_username').attr('aria-required',true);
jQuery('#jform_crowdin_username').addClass('required');
jform_vvvvvwgvvz_required = false;
}
}
else
{
jQuery('#jform_crowdin_account_api_key').closest('.control-group').hide();
jQuery('.note_crowdin').closest('.control-group').hide();
jQuery('#jform_crowdin_project_api_key').closest('.control-group').hide();
// remove required attribute from crowdin_project_api_key field
if (!jform_vvvvvwgvvx_required)
{
updateFieldRequired('crowdin_project_api_key',1);
jQuery('#jform_crowdin_project_api_key').removeAttr('required');
jQuery('#jform_crowdin_project_api_key').removeAttr('aria-required');
jQuery('#jform_crowdin_project_api_key').removeClass('required');
jform_vvvvvwgvvx_required = true;
}
jQuery('#jform_crowdin_project_identifier').closest('.control-group').hide();
// remove required attribute from crowdin_project_identifier field
if (!jform_vvvvvwgvvy_required)
{
updateFieldRequired('crowdin_project_identifier',1);
jQuery('#jform_crowdin_project_identifier').removeAttr('required');
jQuery('#jform_crowdin_project_identifier').removeAttr('aria-required');
jQuery('#jform_crowdin_project_identifier').removeClass('required');
jform_vvvvvwgvvy_required = true;
}
jQuery('#jform_crowdin_username').closest('.control-group').hide();
// remove required attribute from crowdin_username field
if (!jform_vvvvvwgvvz_required)
{
updateFieldRequired('crowdin_username',1);
jQuery('#jform_crowdin_username').removeAttr('required');
jQuery('#jform_crowdin_username').removeAttr('aria-required');
jQuery('#jform_crowdin_username').removeClass('required');
jform_vvvvvwgvvz_required = true;
}
}
}
// the vvvvvwg Some function
function translation_tool_vvvvvwg_SomeFunc(translation_tool_vvvvvwg)
{
// set the function logic
if (translation_tool_vvvvvwg == 1)
{
return true;
}
return false;
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// check what is the dashboard switch
var dasboard_type = jQuery("#jform_dashboard_type
input[type='radio']:checked").val();
dasboardSwitch(dasboard_type);
// set buttons
function setButtons1() {
addButtonID('component_files_folders','button_component_files_folders',
1);
addButtonID('component_site_views','button_create_edit_views',
1);
}
function setButtons2() {
addButtonID('component_updates','component_version',
1);
addButtonID('component_mysql_tweaks','button_mysql_tweak_options',
1);
addButtonID('component_custom_admin_views','button_create_edit_views',
1);
}
function setButtons3() {
addButtonID('component_custom_admin_menus','button_add_custom_menus',
1);
addButtonID('component_config','button_add_config',
1);
addButtonID('component_admin_views','button_create_edit_views',
1);
}
// use setTimeout() to execute
setTimeout(setButtons1, 1000);
setTimeout(setButtons2, 2000);
setTimeout(setButtons3, 3000);
// now load the displays
function setDisplays1() {
getAjaxDisplay('component_admin_views');
}
function setDisplays2() {
getAjaxDisplay('component_custom_admin_views');
}
function setDisplays3() {
getAjaxDisplay('component_site_views');
}
// use setTimeout() to execute
setTimeout(setDisplays1, 1500);
setTimeout(setDisplays2, 2500);
setTimeout(setDisplays3, 3500);
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 400);
// get crowdin detail if set
setTimeout(getTranslationToolDetails, 600);
});
function getTranslationToolDetails(){
// get the translation tool selection
var tool = jQuery("#jform_translation_tool").val();
// trigger Crowdin
if (tool == 1) {
// get the identifier
var identifier =
jQuery("#jform_crowdin_project_identifier").val();
// get the key
var key = jQuery("#jform_crowdin_project_api_key").val();
// query server for details
getCrowdinDetails_server(identifier, key).done(function(result) {
if (result.error){
jQuery('#crowdin_information_box').show();
jQuery('#crowdin_error_box').show();
jQuery('#crowdin_error_box').html(result.error);
jQuery('#crowdin_success_box').hide();
} else if(result.html) {
jQuery('#crowdin_success_box').show();
jQuery('#crowdin_success_box').html(result.html);
jQuery('#crowdin_error_box').hide();
jQuery('#crowdin_information_box').hide();
} else {
jQuery('#crowdin_information_box').show();
jQuery('#crowdin_success_box').hide();
}
});
}
}
function getCrowdinDetails_server(identifier, key){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getCrowdinDetails&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && identifier.length > 0 &&
key.length > 0){
var request =
token+'=1&identifier='+identifier+'&key='+key;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getAjaxDisplay(type){
getAjaxDisplay_server(type).done(function(result) {
if(result){
jQuery('#display_'+type).html(result);
}
// set button
addButtonID(type,'header_'+type+'_buttons', 2); //
<-- little edit button
});
}
function getAjaxDisplay_server(type){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getAjaxDisplay&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0){
var request = token+'=1&type=' + type;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addData(result, where){
jQuery(result).insertAfter(jQuery(where).closest('.control-group'));
}
function dasboardSwitch(value){
// hide if default
if (2 == value) {
jQuery('.control-group-componentdashboard-one').hide();
} else {
// default behaviour
if (jQuery('div.control-group-componentdashboard-one').length)
{
jQuery('.control-group-componentdashboard-one').show();
} else {
addButtonID('component_dashboard','button_component_dashboard',
1);
}
}
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function addButtonID_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButtonID&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0 && size >
0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButtonID(type, where, size){
addButtonID_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
});
}
function addButton_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButton&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButton(type, where, size){
// just to insure that default behaviour still works
size = typeof size !== 'undefined' ? size : 1;
addButton_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
})
}
joomla_module.js000064400000040505151167367500007747 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_class_helper_vvvvvwh =
jQuery("#jform_add_class_helper").val();
vvvvvwh(add_class_helper_vvvvvwh);
var add_class_helper_header_vvvvvwi =
jQuery("#jform_add_class_helper_header
input[type='radio']:checked").val();
var add_class_helper_vvvvvwi =
jQuery("#jform_add_class_helper").val();
vvvvvwi(add_class_helper_header_vvvvvwi,add_class_helper_vvvvvwi);
var update_server_target_vvvvvwk =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvwk = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwk(update_server_target_vvvvvwk,add_update_server_vvvvvwk);
var add_update_server_vvvvvwl = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
var update_server_target_vvvvvwl =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
vvvvvwl(add_update_server_vvvvvwl,update_server_target_vvvvvwl);
var update_server_target_vvvvvwm =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvwm = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwm(update_server_target_vvvvvwm,add_update_server_vvvvvwm);
var update_server_target_vvvvvwo =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvwo = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwo(update_server_target_vvvvvwo,add_update_server_vvvvvwo);
});
// the vvvvvwh function
function vvvvvwh(add_class_helper_vvvvvwh)
{
if (isSet(add_class_helper_vvvvvwh) &&
add_class_helper_vvvvvwh.constructor !== Array)
{
var temp_vvvvvwh = add_class_helper_vvvvvwh;
var add_class_helper_vvvvvwh = [];
add_class_helper_vvvvvwh.push(temp_vvvvvwh);
}
else if (!isSet(add_class_helper_vvvvvwh))
{
var add_class_helper_vvvvvwh = [];
}
var add_class_helper =
add_class_helper_vvvvvwh.some(add_class_helper_vvvvvwh_SomeFunc);
// set this function logic
if (add_class_helper)
{
jQuery('#jform_add_class_helper_header').closest('.control-group').show();
jQuery('#jform_class_helper_code-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_add_class_helper_header').closest('.control-group').hide();
jQuery('#jform_class_helper_code-lbl').closest('.control-group').hide();
}
}
// the vvvvvwh Some function
function add_class_helper_vvvvvwh_SomeFunc(add_class_helper_vvvvvwh)
{
// set the function logic
if (add_class_helper_vvvvvwh == 1 || add_class_helper_vvvvvwh == 2)
{
return true;
}
return false;
}
// the vvvvvwi function
function vvvvvwi(add_class_helper_header_vvvvvwi,add_class_helper_vvvvvwi)
{
if (isSet(add_class_helper_header_vvvvvwi) &&
add_class_helper_header_vvvvvwi.constructor !== Array)
{
var temp_vvvvvwi = add_class_helper_header_vvvvvwi;
var add_class_helper_header_vvvvvwi = [];
add_class_helper_header_vvvvvwi.push(temp_vvvvvwi);
}
else if (!isSet(add_class_helper_header_vvvvvwi))
{
var add_class_helper_header_vvvvvwi = [];
}
var add_class_helper_header =
add_class_helper_header_vvvvvwi.some(add_class_helper_header_vvvvvwi_SomeFunc);
if (isSet(add_class_helper_vvvvvwi) &&
add_class_helper_vvvvvwi.constructor !== Array)
{
var temp_vvvvvwi = add_class_helper_vvvvvwi;
var add_class_helper_vvvvvwi = [];
add_class_helper_vvvvvwi.push(temp_vvvvvwi);
}
else if (!isSet(add_class_helper_vvvvvwi))
{
var add_class_helper_vvvvvwi = [];
}
var add_class_helper =
add_class_helper_vvvvvwi.some(add_class_helper_vvvvvwi_SomeFunc);
// set this function logic
if (add_class_helper_header && add_class_helper)
{
jQuery('#jform_class_helper_header-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_class_helper_header-lbl').closest('.control-group').hide();
}
}
// the vvvvvwi Some function
function
add_class_helper_header_vvvvvwi_SomeFunc(add_class_helper_header_vvvvvwi)
{
// set the function logic
if (add_class_helper_header_vvvvvwi == 1)
{
return true;
}
return false;
}
// the vvvvvwi Some function
function add_class_helper_vvvvvwi_SomeFunc(add_class_helper_vvvvvwi)
{
// set the function logic
if (add_class_helper_vvvvvwi == 1 || add_class_helper_vvvvvwi == 2)
{
return true;
}
return false;
}
// the vvvvvwk function
function vvvvvwk(update_server_target_vvvvvwk,add_update_server_vvvvvwk)
{
// set the function logic
if (update_server_target_vvvvvwk == 1 && add_update_server_vvvvvwk
== 1)
{
jQuery('#jform_update_server').closest('.control-group').show();
jQuery('.note_update_server_note_ftp').closest('.control-group').show();
}
else
{
jQuery('#jform_update_server').closest('.control-group').hide();
jQuery('.note_update_server_note_ftp').closest('.control-group').hide();
}
}
// the vvvvvwl function
function vvvvvwl(add_update_server_vvvvvwl,update_server_target_vvvvvwl)
{
// set the function logic
if (add_update_server_vvvvvwl == 1 && update_server_target_vvvvvwl
== 1)
{
jQuery('#jform_update_server').closest('.control-group').show();
jQuery('.note_update_server_note_ftp').closest('.control-group').show();
}
else
{
jQuery('#jform_update_server').closest('.control-group').hide();
jQuery('.note_update_server_note_ftp').closest('.control-group').hide();
}
}
// the vvvvvwm function
function vvvvvwm(update_server_target_vvvvvwm,add_update_server_vvvvvwm)
{
// set the function logic
if (update_server_target_vvvvvwm == 2 && add_update_server_vvvvvwm
== 1)
{
jQuery('.note_update_server_note_zip').closest('.control-group').show();
}
else
{
jQuery('.note_update_server_note_zip').closest('.control-group').hide();
}
}
// the vvvvvwo function
function vvvvvwo(update_server_target_vvvvvwo,add_update_server_vvvvvwo)
{
// set the function logic
if (update_server_target_vvvvvwo == 3 && add_update_server_vvvvvwo
== 1)
{
jQuery('.note_update_server_note_other').closest('.control-group').show();
}
else
{
jQuery('.note_update_server_note_other').closest('.control-group').hide();
}
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function() {
// get the linked details
getLinked();
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function setModuleCode() {
var selected_get = jQuery("#jform_add_class_helper
option:selected").val();
var custom_gets = jQuery("#jform_custom_get").val();
var libraries = jQuery("#jform_libraries").val();
var values = {'class': selected_get, 'get':
custom_gets, 'lib': libraries};
var editor_id = 'jform_mod_code';
getCodeFrom_server(1, JSON.stringify(values), 'data',
'getModuleCode').then(function(result) {
if(result.tmpl){
addCodeToEditor(result.tmpl.code, editor_id, result.tmpl.merge,
result.tmpl.merge_target);
}
if(result.css){
addCodeToEditor(result.css.code, editor_id, result.css.merge,
result.css.merge_target);
}
if(result.class){
addCodeToEditor(result.class.code, editor_id, result.class.merge,
result.class.merge_target);
}
if(result.get){
addCodeToEditor(result.get.code, editor_id, result.get.merge,
result.get.merge_target);
}
if(result.lib){
addCodeToEditor(result.lib.code, editor_id, result.lib.merge,
result.lib.merge_target);
}
});
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function addCodeToEditor(code_string, editor_id, merge, merge_target){
if (Joomla.editors.instances.hasOwnProperty(editor_id)) {
var old_code_string = Joomla.editors.instances[editor_id].getValue();
if (merge && old_code_string.length > 0) {
// make sure not to load the same string twice
if (old_code_string.indexOf(code_string) == -1) {
if ('prepend' === merge_target) {
var _string = code_string + "\n\n" + old_code_string;
} else if (merge_target && 'append' !== merge_target)
{
var old_code_array = old_code_string.split(merge_target);
if (old_code_array.length > 1) {
var _string = old_code_array.shift() + "\n\n" + code_string
+ "\n\n" + merge_target + old_code_array.join(merge_target);
} else {
var _string = code_string + "\n\n" + merge_target +
old_code_array.join('');
}
} else {
var _string = old_code_string + "\n\n" + code_string;
}
Joomla.editors.instances[editor_id].setValue(_string.trim());
return true;
}
} else {
Joomla.editors.instances[editor_id].setValue(code_string.trim());
return true;
}
} else {
var old_code_string = jQuery('textarea#'+editor_id).val();
if (merge && old_code_string.length > 0) {
// make sure not to load the same string twice
if (old_code_string.indexOf(code_string) == -1) {
if ('prepend' === merge_target) {
var _string = code_string + "\n\n" + old_code_string;
} else if (merge_target && 'append' !== merge_target)
{
var old_code_array = old_code_string.split(merge_target);
if (old_code_array.length > 1) {
var _string = old_code_array.shift() + "\n\n" + code_string
+ "\n\n" + merge_target + old_code_array.join(merge_target);
} else {
var _string = code_string + "\n\n" + merge_target +
old_code_array.join('');
}
} else {
var _string = old_code_string + "\n\n" + code_string;
}
jQuery('textarea#'+editor_id).val(_string.trim());
return true;
}
} else {
jQuery('textarea#'+editor_id).val(code_string.trim());
return true;
}
}
return false;
}
function removeCodeFromEditor(code_string, editor_id){
if (Joomla.editors.instances.hasOwnProperty(editor_id)) {
var old_code_string = Joomla.editors.instances[editor_id].getValue();
if (old_code_string.length > 0) {
// make sure string is found
if (old_code_string.indexOf(code_string) !== -1) {
// remove the code
Joomla.editors.instances[editor_id].setValue(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,''));
return true;
}
}
} else {
var old_code_string = jQuery('textarea#'+editor_id).val();
if (old_code_string.length > 0) {
// make sure string is found
if (old_code_string.indexOf(code_string) !== -1) {
// remove the code
jQuery('textarea#'+editor_id).val(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,''));
return true;
}
}
}
return false;
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function getSnippetDetails(id){
getCodeFrom_server(id, '_type', '_type',
'snippetDetails').then(function(result) {
if(result.snippet){
var description = '';
if (result.description.length > 0) {
description =
'<p>'+result.description+'</p>';
}
var library = '';
if (result.library.length > 0) {
library = '
<b>('+result.library+')</b>';
}
var code = '<div
id="snippet-code"><b>'+result.name+'
('+result.type+')</b> <a
href="'+result.url+'" target="_blank" >see
more details'+library+'</a><br
/><em>'+result.heading+'</em><br
/><textarea id="snippet" class="span12"
rows="11">'+result.snippet+'</textarea></div>';
jQuery('#snippet-code').remove();
jQuery('.snippet-code').append(code);
// make sure the code block is active
jQuery("#snippet").focus(function() {
var jQuerythis = jQuery(this);
jQuerythis.select();
// Work around Chrome's little problem
jQuerythis.mouseup(function() {
// Prevent further mouseup intervention
jQuerythis.unbind("mouseup");
return false;
});
});
}
if(result.usage){
var usage = '<div
id="snippet-usage"><p>'+result.usage+'</p></div>';
jQuery('#snippet-usage').remove();
jQuery('.snippet-usage').append(usage);
}
})
}
// set snippets that are on the page
var snippetIds = [];
var snippets = {};
var snippet = 0;
jQuery(document).ready(function($)
{
jQuery("#jform_snippet option").each(function()
{
var key = jQuery(this).val();
var text = jQuery(this).text();
snippets[key] = text;
snippetIds.push(key);
});
snippet = jQuery("#jform_snippet").val();
getSnippets();
});
function getSnippets(){
jQuery("#loading").show();
// clear the selection
jQuery('#jform_snippet').find('option').remove().end();
jQuery('#jform_snippet').trigger('liszt:updated');
// get libraries value if set
var libraries = jQuery("#jform_libraries").val();
if (libraries) {
getCodeFrom_server(1, JSON.stringify(libraries), 'libraries',
'getSnippets').then(function(result) {
setSnippets(result);
jQuery("#loading").hide();
if (typeof snippetButton !== 'undefined') {
// ensure button is correct
var snippet = jQuery('#jform_snippet').val();
snippetButton(snippet);
}
});
}
else
{
// load all snippets in none is selected
setSnippets(snippetIds);
jQuery("#loading").hide();
}
}
function setSnippets(array){
if (array) {
jQuery('#jform_snippet').append('<option
value="">'+select_a_snippet+'</option>');
jQuery.each( array, function( i, id ) {
if (id in snippets) {
jQuery('#jform_snippet').append('<option
value="'+id+'">'+snippets[id]+'</option>');
}
if (id == snippet) {
jQuery('#jform_snippet').val(id);
}
});
} else {
jQuery('#jform_snippet').append('<option
value="">'+create_a_snippet+'</option>');
}
jQuery('#jform_snippet').trigger('liszt:updated');
}
joomla_module_files_folders_urls.js000064400000000606151167367500013712
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
joomla_module_updates.js000064400000000606151167367500011472 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
joomla_plugin.js000064400000061613151167367500007763 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var class_extends_vvvvvwq =
jQuery("#jform_class_extends").val();
var joomla_plugin_group_vvvvvwq =
jQuery("#jform_joomla_plugin_group").val();
vvvvvwq(class_extends_vvvvvwq,joomla_plugin_group_vvvvvwq);
var joomla_plugin_group_vvvvvwr =
jQuery("#jform_joomla_plugin_group").val();
var class_extends_vvvvvwr =
jQuery("#jform_class_extends").val();
vvvvvwr(joomla_plugin_group_vvvvvwr,class_extends_vvvvvwr);
var class_extends_vvvvvws =
jQuery("#jform_class_extends").val();
vvvvvws(class_extends_vvvvvws);
var update_server_target_vvvvvwu =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvwu = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwu(update_server_target_vvvvvwu,add_update_server_vvvvvwu);
var add_update_server_vvvvvwv = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
var update_server_target_vvvvvwv =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
vvvvvwv(add_update_server_vvvvvwv,update_server_target_vvvvvwv);
var update_server_target_vvvvvww =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvww = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvww(update_server_target_vvvvvww,add_update_server_vvvvvww);
var update_server_target_vvvvvwy =
jQuery("#jform_update_server_target
input[type='radio']:checked").val();
var add_update_server_vvvvvwy = jQuery("#jform_add_update_server
input[type='radio']:checked").val();
vvvvvwy(update_server_target_vvvvvwy,add_update_server_vvvvvwy);
});
// the vvvvvwq function
function vvvvvwq(class_extends_vvvvvwq,joomla_plugin_group_vvvvvwq)
{
if (isSet(class_extends_vvvvvwq) &&
class_extends_vvvvvwq.constructor !== Array)
{
var temp_vvvvvwq = class_extends_vvvvvwq;
var class_extends_vvvvvwq = [];
class_extends_vvvvvwq.push(temp_vvvvvwq);
}
else if (!isSet(class_extends_vvvvvwq))
{
var class_extends_vvvvvwq = [];
}
var class_extends =
class_extends_vvvvvwq.some(class_extends_vvvvvwq_SomeFunc);
if (isSet(joomla_plugin_group_vvvvvwq) &&
joomla_plugin_group_vvvvvwq.constructor !== Array)
{
var temp_vvvvvwq = joomla_plugin_group_vvvvvwq;
var joomla_plugin_group_vvvvvwq = [];
joomla_plugin_group_vvvvvwq.push(temp_vvvvvwq);
}
else if (!isSet(joomla_plugin_group_vvvvvwq))
{
var joomla_plugin_group_vvvvvwq = [];
}
var joomla_plugin_group =
joomla_plugin_group_vvvvvwq.some(joomla_plugin_group_vvvvvwq_SomeFunc);
// set this function logic
if (class_extends && joomla_plugin_group)
{
jQuery('#jform_method_selection-lbl').closest('.control-group').show();
jQuery('#jform_property_selection-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_method_selection-lbl').closest('.control-group').hide();
jQuery('#jform_property_selection-lbl').closest('.control-group').hide();
}
}
// the vvvvvwq Some function
function class_extends_vvvvvwq_SomeFunc(class_extends_vvvvvwq)
{
// set the function logic
if (isSet(class_extends_vvvvvwq))
{
return true;
}
return false;
}
// the vvvvvwq Some function
function joomla_plugin_group_vvvvvwq_SomeFunc(joomla_plugin_group_vvvvvwq)
{
// set the function logic
if (isSet(joomla_plugin_group_vvvvvwq))
{
return true;
}
return false;
}
// the vvvvvwr function
function vvvvvwr(joomla_plugin_group_vvvvvwr,class_extends_vvvvvwr)
{
if (isSet(joomla_plugin_group_vvvvvwr) &&
joomla_plugin_group_vvvvvwr.constructor !== Array)
{
var temp_vvvvvwr = joomla_plugin_group_vvvvvwr;
var joomla_plugin_group_vvvvvwr = [];
joomla_plugin_group_vvvvvwr.push(temp_vvvvvwr);
}
else if (!isSet(joomla_plugin_group_vvvvvwr))
{
var joomla_plugin_group_vvvvvwr = [];
}
var joomla_plugin_group =
joomla_plugin_group_vvvvvwr.some(joomla_plugin_group_vvvvvwr_SomeFunc);
if (isSet(class_extends_vvvvvwr) &&
class_extends_vvvvvwr.constructor !== Array)
{
var temp_vvvvvwr = class_extends_vvvvvwr;
var class_extends_vvvvvwr = [];
class_extends_vvvvvwr.push(temp_vvvvvwr);
}
else if (!isSet(class_extends_vvvvvwr))
{
var class_extends_vvvvvwr = [];
}
var class_extends =
class_extends_vvvvvwr.some(class_extends_vvvvvwr_SomeFunc);
// set this function logic
if (joomla_plugin_group && class_extends)
{
jQuery('#jform_method_selection-lbl').closest('.control-group').show();
jQuery('#jform_property_selection-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_method_selection-lbl').closest('.control-group').hide();
jQuery('#jform_property_selection-lbl').closest('.control-group').hide();
}
}
// the vvvvvwr Some function
function joomla_plugin_group_vvvvvwr_SomeFunc(joomla_plugin_group_vvvvvwr)
{
// set the function logic
if (isSet(joomla_plugin_group_vvvvvwr))
{
return true;
}
return false;
}
// the vvvvvwr Some function
function class_extends_vvvvvwr_SomeFunc(class_extends_vvvvvwr)
{
// set the function logic
if (isSet(class_extends_vvvvvwr))
{
return true;
}
return false;
}
// the vvvvvws function
function vvvvvws(class_extends_vvvvvws)
{
if (isSet(class_extends_vvvvvws) &&
class_extends_vvvvvws.constructor !== Array)
{
var temp_vvvvvws = class_extends_vvvvvws;
var class_extends_vvvvvws = [];
class_extends_vvvvvws.push(temp_vvvvvws);
}
else if (!isSet(class_extends_vvvvvws))
{
var class_extends_vvvvvws = [];
}
var class_extends =
class_extends_vvvvvws.some(class_extends_vvvvvws_SomeFunc);
// set this function logic
if (class_extends)
{
jQuery('#jform_add_head').closest('.control-group').show();
}
else
{
jQuery('#jform_add_head').closest('.control-group').hide();
}
}
// the vvvvvws Some function
function class_extends_vvvvvws_SomeFunc(class_extends_vvvvvws)
{
// set the function logic
if (isSet(class_extends_vvvvvws))
{
return true;
}
return false;
}
// the vvvvvwu function
function vvvvvwu(update_server_target_vvvvvwu,add_update_server_vvvvvwu)
{
// set the function logic
if (update_server_target_vvvvvwu == 1 && add_update_server_vvvvvwu
== 1)
{
jQuery('#jform_update_server').closest('.control-group').show();
jQuery('.note_update_server_note_ftp').closest('.control-group').show();
}
else
{
jQuery('#jform_update_server').closest('.control-group').hide();
jQuery('.note_update_server_note_ftp').closest('.control-group').hide();
}
}
// the vvvvvwv function
function vvvvvwv(add_update_server_vvvvvwv,update_server_target_vvvvvwv)
{
// set the function logic
if (add_update_server_vvvvvwv == 1 && update_server_target_vvvvvwv
== 1)
{
jQuery('#jform_update_server').closest('.control-group').show();
jQuery('.note_update_server_note_ftp').closest('.control-group').show();
}
else
{
jQuery('#jform_update_server').closest('.control-group').hide();
jQuery('.note_update_server_note_ftp').closest('.control-group').hide();
}
}
// the vvvvvww function
function vvvvvww(update_server_target_vvvvvww,add_update_server_vvvvvww)
{
// set the function logic
if (update_server_target_vvvvvww == 2 && add_update_server_vvvvvww
== 1)
{
jQuery('.note_update_server_note_zip').closest('.control-group').show();
}
else
{
jQuery('.note_update_server_note_zip').closest('.control-group').hide();
}
}
// the vvvvvwy function
function vvvvvwy(update_server_target_vvvvvwy,add_update_server_vvvvvwy)
{
// set the function logic
if (update_server_target_vvvvvwy == 3 && add_update_server_vvvvvwy
== 1)
{
jQuery('.note_update_server_note_other').closest('.control-group').show();
}
else
{
jQuery('.note_update_server_note_other').closest('.control-group').hide();
}
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// get the linked details
getLinked();
// load the active array values
buildSelectionMemory('property');
buildSelectionMemory('method');
// load the active selection array values
getClassCodeIds('joomla_plugin_group',
'jform_class_extends', false);
getClassCodeIds('property',
'jform_joomla_plugin_group', false);
getClassCodeIds('method', 'jform_joomla_plugin_group',
false);
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
// trigger the row watcher
rowWatcher();
});
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
// set selection the options
selectionMemory = {'property':{},'method':{}};
selectionActiveArray = {'property':{},'method':{}};
selectedIdRemoved =
{'property':'not','method':'not'};
function buildSelectionMemory(type) {
var i;
for (i = 0; i < 70; i++) {
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// set memory
if (jQuery("#"+id_check).length) {
selectionMemory[type][id_check] = jQuery("#"+id_check+"
option:selected").val();
}
}
}
function getClassHeaderCode(){
// now get the values
var value = jQuery("#jform_class_extends
option:selected").val();
var add_value = jQuery("#jform_add_head
input[type='radio']:checked").val();
if (add_value == 1 && value > 0){
// we first check local memory
var _result = jQuery.jStorage.get('extends_header_'+value,
null);
if (_result) {
// now set the code
addCodeToEditor(_result, "jform_head", false, null);
} else {
// now get the code
getCodeFrom_server(value, 'extends', 'type',
'getClassHeaderCode').then(function(result) {
if(result){
// now set the code
addCodeToEditor(result, "jform_head", false, null);
// add result to local memory
jQuery.jStorage.set('extends_header_'+value, result, {TTL:
expire});
}
});
}
}
}
function getClassCodeIds(type, target_field, reset_all){
// now get the value
var value = jQuery('#'+target_field).val();
// now get the code
getCodeFrom_server(value, type, 'type',
'getClassCodeIds').then(function(result) {
if(result){
// reset the selection
selectionActiveArray[type] = {};
// update the active array
jQuery.each(result, function(i, prop) {
selectionActiveArray[type][prop] = selectionArray[type][prop];
});
// update the active field selection
updateActiveFieldSelection(type, reset_all);
}
});
}
function updateActiveFieldSelection(type, reset_all){
// update the selection options
if ('joomla_plugin_group' === type) {
// get value if not going to reset all
if (!reset_all){
// get the active values
var activeValue = jQuery("#jform_"+type+"
option:selected").val();
var activeText = jQuery("#jform_"+type+"
option:selected").text();
// clear the options out
jQuery("#jform_"+type).find('option').remove().end();
// add the active selection back (must be what is available)
jQuery("#jform_"+type).append('<option
value="'+activeValue+'">'+activeText+'</option>');
// now add the lists back
jQuery.each( selectionActiveArray[type], function(aValue, aText ) {
if (activeValue !== aValue) {
jQuery("#jform_"+type).append('<option
value="'+aValue+'">'+aText+'</option>');
}
});
jQuery("#jform_"+type).val(activeValue);
} else {
// clear the options out
jQuery("#jform_"+type).find('option').remove().end();
// now add the lists back
jQuery.each( selectionActiveArray[type], function(aValue, aText ) {
jQuery("#jform_"+type).append('<option
value="'+aValue+'">'+aText+'</option>');
});
jQuery("#jform_"+type).val('');
}
jQuery("#jform_"+type).trigger('liszt:updated');
// reset all when global update is made
if (reset_all) {
resetAll('method');
resetAll('property');
}
} else {
selectionDynamicUpdate(type);
// reset all when global update is made
if (reset_all) {
resetAll(type);
}
}
}
function resetAll(type) {
var i;
for (i = 0; i < 10; i++) {
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length) {
if (i == 0) {
jQuery('#'+id_check).val('');
jQuery('#'+id_check).trigger('liszt:updated');
} else {
// remove the row
jQuery('#'+id_check).closest('tr').remove();
}
}
}
Joomla.editors.instances['jform_main_class_code'].setValue('');
selectionMemory = {'property':{},'method':{}};
}
function getClassCode(field, type){
// get the ID
var id = jQuery(field).attr('id');
// now get the value
var value = jQuery('#' + id).val();
// check if we have a memory for this field, if true remove code of old
selection and clear memory
if (selectionMemory[type].hasOwnProperty(id) &&
selectionMemory[type][id] > 0) {
// the old id to remove
var old_value = selectionMemory[type][id];
// remove the code // we first check local memory
var _result =
jQuery.jStorage.get('code_4_'+type+'_'+old_value,
null);
if (_result) {
// now remove the code
if (removeCodeFromEditor(_result, 'jform_main_class_code')) {
selectionMemory[type][id] = 0;
}
} else {
// now get the code
getCodeFrom_server(old_value, type, 'type',
'getClassCode').then(function(result) {
if(result){
// now remove the code
if (removeCodeFromEditor(result, 'jform_main_class_code'))
{
selectionMemory[type][id] = 0;
}
// add result to local memory
jQuery.jStorage.set('code_4_'+type+'_'+old_value,
result, {TTL: expire});
}
});
}
}
if (propertyIsSet(value, id, type)) {
// reset the selection
jQuery('#'+id).val('');
jQuery('#'+id).trigger("liszt:updated");
// give out a notice
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_ALREADY_SELECTED_TRY_ANOTHER'),
timeout: 5000, status: 'warning', pos: 'top-center'});
} else {
// set the active removed value
selectedIdRemoved[type] = id;
// do a dynamic update (to remove what was already used)
selectionDynamicUpdate(type);
// set the add action
if (type === 'property') {
var _action_add = 'prepend';
} else {
var _action_add = 'append';
}
// we first check local memory
var _result =
jQuery.jStorage.get('code_4_'+type+'_'+value, null);
if (_result) {
// now set the code
if (addCodeToEditor(_result, "jform_main_class_code", true,
_action_add)) {
selectionMemory[type][id] = value;
}
} else {
// now get the code
getCodeFrom_server(value, type, 'type',
'getClassCode').then(function(result) {
if(result){
// now set the code
if (addCodeToEditor(result, "jform_main_class_code", true,
_action_add)) {
selectionMemory[type][id] = value;
}
// add result to local memory
jQuery.jStorage.set('code_4_'+type+'_'+value,
result, {TTL: expire});
}
});
}
}
}
function selectionDynamicUpdate(type) {
selectionAvailable = {};
selectionSelectedArray = {};
selectionTrackerArray = {};
var i;
for (i = 0; i < 70; i++) { // for now this is the number of field we
should check
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length &&
selectedIdRemoved[type] !== id_check) {
// build the selected array
var key = jQuery("#"+id_check+"
option:selected").val();
var text = jQuery("#"+id_check+"
option:selected").text();
selectionSelectedArray[key] = text;
// keep track of the value set
selectionTrackerArray[id_check] = key;
// clear the options out
jQuery("#"+id_check).find('option').remove().end();
}
}
// now build the list to keep
jQuery.each( selectionActiveArray[type], function( prop, name ) {
if (!selectionSelectedArray.hasOwnProperty(prop)) {
selectionAvailable[prop] = name;
}
});
// now add the lists back
jQuery.each( selectionTrackerArray, function( tId, tKey ) {
if (jQuery('#'+tId).length) {
jQuery('#'+tId).append('<option
value="'+tKey+'">'+selectionSelectedArray[tKey]+'</option>');
jQuery.each( selectionAvailable, function( aKey, aValue ) {
jQuery('#'+tId).append('<option
value="'+aKey+'">'+aValue+'</option>');
});
jQuery('#'+tId).val(tKey);
jQuery('#'+tId).trigger('liszt:updated');
}
});
}
function rowWatcher() {
jQuery(document).on('subform-row-remove', function(event, row){
// we first chck if this is a method call
var valid_call =
jQuery(row.innerHTML).find('.method_selection_list').attr('id');
var type_call = 'method';
if (!isSet(valid_call)){
// now lets see if this is a property call
var valid_call =
jQuery(row.innerHTML).find('.property_selection_list').attr('id');
var type_call = 'property';
}
// so lets update selection if call valid
if (isSet(valid_call)){
selectedIdRemoved[type_call] = valid_call;
selectionDynamicUpdate(type_call);
// also remove from code
var valid_value = jQuery(row.innerHTML).find('#' + valid_call
+ ' option:selected').val();
if (valid_value === '') {
valid_value = selectionMemory[type_call][valid_call];
}
// remove the code // we first check local memory
var _result =
jQuery.jStorage.get('code_4_'+type_call+'_'+valid_value,
null);
if (_result) {
// now remove the code
if (removeCodeFromEditor(_result, 'jform_main_class_code'))
{
selectionMemory[type_call][valid_call] = 0;
}
} else {
// now get the code
getCodeFrom_server(valid_value, type_call, 'type',
'getClassCode').then(function(result) {
if(result){
if (removeCodeFromEditor(result, 'jform_main_class_code'))
{
selectionMemory[type_call][valid_call] = 0;;
}
// add result to local memory
jQuery.jStorage.set('code_4_'+type_call+'_'+valid_value,
result, {TTL: expire});
}
});
}
}
});
jQuery(document).on('subform-row-add', function(event, row){
// we first chck if this is a method call
var valid_call =
jQuery(row.innerHTML).find('.method_selection_list').attr('id');
var type_call = 'method';
if (!isSet(valid_call)){
// now lets see if this is a property call
var valid_call =
jQuery(row.innerHTML).find('.property_selection_list').attr('id');
var type_call = 'property';
}
// so lets update selection if call valid
if (isSet(valid_call)){
selectedIdRemoved[type_call] = 'not';
selectionDynamicUpdate(type_call);
}
});
}
function propertyIsSet(prop, id, type) {
var i;
for (i = 0; i < 70; i++) { // for now this is the number of field we
should check
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length && id_check != id) {
// get the property value
var tmp = jQuery("#"+id_check+"
option:selected").val();
// now validate
if (tmp === prop) {
return true;
}
}
}
return false;
}
function addCodeToEditor(code_string, editor_id, merge, merge_target){
if (Joomla.editors.instances.hasOwnProperty(editor_id)) {
var old_code_string = Joomla.editors.instances[editor_id].getValue();
if (merge && old_code_string.length > 0) {
// make sure not to load the same string twice
if (old_code_string.indexOf(code_string) == -1) {
if ('prepend' === merge_target) {
var _string = code_string + "\n\n" + old_code_string;
} else if (merge_target && 'append' !== merge_target)
{
var old_code_array = old_code_string.split(merge_target);
if (old_code_array.length > 1) {
var _string = old_code_array.shift() + "\n\n" + code_string
+ "\n\n" + merge_target + old_code_array.join(merge_target);
} else {
var _string = code_string + "\n\n" + merge_target +
old_code_array.join('');
}
} else {
var _string = old_code_string + "\n\n" + code_string;
}
Joomla.editors.instances[editor_id].setValue(_string.trim());
return true;
}
} else {
Joomla.editors.instances[editor_id].setValue(code_string.trim());
return true;
}
} else {
var old_code_string = jQuery('textarea#'+editor_id).val();
if (merge && old_code_string.length > 0) {
// make sure not to load the same string twice
if (old_code_string.indexOf(code_string) == -1) {
if ('prepend' === merge_target) {
var _string = code_string + "\n\n" + old_code_string;
} else if (merge_target && 'append' !== merge_target)
{
var old_code_array = old_code_string.split(merge_target);
if (old_code_array.length > 1) {
var _string = old_code_array.shift() + "\n\n" + code_string
+ "\n\n" + merge_target + old_code_array.join(merge_target);
} else {
var _string = code_string + "\n\n" + merge_target +
old_code_array.join('');
}
} else {
var _string = old_code_string + "\n\n" + code_string;
}
jQuery('textarea#'+editor_id).val(_string.trim());
return true;
}
} else {
jQuery('textarea#'+editor_id).val(code_string.trim());
return true;
}
}
return false;
}
function removeCodeFromEditor(code_string, editor_id){
if (Joomla.editors.instances.hasOwnProperty(editor_id)) {
var old_code_string = Joomla.editors.instances[editor_id].getValue();
if (old_code_string.length > 0) {
// make sure string is found
if (old_code_string.indexOf(code_string) !== -1) {
// remove the code
Joomla.editors.instances[editor_id].setValue(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,''));
return true;
}
}
} else {
var old_code_string = jQuery('textarea#'+editor_id).val();
if (old_code_string.length > 0) {
// make sure string is found
if (old_code_string.indexOf(code_string) !== -1) {
// remove the code
jQuery('textarea#'+editor_id).val(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,''));
return true;
}
}
}
return false;
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
joomla_plugin_files_folders_urls.js000064400000000606151167367500013723
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
joomla_plugin_group.js000064400000000606151167367500011172 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
joomla_plugin_updates.js000064400000000606151167367500011503 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jquery.json.min.js000064400000003545151167367500010175 0ustar00/*! jQuery
JSON plugin v2.5.1 */
!function($){"use strict";var
escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},hasOwn=Object.prototype.hasOwnProperty;$.toJSON="object"==typeof
JSON&&JSON.stringify?JSON.stringify:function(a){if(null===a)return"null";var
b,c,d,e,f=$.type(a);if("undefined"===f)return void
0;if("number"===f||"boolean"===f)return
String(a);if("string"===f)return
$.quoteString(a);if("function"==typeof a.toJSON)return
$.toJSON(a.toJSON());if("date"===f){var
g=a.getUTCMonth()+1,h=a.getUTCDate(),i=a.getUTCFullYear(),j=a.getUTCHours(),k=a.getUTCMinutes(),l=a.getUTCSeconds(),m=a.getUTCMilliseconds();return
10>g&&(g="0"+g),10>h&&(h="0"+h),10>j&&(j="0"+j),10>k&&(k="0"+k),10>l&&(l="0"+l),100>m&&(m="0"+m),10>m&&(m="0"+m),'"'+i+"-"+g+"-"+h+"T"+j+":"+k+":"+l+"."+m+'Z"'}if(b=[],$.isArray(a)){for(c=0;c<a.length;c++)b.push($.toJSON(a[c])||"null");return"["+b.join(",")+"]"}if("object"==typeof
a){for(c in a)if(hasOwn.call(a,c)){if(f=typeof
c,"number"===f)d='"'+c+'"';else{if("string"!==f)continue;d=$.quoteString(c)}f=typeof
a[c],"function"!==f&&"undefined"!==f&&(e=$.toJSON(a[c]),b.push(d+":"+e))}return"{"+b.join(",")+"}"}},$.evalJSON="object"==typeof
JSON&&JSON.parse?JSON.parse:function(str){return
eval("("+str+")")},$.secureEvalJSON="object"==typeof
JSON&&JSON.parse?JSON.parse:function(str){var
filtered=str.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"");if(/^[\],:{}\s]*$/.test(filtered))return
eval("("+str+")");throw new SyntaxError("Error
parsing JSON, source is not valid.")},$.quoteString=function(a){return
a.match(escape)?'"'+a.replace(escape,function(a){var
b=meta[a];return"string"==typeof
b?b:(b=a.charCodeAt(),"\\u00"+Math.floor(b/16).toString(16)+(b%16).toString(16))})+'"':'"'+a+'"'}}(jQuery);jstorage.min.js000064400000017246151167367500007527
0ustar00(function(){function C(){var
a="{}";if("userDataBehavior"==f){g.load("jStorage");try{a=g.getAttribute("jStorage")}catch(b){}try{r=g.getAttribute("jStorage_update")}catch(c){}h.jStorage=a}D();x();E()}function
u(){var
a;clearTimeout(F);F=setTimeout(function(){if("localStorage"==f||"globalStorage"==f)a=h.jStorage_update;else
if("userDataBehavior"==f){g.load("jStorage");try{a=g.getAttribute("jStorage_update")}catch(b){}}if(a&&a!=r){r=a;var
l=p.parse(p.stringify(c.__jstorage_meta.CRC32)),k;C();k=p.parse(p.stringify(c.__jstorage_meta.CRC32));
var d,n=[],e=[];for(d in
l)l.hasOwnProperty(d)&&(k[d]?l[d]!=k[d]&&"2."==String(l[d]).substr(0,2)&&n.push(d):e.push(d));for(d
in
k)k.hasOwnProperty(d)&&(l[d]||n.push(d));s(n,"updated");s(e,"deleted")}},25)}function
s(a,b){a=[].concat(a||[]);var c,k,d,n;if("flushed"==b){a=[];for(c
in
m)m.hasOwnProperty(c)&&a.push(c);b="deleted"}c=0;for(d=a.length;c<d;c++){if(m[a[c]])for(k=0,n=m[a[c]].length;k<n;k++)m[a[c]][k](a[c],b);if(m["*"])for(k=0,n=m["*"].length;k<n;k++)m["*"][k](a[c],b)}}function
v(){var a=(+new Date).toString();
if("localStorage"==f||"globalStorage"==f)try{h.jStorage_update=a}catch(b){f=!1}else"userDataBehavior"==f&&(g.setAttribute("jStorage_update",a),g.save("jStorage"));u()}function
D(){if(h.jStorage)try{c=p.parse(String(h.jStorage))}catch(a){h.jStorage="{}"}else
h.jStorage="{}";z=h.jStorage?String(h.jStorage).length:0;c.__jstorage_meta||(c.__jstorage_meta={});c.__jstorage_meta.CRC32||(c.__jstorage_meta.CRC32={})}function
w(){if(c.__jstorage_meta.PubSub){for(var a=+new
Date-2E3,b=0,l=c.__jstorage_meta.PubSub.length;b<
l;b++)if(c.__jstorage_meta.PubSub[b][0]<=a){c.__jstorage_meta.PubSub.splice(b,c.__jstorage_meta.PubSub.length-b);break}c.__jstorage_meta.PubSub.length||delete
c.__jstorage_meta.PubSub}try{h.jStorage=p.stringify(c),g&&(g.setAttribute("jStorage",h.jStorage),g.save("jStorage")),z=h.jStorage?String(h.jStorage).length:0}catch(k){}}function
q(a){if("string"!=typeof a&&"number"!=typeof
a)throw new TypeError("Key name must be string or
numeric");if("__jstorage_meta"==a)throw new
TypeError("Reserved key name");
return!0}function x(){var
a,b,l,k,d=Infinity,n=!1,e=[];clearTimeout(G);if(c.__jstorage_meta&&"object"==typeof
c.__jstorage_meta.TTL){a=+new
Date;l=c.__jstorage_meta.TTL;k=c.__jstorage_meta.CRC32;for(b in
l)l.hasOwnProperty(b)&&(l[b]<=a?(delete l[b],delete k[b],delete
c[b],n=!0,e.push(b)):l[b]<d&&(d=l[b]));Infinity!=d&&(G=setTimeout(x,Math.min(d-a,2147483647)));n&&(w(),v(),s(e,"deleted"))}}function
E(){var a;if(c.__jstorage_meta.PubSub){var
b,l=A,k=[];for(a=c.__jstorage_meta.PubSub.length-1;0<=a;a--)b=
c.__jstorage_meta.PubSub[a],b[0]>A&&(l=b[0],k.unshift(b));for(a=k.length-1;0<=a;a--){b=k[a][1];var
d=k[a][2];if(t[b])for(var
n=0,e=t[b].length;n<e;n++)try{t[b][n](b,p.parse(p.stringify(d)))}catch(g){}}A=l}}var
y=window.jQuery||window.$||(window.$={}),p={parse:window.JSON&&(window.JSON.parse||window.JSON.decode)||String.prototype.evalJSON&&function(a){return
String(a).evalJSON()}||y.parseJSON||y.evalJSON,stringify:Object.toJSON||window.JSON&&(window.JSON.stringify||window.JSON.encode)||y.toJSON};if("function"!==
typeof p.parse||"function"!==typeof p.stringify)throw
Error("No JSON support found, include
//cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page");var
c={__jstorage_meta:{CRC32:{}}},h={jStorage:"{}"},g=null,z=0,f=!1,m={},F=!1,r=0,t={},A=+new
Date,G,B={isXML:function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?"HTML"!==a.nodeName:!1},encode:function(a){if(!this.isXML(a))return!1;try{return(new
XMLSerializer).serializeToString(a)}catch(b){try{return
a.xml}catch(c){}}return!1},
decode:function(a){var b="DOMParser"in window&&(new
DOMParser).parseFromString||window.ActiveXObject&&function(a){var
b=new
ActiveXObject("Microsoft.XMLDOM");b.async="false";b.loadXML(a);return
b};if(!b)return!1;a=b.call("DOMParser"in window&&new
DOMParser||window,a,"text/xml");return
this.isXML(a)?a:!1}};y.jStorage={version:"0.4.12",set:function(a,b,l){q(a);l=l||{};if("undefined"==typeof
b)return
this.deleteKey(a),b;if(B.isXML(b))b={_is_xml:!0,xml:B.encode(b)};else{if("function"==typeof
b)return;
b&&"object"==typeof
b&&(b=p.parse(p.stringify(b)))}c[a]=b;for(var
k=c.__jstorage_meta.CRC32,d=p.stringify(b),g=d.length,e=2538058380^g,h=0,f;4<=g;)f=d.charCodeAt(h)&255|(d.charCodeAt(++h)&255)<<8|(d.charCodeAt(++h)&255)<<16|(d.charCodeAt(++h)&255)<<24,f=1540483477*(f&65535)+((1540483477*(f>>>16)&65535)<<16),f^=f>>>24,f=1540483477*(f&65535)+((1540483477*(f>>>16)&65535)<<16),e=1540483477*(e&65535)+((1540483477*(e>>>16)&65535)<<16)^f,g-=4,++h;switch(g){case
3:e^=(d.charCodeAt(h+2)&255)<<16;case 2:e^=
(d.charCodeAt(h+1)&255)<<8;case
1:e^=d.charCodeAt(h)&255,e=1540483477*(e&65535)+((1540483477*(e>>>16)&65535)<<16)}e^=e>>>13;e=1540483477*(e&65535)+((1540483477*(e>>>16)&65535)<<16);k[a]="2."+((e^e>>>15)>>>0);this.setTTL(a,l.TTL||0);s(a,"updated");return
b},get:function(a,b){q(a);return a in
c?c[a]&&"object"==typeof
c[a]&&c[a]._is_xml?B.decode(c[a].xml):c[a]:"undefined"==typeof
b?null:b},deleteKey:function(a){q(a);return a in c?(delete
c[a],"object"==typeof c.__jstorage_meta.TTL&&a in
c.__jstorage_meta.TTL&&
delete c.__jstorage_meta.TTL[a],delete
c.__jstorage_meta.CRC32[a],w(),v(),s(a,"deleted"),!0):!1},setTTL:function(a,b){var
l=+new Date;q(a);b=Number(b)||0;return a in
c?(c.__jstorage_meta.TTL||(c.__jstorage_meta.TTL={}),0<b?c.__jstorage_meta.TTL[a]=l+b:delete
c.__jstorage_meta.TTL[a],w(),x(),v(),!0):!1},getTTL:function(a){var b=+new
Date;q(a);return a in
c&&c.__jstorage_meta.TTL&&c.__jstorage_meta.TTL[a]?(a=c.__jstorage_meta.TTL[a]-b)||0:0},flush:function(){c={__jstorage_meta:{CRC32:{}}};w();v();s(null,
"flushed");return!0},storageObj:function(){function
a(){}a.prototype=c;return new a},index:function(){var a=[],b;for(b in
c)c.hasOwnProperty(b)&&"__jstorage_meta"!=b&&a.push(b);return
a},storageSize:function(){return z},currentBackend:function(){return
f},storageAvailable:function(){return!!f},listenKeyChange:function(a,b){q(a);m[a]||(m[a]=[]);m[a].push(b)},stopListening:function(a,b){q(a);if(m[a])if(b)for(var
c=m[a].length-1;0<=c;c--)m[a][c]==b&&m[a].splice(c,1);else
delete m[a]},subscribe:function(a,
b){a=(a||"").toString();if(!a)throw new TypeError("Channel
not
defined");t[a]||(t[a]=[]);t[a].push(b)},publish:function(a,b){a=(a||"").toString();if(!a)throw
new TypeError("Channel not
defined");c.__jstorage_meta||(c.__jstorage_meta={});c.__jstorage_meta.PubSub||(c.__jstorage_meta.PubSub=[]);c.__jstorage_meta.PubSub.unshift([+new
Date,a,b]);w();v()},reInit:function(){C()},noConflict:function(a){delete
window.$.jStorage;a&&(window.jStorage=this);return
this}};(function(){var a=!1;if("localStorage"in
window)try{window.localStorage.setItem("_tmptest","tmpval"),a=!0,window.localStorage.removeItem("_tmptest")}catch(b){}if(a)try{window.localStorage&&(h=window.localStorage,f="localStorage",r=h.jStorage_update)}catch(c){}else
if("globalStorage"in
window)try{window.globalStorage&&(h="localhost"==window.location.hostname?window.globalStorage["localhost.localdomain"]:window.globalStorage[window.location.hostname],f="globalStorage",r=h.jStorage_update)}catch(k){}else
if(g=document.createElement("link"),
g.addBehavior){g.style.behavior="url(#default#userData)";document.getElementsByTagName("head")[0].appendChild(g);try{g.load("jStorage")}catch(d){g.setAttribute("jStorage","{}"),g.save("jStorage"),g.load("jStorage")}a="{}";try{a=g.getAttribute("jStorage")}catch(m){}try{r=g.getAttribute("jStorage_update")}catch(e){}h.jStorage=a;f="userDataBehavior"}else{g=null;return}D();x();"localStorage"==f||"globalStorage"==f?"addEventListener"in
window?window.addEventListener("storage",u,!1):document.attachEvent("onstorage",
u):"userDataBehavior"==f&&setInterval(u,1E3);E();"addEventListener"in
window&&window.addEventListener("pageshow",function(a){a.persisted&&u()},!1)})()})();language.js000064400000000606151167367500006702
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
language_translation.js000064400000002503151167367500011316 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jQuery(document).ready(function($)
{
// set button to add more languages
addButton('language','entranslation');
});
function addData(result,where){
jQuery(result).insertAfter(jQuery(where).closest('.control-group'));
}
function addButton_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButton&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButton(type, where, size){
// just to insure that default behaviour still works
size = typeof size !== 'undefined' ? size : 1;
addButton_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
})
}
layout.js000064400000017615151167367500006444 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_php_view_vvvvvzf = jQuery("#jform_add_php_view
input[type='radio']:checked").val();
vvvvvzf(add_php_view_vvvvvzf);
});
// the vvvvvzf function
function vvvvvzf(add_php_view_vvvvvzf)
{
// set the function logic
if (add_php_view_vvvvvzf == 1)
{
jQuery('#jform_php_view-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_view-lbl').closest('.control-group').hide();
}
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function($)
{
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function getSnippetDetails(id){
getCodeFrom_server(id, '_type', '_type',
'snippetDetails').then(function(result) {
if(result.snippet){
var description = '';
if (result.description.length > 0) {
description =
'<p>'+result.description+'</p>';
}
var library = '';
if (result.library.length > 0) {
library = '
<b>('+result.library+')</b>';
}
var code = '<div
id="snippet-code"><b>'+result.name+'
('+result.type+')</b> <a
href="'+result.url+'" target="_blank" >see
more details'+library+'</a><br
/><em>'+result.heading+'</em><br
/><textarea id="snippet" class="span12"
rows="11">'+result.snippet+'</textarea></div>';
jQuery('#snippet-code').remove();
jQuery('.snippet-code').append(code);
// make sure the code block is active
jQuery("#snippet").focus(function() {
var jQuerythis = jQuery(this);
jQuerythis.select();
// Work around Chrome's little problem
jQuerythis.mouseup(function() {
// Prevent further mouseup intervention
jQuerythis.unbind("mouseup");
return false;
});
});
}
if(result.usage){
var usage = '<div
id="snippet-usage"><p>'+result.usage+'</p></div>';
jQuery('#snippet-usage').remove();
jQuery('.snippet-usage').append(usage);
}
})
}
function getDynamicValues_server(dynamicId){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getDynamicValues&format=json");
if(token.length > 0 && dynamicId > 0){
var request = token+'=1&view=layout&id='+dynamicId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getDynamicValues(id){
getDynamicValues_server(id).done(function(result) {
if(result){
jQuery('#dynamic_values').remove();
jQuery('.dynamic_values').append('<div
id="dynamic_values">'+result+'</div>');
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getLayoutDetails_server(id){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod);
if(token.length > 0 && id > 0){
var request = token+'=1&id='+id;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getLayoutDetails(id){
getLayoutDetails_server(id).done(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
// set snippets that are on the page
var snippetIds = [];
var snippets = {};
var snippet = 0;
jQuery(document).ready(function($)
{
jQuery("#jform_snippet option").each(function()
{
var key = jQuery(this).val();
var text = jQuery(this).text();
snippets[key] = text;
snippetIds.push(key);
});
snippet = jQuery("#jform_snippet").val();
getSnippets();
});
function getSnippets(){
jQuery("#loading").show();
// clear the selection
jQuery('#jform_snippet').find('option').remove().end();
jQuery('#jform_snippet').trigger('liszt:updated');
// get libraries value if set
var libraries = jQuery("#jform_libraries").val();
if (libraries) {
getCodeFrom_server(1, JSON.stringify(libraries), 'libraries',
'getSnippets').then(function(result) {
setSnippets(result);
jQuery("#loading").hide();
if (typeof snippetButton !== 'undefined') {
// ensure button is correct
var snippet = jQuery('#jform_snippet').val();
snippetButton(snippet);
}
});
}
else
{
// load all snippets in none is selected
setSnippets(snippetIds);
jQuery("#loading").hide();
}
}
function setSnippets(array){
if (array) {
jQuery('#jform_snippet').append('<option
value="">'+select_a_snippet+'</option>');
jQuery.each( array, function( i, id ) {
if (id in snippets) {
jQuery('#jform_snippet').append('<option
value="'+id+'">'+snippets[id]+'</option>');
}
if (id == snippet) {
jQuery('#jform_snippet').val(id);
}
});
} else {
jQuery('#jform_snippet').append('<option
value="">'+create_a_snippet+'</option>');
}
jQuery('#jform_snippet').trigger('liszt:updated');
}
library.js000064400000062272151167367500006572 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwapvxb_required = false;
jform_vvvvwbdvxc_required = false;
jform_vvvvwbdvxd_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var how_vvvvwan = jQuery("#jform_how").val();
var target_vvvvwan = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwan(how_vvvvwan,target_vvvvwan);
var how_vvvvwap = jQuery("#jform_how").val();
var target_vvvvwap = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwap(how_vvvvwap,target_vvvvwap);
var how_vvvvwar = jQuery("#jform_how").val();
var target_vvvvwar = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwar(how_vvvvwar,target_vvvvwar);
var how_vvvvwat = jQuery("#jform_how").val();
var target_vvvvwat = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwat(how_vvvvwat,target_vvvvwat);
var how_vvvvwav = jQuery("#jform_how").val();
var target_vvvvwav = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwav(how_vvvvwav,target_vvvvwav);
var target_vvvvwaw = jQuery("#jform_target
input[type='radio']:checked").val();
var how_vvvvwaw = jQuery("#jform_how").val();
vvvvwaw(target_vvvvwaw,how_vvvvwaw);
var how_vvvvwax = jQuery("#jform_how").val();
var target_vvvvwax = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwax(how_vvvvwax,target_vvvvwax);
var target_vvvvway = jQuery("#jform_target
input[type='radio']:checked").val();
var how_vvvvway = jQuery("#jform_how").val();
vvvvway(target_vvvvway,how_vvvvway);
var how_vvvvwaz = jQuery("#jform_how").val();
var target_vvvvwaz = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwaz(how_vvvvwaz,target_vvvvwaz);
var target_vvvvwba = jQuery("#jform_target
input[type='radio']:checked").val();
var how_vvvvwba = jQuery("#jform_how").val();
vvvvwba(target_vvvvwba,how_vvvvwba);
var target_vvvvwbb = jQuery("#jform_target
input[type='radio']:checked").val();
var type_vvvvwbb = jQuery("#jform_type
input[type='radio']:checked").val();
vvvvwbb(target_vvvvwbb,type_vvvvwbb);
var target_vvvvwbd = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwbd(target_vvvvwbd);
var target_vvvvwbe = jQuery("#jform_target
input[type='radio']:checked").val();
vvvvwbe(target_vvvvwbe);
});
// the vvvvwan function
function vvvvwan(how_vvvvwan,target_vvvvwan)
{
if (isSet(how_vvvvwan) && how_vvvvwan.constructor !== Array)
{
var temp_vvvvwan = how_vvvvwan;
var how_vvvvwan = [];
how_vvvvwan.push(temp_vvvvwan);
}
else if (!isSet(how_vvvvwan))
{
var how_vvvvwan = [];
}
var how = how_vvvvwan.some(how_vvvvwan_SomeFunc);
if (isSet(target_vvvvwan) && target_vvvvwan.constructor !== Array)
{
var temp_vvvvwan = target_vvvvwan;
var target_vvvvwan = [];
target_vvvvwan.push(temp_vvvvwan);
}
else if (!isSet(target_vvvvwan))
{
var target_vvvvwan = [];
}
var target = target_vvvvwan.some(target_vvvvwan_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('#jform_addconditions-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_addconditions-lbl').closest('.control-group').hide();
}
}
// the vvvvwan Some function
function how_vvvvwan_SomeFunc(how_vvvvwan)
{
// set the function logic
if (how_vvvvwan == 2)
{
return true;
}
return false;
}
// the vvvvwan Some function
function target_vvvvwan_SomeFunc(target_vvvvwan)
{
// set the function logic
if (target_vvvvwan == 1)
{
return true;
}
return false;
}
// the vvvvwap function
function vvvvwap(how_vvvvwap,target_vvvvwap)
{
if (isSet(how_vvvvwap) && how_vvvvwap.constructor !== Array)
{
var temp_vvvvwap = how_vvvvwap;
var how_vvvvwap = [];
how_vvvvwap.push(temp_vvvvwap);
}
else if (!isSet(how_vvvvwap))
{
var how_vvvvwap = [];
}
var how = how_vvvvwap.some(how_vvvvwap_SomeFunc);
if (isSet(target_vvvvwap) && target_vvvvwap.constructor !== Array)
{
var temp_vvvvwap = target_vvvvwap;
var target_vvvvwap = [];
target_vvvvwap.push(temp_vvvvwap);
}
else if (!isSet(target_vvvvwap))
{
var target_vvvvwap = [];
}
var target = target_vvvvwap.some(target_vvvvwap_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('#jform_php_setdocument').closest('.control-group').show();
// add required attribute to php_setdocument field
if (jform_vvvvwapvxb_required)
{
updateFieldRequired('php_setdocument',0);
jQuery('#jform_php_setdocument').prop('required','required');
jQuery('#jform_php_setdocument').attr('aria-required',true);
jQuery('#jform_php_setdocument').addClass('required');
jform_vvvvwapvxb_required = false;
}
}
else
{
jQuery('#jform_php_setdocument').closest('.control-group').hide();
// remove required attribute from php_setdocument field
if (!jform_vvvvwapvxb_required)
{
updateFieldRequired('php_setdocument',1);
jQuery('#jform_php_setdocument').removeAttr('required');
jQuery('#jform_php_setdocument').removeAttr('aria-required');
jQuery('#jform_php_setdocument').removeClass('required');
jform_vvvvwapvxb_required = true;
}
}
}
// the vvvvwap Some function
function how_vvvvwap_SomeFunc(how_vvvvwap)
{
// set the function logic
if (how_vvvvwap == 3)
{
return true;
}
return false;
}
// the vvvvwap Some function
function target_vvvvwap_SomeFunc(target_vvvvwap)
{
// set the function logic
if (target_vvvvwap == 1)
{
return true;
}
return false;
}
// the vvvvwar function
function vvvvwar(how_vvvvwar,target_vvvvwar)
{
if (isSet(how_vvvvwar) && how_vvvvwar.constructor !== Array)
{
var temp_vvvvwar = how_vvvvwar;
var how_vvvvwar = [];
how_vvvvwar.push(temp_vvvvwar);
}
else if (!isSet(how_vvvvwar))
{
var how_vvvvwar = [];
}
var how = how_vvvvwar.some(how_vvvvwar_SomeFunc);
if (isSet(target_vvvvwar) && target_vvvvwar.constructor !== Array)
{
var temp_vvvvwar = target_vvvvwar;
var target_vvvvwar = [];
target_vvvvwar.push(temp_vvvvwar);
}
else if (!isSet(target_vvvvwar))
{
var target_vvvvwar = [];
}
var target = target_vvvvwar.some(target_vvvvwar_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('.note_display_library_config').closest('.control-group').show();
}
else
{
jQuery('.note_display_library_config').closest('.control-group').hide();
}
}
// the vvvvwar Some function
function how_vvvvwar_SomeFunc(how_vvvvwar)
{
// set the function logic
if (how_vvvvwar == 2 || how_vvvvwar == 3)
{
return true;
}
return false;
}
// the vvvvwar Some function
function target_vvvvwar_SomeFunc(target_vvvvwar)
{
// set the function logic
if (target_vvvvwar == 1)
{
return true;
}
return false;
}
// the vvvvwat function
function vvvvwat(how_vvvvwat,target_vvvvwat)
{
if (isSet(how_vvvvwat) && how_vvvvwat.constructor !== Array)
{
var temp_vvvvwat = how_vvvvwat;
var how_vvvvwat = [];
how_vvvvwat.push(temp_vvvvwat);
}
else if (!isSet(how_vvvvwat))
{
var how_vvvvwat = [];
}
var how = how_vvvvwat.some(how_vvvvwat_SomeFunc);
if (isSet(target_vvvvwat) && target_vvvvwat.constructor !== Array)
{
var temp_vvvvwat = target_vvvvwat;
var target_vvvvwat = [];
target_vvvvwat.push(temp_vvvvwat);
}
else if (!isSet(target_vvvvwat))
{
var target_vvvvwat = [];
}
var target = target_vvvvwat.some(target_vvvvwat_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('.note_display_library_files_folders_urls').closest('.control-group').show();
}
else
{
jQuery('.note_display_library_files_folders_urls').closest('.control-group').hide();
}
}
// the vvvvwat Some function
function how_vvvvwat_SomeFunc(how_vvvvwat)
{
// set the function logic
if (how_vvvvwat == 1 || how_vvvvwat == 2 || how_vvvvwat == 3)
{
return true;
}
return false;
}
// the vvvvwat Some function
function target_vvvvwat_SomeFunc(target_vvvvwat)
{
// set the function logic
if (target_vvvvwat == 1)
{
return true;
}
return false;
}
// the vvvvwav function
function vvvvwav(how_vvvvwav,target_vvvvwav)
{
if (isSet(how_vvvvwav) && how_vvvvwav.constructor !== Array)
{
var temp_vvvvwav = how_vvvvwav;
var how_vvvvwav = [];
how_vvvvwav.push(temp_vvvvwav);
}
else if (!isSet(how_vvvvwav))
{
var how_vvvvwav = [];
}
var how = how_vvvvwav.some(how_vvvvwav_SomeFunc);
if (isSet(target_vvvvwav) && target_vvvvwav.constructor !== Array)
{
var temp_vvvvwav = target_vvvvwav;
var target_vvvvwav = [];
target_vvvvwav.push(temp_vvvvwav);
}
else if (!isSet(target_vvvvwav))
{
var target_vvvvwav = [];
}
var target = target_vvvvwav.some(target_vvvvwav_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('.note_no_behaviour_one').closest('.control-group').show();
jQuery('.note_no_behaviour_three').closest('.control-group').show();
jQuery('.note_no_behaviour_two').closest('.control-group').show();
}
else
{
jQuery('.note_no_behaviour_one').closest('.control-group').hide();
jQuery('.note_no_behaviour_three').closest('.control-group').hide();
jQuery('.note_no_behaviour_two').closest('.control-group').hide();
}
}
// the vvvvwav Some function
function how_vvvvwav_SomeFunc(how_vvvvwav)
{
// set the function logic
if (how_vvvvwav == 0)
{
return true;
}
return false;
}
// the vvvvwav Some function
function target_vvvvwav_SomeFunc(target_vvvvwav)
{
// set the function logic
if (target_vvvvwav == 1)
{
return true;
}
return false;
}
// the vvvvwaw function
function vvvvwaw(target_vvvvwaw,how_vvvvwaw)
{
if (isSet(target_vvvvwaw) && target_vvvvwaw.constructor !== Array)
{
var temp_vvvvwaw = target_vvvvwaw;
var target_vvvvwaw = [];
target_vvvvwaw.push(temp_vvvvwaw);
}
else if (!isSet(target_vvvvwaw))
{
var target_vvvvwaw = [];
}
var target = target_vvvvwaw.some(target_vvvvwaw_SomeFunc);
if (isSet(how_vvvvwaw) && how_vvvvwaw.constructor !== Array)
{
var temp_vvvvwaw = how_vvvvwaw;
var how_vvvvwaw = [];
how_vvvvwaw.push(temp_vvvvwaw);
}
else if (!isSet(how_vvvvwaw))
{
var how_vvvvwaw = [];
}
var how = how_vvvvwaw.some(how_vvvvwaw_SomeFunc);
// set this function logic
if (target && how)
{
jQuery('.note_no_behaviour_one').closest('.control-group').show();
jQuery('.note_no_behaviour_three').closest('.control-group').show();
jQuery('.note_no_behaviour_two').closest('.control-group').show();
}
else
{
jQuery('.note_no_behaviour_one').closest('.control-group').hide();
jQuery('.note_no_behaviour_three').closest('.control-group').hide();
jQuery('.note_no_behaviour_two').closest('.control-group').hide();
}
}
// the vvvvwaw Some function
function target_vvvvwaw_SomeFunc(target_vvvvwaw)
{
// set the function logic
if (target_vvvvwaw == 1)
{
return true;
}
return false;
}
// the vvvvwaw Some function
function how_vvvvwaw_SomeFunc(how_vvvvwaw)
{
// set the function logic
if (how_vvvvwaw == 0)
{
return true;
}
return false;
}
// the vvvvwax function
function vvvvwax(how_vvvvwax,target_vvvvwax)
{
if (isSet(how_vvvvwax) && how_vvvvwax.constructor !== Array)
{
var temp_vvvvwax = how_vvvvwax;
var how_vvvvwax = [];
how_vvvvwax.push(temp_vvvvwax);
}
else if (!isSet(how_vvvvwax))
{
var how_vvvvwax = [];
}
var how = how_vvvvwax.some(how_vvvvwax_SomeFunc);
if (isSet(target_vvvvwax) && target_vvvvwax.constructor !== Array)
{
var temp_vvvvwax = target_vvvvwax;
var target_vvvvwax = [];
target_vvvvwax.push(temp_vvvvwax);
}
else if (!isSet(target_vvvvwax))
{
var target_vvvvwax = [];
}
var target = target_vvvvwax.some(target_vvvvwax_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('.note_yes_behaviour_one').closest('.control-group').show();
jQuery('.note_yes_behaviour_two').closest('.control-group').show();
}
else
{
jQuery('.note_yes_behaviour_one').closest('.control-group').hide();
jQuery('.note_yes_behaviour_two').closest('.control-group').hide();
}
}
// the vvvvwax Some function
function how_vvvvwax_SomeFunc(how_vvvvwax)
{
// set the function logic
if (how_vvvvwax == 1)
{
return true;
}
return false;
}
// the vvvvwax Some function
function target_vvvvwax_SomeFunc(target_vvvvwax)
{
// set the function logic
if (target_vvvvwax == 1)
{
return true;
}
return false;
}
// the vvvvway function
function vvvvway(target_vvvvway,how_vvvvway)
{
if (isSet(target_vvvvway) && target_vvvvway.constructor !== Array)
{
var temp_vvvvway = target_vvvvway;
var target_vvvvway = [];
target_vvvvway.push(temp_vvvvway);
}
else if (!isSet(target_vvvvway))
{
var target_vvvvway = [];
}
var target = target_vvvvway.some(target_vvvvway_SomeFunc);
if (isSet(how_vvvvway) && how_vvvvway.constructor !== Array)
{
var temp_vvvvway = how_vvvvway;
var how_vvvvway = [];
how_vvvvway.push(temp_vvvvway);
}
else if (!isSet(how_vvvvway))
{
var how_vvvvway = [];
}
var how = how_vvvvway.some(how_vvvvway_SomeFunc);
// set this function logic
if (target && how)
{
jQuery('.note_yes_behaviour_one').closest('.control-group').show();
jQuery('.note_yes_behaviour_two').closest('.control-group').show();
}
else
{
jQuery('.note_yes_behaviour_one').closest('.control-group').hide();
jQuery('.note_yes_behaviour_two').closest('.control-group').hide();
}
}
// the vvvvway Some function
function target_vvvvway_SomeFunc(target_vvvvway)
{
// set the function logic
if (target_vvvvway == 1)
{
return true;
}
return false;
}
// the vvvvway Some function
function how_vvvvway_SomeFunc(how_vvvvway)
{
// set the function logic
if (how_vvvvway == 1)
{
return true;
}
return false;
}
// the vvvvwaz function
function vvvvwaz(how_vvvvwaz,target_vvvvwaz)
{
if (isSet(how_vvvvwaz) && how_vvvvwaz.constructor !== Array)
{
var temp_vvvvwaz = how_vvvvwaz;
var how_vvvvwaz = [];
how_vvvvwaz.push(temp_vvvvwaz);
}
else if (!isSet(how_vvvvwaz))
{
var how_vvvvwaz = [];
}
var how = how_vvvvwaz.some(how_vvvvwaz_SomeFunc);
if (isSet(target_vvvvwaz) && target_vvvvwaz.constructor !== Array)
{
var temp_vvvvwaz = target_vvvvwaz;
var target_vvvvwaz = [];
target_vvvvwaz.push(temp_vvvvwaz);
}
else if (!isSet(target_vvvvwaz))
{
var target_vvvvwaz = [];
}
var target = target_vvvvwaz.some(target_vvvvwaz_SomeFunc);
// set this function logic
if (how && target)
{
jQuery('.note_build_in_behaviour_one').closest('.control-group').show();
jQuery('.note_build_in_behaviour_three').closest('.control-group').show();
jQuery('.note_build_in_behaviour_two').closest('.control-group').show();
}
else
{
jQuery('.note_build_in_behaviour_one').closest('.control-group').hide();
jQuery('.note_build_in_behaviour_three').closest('.control-group').hide();
jQuery('.note_build_in_behaviour_two').closest('.control-group').hide();
}
}
// the vvvvwaz Some function
function how_vvvvwaz_SomeFunc(how_vvvvwaz)
{
// set the function logic
if (how_vvvvwaz == 4)
{
return true;
}
return false;
}
// the vvvvwaz Some function
function target_vvvvwaz_SomeFunc(target_vvvvwaz)
{
// set the function logic
if (target_vvvvwaz == 1)
{
return true;
}
return false;
}
// the vvvvwba function
function vvvvwba(target_vvvvwba,how_vvvvwba)
{
if (isSet(target_vvvvwba) && target_vvvvwba.constructor !== Array)
{
var temp_vvvvwba = target_vvvvwba;
var target_vvvvwba = [];
target_vvvvwba.push(temp_vvvvwba);
}
else if (!isSet(target_vvvvwba))
{
var target_vvvvwba = [];
}
var target = target_vvvvwba.some(target_vvvvwba_SomeFunc);
if (isSet(how_vvvvwba) && how_vvvvwba.constructor !== Array)
{
var temp_vvvvwba = how_vvvvwba;
var how_vvvvwba = [];
how_vvvvwba.push(temp_vvvvwba);
}
else if (!isSet(how_vvvvwba))
{
var how_vvvvwba = [];
}
var how = how_vvvvwba.some(how_vvvvwba_SomeFunc);
// set this function logic
if (target && how)
{
jQuery('.note_build_in_behaviour_one').closest('.control-group').show();
jQuery('.note_build_in_behaviour_three').closest('.control-group').show();
jQuery('.note_build_in_behaviour_two').closest('.control-group').show();
}
else
{
jQuery('.note_build_in_behaviour_one').closest('.control-group').hide();
jQuery('.note_build_in_behaviour_three').closest('.control-group').hide();
jQuery('.note_build_in_behaviour_two').closest('.control-group').hide();
}
}
// the vvvvwba Some function
function target_vvvvwba_SomeFunc(target_vvvvwba)
{
// set the function logic
if (target_vvvvwba == 1)
{
return true;
}
return false;
}
// the vvvvwba Some function
function how_vvvvwba_SomeFunc(how_vvvvwba)
{
// set the function logic
if (how_vvvvwba == 4)
{
return true;
}
return false;
}
// the vvvvwbb function
function vvvvwbb(target_vvvvwbb,type_vvvvwbb)
{
// set the function logic
if (target_vvvvwbb == 1 && type_vvvvwbb == 2)
{
jQuery('#jform_libraries').closest('.control-group').show();
}
else
{
jQuery('#jform_libraries').closest('.control-group').hide();
}
}
// the vvvvwbd function
function vvvvwbd(target_vvvvwbd)
{
// set the function logic
if (target_vvvvwbd == 1)
{
jQuery('#jform_how').closest('.control-group').show();
// add required attribute to how field
if (jform_vvvvwbdvxc_required)
{
updateFieldRequired('how',0);
jQuery('#jform_how').prop('required','required');
jQuery('#jform_how').attr('aria-required',true);
jQuery('#jform_how').addClass('required');
jform_vvvvwbdvxc_required = false;
}
jQuery('#jform_type').closest('.control-group').show();
// add required attribute to type field
if (jform_vvvvwbdvxd_required)
{
updateFieldRequired('type',0);
jQuery('#jform_type').prop('required','required');
jQuery('#jform_type').attr('aria-required',true);
jQuery('#jform_type').addClass('required');
jform_vvvvwbdvxd_required = false;
}
}
else
{
jQuery('#jform_how').closest('.control-group').hide();
// remove required attribute from how field
if (!jform_vvvvwbdvxc_required)
{
updateFieldRequired('how',1);
jQuery('#jform_how').removeAttr('required');
jQuery('#jform_how').removeAttr('aria-required');
jQuery('#jform_how').removeClass('required');
jform_vvvvwbdvxc_required = true;
}
jQuery('#jform_type').closest('.control-group').hide();
// remove required attribute from type field
if (!jform_vvvvwbdvxd_required)
{
updateFieldRequired('type',1);
jQuery('#jform_type').removeAttr('required');
jQuery('#jform_type').removeAttr('aria-required');
jQuery('#jform_type').removeClass('required');
jform_vvvvwbdvxd_required = true;
}
}
}
// the vvvvwbe function
function vvvvwbe(target_vvvvwbe)
{
// set the function logic
if (target_vvvvwbe == 2)
{
jQuery('.note_yes_behaviour_library').closest('.control-group').show();
}
else
{
jQuery('.note_yes_behaviour_library').closest('.control-group').hide();
}
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// get the linked details
getLinked();
// now load the displays
getAjaxDisplay('library_config');
getAjaxDisplay('library_files_folders_urls');
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function addData(result,where){
jQuery(result).insertAfter(jQuery(where).closest('.control-group'));
}
function getAjaxDisplay(type){
getCodeFrom_server(1, type, 'type',
'getAjaxDisplay').then(function(result) {
if (result) {
jQuery('#display_'+type).html(result);
}
// set button
addButtonID(type,'header_'+type+'_buttons', 2); //
<-- little edit button
});
}
function getFieldSelectOptions(fieldKey){
// first check if the field is set
if(jQuery("#jform_addconditions__addconditions"+fieldKey+"__option_field").length)
{
var fieldId =
jQuery("#jform_addconditions__addconditions"+fieldKey+"__option_field
option:selected").val();
getCodeFrom_server(fieldId, 'type', 'type',
'fieldSelectOptions').then(function(result) {
if(result) {
jQuery('textarea#jform_addconditions__addconditions'+fieldKey+'__field_options').val(result);
} else {
jQuery('textarea#jform_addconditions__addconditions'+fieldKey+'__field_options').val('');
}
});
}
}
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function addButtonID_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButtonID&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0 && size >
0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButtonID(type, where, size){
addButtonID_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
});
}
function addButton_server(type, size){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getButton&format=json&raw=true&vdm="+vastDevMod);
if(token.length > 0 && type.length > 0){
var request =
token+'=1&type='+type+'&size='+size;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function addButton(type, where, size){
// just to insure that default behaviour still works
size = typeof size !== 'undefined' ? size : 1;
addButton_server(type, size).done(function(result) {
if(result){
if (2 == size) {
jQuery('#'+where).html(result);
} else {
addData(result, '#jform_'+where);
}
}
})
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
library_config.js000064400000000606151167367500010110 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
library_files_folders_urls.js000064400000000606151167367500012530
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
marked.js000064400000135002151167367500006361 0ustar00/**
* marked - a markdown parser
* Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)
* https://github.com/markedjs/marked
*/
!function(e,t){"object"==typeof
exports&&"undefined"!=typeof
module?t(exports):"function"==typeof
define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof
globalThis?globalThis:e||self).marked={})}(this,function(r){"use
strict";function i(e,t){for(var u=0;u<t.length;u++){var
n=t[u];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in
n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function
s(e,t){(null==t||t>e.length)&&(t=e.length);for(var u=0,n=new
Array(t);u<t;u++)n[u]=e[u];return n}function x(e,t){var
u="undefined"!=typeof
Symbol&&e[Symbol.iterator]||e["@@iterator"];if(u)return(u=u.call(e)).next.bind(u);if(Array.isArray(e)||(u=function(e,t){if(e){if("string"==typeof
e)return s(e,t);var
u=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(u="Object"===u&&e.constructor?e.constructor.name:u)||"Set"===u?Array.from(e):"Arguments"===u||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?s(e,t):void
0}}(e))||t&&e&&"number"==typeof
e.length){u&&(e=u);var n=0;return function(){return
n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new
TypeError("Invalid attempt to iterate non-iterable instance.\nIn order
to be iterable, non-array objects must have a [Symbol.iterator]()
method.")}function
e(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}r.defaults=e();function
u(e){return t[e]}var
n=/[&<>"']/,l=/[&<>"']/g,a=/[<>"']|&(?!#?\w+;)/,o=/[<>"']|&(?!#?\w+;)/g,t={"&":"&","<":"<",">":">",'"':""","'":"'"};function
D(e,t){if(t){if(n.test(e))return e.replace(l,u)}else if(a.test(e))return
e.replace(o,u);return e}var
c=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function m(e){return
e.replace(c,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}var
h=/(^|[^\[])\^/g;function p(u,e){u=u.source||u,e=e||"";var
n={replace:function(e,t){return
t=(t=t.source||t).replace(h,"$1"),u=u.replace(e,t),n},getRegex:function(){return
new RegExp(u,e)}};return n}var
f=/[^\w:]/g,g=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function F(e,t,u){if(e){var
n;try{n=decodeURIComponent(m(u)).replace(f,"").toLowerCase()}catch(e){return
null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return
null}t&&!g.test(u)&&(u=function(e,t){A["
"+e]||(d.test(e)?A[" "+e]=e+"/":A["
"+e]=w(e,"/",!0));var u=-1===(e=A["
"+e]).indexOf(":");return"//"===t.substring(0,2)?u?t:e.replace(C,"$1")+t:"/"===t.charAt(0)?u?t:e.replace(k,"$1")+t:e+t}(t,u));try{u=encodeURI(u).replace(/%25/g,"%")}catch(e){return
null}return u}var
A={},d=/^[^:]+:\/*[^/]*$/,C=/^([^:]+:)[\s\S]*$/,k=/^([^:]+:\/*[^/]*)[\s\S]*$/;var
E={exec:function(){}};function b(e){for(var
t,u,n=1;n<arguments.length;n++)for(u in
t=arguments[n])Object.prototype.hasOwnProperty.call(t,u)&&(e[u]=t[u]);return
e}function B(e,t){var u=e.replace(/\|/g,function(e,t,u){for(var
n=!1,r=t;0<=--r&&"\\"===u[r];)n=!n;return
n?"|":" |"}).split(/
\|/),n=0;if(u[0].trim()||u.shift(),u[u.length-1].trim()||u.pop(),u.length>t)u.splice(t);else
for(;u.length<t;)u.push("");for(;n<u.length;n++)u[n]=u[n].trim().replace(/\\\|/g,"|");return
u}function w(e,t,u){var n=e.length;if(0===n)return"";for(var
r=0;r<n;){var i=e.charAt(n-r-1);if(i!==t||u){if(i===t||!u)break;r++}else
r++}return e.substr(0,n-r)}function
v(e){e&&e.sanitize&&!e.silent&&console.warn("marked():
sanitize and sanitizer parameters are deprecated since version 0.7.0,
should not be used and will be removed in the future. Read more here:
https://marked.js.org/#/USING_ADVANCED.md#options")}function
y(e,t){if(t<1)return"";for(var
u="";1<t;)1&t&&(u+=e),t>>=1,e+=e;return
u+e}function _(e,t,u,n){var
r=t.href,i=t.title?D(t.title):null,t=e[1].replace(/\\([\[\]])/g,"$1");if("!"===e[0].charAt(0))return{type:"image",raw:u,href:r,title:i,text:D(t)};n.state.inLink=!0;t={type:"link",raw:u,href:r,title:i,text:t,tokens:n.inlineTokens(t,[])};return
n.state.inLink=!1,t}var z=function(){function
e(e){this.options=e||r.defaults}var t=e.prototype;return
t.space=function(e){e=this.rules.block.newline.exec(e);if(e&&0<e[0].length)return{type:"space",raw:e[0]}},t.code=function(e){var
t=this.rules.block.code.exec(e);if(t){e=t[0].replace(/^
{1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:w(e,"\n")}}},t.fences=function(e){var
t=this.rules.block.fences.exec(e);if(t){var
u=t[0],e=function(e,t){if(null===(e=e.match(/^(\s+)(?:```)/)))return t;var
u=e[1];return t.split("\n").map(function(e){var
t=e.match(/^\s+/);return
null!==t&&t[0].length>=u.length?e.slice(u.length):e}).join("\n")}(u,t[3]||"");return{type:"code",raw:u,lang:t[2]&&t[2].trim(),text:e}}},t.heading=function(e){var
t=this.rules.block.heading.exec(e);if(t){var
u=t[2].trim();/#$/.test(u)&&(e=w(u,"#"),!this.options.pedantic&&e&&!/
$/.test(e)||(u=e.trim()));u={type:"heading",raw:t[0],depth:t[1].length,text:u,tokens:[]};return
this.lexer.inline(u.text,u.tokens),u}},t.hr=function(e){e=this.rules.block.hr.exec(e);if(e)return{type:"hr",raw:e[0]}},t.blockquote=function(e){var
t=this.rules.block.blockquote.exec(e);if(t){e=t[0].replace(/^ *>
?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}},t.list=function(e){var
t=this.rules.block.list.exec(e);if(t){var
u,n,r,i,s,l,a,o,D,c,h,p=1<(g=t[1].trim()).length,f={type:"list",raw:"",ordered:p,start:p?+g.slice(0,-1):"",loose:!1,items:[]},g=p?"\\d{1,9}\\"+g.slice(-1):"\\"+g;this.options.pedantic&&(g=p?g:"[*+-]");for(var
F=new RegExp("^( {0,3}"+g+")((?:
[^\\n]*)?(?:\\n|$))");e&&(h=!1,t=F.exec(e))&&!this.rules.block.hr.test(e);){if(u=t[0],e=e.substring(u.length),a=t[2].split("\n",1)[0],o=e.split("\n",1)[0],this.options.pedantic?(i=2,c=a.trimLeft()):(i=t[2].search(/[^
]/),c=a.slice(i=4<i?1:i),i+=t[1].length),s=!1,!a&&/^
*$/.test(o)&&(u+=o+"\n",e=e.substring(o.length+1),h=!0),!h)for(var
A=new RegExp("^
{0,"+Math.min(3,i-1)+"}(?:[*+-]|\\d{1,9}[.)])");e&&(a=D=e.split("\n",1)[0],this.options.pedantic&&(a=a.replace(/^
{1,4}(?=( {4})*[^ ])/g," ")),!A.test(a));){if(a.search(/[^
]/)>=i||!a.trim())c+="\n"+a.slice(i);else{if(s)break;c+="\n"+a}s||a.trim()||(s=!0),u+=D+"\n",e=e.substring(D.length+1)}f.loose||(l?f.loose=!0:/\n
*\n *$/.test(u)&&(l=!0)),this.options.gfm&&(n=/^\[[ xX]\]
/.exec(c))&&(r="[ ] "!==n[0],c=c.replace(/^\[[ xX]\]
+/,"")),f.items.push({type:"list_item",raw:u,task:!!n,checked:r,loose:!1,text:c}),f.raw+=u}f.items[f.items.length-1].raw=u.trimRight(),f.items[f.items.length-1].text=c.trimRight(),f.raw=f.raw.trimRight();for(var
d=f.items.length,C=0;C<d;C++){this.lexer.state.top=!1,f.items[C].tokens=this.lexer.blockTokens(f.items[C].text,[]);var
k=f.items[C].tokens.filter(function(e){return"space"===e.type}),E=k.every(function(e){for(var
t,u=0,n=x(e.raw.split(""));!(t=n()).done;)if("\n"===t.value&&(u+=1),1<u)return!0;return!1});!f.loose&&k.length&&E&&(f.loose=!0,f.items[C].loose=!0)}return
f}},t.html=function(e){var
t=this.rules.block.html.exec(e);if(t){e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return
this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):D(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}},t.def=function(e){e=this.rules.block.def.exec(e);if(e)return
e[3]&&(e[3]=e[3].substring(1,e[3].length-1)),{type:"def",tag:e[1].toLowerCase().replace(/\s+/g,"
"),raw:e[0],href:e[2],title:e[3]}},t.table=function(e){e=this.rules.block.table.exec(e);if(e){var
t={type:"table",header:B(e[1]).map(function(e){return{text:e}}),align:e[2].replace(/^
*|\| *$/g,"").split(/ *\| */),rows:e[3]?e[3].replace(/\n[
\t]*$/,"").split("\n"):[]};if(t.header.length===t.align.length){t.raw=e[0];for(var
u,n,r,i=t.align.length,s=0;s<i;s++)/^ *-+:
*$/.test(t.align[s])?t.align[s]="right":/^ *:-+:
*$/.test(t.align[s])?t.align[s]="center":/^ *:-+
*$/.test(t.align[s])?t.align[s]="left":t.align[s]=null;for(i=t.rows.length,s=0;s<i;s++)t.rows[s]=B(t.rows[s],t.header.length).map(function(e){return{text:e}});for(i=t.header.length,u=0;u<i;u++)t.header[u].tokens=[],this.lexer.inlineTokens(t.header[u].text,t.header[u].tokens);for(i=t.rows.length,u=0;u<i;u++)for(r=t.rows[u],n=0;n<r.length;n++)r[n].tokens=[],this.lexer.inlineTokens(r[n].text,r[n].tokens);return
t}}},t.lheading=function(e){e=this.rules.block.lheading.exec(e);if(e){e={type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1],tokens:[]};return
this.lexer.inline(e.text,e.tokens),e}},t.paragraph=function(e){e=this.rules.block.paragraph.exec(e);if(e){e={type:"paragraph",raw:e[0],text:"\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1],tokens:[]};return
this.lexer.inline(e.text,e.tokens),e}},t.text=function(e){e=this.rules.block.text.exec(e);if(e){e={type:"text",raw:e[0],text:e[0],tokens:[]};return
this.lexer.inline(e.text,e.tokens),e}},t.escape=function(e){e=this.rules.inline.escape.exec(e);if(e)return{type:"escape",raw:e[0],text:D(e[1])}},t.tag=function(e){e=this.rules.inline.tag.exec(e);if(e)return!this.lexer.state.inLink&&/^<a
/i.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):D(e[0]):e[0]}},t.link=function(e){var
t=this.rules.inline.link.exec(e);if(t){e=t[2].trim();if(!this.options.pedantic&&/^</.test(e)){if(!/>$/.test(e))return;var
u=w(e.slice(0,-1),"\\");if((e.length-u.length)%2==0)return}else{var
n=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var
u=e.length,n=0,r=0;r<u;r++)if("\\"===e[r])r++;else
if(e[r]===t[0])n++;else if(e[r]===t[1]&&--n<0)return
r;return-1}(t[2],"()");-1<n&&(r=(0===t[0].indexOf("!")?5:4)+t[1].length+n,t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,r).trim(),t[3]="")}var
r,u=t[2],n="";return
this.options.pedantic?(r=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(u))&&(u=r[1],n=r[3]):n=t[3]?t[3].slice(1,-1):"",u=u.trim(),_(t,{href:(u=/^</.test(u)?this.options.pedantic&&!/>$/.test(e)?u.slice(1):u.slice(1,-1):u)&&u.replace(this.rules.inline._escapes,"$1"),title:n&&n.replace(this.rules.inline._escapes,"$1")},t[0],this.lexer)}},t.reflink=function(e,t){if((u=this.rules.inline.reflink.exec(e))||(u=this.rules.inline.nolink.exec(e))){var
e=(u[2]||u[1]).replace(/\s+/g,"
");if((e=t[e.toLowerCase()])&&e.href)return
_(u,e,u[0],this.lexer);var
u=u[0].charAt(0);return{type:"text",raw:u,text:u}}},t.emStrong=function(e,t,u){void
0===u&&(u="");var
n=this.rules.inline.emStrong.lDelim.exec(e);if(n&&(!n[3]||!u.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var
r=n[1]||n[2]||"";if(!r||""===u||this.rules.inline.punctuation.exec(u)){var
i,s=n[0].length-1,l=s,a=0,o="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(o.lastIndex=0,t=t.slice(-1*e.length+s);null!=(n=o.exec(t));)if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(i=i.length,n[3]||n[4])l+=i;else
if(!((n[5]||n[6])&&s%3)||(s+i)%3){if(!(0<(l-=i))){if(i=Math.min(i,i+l+a),Math.min(s,i)%2){var
D=e.slice(1,s+n.index+i);return{type:"em",raw:e.slice(0,s+n.index+i+1),text:D,tokens:this.lexer.inlineTokens(D,[])}}D=e.slice(2,s+n.index+i-1);return{type:"strong",raw:e.slice(0,s+n.index+i+1),text:D,tokens:this.lexer.inlineTokens(D,[])}}}else
a+=i}}},t.codespan=function(e){var
t=this.rules.inline.code.exec(e);if(t){var u=t[2].replace(/\n/g,"
"),n=/[^ ]/.test(u),e=/^ /.test(u)&&/
$/.test(u),u=D(u=n&&e?u.substring(1,u.length-1):u,!0);return{type:"codespan",raw:t[0],text:u}}},t.br=function(e){e=this.rules.inline.br.exec(e);if(e)return{type:"br",raw:e[0]}},t.del=function(e){e=this.rules.inline.del.exec(e);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2],[])}},t.autolink=function(e,t){e=this.rules.inline.autolink.exec(e);if(e){var
u,t="@"===e[2]?"mailto:"+(u=D(this.options.mangle?t(e[1]):e[1])):u=D(e[1]);return{type:"link",raw:e[0],text:u,href:t,tokens:[{type:"text",raw:u,text:u}]}}},t.url=function(e,t){var
u,n,r,i;if(u=this.rules.inline.url.exec(e)){if("@"===u[2])r="mailto:"+(n=D(this.options.mangle?t(u[0]):u[0]));else{for(;i=u[0],u[0]=this.rules.inline._backpedal.exec(u[0])[0],i!==u[0];);n=D(u[0]),r="www."===u[1]?"http://"+n:n}return{type:"link",raw:u[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},t.inlineText=function(e,t){e=this.rules.inline.text.exec(e);if(e){t=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):D(e[0]):e[0]:D(this.options.smartypants?t(e[0]):e[0]);return{type:"text",raw:e[0],text:t}}},e}(),$={newline:/^(?:
*(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^
{0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]*
*(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\*
*){3,})(?:\n+|$)/,heading:/^
{0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}>
?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)(
[^\n]+?)?(?:\n|$)/,html:"^
{0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?:
+|\\n|/?>)[\\s\\S]*?(?:(?:\\n
*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*?
*/?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n
*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[
\\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^
{0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n
*)(title))? *(?:\n+|$)/,table:E,lheading:/^([^\n]+)\n {0,3}(=+|-+)
*(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|
+\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};$.def=p($.def).replace("label",$._label).replace("title",$._title).getRegex(),$.bullet=/(?:[*+-]|\d{1,9}[.)])/,$.listItemStart=p(/^(
*)(bull)
*/).replace("bull",$.bullet).getRegex(),$.list=p($.list).replace(/bull/g,$.bullet).replace("hr","\\n+(?=\\1?(?:(?:-
*){3,}|(?:_ *){3,}|(?:\\*
*){3,})(?:\\n+|$))").replace("def","\\n+(?="+$.def.source+")").getRegex(),$._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",$._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,$.html=p($.html,"i").replace("comment",$._comment).replace("tag",$._tag).replace("attribute",/
+[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *=
*'[^'\n]*'| *=
*[^\s"'=<>`]+)?/).getRegex(),$.paragraph=p($._paragraph).replace("hr",$.hr).replace("heading","
{0,3}#{1,6}
").replace("|lheading","").replace("|table","").replace("blockquote","
{0,3}>").replace("fences","
{0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list","
{0,3}(?:[*+-]|1[.)])
").replace("html","</?(?:tag)(?:
+|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$._tag).getRegex(),$.blockquote=p($.blockquote).replace("paragraph",$.paragraph).getRegex(),$.normal=b({},$),$.gfm=b({},$.normal,{table:"^
*([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\|
*)?(?:\\n((?:(?!
*\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),$.gfm.table=p($.gfm.table).replace("hr",$.hr).replace("heading","
{0,3}#{1,6} ").replace("blockquote","
{0,3}>").replace("code","
{4}[^\\n]").replace("fences","
{0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list","
{0,3}(?:[*+-]|1[.)])
").replace("html","</?(?:tag)(?:
+|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$._tag).getRegex(),$.gfm.paragraph=p($._paragraph).replace("hr",$.hr).replace("heading","
{0,3}#{1,6}
").replace("|lheading","").replace("table",$.gfm.table).replace("blockquote","
{0,3}>").replace("fences","
{0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list","
{0,3}(?:[*+-]|1[.)])
").replace("html","</?(?:tag)(?:
+|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$._tag).getRegex(),$.pedantic=b({},$.normal,{html:p("^
*(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1>
*(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?>
*(?:\\n{2,}|\\s*$))").replace("comment",$._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^
*\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))?
*(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E,paragraph:p($.normal._paragraph).replace("hr",$.hr).replace("heading","
*#{1,6}
*[^\n]").replace("lheading",$.lheading).replace("blockquote","
{0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var
S={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:E,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^(
{2,}|\\)\n(?!\s*$)/,del:E,text:/^(`+|[^`])(?:(?=
{2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?=
{2,}\n)))/,punctuation:/^([\spunctuation])/};function T(e){return
e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function
R(e){for(var
t,u="",n=e.length,r=0;r<n;r++)t=e.charCodeAt(r),u+="&#"+(t=.5<Math.random()?"x"+t.toString(16):t)+";";return
u}S._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",S.punctuation=p(S.punctuation).replace(/punctuation/g,S._punctuation).getRegex(),S.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,S.escapedEmSt=/\\\*|\\_/g,S._comment=p($._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),S.emStrong.lDelim=p(S.emStrong.lDelim).replace(/punct/g,S._punctuation).getRegex(),S.emStrong.rDelimAst=p(S.emStrong.rDelimAst,"g").replace(/punct/g,S._punctuation).getRegex(),S.emStrong.rDelimUnd=p(S.emStrong.rDelimUnd,"g").replace(/punct/g,S._punctuation).getRegex(),S._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,S._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,S._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,S.autolink=p(S.autolink).replace("scheme",S._scheme).replace("email",S._email).getRegex(),S._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,S.tag=p(S.tag).replace("comment",S._comment).replace("attribute",S._attribute).getRegex(),S._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,S._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,S._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,S.link=p(S.link).replace("label",S._label).replace("href",S._href).replace("title",S._title).getRegex(),S.reflink=p(S.reflink).replace("label",S._label).replace("ref",$._label).getRegex(),S.nolink=p(S.nolink).replace("ref",$._label).getRegex(),S.reflinkSearch=p(S.reflinkSearch,"g").replace("reflink",S.reflink).replace("nolink",S.nolink).getRegex(),S.normal=b({},S),S.pedantic=b({},S.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:p(/^!?\[(label)\]\((.*?)\)/).replace("label",S._label).getRegex(),reflink:p(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",S._label).getRegex()}),S.gfm=b({},S.normal,{escape:p(S.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?=
{2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^
](?=
{2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),S.gfm.url=p(S.gfm.url,"i").replace("email",S.gfm._extended_email).getRegex(),S.breaks=b({},S.gfm,{br:p(S.br).replace("{2,}","*").getRegex(),text:p(S.gfm.text).replace("\\b_","\\b_|
{2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var
I=function(){function
u(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||r.defaults,this.options.tokenizer=this.options.tokenizer||new
z,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,(this.tokenizer.lexer=this).inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};e={block:$.normal,inline:S.normal};this.options.pedantic?(e.block=$.pedantic,e.inline=S.pedantic):this.options.gfm&&(e.block=$.gfm,this.options.breaks?e.inline=S.breaks:e.inline=S.gfm),this.tokenizer.rules=e}u.lex=function(e,t){return
new u(t).lex(e)},u.lexInline=function(e,t){return new
u(t).inlineTokens(e)};var e,t,n=u.prototype;return n.lex=function(e){var
t;for(e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g,"
"),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return
this.tokens},n.blockTokens=function(r,t){var u,e,i,n,s=this;for(void
0===t&&(t=[]),this.options.pedantic&&(r=r.replace(/^
+$/gm,""));r;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(e){return!!(u=e.call({lexer:s},r,t))&&(r=r.substring(u.raw.length),t.push(u),!0)})))if(u=this.tokenizer.space(r))r=r.substring(u.raw.length),1===u.raw.length&&0<t.length?t[t.length-1].raw+="\n":t.push(u);else
if(u=this.tokenizer.code(r))r=r.substring(u.raw.length),!(e=t[t.length-1])||"paragraph"!==e.type&&"text"!==e.type?t.push(u):(e.raw+="\n"+u.raw,e.text+="\n"+u.text,this.inlineQueue[this.inlineQueue.length-1].src=e.text);else
if(u=this.tokenizer.fences(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.heading(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.hr(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.blockquote(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.list(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.html(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.def(r))r=r.substring(u.raw.length),!(e=t[t.length-1])||"paragraph"!==e.type&&"text"!==e.type?this.tokens.links[u.tag]||(this.tokens.links[u.tag]={href:u.href,title:u.title}):(e.raw+="\n"+u.raw,e.text+="\n"+u.raw,this.inlineQueue[this.inlineQueue.length-1].src=e.text);else
if(u=this.tokenizer.table(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.lheading(r))r=r.substring(u.raw.length),t.push(u);else
if(i=r,this.options.extensions&&this.options.extensions.startBlock&&function(){var
t,u=1/0,n=r.slice(1);s.options.extensions.startBlock.forEach(function(e){"number"==typeof(t=e.call({lexer:this},n))&&0<=t&&(u=Math.min(u,t))}),u<1/0&&0<=u&&(i=r.substring(0,u+1))}(),this.state.top&&(u=this.tokenizer.paragraph(i)))e=t[t.length-1],n&&"paragraph"===e.type?(e.raw+="\n"+u.raw,e.text+="\n"+u.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=e.text):t.push(u),n=i.length!==r.length,r=r.substring(u.raw.length);else
if(u=this.tokenizer.text(r))r=r.substring(u.raw.length),(e=t[t.length-1])&&"text"===e.type?(e.raw+="\n"+u.raw,e.text+="\n"+u.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=e.text):t.push(u);else
if(r){var l="Infinite loop on byte:
"+r.charCodeAt(0);if(this.options.silent){console.error(l);break}throw
new Error(l)}return
this.state.top=!0,t},n.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},n.inlineTokens=function(r,t){var
u,e,i,s=this;void 0===t&&(t=[]);var
n,l,a,o=r;if(this.tokens.links){var
D=Object.keys(this.tokens.links);if(0<D.length)for(;null!=(n=this.tokenizer.rules.inline.reflinkSearch.exec(o));)D.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,n.index)+"["+y("a",n[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(n=this.tokenizer.rules.inline.blockSkip.exec(o));)o=o.slice(0,n.index)+"["+y("a",n[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(n=this.tokenizer.rules.inline.escapedEmSt.exec(o));)o=o.slice(0,n.index)+"++"+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;r;)if(l||(a=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(e){return!!(u=e.call({lexer:s},r,t))&&(r=r.substring(u.raw.length),t.push(u),!0)})))if(u=this.tokenizer.escape(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.tag(r))r=r.substring(u.raw.length),(e=t[t.length-1])&&"text"===u.type&&"text"===e.type?(e.raw+=u.raw,e.text+=u.text):t.push(u);else
if(u=this.tokenizer.link(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.reflink(r,this.tokens.links))r=r.substring(u.raw.length),(e=t[t.length-1])&&"text"===u.type&&"text"===e.type?(e.raw+=u.raw,e.text+=u.text):t.push(u);else
if(u=this.tokenizer.emStrong(r,o,a))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.codespan(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.br(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.del(r))r=r.substring(u.raw.length),t.push(u);else
if(u=this.tokenizer.autolink(r,R))r=r.substring(u.raw.length),t.push(u);else
if(this.state.inLink||!(u=this.tokenizer.url(r,R))){if(i=r,this.options.extensions&&this.options.extensions.startInline&&function(){var
t,u=1/0,n=r.slice(1);s.options.extensions.startInline.forEach(function(e){"number"==typeof(t=e.call({lexer:this},n))&&0<=t&&(u=Math.min(u,t))}),u<1/0&&0<=u&&(i=r.substring(0,u+1))}(),u=this.tokenizer.inlineText(i,T))r=r.substring(u.raw.length),"_"!==u.raw.slice(-1)&&(a=u.raw.slice(-1)),l=!0,(e=t[t.length-1])&&"text"===e.type?(e.raw+=u.raw,e.text+=u.text):t.push(u);else
if(r){var c="Infinite loop on byte:
"+r.charCodeAt(0);if(this.options.silent){console.error(c);break}throw
new Error(c)}}else r=r.substring(u.raw.length),t.push(u);return
t},e=u,t=[{key:"rules",get:function(){return{block:$,inline:S}}}],(n=null)&&i(e.prototype,n),t&&i(e,t),Object.defineProperty(e,"prototype",{writable:!1}),u}(),Z=function(){function
e(e){this.options=e||r.defaults}var t=e.prototype;return
t.code=function(e,t,u){var
n=(t||"").match(/\S*/)[0];return!this.options.highlight||null!=(t=this.options.highlight(e,n))&&t!==e&&(u=!0,e=t),e=e.replace(/\n$/,"")+"\n",n?'<pre><code
class="'+this.options.langPrefix+D(n,!0)+'">'+(u?e:D(e,!0))+"</code></pre>\n":"<pre><code>"+(u?e:D(e,!0))+"</code></pre>\n"},t.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},t.html=function(e){return
e},t.heading=function(e,t,u,n){return
this.options.headerIds?"<h"+t+'
id="'+this.options.headerPrefix+n.slug(u)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},t.hr=function(){return
this.options.xhtml?"<hr/>\n":"<hr>\n"},t.list=function(e,t,u){var
n=t?"ol":"ul";return"<"+n+(t&&1!==u?'
start="'+u+'"':"")+">\n"+e+"</"+n+">\n"},t.listitem=function(e){return"<li>"+e+"</li>\n"},t.checkbox=function(e){return"<input
"+(e?'checked=""
':"")+'disabled=""
type="checkbox"'+(this.options.xhtml?"
/":"")+">
"},t.paragraph=function(e){return"<p>"+e+"</p>\n"},t.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n"+(t=t&&"<tbody>"+t+"</tbody>")+"</table>\n"},t.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},t.tablecell=function(e,t){var
u=t.header?"th":"td";return(t.align?"<"+u+'
align="'+t.align+'">':"<"+u+">")+e+"</"+u+">\n"},t.strong=function(e){return"<strong>"+e+"</strong>"},t.em=function(e){return"<em>"+e+"</em>"},t.codespan=function(e){return"<code>"+e+"</code>"},t.br=function(){return
this.options.xhtml?"<br/>":"<br>"},t.del=function(e){return"<del>"+e+"</del>"},t.link=function(e,t,u){if(null===(e=F(this.options.sanitize,this.options.baseUrl,e)))return
u;e='<a href="'+D(e)+'"';return
t&&(e+='
title="'+t+'"'),e+=">"+u+"</a>"},t.image=function(e,t,u){if(null===(e=F(this.options.sanitize,this.options.baseUrl,e)))return
u;u='<img src="'+e+'"
alt="'+u+'"';return t&&(u+='
title="'+t+'"'),u+=this.options.xhtml?"/>":">"},t.text=function(e){return
e},e}(),O=function(){function e(){}var t=e.prototype;return
t.strong=function(e){return e},t.em=function(e){return
e},t.codespan=function(e){return e},t.del=function(e){return
e},t.html=function(e){return e},t.text=function(e){return
e},t.link=function(e,t,u){return""+u},t.image=function(e,t,u){return""+u},t.br=function(){return""},e}(),q=function(){function
e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return
e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var
u=e,n=0;if(this.seen.hasOwnProperty(u))for(n=this.seen[e];u=e+"-"+
++n,this.seen.hasOwnProperty(u););return
t||(this.seen[e]=n,this.seen[u]=0),u},t.slug=function(e,t){void
0===t&&(t={});e=this.serialize(e);return
this.getNextSafeSlug(e,t.dryrun)},e}(),L=function(){function
u(e){this.options=e||r.defaults,this.options.renderer=this.options.renderer||new
Z,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new
O,this.slugger=new q}u.parse=function(e,t){return new
u(t).parse(e)},u.parseInline=function(e,t){return new
u(t).parseInline(e)};var e=u.prototype;return e.parse=function(e,t){void
0===t&&(t=!0);for(var
u,n,r,i,s,l,a,o,D,c,h,p,f,g,F,A,d="",C=e.length,k=0;k<C;k++)if(o=e[k],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[o.type])||!1===(A=this.options.extensions.renderers[o.type].call({parser:this},o))&&["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(o.type))switch(o.type){case"space":continue;case"hr":d+=this.renderer.hr();continue;case"heading":d+=this.renderer.heading(this.parseInline(o.tokens),o.depth,m(this.parseInline(o.tokens,this.textRenderer)),this.slugger);continue;case"code":d+=this.renderer.code(o.text,o.lang,o.escaped);continue;case"table":for(l=D="",r=o.header.length,u=0;u<r;u++)l+=this.renderer.tablecell(this.parseInline(o.header[u].tokens),{header:!0,align:o.align[u]});for(D+=this.renderer.tablerow(l),a="",r=o.rows.length,u=0;u<r;u++){for(l="",i=(s=o.rows[u]).length,n=0;n<i;n++)l+=this.renderer.tablecell(this.parseInline(s[n].tokens),{header:!1,align:o.align[n]});a+=this.renderer.tablerow(l)}d+=this.renderer.table(D,a);continue;case"blockquote":a=this.parse(o.tokens),d+=this.renderer.blockquote(a);continue;case"list":for(D=o.ordered,E=o.start,c=o.loose,r=o.items.length,a="",u=0;u<r;u++)f=(p=o.items[u]).checked,g=p.task,h="",p.task&&(F=this.renderer.checkbox(f),c?0<p.tokens.length&&"paragraph"===p.tokens[0].type?(p.tokens[0].text=F+"
"+p.tokens[0].text,p.tokens[0].tokens&&0<p.tokens[0].tokens.length&&"text"===p.tokens[0].tokens[0].type&&(p.tokens[0].tokens[0].text=F+"
"+p.tokens[0].tokens[0].text)):p.tokens.unshift({type:"text",text:F}):h+=F),h+=this.parse(p.tokens,c),a+=this.renderer.listitem(h,g,f);d+=this.renderer.list(a,D,E);continue;case"html":d+=this.renderer.html(o.text);continue;case"paragraph":d+=this.renderer.paragraph(this.parseInline(o.tokens));continue;case"text":for(a=o.tokens?this.parseInline(o.tokens):o.text;k+1<C&&"text"===e[k+1].type;)a+="\n"+((o=e[++k]).tokens?this.parseInline(o.tokens):o.text);d+=t?this.renderer.paragraph(a):a;continue;default:var
E='Token with "'+o.type+'" type was not
found.';if(this.options.silent)return void console.error(E);throw new
Error(E)}else d+=A||"";return
d},e.parseInline=function(e,t){t=t||this.renderer;for(var
u,n,r="",i=e.length,s=0;s<i;s++)if(u=e[s],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[u.type])||!1===(n=this.options.extensions.renderers[u.type].call({parser:this},u))&&["escape","html","link","image","strong","em","codespan","br","del","text"].includes(u.type))switch(u.type){case"escape":r+=t.text(u.text);break;case"html":r+=t.html(u.text);break;case"link":r+=t.link(u.href,u.title,this.parseInline(u.tokens,t));break;case"image":r+=t.image(u.href,u.title,u.text);break;case"strong":r+=t.strong(this.parseInline(u.tokens,t));break;case"em":r+=t.em(this.parseInline(u.tokens,t));break;case"codespan":r+=t.codespan(u.text);break;case"br":r+=t.br();break;case"del":r+=t.del(this.parseInline(u.tokens,t));break;case"text":r+=t.text(u.text);break;default:var
l='Token with "'+u.type+'" type was not
found.';if(this.options.silent)return void console.error(l);throw new
Error(l)}else r+=n||"";return r},u}();function
j(e,u,n){if(null==e)throw new Error("marked(): input parameter is
undefined or null");if("string"!=typeof e)throw new
Error("marked(): input parameter is of type
"+Object.prototype.toString.call(e)+", string
expected");if("function"==typeof
u&&(n=u,u=null),v(u=b({},j.defaults,u||{})),n){var
r,i=u.highlight;try{r=I.lex(e,u)}catch(e){return n(e)}var s=function(t){var
e;if(!t)try{u.walkTokens&&j.walkTokens(r,u.walkTokens),e=L.parse(r,u)}catch(e){t=e}return
u.highlight=i,t?n(t):n(null,e)};if(!i||i.length<3)return s();if(delete
u.highlight,!r.length)return s();var l=0;return
j.walkTokens(r,function(u){"code"===u.type&&(l++,setTimeout(function(){i(u.text,u.lang,function(e,t){return
e?s(e):(null!=t&&t!==u.text&&(u.text=t,u.escaped=!0),void(0===--l&&s()))})},0))}),void(0===l&&s())}try{var
t=I.lex(e,u);return
u.walkTokens&&j.walkTokens(t,u.walkTokens),L.parse(t,u)}catch(e){if(e.message+="\nPlease
report this to
https://github.com/markedjs/marked.",u.silent)return"<p>An
error
occurred:</p><pre>"+D(e.message+"",!0)+"</pre>";throw
e}}j.options=j.setOptions=function(e){return
b(j.defaults,e),e=j.defaults,r.defaults=e,j},j.getDefaults=e,j.defaults=r.defaults,j.use=function(){for(var
e=arguments.length,t=new Array(e),u=0;u<e;u++)t[u]=arguments[u];var
n,r=b.apply(void
0,[{}].concat(t)),s=j.defaults.extensions||{renderers:{},childTokens:{}};t.forEach(function(l){var
t;l.extensions&&(n=!0,l.extensions.forEach(function(r){if(!r.name)throw
new Error("extension name required");var
i;if(r.renderer&&(i=s.renderers?s.renderers[r.name]:null,s.renderers[r.name]=i?function(){for(var
e=arguments.length,t=new Array(e),u=0;u<e;u++)t[u]=arguments[u];var
n=r.renderer.apply(this,t);return
n=!1===n?i.apply(this,t):n}:r.renderer),r.tokenizer){if(!r.level||"block"!==r.level&&"inline"!==r.level)throw
new Error("extension level must be 'block' or
'inline'");s[r.level]?s[r.level].unshift(r.tokenizer):s[r.level]=[r.tokenizer],r.start&&("block"===r.level?s.startBlock?s.startBlock.push(r.start):s.startBlock=[r.start]:"inline"===r.level&&(s.startInline?s.startInline.push(r.start):s.startInline=[r.start]))}r.childTokens&&(s.childTokens[r.name]=r.childTokens)})),l.renderer&&function(){var
e,s=j.defaults.renderer||new Z;for(e in l.renderer)!function(r){var
i=s[r];s[r]=function(){for(var e=arguments.length,t=new
Array(e),u=0;u<e;u++)t[u]=arguments[u];var
n=l.renderer[r].apply(s,t);return
n=!1===n?i.apply(s,t):n}}(e);r.renderer=s}(),l.tokenizer&&function(){var
e,s=j.defaults.tokenizer||new z;for(e in l.tokenizer)!function(r){var
i=s[r];s[r]=function(){for(var e=arguments.length,t=new
Array(e),u=0;u<e;u++)t[u]=arguments[u];var
n=l.tokenizer[r].apply(s,t);return
n=!1===n?i.apply(s,t):n}}(e);r.tokenizer=s}(),l.walkTokens&&(t=j.defaults.walkTokens,r.walkTokens=function(e){l.walkTokens.call(this,e),t&&t.call(this,e)}),n&&(r.extensions=s),j.setOptions(r)})},j.walkTokens=function(e,l){for(var
a,t=x(e);!(a=t()).done;)!function(){var
t=a.value;switch(l.call(j,t),t.type){case"table":for(var
e=x(t.header);!(u=e()).done;){var
u=u.value;j.walkTokens(u.tokens,l)}for(var
n,r=x(t.rows);!(n=r()).done;)for(var i=x(n.value);!(s=i()).done;){var
s=s.value;j.walkTokens(s.tokens,l)}break;case"list":j.walkTokens(t.items,l);break;default:j.defaults.extensions&&j.defaults.extensions.childTokens&&j.defaults.extensions.childTokens[t.type]?j.defaults.extensions.childTokens[t.type].forEach(function(e){j.walkTokens(t[e],l)}):t.tokens&&j.walkTokens(t.tokens,l)}}()},j.parseInline=function(e,t){if(null==e)throw
new Error("marked.parseInline(): input parameter is undefined or
null");if("string"!=typeof e)throw new
Error("marked.parseInline(): input parameter is of type
"+Object.prototype.toString.call(e)+", string
expected");v(t=b({},j.defaults,t||{}));try{var
u=I.lexInline(e,t);return
t.walkTokens&&j.walkTokens(u,t.walkTokens),L.parseInline(u,t)}catch(e){if(e.message+="\nPlease
report this to
https://github.com/markedjs/marked.",t.silent)return"<p>An
error
occurred:</p><pre>"+D(e.message+"",!0)+"</pre>";throw
e}},j.Parser=L,j.parser=L.parse,j.Renderer=Z,j.TextRenderer=O,j.Lexer=I,j.lexer=I.lex,j.Tokenizer=z,j.Slugger=q;var
P=(j.parse=j).options,Q=j.setOptions,U=j.use,M=j.walkTokens,N=j.parseInline,X=j,G=L.parse,E=I.lex;r.Lexer=I,r.Parser=L,r.Renderer=Z,r.Slugger=q,r.TextRenderer=O,r.Tokenizer=z,r.getDefaults=e,r.lexer=E,r.marked=j,r.options=P,r.parse=X,r.parseInline=N,r.parser=G,r.setOptions=Q,r.use=U,r.walkTokens=M,Object.defineProperty(r,"__esModule",{value:!0})});placeholder.js000064400000010163151167367510007401
0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jQuery(document).ready(function()
{
jQuery('#placedin').show();
var placeholderName = jQuery('#jform_target').val();
// check if this function name is taken
checkPlaceholderName(placeholderName);
});
function setPlaceholderName(){
// noting for now (we may add more functionality later)
}
function checkPlaceholderName(placeholderName) {
if (placeholderName.length > 2) {
var ide = jQuery('#jform_id').val();
if (ide == 0) {
ide = -1;
}
checkPlaceholderName_server(placeholderName, ide).done(function(result)
{
if(result.name && result.message){
// show notice that placeholderName is okay
jQuery.UIkit.notify({message: result.message, timeout: 5000, status:
result.status, pos: 'top-right'});
jQuery('#jform_target').val(result.name);
// now start search for where the function is used
placedin(result.name, ide);
} else if(result.message){
// show notice that placeholderName is not okay
jQuery.UIkit.notify({message: result.message, timeout: 5000, status:
result.status, pos: 'top-right'});
jQuery('#jform_target').val('');
} else {
// set an error that message was not send
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_PLACEHOLDER_ALREADY_TAKEN_PLEASE_TRY_AGAIN'),
timeout: 5000, status: 'danger', pos: 'top-right'});
jQuery('#jform_target').val('');
}
// set custom code placeholder
setPlaceholderName();
});
} else {
// set an error that message was not send
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_YOU_MUST_ADD_AN_UNIQUE_PLACEHOLDER'),
timeout: 5000, status: 'danger', pos: 'top-right'});
jQuery('#jform_target').val('');
// set custom code placeholder
setPlaceholderName();
}
}
// check Placeholder
function checkPlaceholderName_server(placeholderName, ide){
var getUrl =
"index.php?option=com_componentbuilder&task=ajax.checkPlaceholderName&raw=true&format=json";
if(token.length > 0){
var request =
'token='+token+'&placeholderName='+placeholderName+'&id='+ide;
}
return jQuery.ajax({
type: 'POST',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
// check where this Function is used
function placedin(placeholder, ide) {
var found = false;
jQuery('#before-placedin').hide();
jQuery('#note-placedin-not').hide();
jQuery('#note-placedin-found').hide();
jQuery('#loading-placedin').show();
var targets =
['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v'];
// if you update this, also update (below 21) &
[customcode-codeUsedInHtmlNote]!
var targetNumber = 21;
var run = 0;
var placedinChecker = setInterval(function(){
var target = targets[run];
placedin_server(placeholder, ide, target).done(function(used) {
if (used.in) {
jQuery('#placedin-'+used.id).show();
jQuery('#area-'+used.id).html(used.in);
jQuery.UIkit.notify({message: used.in, timeout: 5000, status:
'success', pos: 'top-right'});
found = true;
} else {
jQuery('#placedin-'+target).hide();
}
if (run == targetNumber) {
jQuery('#loading-placedin').hide();
if (found) {
jQuery('#note-placedin-found').show();
} else {
jQuery('#note-placedin-not').show();
}
}
});
if (run == targetNumber) {
clearInterval(placedinChecker);
}
run++;
}, 800);
}
function placedin_server(placeholder, ide, target){
var getUrl =
"index.php?option=com_componentbuilder&task=ajax.placedin&format=json";
if(token.length > 0){
var request =
token+'=1&placeholder='+placeholder+'&id='+ide+'&target='+target+'&raw=true&return_here='+return_here;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
server.js000064400000040600151167367510006424 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Some Global Values
jform_vvvvwcevxt_required = false;
jform_vvvvwcevxu_required = false;
jform_vvvvwcevxv_required = false;
jform_vvvvwcevxw_required = false;
jform_vvvvwcevxx_required = false;
jform_vvvvwcfvxy_required = false;
jform_vvvvwcgvxz_required = false;
jform_vvvvwcivya_required = false;
jform_vvvvwckvyb_required = false;
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var protocol_vvvvwce = jQuery("#jform_protocol").val();
vvvvwce(protocol_vvvvwce);
var protocol_vvvvwcf = jQuery("#jform_protocol").val();
vvvvwcf(protocol_vvvvwcf);
var protocol_vvvvwcg = jQuery("#jform_protocol").val();
var authentication_vvvvwcg =
jQuery("#jform_authentication").val();
vvvvwcg(protocol_vvvvwcg,authentication_vvvvwcg);
var protocol_vvvvwci = jQuery("#jform_protocol").val();
var authentication_vvvvwci =
jQuery("#jform_authentication").val();
vvvvwci(protocol_vvvvwci,authentication_vvvvwci);
var protocol_vvvvwck = jQuery("#jform_protocol").val();
var authentication_vvvvwck =
jQuery("#jform_authentication").val();
vvvvwck(protocol_vvvvwck,authentication_vvvvwck);
var protocol_vvvvwcm = jQuery("#jform_protocol").val();
var authentication_vvvvwcm =
jQuery("#jform_authentication").val();
vvvvwcm(protocol_vvvvwcm,authentication_vvvvwcm);
});
// the vvvvwce function
function vvvvwce(protocol_vvvvwce)
{
if (isSet(protocol_vvvvwce) && protocol_vvvvwce.constructor !==
Array)
{
var temp_vvvvwce = protocol_vvvvwce;
var protocol_vvvvwce = [];
protocol_vvvvwce.push(temp_vvvvwce);
}
else if (!isSet(protocol_vvvvwce))
{
var protocol_vvvvwce = [];
}
var protocol = protocol_vvvvwce.some(protocol_vvvvwce_SomeFunc);
// set this function logic
if (protocol)
{
jQuery('#jform_authentication').closest('.control-group').show();
// add required attribute to authentication field
if (jform_vvvvwcevxt_required)
{
updateFieldRequired('authentication',0);
jQuery('#jform_authentication').prop('required','required');
jQuery('#jform_authentication').attr('aria-required',true);
jQuery('#jform_authentication').addClass('required');
jform_vvvvwcevxt_required = false;
}
jQuery('#jform_host').closest('.control-group').show();
// add required attribute to host field
if (jform_vvvvwcevxu_required)
{
updateFieldRequired('host',0);
jQuery('#jform_host').prop('required','required');
jQuery('#jform_host').attr('aria-required',true);
jQuery('#jform_host').addClass('required');
jform_vvvvwcevxu_required = false;
}
jQuery('#jform_port').closest('.control-group').show();
// add required attribute to port field
if (jform_vvvvwcevxv_required)
{
updateFieldRequired('port',0);
jQuery('#jform_port').prop('required','required');
jQuery('#jform_port').attr('aria-required',true);
jQuery('#jform_port').addClass('required');
jform_vvvvwcevxv_required = false;
}
jQuery('#jform_path').closest('.control-group').show();
// add required attribute to path field
if (jform_vvvvwcevxw_required)
{
updateFieldRequired('path',0);
jQuery('#jform_path').prop('required','required');
jQuery('#jform_path').attr('aria-required',true);
jQuery('#jform_path').addClass('required');
jform_vvvvwcevxw_required = false;
}
jQuery('.note_ssh_security').closest('.control-group').show();
jQuery('#jform_username').closest('.control-group').show();
// add required attribute to username field
if (jform_vvvvwcevxx_required)
{
updateFieldRequired('username',0);
jQuery('#jform_username').prop('required','required');
jQuery('#jform_username').attr('aria-required',true);
jQuery('#jform_username').addClass('required');
jform_vvvvwcevxx_required = false;
}
}
else
{
jQuery('#jform_authentication').closest('.control-group').hide();
// remove required attribute from authentication field
if (!jform_vvvvwcevxt_required)
{
updateFieldRequired('authentication',1);
jQuery('#jform_authentication').removeAttr('required');
jQuery('#jform_authentication').removeAttr('aria-required');
jQuery('#jform_authentication').removeClass('required');
jform_vvvvwcevxt_required = true;
}
jQuery('#jform_host').closest('.control-group').hide();
// remove required attribute from host field
if (!jform_vvvvwcevxu_required)
{
updateFieldRequired('host',1);
jQuery('#jform_host').removeAttr('required');
jQuery('#jform_host').removeAttr('aria-required');
jQuery('#jform_host').removeClass('required');
jform_vvvvwcevxu_required = true;
}
jQuery('#jform_port').closest('.control-group').hide();
// remove required attribute from port field
if (!jform_vvvvwcevxv_required)
{
updateFieldRequired('port',1);
jQuery('#jform_port').removeAttr('required');
jQuery('#jform_port').removeAttr('aria-required');
jQuery('#jform_port').removeClass('required');
jform_vvvvwcevxv_required = true;
}
jQuery('#jform_path').closest('.control-group').hide();
// remove required attribute from path field
if (!jform_vvvvwcevxw_required)
{
updateFieldRequired('path',1);
jQuery('#jform_path').removeAttr('required');
jQuery('#jform_path').removeAttr('aria-required');
jQuery('#jform_path').removeClass('required');
jform_vvvvwcevxw_required = true;
}
jQuery('.note_ssh_security').closest('.control-group').hide();
jQuery('#jform_username').closest('.control-group').hide();
// remove required attribute from username field
if (!jform_vvvvwcevxx_required)
{
updateFieldRequired('username',1);
jQuery('#jform_username').removeAttr('required');
jQuery('#jform_username').removeAttr('aria-required');
jQuery('#jform_username').removeClass('required');
jform_vvvvwcevxx_required = true;
}
}
}
// the vvvvwce Some function
function protocol_vvvvwce_SomeFunc(protocol_vvvvwce)
{
// set the function logic
if (protocol_vvvvwce == 2)
{
return true;
}
return false;
}
// the vvvvwcf function
function vvvvwcf(protocol_vvvvwcf)
{
if (isSet(protocol_vvvvwcf) && protocol_vvvvwcf.constructor !==
Array)
{
var temp_vvvvwcf = protocol_vvvvwcf;
var protocol_vvvvwcf = [];
protocol_vvvvwcf.push(temp_vvvvwcf);
}
else if (!isSet(protocol_vvvvwcf))
{
var protocol_vvvvwcf = [];
}
var protocol = protocol_vvvvwcf.some(protocol_vvvvwcf_SomeFunc);
// set this function logic
if (protocol)
{
jQuery('.note_ftp_signature').closest('.control-group').show();
jQuery('#jform_signature').closest('.control-group').show();
// add required attribute to signature field
if (jform_vvvvwcfvxy_required)
{
updateFieldRequired('signature',0);
jQuery('#jform_signature').prop('required','required');
jQuery('#jform_signature').attr('aria-required',true);
jQuery('#jform_signature').addClass('required');
jform_vvvvwcfvxy_required = false;
}
}
else
{
jQuery('.note_ftp_signature').closest('.control-group').hide();
jQuery('#jform_signature').closest('.control-group').hide();
// remove required attribute from signature field
if (!jform_vvvvwcfvxy_required)
{
updateFieldRequired('signature',1);
jQuery('#jform_signature').removeAttr('required');
jQuery('#jform_signature').removeAttr('aria-required');
jQuery('#jform_signature').removeClass('required');
jform_vvvvwcfvxy_required = true;
}
}
}
// the vvvvwcf Some function
function protocol_vvvvwcf_SomeFunc(protocol_vvvvwcf)
{
// set the function logic
if (protocol_vvvvwcf == 1)
{
return true;
}
return false;
}
// the vvvvwcg function
function vvvvwcg(protocol_vvvvwcg,authentication_vvvvwcg)
{
if (isSet(protocol_vvvvwcg) && protocol_vvvvwcg.constructor !==
Array)
{
var temp_vvvvwcg = protocol_vvvvwcg;
var protocol_vvvvwcg = [];
protocol_vvvvwcg.push(temp_vvvvwcg);
}
else if (!isSet(protocol_vvvvwcg))
{
var protocol_vvvvwcg = [];
}
var protocol = protocol_vvvvwcg.some(protocol_vvvvwcg_SomeFunc);
if (isSet(authentication_vvvvwcg) &&
authentication_vvvvwcg.constructor !== Array)
{
var temp_vvvvwcg = authentication_vvvvwcg;
var authentication_vvvvwcg = [];
authentication_vvvvwcg.push(temp_vvvvwcg);
}
else if (!isSet(authentication_vvvvwcg))
{
var authentication_vvvvwcg = [];
}
var authentication =
authentication_vvvvwcg.some(authentication_vvvvwcg_SomeFunc);
// set this function logic
if (protocol && authentication)
{
jQuery('#jform_password').closest('.control-group').show();
// add required attribute to password field
if (jform_vvvvwcgvxz_required)
{
updateFieldRequired('password',0);
jQuery('#jform_password').prop('required','required');
jQuery('#jform_password').attr('aria-required',true);
jQuery('#jform_password').addClass('required');
jform_vvvvwcgvxz_required = false;
}
}
else
{
jQuery('#jform_password').closest('.control-group').hide();
// remove required attribute from password field
if (!jform_vvvvwcgvxz_required)
{
updateFieldRequired('password',1);
jQuery('#jform_password').removeAttr('required');
jQuery('#jform_password').removeAttr('aria-required');
jQuery('#jform_password').removeClass('required');
jform_vvvvwcgvxz_required = true;
}
}
}
// the vvvvwcg Some function
function protocol_vvvvwcg_SomeFunc(protocol_vvvvwcg)
{
// set the function logic
if (protocol_vvvvwcg == 2)
{
return true;
}
return false;
}
// the vvvvwcg Some function
function authentication_vvvvwcg_SomeFunc(authentication_vvvvwcg)
{
// set the function logic
if (authentication_vvvvwcg == 1 || authentication_vvvvwcg == 3 ||
authentication_vvvvwcg == 5)
{
return true;
}
return false;
}
// the vvvvwci function
function vvvvwci(protocol_vvvvwci,authentication_vvvvwci)
{
if (isSet(protocol_vvvvwci) && protocol_vvvvwci.constructor !==
Array)
{
var temp_vvvvwci = protocol_vvvvwci;
var protocol_vvvvwci = [];
protocol_vvvvwci.push(temp_vvvvwci);
}
else if (!isSet(protocol_vvvvwci))
{
var protocol_vvvvwci = [];
}
var protocol = protocol_vvvvwci.some(protocol_vvvvwci_SomeFunc);
if (isSet(authentication_vvvvwci) &&
authentication_vvvvwci.constructor !== Array)
{
var temp_vvvvwci = authentication_vvvvwci;
var authentication_vvvvwci = [];
authentication_vvvvwci.push(temp_vvvvwci);
}
else if (!isSet(authentication_vvvvwci))
{
var authentication_vvvvwci = [];
}
var authentication =
authentication_vvvvwci.some(authentication_vvvvwci_SomeFunc);
// set this function logic
if (protocol && authentication)
{
jQuery('#jform_private').closest('.control-group').show();
// add required attribute to private field
if (jform_vvvvwcivya_required)
{
updateFieldRequired('private',0);
jQuery('#jform_private').prop('required','required');
jQuery('#jform_private').attr('aria-required',true);
jQuery('#jform_private').addClass('required');
jform_vvvvwcivya_required = false;
}
}
else
{
jQuery('#jform_private').closest('.control-group').hide();
// remove required attribute from private field
if (!jform_vvvvwcivya_required)
{
updateFieldRequired('private',1);
jQuery('#jform_private').removeAttr('required');
jQuery('#jform_private').removeAttr('aria-required');
jQuery('#jform_private').removeClass('required');
jform_vvvvwcivya_required = true;
}
}
}
// the vvvvwci Some function
function protocol_vvvvwci_SomeFunc(protocol_vvvvwci)
{
// set the function logic
if (protocol_vvvvwci == 2)
{
return true;
}
return false;
}
// the vvvvwci Some function
function authentication_vvvvwci_SomeFunc(authentication_vvvvwci)
{
// set the function logic
if (authentication_vvvvwci == 2 || authentication_vvvvwci == 3)
{
return true;
}
return false;
}
// the vvvvwck function
function vvvvwck(protocol_vvvvwck,authentication_vvvvwck)
{
if (isSet(protocol_vvvvwck) && protocol_vvvvwck.constructor !==
Array)
{
var temp_vvvvwck = protocol_vvvvwck;
var protocol_vvvvwck = [];
protocol_vvvvwck.push(temp_vvvvwck);
}
else if (!isSet(protocol_vvvvwck))
{
var protocol_vvvvwck = [];
}
var protocol = protocol_vvvvwck.some(protocol_vvvvwck_SomeFunc);
if (isSet(authentication_vvvvwck) &&
authentication_vvvvwck.constructor !== Array)
{
var temp_vvvvwck = authentication_vvvvwck;
var authentication_vvvvwck = [];
authentication_vvvvwck.push(temp_vvvvwck);
}
else if (!isSet(authentication_vvvvwck))
{
var authentication_vvvvwck = [];
}
var authentication =
authentication_vvvvwck.some(authentication_vvvvwck_SomeFunc);
// set this function logic
if (protocol && authentication)
{
jQuery('#jform_private_key').closest('.control-group').show();
// add required attribute to private_key field
if (jform_vvvvwckvyb_required)
{
updateFieldRequired('private_key',0);
jQuery('#jform_private_key').prop('required','required');
jQuery('#jform_private_key').attr('aria-required',true);
jQuery('#jform_private_key').addClass('required');
jform_vvvvwckvyb_required = false;
}
}
else
{
jQuery('#jform_private_key').closest('.control-group').hide();
// remove required attribute from private_key field
if (!jform_vvvvwckvyb_required)
{
updateFieldRequired('private_key',1);
jQuery('#jform_private_key').removeAttr('required');
jQuery('#jform_private_key').removeAttr('aria-required');
jQuery('#jform_private_key').removeClass('required');
jform_vvvvwckvyb_required = true;
}
}
}
// the vvvvwck Some function
function protocol_vvvvwck_SomeFunc(protocol_vvvvwck)
{
// set the function logic
if (protocol_vvvvwck == 2)
{
return true;
}
return false;
}
// the vvvvwck Some function
function authentication_vvvvwck_SomeFunc(authentication_vvvvwck)
{
// set the function logic
if (authentication_vvvvwck == 4 || authentication_vvvvwck == 5)
{
return true;
}
return false;
}
// the vvvvwcm function
function vvvvwcm(protocol_vvvvwcm,authentication_vvvvwcm)
{
if (isSet(protocol_vvvvwcm) && protocol_vvvvwcm.constructor !==
Array)
{
var temp_vvvvwcm = protocol_vvvvwcm;
var protocol_vvvvwcm = [];
protocol_vvvvwcm.push(temp_vvvvwcm);
}
else if (!isSet(protocol_vvvvwcm))
{
var protocol_vvvvwcm = [];
}
var protocol = protocol_vvvvwcm.some(protocol_vvvvwcm_SomeFunc);
if (isSet(authentication_vvvvwcm) &&
authentication_vvvvwcm.constructor !== Array)
{
var temp_vvvvwcm = authentication_vvvvwcm;
var authentication_vvvvwcm = [];
authentication_vvvvwcm.push(temp_vvvvwcm);
}
else if (!isSet(authentication_vvvvwcm))
{
var authentication_vvvvwcm = [];
}
var authentication =
authentication_vvvvwcm.some(authentication_vvvvwcm_SomeFunc);
// set this function logic
if (protocol && authentication)
{
jQuery('#jform_secret').closest('.control-group').show();
}
else
{
jQuery('#jform_secret').closest('.control-group').hide();
}
}
// the vvvvwcm Some function
function protocol_vvvvwcm_SomeFunc(protocol_vvvvwcm)
{
// set the function logic
if (protocol_vvvvwcm == 2)
{
return true;
}
return false;
}
// the vvvvwcm Some function
function authentication_vvvvwcm_SomeFunc(authentication_vvvvwcm)
{
// set the function logic
if (authentication_vvvvwcm == 2 || authentication_vvvvwcm == 3 ||
authentication_vvvvwcm == 4 || authentication_vvvvwcm == 5)
{
return true;
}
return false;
}
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (document.getElementById('jform_not_required')) {
var not_required =
jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
not_required.push(name);
}
else
{
not_required = removeFieldFromNotRequired(not_required, name);
}
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
site_view.js000064400000033206151167367510007120 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_php_view_vvvvvyt = jQuery("#jform_add_php_view
input[type='radio']:checked").val();
vvvvvyt(add_php_view_vvvvvyt);
var add_php_jview_display_vvvvvyu =
jQuery("#jform_add_php_jview_display
input[type='radio']:checked").val();
vvvvvyu(add_php_jview_display_vvvvvyu);
var add_php_jview_vvvvvyv = jQuery("#jform_add_php_jview
input[type='radio']:checked").val();
vvvvvyv(add_php_jview_vvvvvyv);
var add_php_document_vvvvvyw = jQuery("#jform_add_php_document
input[type='radio']:checked").val();
vvvvvyw(add_php_document_vvvvvyw);
var add_css_document_vvvvvyx = jQuery("#jform_add_css_document
input[type='radio']:checked").val();
vvvvvyx(add_css_document_vvvvvyx);
var add_javascript_file_vvvvvyy = jQuery("#jform_add_javascript_file
input[type='radio']:checked").val();
vvvvvyy(add_javascript_file_vvvvvyy);
var add_js_document_vvvvvyz = jQuery("#jform_add_js_document
input[type='radio']:checked").val();
vvvvvyz(add_js_document_vvvvvyz);
var add_css_vvvvvza = jQuery("#jform_add_css
input[type='radio']:checked").val();
vvvvvza(add_css_vvvvvza);
var add_php_ajax_vvvvvzb = jQuery("#jform_add_php_ajax
input[type='radio']:checked").val();
vvvvvzb(add_php_ajax_vvvvvzb);
var add_custom_button_vvvvvzc = jQuery("#jform_add_custom_button
input[type='radio']:checked").val();
vvvvvzc(add_custom_button_vvvvvzc);
var button_position_vvvvvzd =
jQuery("#jform_button_position").val();
vvvvvzd(button_position_vvvvvzd);
});
// the vvvvvyt function
function vvvvvyt(add_php_view_vvvvvyt)
{
// set the function logic
if (add_php_view_vvvvvyt == 1)
{
jQuery('#jform_php_view-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_view-lbl').closest('.control-group').hide();
}
}
// the vvvvvyu function
function vvvvvyu(add_php_jview_display_vvvvvyu)
{
// set the function logic
if (add_php_jview_display_vvvvvyu == 1)
{
jQuery('#jform_php_jview_display-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_jview_display-lbl').closest('.control-group').hide();
}
}
// the vvvvvyv function
function vvvvvyv(add_php_jview_vvvvvyv)
{
// set the function logic
if (add_php_jview_vvvvvyv == 1)
{
jQuery('#jform_php_jview-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_jview-lbl').closest('.control-group').hide();
}
}
// the vvvvvyw function
function vvvvvyw(add_php_document_vvvvvyw)
{
// set the function logic
if (add_php_document_vvvvvyw == 1)
{
jQuery('#jform_php_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvyx function
function vvvvvyx(add_css_document_vvvvvyx)
{
// set the function logic
if (add_css_document_vvvvvyx == 1)
{
jQuery('#jform_css_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvyy function
function vvvvvyy(add_javascript_file_vvvvvyy)
{
// set the function logic
if (add_javascript_file_vvvvvyy == 1)
{
jQuery('#jform_javascript_file-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_javascript_file-lbl').closest('.control-group').hide();
}
}
// the vvvvvyz function
function vvvvvyz(add_js_document_vvvvvyz)
{
// set the function logic
if (add_js_document_vvvvvyz == 1)
{
jQuery('#jform_js_document-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_js_document-lbl').closest('.control-group').hide();
}
}
// the vvvvvza function
function vvvvvza(add_css_vvvvvza)
{
// set the function logic
if (add_css_vvvvvza == 1)
{
jQuery('#jform_css-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_css-lbl').closest('.control-group').hide();
}
}
// the vvvvvzb function
function vvvvvzb(add_php_ajax_vvvvvzb)
{
// set the function logic
if (add_php_ajax_vvvvvzb == 1)
{
jQuery('#jform_ajax_input-lbl').closest('.control-group').show();
jQuery('#jform_php_ajaxmethod-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_ajax_input-lbl').closest('.control-group').hide();
jQuery('#jform_php_ajaxmethod-lbl').closest('.control-group').hide();
}
}
// the vvvvvzc function
function vvvvvzc(add_custom_button_vvvvvzc)
{
// set the function logic
if (add_custom_button_vvvvvzc == 1)
{
jQuery('#jform_custom_button-lbl').closest('.control-group').show();
jQuery('#jform_php_controller-lbl').closest('.control-group').show();
jQuery('#jform_php_model-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_custom_button-lbl').closest('.control-group').hide();
jQuery('#jform_php_controller-lbl').closest('.control-group').hide();
jQuery('#jform_php_model-lbl').closest('.control-group').hide();
}
}
// the vvvvvzd function
function vvvvvzd(button_position_vvvvvzd)
{
if (isSet(button_position_vvvvvzd) &&
button_position_vvvvvzd.constructor !== Array)
{
var temp_vvvvvzd = button_position_vvvvvzd;
var button_position_vvvvvzd = [];
button_position_vvvvvzd.push(temp_vvvvvzd);
}
else if (!isSet(button_position_vvvvvzd))
{
var button_position_vvvvvzd = [];
}
var button_position =
button_position_vvvvvzd.some(button_position_vvvvvzd_SomeFunc);
// set this function logic
if (button_position)
{
jQuery('.note_custom_toolbar_placeholder').closest('.control-group').show();
}
else
{
jQuery('.note_custom_toolbar_placeholder').closest('.control-group').hide();
}
}
// the vvvvvzd Some function
function button_position_vvvvvzd_SomeFunc(button_position_vvvvvzd)
{
// set the function logic
if (button_position_vvvvvzd == 5)
{
return true;
}
return false;
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function()
{
// get the linked details
getLinked();
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
function getSnippetDetails(id){
getCodeFrom_server(id, '_type', '_type',
'snippetDetails').then(function(result) {
if(result.snippet){
var description = '';
if (result.description.length > 0) {
description =
'<p>'+result.description+'</p>';
}
var library = '';
if (result.library.length > 0) {
library = '
<b>('+result.library+')</b>';
}
var code = '<div
id="snippet-code"><b>'+result.name+'
('+result.type+')</b> <a
href="'+result.url+'" target="_blank" >see
more details'+library+'</a><br
/><em>'+result.heading+'</em><br
/><textarea id="snippet" class="span12"
rows="11">'+result.snippet+'</textarea></div>';
jQuery('#snippet-code').remove();
jQuery('.snippet-code').append(code);
// make sure the code block is active
jQuery("#snippet").focus(function() {
var jQuerythis = jQuery(this);
jQuerythis.select();
// Work around Chrome's little problem
jQuerythis.mouseup(function() {
// Prevent further mouseup intervention
jQuerythis.unbind("mouseup");
return false;
});
});
}
if(result.usage){
var usage = '<div
id="snippet-usage"><p>'+result.usage+'</p></div>';
jQuery('#snippet-usage').remove();
jQuery('.snippet-usage').append(usage);
}
})
}
function getDynamicValues_server(dynamicId){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getDynamicValues&format=json");
if(token.length > 0 && dynamicId > 0){
var request = token+'=1&view=site_view&id='+dynamicId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getDynamicValues(id){
getDynamicValues_server(id).done(function(result) {
if(result){
jQuery('#dynamic_values').remove();
jQuery('.dynamic_values').append('<div
id="dynamic_values">'+result+'</div>');
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getLayoutDetails_server(id){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod);
if(token.length > 0 && id > 0){
var request = token+'=1&id='+id;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getLayoutDetails(id){
getLayoutDetails_server(id).done(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getTemplateDetails(id){
getCodeFrom_server(id, 'type', 'type',
'templateDetails').then(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
// set snippets that are on the page
var snippetIds = [];
var snippets = {};
var snippet = 0;
jQuery(document).ready(function($)
{
jQuery("#jform_snippet option").each(function()
{
var key = jQuery(this).val();
var text = jQuery(this).text();
snippets[key] = text;
snippetIds.push(key);
});
snippet = jQuery("#jform_snippet").val();
getSnippets();
});
function getSnippets(){
jQuery("#loading").show();
// clear the selection
jQuery('#jform_snippet').find('option').remove().end();
jQuery('#jform_snippet').trigger('liszt:updated');
// get libraries value if set
var libraries = jQuery("#jform_libraries").val();
if (libraries) {
getCodeFrom_server(1, JSON.stringify(libraries), 'libraries',
'getSnippets').then(function(result) {
setSnippets(result);
jQuery("#loading").hide();
if (typeof snippetButton !== 'undefined') {
// ensure button is correct
var snippet = jQuery('#jform_snippet').val();
snippetButton(snippet);
}
});
}
else
{
// load all snippets in none is selected
setSnippets(snippetIds);
jQuery("#loading").hide();
}
}
function setSnippets(array){
if (array) {
jQuery('#jform_snippet').append('<option
value="">'+select_a_snippet+'</option>');
jQuery.each( array, function( i, id ) {
if (id in snippets) {
jQuery('#jform_snippet').append('<option
value="'+id+'">'+snippets[id]+'</option>');
}
if (id == snippet) {
jQuery('#jform_snippet').val(id);
}
});
} else {
jQuery('#jform_snippet').append('<option
value="">'+create_a_snippet+'</option>');
}
jQuery('#jform_snippet').trigger('liszt:updated');
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
snippet.js000064400000000606151167367510006602 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
snippet_type.js000064400000000606151167367510007643 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
strtotime.js000064400000021226151167367510007153 0ustar00function strtotime
(text, now) {
// discuss at: http://locutus.io/php/strtotime/
// original by: Caio Ariede (http://caioariede.com)
// improved by: Kevin van Zonneveld (http://kvz.io)
// improved by: Caio Ariede (http://caioariede.com)
// improved by: A. Matías Quezada (http://amatiasq.com)
// improved by: preuter
// improved by: Brett Zamir (http://brett-zamir.me)
// improved by: Mirko Faber
// input by: David
// bugfixed by: Wagner B. Soares
// bugfixed by: Artur Tchernychev
// bugfixed by: Stephan Bösch-Plepelits (http://github.com/plepe)
// note 1: Examples all have a fixed timestamp to prevent
// note 1: tests to fail because of variable time(zones)
// example 1: strtotime('+1 day', 1129633200)
// returns 1: 1129719600
// example 2: strtotime('+1 week 2 days 4 hours 2 seconds',
1129633200)
// returns 2: 1130425202
// example 3: strtotime('last month', 1129633200)
// returns 3: 1127041200
// example 4: strtotime('2009-05-04 08:30:00 GMT')
// returns 4: 1241425800
// example 5: strtotime('2009-05-04 08:30:00+00')
// returns 5: 1241425800
// example 6: strtotime('2009-05-04 08:30:00+02:00')
// returns 6: 1241418600
// example 7: strtotime('2009-05-04T08:30:00Z')
// returns 7: 1241425800
var parsed
var match
var today
var year
var date
var days
var ranges
var len
var times
var regex
var i
var fail = false
if (!text) {
return fail
}
// Unecessary spaces
text = text.replace(/^\s+|\s+$/g, '')
.replace(/\s{2,}/g, ' ')
.replace(/[\t\r\n]/g, '')
.toLowerCase()
// in contrast to php, js Date.parse function interprets:
// dates given as yyyy-mm-dd as in timezone: UTC,
// dates with "." or "-" as MDY instead of DMY
// dates with two-digit years differently
// etc...etc...
// ...therefore we manually parse lots of common date formats
var pattern = new RegExp([
'^(\\d{1,4})',
'([\\-\\.\\/:])',
'(\\d{1,2})',
'([\\-\\.\\/:])',
'(\\d{1,4})',
'(?:\\s(\\d{1,2}):(\\d{2})?:?(\\d{2})?)?',
'(?:\\s([A-Z]+)?)?$'
].join(''))
match = text.match(pattern)
if (match && match[2] === match[4]) {
if (match[1] > 1901) {
switch (match[2]) {
case '-':
// YYYY-M-D
if (match[3] > 12 || match[5] > 31) {
return fail
}
return new Date(match[1], parseInt(match[3], 10) - 1, match[5],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
case '.':
// YYYY.M.D is not parsed by strtotime()
return fail
case '/':
// YYYY/M/D
if (match[3] > 12 || match[5] > 31) {
return fail
}
return new Date(match[1], parseInt(match[3], 10) - 1, match[5],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
}
} else if (match[5] > 1901) {
switch (match[2]) {
case '-':
// D-M-YYYY
if (match[3] > 12 || match[1] > 31) {
return fail
}
return new Date(match[5], parseInt(match[3], 10) - 1, match[1],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
case '.':
// D.M.YYYY
if (match[3] > 12 || match[1] > 31) {
return fail
}
return new Date(match[5], parseInt(match[3], 10) - 1, match[1],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
case '/':
// M/D/YYYY
if (match[1] > 12 || match[3] > 31) {
return fail
}
return new Date(match[5], parseInt(match[1], 10) - 1, match[3],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
}
} else {
switch (match[2]) {
case '-':
// YY-M-D
if (match[3] > 12 || match[5] > 31 || (match[1] < 70
&& match[1] > 38)) {
return fail
}
year = match[1] >= 0 && match[1] <= 38 ? +match[1]
+ 2000 : match[1]
return new Date(year, parseInt(match[3], 10) - 1, match[5],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
case '.':
// D.M.YY or H.MM.SS
if (match[5] >= 70) {
// D.M.YY
if (match[3] > 12 || match[1] > 31) {
return fail
}
return new Date(match[5], parseInt(match[3], 10) - 1, match[1],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
}
if (match[5] < 60 && !match[6]) {
// H.MM.SS
if (match[1] > 23 || match[3] > 59) {
return fail
}
today = new Date()
return new Date(today.getFullYear(), today.getMonth(),
today.getDate(),
match[1] || 0, match[3] || 0, match[5] || 0, match[9] || 0) /
1000
}
// invalid format, cannot be parsed
return fail
case '/':
// M/D/YY
if (match[1] > 12 || match[3] > 31 || (match[5] < 70
&& match[5] > 38)) {
return fail
}
year = match[5] >= 0 && match[5] <= 38 ? +match[5]
+ 2000 : match[5]
return new Date(year, parseInt(match[1], 10) - 1, match[3],
match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) /
1000
case ':':
// HH:MM:SS
if (match[1] > 23 || match[3] > 59 || match[5] > 59) {
return fail
}
today = new Date()
return new Date(today.getFullYear(), today.getMonth(),
today.getDate(),
match[1] || 0, match[3] || 0, match[5] || 0) / 1000
}
}
}
// other formats and "now" should be parsed by Date.parse()
if (text === 'now') {
return now === null || isNaN(now)
? new Date().getTime() / 1000 | 0
: now | 0
}
if (!isNaN(parsed = Date.parse(text))) {
return parsed / 1000 | 0
}
// Browsers !== Chrome have problems parsing ISO 8601 date strings, as
they do
// not accept lower case characters, space, or shortened time zones.
// Therefore, fix these problems and try again.
// Examples:
// 2015-04-15 20:33:59+02
// 2015-04-15 20:33:59z
// 2015-04-15t20:33:59+02:00
pattern = new RegExp([
'^([0-9]{4}-[0-9]{2}-[0-9]{2})',
'[ t]',
'([0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?)',
'([\\+-][0-9]{2}(:[0-9]{2})?|z)'
].join(''))
match = text.match(pattern)
if (match) {
// @todo: time zone information
if (match[4] === 'z') {
match[4] = 'Z'
} else if (match[4].match(/^([+-][0-9]{2})$/)) {
match[4] = match[4] + ':00'
}
if (!isNaN(parsed = Date.parse(match[1] + 'T' + match[2] +
match[4]))) {
return parsed / 1000 | 0
}
}
date = now ? new Date(now * 1000) : new Date()
days = {
'sun': 0,
'mon': 1,
'tue': 2,
'wed': 3,
'thu': 4,
'fri': 5,
'sat': 6
}
ranges = {
'yea': 'FullYear',
'mon': 'Month',
'day': 'Date',
'hou': 'Hours',
'min': 'Minutes',
'sec': 'Seconds'
}
function lastNext (type, range, modifier) {
var diff
var day = days[range]
if (typeof day !== 'undefined') {
diff = day - date.getDay()
if (diff === 0) {
diff = 7 * modifier
} else if (diff > 0 && type === 'last') {
diff -= 7
} else if (diff < 0 && type === 'next') {
diff += 7
}
date.setDate(date.getDate() + diff)
}
}
function process (val) {
// @todo: Reconcile this with regex using \s, taking into account
// browser issues with split and regexes
var splt = val.split(' ')
var type = splt[0]
var range = splt[1].substring(0, 3)
var typeIsNumber = /\d+/.test(type)
var ago = splt[2] === 'ago'
var num = (type === 'last' ? -1 : 1) * (ago ? -1 : 1)
if (typeIsNumber) {
num *= parseInt(type, 10)
}
if (ranges.hasOwnProperty(range) &&
!splt[1].match(/^mon(day|\.)?$/i)) {
return date['set' + ranges[range]](date['get' +
ranges[range]]() + num)
}
if (range === 'wee') {
return date.setDate(date.getDate() + (num * 7))
}
if (type === 'next' || type === 'last') {
lastNext(type, range, num)
} else if (!typeIsNumber) {
return false
}
return true
}
times =
'(years?|months?|weeks?|days?|hours?|minutes?|min|seconds?|sec' +
'|sunday|sun\\.?|monday|mon\\.?|tuesday|tue\\.?|wednesday|wed\\.?'
+
'|thursday|thu\\.?|friday|fri\\.?|saturday|sat\\.?)'
regex = '([+-]?\\d+\\s' + times + '|' +
'(last|next)\\s' + times + ')(\\sago)?'
match = text.match(new RegExp(regex, 'gi'))
if (!match) {
return fail
}
for (i = 0, len = match.length; i < len; i++) {
if (!process(match[i])) {
return fail
}
}
return (date.getTime() / 1000)
}
template.js000064400000020324151167367510006732 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_php_view_vvvvvze = jQuery("#jform_add_php_view
input[type='radio']:checked").val();
vvvvvze(add_php_view_vvvvvze);
});
// the vvvvvze function
function vvvvvze(add_php_view_vvvvvze)
{
// set the function logic
if (add_php_view_vvvvvze == 1)
{
jQuery('#jform_php_view-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_php_view-lbl').closest('.control-group').hide();
}
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
jQuery(document).ready(function($)
{
// check and load all the custom code edit buttons
getEditCustomCodeButtons();
});
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
function getSnippetDetails(id){
getCodeFrom_server(id, '_type', '_type',
'snippetDetails').then(function(result) {
if(result.snippet){
var description = '';
if (result.description.length > 0) {
description =
'<p>'+result.description+'</p>';
}
var library = '';
if (result.library.length > 0) {
library = '
<b>('+result.library+')</b>';
}
var code = '<div
id="snippet-code"><b>'+result.name+'
('+result.type+')</b> <a
href="'+result.url+'" target="_blank" >see
more details'+library+'</a><br
/><em>'+result.heading+'</em><br
/><textarea id="snippet" class="span12"
rows="11">'+result.snippet+'</textarea></div>';
jQuery('#snippet-code').remove();
jQuery('.snippet-code').append(code);
// make sure the code block is active
jQuery("#snippet").focus(function() {
var jQuerythis = jQuery(this);
jQuerythis.select();
// Work around Chrome's little problem
jQuerythis.mouseup(function() {
// Prevent further mouseup intervention
jQuerythis.unbind("mouseup");
return false;
});
});
}
if(result.usage){
var usage = '<div
id="snippet-usage"><p>'+result.usage+'</p></div>';
jQuery('#snippet-usage').remove();
jQuery('.snippet-usage').append(usage);
}
})
}
function getDynamicValues_server(dynamicId){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getDynamicValues&format=json");
if(token.length > 0 && dynamicId > 0){
var request = token+'=1&view=template&id='+dynamicId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getDynamicValues(id){
getDynamicValues_server(id).done(function(result) {
if(result){
jQuery('#dynamic_values').remove();
jQuery('.dynamic_values').append('<div
id="dynamic_values">'+result+'</div>');
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getLayoutDetails_server(id){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod);
if(token.length > 0 && id > 0){
var request = token+'=1&id='+id;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getLayoutDetails(id){
getLayoutDetails_server(id).done(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getTemplateDetails(id){
getCodeFrom_server(id, 'type', 'type',
'templateDetails').then(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
// set snippets that are on the page
var snippetIds = [];
var snippets = {};
var snippet = 0;
jQuery(document).ready(function($)
{
jQuery("#jform_snippet option").each(function()
{
var key = jQuery(this).val();
var text = jQuery(this).text();
snippets[key] = text;
snippetIds.push(key);
});
snippet = jQuery("#jform_snippet").val();
getSnippets();
});
function getSnippets(){
jQuery("#loading").show();
// clear the selection
jQuery('#jform_snippet').find('option').remove().end();
jQuery('#jform_snippet').trigger('liszt:updated');
// get libraries value if set
var libraries = jQuery("#jform_libraries").val();
if (libraries) {
getCodeFrom_server(1, JSON.stringify(libraries), 'libraries',
'getSnippets').then(function(result) {
setSnippets(result);
jQuery("#loading").hide();
if (typeof snippetButton !== 'undefined') {
// ensure button is correct
var snippet = jQuery('#jform_snippet').val();
snippetButton(snippet);
}
});
}
else
{
// load all snippets in none is selected
setSnippets(snippetIds);
jQuery("#loading").hide();
}
}
function setSnippets(array){
if (array) {
jQuery('#jform_snippet').append('<option
value="">'+select_a_snippet+'</option>');
jQuery.each( array, function( i, id ) {
if (id in snippets) {
jQuery('#jform_snippet').append('<option
value="'+id+'">'+snippets[id]+'</option>');
}
if (id == snippet) {
jQuery('#jform_snippet').val(id);
}
});
} else {
jQuery('#jform_snippet').append('<option
value="">'+create_a_snippet+'</option>');
}
jQuery('#jform_snippet').trigger('liszt:updated');
}
timeago.js000064400000016347151167367510006556 0ustar00/**
* Timeago is a jQuery plugin that makes it easy to support automatically
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about
1 day ago").
*
* @name timeago
* @version 1.5.4
* @requires jQuery v1.2.3+
* @author Ryan McGeary
* @license MIT License -
http://www.opensource.org/licenses/mit-license.php
*
* For usage and examples, visit:
* http://timeago.yarp.com/
*
* Copyright (c) 2008-2017, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof module === 'object' && typeof
module.exports === 'object') {
factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
$.timeago = function(timestamp) {
if (timestamp instanceof Date) {
return inWords(timestamp);
} else if (typeof timestamp === "string") {
return inWords($.timeago.parse(timestamp));
} else if (typeof timestamp === "number") {
return inWords(new Date(timestamp));
} else {
return inWords($.timeago.datetime(timestamp));
}
};
var $t = $.timeago;
$.extend($.timeago, {
settings: {
refreshMillis: 60000,
allowPast: true,
allowFuture: false,
localeTitle: false,
cutoff: 0,
autoDispose: true,
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: "ago",
suffixFromNow: "from now",
inPast: 'any moment now',
seconds: "less than a minute",
minute: "about a minute",
minutes: "%d minutes",
hour: "about an hour",
hours: "about %d hours",
day: "a day",
days: "%d days",
month: "about a month",
months: "%d months",
year: "about a year",
years: "%d years",
wordSeparator: " ",
numbers: []
}
},
inWords: function(distanceMillis) {
if (!this.settings.allowPast && ! this.settings.allowFuture)
{
throw 'timeago allowPast and allowFuture settings can not
both be set to false.';
}
var $l = this.settings.strings;
var prefix = $l.prefixAgo;
var suffix = $l.suffixAgo;
if (this.settings.allowFuture) {
if (distanceMillis < 0) {
prefix = $l.prefixFromNow;
suffix = $l.suffixFromNow;
}
}
if (!this.settings.allowPast && distanceMillis >= 0) {
return this.settings.strings.inPast;
}
var seconds = Math.abs(distanceMillis) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var years = days / 365;
function substitute(stringOrFunction, number) {
var string = $.isFunction(stringOrFunction) ?
stringOrFunction(number, distanceMillis) : stringOrFunction;
var value = ($l.numbers && $l.numbers[number]) || number;
return string.replace(/%d/i, value);
}
var words = seconds < 45 && substitute($l.seconds,
Math.round(seconds)) ||
seconds < 90 && substitute($l.minute, 1) ||
minutes < 45 && substitute($l.minutes,
Math.round(minutes)) ||
minutes < 90 && substitute($l.hour, 1) ||
hours < 24 && substitute($l.hours, Math.round(hours)) ||
hours < 42 && substitute($l.day, 1) ||
days < 30 && substitute($l.days, Math.round(days)) ||
days < 45 && substitute($l.month, 1) ||
days < 365 && substitute($l.months, Math.round(days /
30)) ||
years < 1.5 && substitute($l.year, 1) ||
substitute($l.years, Math.round(years));
var separator = $l.wordSeparator || "";
if ($l.wordSeparator === undefined) { separator = " "; }
return $.trim([prefix, words, suffix].join(separator));
},
parse: function(iso8601) {
var s = $.trim(iso8601);
s = s.replace(/\.\d+/,""); // remove milliseconds
s = s.replace(/-/,"/").replace(/-/,"/");
s = s.replace(/T/," ").replace(/Z/," UTC");
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00
-> -0400
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
return new Date(s);
},
datetime: function(elem) {
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") :
$(elem).attr("title");
return $t.parse(iso8601);
},
isTime: function(elem) {
// jQuery's `is()` doesn't play well with HTML5 in IE
return $(elem).get(0).tagName.toLowerCase() === "time"; //
$(elem).is("time");
}
});
// functions that can be called via $(el).timeago('action')
// init is default when no action is given
// functions are called with context of a single element
var functions = {
init: function() {
functions.dispose.call(this);
var refresh_el = $.proxy(refresh, this);
refresh_el();
var $s = $t.settings;
if ($s.refreshMillis > 0) {
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
}
},
update: function(timestamp) {
var date = (timestamp instanceof Date) ? timestamp :
$t.parse(timestamp);
$(this).data('timeago', { datetime: date });
if ($t.settings.localeTitle) {
$(this).attr("title", date.toLocaleString());
}
refresh.apply(this);
},
updateFromDOM: function() {
$(this).data('timeago', { datetime: $t.parse(
$t.isTime(this) ? $(this).attr("datetime") :
$(this).attr("title") ) });
refresh.apply(this);
},
dispose: function () {
if (this._timeagoInterval) {
window.clearInterval(this._timeagoInterval);
this._timeagoInterval = null;
}
}
};
$.fn.timeago = function(action, options) {
var fn = action ? functions[action] : functions.init;
if (!fn) {
throw new Error("Unknown function name '"+ action
+"' for timeago");
}
// each over objects here and call the requested function
this.each(function() {
fn.call(this, options);
});
return this;
};
function refresh() {
var $s = $t.settings;
//check if it's still visible
if ($s.autoDispose &&
!$.contains(document.documentElement,this)) {
//stop if it has been removed
$(this).timeago("dispose");
return this;
}
var data = prepareData(this);
if (!isNaN(data.datetime)) {
if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) <
$s.cutoff) {
$(this).text(inWords(data.datetime));
} else {
if ($(this).attr('title').length > 0) {
$(this).text($(this).attr('title'));
}
}
}
return this;
}
function prepareData(element) {
element = $(element);
if (!element.data("timeago")) {
element.data("timeago", { datetime: $t.datetime(element)
});
var text = $.trim(element.text());
if ($t.settings.localeTitle) {
element.attr("title",
element.data('timeago').datetime.toLocaleString());
} else if (text.length > 0 && !($t.isTime(element)
&& element.attr("title"))) {
element.attr("title", text);
}
}
return element.data("timeago");
}
function inWords(date) {
return $t.inWords(distance(date));
}
function distance(date) {
return (new Date().getTime() - date.getTime());
}
// fix for IE6 suckage
document.createElement("abbr");
document.createElement("time");
}));
validation_rule.js000064400000011745151167367510010307 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
jQuery(document).ready(function()
{
// get the rule name
var ruleName = jQuery('#jform_name').val();
// check if this rule name is taken
checkRuleName(ruleName);
// get type value
var rulefilename = jQuery("#jform_inherit
option:selected").val();
if(jQuery('#jform_php').length == 0) {
getExistingValidationRuleCode(rulefilename);
}
// load the used in div
// jQuery('#usedin').show();
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function getExistingValidationRuleCode_server(rulefilename){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getExistingValidationRuleCode&format=json&raw=true");
if(token.length > 0 && rulefilename.length > 0){
var request = token+'=1&name='+rulefilename;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getExistingValidationRuleCode(rulefilename,setValue){
getExistingValidationRuleCode_server(rulefilename).done(function(result)
{
if(result.values){
jQuery('textarea#jform_php').val(result.values);
}
})
}
function checkRuleName(ruleName) {
if (ruleName.length > 2) {
var ide = jQuery('#jform_id').val();
if (ide == 0) {
ide = -1;
}
checkRuleName_server(ruleName, ide).done(function(result) {
if(result.name && result.message){
// show notice that functioName is okay
jQuery.UIkit.notify({message: result.message, timeout: result.timeout,
status: result.status, pos: 'top-right'});
jQuery('#jform_name').val(result.name);
// now start search for where the function is used
usedin(result.name, ide);
} else if(result.message){
// show notice that ruleName is not okay
jQuery.UIkit.notify({message: result.message, timeout: result.timeout,
status: result.status, pos: 'top-right'});
jQuery('#jform_name').val('');
} else {
// set an error that message was not send
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_VALIDATION_RULE_NAME_ALREADY_TAKEN_PLEASE_TRY_AGAIN'),
timeout: 7000, status: 'danger', pos: 'top-right'});
jQuery('#jform_name').val('');
}
});
} else {
// set an error that message was not send
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_YOU_MUST_ADD_AN_UNIQUE_VALIDATION_RULE_NAME'),
timeout: 5000, status: 'danger', pos: 'top-right'});
jQuery('#jform_name').val('');
}
}
// check Function Name
function checkRuleName_server(ruleName, ide){
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.checkRuleName&format=json&raw=true");
if(token.length > 0){
var request =
token+'=1&name='+ruleName+'&id='+ide;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'json',
data: request,
jsonp: false
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
admin/export.js000064400000003425151167411240007521
0ustar00jQuery.noConflict();
var RSMembership = {}
RSMembership.$ = jQuery;
RSMembership.exportCSV = {
totalItems : 0,
view : '',
setProgress: function (current) {
if (RSMembership.$('#com-rsmembership-joomla-configuration-progress
.com-rsmembership-bar').length > 0) {
var currentProgress = (current * 100) / this.totalItems;
RSMembership.$('#com-rsmembership-joomla-configuration-progress
.com-rsmembership-bar').css('width', currentProgress +
'%').text(parseInt(currentProgress) + '%');
}
},
setCSV : function(from, fileHash) {
if (this.totalItems > 0 && from == this.totalItems) {
RSMembership.$('#com-rsmembership-joomla-configuration-progress').hide();
window.location.assign('index.php?option=com_rsmembership&task='+this.view+'.exportcsv&filehash='+fileHash);
}
else
{
RSMembership.$.ajax({
dataType: 'json',
type: 'POST',
url: 'index.php',
data: {
option: 'com_rsmembership',
task: this.view+'.writecsv',
start: from,
filehash: fileHash
},
beforeSend: function() {
RSMembership.$('#j-main-container').find('.alert').remove();
RSMembership.$('#com-rsmembership-joomla-configuration-progress').show();
},
success: function(data) {
if (data.success == true) {
from = data.response.newFrom;
fileHash = data.response.fileHash;
RSMembership.exportCSV.setProgress(from);
setTimeout(function(){
RSMembership.exportCSV.setCSV(from,fileHash);
},700);
} else {
RSMembership.$('#com-rsmembership-joomla-configuration-progress').hide();
RSMembership.$('#j-main-container').prepend(RSMembership.$('<div
class="alert
alert-error"></div>').text(data.response));
}
}
});
}
}
}
admin/index.html000064400000000054151167411240007632
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>admin/ordertable.js000064400000000560151167411240010320
0ustar00Joomla.orderTable = function(listOrder) {
table = document.getElementById("sortTable");
direction = document.getElementById("directionTable");
order = table.options[table.selectedIndex].value;
if (order != listOrder) {
dirn = 'asc';
} else {
dirn = direction.options[direction.selectedIndex].value;
}
Joomla.tableOrdering(order, dirn, '');
}admin/script.js000064400000000565151167411240007506 0ustar00// XML HTTP
Object
function rsmembership_get_xml_http_object()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}admin/ui/core.js000064400000020506151167411240007544 0ustar00/*!
* jQuery UI Core 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/category/ui-core/
*/
(function( $, undefined ) {
var uuid = 0,
runiqueId = /^ui-id-\d+$/;
// $.ui might exist from components with no dependencies, e.g.,
$.ui.position
$.ui = $.ui || {};
$.extend( $.ui, {
version: "1.10.3",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
});
// plugins
$.fn.extend({
focus: (function( orig ) {
return function( delay, fn ) {
return typeof delay === "number" ?
this.each(function() {
var elem = this;
setTimeout(function() {
$( elem ).focus();
if ( fn ) {
fn.call( elem );
}
}, delay );
}) :
orig.apply( this, arguments );
};
})( $.fn.focus ),
scrollParent: function() {
var scrollParent;
if (($.ui.ie &&
(/(static|relative)/).test(this.css("position"))) ||
(/absolute/).test(this.css("position"))) {
scrollParent = this.parents().filter(function() {
return
(/(relative|absolute|fixed)/).test($.css(this,"position"))
&&
(/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
}).eq(0);
} else {
scrollParent = this.parents().filter(function() {
return
(/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
}).eq(0);
}
return (/fixed/).test(this.css("position")) ||
!scrollParent.length ? $(document) : scrollParent;
},
zIndex: function( zIndex ) {
if ( zIndex !== undefined ) {
return this.css( "zIndex", zIndex );
}
if ( this.length ) {
var elem = $( this[ 0 ] ), position, value;
while ( elem.length && elem[ 0 ] !== document ) {
// Ignore z-index if position is set to a value where z-index is
ignored by the browser
// This makes behavior of this function consistent across browsers
// WebKit always returns auto if the element is positioned
position = elem.css( "position" );
if ( position === "absolute" || position ===
"relative" || position === "fixed" ) {
// IE returns 0 when zIndex is not specified
// other browsers return a string
// we ignore the case of nested elements with an explicit value of 0
// <div style="z-index: -10;"><div
style="z-index: 0;"></div></div>
value = parseInt( elem.css( "zIndex" ), 10 );
if ( !isNaN( value ) && value !== 0 ) {
return value;
}
}
elem = elem.parent();
}
}
return 0;
},
uniqueId: function() {
return this.each(function() {
if ( !this.id ) {
this.id = "ui-id-" + (++uuid);
}
});
},
removeUniqueId: function() {
return this.each(function() {
if ( runiqueId.test( this.id ) ) {
$( this ).removeAttr( "id" );
}
});
}
});
// selectors
function focusable( element, isTabIndexNotNaN ) {
var map, mapName, img,
nodeName = element.nodeName.toLowerCase();
if ( "area" === nodeName ) {
map = element.parentNode;
mapName = map.name;
if ( !element.href || !mapName || map.nodeName.toLowerCase() !==
"map" ) {
return false;
}
img = $( "img[usemap=#" + mapName + "]" )[0];
return !!img && visible( img );
}
return ( /input|select|textarea|button|object/.test( nodeName ) ?
!element.disabled :
"a" === nodeName ?
element.href || isTabIndexNotNaN :
isTabIndexNotNaN) &&
// the element and all of its ancestors must be visible
visible( element );
}
function visible( element ) {
return $.expr.filters.visible( element ) &&
!$( element ).parents().addBack().filter(function() {
return $.css( this, "visibility" ) === "hidden";
}).length;
}
$.extend( $.expr[ ":" ], {
data: $.expr.createPseudo ?
$.expr.createPseudo(function( dataName ) {
return function( elem ) {
return !!$.data( elem, dataName );
};
}) :
// support: jQuery <1.8
function( elem, i, match ) {
return !!$.data( elem, match[ 3 ] );
},
focusable: function( element ) {
return focusable( element, !isNaN( $.attr( element, "tabindex"
) ) );
},
tabbable: function( element ) {
var tabIndex = $.attr( element, "tabindex" ),
isTabIndexNaN = isNaN( tabIndex );
return ( isTabIndexNaN || tabIndex >= 0 ) && focusable(
element, !isTabIndexNaN );
}
});
// support: jQuery <1.8
if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
$.each( [ "Width", "Height" ], function( i, name ) {
var side = name === "Width" ? [ "Left",
"Right" ] : [ "Top", "Bottom" ],
type = name.toLowerCase(),
orig = {
innerWidth: $.fn.innerWidth,
innerHeight: $.fn.innerHeight,
outerWidth: $.fn.outerWidth,
outerHeight: $.fn.outerHeight
};
function reduce( elem, size, border, margin ) {
$.each( side, function() {
size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
if ( border ) {
size -= parseFloat( $.css( elem, "border" + this +
"Width" ) ) || 0;
}
if ( margin ) {
size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
}
});
return size;
}
$.fn[ "inner" + name ] = function( size ) {
if ( size === undefined ) {
return orig[ "inner" + name ].call( this );
}
return this.each(function() {
$( this ).css( type, reduce( this, size ) + "px" );
});
};
$.fn[ "outer" + name] = function( size, margin ) {
if ( typeof size !== "number" ) {
return orig[ "outer" + name ].call( this, size );
}
return this.each(function() {
$( this).css( type, reduce( this, size, true, margin ) + "px"
);
});
};
});
}
// support: jQuery <1.8
if ( !$.fn.addBack ) {
$.fn.addBack = function( selector ) {
return this.add( selector == null ?
this.prevObject : this.prevObject.filter( selector )
);
};
}
// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
if ( $( "<a>" ).data( "a-b", "a"
).removeData( "a-b" ).data( "a-b" ) ) {
$.fn.removeData = (function( removeData ) {
return function( key ) {
if ( arguments.length ) {
return removeData.call( this, $.camelCase( key ) );
} else {
return removeData.call( this );
}
};
})( $.fn.removeData );
}
// deprecated
$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
$.support.selectstart = "onselectstart" in
document.createElement( "div" );
$.fn.extend({
disableSelection: function() {
return this.bind( ( $.support.selectstart ? "selectstart" :
"mousedown" ) +
".ui-disableSelection", function( event ) {
event.preventDefault();
});
},
enableSelection: function() {
return this.unbind( ".ui-disableSelection" );
}
});
$.extend( $.ui, {
// $.ui.plugin is deprecated. Use $.widget() extensions instead.
plugin: {
add: function( module, option, set ) {
var i,
proto = $.ui[ module ].prototype;
for ( i in set ) {
proto.plugins[ i ] = proto.plugins[ i ] || [];
proto.plugins[ i ].push( [ option, set[ i ] ] );
}
},
call: function( instance, name, args ) {
var i,
set = instance.plugins[ name ];
if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0
].parentNode.nodeType === 11 ) {
return;
}
for ( i = 0; i < set.length; i++ ) {
if ( instance.options[ set[ i ][ 0 ] ] ) {
set[ i ][ 1 ].apply( instance.element, args );
}
}
}
},
// only used by resizable
hasScroll: function( el, a ) {
//If overflow is hidden, the element might have extra content, but the
user wants to hide it
if ( $( el ).css( "overflow" ) === "hidden") {
return false;
}
var scroll = ( a && a === "left" ) ?
"scrollLeft" : "scrollTop",
has = false;
if ( el[ scroll ] > 0 ) {
return true;
}
// TODO: determine which cases actually cause this to happen
// if the element doesn't have the scroll set, see if it's
possible to
// set the scroll
el[ scroll ] = 1;
has = ( el[ scroll ] > 0 );
el[ scroll ] = 0;
return has;
}
});
})( jQuery );
admin/ui/datepicker.js000064400000231034151167411240010727 0ustar00/*!
* jQuery UI Datepicker 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/datepicker/
*
* Depends:
* jquery.ui.core.js
*/
(function( $, undefined ) {
$.extend($.ui, { datepicker: { version: "1.10.3" } });
var PROP_NAME = "datepicker",
instActive;
/* Date picker manager.
Use the singleton instance of this class, $.datepicker, to interact with
the date picker.
Settings for (groups of) date pickers are maintained in an instance
object,
allowing multiple different settings on the same page. */
function Datepicker() {
this._curInst = null; // The current instance in use
this._keyEvent = false; // If the last event was a key event
this._disabledInputs = []; // List of date picker inputs that have been
disabled
this._datepickerShowing = false; // True if the popup picker is showing ,
false if not
this._inDialog = false; // True if showing within a "dialog",
false if not
this._mainDivId = "ui-datepicker-div"; // The ID of the main
datepicker division
this._inlineClass = "ui-datepicker-inline"; // The name of the
inline marker class
this._appendClass = "ui-datepicker-append"; // The name of the
append marker class
this._triggerClass = "ui-datepicker-trigger"; // The name of the
trigger marker class
this._dialogClass = "ui-datepicker-dialog"; // The name of the
dialog marker class
this._disableClass = "ui-datepicker-disabled"; // The name of
the disabled covering marker class
this._unselectableClass = "ui-datepicker-unselectable"; // The
name of the unselectable cell marker class
this._currentClass = "ui-datepicker-current-day"; // The name of
the current day marker class
this._dayOverClass = "ui-datepicker-days-cell-over"; // The name
of the day hover marker class
this.regional = []; // Available regional settings, indexed by language
code
this.regional[""] = { // Default regional settings
closeText: "Done", // Display text for close link
prevText: "Prev", // Display text for previous month link
nextText: "Next", // Display text for next month link
currentText: "Today", // Display text for current month link
monthNames:
["January","February","March","April","May","June",
"July","August","September","October","November","December"],
// Names of months for drop-down and formatting
monthNamesShort: ["Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct", "Nov",
"Dec"], // For formatting
dayNames: ["Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday",
"Saturday"], // For formatting
dayNamesShort: ["Sun", "Mon", "Tue",
"Wed", "Thu", "Fri", "Sat"], // For
formatting
dayNamesMin:
["Su","Mo","Tu","We","Th","Fr","Sa"],
// Column headings for days starting at Sunday
weekHeader: "Wk", // Column header for week of the year
dateFormat: "mm/dd/yy", // See format options on parseDate
firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
isRTL: false, // True if right-to-left language, false if left-to-right
showMonthAfterYear: false, // True if the year select precedes month,
false for month then year
yearSuffix: "" // Additional text to append to the year in the
month headers
};
this._defaults = { // Global defaults for all the date picker instances
showOn: "focus", // "focus" for popup on focus,
// "button" for trigger button, or "both" for
either
showAnim: "fadeIn", // Name of jQuery animation for popup
showOptions: {}, // Options for enhanced animations
defaultDate: null, // Used when field is blank: actual date,
// +/-number for offset from today, null for today
appendText: "", // Display text following the input box, e.g.
showing the format
buttonText: "...", // Text for trigger button
buttonImage: "", // URL for trigger button image
buttonImageOnly: false, // True if the image appears alone, false if it
appears on a button
hideIfNoPrevNext: false, // True to hide next/previous month links
// if not applicable, false to just disable them
navigationAsDateFormat: false, // True if date formatting applied to
prev/today/next links
gotoCurrent: false, // True if today link goes back to current selection
instead
changeMonth: false, // True if month can be selected directly, false if
only prev/next
changeYear: false, // True if year can be selected directly, false if
only prev/next
yearRange: "c-10:c+10", // Range of years to display in
drop-down,
// either relative to today's year (-nn:+nn), relative to currently
displayed year
// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above
(nnnn:-n)
showOtherMonths: false, // True to show dates in other months, false to
leave blank
selectOtherMonths: false, // True to allow selection of dates in other
months, false for unselectable
showWeek: false, // True to show week of the year, false to not show it
calculateWeek: this.iso8601Week, // How to calculate the week of the
year,
// takes a Date and returns the number of the week for it
shortYearCutoff: "+10", // Short year values < this are in
the current century,
// > this are in the previous century,
// string value starting with "+" for current year + value
minDate: null, // The earliest selectable date, or null for no limit
maxDate: null, // The latest selectable date, or null for no limit
duration: "fast", // Duration of display/closure
beforeShowDay: null, // Function that takes a date and returns an array
with
// [0] = true if selectable, false if not, [1] = custom CSS class
name(s) or "",
// [2] = cell title (optional), e.g. $.datepicker.noWeekends
beforeShow: null, // Function that takes an input field and
// returns a set of custom settings for the date picker
onSelect: null, // Define a callback function when a date is selected
onChangeMonthYear: null, // Define a callback function when the month or
year is changed
onClose: null, // Define a callback function when the datepicker is
closed
numberOfMonths: 1, // Number of months to show at a time
showCurrentAtPos: 0, // The position in multipe months at which to show
the current month (starting at 0)
stepMonths: 1, // Number of months to step back/forward
stepBigMonths: 12, // Number of months to step back/forward for the big
links
altField: "", // Selector for an alternate field to store
selected dates into
altFormat: "", // The date format to use for the alternate
field
constrainInput: true, // The input is constrained by the current date
format
showButtonPanel: false, // True to show button panel, false to not show
it
autoSize: false, // True to size the input for the date format, false to
leave as is
disabled: false // The initial disabled state
};
$.extend(this._defaults, this.regional[""]);
this.dpDiv = bindHover($("<div id='" + this._mainDivId +
"' class='ui-datepicker ui-widget ui-widget-content
ui-helper-clearfix ui-corner-all'></div>"));
}
$.extend(Datepicker.prototype, {
/* Class name added to elements to indicate already configured with a date
picker. */
markerClassName: "hasDatepicker",
//Keep track of the maximum number of rows displayed (see #7043)
maxRows: 4,
// TODO rename to "widget" when switching to widget factory
_widgetDatepicker: function() {
return this.dpDiv;
},
/* Override the default settings for all instances of the date picker.
* @param settings object - the new settings to use as defaults
(anonymous object)
* @return the manager object
*/
setDefaults: function(settings) {
extendRemove(this._defaults, settings || {});
return this;
},
/* Attach the date picker to a jQuery selection.
* @param target element - the target input field or division or span
* @param settings object - the new settings to use for this date picker
instance (anonymous)
*/
_attachDatepicker: function(target, settings) {
var nodeName, inline, inst;
nodeName = target.nodeName.toLowerCase();
inline = (nodeName === "div" || nodeName ===
"span");
if (!target.id) {
this.uuid += 1;
target.id = "dp" + this.uuid;
}
inst = this._newInst($(target), inline);
inst.settings = $.extend({}, settings || {});
if (nodeName === "input") {
this._connectDatepicker(target, inst);
} else if (inline) {
this._inlineDatepicker(target, inst);
}
},
/* Create a new instance object. */
_newInst: function(target, inline) {
var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1");
// escape jQuery meta chars
return {id: id, input: target, // associated target
selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
drawMonth: 0, drawYear: 0, // month being drawn
inline: inline, // is datepicker inline or not
dpDiv: (!inline ? this.dpDiv : // presentation div
bindHover($("<div class='" + this._inlineClass +
" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix
ui-corner-all'></div>")))};
},
/* Attach the date picker to an input field. */
_connectDatepicker: function(target, inst) {
var input = $(target);
inst.append = $([]);
inst.trigger = $([]);
if (input.hasClass(this.markerClassName)) {
return;
}
this._attachments(input, inst);
input.addClass(this.markerClassName).keydown(this._doKeyDown).
keypress(this._doKeyPress).keyup(this._doKeyUp);
this._autoSize(inst);
$.data(target, PROP_NAME, inst);
//If disabled option is true, disable the datepicker once it has been
attached to the input (see ticket #5665)
if( inst.settings.disabled ) {
this._disableDatepicker( target );
}
},
/* Make attachments based on settings. */
_attachments: function(input, inst) {
var showOn, buttonText, buttonImage,
appendText = this._get(inst, "appendText"),
isRTL = this._get(inst, "isRTL");
if (inst.append) {
inst.append.remove();
}
if (appendText) {
inst.append = $("<span class='" + this._appendClass +
"'>" + appendText + "</span>");
input[isRTL ? "before" : "after"](inst.append);
}
input.unbind("focus", this._showDatepicker);
if (inst.trigger) {
inst.trigger.remove();
}
showOn = this._get(inst, "showOn");
if (showOn === "focus" || showOn === "both") { //
pop-up date picker when in the marked field
input.focus(this._showDatepicker);
}
if (showOn === "button" || showOn === "both") { //
pop-up date picker when button clicked
buttonText = this._get(inst, "buttonText");
buttonImage = this._get(inst, "buttonImage");
inst.trigger = $(this._get(inst, "buttonImageOnly") ?
$("<img/>").addClass(this._triggerClass).
attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
$("<button
type='button'></button>").addClass(this._triggerClass).
html(!buttonImage ? buttonText : $("<img/>").attr(
{ src:buttonImage, alt:buttonText, title:buttonText })));
input[isRTL ? "before" : "after"](inst.trigger);
inst.trigger.click(function() {
if ($.datepicker._datepickerShowing && $.datepicker._lastInput
=== input[0]) {
$.datepicker._hideDatepicker();
} else if ($.datepicker._datepickerShowing &&
$.datepicker._lastInput !== input[0]) {
$.datepicker._hideDatepicker();
$.datepicker._showDatepicker(input[0]);
} else {
$.datepicker._showDatepicker(input[0]);
}
return false;
});
}
},
/* Apply the maximum length for the date format. */
_autoSize: function(inst) {
if (this._get(inst, "autoSize") && !inst.inline) {
var findMax, max, maxI, i,
date = new Date(2009, 12 - 1, 20), // Ensure double digits
dateFormat = this._get(inst, "dateFormat");
if (dateFormat.match(/[DM]/)) {
findMax = function(names) {
max = 0;
maxI = 0;
for (i = 0; i < names.length; i++) {
if (names[i].length > max) {
max = names[i].length;
maxI = i;
}
}
return maxI;
};
date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
"monthNames" : "monthNamesShort"))));
date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
"dayNames" : "dayNamesShort"))) + 20 -
date.getDay());
}
inst.input.attr("size", this._formatDate(inst, date).length);
}
},
/* Attach an inline date picker to a div. */
_inlineDatepicker: function(target, inst) {
var divSpan = $(target);
if (divSpan.hasClass(this.markerClassName)) {
return;
}
divSpan.addClass(this.markerClassName).append(inst.dpDiv);
$.data(target, PROP_NAME, inst);
this._setDate(inst, this._getDefaultDate(inst), true);
this._updateDatepicker(inst);
this._updateAlternate(inst);
//If disabled option is true, disable the datepicker before showing it
(see ticket #5665)
if( inst.settings.disabled ) {
this._disableDatepicker( target );
}
// Set display:block in place of inst.dpDiv.show() which won't work
on disconnected elements
// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a
detached div has zero height
inst.dpDiv.css( "display", "block" );
},
/* Pop-up the date picker in a "dialog" box.
* @param input element - ignored
* @param date string or Date - the initial date to display
* @param onSelect function - the function to call when a date is
selected
* @param settings object - update the dialog date picker
instance's settings (anonymous object)
* @param pos int[2] - coordinates for the dialog's position within
the screen or
* event - with x/y coordinates or
* leave empty for default (screen centre)
* @return the manager object
*/
_dialogDatepicker: function(input, date, onSelect, settings, pos) {
var id, browserWidth, browserHeight, scrollX, scrollY,
inst = this._dialogInst; // internal instance
if (!inst) {
this.uuid += 1;
id = "dp" + this.uuid;
this._dialogInput = $("<input type='text'
id='" + id +
"' style='position: absolute; top: -100px; width:
0px;'/>");
this._dialogInput.keydown(this._doKeyDown);
$("body").append(this._dialogInput);
inst = this._dialogInst = this._newInst(this._dialogInput, false);
inst.settings = {};
$.data(this._dialogInput[0], PROP_NAME, inst);
}
extendRemove(inst.settings, settings || {});
date = (date && date.constructor === Date ?
this._formatDate(inst, date) : date);
this._dialogInput.val(date);
this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
if (!this._pos) {
browserWidth = document.documentElement.clientWidth;
browserHeight = document.documentElement.clientHeight;
scrollX = document.documentElement.scrollLeft ||
document.body.scrollLeft;
scrollY = document.documentElement.scrollTop ||
document.body.scrollTop;
this._pos = // should use actual width/height below
[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 +
scrollY];
}
// move input on screen for focus, but hidden behind dialog
this._dialogInput.css("left", (this._pos[0] + 20) +
"px").css("top", this._pos[1] + "px");
inst.settings.onSelect = onSelect;
this._inDialog = true;
this.dpDiv.addClass(this._dialogClass);
this._showDatepicker(this._dialogInput[0]);
if ($.blockUI) {
$.blockUI(this.dpDiv);
}
$.data(this._dialogInput[0], PROP_NAME, inst);
return this;
},
/* Detach a datepicker from its control.
* @param target element - the target input field or division or span
*/
_destroyDatepicker: function(target) {
var nodeName,
$target = $(target),
inst = $.data(target, PROP_NAME);
if (!$target.hasClass(this.markerClassName)) {
return;
}
nodeName = target.nodeName.toLowerCase();
$.removeData(target, PROP_NAME);
if (nodeName === "input") {
inst.append.remove();
inst.trigger.remove();
$target.removeClass(this.markerClassName).
unbind("focus", this._showDatepicker).
unbind("keydown", this._doKeyDown).
unbind("keypress", this._doKeyPress).
unbind("keyup", this._doKeyUp);
} else if (nodeName === "div" || nodeName === "span")
{
$target.removeClass(this.markerClassName).empty();
}
},
/* Enable the date picker to a jQuery selection.
* @param target element - the target input field or division or span
*/
_enableDatepicker: function(target) {
var nodeName, inline,
$target = $(target),
inst = $.data(target, PROP_NAME);
if (!$target.hasClass(this.markerClassName)) {
return;
}
nodeName = target.nodeName.toLowerCase();
if (nodeName === "input") {
target.disabled = false;
inst.trigger.filter("button").
each(function() { this.disabled = false; }).end().
filter("img").css({opacity: "1.0", cursor:
""});
} else if (nodeName === "div" || nodeName === "span")
{
inline = $target.children("." + this._inlineClass);
inline.children().removeClass("ui-state-disabled");
inline.find("select.ui-datepicker-month,
select.ui-datepicker-year").
prop("disabled", false);
}
this._disabledInputs = $.map(this._disabledInputs,
function(value) { return (value === target ? null : value); }); //
delete entry
},
/* Disable the date picker to a jQuery selection.
* @param target element - the target input field or division or span
*/
_disableDatepicker: function(target) {
var nodeName, inline,
$target = $(target),
inst = $.data(target, PROP_NAME);
if (!$target.hasClass(this.markerClassName)) {
return;
}
nodeName = target.nodeName.toLowerCase();
if (nodeName === "input") {
target.disabled = true;
inst.trigger.filter("button").
each(function() { this.disabled = true; }).end().
filter("img").css({opacity: "0.5", cursor:
"default"});
} else if (nodeName === "div" || nodeName === "span")
{
inline = $target.children("." + this._inlineClass);
inline.children().addClass("ui-state-disabled");
inline.find("select.ui-datepicker-month,
select.ui-datepicker-year").
prop("disabled", true);
}
this._disabledInputs = $.map(this._disabledInputs,
function(value) { return (value === target ? null : value); }); //
delete entry
this._disabledInputs[this._disabledInputs.length] = target;
},
/* Is the first field in a jQuery collection disabled as a datepicker?
* @param target element - the target input field or division or span
* @return boolean - true if disabled, false if enabled
*/
_isDisabledDatepicker: function(target) {
if (!target) {
return false;
}
for (var i = 0; i < this._disabledInputs.length; i++) {
if (this._disabledInputs[i] === target) {
return true;
}
}
return false;
},
/* Retrieve the instance data for the target control.
* @param target element - the target input field or division or span
* @return object - the associated instance data
* @throws error if a jQuery problem getting data
*/
_getInst: function(target) {
try {
return $.data(target, PROP_NAME);
}
catch (err) {
throw "Missing instance data for this datepicker";
}
},
/* Update or retrieve the settings for a date picker attached to an input
field or division.
* @param target element - the target input field or division or span
* @param name object - the new settings to update or
* string - the name of the setting to change or retrieve,
* when retrieving also "all" for all instance settings or
* "defaults" for all global defaults
* @param value any - the new value for the setting
* (omit if above is an object or to retrieve a value)
*/
_optionDatepicker: function(target, name, value) {
var settings, date, minDate, maxDate,
inst = this._getInst(target);
if (arguments.length === 2 && typeof name === "string")
{
return (name === "defaults" ? $.extend({},
$.datepicker._defaults) :
(inst ? (name === "all" ? $.extend({}, inst.settings) :
this._get(inst, name)) : null));
}
settings = name || {};
if (typeof name === "string") {
settings = {};
settings[name] = value;
}
if (inst) {
if (this._curInst === inst) {
this._hideDatepicker();
}
date = this._getDateDatepicker(target, true);
minDate = this._getMinMaxDate(inst, "min");
maxDate = this._getMinMaxDate(inst, "max");
extendRemove(inst.settings, settings);
// reformat the old minDate/maxDate values if dateFormat changes and a
new minDate/maxDate isn't provided
if (minDate !== null && settings.dateFormat !== undefined
&& settings.minDate === undefined) {
inst.settings.minDate = this._formatDate(inst, minDate);
}
if (maxDate !== null && settings.dateFormat !== undefined
&& settings.maxDate === undefined) {
inst.settings.maxDate = this._formatDate(inst, maxDate);
}
if ( "disabled" in settings ) {
if ( settings.disabled ) {
this._disableDatepicker(target);
} else {
this._enableDatepicker(target);
}
}
this._attachments($(target), inst);
this._autoSize(inst);
this._setDate(inst, date);
this._updateAlternate(inst);
this._updateDatepicker(inst);
}
},
// change method deprecated
_changeDatepicker: function(target, name, value) {
this._optionDatepicker(target, name, value);
},
/* Redraw the date picker attached to an input field or division.
* @param target element - the target input field or division or span
*/
_refreshDatepicker: function(target) {
var inst = this._getInst(target);
if (inst) {
this._updateDatepicker(inst);
}
},
/* Set the dates for a jQuery selection.
* @param target element - the target input field or division or span
* @param date Date - the new date
*/
_setDateDatepicker: function(target, date) {
var inst = this._getInst(target);
if (inst) {
this._setDate(inst, date);
this._updateDatepicker(inst);
this._updateAlternate(inst);
}
},
/* Get the date(s) for the first entry in a jQuery selection.
* @param target element - the target input field or division or span
* @param noDefault boolean - true if no default date is to be used
* @return Date - the current date
*/
_getDateDatepicker: function(target, noDefault) {
var inst = this._getInst(target);
if (inst && !inst.inline) {
this._setDateFromField(inst, noDefault);
}
return (inst ? this._getDate(inst) : null);
},
/* Handle keystrokes. */
_doKeyDown: function(event) {
var onSelect, dateStr, sel,
inst = $.datepicker._getInst(event.target),
handled = true,
isRTL = inst.dpDiv.is(".ui-datepicker-rtl");
inst._keyEvent = true;
if ($.datepicker._datepickerShowing) {
switch (event.keyCode) {
case 9: $.datepicker._hideDatepicker();
handled = false;
break; // hide on tab out
case 13: sel = $("td." + $.datepicker._dayOverClass +
":not(." +
$.datepicker._currentClass + ")", inst.dpDiv);
if (sel[0]) {
$.datepicker._selectDay(event.target, inst.selectedMonth,
inst.selectedYear, sel[0]);
}
onSelect = $.datepicker._get(inst, "onSelect");
if (onSelect) {
dateStr = $.datepicker._formatDate(inst);
// trigger custom callback
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr,
inst]);
} else {
$.datepicker._hideDatepicker();
}
return false; // don't submit the form
case 27: $.datepicker._hideDatepicker();
break; // hide on escape
case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-$.datepicker._get(inst, "stepBigMonths") :
-$.datepicker._get(inst, "stepMonths")), "M");
break; // previous month/year on page up/+ ctrl
case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
+$.datepicker._get(inst, "stepBigMonths") :
+$.datepicker._get(inst, "stepMonths")), "M");
break; // next month/year on page down/+ ctrl
case 35: if (event.ctrlKey || event.metaKey) {
$.datepicker._clearDate(event.target);
}
handled = event.ctrlKey || event.metaKey;
break; // clear on ctrl or command +end
case 36: if (event.ctrlKey || event.metaKey) {
$.datepicker._gotoToday(event.target);
}
handled = event.ctrlKey || event.metaKey;
break; // current on ctrl or command +home
case 37: if (event.ctrlKey || event.metaKey) {
$.datepicker._adjustDate(event.target, (isRTL ? +1 : -1),
"D");
}
handled = event.ctrlKey || event.metaKey;
// -1 day on ctrl or command +left
if (event.originalEvent.altKey) {
$.datepicker._adjustDate(event.target, (event.ctrlKey ?
-$.datepicker._get(inst, "stepBigMonths") :
-$.datepicker._get(inst, "stepMonths")), "M");
}
// next month/year on alt +left on Mac
break;
case 38: if (event.ctrlKey || event.metaKey) {
$.datepicker._adjustDate(event.target, -7, "D");
}
handled = event.ctrlKey || event.metaKey;
break; // -1 week on ctrl or command +up
case 39: if (event.ctrlKey || event.metaKey) {
$.datepicker._adjustDate(event.target, (isRTL ? -1 : +1),
"D");
}
handled = event.ctrlKey || event.metaKey;
// +1 day on ctrl or command +right
if (event.originalEvent.altKey) {
$.datepicker._adjustDate(event.target, (event.ctrlKey ?
+$.datepicker._get(inst, "stepBigMonths") :
+$.datepicker._get(inst, "stepMonths")), "M");
}
// next month/year on alt +right
break;
case 40: if (event.ctrlKey || event.metaKey) {
$.datepicker._adjustDate(event.target, +7, "D");
}
handled = event.ctrlKey || event.metaKey;
break; // +1 week on ctrl or command +down
default: handled = false;
}
} else if (event.keyCode === 36 && event.ctrlKey) { // display
the date picker on ctrl+home
$.datepicker._showDatepicker(this);
} else {
handled = false;
}
if (handled) {
event.preventDefault();
event.stopPropagation();
}
},
/* Filter entered characters - based on date format. */
_doKeyPress: function(event) {
var chars, chr,
inst = $.datepicker._getInst(event.target);
if ($.datepicker._get(inst, "constrainInput")) {
chars = $.datepicker._possibleChars($.datepicker._get(inst,
"dateFormat"));
chr = String.fromCharCode(event.charCode == null ? event.keyCode :
event.charCode);
return event.ctrlKey || event.metaKey || (chr < " " ||
!chars || chars.indexOf(chr) > -1);
}
},
/* Synchronise manual entry and field/alternate field. */
_doKeyUp: function(event) {
var date,
inst = $.datepicker._getInst(event.target);
if (inst.input.val() !== inst.lastVal) {
try {
date = $.datepicker.parseDate($.datepicker._get(inst,
"dateFormat"),
(inst.input ? inst.input.val() : null),
$.datepicker._getFormatConfig(inst));
if (date) { // only if valid
$.datepicker._setDateFromField(inst);
$.datepicker._updateAlternate(inst);
$.datepicker._updateDatepicker(inst);
}
}
catch (err) {
}
}
return true;
},
/* Pop-up the date picker for a given input field.
* If false returned from beforeShow event handler do not show.
* @param input element - the input field attached to the date picker
or
* event - if triggered by focus
*/
_showDatepicker: function(input) {
input = input.target || input;
if (input.nodeName.toLowerCase() !== "input") { // find from
button/image trigger
input = $("input", input.parentNode)[0];
}
if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput
=== input) { // already here
return;
}
var inst, beforeShow, beforeShowSettings, isFixed,
offset, showAnim, duration;
inst = $.datepicker._getInst(input);
if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
$.datepicker._curInst.dpDiv.stop(true, true);
if ( inst && $.datepicker._datepickerShowing ) {
$.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );
}
}
beforeShow = $.datepicker._get(inst, "beforeShow");
beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst])
: {};
if(beforeShowSettings === false){
return;
}
extendRemove(inst.settings, beforeShowSettings);
inst.lastVal = null;
$.datepicker._lastInput = input;
$.datepicker._setDateFromField(inst);
if ($.datepicker._inDialog) { // hide cursor
input.value = "";
}
if (!$.datepicker._pos) { // position below input
$.datepicker._pos = $.datepicker._findPos(input);
$.datepicker._pos[1] += input.offsetHeight; // add the height
}
isFixed = false;
$(input).parents().each(function() {
isFixed |= $(this).css("position") === "fixed";
return !isFixed;
});
offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
$.datepicker._pos = null;
//to avoid flashes on Firefox
inst.dpDiv.empty();
// determine sizing offscreen
inst.dpDiv.css({position: "absolute", display:
"block", top: "-1000px"});
$.datepicker._updateDatepicker(inst);
// fix width for dynamic number of date pickers
// and adjust position before showing
offset = $.datepicker._checkOffset(inst, offset, isFixed);
inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
"static" : (isFixed ? "fixed" :
"absolute")), display: "none",
left: offset.left + "px", top: offset.top + "px"});
if (!inst.inline) {
showAnim = $.datepicker._get(inst, "showAnim");
duration = $.datepicker._get(inst, "duration");
inst.dpDiv.zIndex($(input).zIndex()+100);
$.datepicker._datepickerShowing = true;
if ( $.effects && $.effects.effect[ showAnim ] ) {
inst.dpDiv.show(showAnim, $.datepicker._get(inst,
"showOptions"), duration);
} else {
inst.dpDiv[showAnim || "show"](showAnim ? duration : null);
}
if ( $.datepicker._shouldFocusInput( inst ) ) {
inst.input.focus();
}
$.datepicker._curInst = inst;
}
},
/* Generate the date picker content. */
_updateDatepicker: function(inst) {
this.maxRows = 4; //Reset the max number of rows being displayed (see
#7043)
instActive = inst; // for delegate hover events
inst.dpDiv.empty().append(this._generateHTML(inst));
this._attachHandlers(inst);
inst.dpDiv.find("." + this._dayOverClass + "
a").mouseover();
var origyearshtml,
numMonths = this._getNumberOfMonths(inst),
cols = numMonths[1],
width = 17;
inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3
ui-datepicker-multi-4").width("");
if (cols > 1) {
inst.dpDiv.addClass("ui-datepicker-multi-" +
cols).css("width", (width * cols) + "em");
}
inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" :
"remove") +
"Class"]("ui-datepicker-multi");
inst.dpDiv[(this._get(inst, "isRTL") ? "add" :
"remove") +
"Class"]("ui-datepicker-rtl");
if (inst === $.datepicker._curInst &&
$.datepicker._datepickerShowing && $.datepicker._shouldFocusInput(
inst ) ) {
inst.input.focus();
}
// deffered render of the years select (to avoid flashes on Firefox)
if( inst.yearshtml ){
origyearshtml = inst.yearshtml;
setTimeout(function(){
//assure that inst.yearshtml didn't change.
if( origyearshtml === inst.yearshtml && inst.yearshtml ){
inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml);
}
origyearshtml = inst.yearshtml = null;
}, 0);
}
},
// #6694 - don't focus the input if it's already focused
// this breaks the change event in IE
// Support: IE and jQuery <1.9
_shouldFocusInput: function( inst ) {
return inst.input && inst.input.is( ":visible" )
&& !inst.input.is( ":disabled" ) &&
!inst.input.is( ":focus" );
},
/* Check positioning to remain on screen. */
_checkOffset: function(inst, offset, isFixed) {
var dpWidth = inst.dpDiv.outerWidth(),
dpHeight = inst.dpDiv.outerHeight(),
inputWidth = inst.input ? inst.input.outerWidth() : 0,
inputHeight = inst.input ? inst.input.outerHeight() : 0,
viewWidth = document.documentElement.clientWidth + (isFixed ? 0 :
$(document).scrollLeft()),
viewHeight = document.documentElement.clientHeight + (isFixed ? 0 :
$(document).scrollTop());
offset.left -= (this._get(inst, "isRTL") ? (dpWidth -
inputWidth) : 0);
offset.left -= (isFixed && offset.left ===
inst.input.offset().left) ? $(document).scrollLeft() : 0;
offset.top -= (isFixed && offset.top === (inst.input.offset().top
+ inputHeight)) ? $(document).scrollTop() : 0;
// now check if datepicker is showing outside window viewport - move to a
better place if so.
offset.left -= Math.min(offset.left, (offset.left + dpWidth >
viewWidth && viewWidth > dpWidth) ?
Math.abs(offset.left + dpWidth - viewWidth) : 0);
offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight
&& viewHeight > dpHeight) ?
Math.abs(dpHeight + inputHeight) : 0);
return offset;
},
/* Find an object's position on the screen. */
_findPos: function(obj) {
var position,
inst = this._getInst(obj),
isRTL = this._get(inst, "isRTL");
while (obj && (obj.type === "hidden" || obj.nodeType
!== 1 || $.expr.filters.hidden(obj))) {
obj = obj[isRTL ? "previousSibling" :
"nextSibling"];
}
position = $(obj).offset();
return [position.left, position.top];
},
/* Hide the date picker from view.
* @param input element - the input field attached to the date picker
*/
_hideDatepicker: function(input) {
var showAnim, duration, postProcess, onClose,
inst = this._curInst;
if (!inst || (input && inst !== $.data(input, PROP_NAME))) {
return;
}
if (this._datepickerShowing) {
showAnim = this._get(inst, "showAnim");
duration = this._get(inst, "duration");
postProcess = function() {
$.datepicker._tidyDialog(inst);
};
// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[
showAnim ] ) ) {
inst.dpDiv.hide(showAnim, $.datepicker._get(inst,
"showOptions"), duration, postProcess);
} else {
inst.dpDiv[(showAnim === "slideDown" ? "slideUp" :
(showAnim === "fadeIn" ? "fadeOut" :
"hide"))]((showAnim ? duration : null), postProcess);
}
if (!showAnim) {
postProcess();
}
this._datepickerShowing = false;
onClose = this._get(inst, "onClose");
if (onClose) {
onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ?
inst.input.val() : ""), inst]);
}
this._lastInput = null;
if (this._inDialog) {
this._dialogInput.css({ position: "absolute", left:
"0", top: "-100px" });
if ($.blockUI) {
$.unblockUI();
$("body").append(this.dpDiv);
}
}
this._inDialog = false;
}
},
/* Tidy up after a dialog display. */
_tidyDialog: function(inst) {
inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar");
},
/* Close date picker if clicked elsewhere. */
_checkExternalClick: function(event) {
if (!$.datepicker._curInst) {
return;
}
var $target = $(event.target),
inst = $.datepicker._getInst($target[0]);
if ( ( ( $target[0].id !== $.datepicker._mainDivId &&
$target.parents("#" + $.datepicker._mainDivId).length === 0
&&
!$target.hasClass($.datepicker.markerClassName) &&
!$target.closest("." + $.datepicker._triggerClass).length
&&
$.datepicker._datepickerShowing && !($.datepicker._inDialog
&& $.blockUI) ) ) ||
( $target.hasClass($.datepicker.markerClassName) &&
$.datepicker._curInst !== inst ) ) {
$.datepicker._hideDatepicker();
}
},
/* Adjust one of the date sub-fields. */
_adjustDate: function(id, offset, period) {
var target = $(id),
inst = this._getInst(target[0]);
if (this._isDisabledDatepicker(target[0])) {
return;
}
this._adjustInstDate(inst, offset +
(period === "M" ? this._get(inst,
"showCurrentAtPos") : 0), // undo positioning
period);
this._updateDatepicker(inst);
},
/* Action for current link. */
_gotoToday: function(id) {
var date,
target = $(id),
inst = this._getInst(target[0]);
if (this._get(inst, "gotoCurrent") && inst.currentDay)
{
inst.selectedDay = inst.currentDay;
inst.drawMonth = inst.selectedMonth = inst.currentMonth;
inst.drawYear = inst.selectedYear = inst.currentYear;
} else {
date = new Date();
inst.selectedDay = date.getDate();
inst.drawMonth = inst.selectedMonth = date.getMonth();
inst.drawYear = inst.selectedYear = date.getFullYear();
}
this._notifyChange(inst);
this._adjustDate(target);
},
/* Action for selecting a new month/year. */
_selectMonthYear: function(id, select, period) {
var target = $(id),
inst = this._getInst(target[0]);
inst["selected" + (period === "M" ? "Month"
: "Year")] =
inst["draw" + (period === "M" ? "Month" :
"Year")] =
parseInt(select.options[select.selectedIndex].value,10);
this._notifyChange(inst);
this._adjustDate(target);
},
/* Action for selecting a day. */
_selectDay: function(id, month, year, td) {
var inst,
target = $(id);
if ($(td).hasClass(this._unselectableClass) ||
this._isDisabledDatepicker(target[0])) {
return;
}
inst = this._getInst(target[0]);
inst.selectedDay = inst.currentDay = $("a", td).html();
inst.selectedMonth = inst.currentMonth = month;
inst.selectedYear = inst.currentYear = year;
this._selectDate(id, this._formatDate(inst,
inst.currentDay, inst.currentMonth, inst.currentYear));
},
/* Erase the input field and hide the date picker. */
_clearDate: function(id) {
var target = $(id);
this._selectDate(target, "");
},
/* Update the input field with the selected date. */
_selectDate: function(id, dateStr) {
var onSelect,
target = $(id),
inst = this._getInst(target[0]);
dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
if (inst.input) {
inst.input.val(dateStr);
}
this._updateAlternate(inst);
onSelect = this._get(inst, "onSelect");
if (onSelect) {
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
// trigger custom callback
} else if (inst.input) {
inst.input.trigger("change"); // fire the change event
}
if (inst.inline){
this._updateDatepicker(inst);
} else {
this._hideDatepicker();
this._lastInput = inst.input[0];
if (typeof(inst.input[0]) !== "object") {
inst.input.focus(); // restore focus
}
this._lastInput = null;
}
},
/* Update any alternate field to synchronise with the main field. */
_updateAlternate: function(inst) {
var altFormat, date, dateStr,
altField = this._get(inst, "altField");
if (altField) { // update alternate field too
altFormat = this._get(inst, "altFormat") || this._get(inst,
"dateFormat");
date = this._getDate(inst);
dateStr = this.formatDate(altFormat, date,
this._getFormatConfig(inst));
$(altField).each(function() { $(this).val(dateStr); });
}
},
/* Set as beforeShowDay function to prevent selection of weekends.
* @param date Date - the date to customise
* @return [boolean, string] - is this date selectable?, what is its CSS
class?
*/
noWeekends: function(date) {
var day = date.getDay();
return [(day > 0 && day < 6), ""];
},
/* Set as calculateWeek to determine the week of the year based on the ISO
8601 definition.
* @param date Date - the date to get the week for
* @return number - the number of the week within the year that contains
this date
*/
iso8601Week: function(date) {
var time,
checkDate = new Date(date.getTime());
// Find Thursday of this week starting on Monday
checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
time = checkDate.getTime();
checkDate.setMonth(0); // Compare with Jan 1
checkDate.setDate(1);
return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
},
/* Parse a string value into a date object.
* See formatDate below for the possible formats.
*
* @param format string - the expected format of the date
* @param value string - the date in the above format
* @param settings Object - attributes include:
* shortYearCutoff number - the cutoff year for determining the
century (optional)
* dayNamesShort string[7] - abbreviated names of the days from Sunday
(optional)
* dayNames string[7] - names of the days from Sunday (optional)
* monthNamesShort string[12] - abbreviated names of the months
(optional)
* monthNames string[12] - names of the months (optional)
* @return Date - the extracted date value or null if value is blank
*/
parseDate: function (format, value, settings) {
if (format == null || value == null) {
throw "Invalid arguments";
}
value = (typeof value === "object" ? value.toString() : value +
"");
if (value === "") {
return null;
}
var iFormat, dim, extra,
iValue = 0,
shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) ||
this._defaults.shortYearCutoff,
shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ?
shortYearCutoffTemp :
new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)),
dayNamesShort = (settings ? settings.dayNamesShort : null) ||
this._defaults.dayNamesShort,
dayNames = (settings ? settings.dayNames : null) ||
this._defaults.dayNames,
monthNamesShort = (settings ? settings.monthNamesShort : null) ||
this._defaults.monthNamesShort,
monthNames = (settings ? settings.monthNames : null) ||
this._defaults.monthNames,
year = -1,
month = -1,
day = -1,
doy = -1,
literal = false,
date,
// Check whether a format character is doubled
lookAhead = function(match) {
var matches = (iFormat + 1 < format.length &&
format.charAt(iFormat + 1) === match);
if (matches) {
iFormat++;
}
return matches;
},
// Extract a number from the string value
getNumber = function(match) {
var isDoubled = lookAhead(match),
size = (match === "@" ? 14 : (match === "!" ? 20
:
(match === "y" && isDoubled ? 4 : (match ===
"o" ? 3 : 2)))),
digits = new RegExp("^\\d{1," + size + "}"),
num = value.substring(iValue).match(digits);
if (!num) {
throw "Missing number at position " + iValue;
}
iValue += num[0].length;
return parseInt(num[0], 10);
},
// Extract a name from the string value and convert to an index
getName = function(match, shortNames, longNames) {
var index = -1,
names = $.map(lookAhead(match) ? longNames : shortNames, function (v,
k) {
return [ [k, v] ];
}).sort(function (a, b) {
return -(a[1].length - b[1].length);
});
$.each(names, function (i, pair) {
var name = pair[1];
if (value.substr(iValue, name.length).toLowerCase() ===
name.toLowerCase()) {
index = pair[0];
iValue += name.length;
return false;
}
});
if (index !== -1) {
return index + 1;
} else {
throw "Unknown name at position " + iValue;
}
},
// Confirm that a literal character matches the string value
checkLiteral = function() {
if (value.charAt(iValue) !== format.charAt(iFormat)) {
throw "Unexpected literal at position " + iValue;
}
iValue++;
};
for (iFormat = 0; iFormat < format.length; iFormat++) {
if (literal) {
if (format.charAt(iFormat) === "'" &&
!lookAhead("'")) {
literal = false;
} else {
checkLiteral();
}
} else {
switch (format.charAt(iFormat)) {
case "d":
day = getNumber("d");
break;
case "D":
getName("D", dayNamesShort, dayNames);
break;
case "o":
doy = getNumber("o");
break;
case "m":
month = getNumber("m");
break;
case "M":
month = getName("M", monthNamesShort, monthNames);
break;
case "y":
year = getNumber("y");
break;
case "@":
date = new Date(getNumber("@"));
year = date.getFullYear();
month = date.getMonth() + 1;
day = date.getDate();
break;
case "!":
date = new Date((getNumber("!") - this._ticksTo1970) /
10000);
year = date.getFullYear();
month = date.getMonth() + 1;
day = date.getDate();
break;
case "'":
if (lookAhead("'")){
checkLiteral();
} else {
literal = true;
}
break;
default:
checkLiteral();
}
}
}
if (iValue < value.length){
extra = value.substr(iValue);
if (!/^\s+/.test(extra)) {
throw "Extra/unparsed characters found in date: " + extra;
}
}
if (year === -1) {
year = new Date().getFullYear();
} else if (year < 100) {
year += new Date().getFullYear() - new Date().getFullYear() % 100 +
(year <= shortYearCutoff ? 0 : -100);
}
if (doy > -1) {
month = 1;
day = doy;
do {
dim = this._getDaysInMonth(year, month - 1);
if (day <= dim) {
break;
}
month++;
day -= dim;
} while (true);
}
date = this._daylightSavingAdjust(new Date(year, month - 1, day));
if (date.getFullYear() !== year || date.getMonth() + 1 !== month ||
date.getDate() !== day) {
throw "Invalid date"; // E.g. 31/02/00
}
return date;
},
/* Standard date formats. */
ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
COOKIE: "D, dd M yy",
ISO_8601: "yy-mm-dd",
RFC_822: "D, d M y",
RFC_850: "DD, dd-M-y",
RFC_1036: "D, d M y",
RFC_1123: "D, d M yy",
RFC_2822: "D, d M yy",
RSS: "D, d M y", // RFC 822
TICKS: "!",
TIMESTAMP: "@",
W3C: "yy-mm-dd", // ISO 8601
_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970
/ 100) +
Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
/* Format a date object into a string value.
* The format can be combinations of the following:
* d - day of month (no leading zero)
* dd - day of month (two digit)
* o - day of year (no leading zeros)
* oo - day of year (three digit)
* D - day name short
* DD - day name long
* m - month of year (no leading zero)
* mm - month of year (two digit)
* M - month name short
* MM - month name long
* y - year (two digit)
* yy - year (four digit)
* @ - Unix timestamp (ms since 01/01/1970)
* ! - Windows ticks (100ns since 01/01/0001)
* "..." - literal text
* '' - single quote
*
* @param format string - the desired format of the date
* @param date Date - the date value to format
* @param settings Object - attributes include:
* dayNamesShort string[7] - abbreviated names of the days from Sunday
(optional)
* dayNames string[7] - names of the days from Sunday (optional)
* monthNamesShort string[12] - abbreviated names of the months
(optional)
* monthNames string[12] - names of the months (optional)
* @return string - the date in the above format
*/
formatDate: function (format, date, settings) {
if (!date) {
return "";
}
var iFormat,
dayNamesShort = (settings ? settings.dayNamesShort : null) ||
this._defaults.dayNamesShort,
dayNames = (settings ? settings.dayNames : null) ||
this._defaults.dayNames,
monthNamesShort = (settings ? settings.monthNamesShort : null) ||
this._defaults.monthNamesShort,
monthNames = (settings ? settings.monthNames : null) ||
this._defaults.monthNames,
// Check whether a format character is doubled
lookAhead = function(match) {
var matches = (iFormat + 1 < format.length &&
format.charAt(iFormat + 1) === match);
if (matches) {
iFormat++;
}
return matches;
},
// Format a number, with leading zero if necessary
formatNumber = function(match, value, len) {
var num = "" + value;
if (lookAhead(match)) {
while (num.length < len) {
num = "0" + num;
}
}
return num;
},
// Format a name, short or long as requested
formatName = function(match, value, shortNames, longNames) {
return (lookAhead(match) ? longNames[value] : shortNames[value]);
},
output = "",
literal = false;
if (date) {
for (iFormat = 0; iFormat < format.length; iFormat++) {
if (literal) {
if (format.charAt(iFormat) === "'" &&
!lookAhead("'")) {
literal = false;
} else {
output += format.charAt(iFormat);
}
} else {
switch (format.charAt(iFormat)) {
case "d":
output += formatNumber("d", date.getDate(), 2);
break;
case "D":
output += formatName("D", date.getDay(), dayNamesShort,
dayNames);
break;
case "o":
output += formatNumber("o",
Math.round((new Date(date.getFullYear(), date.getMonth(),
date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) /
86400000), 3);
break;
case "m":
output += formatNumber("m", date.getMonth() + 1, 2);
break;
case "M":
output += formatName("M", date.getMonth(),
monthNamesShort, monthNames);
break;
case "y":
output += (lookAhead("y") ? date.getFullYear() :
(date.getYear() % 100 < 10 ? "0" : "") +
date.getYear() % 100);
break;
case "@":
output += date.getTime();
break;
case "!":
output += date.getTime() * 10000 + this._ticksTo1970;
break;
case "'":
if (lookAhead("'")) {
output += "'";
} else {
literal = true;
}
break;
default:
output += format.charAt(iFormat);
}
}
}
}
return output;
},
/* Extract all possible characters from the date format. */
_possibleChars: function (format) {
var iFormat,
chars = "",
literal = false,
// Check whether a format character is doubled
lookAhead = function(match) {
var matches = (iFormat + 1 < format.length &&
format.charAt(iFormat + 1) === match);
if (matches) {
iFormat++;
}
return matches;
};
for (iFormat = 0; iFormat < format.length; iFormat++) {
if (literal) {
if (format.charAt(iFormat) === "'" &&
!lookAhead("'")) {
literal = false;
} else {
chars += format.charAt(iFormat);
}
} else {
switch (format.charAt(iFormat)) {
case "d": case "m": case "y": case
"@":
chars += "0123456789";
break;
case "D": case "M":
return null; // Accept anything
case "'":
if (lookAhead("'")) {
chars += "'";
} else {
literal = true;
}
break;
default:
chars += format.charAt(iFormat);
}
}
}
return chars;
},
/* Get a setting value, defaulting if necessary. */
_get: function(inst, name) {
return inst.settings[name] !== undefined ?
inst.settings[name] : this._defaults[name];
},
/* Parse existing date and initialise date picker. */
_setDateFromField: function(inst, noDefault) {
if (inst.input.val() === inst.lastVal) {
return;
}
var dateFormat = this._get(inst, "dateFormat"),
dates = inst.lastVal = inst.input ? inst.input.val() : null,
defaultDate = this._getDefaultDate(inst),
date = defaultDate,
settings = this._getFormatConfig(inst);
try {
date = this.parseDate(dateFormat, dates, settings) || defaultDate;
} catch (event) {
dates = (noDefault ? "" : dates);
}
inst.selectedDay = date.getDate();
inst.drawMonth = inst.selectedMonth = date.getMonth();
inst.drawYear = inst.selectedYear = date.getFullYear();
inst.currentDay = (dates ? date.getDate() : 0);
inst.currentMonth = (dates ? date.getMonth() : 0);
inst.currentYear = (dates ? date.getFullYear() : 0);
this._adjustInstDate(inst);
},
/* Retrieve the default date shown on opening. */
_getDefaultDate: function(inst) {
return this._restrictMinMax(inst,
this._determineDate(inst, this._get(inst, "defaultDate"), new
Date()));
},
/* A date may be specified as an exact value or a relative one. */
_determineDate: function(inst, date, defaultDate) {
var offsetNumeric = function(offset) {
var date = new Date();
date.setDate(date.getDate() + offset);
return date;
},
offsetString = function(offset) {
try {
return $.datepicker.parseDate($.datepicker._get(inst,
"dateFormat"),
offset, $.datepicker._getFormatConfig(inst));
}
catch (e) {
// Ignore
}
var date = (offset.toLowerCase().match(/^c/) ?
$.datepicker._getDate(inst) : null) || new Date(),
year = date.getFullYear(),
month = date.getMonth(),
day = date.getDate(),
pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
matches = pattern.exec(offset);
while (matches) {
switch (matches[2] || "d") {
case "d" : case "D" :
day += parseInt(matches[1],10); break;
case "w" : case "W" :
day += parseInt(matches[1],10) * 7; break;
case "m" : case "M" :
month += parseInt(matches[1],10);
day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
break;
case "y": case "Y" :
year += parseInt(matches[1],10);
day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
break;
}
matches = pattern.exec(offset);
}
return new Date(year, month, day);
},
newDate = (date == null || date === "" ? defaultDate : (typeof
date === "string" ? offsetString(date) :
(typeof date === "number" ? (isNaN(date) ? defaultDate :
offsetNumeric(date)) : new Date(date.getTime()))));
newDate = (newDate && newDate.toString() === "Invalid
Date" ? defaultDate : newDate);
if (newDate) {
newDate.setHours(0);
newDate.setMinutes(0);
newDate.setSeconds(0);
newDate.setMilliseconds(0);
}
return this._daylightSavingAdjust(newDate);
},
/* Handle switch to/from daylight saving.
* Hours may be non-zero on daylight saving cut-over:
* > 12 when midnight changeover, but then cannot generate
* midnight datetime, so jump to 1AM, otherwise reset.
* @param date (Date) the date to check
* @return (Date) the corrected date
*/
_daylightSavingAdjust: function(date) {
if (!date) {
return null;
}
date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
return date;
},
/* Set the date(s) directly. */
_setDate: function(inst, date, noChange) {
var clear = !date,
origMonth = inst.selectedMonth,
origYear = inst.selectedYear,
newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new
Date()));
inst.selectedDay = inst.currentDay = newDate.getDate();
inst.drawMonth = inst.selectedMonth = inst.currentMonth =
newDate.getMonth();
inst.drawYear = inst.selectedYear = inst.currentYear =
newDate.getFullYear();
if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear)
&& !noChange) {
this._notifyChange(inst);
}
this._adjustInstDate(inst);
if (inst.input) {
inst.input.val(clear ? "" : this._formatDate(inst));
}
},
/* Retrieve the date(s) directly. */
_getDate: function(inst) {
var startDate = (!inst.currentYear || (inst.input &&
inst.input.val() === "") ? null :
this._daylightSavingAdjust(new Date(
inst.currentYear, inst.currentMonth, inst.currentDay)));
return startDate;
},
/* Attach the onxxx handlers. These are declared statically so
* they work with static code transformers like Caja.
*/
_attachHandlers: function(inst) {
var stepMonths = this._get(inst, "stepMonths"),
id = "#" + inst.id.replace( /\\\\/g, "\\" );
inst.dpDiv.find("[data-handler]").map(function () {
var handler = {
prev: function () {
$.datepicker._adjustDate(id, -stepMonths, "M");
},
next: function () {
$.datepicker._adjustDate(id, +stepMonths, "M");
},
hide: function () {
$.datepicker._hideDatepicker();
},
today: function () {
$.datepicker._gotoToday(id);
},
selectDay: function () {
$.datepicker._selectDay(id,
+this.getAttribute("data-month"),
+this.getAttribute("data-year"), this);
return false;
},
selectMonth: function () {
$.datepicker._selectMonthYear(id, this, "M");
return false;
},
selectYear: function () {
$.datepicker._selectMonthYear(id, this, "Y");
return false;
}
};
$(this).bind(this.getAttribute("data-event"),
handler[this.getAttribute("data-handler")]);
});
},
/* Generate the HTML for the current state of the date picker. */
_generateHTML: function(inst) {
var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
selectOtherMonths, defaultDate, html, dow, row, group, col,
selectedDate,
cornerClass, calender, thead, day, daysInMonth, leadDays, curRows,
numRows,
printDate, dRow, tbody, daySettings, otherMonth, unselectable,
tempDate = new Date(),
today = this._daylightSavingAdjust(
new Date(tempDate.getFullYear(), tempDate.getMonth(),
tempDate.getDate())), // clear time
isRTL = this._get(inst, "isRTL"),
showButtonPanel = this._get(inst, "showButtonPanel"),
hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"),
navigationAsDateFormat = this._get(inst,
"navigationAsDateFormat"),
numMonths = this._getNumberOfMonths(inst),
showCurrentAtPos = this._get(inst, "showCurrentAtPos"),
stepMonths = this._get(inst, "stepMonths"),
isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1),
currentDate = this._daylightSavingAdjust((!inst.currentDay ? new
Date(9999, 9, 9) :
new Date(inst.currentYear, inst.currentMonth, inst.currentDay))),
minDate = this._getMinMaxDate(inst, "min"),
maxDate = this._getMinMaxDate(inst, "max"),
drawMonth = inst.drawMonth - showCurrentAtPos,
drawYear = inst.drawYear;
if (drawMonth < 0) {
drawMonth += 12;
drawYear--;
}
if (maxDate) {
maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1,
maxDate.getDate()));
maxDraw = (minDate && maxDraw < minDate ? minDate :
maxDraw);
while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) >
maxDraw) {
drawMonth--;
if (drawMonth < 0) {
drawMonth = 11;
drawYear--;
}
}
}
inst.drawMonth = drawMonth;
inst.drawYear = drawYear;
prevText = this._get(inst, "prevText");
prevText = (!navigationAsDateFormat ? prevText :
this.formatDate(prevText,
this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths,
1)),
this._getFormatConfig(inst)));
prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
"<a class='ui-datepicker-prev ui-corner-all'
data-handler='prev' data-event='click'" +
" title='" + prevText + "'><span
class='ui-icon ui-icon-circle-triangle-" + ( isRTL ?
"e" : "w") + "'>" + prevText +
"</span></a>" :
(hideIfNoPrevNext ? "" : "<a
class='ui-datepicker-prev ui-corner-all ui-state-disabled'
title='"+ prevText +"'><span class='ui-icon
ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") +
"'>" + prevText + "</span></a>"));
nextText = this._get(inst, "nextText");
nextText = (!navigationAsDateFormat ? nextText :
this.formatDate(nextText,
this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths,
1)),
this._getFormatConfig(inst)));
next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
"<a class='ui-datepicker-next ui-corner-all'
data-handler='next' data-event='click'" +
" title='" + nextText + "'><span
class='ui-icon ui-icon-circle-triangle-" + ( isRTL ?
"w" : "e") + "'>" + nextText +
"</span></a>" :
(hideIfNoPrevNext ? "" : "<a
class='ui-datepicker-next ui-corner-all ui-state-disabled'
title='"+ nextText + "'><span class='ui-icon
ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") +
"'>" + nextText + "</span></a>"));
currentText = this._get(inst, "currentText");
gotoDate = (this._get(inst, "gotoCurrent") &&
inst.currentDay ? currentDate : today);
currentText = (!navigationAsDateFormat ? currentText :
this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
controls = (!inst.inline ? "<button type='button'
class='ui-datepicker-close ui-state-default ui-priority-primary
ui-corner-all' data-handler='hide'
data-event='click'>" +
this._get(inst, "closeText") + "</button>" :
"");
buttonPanel = (showButtonPanel) ? "<div
class='ui-datepicker-buttonpane ui-widget-content'>" +
(isRTL ? controls : "") +
(this._isInRange(inst, gotoDate) ? "<button
type='button' class='ui-datepicker-current ui-state-default
ui-priority-secondary ui-corner-all' data-handler='today'
data-event='click'" +
">" + currentText + "</button>" :
"") + (isRTL ? "" : controls) +
"</div>" : "";
firstDay = parseInt(this._get(inst, "firstDay"),10);
firstDay = (isNaN(firstDay) ? 0 : firstDay);
showWeek = this._get(inst, "showWeek");
dayNames = this._get(inst, "dayNames");
dayNamesMin = this._get(inst, "dayNamesMin");
monthNames = this._get(inst, "monthNames");
monthNamesShort = this._get(inst, "monthNamesShort");
beforeShowDay = this._get(inst, "beforeShowDay");
showOtherMonths = this._get(inst, "showOtherMonths");
selectOtherMonths = this._get(inst, "selectOtherMonths");
defaultDate = this._getDefaultDate(inst);
html = "";
dow;
for (row = 0; row < numMonths[0]; row++) {
group = "";
this.maxRows = 4;
for (col = 0; col < numMonths[1]; col++) {
selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth,
inst.selectedDay));
cornerClass = " ui-corner-all";
calender = "";
if (isMultiMonth) {
calender += "<div class='ui-datepicker-group";
if (numMonths[1] > 1) {
switch (col) {
case 0: calender += " ui-datepicker-group-first";
cornerClass = " ui-corner-" + (isRTL ? "right"
: "left"); break;
case numMonths[1]-1: calender += "
ui-datepicker-group-last";
cornerClass = " ui-corner-" + (isRTL ? "left" :
"right"); break;
default: calender += " ui-datepicker-group-middle";
cornerClass = ""; break;
}
}
calender += "'>";
}
calender += "<div class='ui-datepicker-header
ui-widget-header ui-helper-clearfix" + cornerClass +
"'>" +
(/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next :
prev) : "") +
(/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev :
next) : "") +
this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate,
maxDate,
row > 0 || col > 0, monthNames, monthNamesShort) + // draw month
headers
"</div><table
class='ui-datepicker-calendar'><thead>" +
"<tr>";
thead = (showWeek ? "<th
class='ui-datepicker-week-col'>" + this._get(inst,
"weekHeader") + "</th>" : "");
for (dow = 0; dow < 7; dow++) { // days of the week
day = (dow + firstDay) % 7;
thead += "<th" + ((dow + firstDay + 6) % 7 >= 5 ?
" class='ui-datepicker-week-end'" : "") +
">" +
"<span title='" + dayNames[day] +
"'>" + dayNamesMin[day] +
"</span></th>";
}
calender += thead +
"</tr></thead><tbody>";
daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
if (drawYear === inst.selectedYear && drawMonth ===
inst.selectedMonth) {
inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
}
leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay +
7) % 7;
curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the
number of rows to generate
numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows :
curRows : curRows); //If multiple months, use the higher number of rows
(see #7043)
this.maxRows = numRows;
printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1
- leadDays));
for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows
calender += "<tr>";
tbody = (!showWeek ? "" : "<td
class='ui-datepicker-week-col'>" +
this._get(inst, "calculateWeek")(printDate) +
"</td>");
for (dow = 0; dow < 7; dow++) { // create date picker days
daySettings = (beforeShowDay ?
beforeShowDay.apply((inst.input ? inst.input[0] : null),
[printDate]) : [true, ""]);
otherMonth = (printDate.getMonth() !== drawMonth);
unselectable = (otherMonth && !selectOtherMonths) ||
!daySettings[0] ||
(minDate && printDate < minDate) || (maxDate &&
printDate > maxDate);
tbody += "<td class='" +
((dow + firstDay + 6) % 7 >= 5 ? "
ui-datepicker-week-end" : "") + // highlight weekends
(otherMonth ? " ui-datepicker-other-month" : "")
+ // highlight days from other months
((printDate.getTime() === selectedDate.getTime() &&
drawMonth === inst.selectedMonth && inst._keyEvent) || // user
pressed key
(defaultDate.getTime() === printDate.getTime() &&
defaultDate.getTime() === selectedDate.getTime()) ?
// or defaultDate is current printedDate and defaultDate is
selectedDate
" " + this._dayOverClass : "") + // highlight
selected day
(unselectable ? " " + this._unselectableClass + "
ui-state-disabled": "") + // highlight unselectable days
(otherMonth && !showOtherMonths ? "" : "
" + daySettings[1] + // highlight custom dates
(printDate.getTime() === currentDate.getTime() ? " " +
this._currentClass : "") + // highlight selected day
(printDate.getTime() === today.getTime() ? "
ui-datepicker-today" : "")) + "'" + //
highlight today (if different)
((!otherMonth || showOtherMonths) && daySettings[2] ? "
title='" + daySettings[2].replace(/'/g,
"'") + "'" : "") + // cell
title
(unselectable ? "" : "
data-handler='selectDay' data-event='click'
data-month='" + printDate.getMonth() + "'
data-year='" + printDate.getFullYear() + "'") +
">" + // actions
(otherMonth && !showOtherMonths ? " " :
// display for other months
(unselectable ? "<span
class='ui-state-default'>" + printDate.getDate() +
"</span>" : "<a class='ui-state-default"
+
(printDate.getTime() === today.getTime() ? "
ui-state-highlight" : "") +
(printDate.getTime() === currentDate.getTime() ? "
ui-state-active" : "") + // highlight selected day
(otherMonth ? " ui-priority-secondary" : "") +
// distinguish dates from other months
"' href='#'>" + printDate.getDate() +
"</a>")) + "</td>"; // display selectable
date
printDate.setDate(printDate.getDate() + 1);
printDate = this._daylightSavingAdjust(printDate);
}
calender += tbody + "</tr>";
}
drawMonth++;
if (drawMonth > 11) {
drawMonth = 0;
drawYear++;
}
calender += "</tbody></table>" + (isMultiMonth ?
"</div>" +
((numMonths[0] > 0 && col === numMonths[1]-1) ?
"<div
class='ui-datepicker-row-break'></div>" :
"") : "");
group += calender;
}
html += group;
}
html += buttonPanel;
inst._keyEvent = false;
return html;
},
/* Generate the month and year header. */
_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate,
maxDate,
secondary, monthNames, monthNamesShort) {
var inMinYear, inMaxYear, month, years, thisYear, determineYear, year,
endYear,
changeMonth = this._get(inst, "changeMonth"),
changeYear = this._get(inst, "changeYear"),
showMonthAfterYear = this._get(inst, "showMonthAfterYear"),
html = "<div class='ui-datepicker-title'>",
monthHtml = "";
// month selection
if (secondary || !changeMonth) {
monthHtml += "<span
class='ui-datepicker-month'>" + monthNames[drawMonth] +
"</span>";
} else {
inMinYear = (minDate && minDate.getFullYear() === drawYear);
inMaxYear = (maxDate && maxDate.getFullYear() === drawYear);
monthHtml += "<select class='ui-datepicker-month'
data-handler='selectMonth'
data-event='change'>";
for ( month = 0; month < 12; month++) {
if ((!inMinYear || month >= minDate.getMonth()) &&
(!inMaxYear || month <= maxDate.getMonth())) {
monthHtml += "<option value='" + month +
"'" +
(month === drawMonth ? " selected='selected'" :
"") +
">" + monthNamesShort[month] +
"</option>";
}
}
monthHtml += "</select>";
}
if (!showMonthAfterYear) {
html += monthHtml + (secondary || !(changeMonth && changeYear) ?
" " : "");
}
// year selection
if ( !inst.yearshtml ) {
inst.yearshtml = "";
if (secondary || !changeYear) {
html += "<span class='ui-datepicker-year'>" +
drawYear + "</span>";
} else {
// determine range of years to display
years = this._get(inst, "yearRange").split(":");
thisYear = new Date().getFullYear();
determineYear = function(value) {
var year = (value.match(/c[+\-].*/) ? drawYear +
parseInt(value.substring(1), 10) :
(value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) :
parseInt(value, 10)));
return (isNaN(year) ? thisYear : year);
};
year = determineYear(years[0]);
endYear = Math.max(year, determineYear(years[1] || ""));
year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) :
endYear);
inst.yearshtml += "<select class='ui-datepicker-year'
data-handler='selectYear'
data-event='change'>";
for (; year <= endYear; year++) {
inst.yearshtml += "<option value='" + year +
"'" +
(year === drawYear ? " selected='selected'" :
"") +
">" + year + "</option>";
}
inst.yearshtml += "</select>";
html += inst.yearshtml;
inst.yearshtml = null;
}
}
html += this._get(inst, "yearSuffix");
if (showMonthAfterYear) {
html += (secondary || !(changeMonth && changeYear) ?
" " : "") + monthHtml;
}
html += "</div>"; // Close datepicker_header
return html;
},
/* Adjust one of the date sub-fields. */
_adjustInstDate: function(inst, offset, period) {
var year = inst.drawYear + (period === "Y" ? offset : 0),
month = inst.drawMonth + (period === "M" ? offset : 0),
day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
(period === "D" ? offset : 0),
date = this._restrictMinMax(inst, this._daylightSavingAdjust(new
Date(year, month, day)));
inst.selectedDay = date.getDate();
inst.drawMonth = inst.selectedMonth = date.getMonth();
inst.drawYear = inst.selectedYear = date.getFullYear();
if (period === "M" || period === "Y") {
this._notifyChange(inst);
}
},
/* Ensure a date is within any min/max bounds. */
_restrictMinMax: function(inst, date) {
var minDate = this._getMinMaxDate(inst, "min"),
maxDate = this._getMinMaxDate(inst, "max"),
newDate = (minDate && date < minDate ? minDate : date);
return (maxDate && newDate > maxDate ? maxDate : newDate);
},
/* Notify change of month/year. */
_notifyChange: function(inst) {
var onChange = this._get(inst, "onChangeMonthYear");
if (onChange) {
onChange.apply((inst.input ? inst.input[0] : null),
[inst.selectedYear, inst.selectedMonth + 1, inst]);
}
},
/* Determine the number of months to show. */
_getNumberOfMonths: function(inst) {
var numMonths = this._get(inst, "numberOfMonths");
return (numMonths == null ? [1, 1] : (typeof numMonths ===
"number" ? [1, numMonths] : numMonths));
},
/* Determine the current maximum date - ensure no time components are set.
*/
_getMinMaxDate: function(inst, minMax) {
return this._determineDate(inst, this._get(inst, minMax +
"Date"), null);
},
/* Find the number of days in a given month. */
_getDaysInMonth: function(year, month) {
return 32 - this._daylightSavingAdjust(new Date(year, month,
32)).getDate();
},
/* Find the day of the week of the first of a month. */
_getFirstDayOfMonth: function(year, month) {
return new Date(year, month, 1).getDay();
},
/* Determines if we should allow a "next/prev" month display
change. */
_canAdjustMonth: function(inst, offset, curYear, curMonth) {
var numMonths = this._getNumberOfMonths(inst),
date = this._daylightSavingAdjust(new Date(curYear,
curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
if (offset < 0) {
date.setDate(this._getDaysInMonth(date.getFullYear(),
date.getMonth()));
}
return this._isInRange(inst, date);
},
/* Is the given date in the accepted range? */
_isInRange: function(inst, date) {
var yearSplit, currentYear,
minDate = this._getMinMaxDate(inst, "min"),
maxDate = this._getMinMaxDate(inst, "max"),
minYear = null,
maxYear = null,
years = this._get(inst, "yearRange");
if (years){
yearSplit = years.split(":");
currentYear = new Date().getFullYear();
minYear = parseInt(yearSplit[0], 10);
maxYear = parseInt(yearSplit[1], 10);
if ( yearSplit[0].match(/[+\-].*/) ) {
minYear += currentYear;
}
if ( yearSplit[1].match(/[+\-].*/) ) {
maxYear += currentYear;
}
}
return ((!minDate || date.getTime() >= minDate.getTime()) &&
(!maxDate || date.getTime() <= maxDate.getTime()) &&
(!minYear || date.getFullYear() >= minYear) &&
(!maxYear || date.getFullYear() <= maxYear));
},
/* Provide the configuration settings for formatting/parsing. */
_getFormatConfig: function(inst) {
var shortYearCutoff = this._get(inst, "shortYearCutoff");
shortYearCutoff = (typeof shortYearCutoff !== "string" ?
shortYearCutoff :
new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
return {shortYearCutoff: shortYearCutoff,
dayNamesShort: this._get(inst, "dayNamesShort"), dayNames:
this._get(inst, "dayNames"),
monthNamesShort: this._get(inst, "monthNamesShort"),
monthNames: this._get(inst, "monthNames")};
},
/* Format the given date for display. */
_formatDate: function(inst, day, month, year) {
if (!day) {
inst.currentDay = inst.selectedDay;
inst.currentMonth = inst.selectedMonth;
inst.currentYear = inst.selectedYear;
}
var date = (day ? (typeof day === "object" ? day :
this._daylightSavingAdjust(new Date(year, month, day))) :
this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth,
inst.currentDay)));
return this.formatDate(this._get(inst, "dateFormat"), date,
this._getFormatConfig(inst));
}
});
/*
* Bind hover events for datepicker elements.
* Done via delegate so the binding only occurs once in the lifetime of the
parent div.
* Global instActive, set by _updateDatepicker allows the handlers to find
their way back to the active picker.
*/
function bindHover(dpDiv) {
var selector = "button, .ui-datepicker-prev, .ui-datepicker-next,
.ui-datepicker-calendar td a";
return dpDiv.delegate(selector, "mouseout", function() {
$(this).removeClass("ui-state-hover");
if (this.className.indexOf("ui-datepicker-prev") !== -1) {
$(this).removeClass("ui-datepicker-prev-hover");
}
if (this.className.indexOf("ui-datepicker-next") !== -1) {
$(this).removeClass("ui-datepicker-next-hover");
}
})
.delegate(selector, "mouseover", function(){
if (!$.datepicker._isDisabledDatepicker( instActive.inline ?
dpDiv.parent()[0] : instActive.input[0])) {
$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
$(this).addClass("ui-state-hover");
if (this.className.indexOf("ui-datepicker-prev") !== -1) {
$(this).addClass("ui-datepicker-prev-hover");
}
if (this.className.indexOf("ui-datepicker-next") !== -1) {
$(this).addClass("ui-datepicker-next-hover");
}
}
});
}
/* jQuery extend now ignores nulls! */
function extendRemove(target, props) {
$.extend(target, props);
for (var name in props) {
if (props[name] == null) {
target[name] = props[name];
}
}
return target;
}
/* Invoke the datepicker functionality.
@param options string - a command, optionally followed by additional
parameters or
Object - settings for attaching new datepicker functionality
@return jQuery object */
$.fn.datepicker = function(options){
/* Verify an empty collection wasn't passed - Fixes #6976 */
if ( !this.length ) {
return this;
}
/* Initialise the date picker. */
if (!$.datepicker.initialized) {
$(document).mousedown($.datepicker._checkExternalClick);
$.datepicker.initialized = true;
}
/* Append datepicker main container to body if not exist. */
if ($("#"+$.datepicker._mainDivId).length === 0) {
$("body").append($.datepicker.dpDiv);
}
var otherArgs = Array.prototype.slice.call(arguments, 1);
if (typeof options === "string" && (options ===
"isDisabled" || options === "getDate" || options ===
"widget")) {
return $.datepicker["_" + options + "Datepicker"].
apply($.datepicker, [this[0]].concat(otherArgs));
}
if (options === "option" && arguments.length === 2
&& typeof arguments[1] === "string") {
return $.datepicker["_" + options + "Datepicker"].
apply($.datepicker, [this[0]].concat(otherArgs));
}
return this.each(function() {
typeof options === "string" ?
$.datepicker["_" + options + "Datepicker"].
apply($.datepicker, [this].concat(otherArgs)) :
$.datepicker._attachDatepicker(this, options);
});
};
$.datepicker = new Datepicker(); // singleton instance
$.datepicker.initialized = false;
$.datepicker.uuid = new Date().getTime();
$.datepicker.version = "1.10.3";
})(jQuery);
admin/ui/index.html000064400000000054151167411240010247
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>admin/ui/mouse.js000064400000011172151167411240007743
0ustar00/*!
* jQuery UI Mouse 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/mouse/
*
* Depends:
* jquery.ui.widget.js
*/
(function( $, undefined ) {
var mouseHandled = false;
$( document ).mouseup( function() {
mouseHandled = false;
});
$.widget("ui.mouse", {
version: "1.10.3",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var that = this;
this.element
.bind("mousedown."+this.widgetName, function(event) {
return that._mouseDown(event);
})
.bind("click."+this.widgetName, function(event) {
if (true === $.data(event.target, that.widgetName +
".preventClickEvent")) {
$.removeData(event.target, that.widgetName +
".preventClickEvent");
event.stopImmediatePropagation();
return false;
}
});
this.started = false;
},
// TODO: make sure destroying one instance of mouse doesn't mess
with
// other instances of mouse
_mouseDestroy: function() {
this.element.unbind("."+this.widgetName);
if ( this._mouseMoveDelegate ) {
$(document)
.unbind("mousemove."+this.widgetName,
this._mouseMoveDelegate)
.unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
}
},
_mouseDown: function(event) {
// don't let more than one widget handle mouseStart
if( mouseHandled ) { return; }
// we may have missed mouseup (out of window)
(this._mouseStarted && this._mouseUp(event));
this._mouseDownEvent = event;
var that = this,
btnIsLeft = (event.which === 1),
// event.target.nodeName works around a bug in IE 8 with
// disabled inputs (#7620)
elIsCancel = (typeof this.options.cancel === "string"
&& event.target.nodeName ?
$(event.target).closest(this.options.cancel).length : false);
if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
return true;
}
this.mouseDelayMet = !this.options.delay;
if (!this.mouseDelayMet) {
this._mouseDelayTimer = setTimeout(function() {
that.mouseDelayMet = true;
}, this.options.delay);
}
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event))
{
this._mouseStarted = (this._mouseStart(event) !== false);
if (!this._mouseStarted) {
event.preventDefault();
return true;
}
}
// Click event may never have fired (Gecko & Opera)
if (true === $.data(event.target, this.widgetName +
".preventClickEvent")) {
$.removeData(event.target, this.widgetName +
".preventClickEvent");
}
// these delegates are required to keep context
this._mouseMoveDelegate = function(event) {
return that._mouseMove(event);
};
this._mouseUpDelegate = function(event) {
return that._mouseUp(event);
};
$(document)
.bind("mousemove."+this.widgetName, this._mouseMoveDelegate)
.bind("mouseup."+this.widgetName, this._mouseUpDelegate);
event.preventDefault();
mouseHandled = true;
return true;
},
_mouseMove: function(event) {
// IE mouseup check - mouseup happened when mouse was out of window
if ($.ui.ie && ( !document.documentMode || document.documentMode
< 9 ) && !event.button) {
return this._mouseUp(event);
}
if (this._mouseStarted) {
this._mouseDrag(event);
return event.preventDefault();
}
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event))
{
this._mouseStarted =
(this._mouseStart(this._mouseDownEvent, event) !== false);
(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
}
return !this._mouseStarted;
},
_mouseUp: function(event) {
$(document)
.unbind("mousemove."+this.widgetName,
this._mouseMoveDelegate)
.unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
if (this._mouseStarted) {
this._mouseStarted = false;
if (event.target === this._mouseDownEvent.target) {
$.data(event.target, this.widgetName + ".preventClickEvent",
true);
}
this._mouseStop(event);
}
return false;
},
_mouseDistanceMet: function(event) {
return (Math.max(
Math.abs(this._mouseDownEvent.pageX - event.pageX),
Math.abs(this._mouseDownEvent.pageY - event.pageY)
) >= this.options.distance
);
},
_mouseDelayMet: function(/* event */) {
return this.mouseDelayMet;
},
// These are placeholder methods, to be overriden by extending plugin
_mouseStart: function(/* event */) {},
_mouseDrag: function(/* event */) {},
_mouseStop: function(/* event */) {},
_mouseCapture: function(/* event */) { return true; }
});
})(jQuery);
admin/ui/slider.js000064400000044567151167411240010113 0ustar00/*!
* jQuery UI Slider 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/slider/
*
* Depends:
* jquery.ui.core.js
* jquery.ui.mouse.js
* jquery.ui.widget.js
*/
(function( $, undefined ) {
// number of pages in a slider
// (how many times can you page up/down to go through the whole range)
var numPages = 5;
$.widget( "ui.slider", $.ui.mouse, {
version: "1.10.3",
widgetEventPrefix: "slide",
options: {
animate: false,
distance: 0,
max: 100,
min: 0,
orientation: "horizontal",
range: false,
step: 1,
value: 0,
values: null,
// callbacks
change: null,
slide: null,
start: null,
stop: null
},
_create: function() {
this._keySliding = false;
this._mouseSliding = false;
this._animateOff = true;
this._handleIndex = null;
this._detectOrientation();
this._mouseInit();
this.element
.addClass( "ui-slider" +
" ui-slider-" + this.orientation +
" ui-widget" +
" ui-widget-content" +
" ui-corner-all");
this._refresh();
this._setOption( "disabled", this.options.disabled );
this._animateOff = false;
},
_refresh: function() {
this._createRange();
this._createHandles();
this._setupEvents();
this._refreshValue();
},
_createHandles: function() {
var i, handleCount,
options = this.options,
existingHandles = this.element.find( ".ui-slider-handle"
).addClass( "ui-state-default ui-corner-all" ),
handle = "<a class='ui-slider-handle ui-state-default
ui-corner-all' href='#'></a>",
handles = [];
handleCount = ( options.values && options.values.length ) || 1;
if ( existingHandles.length > handleCount ) {
existingHandles.slice( handleCount ).remove();
existingHandles = existingHandles.slice( 0, handleCount );
}
for ( i = existingHandles.length; i < handleCount; i++ ) {
handles.push( handle );
}
this.handles = existingHandles.add( $( handles.join( "" )
).appendTo( this.element ) );
this.handle = this.handles.eq( 0 );
this.handles.each(function( i ) {
$( this ).data( "ui-slider-handle-index", i );
});
},
_createRange: function() {
var options = this.options,
classes = "";
if ( options.range ) {
if ( options.range === true ) {
if ( !options.values ) {
options.values = [ this._valueMin(), this._valueMin() ];
} else if ( options.values.length && options.values.length !==
2 ) {
options.values = [ options.values[0], options.values[0] ];
} else if ( $.isArray( options.values ) ) {
options.values = options.values.slice(0);
}
}
if ( !this.range || !this.range.length ) {
this.range = $( "<div></div>" )
.appendTo( this.element );
classes = "ui-slider-range" +
// note: this isn't the most fittingly semantic framework class
for this element,
// but worked best visually with a variety of themes
" ui-widget-header ui-corner-all";
} else {
this.range.removeClass( "ui-slider-range-min
ui-slider-range-max" )
// Handle range switching from true to min/max
.css({
"left": "",
"bottom": ""
});
}
this.range.addClass( classes +
( ( options.range === "min" || options.range ===
"max" ) ? " ui-slider-range-" + options.range :
"" ) );
} else {
this.range = $([]);
}
},
_setupEvents: function() {
var elements = this.handles.add( this.range ).filter( "a" );
this._off( elements );
this._on( elements, this._handleEvents );
this._hoverable( elements );
this._focusable( elements );
},
_destroy: function() {
this.handles.remove();
this.range.remove();
this.element
.removeClass( "ui-slider" +
" ui-slider-horizontal" +
" ui-slider-vertical" +
" ui-widget" +
" ui-widget-content" +
" ui-corner-all" );
this._mouseDestroy();
},
_mouseCapture: function( event ) {
var position, normValue, distance, closestHandle, index, allowed, offset,
mouseOverHandle,
that = this,
o = this.options;
if ( o.disabled ) {
return false;
}
this.elementSize = {
width: this.element.outerWidth(),
height: this.element.outerHeight()
};
this.elementOffset = this.element.offset();
position = { x: event.pageX, y: event.pageY };
normValue = this._normValueFromMouse( position );
distance = this._valueMax() - this._valueMin() + 1;
this.handles.each(function( i ) {
var thisDistance = Math.abs( normValue - that.values(i) );
if (( distance > thisDistance ) ||
( distance === thisDistance &&
(i === that._lastChangedValue || that.values(i) === o.min ))) {
distance = thisDistance;
closestHandle = $( this );
index = i;
}
});
allowed = this._start( event, index );
if ( allowed === false ) {
return false;
}
this._mouseSliding = true;
this._handleIndex = index;
closestHandle
.addClass( "ui-state-active" )
.focus();
offset = closestHandle.offset();
mouseOverHandle = !$( event.target ).parents().addBack().is(
".ui-slider-handle" );
this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
top: event.pageY - offset.top -
( closestHandle.height() / 2 ) -
( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 )
-
( parseInt( closestHandle.css("borderBottomWidth"), 10 ) ||
0) +
( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
};
if ( !this.handles.hasClass( "ui-state-hover" ) ) {
this._slide( event, index, normValue );
}
this._animateOff = true;
return true;
},
_mouseStart: function() {
return true;
},
_mouseDrag: function( event ) {
var position = { x: event.pageX, y: event.pageY },
normValue = this._normValueFromMouse( position );
this._slide( event, this._handleIndex, normValue );
return false;
},
_mouseStop: function( event ) {
this.handles.removeClass( "ui-state-active" );
this._mouseSliding = false;
this._stop( event, this._handleIndex );
this._change( event, this._handleIndex );
this._handleIndex = null;
this._clickOffset = null;
this._animateOff = false;
return false;
},
_detectOrientation: function() {
this.orientation = ( this.options.orientation === "vertical" )
? "vertical" : "horizontal";
},
_normValueFromMouse: function( position ) {
var pixelTotal,
pixelMouse,
percentMouse,
valueTotal,
valueMouse;
if ( this.orientation === "horizontal" ) {
pixelTotal = this.elementSize.width;
pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset
? this._clickOffset.left : 0 );
} else {
pixelTotal = this.elementSize.height;
pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ?
this._clickOffset.top : 0 );
}
percentMouse = ( pixelMouse / pixelTotal );
if ( percentMouse > 1 ) {
percentMouse = 1;
}
if ( percentMouse < 0 ) {
percentMouse = 0;
}
if ( this.orientation === "vertical" ) {
percentMouse = 1 - percentMouse;
}
valueTotal = this._valueMax() - this._valueMin();
valueMouse = this._valueMin() + percentMouse * valueTotal;
return this._trimAlignValue( valueMouse );
},
_start: function( event, index ) {
var uiHash = {
handle: this.handles[ index ],
value: this.value()
};
if ( this.options.values && this.options.values.length ) {
uiHash.value = this.values( index );
uiHash.values = this.values();
}
return this._trigger( "start", event, uiHash );
},
_slide: function( event, index, newVal ) {
var otherVal,
newValues,
allowed;
if ( this.options.values && this.options.values.length ) {
otherVal = this.values( index ? 0 : 1 );
if ( ( this.options.values.length === 2 && this.options.range
=== true ) &&
( ( index === 0 && newVal > otherVal) || ( index === 1
&& newVal < otherVal ) )
) {
newVal = otherVal;
}
if ( newVal !== this.values( index ) ) {
newValues = this.values();
newValues[ index ] = newVal;
// A slide can be canceled by returning false from the slide callback
allowed = this._trigger( "slide", event, {
handle: this.handles[ index ],
value: newVal,
values: newValues
} );
otherVal = this.values( index ? 0 : 1 );
if ( allowed !== false ) {
this.values( index, newVal, true );
}
}
} else {
if ( newVal !== this.value() ) {
// A slide can be canceled by returning false from the slide callback
allowed = this._trigger( "slide", event, {
handle: this.handles[ index ],
value: newVal
} );
if ( allowed !== false ) {
this.value( newVal );
}
}
}
},
_stop: function( event, index ) {
var uiHash = {
handle: this.handles[ index ],
value: this.value()
};
if ( this.options.values && this.options.values.length ) {
uiHash.value = this.values( index );
uiHash.values = this.values();
}
this._trigger( "stop", event, uiHash );
},
_change: function( event, index ) {
if ( !this._keySliding && !this._mouseSliding ) {
var uiHash = {
handle: this.handles[ index ],
value: this.value()
};
if ( this.options.values && this.options.values.length ) {
uiHash.value = this.values( index );
uiHash.values = this.values();
}
//store the last changed value index for reference when handles overlap
this._lastChangedValue = index;
this._trigger( "change", event, uiHash );
}
},
value: function( newValue ) {
if ( arguments.length ) {
this.options.value = this._trimAlignValue( newValue );
this._refreshValue();
this._change( null, 0 );
return;
}
return this._value();
},
values: function( index, newValue ) {
var vals,
newValues,
i;
if ( arguments.length > 1 ) {
this.options.values[ index ] = this._trimAlignValue( newValue );
this._refreshValue();
this._change( null, index );
return;
}
if ( arguments.length ) {
if ( $.isArray( arguments[ 0 ] ) ) {
vals = this.options.values;
newValues = arguments[ 0 ];
for ( i = 0; i < vals.length; i += 1 ) {
vals[ i ] = this._trimAlignValue( newValues[ i ] );
this._change( null, i );
}
this._refreshValue();
} else {
if ( this.options.values && this.options.values.length ) {
return this._values( index );
} else {
return this.value();
}
}
} else {
return this._values();
}
},
_setOption: function( key, value ) {
var i,
valsLength = 0;
if ( key === "range" && this.options.range === true )
{
if ( value === "min" ) {
this.options.value = this._values( 0 );
this.options.values = null;
} else if ( value === "max" ) {
this.options.value = this._values( this.options.values.length-1 );
this.options.values = null;
}
}
if ( $.isArray( this.options.values ) ) {
valsLength = this.options.values.length;
}
$.Widget.prototype._setOption.apply( this, arguments );
switch ( key ) {
case "orientation":
this._detectOrientation();
this.element
.removeClass( "ui-slider-horizontal ui-slider-vertical" )
.addClass( "ui-slider-" + this.orientation );
this._refreshValue();
break;
case "value":
this._animateOff = true;
this._refreshValue();
this._change( null, 0 );
this._animateOff = false;
break;
case "values":
this._animateOff = true;
this._refreshValue();
for ( i = 0; i < valsLength; i += 1 ) {
this._change( null, i );
}
this._animateOff = false;
break;
case "min":
case "max":
this._animateOff = true;
this._refreshValue();
this._animateOff = false;
break;
case "range":
this._animateOff = true;
this._refresh();
this._animateOff = false;
break;
}
},
//internal value getter
// _value() returns value trimmed by min and max, aligned by step
_value: function() {
var val = this.options.value;
val = this._trimAlignValue( val );
return val;
},
//internal values getter
// _values() returns array of values trimmed by min and max, aligned by
step
// _values( index ) returns single value trimmed by min and max, aligned
by step
_values: function( index ) {
var val,
vals,
i;
if ( arguments.length ) {
val = this.options.values[ index ];
val = this._trimAlignValue( val );
return val;
} else if ( this.options.values && this.options.values.length )
{
// .slice() creates a copy of the array
// this copy gets trimmed by min and max and then returned
vals = this.options.values.slice();
for ( i = 0; i < vals.length; i+= 1) {
vals[ i ] = this._trimAlignValue( vals[ i ] );
}
return vals;
} else {
return [];
}
},
// returns the step-aligned value that val is closest to, between
(inclusive) min and max
_trimAlignValue: function( val ) {
if ( val <= this._valueMin() ) {
return this._valueMin();
}
if ( val >= this._valueMax() ) {
return this._valueMax();
}
var step = ( this.options.step > 0 ) ? this.options.step : 1,
valModStep = (val - this._valueMin()) % step,
alignValue = val - valModStep;
if ( Math.abs(valModStep) * 2 >= step ) {
alignValue += ( valModStep > 0 ) ? step : ( -step );
}
// Since JavaScript has problems with large floats, round
// the final value to 5 digits after the decimal point (see #4124)
return parseFloat( alignValue.toFixed(5) );
},
_valueMin: function() {
return this.options.min;
},
_valueMax: function() {
return this.options.max;
},
_refreshValue: function() {
var lastValPercent, valPercent, value, valueMin, valueMax,
oRange = this.options.range,
o = this.options,
that = this,
animate = ( !this._animateOff ) ? o.animate : false,
_set = {};
if ( this.options.values && this.options.values.length ) {
this.handles.each(function( i ) {
valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax()
- that._valueMin() ) * 100;
_set[ that.orientation === "horizontal" ? "left" :
"bottom" ] = valPercent + "%";
$( this ).stop( 1, 1 )[ animate ? "animate" : "css"
]( _set, o.animate );
if ( that.options.range === true ) {
if ( that.orientation === "horizontal" ) {
if ( i === 0 ) {
that.range.stop( 1, 1 )[ animate ? "animate" :
"css" ]( { left: valPercent + "%" }, o.animate );
}
if ( i === 1 ) {
that.range[ animate ? "animate" : "css" ]( {
width: ( valPercent - lastValPercent ) + "%" }, { queue: false,
duration: o.animate } );
}
} else {
if ( i === 0 ) {
that.range.stop( 1, 1 )[ animate ? "animate" :
"css" ]( { bottom: ( valPercent ) + "%" }, o.animate
);
}
if ( i === 1 ) {
that.range[ animate ? "animate" : "css" ]( {
height: ( valPercent - lastValPercent ) + "%" }, { queue: false,
duration: o.animate } );
}
}
}
lastValPercent = valPercent;
});
} else {
value = this.value();
valueMin = this._valueMin();
valueMax = this._valueMax();
valPercent = ( valueMax !== valueMin ) ?
( value - valueMin ) / ( valueMax - valueMin ) * 100 :
0;
_set[ this.orientation === "horizontal" ? "left" :
"bottom" ] = valPercent + "%";
this.handle.stop( 1, 1 )[ animate ? "animate" :
"css" ]( _set, o.animate );
if ( oRange === "min" && this.orientation ===
"horizontal" ) {
this.range.stop( 1, 1 )[ animate ? "animate" :
"css" ]( { width: valPercent + "%" }, o.animate );
}
if ( oRange === "max" && this.orientation ===
"horizontal" ) {
this.range[ animate ? "animate" : "css" ]( { width:
( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate
} );
}
if ( oRange === "min" && this.orientation ===
"vertical" ) {
this.range.stop( 1, 1 )[ animate ? "animate" :
"css" ]( { height: valPercent + "%" }, o.animate );
}
if ( oRange === "max" && this.orientation ===
"vertical" ) {
this.range[ animate ? "animate" : "css" ]( {
height: ( 100 - valPercent ) + "%" }, { queue: false, duration:
o.animate } );
}
}
},
_handleEvents: {
keydown: function( event ) {
/*jshint maxcomplexity:25*/
var allowed, curVal, newVal, step,
index = $( event.target ).data( "ui-slider-handle-index" );
switch ( event.keyCode ) {
case $.ui.keyCode.HOME:
case $.ui.keyCode.END:
case $.ui.keyCode.PAGE_UP:
case $.ui.keyCode.PAGE_DOWN:
case $.ui.keyCode.UP:
case $.ui.keyCode.RIGHT:
case $.ui.keyCode.DOWN:
case $.ui.keyCode.LEFT:
event.preventDefault();
if ( !this._keySliding ) {
this._keySliding = true;
$( event.target ).addClass( "ui-state-active" );
allowed = this._start( event, index );
if ( allowed === false ) {
return;
}
}
break;
}
step = this.options.step;
if ( this.options.values && this.options.values.length ) {
curVal = newVal = this.values( index );
} else {
curVal = newVal = this.value();
}
switch ( event.keyCode ) {
case $.ui.keyCode.HOME:
newVal = this._valueMin();
break;
case $.ui.keyCode.END:
newVal = this._valueMax();
break;
case $.ui.keyCode.PAGE_UP:
newVal = this._trimAlignValue( curVal + ( (this._valueMax() -
this._valueMin()) / numPages ) );
break;
case $.ui.keyCode.PAGE_DOWN:
newVal = this._trimAlignValue( curVal - ( (this._valueMax() -
this._valueMin()) / numPages ) );
break;
case $.ui.keyCode.UP:
case $.ui.keyCode.RIGHT:
if ( curVal === this._valueMax() ) {
return;
}
newVal = this._trimAlignValue( curVal + step );
break;
case $.ui.keyCode.DOWN:
case $.ui.keyCode.LEFT:
if ( curVal === this._valueMin() ) {
return;
}
newVal = this._trimAlignValue( curVal - step );
break;
}
this._slide( event, index, newVal );
},
click: function( event ) {
event.preventDefault();
},
keyup: function( event ) {
var index = $( event.target ).data( "ui-slider-handle-index"
);
if ( this._keySliding ) {
this._keySliding = false;
this._stop( event, index );
this._change( event, index );
$( event.target ).removeClass( "ui-state-active" );
}
}
}
});
}(jQuery));
admin/ui/timepicker.js000064400000220446151167411240010755 0ustar00/*!
jQuery Timepicker Addon - v1.4 - 2013-08-11
* http://trentrichardson.com/examples/timepicker
* Copyright (c) 2013 Trent Richardson; Licensed MIT */
(function ($) {
/*
* Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum
call stack size exceeded"
*/
$.ui.timepicker = $.ui.timepicker || {};
if ($.ui.timepicker.version) {
return;
}
/*
* Extend jQueryUI, get it started with our version number
*/
$.extend($.ui, {
timepicker: {
version: "1.4"
}
});
/*
* Timepicker manager.
* Use the singleton instance of this class, $.timepicker, to interact with
the time picker.
* Settings for (groups of) time pickers are maintained in an instance
object,
* allowing multiple different settings on the same page.
*/
var Timepicker = function () {
this.regional = []; // Available regional settings, indexed by language
code
this.regional[''] = { // Default regional settings
currentText: 'Now',
closeText: 'Done',
amNames: ['AM', 'A'],
pmNames: ['PM', 'P'],
timeFormat: 'HH:mm',
timeSuffix: '',
timeOnlyTitle: 'Choose Time',
timeText: 'Time',
hourText: 'Hour',
minuteText: 'Minute',
secondText: 'Second',
millisecText: 'Millisecond',
microsecText: 'Microsecond',
timezoneText: 'Time Zone',
isRTL: false
};
this._defaults = { // Global defaults for all the datetime picker
instances
showButtonPanel: true,
timeOnly: false,
showHour: null,
showMinute: null,
showSecond: null,
showMillisec: null,
showMicrosec: null,
showTimezone: null,
showTime: true,
stepHour: 1,
stepMinute: 1,
stepSecond: 1,
stepMillisec: 1,
stepMicrosec: 1,
hour: 0,
minute: 0,
second: 0,
millisec: 0,
microsec: 0,
timezone: null,
hourMin: 0,
minuteMin: 0,
secondMin: 0,
millisecMin: 0,
microsecMin: 0,
hourMax: 23,
minuteMax: 59,
secondMax: 59,
millisecMax: 999,
microsecMax: 999,
minDateTime: null,
maxDateTime: null,
onSelect: null,
hourGrid: 0,
minuteGrid: 0,
secondGrid: 0,
millisecGrid: 0,
microsecGrid: 0,
alwaysSetTime: true,
separator: ' ',
altFieldTimeOnly: true,
altTimeFormat: null,
altSeparator: null,
altTimeSuffix: null,
pickerTimeFormat: null,
pickerTimeSuffix: null,
showTimepicker: true,
timezoneList: null,
addSliderAccess: false,
sliderAccessArgs: null,
controlType: 'slider',
defaultValue: null,
parse: 'strict'
};
$.extend(this._defaults, this.regional['']);
};
$.extend(Timepicker.prototype, {
$input: null,
$altInput: null,
$timeObj: null,
inst: null,
hour_slider: null,
minute_slider: null,
second_slider: null,
millisec_slider: null,
microsec_slider: null,
timezone_select: null,
hour: 0,
minute: 0,
second: 0,
millisec: 0,
microsec: 0,
timezone: null,
hourMinOriginal: null,
minuteMinOriginal: null,
secondMinOriginal: null,
millisecMinOriginal: null,
microsecMinOriginal: null,
hourMaxOriginal: null,
minuteMaxOriginal: null,
secondMaxOriginal: null,
millisecMaxOriginal: null,
microsecMaxOriginal: null,
ampm: '',
formattedDate: '',
formattedTime: '',
formattedDateTime: '',
timezoneList: null,
units: ['hour', 'minute', 'second',
'millisec', 'microsec'],
support: {},
control: null,
/*
* Override the default settings for all instances of the time picker.
* @param {Object} settings object - the new settings to use as defaults
(anonymous object)
* @return {Object} the manager object
*/
setDefaults: function (settings) {
extendRemove(this._defaults, settings || {});
return this;
},
/*
* Create a new Timepicker instance
*/
_newInst: function ($input, opts) {
var tp_inst = new Timepicker(),
inlineSettings = {},
fns = {},
overrides, i;
for (var attrName in this._defaults) {
if (this._defaults.hasOwnProperty(attrName)) {
var attrValue = $input.attr('time:' + attrName);
if (attrValue) {
try {
inlineSettings[attrName] = eval(attrValue);
} catch (err) {
inlineSettings[attrName] = attrValue;
}
}
}
}
overrides = {
beforeShow: function (input, dp_inst) {
if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) {
return tp_inst._defaults.evnts.beforeShow.call($input[0], input,
dp_inst, tp_inst);
}
},
onChangeMonthYear: function (year, month, dp_inst) {
// Update the time as well : this prevents the time from disappearing
from the $input field.
tp_inst._updateDateTime(dp_inst);
if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) {
tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year,
month, dp_inst, tp_inst);
}
},
onClose: function (dateText, dp_inst) {
if (tp_inst.timeDefined === true && $input.val() !==
'') {
tp_inst._updateDateTime(dp_inst);
}
if ($.isFunction(tp_inst._defaults.evnts.onClose)) {
tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst,
tp_inst);
}
}
};
for (i in overrides) {
if (overrides.hasOwnProperty(i)) {
fns[i] = opts[i] || null;
}
}
tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, opts,
overrides, {
evnts: fns,
timepicker: tp_inst // add timepicker as a property of datepicker:
$.datepicker._get(dp_inst, 'timepicker');
});
tp_inst.amNames = $.map(tp_inst._defaults.amNames, function (val) {
return val.toUpperCase();
});
tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function (val) {
return val.toUpperCase();
});
// detect which units are supported
tp_inst.support = detectSupport(
tp_inst._defaults.timeFormat +
(tp_inst._defaults.pickerTimeFormat ?
tp_inst._defaults.pickerTimeFormat : '') +
(tp_inst._defaults.altTimeFormat ? tp_inst._defaults.altTimeFormat :
''));
// controlType is string - key to our this._controls
if (typeof(tp_inst._defaults.controlType) === 'string') {
if (tp_inst._defaults.controlType === 'slider' &&
typeof($.ui.slider) === 'undefined') {
tp_inst._defaults.controlType = 'select';
}
tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType];
}
// controlType is an object and must implement create, options, value
methods
else {
tp_inst.control = tp_inst._defaults.controlType;
}
// prep the timezone options
var timezoneList = [-720, -660, -600, -570, -540, -480, -420, -360,
-300, -270, -240, -210, -180, -120, -60,
0, 60, 120, 180, 210, 240, 270, 300, 330, 345, 360, 390, 420, 480,
525, 540, 570, 600, 630, 660, 690, 720, 765, 780, 840];
if (tp_inst._defaults.timezoneList !== null) {
timezoneList = tp_inst._defaults.timezoneList;
}
var tzl = timezoneList.length, tzi = 0, tzv = null;
if (tzl > 0 && typeof timezoneList[0] !== 'object')
{
for (; tzi < tzl; tzi++) {
tzv = timezoneList[tzi];
timezoneList[tzi] = { value: tzv, label:
$.timepicker.timezoneOffsetString(tzv, tp_inst.support.iso8601) };
}
}
tp_inst._defaults.timezoneList = timezoneList;
// set the default units
tp_inst.timezone = tp_inst._defaults.timezone !== null ?
$.timepicker.timezoneOffsetNumber(tp_inst._defaults.timezone) :
((new Date()).getTimezoneOffset() * -1);
tp_inst.hour = tp_inst._defaults.hour < tp_inst._defaults.hourMin ?
tp_inst._defaults.hourMin :
tp_inst._defaults.hour > tp_inst._defaults.hourMax ?
tp_inst._defaults.hourMax : tp_inst._defaults.hour;
tp_inst.minute = tp_inst._defaults.minute <
tp_inst._defaults.minuteMin ? tp_inst._defaults.minuteMin :
tp_inst._defaults.minute > tp_inst._defaults.minuteMax ?
tp_inst._defaults.minuteMax : tp_inst._defaults.minute;
tp_inst.second = tp_inst._defaults.second <
tp_inst._defaults.secondMin ? tp_inst._defaults.secondMin :
tp_inst._defaults.second > tp_inst._defaults.secondMax ?
tp_inst._defaults.secondMax : tp_inst._defaults.second;
tp_inst.millisec = tp_inst._defaults.millisec <
tp_inst._defaults.millisecMin ? tp_inst._defaults.millisecMin :
tp_inst._defaults.millisec > tp_inst._defaults.millisecMax ?
tp_inst._defaults.millisecMax : tp_inst._defaults.millisec;
tp_inst.microsec = tp_inst._defaults.microsec <
tp_inst._defaults.microsecMin ? tp_inst._defaults.microsecMin :
tp_inst._defaults.microsec > tp_inst._defaults.microsecMax ?
tp_inst._defaults.microsecMax : tp_inst._defaults.microsec;
tp_inst.ampm = '';
tp_inst.$input = $input;
if (tp_inst._defaults.altField) {
tp_inst.$altInput = $(tp_inst._defaults.altField).css({
cursor: 'pointer'
}).focus(function () {
$input.trigger("focus");
});
}
if (tp_inst._defaults.minDate === 0 || tp_inst._defaults.minDateTime ===
0) {
tp_inst._defaults.minDate = new Date();
}
if (tp_inst._defaults.maxDate === 0 || tp_inst._defaults.maxDateTime ===
0) {
tp_inst._defaults.maxDate = new Date();
}
// datepicker needs minDate/maxDate, timepicker needs
minDateTime/maxDateTime..
if (tp_inst._defaults.minDate !== undefined &&
tp_inst._defaults.minDate instanceof Date) {
tp_inst._defaults.minDateTime = new
Date(tp_inst._defaults.minDate.getTime());
}
if (tp_inst._defaults.minDateTime !== undefined &&
tp_inst._defaults.minDateTime instanceof Date) {
tp_inst._defaults.minDate = new
Date(tp_inst._defaults.minDateTime.getTime());
}
if (tp_inst._defaults.maxDate !== undefined &&
tp_inst._defaults.maxDate instanceof Date) {
tp_inst._defaults.maxDateTime = new
Date(tp_inst._defaults.maxDate.getTime());
}
if (tp_inst._defaults.maxDateTime !== undefined &&
tp_inst._defaults.maxDateTime instanceof Date) {
tp_inst._defaults.maxDate = new
Date(tp_inst._defaults.maxDateTime.getTime());
}
tp_inst.$input.bind('focus', function () {
tp_inst._onFocus();
});
return tp_inst;
},
/*
* add our sliders to the calendar
*/
_addTimePicker: function (dp_inst) {
var currDT = (this.$altInput && this._defaults.altFieldTimeOnly)
? this.$input.val() + ' ' + this.$altInput.val() :
this.$input.val();
this.timeDefined = this._parseTime(currDT);
this._limitMinMaxDateTime(dp_inst, false);
this._injectTimePicker();
},
/*
* parse the time string from input value or _setTime
*/
_parseTime: function (timeString, withDate) {
if (!this.inst) {
this.inst = $.datepicker._getInst(this.$input[0]);
}
if (withDate || !this._defaults.timeOnly) {
var dp_dateFormat = $.datepicker._get(this.inst,
'dateFormat');
try {
var parseRes = parseDateTimeInternal(dp_dateFormat,
this._defaults.timeFormat, timeString,
$.datepicker._getFormatConfig(this.inst), this._defaults);
if (!parseRes.timeObj) {
return false;
}
$.extend(this, parseRes.timeObj);
} catch (err) {
$.timepicker.log("Error parsing the date/time string: " +
err +
"\ndate/time string = " + timeString +
"\ntimeFormat = " + this._defaults.timeFormat +
"\ndateFormat = " + dp_dateFormat);
return false;
}
return true;
} else {
var timeObj = $.datepicker.parseTime(this._defaults.timeFormat,
timeString, this._defaults);
if (!timeObj) {
return false;
}
$.extend(this, timeObj);
return true;
}
},
/*
* generate and inject html for timepicker into ui datepicker
*/
_injectTimePicker: function () {
var $dp = this.inst.dpDiv,
o = this.inst.settings,
tp_inst = this,
litem = '',
uitem = '',
show = null,
max = {},
gridSize = {},
size = null,
i = 0,
l = 0;
// Prevent displaying twice
if ($dp.find("div.ui-timepicker-div").length === 0 &&
o.showTimepicker) {
var noDisplay = ' style="display:none;"',
html = '<div class="ui-timepicker-div' + (o.isRTL ?
' ui-timepicker-rtl' : '') +
'"><dl>' + '<dt
class="ui_tpicker_time_label"' + ((o.showTime) ?
'' : noDisplay) + '>' + o.timeText +
'</dt>' +
'<dd class="ui_tpicker_time"' +
((o.showTime) ? '' : noDisplay) + '></dd>';
// Create the markup
for (i = 0, l = this.units.length; i < l; i++) {
litem = this.units[i];
uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1);
show = o['show' + uitem] !== null ? o['show' +
uitem] : this.support[litem];
// Added by Peter Medeiros:
// - Figure out what the hour/minute/second max should be based on the
step values.
// - Example: if stepMinute is 15, then minMax is 45.
max[litem] = parseInt((o[litem + 'Max'] - ((o[litem +
'Max'] - o[litem + 'Min']) % o['step' +
uitem])), 10);
gridSize[litem] = 0;
html += '<dt class="ui_tpicker_' + litem +
'_label"' + (show ? '' : noDisplay) +
'>' + o[litem + 'Text'] + '</dt>' +
'<dd class="ui_tpicker_' + litem +
'"><div class="ui_tpicker_' + litem +
'_slider"' + (show ? '' : noDisplay) +
'></div>';
if (show && o[litem + 'Grid'] > 0) {
html += '<div style="padding-left:
1px"><table
class="ui-tpicker-grid-label"><tr>';
if (litem === 'hour') {
for (var h = o[litem + 'Min']; h <= max[litem]; h +=
parseInt(o[litem + 'Grid'], 10)) {
gridSize[litem]++;
var tmph = $.datepicker.formatTime(this.support.ampm ?
'hht' : 'HH', {hour: h}, o);
html += '<td data-for="' + litem +
'">' + tmph + '</td>';
}
}
else {
for (var m = o[litem + 'Min']; m <= max[litem]; m +=
parseInt(o[litem + 'Grid'], 10)) {
gridSize[litem]++;
html += '<td data-for="' + litem +
'">' + ((m < 10) ? '0' : '') + m +
'</td>';
}
}
html += '</tr></table></div>';
}
html += '</dd>';
}
// Timezone
var showTz = o.showTimezone !== null ? o.showTimezone :
this.support.timezone;
html += '<dt class="ui_tpicker_timezone_label"'
+ (showTz ? '' : noDisplay) + '>' + o.timezoneText +
'</dt>';
html += '<dd class="ui_tpicker_timezone" ' +
(showTz ? '' : noDisplay) + '></dd>';
// Create the elements from string
html += '</dl></div>';
var $tp = $(html);
// if we only want time picker...
if (o.timeOnly === true) {
$tp.prepend('<div class="ui-widget-header
ui-helper-clearfix ui-corner-all">' + '<div
class="ui-datepicker-title">' + o.timeOnlyTitle +
'</div>' + '</div>');
$dp.find('.ui-datepicker-header,
.ui-datepicker-calendar').hide();
}
// add sliders, adjust grids, add events
for (i = 0, l = tp_inst.units.length; i < l; i++) {
litem = tp_inst.units[i];
uitem = litem.substr(0, 1).toUpperCase() + litem.substr(1);
show = o['show' + uitem] !== null ? o['show' +
uitem] : this.support[litem];
// add the slider
tp_inst[litem + '_slider'] = tp_inst.control.create(tp_inst,
$tp.find('.ui_tpicker_' + litem + '_slider'), litem,
tp_inst[litem], o[litem + 'Min'], max[litem], o['step'
+ uitem]);
// adjust the grid and add click event
if (show && o[litem + 'Grid'] > 0) {
size = 100 * gridSize[litem] * o[litem + 'Grid'] /
(max[litem] - o[litem + 'Min']);
$tp.find('.ui_tpicker_' + litem + '
table').css({
width: size + "%",
marginLeft: o.isRTL ? '0' : ((size / (-2 *
gridSize[litem])) + "%"),
marginRight: o.isRTL ? ((size / (-2 * gridSize[litem])) +
"%") : '0',
borderCollapse: 'collapse'
}).find("td").click(function (e) {
var $t = $(this),
h = $t.html(),
n = parseInt(h.replace(/[^0-9]/g), 10),
ap = h.replace(/[^apm]/ig),
f = $t.data('for'); // loses scope, so we use data-for
if (f === 'hour') {
if (ap.indexOf('p') !== -1 && n < 12) {
n += 12;
}
else {
if (ap.indexOf('a') !== -1 && n === 12) {
n = 0;
}
}
}
tp_inst.control.value(tp_inst, tp_inst[f + '_slider'],
litem, n);
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
}).css({
cursor: 'pointer',
width: (100 / gridSize[litem]) + '%',
textAlign: 'center',
overflow: 'hidden'
});
} // end if grid > 0
} // end for loop
// Add timezone options
this.timezone_select =
$tp.find('.ui_tpicker_timezone').append('<select></select>').find("select");
$.fn.append.apply(this.timezone_select,
$.map(o.timezoneList, function (val, idx) {
return $("<option />").val(typeof val ===
"object" ? val.value : val).text(typeof val ===
"object" ? val.label : val);
}));
if (typeof(this.timezone) !== "undefined" &&
this.timezone !== null && this.timezone !== "") {
var local_timezone = (new Date(this.inst.selectedYear,
this.inst.selectedMonth, this.inst.selectedDay, 12)).getTimezoneOffset() *
-1;
if (local_timezone === this.timezone) {
selectLocalTimezone(tp_inst);
} else {
this.timezone_select.val(this.timezone);
}
} else {
if (typeof(this.hour) !== "undefined" && this.hour
!== null && this.hour !== "") {
this.timezone_select.val(o.timezone);
} else {
selectLocalTimezone(tp_inst);
}
}
this.timezone_select.change(function () {
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
});
// End timezone options
// inject timepicker into datepicker
var $buttonPanel = $dp.find('.ui-datepicker-buttonpane');
if ($buttonPanel.length) {
$buttonPanel.before($tp);
} else {
$dp.append($tp);
}
this.$timeObj = $tp.find('.ui_tpicker_time');
if (this.inst !== null) {
var timeDefined = this.timeDefined;
this._onTimeChange();
this.timeDefined = timeDefined;
}
// slideAccess integration:
http://trentrichardson.com/2011/11/11/jquery-ui-sliders-and-touch-accessibility/
if (this._defaults.addSliderAccess) {
var sliderAccessArgs = this._defaults.sliderAccessArgs,
rtl = this._defaults.isRTL;
sliderAccessArgs.isRTL = rtl;
setTimeout(function () { // fix for inline mode
if ($tp.find('.ui-slider-access').length === 0) {
$tp.find('.ui-slider:visible').sliderAccess(sliderAccessArgs);
// fix any grids since sliders are shorter
var sliderAccessWidth =
$tp.find('.ui-slider-access:eq(0)').outerWidth(true);
if (sliderAccessWidth) {
$tp.find('table:visible').each(function () {
var $g = $(this),
oldWidth = $g.outerWidth(),
oldMarginLeft = $g.css(rtl ? 'marginRight' :
'marginLeft').toString().replace('%', ''),
newWidth = oldWidth - sliderAccessWidth,
newMarginLeft = ((oldMarginLeft * newWidth) / oldWidth) +
'%',
css = { width: newWidth, marginRight: 0, marginLeft: 0 };
css[rtl ? 'marginRight' : 'marginLeft'] =
newMarginLeft;
$g.css(css);
});
}
}
}, 10);
}
// end slideAccess integration
tp_inst._limitMinMaxDateTime(this.inst, true);
}
},
/*
* This function tries to limit the ability to go outside the
* min/max date range
*/
_limitMinMaxDateTime: function (dp_inst, adjustSliders) {
var o = this._defaults,
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth,
dp_inst.selectedDay);
if (!this._defaults.showTimepicker) {
return;
} // No time so nothing to check here
if ($.datepicker._get(dp_inst, 'minDateTime') !== null
&& $.datepicker._get(dp_inst, 'minDateTime') !==
undefined && dp_date) {
var minDateTime = $.datepicker._get(dp_inst, 'minDateTime'),
minDateTimeDate = new Date(minDateTime.getFullYear(),
minDateTime.getMonth(), minDateTime.getDate(), 0, 0, 0, 0);
if (this.hourMinOriginal === null || this.minuteMinOriginal === null ||
this.secondMinOriginal === null || this.millisecMinOriginal === null ||
this.microsecMinOriginal === null) {
this.hourMinOriginal = o.hourMin;
this.minuteMinOriginal = o.minuteMin;
this.secondMinOriginal = o.secondMin;
this.millisecMinOriginal = o.millisecMin;
this.microsecMinOriginal = o.microsecMin;
}
if (dp_inst.settings.timeOnly || minDateTimeDate.getTime() ===
dp_date.getTime()) {
this._defaults.hourMin = minDateTime.getHours();
if (this.hour <= this._defaults.hourMin) {
this.hour = this._defaults.hourMin;
this._defaults.minuteMin = minDateTime.getMinutes();
if (this.minute <= this._defaults.minuteMin) {
this.minute = this._defaults.minuteMin;
this._defaults.secondMin = minDateTime.getSeconds();
if (this.second <= this._defaults.secondMin) {
this.second = this._defaults.secondMin;
this._defaults.millisecMin = minDateTime.getMilliseconds();
if (this.millisec <= this._defaults.millisecMin) {
this.millisec = this._defaults.millisecMin;
this._defaults.microsecMin = minDateTime.getMicroseconds();
} else {
if (this.microsec < this._defaults.microsecMin) {
this.microsec = this._defaults.microsecMin;
}
this._defaults.microsecMin = this.microsecMinOriginal;
}
} else {
this._defaults.millisecMin = this.millisecMinOriginal;
this._defaults.microsecMin = this.microsecMinOriginal;
}
} else {
this._defaults.secondMin = this.secondMinOriginal;
this._defaults.millisecMin = this.millisecMinOriginal;
this._defaults.microsecMin = this.microsecMinOriginal;
}
} else {
this._defaults.minuteMin = this.minuteMinOriginal;
this._defaults.secondMin = this.secondMinOriginal;
this._defaults.millisecMin = this.millisecMinOriginal;
this._defaults.microsecMin = this.microsecMinOriginal;
}
} else {
this._defaults.hourMin = this.hourMinOriginal;
this._defaults.minuteMin = this.minuteMinOriginal;
this._defaults.secondMin = this.secondMinOriginal;
this._defaults.millisecMin = this.millisecMinOriginal;
this._defaults.microsecMin = this.microsecMinOriginal;
}
}
if ($.datepicker._get(dp_inst, 'maxDateTime') !== null
&& $.datepicker._get(dp_inst, 'maxDateTime') !==
undefined && dp_date) {
var maxDateTime = $.datepicker._get(dp_inst, 'maxDateTime'),
maxDateTimeDate = new Date(maxDateTime.getFullYear(),
maxDateTime.getMonth(), maxDateTime.getDate(), 0, 0, 0, 0);
if (this.hourMaxOriginal === null || this.minuteMaxOriginal === null ||
this.secondMaxOriginal === null || this.millisecMaxOriginal === null) {
this.hourMaxOriginal = o.hourMax;
this.minuteMaxOriginal = o.minuteMax;
this.secondMaxOriginal = o.secondMax;
this.millisecMaxOriginal = o.millisecMax;
this.microsecMaxOriginal = o.microsecMax;
}
if (dp_inst.settings.timeOnly || maxDateTimeDate.getTime() ===
dp_date.getTime()) {
this._defaults.hourMax = maxDateTime.getHours();
if (this.hour >= this._defaults.hourMax) {
this.hour = this._defaults.hourMax;
this._defaults.minuteMax = maxDateTime.getMinutes();
if (this.minute >= this._defaults.minuteMax) {
this.minute = this._defaults.minuteMax;
this._defaults.secondMax = maxDateTime.getSeconds();
if (this.second >= this._defaults.secondMax) {
this.second = this._defaults.secondMax;
this._defaults.millisecMax = maxDateTime.getMilliseconds();
if (this.millisec >= this._defaults.millisecMax) {
this.millisec = this._defaults.millisecMax;
this._defaults.microsecMax = maxDateTime.getMicroseconds();
} else {
if (this.microsec > this._defaults.microsecMax) {
this.microsec = this._defaults.microsecMax;
}
this._defaults.microsecMax = this.microsecMaxOriginal;
}
} else {
this._defaults.millisecMax = this.millisecMaxOriginal;
this._defaults.microsecMax = this.microsecMaxOriginal;
}
} else {
this._defaults.secondMax = this.secondMaxOriginal;
this._defaults.millisecMax = this.millisecMaxOriginal;
this._defaults.microsecMax = this.microsecMaxOriginal;
}
} else {
this._defaults.minuteMax = this.minuteMaxOriginal;
this._defaults.secondMax = this.secondMaxOriginal;
this._defaults.millisecMax = this.millisecMaxOriginal;
this._defaults.microsecMax = this.microsecMaxOriginal;
}
} else {
this._defaults.hourMax = this.hourMaxOriginal;
this._defaults.minuteMax = this.minuteMaxOriginal;
this._defaults.secondMax = this.secondMaxOriginal;
this._defaults.millisecMax = this.millisecMaxOriginal;
this._defaults.microsecMax = this.microsecMaxOriginal;
}
}
if (adjustSliders !== undefined && adjustSliders === true) {
var hourMax = parseInt((this._defaults.hourMax -
((this._defaults.hourMax - this._defaults.hourMin) %
this._defaults.stepHour)), 10),
minMax = parseInt((this._defaults.minuteMax -
((this._defaults.minuteMax - this._defaults.minuteMin) %
this._defaults.stepMinute)), 10),
secMax = parseInt((this._defaults.secondMax -
((this._defaults.secondMax - this._defaults.secondMin) %
this._defaults.stepSecond)), 10),
millisecMax = parseInt((this._defaults.millisecMax -
((this._defaults.millisecMax - this._defaults.millisecMin) %
this._defaults.stepMillisec)), 10),
microsecMax = parseInt((this._defaults.microsecMax -
((this._defaults.microsecMax - this._defaults.microsecMin) %
this._defaults.stepMicrosec)), 10);
if (this.hour_slider) {
this.control.options(this, this.hour_slider, 'hour', { min:
this._defaults.hourMin, max: hourMax });
this.control.value(this, this.hour_slider, 'hour', this.hour
- (this.hour % this._defaults.stepHour));
}
if (this.minute_slider) {
this.control.options(this, this.minute_slider, 'minute', {
min: this._defaults.minuteMin, max: minMax });
this.control.value(this, this.minute_slider, 'minute',
this.minute - (this.minute % this._defaults.stepMinute));
}
if (this.second_slider) {
this.control.options(this, this.second_slider, 'second', {
min: this._defaults.secondMin, max: secMax });
this.control.value(this, this.second_slider, 'second',
this.second - (this.second % this._defaults.stepSecond));
}
if (this.millisec_slider) {
this.control.options(this, this.millisec_slider, 'millisec',
{ min: this._defaults.millisecMin, max: millisecMax });
this.control.value(this, this.millisec_slider, 'millisec',
this.millisec - (this.millisec % this._defaults.stepMillisec));
}
if (this.microsec_slider) {
this.control.options(this, this.microsec_slider, 'microsec',
{ min: this._defaults.microsecMin, max: microsecMax });
this.control.value(this, this.microsec_slider, 'microsec',
this.microsec - (this.microsec % this._defaults.stepMicrosec));
}
}
},
/*
* when a slider moves, set the internal time...
* on time change is also called when the time is updated in the text
field
*/
_onTimeChange: function () {
if (!this._defaults.showTimepicker) {
return;
}
var hour = (this.hour_slider) ? this.control.value(this,
this.hour_slider, 'hour') : false,
minute = (this.minute_slider) ? this.control.value(this,
this.minute_slider, 'minute') : false,
second = (this.second_slider) ? this.control.value(this,
this.second_slider, 'second') : false,
millisec = (this.millisec_slider) ? this.control.value(this,
this.millisec_slider, 'millisec') : false,
microsec = (this.microsec_slider) ? this.control.value(this,
this.microsec_slider, 'microsec') : false,
timezone = (this.timezone_select) ? this.timezone_select.val() :
false,
o = this._defaults,
pickerTimeFormat = o.pickerTimeFormat || o.timeFormat,
pickerTimeSuffix = o.pickerTimeSuffix || o.timeSuffix;
if (typeof(hour) === 'object') {
hour = false;
}
if (typeof(minute) === 'object') {
minute = false;
}
if (typeof(second) === 'object') {
second = false;
}
if (typeof(millisec) === 'object') {
millisec = false;
}
if (typeof(microsec) === 'object') {
microsec = false;
}
if (typeof(timezone) === 'object') {
timezone = false;
}
if (hour !== false) {
hour = parseInt(hour, 10);
}
if (minute !== false) {
minute = parseInt(minute, 10);
}
if (second !== false) {
second = parseInt(second, 10);
}
if (millisec !== false) {
millisec = parseInt(millisec, 10);
}
if (microsec !== false) {
microsec = parseInt(microsec, 10);
}
var ampm = o[hour < 12 ? 'amNames' :
'pmNames'][0];
// If the update was done in the input field, the input field should not
be updated.
// If the update was done using the sliders, update the input field.
var hasChanged = (hour !== this.hour || minute !== this.minute || second
!== this.second || millisec !== this.millisec || microsec !== this.microsec
||
(this.ampm.length > 0 && (hour < 12) !==
($.inArray(this.ampm.toUpperCase(), this.amNames) !== -1)) ||
(this.timezone !== null && timezone !== this.timezone));
if (hasChanged) {
if (hour !== false) {
this.hour = hour;
}
if (minute !== false) {
this.minute = minute;
}
if (second !== false) {
this.second = second;
}
if (millisec !== false) {
this.millisec = millisec;
}
if (microsec !== false) {
this.microsec = microsec;
}
if (timezone !== false) {
this.timezone = timezone;
}
if (!this.inst) {
this.inst = $.datepicker._getInst(this.$input[0]);
}
this._limitMinMaxDateTime(this.inst, true);
}
if (this.support.ampm) {
this.ampm = ampm;
}
// Updates the time within the timepicker
this.formattedTime = $.datepicker.formatTime(o.timeFormat, this, o);
if (this.$timeObj) {
if (pickerTimeFormat === o.timeFormat) {
this.$timeObj.text(this.formattedTime + pickerTimeSuffix);
}
else {
this.$timeObj.text($.datepicker.formatTime(pickerTimeFormat, this, o)
+ pickerTimeSuffix);
}
}
this.timeDefined = true;
if (hasChanged) {
this._updateDateTime();
}
},
/*
* call custom onSelect.
* bind to sliders slidestop, and grid click.
*/
_onSelectHandler: function () {
var onSelect = this._defaults.onSelect || this.inst.settings.onSelect;
var inputEl = this.$input ? this.$input[0] : null;
if (onSelect && inputEl) {
onSelect.apply(inputEl, [this.formattedDateTime, this]);
}
},
/*
* update our input with the new date time..
*/
_updateDateTime: function (dp_inst) {
dp_inst = this.inst || dp_inst;
var dtTmp = (dp_inst.currentYear > 0?
new Date(dp_inst.currentYear, dp_inst.currentMonth,
dp_inst.currentDay) :
new Date(dp_inst.selectedYear, dp_inst.selectedMonth,
dp_inst.selectedDay)),
dt = $.datepicker._daylightSavingAdjust(dtTmp),
//dt = $.datepicker._daylightSavingAdjust(new
Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
//dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.currentYear,
dp_inst.currentMonth, dp_inst.currentDay)),
dateFmt = $.datepicker._get(dp_inst, 'dateFormat'),
formatCfg = $.datepicker._getFormatConfig(dp_inst),
timeAvailable = dt !== null && this.timeDefined;
this.formattedDate = $.datepicker.formatDate(dateFmt, (dt === null ? new
Date() : dt), formatCfg);
var formattedDateTime = this.formattedDate;
// if a slider was changed but datepicker doesn't have a value yet,
set it
if (dp_inst.lastVa === "") {
dp_inst.currentYear = dp_inst.selectedYear;
dp_inst.currentMonth = dp_inst.selectedMonth;
dp_inst.currentDay = dp_inst.selectedDay;
}
/*
* remove following lines to force every changes in date picker to change
the input value
* Bug descriptions: when an input field has a default value, and click
on the field to pop up the date picker.
* If the user manually empty the value in the input field, the date
picker will never change selected value.
*/
//if (dp_inst.lastVal !== undefined && (dp_inst.lastVal.length
> 0 && this.$input.val().length === 0)) {
// return;
//}
if (this._defaults.timeOnly === true) {
formattedDateTime = this.formattedTime;
} else if (this._defaults.timeOnly !== true &&
(this._defaults.alwaysSetTime || timeAvailable)) {
formattedDateTime += this._defaults.separator + this.formattedTime +
this._defaults.timeSuffix;
}
this.formattedDateTime = formattedDateTime;
if (!this._defaults.showTimepicker) {
this.$input.val(this.formattedDate);
} else if (this.$altInput && this._defaults.timeOnly === false
&& this._defaults.altFieldTimeOnly === true) {
this.$altInput.val(this.formattedTime);
this.$input.val(this.formattedDate);
} else if (this.$altInput) {
this.$input.val(formattedDateTime);
var altFormattedDateTime = '',
altSeparator = this._defaults.altSeparator ?
this._defaults.altSeparator : this._defaults.separator,
altTimeSuffix = this._defaults.altTimeSuffix ?
this._defaults.altTimeSuffix : this._defaults.timeSuffix;
if (!this._defaults.timeOnly) {
if (this._defaults.altFormat) {
altFormattedDateTime =
$.datepicker.formatDate(this._defaults.altFormat, (dt === null ? new Date()
: dt), formatCfg);
}
else {
altFormattedDateTime = this.formattedDate;
}
if (altFormattedDateTime) {
altFormattedDateTime += altSeparator;
}
}
if (this._defaults.altTimeFormat) {
altFormattedDateTime +=
$.datepicker.formatTime(this._defaults.altTimeFormat, this, this._defaults)
+ altTimeSuffix;
}
else {
altFormattedDateTime += this.formattedTime + altTimeSuffix;
}
this.$altInput.val(altFormattedDateTime);
} else {
this.$input.val(formattedDateTime);
}
this.$input.trigger("change");
},
_onFocus: function () {
if (!this.$input.val() && this._defaults.defaultValue) {
this.$input.val(this._defaults.defaultValue);
var inst = $.datepicker._getInst(this.$input.get(0)),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
if (tp_inst._defaults.timeOnly && (inst.input.val() !==
inst.lastVal)) {
try {
$.datepicker._updateDatepicker(inst);
} catch (err) {
$.timepicker.log(err);
}
}
}
}
},
/*
* Small abstraction to control types
* We can add more, just be sure to follow the pattern: create, options,
value
*/
_controls: {
// slider methods
slider: {
create: function (tp_inst, obj, unit, val, min, max, step) {
var rtl = tp_inst._defaults.isRTL; // if rtl go -60->0 instead of
0->60
return obj.prop('slide', null).slider({
orientation: "horizontal",
value: rtl ? val * -1 : val,
min: rtl ? max * -1 : min,
max: rtl ? min * -1 : max,
step: step,
slide: function (event, ui) {
tp_inst.control.value(tp_inst, $(this), unit, rtl ? ui.value * -1 :
ui.value);
tp_inst._onTimeChange();
},
stop: function (event, ui) {
tp_inst._onSelectHandler();
}
});
},
options: function (tp_inst, obj, unit, opts, val) {
if (tp_inst._defaults.isRTL) {
if (typeof(opts) === 'string') {
if (opts === 'min' || opts === 'max') {
if (val !== undefined) {
return obj.slider(opts, val * -1);
}
return Math.abs(obj.slider(opts));
}
return obj.slider(opts);
}
var min = opts.min,
max = opts.max;
opts.min = opts.max = null;
if (min !== undefined) {
opts.max = min * -1;
}
if (max !== undefined) {
opts.min = max * -1;
}
return obj.slider(opts);
}
if (typeof(opts) === 'string' && val !== undefined)
{
return obj.slider(opts, val);
}
return obj.slider(opts);
},
value: function (tp_inst, obj, unit, val) {
if (tp_inst._defaults.isRTL) {
if (val !== undefined) {
return obj.slider('value', val * -1);
}
return Math.abs(obj.slider('value'));
}
if (val !== undefined) {
return obj.slider('value', val);
}
return obj.slider('value');
}
},
// select methods
select: {
create: function (tp_inst, obj, unit, val, min, max, step) {
var sel = '<select class="ui-timepicker-select"
data-unit="' + unit + '" data-min="' + min +
'" data-max="' + max + '"
data-step="' + step + '">',
format = tp_inst._defaults.pickerTimeFormat ||
tp_inst._defaults.timeFormat;
for (var i = min; i <= max; i += step) {
sel += '<option value="' + i + '"' +
(i === val ? ' selected' : '') + '>';
if (unit === 'hour') {
sel += $.datepicker.formatTime($.trim(format.replace(/[^ht ]/ig,
'')), {hour: i}, tp_inst._defaults);
}
else if (unit === 'millisec' || unit ===
'microsec' || i >= 10) { sel += i; }
else {sel += '0' + i.toString(); }
sel += '</option>';
}
sel += '</select>';
obj.children('select').remove();
$(sel).appendTo(obj).change(function (e) {
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
});
return obj;
},
options: function (tp_inst, obj, unit, opts, val) {
var o = {},
$t = obj.children('select');
if (typeof(opts) === 'string') {
if (val === undefined) {
return $t.data(opts);
}
o[opts] = val;
}
else { o = opts; }
return tp_inst.control.create(tp_inst, obj, $t.data('unit'),
$t.val(), o.min || $t.data('min'), o.max ||
$t.data('max'), o.step || $t.data('step'));
},
value: function (tp_inst, obj, unit, val) {
var $t = obj.children('select');
if (val !== undefined) {
return $t.val(val);
}
return $t.val();
}
}
} // end _controls
});
$.fn.extend({
/*
* shorthand just to use timepicker.
*/
timepicker: function (o) {
o = o || {};
var tmp_args = Array.prototype.slice.call(arguments);
if (typeof o === 'object') {
tmp_args[0] = $.extend(o, {
timeOnly: true
});
}
return $(this).each(function () {
$.fn.datetimepicker.apply($(this), tmp_args);
});
},
/*
* extend timepicker to datepicker
*/
datetimepicker: function (o) {
o = o || {};
var tmp_args = arguments;
if (typeof(o) === 'string') {
if (o === 'getDate') {
return $.fn.datepicker.apply($(this[0]), tmp_args);
} else {
return this.each(function () {
var $t = $(this);
$t.datepicker.apply($t, tmp_args);
});
}
} else {
return this.each(function () {
var $t = $(this);
$t.datepicker($.timepicker._newInst($t, o)._defaults);
});
}
}
});
/*
* Public Utility to parse date and time
*/
$.datepicker.parseDateTime = function (dateFormat, timeFormat,
dateTimeString, dateSettings, timeSettings) {
var parseRes = parseDateTimeInternal(dateFormat, timeFormat,
dateTimeString, dateSettings, timeSettings);
if (parseRes.timeObj) {
var t = parseRes.timeObj;
parseRes.date.setHours(t.hour, t.minute, t.second, t.millisec);
parseRes.date.setMicroseconds(t.microsec);
}
return parseRes.date;
};
/*
* Public utility to parse time
*/
$.datepicker.parseTime = function (timeFormat, timeString, options) {
var o = extendRemove(extendRemove({}, $.timepicker._defaults), options ||
{}),
iso8601 = (timeFormat.replace(/\'.*?\'/g,
'').indexOf('Z') !== -1);
// Strict parse requires the timeString to match the timeFormat exactly
var strictParse = function (f, s, o) {
// pattern for standard and localized AM/PM markers
var getPatternAmpm = function (amNames, pmNames) {
var markers = [];
if (amNames) {
$.merge(markers, amNames);
}
if (pmNames) {
$.merge(markers, pmNames);
}
markers = $.map(markers, function (val) {
return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&');
});
return '(' + markers.join('|') + ')?';
};
// figure out position of time elements.. cause js cant do named
captures
var getFormatPositions = function (timeFormat) {
var finds =
timeFormat.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g),
orders = {
h: -1,
m: -1,
s: -1,
l: -1,
c: -1,
t: -1,
z: -1
};
if (finds) {
for (var i = 0; i < finds.length; i++) {
if (orders[finds[i].toString().charAt(0)] === -1) {
orders[finds[i].toString().charAt(0)] = i + 1;
}
}
}
return orders;
};
var regstr = '^' + f.toString()
.replace(/([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,
function (match) {
var ml = match.length;
switch (match.charAt(0).toLowerCase()) {
case 'h':
return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml +
'})';
case 'm':
return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml +
'})';
case 's':
return ml === 1 ? '(\\d?\\d)' : '(\\d{' + ml +
'})';
case 'l':
return '(\\d?\\d?\\d)';
case 'c':
return '(\\d?\\d?\\d)';
case 'z':
return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?';
case 't':
return getPatternAmpm(o.amNames, o.pmNames);
default: // literal escaped in quotes
return '(' + match.replace(/\'/g,
"").replace(/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g, function
(m) { return "\\" + m; }) + ')?';
}
})
.replace(/\s/g, '\\s?') +
o.timeSuffix + '$',
order = getFormatPositions(f),
ampm = '',
treg;
treg = s.match(new RegExp(regstr, 'i'));
var resTime = {
hour: 0,
minute: 0,
second: 0,
millisec: 0,
microsec: 0
};
if (treg) {
if (order.t !== -1) {
if (treg[order.t] === undefined || treg[order.t].length === 0) {
ampm = '';
resTime.ampm = '';
} else {
ampm = $.inArray(treg[order.t].toUpperCase(), o.amNames) !== -1 ?
'AM' : 'PM';
resTime.ampm = o[ampm === 'AM' ? 'amNames' :
'pmNames'][0];
}
}
if (order.h !== -1) {
if (ampm === 'AM' && treg[order.h] ===
'12') {
resTime.hour = 0; // 12am = 0 hour
} else {
if (ampm === 'PM' && treg[order.h] !==
'12') {
resTime.hour = parseInt(treg[order.h], 10) + 12; // 12pm = 12 hour,
any other pm = hour + 12
} else {
resTime.hour = Number(treg[order.h]);
}
}
}
if (order.m !== -1) {
resTime.minute = Number(treg[order.m]);
}
if (order.s !== -1) {
resTime.second = Number(treg[order.s]);
}
if (order.l !== -1) {
resTime.millisec = Number(treg[order.l]);
}
if (order.c !== -1) {
resTime.microsec = Number(treg[order.c]);
}
if (order.z !== -1 && treg[order.z] !== undefined) {
resTime.timezone = $.timepicker.timezoneOffsetNumber(treg[order.z]);
}
return resTime;
}
return false;
};// end strictParse
// First try JS Date, if that fails, use strictParse
var looseParse = function (f, s, o) {
try {
var d = new Date('2012-01-01 ' + s);
if (isNaN(d.getTime())) {
d = new Date('2012-01-01T' + s);
if (isNaN(d.getTime())) {
d = new Date('01/01/2012 ' + s);
if (isNaN(d.getTime())) {
throw "Unable to parse time with native Date: " + s;
}
}
}
return {
hour: d.getHours(),
minute: d.getMinutes(),
second: d.getSeconds(),
millisec: d.getMilliseconds(),
microsec: d.getMicroseconds(),
timezone: d.getTimezoneOffset() * -1
};
}
catch (err) {
try {
return strictParse(f, s, o);
}
catch (err2) {
$.timepicker.log("Unable to parse \ntimeString: " + s +
"\ntimeFormat: " + f);
}
}
return false;
}; // end looseParse
if (typeof o.parse === "function") {
return o.parse(timeFormat, timeString, o);
}
if (o.parse === 'loose') {
return looseParse(timeFormat, timeString, o);
}
return strictParse(timeFormat, timeString, o);
};
/**
* Public utility to format the time
* @param {string} format format of the time
* @param {Object} time Object not a Date for timezones
* @param {Object} [options] essentially the regional[].. amNames,
pmNames, ampm
* @returns {string} the formatted time
*/
$.datepicker.formatTime = function (format, time, options) {
options = options || {};
options = $.extend({}, $.timepicker._defaults, options);
time = $.extend({
hour: 0,
minute: 0,
second: 0,
millisec: 0,
microsec: 0,
timezone: null
}, time);
var tmptime = format,
ampmName = options.amNames[0],
hour = parseInt(time.hour, 10);
if (hour > 11) {
ampmName = options.pmNames[0];
}
tmptime =
tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,
function (match) {
switch (match) {
case 'HH':
return ('0' + hour).slice(-2);
case 'H':
return hour;
case 'hh':
return ('0' + convert24to12(hour)).slice(-2);
case 'h':
return convert24to12(hour);
case 'mm':
return ('0' + time.minute).slice(-2);
case 'm':
return time.minute;
case 'ss':
return ('0' + time.second).slice(-2);
case 's':
return time.second;
case 'l':
return ('00' + time.millisec).slice(-3);
case 'c':
return ('00' + time.microsec).slice(-3);
case 'z':
return $.timepicker.timezoneOffsetString(time.timezone === null ?
options.timezone : time.timezone, false);
case 'Z':
return $.timepicker.timezoneOffsetString(time.timezone === null ?
options.timezone : time.timezone, true);
case 'T':
return ampmName.charAt(0).toUpperCase();
case 'TT':
return ampmName.toUpperCase();
case 't':
return ampmName.charAt(0).toLowerCase();
case 'tt':
return ampmName.toLowerCase();
default:
return match.replace(/'/g, "");
}
});
return tmptime;
};
/*
* the bad hack :/ override datepicker so it doesn't close on select
// inspired:
http://stackoverflow.com/questions/1252512/jquery-datepicker-prevent-closing-picker-when-clicking-a-date/1762378#1762378
*/
$.datepicker._base_selectDate = $.datepicker._selectDate;
$.datepicker._selectDate = function (id, dateStr) {
var inst = this._getInst($(id)[0]),
tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
tp_inst._limitMinMaxDateTime(inst, true);
inst.inline = inst.stay_open = true;
//This way the onSelect handler called from calendarpicker get the full
dateTime
this._base_selectDate(id, dateStr);
inst.inline = inst.stay_open = false;
this._notifyChange(inst);
this._updateDatepicker(inst);
} else {
this._base_selectDate(id, dateStr);
}
};
/*
* second bad hack :/ override datepicker so it triggers an event when
changing the input field
* and does not redraw the datepicker on every selectDate event
*/
$.datepicker._base_updateDatepicker = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function (inst) {
// don't popup the datepicker if there is another instance already
opened
var input = inst.input[0];
if ($.datepicker._curInst && $.datepicker._curInst !== inst
&& $.datepicker._datepickerShowing &&
$.datepicker._lastInput !== input) {
return;
}
if (typeof(inst.stay_open) !== 'boolean' || inst.stay_open ===
false) {
this._base_updateDatepicker(inst);
// Reload the time control when changing something in the input text
field.
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
tp_inst._addTimePicker(inst);
}
}
};
/*
* third bad hack :/ override datepicker so it allows spaces and colon in
the input field
*/
$.datepicker._base_doKeyPress = $.datepicker._doKeyPress;
$.datepicker._doKeyPress = function (event) {
var inst = $.datepicker._getInst(event.target),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
if ($.datepicker._get(inst, 'constrainInput')) {
var ampm = tp_inst.support.ampm,
tz = tp_inst._defaults.showTimezone !== null ?
tp_inst._defaults.showTimezone : tp_inst.support.timezone,
dateChars = $.datepicker._possibleChars($.datepicker._get(inst,
'dateFormat')),
datetimeChars = tp_inst._defaults.timeFormat.toString()
.replace(/[hms]/g, '')
.replace(/TT/g, ampm ? 'APM' : '')
.replace(/Tt/g, ampm ? 'AaPpMm' : '')
.replace(/tT/g, ampm ? 'AaPpMm' : '')
.replace(/T/g, ampm ? 'AP' : '')
.replace(/tt/g, ampm ? 'apm' : '')
.replace(/t/g, ampm ? 'ap' : '') +
" " + tp_inst._defaults.separator +
tp_inst._defaults.timeSuffix +
(tz ? tp_inst._defaults.timezoneList.join('') :
'') +
(tp_inst._defaults.amNames.join('')) +
(tp_inst._defaults.pmNames.join('')) +
dateChars,
chr = String.fromCharCode(event.charCode === undefined ? event.keyCode
: event.charCode);
return event.ctrlKey || (chr < ' ' || !dateChars ||
datetimeChars.indexOf(chr) > -1);
}
}
return $.datepicker._base_doKeyPress(event);
};
/*
* Fourth bad hack :/ override _updateAlternate function used in inline
mode to init altField
* Update any alternate field to synchronise with the main field.
*/
$.datepicker._base_updateAlternate = $.datepicker._updateAlternate;
$.datepicker._updateAlternate = function (inst) {
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
var altField = tp_inst._defaults.altField;
if (altField) { // update alternate field too
var altFormat = tp_inst._defaults.altFormat ||
tp_inst._defaults.dateFormat,
date = this._getDate(inst),
formatCfg = $.datepicker._getFormatConfig(inst),
altFormattedDateTime = '',
altSeparator = tp_inst._defaults.altSeparator ?
tp_inst._defaults.altSeparator : tp_inst._defaults.separator,
altTimeSuffix = tp_inst._defaults.altTimeSuffix ?
tp_inst._defaults.altTimeSuffix : tp_inst._defaults.timeSuffix,
altTimeFormat = tp_inst._defaults.altTimeFormat !== null ?
tp_inst._defaults.altTimeFormat : tp_inst._defaults.timeFormat;
altFormattedDateTime += $.datepicker.formatTime(altTimeFormat, tp_inst,
tp_inst._defaults) + altTimeSuffix;
if (!tp_inst._defaults.timeOnly &&
!tp_inst._defaults.altFieldTimeOnly && date !== null) {
if (tp_inst._defaults.altFormat) {
altFormattedDateTime =
$.datepicker.formatDate(tp_inst._defaults.altFormat, date, formatCfg) +
altSeparator + altFormattedDateTime;
}
else {
altFormattedDateTime = tp_inst.formattedDate + altSeparator +
altFormattedDateTime;
}
}
$(altField).val(altFormattedDateTime);
}
}
else {
$.datepicker._base_updateAlternate(inst);
}
};
/*
* Override key up event to sync manual input changes.
*/
$.datepicker._base_doKeyUp = $.datepicker._doKeyUp;
$.datepicker._doKeyUp = function (event) {
var inst = $.datepicker._getInst(event.target),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
if (tp_inst._defaults.timeOnly && (inst.input.val() !==
inst.lastVal)) {
try {
$.datepicker._updateDatepicker(inst);
} catch (err) {
$.timepicker.log(err);
}
}
}
return $.datepicker._base_doKeyUp(event);
};
/*
* override "Today" button to also grab the time.
*/
$.datepicker._base_gotoToday = $.datepicker._gotoToday;
$.datepicker._gotoToday = function (id) {
var inst = this._getInst($(id)[0]),
$dp = inst.dpDiv;
this._base_gotoToday(id);
var tp_inst = this._get(inst, 'timepicker');
selectLocalTimezone(tp_inst);
var now = new Date();
this._setTime(inst, now);
$('.ui-datepicker-today', $dp).click();
};
/*
* Disable & enable the Time in the datetimepicker
*/
$.datepicker._disableTimepickerDatepicker = function (target) {
var inst = this._getInst(target);
if (!inst) {
return;
}
var tp_inst = this._get(inst, 'timepicker');
$(target).datepicker('getDate'); // Init
selected[Year|Month|Day]
if (tp_inst) {
inst.settings.showTimepicker = false;
tp_inst._defaults.showTimepicker = false;
tp_inst._updateDateTime(inst);
}
};
$.datepicker._enableTimepickerDatepicker = function (target) {
var inst = this._getInst(target);
if (!inst) {
return;
}
var tp_inst = this._get(inst, 'timepicker');
$(target).datepicker('getDate'); // Init
selected[Year|Month|Day]
if (tp_inst) {
inst.settings.showTimepicker = true;
tp_inst._defaults.showTimepicker = true;
tp_inst._addTimePicker(inst); // Could be disabled on page load
tp_inst._updateDateTime(inst);
}
};
/*
* Create our own set time function
*/
$.datepicker._setTime = function (inst, date) {
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
var defaults = tp_inst._defaults;
// calling _setTime with no date sets time to defaults
tp_inst.hour = date ? date.getHours() : defaults.hour;
tp_inst.minute = date ? date.getMinutes() : defaults.minute;
tp_inst.second = date ? date.getSeconds() : defaults.second;
tp_inst.millisec = date ? date.getMilliseconds() : defaults.millisec;
tp_inst.microsec = date ? date.getMicroseconds() : defaults.microsec;
//check if within min/max times..
tp_inst._limitMinMaxDateTime(inst, true);
tp_inst._onTimeChange();
tp_inst._updateDateTime(inst);
}
};
/*
* Create new public method to set only time, callable as
$().datepicker('setTime', date)
*/
$.datepicker._setTimeDatepicker = function (target, date, withDate) {
var inst = this._getInst(target);
if (!inst) {
return;
}
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
this._setDateFromField(inst);
var tp_date;
if (date) {
if (typeof date === "string") {
tp_inst._parseTime(date, withDate);
tp_date = new Date();
tp_date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second,
tp_inst.millisec);
tp_date.setMicroseconds(tp_inst.microsec);
} else {
tp_date = new Date(date.getTime());
tp_date.setMicroseconds(date.getMicroseconds());
}
if (tp_date.toString() === 'Invalid Date') {
tp_date = undefined;
}
this._setTime(inst, tp_date);
}
}
};
/*
* override setDate() to allow setting time too within Date object
*/
$.datepicker._base_setDateDatepicker = $.datepicker._setDateDatepicker;
$.datepicker._setDateDatepicker = function (target, date) {
var inst = this._getInst(target);
if (!inst) {
return;
}
if (typeof(date) === 'string') {
date = new Date(date);
if (!date.getTime()) {
$.timepicker.log("Error creating Date object from string.");
}
}
var tp_inst = this._get(inst, 'timepicker');
var tp_date;
if (date instanceof Date) {
tp_date = new Date(date.getTime());
tp_date.setMicroseconds(date.getMicroseconds());
} else {
tp_date = date;
}
// This is important if you are using the timezone option,
javascript's Date
// object will only return the timezone offset for the current locale, so
we
// adjust it accordingly. If not using timezone option this won't
matter..
// If a timezone is different in tp, keep the timezone as is
if (tp_inst) {
// look out for DST if tz wasn't specified
if (!tp_inst.support.timezone && tp_inst._defaults.timezone ===
null) {
tp_inst.timezone = tp_date.getTimezoneOffset() * -1;
}
date = $.timepicker.timezoneAdjust(date, tp_inst.timezone);
tp_date = $.timepicker.timezoneAdjust(tp_date, tp_inst.timezone);
}
this._updateDatepicker(inst);
this._base_setDateDatepicker.apply(this, arguments);
this._setTimeDatepicker(target, tp_date, true);
};
/*
* override getDate() to allow getting time too within Date object
*/
$.datepicker._base_getDateDatepicker = $.datepicker._getDateDatepicker;
$.datepicker._getDateDatepicker = function (target, noDefault) {
var inst = this._getInst(target);
if (!inst) {
return;
}
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
// if it hasn't yet been defined, grab from field
if (inst.lastVal === undefined) {
this._setDateFromField(inst, noDefault);
}
var date = this._getDate(inst);
if (date && tp_inst._parseTime($(target).val(),
tp_inst.timeOnly)) {
date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second,
tp_inst.millisec);
date.setMicroseconds(tp_inst.microsec);
// This is important if you are using the timezone option,
javascript's Date
// object will only return the timezone offset for the current locale,
so we
// adjust it accordingly. If not using timezone option this won't
matter..
if (tp_inst.timezone != null) {
// look out for DST if tz wasn't specified
if (!tp_inst.support.timezone && tp_inst._defaults.timezone
=== null) {
tp_inst.timezone = date.getTimezoneOffset() * -1;
}
date = $.timepicker.timezoneAdjust(date, tp_inst.timezone);
}
}
return date;
}
return this._base_getDateDatepicker(target, noDefault);
};
/*
* override parseDate() because UI 1.8.14 throws an error about "Extra
characters"
* An option in datapicker to ignore extra format characters would be
nicer.
*/
$.datepicker._base_parseDate = $.datepicker.parseDate;
$.datepicker.parseDate = function (format, value, settings) {
var date;
try {
date = this._base_parseDate(format, value, settings);
} catch (err) {
// Hack! The error message ends with a colon, a space, and
// the "extra" characters. We rely on that instead of
// attempting to perfectly reproduce the parsing algorithm.
if (err.indexOf(":") >= 0) {
date = this._base_parseDate(format, value.substring(0, value.length -
(err.length - err.indexOf(':') - 2)), settings);
$.timepicker.log("Error parsing the date string: " + err +
"\ndate string = " + value + "\ndate format = " +
format);
} else {
throw err;
}
}
return date;
};
/*
* override formatDate to set date with time to the input
*/
$.datepicker._base_formatDate = $.datepicker._formatDate;
$.datepicker._formatDate = function (inst, day, month, year) {
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
tp_inst._updateDateTime(inst);
return tp_inst.$input.val();
}
return this._base_formatDate(inst);
};
/*
* override options setter to add time to maxDate(Time) and minDate(Time).
MaxDate
*/
$.datepicker._base_optionDatepicker = $.datepicker._optionDatepicker;
$.datepicker._optionDatepicker = function (target, name, value) {
var inst = this._getInst(target),
name_clone;
if (!inst) {
return null;
}
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
var min = null,
max = null,
onselect = null,
overrides = tp_inst._defaults.evnts,
fns = {},
prop;
if (typeof name === 'string') { // if min/max was set with the
string
if (name === 'minDate' || name === 'minDateTime')
{
min = value;
} else if (name === 'maxDate' || name ===
'maxDateTime') {
max = value;
} else if (name === 'onSelect') {
onselect = value;
} else if (overrides.hasOwnProperty(name)) {
if (typeof (value) === 'undefined') {
return overrides[name];
}
fns[name] = value;
name_clone = {}; //empty results in exiting function after overrides
updated
}
} else if (typeof name === 'object') { //if min/max was set
with the JSON
if (name.minDate) {
min = name.minDate;
} else if (name.minDateTime) {
min = name.minDateTime;
} else if (name.maxDate) {
max = name.maxDate;
} else if (name.maxDateTime) {
max = name.maxDateTime;
}
for (prop in overrides) {
if (overrides.hasOwnProperty(prop) && name[prop]) {
fns[prop] = name[prop];
}
}
}
for (prop in fns) {
if (fns.hasOwnProperty(prop)) {
overrides[prop] = fns[prop];
if (!name_clone) { name_clone = $.extend({}, name); }
delete name_clone[prop];
}
}
if (name_clone && isEmptyObject(name_clone)) { return; }
if (min) { //if min was set
if (min === 0) {
min = new Date();
} else {
min = new Date(min);
}
tp_inst._defaults.minDate = min;
tp_inst._defaults.minDateTime = min;
} else if (max) { //if max was set
if (max === 0) {
max = new Date();
} else {
max = new Date(max);
}
tp_inst._defaults.maxDate = max;
tp_inst._defaults.maxDateTime = max;
} else if (onselect) {
tp_inst._defaults.onSelect = onselect;
}
}
if (value === undefined) {
return this._base_optionDatepicker.call($.datepicker, target, name);
}
return this._base_optionDatepicker.call($.datepicker, target, name_clone
|| name, value);
};
/*
* jQuery isEmptyObject does not check hasOwnProperty - if someone has
added to the object prototype,
* it will return false for all objects
*/
var isEmptyObject = function (obj) {
var prop;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
return false;
}
}
return true;
};
/*
* jQuery extend now ignores nulls!
*/
var extendRemove = function (target, props) {
$.extend(target, props);
for (var name in props) {
if (props[name] === null || props[name] === undefined) {
target[name] = props[name];
}
}
return target;
};
/*
* Determine by the time format which units are supported
* Returns an object of booleans for each unit
*/
var detectSupport = function (timeFormat) {
var tf = timeFormat.replace(/'.*?'/g,
'').toLowerCase(), // removes literals
isIn = function (f, t) { // does the format contain the token?
return f.indexOf(t) !== -1 ? true : false;
};
return {
hour: isIn(tf, 'h'),
minute: isIn(tf, 'm'),
second: isIn(tf, 's'),
millisec: isIn(tf, 'l'),
microsec: isIn(tf, 'c'),
timezone: isIn(tf, 'z'),
ampm: isIn(tf, 't') && isIn(timeFormat,
'h'),
iso8601: isIn(timeFormat, 'Z')
};
};
/*
* Converts 24 hour format into 12 hour
* Returns 12 hour without leading 0
*/
var convert24to12 = function (hour) {
hour %= 12;
if (hour === 0) {
hour = 12;
}
return String(hour);
};
var computeEffectiveSetting = function (settings, property) {
return settings && settings[property] ? settings[property] :
$.timepicker._defaults[property];
};
/*
* Splits datetime string into date and time substrings.
* Throws exception when date can't be parsed
* Returns {dateString: dateString, timeString: timeString}
*/
var splitDateTime = function (dateTimeString, timeSettings) {
// The idea is to get the number separator occurrences in datetime and
the time format requested (since time has
// fewer unknowns, mostly numbers and am/pm). We will use the time
pattern to split.
var separator = computeEffectiveSetting(timeSettings,
'separator'),
format = computeEffectiveSetting(timeSettings, 'timeFormat'),
timeParts = format.split(separator), // how many occurrences of
separator may be in our format?
timePartsLen = timeParts.length,
allParts = dateTimeString.split(separator),
allPartsLen = allParts.length;
if (allPartsLen > 1) {
return {
dateString: allParts.splice(0, allPartsLen -
timePartsLen).join(separator),
timeString: allParts.splice(0, timePartsLen).join(separator)
};
}
return {
dateString: dateTimeString,
timeString: ''
};
};
/*
* Internal function to parse datetime interval
* Returns: {date: Date, timeObj: Object}, where
* date - parsed date without time (type Date)
* timeObj = {hour: , minute: , second: , millisec: , microsec: } -
parsed time. Optional
*/
var parseDateTimeInternal = function (dateFormat, timeFormat,
dateTimeString, dateSettings, timeSettings) {
var date,
parts,
parsedTime;
parts = splitDateTime(dateTimeString, timeSettings);
date = $.datepicker._base_parseDate(dateFormat, parts.dateString,
dateSettings);
if (parts.timeString === '') {
return {
date: date
};
}
parsedTime = $.datepicker.parseTime(timeFormat, parts.timeString,
timeSettings);
if (!parsedTime) {
throw 'Wrong time format';
}
return {
date: date,
timeObj: parsedTime
};
};
/*
* Internal function to set timezone_select to the local timezone
*/
var selectLocalTimezone = function (tp_inst, date) {
if (tp_inst && tp_inst.timezone_select) {
var now = date || new Date();
tp_inst.timezone_select.val(-now.getTimezoneOffset());
}
};
/*
* Create a Singleton Instance
*/
$.timepicker = new Timepicker();
/**
* Get the timezone offset as string from a date object (eg
'+0530' for UTC+5.5)
* @param {number} tzMinutes if not a number, less than -720 (-1200), or
greater than 840 (+1400) this value is returned
* @param {boolean} iso8601 if true formats in accordance to iso8601
"+12:45"
* @return {string}
*/
$.timepicker.timezoneOffsetString = function (tzMinutes, iso8601) {
if (isNaN(tzMinutes) || tzMinutes > 840 || tzMinutes < -720) {
return tzMinutes;
}
var off = tzMinutes,
minutes = off % 60,
hours = (off - minutes) / 60,
iso = iso8601 ? ':' : '',
tz = (off >= 0 ? '+' : '-') + ('0' +
Math.abs(hours)).slice(-2) + iso + ('0' +
Math.abs(minutes)).slice(-2);
if (tz === '+00:00') {
return 'Z';
}
return tz;
};
/**
* Get the number in minutes that represents a timezone string
* @param {string} tzString formatted like "+0500",
"-1245", "Z"
* @return {number} the offset minutes or the original string if it
doesn't match expectations
*/
$.timepicker.timezoneOffsetNumber = function (tzString) {
var normalized = tzString.toString().replace(':',
''); // excuse any iso8601, end up with "+1245"
if (normalized.toUpperCase() === 'Z') { // if iso8601 with Z,
its 0 minute offset
return 0;
}
if (!/^(\-|\+)\d{4}$/.test(normalized)) { // possibly a user defined tz,
so just give it back
return tzString;
}
return ((normalized.substr(0, 1) === '-' ? -1 : 1) * // plus or
minus
((parseInt(normalized.substr(1, 2), 10) * 60) + // hours (converted to
minutes)
parseInt(normalized.substr(3, 2), 10))); // minutes
};
/**
* No way to set timezone in js Date, so we must adjust the minutes to
compensate. (think setDate, getDate)
* @param {Date} date
* @param {string} toTimezone formatted like "+0500",
"-1245"
* @return {Date}
*/
$.timepicker.timezoneAdjust = function (date, toTimezone) {
var toTz = $.timepicker.timezoneOffsetNumber(toTimezone);
if (!isNaN(toTz)) {
date.setMinutes(date.getMinutes() + -date.getTimezoneOffset() - toTz);
}
return date;
};
/**
* Calls `timepicker()` on the `startTime` and `endTime` elements, and
configures them to
* enforce date range limits.
* n.b. The input value must be correctly formatted (reformatting is not
supported)
* @param {Element} startTime
* @param {Element} endTime
* @param {Object} options Options for the timepicker() call
* @return {jQuery}
*/
$.timepicker.timeRange = function (startTime, endTime, options) {
return $.timepicker.handleRange('timepicker', startTime,
endTime, options);
};
/**
* Calls `datetimepicker` on the `startTime` and `endTime` elements, and
configures them to
* enforce date range limits.
* @param {Element} startTime
* @param {Element} endTime
* @param {Object} options Options for the `timepicker()` call. Also
supports `reformat`,
* a boolean value that can be used to reformat the input values to the
`dateFormat`.
* @param {string} method Can be used to specify the type of picker to be
added
* @return {jQuery}
*/
$.timepicker.datetimeRange = function (startTime, endTime, options) {
$.timepicker.handleRange('datetimepicker', startTime, endTime,
options);
};
/**
* Calls `datepicker` on the `startTime` and `endTime` elements, and
configures them to
* enforce date range limits.
* @param {Element} startTime
* @param {Element} endTime
* @param {Object} options Options for the `timepicker()` call. Also
supports `reformat`,
* a boolean value that can be used to reformat the input values to the
`dateFormat`.
* @return {jQuery}
*/
$.timepicker.dateRange = function (startTime, endTime, options) {
$.timepicker.handleRange('datepicker', startTime, endTime,
options);
};
/**
* Calls `method` on the `startTime` and `endTime` elements, and
configures them to
* enforce date range limits.
* @param {string} method Can be used to specify the type of picker to be
added
* @param {Element} startTime
* @param {Element} endTime
* @param {Object} options Options for the `timepicker()` call. Also
supports `reformat`,
* a boolean value that can be used to reformat the input values to the
`dateFormat`.
* @return {jQuery}
*/
$.timepicker.handleRange = function (method, startTime, endTime, options)
{
options = $.extend({}, {
minInterval: 0, // min allowed interval in milliseconds
maxInterval: 0, // max allowed interval in milliseconds
start: {}, // options for start picker
end: {} // options for end picker
}, options);
function checkDates(changed, other) {
var startdt = startTime[method]('getDate'),
enddt = endTime[method]('getDate'),
changeddt = changed[method]('getDate');
if (startdt !== null) {
var minDate = new Date(startdt.getTime()),
maxDate = new Date(startdt.getTime());
minDate.setMilliseconds(minDate.getMilliseconds() +
options.minInterval);
maxDate.setMilliseconds(maxDate.getMilliseconds() +
options.maxInterval);
if (options.minInterval > 0 && minDate > enddt) { //
minInterval check
endTime[method]('setDate', minDate);
}
else if (options.maxInterval > 0 && maxDate < enddt) { //
max interval check
endTime[method]('setDate', maxDate);
}
else if (startdt > enddt) {
other[method]('setDate', changeddt);
}
}
}
function selected(changed, other, option) {
if (!changed.val()) {
return;
}
var date = changed[method].call(changed, 'getDate');
if (date !== null && options.minInterval > 0) {
if (option === 'minDate') {
date.setMilliseconds(date.getMilliseconds() + options.minInterval);
}
if (option === 'maxDate') {
date.setMilliseconds(date.getMilliseconds() - options.minInterval);
}
}
if (date.getTime) {
other[method].call(other, 'option', option, date);
}
}
$.fn[method].call(startTime, $.extend({
onClose: function (dateText, inst) {
checkDates($(this), endTime);
},
onSelect: function (selectedDateTime) {
selected($(this), endTime, 'minDate');
}
}, options, options.start));
$.fn[method].call(endTime, $.extend({
onClose: function (dateText, inst) {
checkDates($(this), startTime);
},
onSelect: function (selectedDateTime) {
selected($(this), startTime, 'maxDate');
}
}, options, options.end));
checkDates(startTime, endTime);
selected(startTime, endTime, 'minDate');
selected(endTime, startTime, 'maxDate');
return $([startTime.get(0), endTime.get(0)]);
};
/**
* Log error or data to the console during error or debugging
* @param {Object} err pass any type object to log to the console during
error or debugging
* @return {void}
*/
$.timepicker.log = function (err) {
if (window.console) {
window.console.log(err);
}
};
/*
* Add util object to allow access to private methods for testability.
*/
$.timepicker._util = {
_extendRemove: extendRemove,
_isEmptyObject: isEmptyObject,
_convert24to12: convert24to12,
_detectSupport: detectSupport,
_selectLocalTimezone: selectLocalTimezone,
_computeEffectiveSetting: computeEffectiveSetting,
_splitDateTime: splitDateTime,
_parseDateTimeInternal: parseDateTimeInternal
};
/*
* Microsecond support
*/
if (!Date.prototype.getMicroseconds) {
Date.prototype.microseconds = 0;
Date.prototype.getMicroseconds = function () { return this.microseconds;
};
Date.prototype.setMicroseconds = function (m) {
this.setMilliseconds(this.getMilliseconds() + Math.floor(m / 1000));
this.microseconds = m % 1000;
return this;
};
}
/*
* Keep up with the version
*/
$.timepicker.version = "1.4";
})(jQuery);
admin/ui/widget.js000064400000036346151167411240010110 0ustar00/*!
* jQuery UI Widget 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/jQuery.widget/
*/
(function( $, undefined ) {
var uuid = 0,
slice = Array.prototype.slice,
_cleanData = $.cleanData;
$.cleanData = function( elems ) {
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
try {
$( elem ).triggerHandler( "remove" );
// http://bugs.jquery.com/ticket/8235
} catch( e ) {}
}
_cleanData( elems );
};
$.widget = function( name, base, prototype ) {
var fullName, existingConstructor, constructor, basePrototype,
// proxiedPrototype allows the provided prototype to remain unmodified
// so that it can be used as a mixin for multiple widgets (#8876)
proxiedPrototype = {},
namespace = name.split( "." )[ 0 ];
name = name.split( "." )[ 1 ];
fullName = namespace + "-" + name;
if ( !prototype ) {
prototype = base;
base = $.Widget;
}
// create selector for plugin
$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
return !!$.data( elem, fullName );
};
$[ namespace ] = $[ namespace ] || {};
existingConstructor = $[ namespace ][ name ];
constructor = $[ namespace ][ name ] = function( options, element ) {
// allow instantiation without "new" keyword
if ( !this._createWidget ) {
return new constructor( options, element );
}
// allow instantiation without initializing for simple inheritance
// must use "new" keyword (the code above always passes args)
if ( arguments.length ) {
this._createWidget( options, element );
}
};
// extend with the existing constructor to carry over any static
properties
$.extend( constructor, existingConstructor, {
version: prototype.version,
// copy the object used to create the prototype in case we need to
// redefine the widget later
_proto: $.extend( {}, prototype ),
// track widgets that inherit from this widget in case this widget is
// redefined after a widget inherits from it
_childConstructors: []
});
basePrototype = new base();
// we need to make the options hash a property directly on the new
instance
// otherwise we'll modify the options hash on the prototype that
we're
// inheriting from
basePrototype.options = $.widget.extend( {}, basePrototype.options );
$.each( prototype, function( prop, value ) {
if ( !$.isFunction( value ) ) {
proxiedPrototype[ prop ] = value;
return;
}
proxiedPrototype[ prop ] = (function() {
var _super = function() {
return base.prototype[ prop ].apply( this, arguments );
},
_superApply = function( args ) {
return base.prototype[ prop ].apply( this, args );
};
return function() {
var __super = this._super,
__superApply = this._superApply,
returnValue;
this._super = _super;
this._superApply = _superApply;
returnValue = value.apply( this, arguments );
this._super = __super;
this._superApply = __superApply;
return returnValue;
};
})();
});
constructor.prototype = $.widget.extend( basePrototype, {
// TODO: remove support for widgetEventPrefix
// always use the name + a colon as the prefix, e.g., draggable:start
// don't prefix for widgets that aren't DOM-based
widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix
: name
}, proxiedPrototype, {
constructor: constructor,
namespace: namespace,
widgetName: name,
widgetFullName: fullName
});
// If this widget is being redefined then we need to find all widgets
that
// are inheriting from it and redefine all of them so that they inherit
from
// the new version of this widget. We're essentially trying to
replace one
// level in the prototype chain.
if ( existingConstructor ) {
$.each( existingConstructor._childConstructors, function( i, child ) {
var childPrototype = child.prototype;
// redefine the child widget using the same prototype that was
// originally used, but inherit from the new version of the base
$.widget( childPrototype.namespace + "." +
childPrototype.widgetName, constructor, child._proto );
});
// remove the list of existing child constructors from the old
constructor
// so the old child constructors can be garbage collected
delete existingConstructor._childConstructors;
} else {
base._childConstructors.push( constructor );
}
$.widget.bridge( name, constructor );
};
$.widget.extend = function( target ) {
var input = slice.call( arguments, 1 ),
inputIndex = 0,
inputLength = input.length,
key,
value;
for ( ; inputIndex < inputLength; inputIndex++ ) {
for ( key in input[ inputIndex ] ) {
value = input[ inputIndex ][ key ];
if ( input[ inputIndex ].hasOwnProperty( key ) && value !==
undefined ) {
// Clone objects
if ( $.isPlainObject( value ) ) {
target[ key ] = $.isPlainObject( target[ key ] ) ?
$.widget.extend( {}, target[ key ], value ) :
// Don't extend strings, arrays, etc. with objects
$.widget.extend( {}, value );
// Copy everything else by reference
} else {
target[ key ] = value;
}
}
}
}
return target;
};
$.widget.bridge = function( name, object ) {
var fullName = object.prototype.widgetFullName || name;
$.fn[ name ] = function( options ) {
var isMethodCall = typeof options === "string",
args = slice.call( arguments, 1 ),
returnValue = this;
// allow multiple hashes to be passed on init
options = !isMethodCall && args.length ?
$.widget.extend.apply( null, [ options ].concat(args) ) :
options;
if ( isMethodCall ) {
this.each(function() {
var methodValue,
instance = $.data( this, fullName );
if ( !instance ) {
return $.error( "cannot call methods on " + name + "
prior to initialization; " +
"attempted to call method '" + options +
"'" );
}
if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) ===
"_" ) {
return $.error( "no such method '" + options +
"' for " + name + " widget instance" );
}
methodValue = instance[ options ].apply( instance, args );
if ( methodValue !== instance && methodValue !== undefined ) {
returnValue = methodValue && methodValue.jquery ?
returnValue.pushStack( methodValue.get() ) :
methodValue;
return false;
}
});
} else {
this.each(function() {
var instance = $.data( this, fullName );
if ( instance ) {
instance.option( options || {} )._init();
} else {
$.data( this, fullName, new object( options, this ) );
}
});
}
return returnValue;
};
};
$.Widget = function( /* options, element */ ) {};
$.Widget._childConstructors = [];
$.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: false,
// callbacks
create: null
},
_createWidget: function( options, element ) {
element = $( element || this.defaultElement || this )[ 0 ];
this.element = $( element );
this.uuid = uuid++;
this.eventNamespace = "." + this.widgetName + this.uuid;
this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );
this.bindings = $();
this.hoverable = $();
this.focusable = $();
if ( element !== this ) {
$.data( element, this.widgetFullName, this );
this._on( true, this.element, {
remove: function( event ) {
if ( event.target === element ) {
this.destroy();
}
}
});
this.document = $( element.style ?
// element within the document
element.ownerDocument :
// element is window or document
element.document || element );
this.window = $( this.document[0].defaultView ||
this.document[0].parentWindow );
}
this._create();
this._trigger( "create", null, this._getCreateEventData() );
this._init();
},
_getCreateOptions: $.noop,
_getCreateEventData: $.noop,
_create: $.noop,
_init: $.noop,
destroy: function() {
this._destroy();
// we can probably remove the unbind calls in 2.0
// all event bindings should go through this._on()
this.element
.unbind( this.eventNamespace )
// 1.9 BC for #7810
// TODO remove dual storage
.removeData( this.widgetName )
.removeData( this.widgetFullName )
// support: jquery <1.6.3
// http://bugs.jquery.com/ticket/9413
.removeData( $.camelCase( this.widgetFullName ) );
this.widget()
.unbind( this.eventNamespace )
.removeAttr( "aria-disabled" )
.removeClass(
this.widgetFullName + "-disabled " +
"ui-state-disabled" );
// clean up events and states
this.bindings.unbind( this.eventNamespace );
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
},
_destroy: $.noop,
widget: function() {
return this.element;
},
option: function( key, value ) {
var options = key,
parts,
curOption,
i;
if ( arguments.length === 0 ) {
// don't return a reference to the internal hash
return $.widget.extend( {}, this.options );
}
if ( typeof key === "string" ) {
// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___
} }
options = {};
parts = key.split( "." );
key = parts.shift();
if ( parts.length ) {
curOption = options[ key ] = $.widget.extend( {}, this.options[ key ]
);
for ( i = 0; i < parts.length - 1; i++ ) {
curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
curOption = curOption[ parts[ i ] ];
}
key = parts.pop();
if ( value === undefined ) {
return curOption[ key ] === undefined ? null : curOption[ key ];
}
curOption[ key ] = value;
} else {
if ( value === undefined ) {
return this.options[ key ] === undefined ? null : this.options[ key
];
}
options[ key ] = value;
}
}
this._setOptions( options );
return this;
},
_setOptions: function( options ) {
var key;
for ( key in options ) {
this._setOption( key, options[ key ] );
}
return this;
},
_setOption: function( key, value ) {
this.options[ key ] = value;
if ( key === "disabled" ) {
this.widget()
.toggleClass( this.widgetFullName + "-disabled
ui-state-disabled", !!value )
.attr( "aria-disabled", value );
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
}
return this;
},
enable: function() {
return this._setOption( "disabled", false );
},
disable: function() {
return this._setOption( "disabled", true );
},
_on: function( suppressDisabledCheck, element, handlers ) {
var delegateElement,
instance = this;
// no suppressDisabledCheck flag, shuffle arguments
if ( typeof suppressDisabledCheck !== "boolean" ) {
handlers = element;
element = suppressDisabledCheck;
suppressDisabledCheck = false;
}
// no element argument, shuffle and use this.element
if ( !handlers ) {
handlers = element;
element = this.element;
delegateElement = this.widget();
} else {
// accept selectors, DOM elements
element = delegateElement = $( element );
this.bindings = this.bindings.add( element );
}
$.each( handlers, function( event, handler ) {
function handlerProxy() {
// allow widgets to customize the disabled handling
// - disabled as an array instead of boolean
// - disabled class as method for disabling individual parts
if ( !suppressDisabledCheck &&
( instance.options.disabled === true ||
$( this ).hasClass( "ui-state-disabled" ) ) ) {
return;
}
return ( typeof handler === "string" ? instance[ handler ] :
handler )
.apply( instance, arguments );
}
// copy the guid so direct unbinding works
if ( typeof handler !== "string" ) {
handlerProxy.guid = handler.guid =
handler.guid || handlerProxy.guid || $.guid++;
}
var match = event.match( /^(\w+)\s*(.*)$/ ),
eventName = match[1] + instance.eventNamespace,
selector = match[2];
if ( selector ) {
delegateElement.delegate( selector, eventName, handlerProxy );
} else {
element.bind( eventName, handlerProxy );
}
});
},
_off: function( element, eventName ) {
eventName = (eventName || "").split( " " ).join(
this.eventNamespace + " " ) + this.eventNamespace;
element.unbind( eventName ).undelegate( eventName );
},
_delay: function( handler, delay ) {
function handlerProxy() {
return ( typeof handler === "string" ? instance[ handler ] :
handler )
.apply( instance, arguments );
}
var instance = this;
return setTimeout( handlerProxy, delay || 0 );
},
_hoverable: function( element ) {
this.hoverable = this.hoverable.add( element );
this._on( element, {
mouseenter: function( event ) {
$( event.currentTarget ).addClass( "ui-state-hover" );
},
mouseleave: function( event ) {
$( event.currentTarget ).removeClass( "ui-state-hover" );
}
});
},
_focusable: function( element ) {
this.focusable = this.focusable.add( element );
this._on( element, {
focusin: function( event ) {
$( event.currentTarget ).addClass( "ui-state-focus" );
},
focusout: function( event ) {
$( event.currentTarget ).removeClass( "ui-state-focus" );
}
});
},
_trigger: function( type, event, data ) {
var prop, orig,
callback = this.options[ type ];
data = data || {};
event = $.Event( event );
event.type = ( type === this.widgetEventPrefix ?
type :
this.widgetEventPrefix + type ).toLowerCase();
// the original event may come from any element
// so we need to reset the target on the new event
event.target = this.element[ 0 ];
// copy original event properties over to the new event
orig = event.originalEvent;
if ( orig ) {
for ( prop in orig ) {
if ( !( prop in event ) ) {
event[ prop ] = orig[ prop ];
}
}
}
this.element.trigger( event, data );
return !( $.isFunction( callback ) &&
callback.apply( this.element[0], [ event ].concat( data ) ) === false
||
event.isDefaultPrevented() );
}
};
$.each( { show: "fadeIn", hide: "fadeOut" }, function(
method, defaultEffect ) {
$.Widget.prototype[ "_" + method ] = function( element, options,
callback ) {
if ( typeof options === "string" ) {
options = { effect: options };
}
var hasOptions,
effectName = !options ?
method :
options === true || typeof options === "number" ?
defaultEffect :
options.effect || defaultEffect;
options = options || {};
if ( typeof options === "number" ) {
options = { duration: options };
}
hasOptions = !$.isEmptyObject( options );
options.complete = callback;
if ( options.delay ) {
element.delay( options.delay );
}
if ( hasOptions && $.effects && $.effects.effect[
effectName ] ) {
element[ method ]( options );
} else if ( effectName !== method && element[ effectName ] ) {
element[ effectName ]( options.duration, options.easing, callback );
} else {
element.queue(function( next ) {
$( this )[ method ]();
if ( callback ) {
callback.call( element[ 0 ] );
}
next();
});
}
};
});
})( jQuery );
jquery.magnific-popup.min.js000064400000051204151167411240012124
0ustar00/*! Magnific Popup - v1.0.0 - 2014-12-12
* http://dimsemenov.com/plugins/magnific-popup/
* Copyright (c) 2014 Dmitry Semenov; */
(function(e){"function"==typeof
define&&define.amd?define(["jquery"],e):"object"==typeof
exports?e(require("jquery")):e(window.jQuery||window.Zepto)})(function(e){var
t,n,i,o,r,a,s,l="Close",c="BeforeClose",d="AfterClose",u="BeforeAppend",p="MarkupParse",f="Open",m="Change",g="mfp",h="."+g,v="mfp-ready",C="mfp-removing",y="mfp-prevent-close",w=function(){},b=!!window.jQuery,I=e(window),x=function(e,n){t.ev.on(g+e+h,n)},k=function(t,n,i,o){var
r=document.createElement("div");return
r.className="mfp-"+t,i&&(r.innerHTML=i),o?n&&n.appendChild(r):(r=e(r),n&&r.appendTo(n)),r},T=function(n,i){t.ev.triggerHandler(g+n,i),t.st.callbacks&&(n=n.charAt(0).toLowerCase()+n.slice(1),t.st.callbacks[n]&&t.st.callbacks[n].apply(t,e.isArray(i)?i:[i]))},E=function(n){return
n===s&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),s=n),t.currTemplate.closeBtn},_=function(){e.magnificPopup.instance||(t=new
w,t.init(),e.magnificPopup.instance=t)},S=function(){var
e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void
0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in
e)return!0;return!1};w.prototype={constructor:w,init:function(){var
n=navigator.appVersion;t.isIE7=-1!==n.indexOf("MSIE
7."),t.isIE8=-1!==n.indexOf("MSIE
8."),t.isLowIE=t.isIE7||t.isIE8,t.isAndroid=/android/gi.test(n),t.isIOS=/iphone|ipad|ipod/gi.test(n),t.supportsTransition=S(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera
Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows
Phone)|IEMobile/i.test(navigator.userAgent),o=e(document),t.popupsCache={}},open:function(n){i||(i=e(document.body));var
r;if(n.isObj===!1){t.items=n.items.toArray(),t.index=0;var
s,l=n.items;for(r=0;l.length>r;r++)if(s=l[r],s.parsed&&(s=s.el[0]),s===n.el[0]){t.index=r;break}}else
t.items=e.isArray(n.items)?n.items:[n.items],t.index=n.index||0;if(t.isOpen)return
t.updateItemHTML(),void
0;t.types=[],a="",t.ev=n.mainEl&&n.mainEl.length?n.mainEl.eq(0):o,n.key?(t.popupsCache[n.key]||(t.popupsCache[n.key]={}),t.currTemplate=t.popupsCache[n.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,n),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=k("bg").on("click"+h,function(){t.close()}),t.wrap=k("wrap").attr("tabindex",-1).on("click"+h,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=k("container",t.wrap)),t.contentContainer=k("content"),t.st.preloader&&(t.preloader=k("preloader",t.container,t.st.tLoading));var
c=e.magnificPopup.modules;for(r=0;c.length>r;r++){var
d=c[r];d=d.charAt(0).toUpperCase()+d.slice(1),t["init"+d].call(t)}T("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(x(p,function(e,t,n,i){n.close_replaceWith=E(i.type)}),a+="
mfp-close-btn-in"):t.wrap.append(E())),t.st.alignTop&&(a+="
mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:I.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:o.height(),position:"absolute"}),t.st.enableEscapeKey&&o.on("keyup"+h,function(e){27===e.keyCode&&t.close()}),I.on("resize"+h,function(){t.updateSize()}),t.st.closeOnContentClick||(a+="
mfp-auto-cursor"),a&&t.wrap.addClass(a);var
u=t.wH=I.height(),m={};if(t.fixedContentPos&&t._hasScrollBar(u)){var
g=t._getScrollbarSize();g&&(m.marginRight=g)}t.fixedContentPos&&(t.isIE7?e("body,
html").css("overflow","hidden"):m.overflow="hidden");var
C=t.st.mainClass;return t.isIE7&&(C+="
mfp-ie7"),C&&t._addClassToMFP(C),t.updateItemHTML(),T("BuildControls"),e("html").css(m),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||i),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(v),t._setFocus()):t.bgOverlay.addClass(v),o.on("focusin"+h,t._onFocusIn)},16),t.isOpen=!0,t.updateSize(u),T(f),n},close:function(){t.isOpen&&(T(c),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(C),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){T(l);var
n=C+" "+v+"
";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(n+=t.st.mainClass+"
"),t._removeClassFromMFP(n),t.fixedContentPos){var
i={marginRight:""};t.isIE7?e("body,
html").css("overflow",""):i.overflow="",e("html").css(i)}o.off("keyup"+h+"
focusin"+h),t.ev.off(h),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,T(d)},updateSize:function(e){if(t.isIOS){var
n=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*n;t.wrap.css("height",i),t.wH=i}else
t.wH=e||I.height();t.fixedContentPos||t.wrap.css("height",t.wH),T("Resize")},updateItemHTML:function(){var
n=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),n.parsed||(n=t.parseEl(t.index));var
i=n.type;if(T("BeforeChange",[t.currItem?t.currItem.type:"",i]),t.currItem=n,!t.currTemplate[i]){var
o=t.st[i]?t.st[i].markup:!1;T("FirstMarkupParse",o),t.currTemplate[i]=o?e(o):!0}r&&r!==n.type&&t.container.removeClass("mfp-"+r+"-holder");var
a=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](n,t.currTemplate[i]);t.appendContent(a,i),n.preloaded=!0,T(m,n),r=n.type,t.container.prepend(t.contentContainer),T("AfterChange")},appendContent:function(e,n){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&t.currTemplate[n]===!0?t.content.find(".mfp-close").length||t.content.append(E()):t.content=e:t.content="",T(u),t.container.addClass("mfp-"+n+"-holder"),t.contentContainer.append(t.content)},parseEl:function(n){var
i,o=t.items[n];if(o.tagName?o={el:e(o)}:(i=o.type,o={data:o,src:o.src}),o.el){for(var
r=t.types,a=0;r.length>a;a++)if(o.el.hasClass("mfp-"+r[a])){i=r[a];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return
o.type=i||t.st.type||"inline",o.index=n,o.parsed=!0,t.items[n]=o,T("ElementParse",o),t.items[n]},addGroup:function(e,n){var
i=function(i){i.mfpEl=this,t._openClick(i,e,n)};n||(n={});var
o="click.magnificPopup";n.mainEl=e,n.items?(n.isObj=!0,e.off(o).on(o,i)):(n.isObj=!1,n.delegate?e.off(o).on(o,n.delegate,i):(n.items=e,e.off(o).on(o,i)))},_openClick:function(n,i,o){var
r=void
0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick;if(r||2!==n.which&&!n.ctrlKey&&!n.metaKey){var
a=void
0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else
if(a>I.width())return!0;n.type&&(n.preventDefault(),t.isOpen&&n.stopPropagation()),o.el=e(n.mfpEl),o.delegate&&(o.items=i.find(o.delegate)),t.open(o)}},updateStatus:function(e,i){if(t.preloader){n!==e&&t.container.removeClass("mfp-s-"+n),i||"loading"!==e||(i=t.st.tLoading);var
o={status:e,text:i};T("UpdateStatus",o),e=o.status,i=o.text,t.preloader.html(i),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),n=e}},_checkIfClose:function(n){if(!e(n).hasClass(y)){var
i=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(i&&o)return!0;if(!t.content||e(n).hasClass("mfp-close")||t.preloader&&n===t.preloader[0])return!0;if(n===t.content[0]||e.contains(t.content[0],n)){if(i)return!0}else
if(o&&e.contains(document,n))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?o.height():document.body.scrollHeight)>(e||I.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(n){return
n.target===t.wrap[0]||e.contains(t.wrap[0],n.target)?void
0:(t._setFocus(),!1)},_parseMarkup:function(t,n,i){var
o;i.data&&(n=e.extend(i.data,n)),T(p,[t,n,i]),e.each(n,function(e,n){if(void
0===n||n===!1)return!0;if(o=e.split("_"),o.length>1){var
i=t.find(h+"-"+o[0]);if(i.length>0){var
r=o[1];"replaceWith"===r?i[0]!==n[0]&&i.replaceWith(n):"img"===r?i.is("img")?i.attr("src",n):i.replaceWith('<img
src="'+n+'"
class="'+i.attr("class")+'"
/>'):i.attr(o[1],n)}}else
t.find(h+"-"+e).html(n)})},_getScrollbarSize:function(){if(void
0===t.scrollbarSize){var
e=document.createElement("div");e.style.cssText="width:
99px; height: 99px; overflow: scroll; position: absolute; top:
-9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return
t.scrollbarSize}},e.magnificPopup={instance:null,proto:w.prototype,modules:[],open:function(t,n){return
_(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=n||0,this.instance.open(t)},close:function(){return
e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,n){n.options&&(e.magnificPopup.defaults[t]=n.options),e.extend(this.proto,n.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button
title="%title%" type="button"
class="mfp-close">×</button>',tClose:"Close
(Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(n){_();var
i=e(this);if("string"==typeof n)if("open"===n){var
o,r=b?i.data("magnificPopup"):i[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=i,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},i,r)}else
t.isOpen&&t[n].apply(t,Array.prototype.slice.call(arguments,1));else
n=e.extend(!0,{},n),b?i.data("magnificPopup",n):i[0].magnificPopup=n,t.addGroup(i,n);return
i};var
P,O,z,M="inline",B=function(){z&&(O.after(z.addClass(P)).detach(),z=null)};e.magnificPopup.registerModule(M,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content
not
found"},proto:{initInline:function(){t.types.push(M),x(l+"."+M,function(){B()})},getInline:function(n,i){if(B(),n.src){var
o=t.st.inline,r=e(n.src);if(r.length){var
a=r[0].parentNode;a&&a.tagName&&(O||(P=o.hiddenClass,O=k(P),P="mfp-"+P),z=r.after(O).detach().removeClass(P)),t.updateStatus("ready")}else
t.updateStatus("error",o.tNotFound),r=e("<div>");return
n.inlineElement=r,r}return
t.updateStatus("ready"),t._parseMarkup(i,{},n),i}}});var
F,H="ajax",L=function(){F&&i.removeClass(F)},A=function(){L(),t.req&&t.req.abort()};e.magnificPopup.registerModule(H,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a
href="%url%">The content</a> could not be
loaded.'},proto:{initAjax:function(){t.types.push(H),F=t.st.ajax.cursor,x(l+"."+H,A),x("BeforeChange."+H,A)},getAjax:function(n){F&&i.addClass(F),t.updateStatus("loading");var
o=e.extend({url:n.src,success:function(i,o,r){var
a={data:i,xhr:r};T("ParseAjax",a),t.appendContent(e(a.data),H),n.finished=!0,L(),t._setFocus(),setTimeout(function(){t.wrap.addClass(v)},16),t.updateStatus("ready"),T("AjaxContentAdded")},error:function(){L(),n.finished=n.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",n.src))}},t.st.ajax.settings);return
t.req=e.ajax(o),""}}});var
j,N=function(n){if(n.data&&void 0!==n.data.title)return
n.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return
i.call(t,n);if(n.el)return
n.el.attr(i)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div
class="mfp-figure"><div
class="mfp-close"></div><figure><div
class="mfp-img"></div><figcaption><div
class="mfp-bottom-bar"><div
class="mfp-title"></div><div
class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a
href="%url%">The image</a> could not be
loaded.'},proto:{initImage:function(){var
e=t.st.image,n=".image";t.types.push("image"),x(f+n,function(){"image"===t.currItem.type&&e.cursor&&i.addClass(e.cursor)}),x(l+n,function(){e.cursor&&i.removeClass(e.cursor),I.off("resize"+h)}),x("Resize"+n,t.resizeImage),t.isLowIE&&x("AfterChange",t.resizeImage)},resizeImage:function(){var
e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var
n=0;t.isLowIE&&(n=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-n)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,j&&clearInterval(j),e.isCheckingImgSize=!1,T("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var
n=0,i=e.img[0],o=function(r){j&&clearInterval(j),j=setInterval(function(){return
i.naturalWidth>0?(t._onImageHasSize(e),void
0):(n>200&&clearInterval(j),n++,3===n?o(10):40===n?o(50):100===n&&o(500),void
0)},r)};o(1)},getImage:function(n,i){var
o=0,r=function(){n&&(n.img[0].complete?(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("ready")),n.hasSize=!0,n.loaded=!0,T("ImageLoadComplete")):(o++,200>o?setTimeout(r,100):a()))},a=function(){n&&(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("error",s.tError.replace("%url%",n.src))),n.hasSize=!0,n.loaded=!0,n.loadError=!0)},s=t.st.image,l=i.find(".mfp-img");if(l.length){var
c=document.createElement("img");c.className="mfp-img",n.el&&n.el.find("img").length&&(c.alt=n.el.find("img").attr("alt")),n.img=e(c).on("load.mfploader",r).on("error.mfploader",a),c.src=n.src,l.is("img")&&(n.img=n.img.clone()),c=n.img[0],c.naturalWidth>0?n.hasSize=!0:c.width||(n.hasSize=!1)}return
t._parseMarkup(i,{title:N(n),img_replaceWith:n.img},n),t.resizeImage(),n.hasSize?(j&&clearInterval(j),n.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",n.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),n.loading=!0,n.hasSize||(n.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(n)),i)}}});var
W,R=function(){return void 0===W&&(W=void
0!==document.createElement("p").style.MozTransform),W};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return
e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var
e,n=t.st.zoom,i=".zoom";if(n.enabled&&t.supportsTransition){var
o,r,a=n.duration,s=function(e){var
t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all
"+n.duration/1e3+"s
"+n.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return
o["-webkit-"+r]=o["-moz-"+r]=o["-o-"+r]=o[r]=i,t.css(o),t},d=function(){t.content.css("visibility","visible")};x("BuildControls"+i,function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),e=t._getItemToZoom(),!e)return
d(),void
0;r=s(e),r.css(t._getOffset()),t.wrap.append(r),o=setTimeout(function(){r.css(t._getOffset(!0)),o=setTimeout(function(){d(),setTimeout(function(){r.remove(),e=r=null,T("ZoomAnimationEnded")},16)},a)},16)}}),x(c+i,function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=a,!e){if(e=t._getItemToZoom(),!e)return;r=s(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout(function(){r.css(t._getOffset())},16)}}),x(l+i,function(){t._allowZoom()&&(d(),r&&r.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return
t.currItem.hasSize?t.currItem.img:!1},_getOffset:function(n){var
i;i=n?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var
o=i.offset(),r=parseInt(i.css("padding-top"),10),a=parseInt(i.css("padding-bottom"),10);o.top-=e(window).scrollTop()-r;var
s={width:i.width(),height:(b?i.innerHeight():i[0].offsetHeight)-a-r};return
R()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var
Z="iframe",q="//about:blank",D=function(e){if(t.currTemplate[Z]){var
n=t.currTemplate[Z].find("iframe");n.length&&(e||(n[0].src=q),t.isIE8&&n.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(Z,{options:{markup:'<div
class="mfp-iframe-scaler"><div
class="mfp-close"></div><iframe
class="mfp-iframe" src="//about:blank"
frameborder="0"
allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(Z),x("BeforeChange",function(e,t,n){t!==n&&(t===Z?D():n===Z&&D(!0))}),x(l+"."+Z,function(){D()})},getIframe:function(n,i){var
o=n.src,r=t.st.iframe;e.each(r.patterns,function(){return
o.indexOf(this.index)>-1?(this.id&&(o="string"==typeof
this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1):void
0});var a={};return
r.srcAction&&(a[r.srcAction]=o),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var
K=function(e){var n=t.items.length;return
e>n-1?e-n:0>e?n+e:e},Y=function(e,t,n){return
e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button
title="%title%" type="button" class="mfp-arrow
mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous
(Left arrow key)",tNext:"Next (Right arrow
key)",tCounter:"%curr% of
%total%"},proto:{initGallery:function(){var
n=t.st.gallery,i=".mfp-gallery",r=Boolean(e.fn.mfpFastClick);return
t.direction=!0,n&&n.enabled?(a+="
mfp-gallery",x(f+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){return
t.items.length>1?(t.next(),!1):void
0}),o.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),x("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),x(p+i,function(e,i,o,r){var
a=t.items.length;o.counter=a>1?Y(n.tCounter,r.index,a):""}),x("BuildControls"+i,function(){if(t.items.length>1&&n.arrows&&!t.arrowLeft){var
i=n.arrowMarkup,o=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(y),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(y),s=r?"mfpFastClick":"click";o[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",o[0],!1,!0),k("a",o[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(o.add(a))}}),x(m+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),x(l+i,function(){o.off(i),t.wrap.off("click"+i),t.arrowLeft&&r&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}),void
0):!1},next:function(){t.direction=!0,t.index=K(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=K(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var
e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),o=Math.min(n[1],t.items.length);for(e=1;(t.direction?o:i)>=e;e++)t._preloadItem(t.index+e);for(e=1;(t.direction?i:o)>=e;e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=K(n),!t.items[n].preloaded){var
i=t.items[n];i.parsed||(i=t.parseEl(n)),T("LazyLoad",i),"image"===i.type&&(i.img=e('<img
class="mfp-img"
/>').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,T("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var
U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return
e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var
e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(x("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),x("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var
t=1e3,n="ontouchstart"in
window,i=function(){I.off("touchmove"+r+"
touchend"+r)},o="mfpFastClick",r="."+o;e.fn.mfpFastClick=function(o){return
e(this).each(function(){var a,s=e(this);if(n){var
l,c,d,u,p,f;s.on("touchstart"+r,function(e){u=!1,f=1,p=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],c=p.clientX,d=p.clientY,I.on("touchmove"+r,function(e){p=e.originalEvent?e.originalEvent.touches:e.touches,f=p.length,p=p[0],(Math.abs(p.clientX-c)>10||Math.abs(p.clientY-d)>10)&&(u=!0,i())}).on("touchend"+r,function(e){i(),u||f>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),o())})})}s.on("click"+r,function(){a||o()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+r+"
click"+r),n&&I.off("touchmove"+r+"
touchend"+r)}}(),_()});rsmembership.js000064400000045474151167411240007622
0ustar00var RSMembership = {};
RSMembership.parseJSON = function (data) {
if (typeof data != 'object') {
var match = data.match(/{.*}/);
return jQuery.parseJSON(match[0]);
}
return jQuery.parseJSON(data);
};
RSMembership.utils = {
format_decimals : 2,
format_decimals_point: '.',
format_thousands_sep: '',
random: function(){
return Math.ceil(10000*Math.random());
},
magnificModal: function(modal_id) {
if (typeof jQuery == 'undefined')
{
alert(Joomla.JText._('COM_RSMEMBERSHIP_JQUERY_NOT_FOUND'));
}
else {
jQuery.magnificPopup.open({
type: 'inline',
preloader: true,
overflowY: 'scroll',
items: {
src: modal_id,
callbacks: {
beforeOpen: function () {
jQuery(modal_id).show();
},
close: function () {
jQuery(modal_id).hide();
}
}
}
});
}
},
tooltipster: function (){
if (typeof jQuery == 'undefined')
{
alert(Joomla.JText._('COM_RSMEMBERSHIP_JQUERY_NOT_FOUND'));
}
else {
jQuery('.hasRsmemTooltip').tooltipster({
functionInit: function(instance, helper){
var $origin = jQuery(helper.origin),
dataOptions = $origin.attr('data-tooltipster');
if(dataOptions){
dataOptions = JSON.parse(dataOptions);
jQuery.each(dataOptions, function(name, option){
instance.option(name, option);
});
}
}
});
}
},
number_format: function(number) {
var decimals = RSMembership.utils.format_decimals;
var dec_point = RSMembership.utils.format_decimals_point;
var thousands_point = RSMembership.utils.format_thousands_sep;
if (number == null || !isFinite(number)) {
console.log('number is not valid');
return number;
}
if (!decimals) {
var len = number.toString().split('.').length;
decimals = len > 1 ? len : 0;
}
if (!dec_point) {
dec_point = '.';
}
if (!thousands_point) {
thousands_point = ',';
}
number = parseFloat(number).toFixed(decimals);
number = number.replace(".", dec_point);
var splitNum = number.split(dec_point);
splitNum[0] = splitNum[0].replace(/\B(?=(\d{3})+(?!\d))/g,
thousands_point);
number = splitNum.join(dec_point);
return number;
}
};
RSMembership.subscribe = {
init: {
ajax_wait : false,
timeout : false,
captcha_url : '',
validations : [],
field_validations : [],
err_html_class : 'rsm_field_error',
check_user_url : ''
},
// Username related function
ajax_flag: function() {
if (RSMembership.subscribe.init.timeout) {
clearTimeout(RSMembership.subscribe.init.timeout);
}
RSMembership.subscribe.init.ajax_wait = true;
RSMembership.subscribe.init.timeout = setTimeout(function () {
RSMembership.subscribe.init.ajax_wait = false;
RSMembership.subscribe.check_username(document.getElementById('rsm_username'));
} , 2000);
},
validate_username: function(username) {
var regex = new
RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&]",
"i");
if(username.length < 2 || regex.test(username)) {
return false;
}
return true;
},
check_username: function(what) {
// convert to jQuery object
what = jQuery(what);
var regex = new
RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&]",
"i");
var clean_value = what.val().replace(regex, '');
what.val(clean_value);
username = what.val();
var message = jQuery('#rsm_username_message');
if (!RSMembership.subscribe.validate_username(username)) {
message.show('fast');
message.addClass('rsm_error');
message.html(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_TYPE_USERNAME'));
return false;
}
message.hide('fast');
message.removeClass('rsm_error');
message.html('');
if (RSMembership.subscribe.init.ajax_wait) {
return true;
}
var params = {
username : jQuery('#rsm_username').val().trim(),
name : jQuery('#name').val(),
email : jQuery('#email').val()
};
jQuery.ajax({
type : 'POST',
url : RSMembership.subscribe.init.check_user_url,
dataType : 'html',
data : params,
beforeSend : function () {
jQuery('#rsm_loading').show('fast');
}
}).done(function (response) {
jQuery('#rsm_loading').hide('fast');
RSMembership.subscribe.init.ajax_wait = false;
if (jQuery('#rsm_suggestions_ol li').length) {
jQuery.each(jQuery('#rsm_suggestions_ol > li'),
function(){
jQuery(this).remove();
});
}
var is_available = false;
var suggestions = response.split('|');
for (var i=0; i<suggestions.length; i++) {
if (suggestions[i] == what.val().trim()) {
is_available = true;
}
var a = jQuery('<a>', {'href' :
'javascript: void(0);'});
a.html(suggestions[i]);
a.bind('click', function(){
RSMembership.subscribe.add_username(jQuery(this).html());
});
var li = jQuery('<li>');
li.append(a);
jQuery('#rsm_suggestions_ol').append(li);
}
message.show('fast');
var suggestions_container = jQuery('#rsm_suggestions');
if (is_available)
{
suggestions_container.hide('fast');
message.removeClass('rsm_error').addClass('rsm_ok');
message.html(Joomla.JText._('COM_RSMEMBERSHIP_USERNAME_IS_OK'));
}
else
{
suggestions_container.css({'opacity': 1, 'filter'
: 'alpha(opacity = 100)'}).fadeIn('fast');
message.removeClass('rsm_ok').addClass('rsm_error');
message.html(Joomla.JText._('COM_RSMEMBERSHIP_USERNAME_NOT_OK'));
}
});
},
add_username: function(username) {
var message = jQuery('#rsm_username_message');
jQuery('#rsm_username').val(username);
jQuery('#rsm_suggestions').hide('fast');
message.hide('fast');
message.removeClass('rsm_error').addClass('rsm_ok');
message.html(Joomla.JText._('COM_RSMEMBERSHIP_USERNAME_IS_OK'));
},
// Captcha functions
refresh_captcha: function() {
var url = RSMembership.subscribe.init.captcha_url.replace(/#SID#/,
'captcha' + RSMembership.utils.random());
jQuery('#submit_captcha_image').attr('src', url);
return false;
},
// Form validation function
validate_subscribe: function(form) {
var form = jQuery(form);
var msg = new Array();
// Clear the previous error fields
form.find('.rsm_field_error').removeClass('rsm_field_error');
// default validations: membershipterms, username, password, name
if (RSMembership.subscribe.init.validations.length)
{
jQuery.each(RSMembership.subscribe.init.validations, function(i,
validation) {
if (typeof RSMembership.subscribe[validation] == 'function')
{
RSMembership.subscribe[validation](form, msg);
}
});
}
if (RSMembership.subscribe.init.field_validations.length)
{
jQuery.each(RSMembership.subscribe.init.field_validations, function(i,
field) {
field.required = parseInt(field.required);
if (field.field_type == 'checkbox' || field.field_type ==
'radio')
{
if (field.required) {
var is_checked = false;
for(var j = 0; j < field.field_id.length; j++)
{
if
(form.find('#'+field.field_id[j]).is(':checked')){
is_checked = true;
break;
}
}
if (!is_checked) {
msg.push(field.err_msg);
}
}
}
else
{
if (field.required &&
form.find('#'+field.field_id).val().length == 0){
msg.push(field.err_msg);
form.find('#'+field.field_id).addClass('rsm_field_error');
}
if (typeof field.rule != 'undefined') {
var field_value = form.find('#'+field.field_id).val();
if (field_value.length > 0) {
if (typeof RSMembership.subscribe[field.rule] ==
'function')
{
var msg_set = (typeof field.err_msg_rule != 'undefined' ?
field.err_msg_rule : field.err_msg);
RSMembership.subscribe[field.rule](form, msg, field.field_id,
msg_set);
}
}
}
}
});
}
if (msg.length > 0) {
// Build the error messages container
var msg_container = jQuery('<div>', {
'class': 'rsm_modal_error_container',
'style': 'margin-top:20px;'
});
msg_container.append('<div class="alert alert-danger
rsmemgrid-alert"><strong>'+Joomla.JText._('COM_RSMEMBERSHIP_THERE_WAS_AN_ERROR')+'</strong><ol><li>'
+ msg.join('</li><li>') +
'</li></ol></div>');
// Add it to the modal
jQuery('#rsmembershipModal').empty().append(msg_container);
// Force the modal to not be wider
jQuery('#rsmembershipModal').width(msg_container.outerWidth());
// Open the modal
try {
RSMembership.utils.magnificModal('#rsmembershipModal');
} catch(err) {
alert(msg.join("\n"));
}
return false;
}
return true;
},
numeric: function(form, msg, field_id, msg_set) {
var regex = /^([0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]+?)?)$/;
var value = form.find('#'+field_id).val();
value = value.replace(/(?:\r\n|\r|\n)/g, '');
if (!regex.test(value)) {
msg.push(msg_set);
form.find('#'+field_id).addClass('rsm_field_error');
}
},
alpha: function(form, msg, field_id, msg_set) {
var regex = /([^a-zA-Z ])/;
var value = form.find('#'+field_id).val();
value = value.replace(/(?:\r\n|\r|\n)/g, '');
if (regex.test(value)) {
msg.push(msg_set);
form.find('#'+field_id).addClass('rsm_field_error');
}
},
alphanumeric: function(form, msg, field_id, msg_set) {
var regex = /([^a-zA-Z0-9 ])/;
var value = form.find('#'+field_id).val();
value = value.replace(/(?:\r\n|\r|\n)/g, '');
if (regex.test(value)) {
msg.push(msg_set);
form.find('#'+field_id).addClass('rsm_field_error');
}
},
email: function(form, msg, field_id, msg_set) {
var regex=/.*@.*/;
if (!regex.test(form.find('#'+field_id).val())) {
msg.push(msg_set);
form.find('#'+field_id).addClass('rsm_field_error');
}
},
website: function(form, msg, field_id, msg_set) {
var regex = /^(http|https):\/\/([\w-]+\.)+[\w-]+(\/[\w-
./?%&=]*)?$/;
if (!regex.test(form.find('#'+field_id).val())) {
msg.push(msg_set);
form.find('#'+field_id).addClass('rsm_field_error');
}
},
membershipterms: function(form, msg) {
if (!form.find('#rsm_checkbox_agree').is(':checked')
)
{
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_AGREE_MEMBERSHIP'));
}
},
username: function (form, msg) {
if
(!RSMembership.subscribe.validate_username(form.find('#rsm_username').val()))
{
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_TYPE_USERNAME'));
form.find('#rsm_username').addClass('rsm_field_error');
}
if (form.find('#rsm_username_message').attr('class')
== 'rsm_error')
{
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_USERNAME_NOT_OK'));
form.find('#rsm_username').addClass('rsm_field_error');
}
},
password: function (form, msg) {
if (form.find('#rsm_password').val().length == 0)
{
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_TYPE_PASSWORD'));
form.find('#rsm_password').addClass('rsm_field_error');
}
else if (form.find('#rsm_password').val() !=
form.find('#rsm_password2').val())
{
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_CONFIRM_PASSWORD'));
form.find('#rsm_password2').addClass('rsm_field_error');
}
},
name: function(form, msg) {
if (form.find('#name').val().length == 0) {
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_TYPE_NAME'));
form.find('#name').addClass('rsm_field_error');
}
var regex=/.*@.*/;
if (form.find('#email').val().length == 0 ||
!regex.test(form.find('#email').val()))
{
msg.push(Joomla.JText._('COM_RSMEMBERSHIP_PLEASE_TYPE_EMAIL'));
form.find('#email').addClass('rsm_field_error');
}
}
};
RSMembership.removeData = function(button) {
jQuery(button).fadeOut({
complete: function() {
jQuery('#rsmembership_remove_data_and_close_account').fadeIn();
}
});
};
RSMembership.requestRemoveData = function(button) {
jQuery(button).prop('disabled',
true).addClass('disabled');
var container =
jQuery('#rsmembership_remove_data_and_close_account');
var url = Joomla.getOptions('system.paths').root +
'/index.php';
var token = Joomla.getOptions('csrf.token');
var data = {
'option': 'com_rsmembership',
'task': 'removedata.request'
};
data[token] = 1;
jQuery.post(url, data, function(response){
container.fadeOut({
complete: function() {
container.find('.alert-warning').removeClass('alert-warning').addClass('alert-info');
container.find('.alert').text(response);
container.fadeIn();
}
})
});
};
RSMembership.buildTotal = {
format: '{price} {currency}',
show_free: false,
currency: '',
iscoupon: false,
delay_timer: null,
remake_total: function (isPressed) {
var total_field = jQuery('#rsm_grand_total');
// if no total field found do not run
if (total_field.length == 0) {
return;
}
var total_value = parseFloat(total_field.data('fixedvalue'));
// check if there is an extra value (this should be available only in one
page checkout)
var extras_total_value = 0;
// change the percentage for the payments if extras are present
var extras_present = false;
// get all selected extras
if (jQuery('.rsm_extra').length) {
jQuery('.rsm_extra').each(function () {
var element = jQuery(this);
if (typeof element[0].type !== 'undefined') {
switch (element[0].type) {
case 'select-one':
var price_value =
element.find('option:selected').data('pricevalue');
if (typeof price_value === 'undefined') {
price_value = 0;
}
extras_total_value += parseFloat(price_value);
break;
case 'radio':
case 'checkbox':
if (element.is(':checked')) {
extras_total_value +=
parseFloat(element.data('pricevalue'));
}
break;
}
}
});
if (extras_total_value > 0) {
total_value += extras_total_value;
}
extras_present = true;
}
var selected_tax = 0;
jQuery("input[id^='payment']").each(function(){
// this means the initial total has changed and the taxes should be
changed if percent is used
if (extras_present || RSMembership.buildTotal.iscoupon) {
var processor = jQuery(this).next().find('.rsm_tax_value');
if (typeof processor !== 'undefined' &&
processor.data('ispercent')) {
var percent_value =
parseFloat(jQuery(this).next().find('.rsm_percent_value').text());
// change the current rowvalue
var new_tax = (total_value * percent_value) / 100;
processor.data('rawvalue', new_tax);
// display the with defined format
var format_tax =
RSMembership.buildTotal.format.replace('{price}',
RSMembership.utils.number_format(new_tax));
format_tax = format_tax.replace('{currency}',
RSMembership.buildTotal.currency);
processor.html(format_tax);
} else if (typeof processor !== 'undefined' &&
!processor.data('ispercent') && processor.length) {
var rawvalue = processor.data('rawvalue');
var new_tax = 0;
if (total_value == 0) {
processor.data('initialvalue', rawvalue);
} else {
if (processor.data('initialvalue')) {
new_tax = processor.data('initialvalue');
} else {
new_tax = processor.data('rawvalue');
}
}
// change the current rowvalue
processor.data('rawvalue', new_tax);
// display the with defined format
var format_tax =
RSMembership.buildTotal.format.replace('{price}',
RSMembership.utils.number_format(new_tax));
format_tax = format_tax.replace('{currency}',
RSMembership.buildTotal.currency);
processor.html(format_tax);
}
}
if (jQuery(this).is(':checked')) {
selected_tax =
jQuery(this).next().find('.rsm_tax_value').data('rawvalue');
selected_tax = typeof selected_tax !== 'undefined' ?
parseFloat(selected_tax) : 0;
}
// bind the radios
if (typeof isPressed === 'undefined') {
jQuery(this).on('click', function(){
RSMembership.buildTotal.remake_total(true);
});
}
});
total_value = total_value + selected_tax;
if (total_value == 0 && RSMembership.buildTotal.show_free) {
total_field.html(Joomla.Text._('COM_RSMEMBERSHIP_FREE'));
} else {
var format = RSMembership.buildTotal.format.replace('{price}',
RSMembership.utils.number_format(total_value));
format = format.replace('{currency}',
RSMembership.buildTotal.currency);
total_field.html(format);
}
},
set_coupon: function(coupon, id) {
if (coupon.length == 0) {
return;
}
jQuery('#rsm_coupon_loading').show();
if (RSMembership.buildTotal.timeout) {
clearTimeout(RSMembership.buildTotal.timeout);
}
RSMembership.buildTotal.timeout = setTimeout(function() {
jQuery.ajax({
url: 'index.php?option=com_rsmembership&task=setcoupon',
type: 'post',
dataType: 'json',
data: {membership_id: id, coupon: coupon}
}).done(function( response ) {
jQuery('#rsm_coupon_loading').hide();
var coupon_input = jQuery('#coupon');
var discount = parseFloat(response.discount);
if (discount > 0) {
var total_field = jQuery('#rsm_grand_total');
var total_value =
parseFloat(total_field.data('fixedvalue'));
total_field.data('initialvalue', total_value);
total_value = total_value - discount;
if (total_value < 0) {
total_value = 0;
}
total_field.data('fixedvalue', total_value);
RSMembership.buildTotal.iscoupon = true;
RSMembership.buildTotal.remake_total();
var format =
RSMembership.buildTotal.format.replace('{price}',
RSMembership.utils.number_format(discount));
format = format.replace('{currency}',
RSMembership.buildTotal.currency);
jQuery('#rsm_discount_value').html(format);
jQuery('#rsm_discount_value_container').show();
jQuery('#rsm-coupon-ok').html(coupon_input.val());
jQuery('#rsm-coupon-clear').show();
coupon_input.hide();
} else {
coupon_input.addClass('rsm_coupon_error');
RSMembership.buildTotal.clear_coupon();
}
});
}, 1000);
},
clear_coupon: function(isPressed){
if (typeof isPressed !== 'undefined') {
jQuery('#rsm_coupon_loading').hide();
var coupon = jQuery('#coupon');
jQuery('#rsm-coupon-ok').html('');
jQuery('#rsm-coupon-clear').hide();
coupon.removeClass('rsm_coupon_error');
coupon.val('');
coupon.show();
}
jQuery('#rsm_discount_value').html('');
jQuery('#rsm_discount_value_container').hide();
jQuery('#rsm-set-coupon').prop('disabled', false);
var total_field = jQuery('#rsm_grand_total');
if (total_field.data('initialvalue')) {
var total_value_initial =
parseFloat(total_field.data('initialvalue'));
total_field.data('fixedvalue', total_value_initial);
RSMembership.buildTotal.remake_total();
}
RSMembership.buildTotal.iscoupon = false;
}
};tooltipster.bundle.min.js000064400000115735151167411240011542 0ustar00/*!
tooltipster v4.2.8 */!function(a,b){"function"==typeof
define&&define.amd?define(["jquery"],function(a){return
b(a)}):"object"==typeof
exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){function
b(a){this.$container,this.constraints=null,this.__$tooltip,this.__init(a)}function
c(b,c){var d=!0;return a.each(b,function(a,e){return void
0===c[a]||b[a]!==c[a]?(d=!1,!1):void 0}),d}function d(b){var
c=b.attr("id"),d=c?h.window.document.getElementById(c):null;return
d?d===b[0]:a.contains(h.window.document.body,b[0])}function
e(){if(!g)return!1;var
a=g.document.body||g.document.documentElement,b=a.style,c="transition",d=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof
b[c])return!0;c=c.charAt(0).toUpperCase()+c.substr(1);for(var
e=0;e<d.length;e++)if("string"==typeof
b[d[e]+c])return!0;return!1}var
f={animation:"fade",animationDuration:350,content:null,contentAsHTML:!1,contentCloning:!1,debug:!0,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:!1,multiple:!1,parent:null,plugins:["sideTip"],repositionOnScroll:!1,restoration:"none",selfDestruction:!0,theme:[],timer:0,trackerInterval:500,trackOrigin:!1,trackTooltip:!1,trigger:"hover",triggerClose:{click:!1,mouseleave:!1,originClick:!1,scroll:!1,tap:!1,touchleave:!1},triggerOpen:{click:!1,mouseenter:!1,tap:!1,touchstart:!1},updateAnimation:"rotate",zIndex:9999999},g="undefined"!=typeof
window?window:null,h={hasTouchCapability:!(!g||!("ontouchstart"in
g||g.DocumentTouch&&g.document instanceof
g.DocumentTouch||g.navigator.maxTouchPoints)),hasTransitions:e(),IE:!1,semVer:"4.2.8",window:g},i=function(){this.__$emitterPrivate=a({}),this.__$emitterPublic=a({}),this.__instancesLatestArr=[],this.__plugins={},this._env=h};i.prototype={__bridge:function(b,c,d){if(!c[d]){var
e=function(){};e.prototype=b;var g=new
e;g.__init&&g.__init(c),a.each(b,function(a,b){0!=a.indexOf("__")&&(c[a]?f.debug&&console.log("The
"+a+" method of the "+d+" plugin conflicts with another
plugin or native methods"):(c[a]=function(){return
g[a].apply(g,Array.prototype.slice.apply(arguments))},c[a].bridged=g))}),c[d]=g}return
this},__setWindow:function(a){return
h.window=a,this},_getRuler:function(a){return new
b(a)},_off:function(){return
this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return
this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return
this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_plugin:function(b){var
c=this;if("string"==typeof b){var d=b,e=null;return
d.indexOf(".")>0?e=c.__plugins[d]:a.each(c.__plugins,function(a,b){return
b.name.substring(b.name.length-d.length-1)=="."+d?(e=b,!1):void
0}),e}if(b.name.indexOf(".")<0)throw new Error("Plugins
must be namespaced");return
c.__plugins[b.name]=b,b.core&&c.__bridge(b.core,c,b.name),this},_trigger:function(){var
a=Array.prototype.slice.apply(arguments);return"string"==typeof
a[0]&&(a[0]={type:a[0]}),this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,a),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,a),this},instances:function(b){var
c=[],d=b||".tooltipstered";return a(d).each(function(){var
b=a(this),d=b.data("tooltipster-ns");d&&a.each(d,function(a,d){c.push(b.data(d))})}),c},instancesLatest:function(){return
this.__instancesLatestArr},off:function(){return
this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return
this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return
this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},origins:function(b){var
c=b?b+" ":"";return
a(c+".tooltipstered").toArray()},setDefaults:function(b){return
a.extend(f,b),this},triggerHandler:function(){return
this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},a.tooltipster=new
i,a.Tooltipster=function(b,c){this.__callbacks={close:[],open:[]},this.__closingTime,this.__Content,this.__contentBcr,this.__destroyed=!1,this.__$emitterPrivate=a({}),this.__$emitterPublic=a({}),this.__enabled=!0,this.__garbageCollector,this.__Geometry,this.__lastPosition,this.__namespace="tooltipster-"+Math.round(1e6*Math.random()),this.__options,this.__$originParents,this.__pointerIsOverOrigin=!1,this.__previousThemes=[],this.__state="closed",this.__timeouts={close:[],open:null},this.__touchEvents=[],this.__tracker=null,this._$origin,this._$tooltip,this.__init(b,c)},a.Tooltipster.prototype={__init:function(b,c){var
d=this;if(d._$origin=a(b),d.__options=a.extend(!0,{},f,c),d.__optionsFormat(),!h.IE||h.IE>=d.__options.IEmin){var
e=null;if(void
0===d._$origin.data("tooltipster-initialTitle")&&(e=d._$origin.attr("title"),void
0===e&&(e=null),d._$origin.data("tooltipster-initialTitle",e)),null!==d.__options.content)d.__contentSet(d.__options.content);else{var
g,i=d._$origin.attr("data-tooltip-content");i&&(g=a(i)),g&&g[0]?d.__contentSet(g.first()):d.__contentSet(e)}d._$origin.removeAttr("title").addClass("tooltipstered"),d.__prepareOrigin(),d.__prepareGC(),a.each(d.__options.plugins,function(a,b){d._plug(b)}),h.hasTouchCapability&&a(h.window.document.body).on("touchmove."+d.__namespace+"-triggerOpen",function(a){d._touchRecordEvent(a)}),d._on("created",function(){d.__prepareTooltip()})._on("repositioned",function(a){d.__lastPosition=a.position})}else
d.__options.disabled=!0},__contentInsert:function(){var
a=this,b=a._$tooltip.find(".tooltipster-content"),c=a.__Content,d=function(a){c=a};return
a._trigger({type:"format",content:a.__Content,format:d}),a.__options.functionFormat&&(c=a.__options.functionFormat.call(a,a,{origin:a._$origin[0]},a.__Content)),"string"!=typeof
c||a.__options.contentAsHTML?b.empty().append(c):b.text(c),a},__contentSet:function(b){return
b instanceof
a&&this.__options.contentCloning&&(b=b.clone(!0)),this.__Content=b,this._trigger({type:"updated",content:b}),this},__destroyError:function(){throw
new Error("This tooltip has been destroyed and cannot execute your
method call.")},__geometry:function(){var
b=this,c=b._$origin,d=b._$origin.is("area");if(d){var
e=b._$origin.parent().attr("name");c=a('img[usemap="#'+e+'"]')}var
f=c[0].getBoundingClientRect(),g=a(h.window.document),i=a(h.window),j=c,k={available:{document:null,window:null},document:{size:{height:g.height(),width:g.width()}},window:{scroll:{left:h.window.scrollX||h.window.document.documentElement.scrollLeft,top:h.window.scrollY||h.window.document.documentElement.scrollTop},size:{height:i.height(),width:i.width()}},origin:{fixedLineage:!1,offset:{},size:{height:f.bottom-f.top,width:f.right-f.left},usemapImage:d?c[0]:null,windowOffset:{bottom:f.bottom,left:f.left,right:f.right,top:f.top}}};if(d){var
l=b._$origin.attr("shape"),m=b._$origin.attr("coords");if(m&&(m=m.split(","),a.map(m,function(a,b){m[b]=parseInt(a)})),"default"!=l)switch(l){case"circle":var
n=m[0],o=m[1],p=m[2],q=o-p,r=n-p;k.origin.size.height=2*p,k.origin.size.width=k.origin.size.height,k.origin.windowOffset.left+=r,k.origin.windowOffset.top+=q;break;case"rect":var
s=m[0],t=m[1],u=m[2],v=m[3];k.origin.size.height=v-t,k.origin.size.width=u-s,k.origin.windowOffset.left+=s,k.origin.windowOffset.top+=t;break;case"poly":for(var
w=0,x=0,y=0,z=0,A="even",B=0;B<m.length;B++){var
C=m[B];"even"==A?(C>y&&(y=C,0===B&&(w=y)),w>C&&(w=C),A="odd"):(C>z&&(z=C,1==B&&(x=z)),x>C&&(x=C),A="even")}k.origin.size.height=z-x,k.origin.size.width=y-w,k.origin.windowOffset.left+=w,k.origin.windowOffset.top+=x}}var
D=function(a){k.origin.size.height=a.height,k.origin.windowOffset.left=a.left,k.origin.windowOffset.top=a.top,k.origin.size.width=a.width};for(b._trigger({type:"geometry",edit:D,geometry:{height:k.origin.size.height,left:k.origin.windowOffset.left,top:k.origin.windowOffset.top,width:k.origin.size.width}}),k.origin.windowOffset.right=k.origin.windowOffset.left+k.origin.size.width,k.origin.windowOffset.bottom=k.origin.windowOffset.top+k.origin.size.height,k.origin.offset.left=k.origin.windowOffset.left+k.window.scroll.left,k.origin.offset.top=k.origin.windowOffset.top+k.window.scroll.top,k.origin.offset.bottom=k.origin.offset.top+k.origin.size.height,k.origin.offset.right=k.origin.offset.left+k.origin.size.width,k.available.document={bottom:{height:k.document.size.height-k.origin.offset.bottom,width:k.document.size.width},left:{height:k.document.size.height,width:k.origin.offset.left},right:{height:k.document.size.height,width:k.document.size.width-k.origin.offset.right},top:{height:k.origin.offset.top,width:k.document.size.width}},k.available.window={bottom:{height:Math.max(k.window.size.height-Math.max(k.origin.windowOffset.bottom,0),0),width:k.window.size.width},left:{height:k.window.size.height,width:Math.max(k.origin.windowOffset.left,0)},right:{height:k.window.size.height,width:Math.max(k.window.size.width-Math.max(k.origin.windowOffset.right,0),0)},top:{height:Math.max(k.origin.windowOffset.top,0),width:k.window.size.width}};"html"!=j[0].tagName.toLowerCase();){if("fixed"==j.css("position")){k.origin.fixedLineage=!0;break}j=j.parent()}return
k},__optionsFormat:function(){return"number"==typeof
this.__options.animationDuration&&(this.__options.animationDuration=[this.__options.animationDuration,this.__options.animationDuration]),"number"==typeof
this.__options.delay&&(this.__options.delay=[this.__options.delay,this.__options.delay]),"number"==typeof
this.__options.delayTouch&&(this.__options.delayTouch=[this.__options.delayTouch,this.__options.delayTouch]),"string"==typeof
this.__options.theme&&(this.__options.theme=[this.__options.theme]),null===this.__options.parent?this.__options.parent=a(h.window.document.body):"string"==typeof
this.__options.parent&&(this.__options.parent=a(this.__options.parent)),"hover"==this.__options.trigger?(this.__options.triggerOpen={mouseenter:!0,touchstart:!0},this.__options.triggerClose={mouseleave:!0,originClick:!0,touchleave:!0}):"click"==this.__options.trigger&&(this.__options.triggerOpen={click:!0,tap:!0},this.__options.triggerClose={click:!0,tap:!0}),this._trigger("options"),this},__prepareGC:function(){var
b=this;return
b.__options.selfDestruction?b.__garbageCollector=setInterval(function(){var
c=(new
Date).getTime();b.__touchEvents=a.grep(b.__touchEvents,function(a,b){return
c-a.time>6e4}),d(b._$origin)||b.close(function(){b.destroy()})},2e4):clearInterval(b.__garbageCollector),b},__prepareOrigin:function(){var
a=this;if(a._$origin.off("."+a.__namespace+"-triggerOpen"),h.hasTouchCapability&&a._$origin.on("touchstart."+a.__namespace+"-triggerOpen
touchend."+a.__namespace+"-triggerOpen
touchcancel."+a.__namespace+"-triggerOpen",function(b){a._touchRecordEvent(b)}),a.__options.triggerOpen.click||a.__options.triggerOpen.tap&&h.hasTouchCapability){var
b="";a.__options.triggerOpen.click&&(b+="click."+a.__namespace+"-triggerOpen
"),a.__options.triggerOpen.tap&&h.hasTouchCapability&&(b+="touchend."+a.__namespace+"-triggerOpen"),a._$origin.on(b,function(b){a._touchIsMeaningfulEvent(b)&&a._open(b)})}if(a.__options.triggerOpen.mouseenter||a.__options.triggerOpen.touchstart&&h.hasTouchCapability){var
b="";a.__options.triggerOpen.mouseenter&&(b+="mouseenter."+a.__namespace+"-triggerOpen
"),a.__options.triggerOpen.touchstart&&h.hasTouchCapability&&(b+="touchstart."+a.__namespace+"-triggerOpen"),a._$origin.on(b,function(b){!a._touchIsTouchEvent(b)&&a._touchIsEmulatedEvent(b)||(a.__pointerIsOverOrigin=!0,a._openShortly(b))})}if(a.__options.triggerClose.mouseleave||a.__options.triggerClose.touchleave&&h.hasTouchCapability){var
b="";a.__options.triggerClose.mouseleave&&(b+="mouseleave."+a.__namespace+"-triggerOpen
"),a.__options.triggerClose.touchleave&&h.hasTouchCapability&&(b+="touchend."+a.__namespace+"-triggerOpen
touchcancel."+a.__namespace+"-triggerOpen"),a._$origin.on(b,function(b){a._touchIsMeaningfulEvent(b)&&(a.__pointerIsOverOrigin=!1)})}return
a},__prepareTooltip:function(){var
b=this,c=b.__options.interactive?"auto":"";return
b._$tooltip.attr("id",b.__namespace).css({"pointer-events":c,zIndex:b.__options.zIndex}),a.each(b.__previousThemes,function(a,c){b._$tooltip.removeClass(c)}),a.each(b.__options.theme,function(a,c){b._$tooltip.addClass(c)}),b.__previousThemes=a.merge([],b.__options.theme),b},__scrollHandler:function(b){var
c=this;if(c.__options.triggerClose.scroll)c._close(b);else
if(d(c._$origin)&&d(c._$tooltip)){var
e=null;if(b.target===h.window.document)c.__Geometry.origin.fixedLineage||c.__options.repositionOnScroll&&c.reposition(b);else{e=c.__geometry();var
f=!1;if("fixed"!=c._$origin.css("position")&&c.__$originParents.each(function(b,c){var
d=a(c),g=d.css("overflow-x"),h=d.css("overflow-y");if("visible"!=g||"visible"!=h){var
i=c.getBoundingClientRect();if("visible"!=g&&(e.origin.windowOffset.left<i.left||e.origin.windowOffset.right>i.right))return
f=!0,!1;if("visible"!=h&&(e.origin.windowOffset.top<i.top||e.origin.windowOffset.bottom>i.bottom))return
f=!0,!1}return"fixed"==d.css("position")?!1:void
0}),f)c._$tooltip.css("visibility","hidden");else
if(c._$tooltip.css("visibility","visible"),c.__options.repositionOnScroll)c.reposition(b);else{var
g=e.origin.offset.left-c.__Geometry.origin.offset.left,i=e.origin.offset.top-c.__Geometry.origin.offset.top;c._$tooltip.css({left:c.__lastPosition.coord.left+g,top:c.__lastPosition.coord.top+i})}}c._trigger({type:"scroll",event:b,geo:e})}return
c},__stateSet:function(a){return
this.__state=a,this._trigger({type:"state",state:a}),this},__timeoutsClear:function(){return
clearTimeout(this.__timeouts.open),this.__timeouts.open=null,a.each(this.__timeouts.close,function(a,b){clearTimeout(b)}),this.__timeouts.close=[],this},__trackerStart:function(){var
a=this,b=a._$tooltip.find(".tooltipster-content");return
a.__options.trackTooltip&&(a.__contentBcr=b[0].getBoundingClientRect()),a.__tracker=setInterval(function(){if(d(a._$origin)&&d(a._$tooltip)){if(a.__options.trackOrigin){var
e=a.__geometry(),f=!1;c(e.origin.size,a.__Geometry.origin.size)&&(a.__Geometry.origin.fixedLineage?c(e.origin.windowOffset,a.__Geometry.origin.windowOffset)&&(f=!0):c(e.origin.offset,a.__Geometry.origin.offset)&&(f=!0)),f||(a.__options.triggerClose.mouseleave?a._close():a.reposition())}if(a.__options.trackTooltip){var
g=b[0].getBoundingClientRect();g.height===a.__contentBcr.height&&g.width===a.__contentBcr.width||(a.reposition(),a.__contentBcr=g)}}else
a._close()},a.__options.trackerInterval),a},_close:function(b,c,d){var
e=this,f=!0;if(e._trigger({type:"close",event:b,stop:function(){f=!1}}),f||d){c&&e.__callbacks.close.push(c),e.__callbacks.open=[],e.__timeoutsClear();var
g=function(){a.each(e.__callbacks.close,function(a,c){c.call(e,e,{event:b,origin:e._$origin[0]})}),e.__callbacks.close=[]};if("closed"!=e.__state){var
i=!0,j=new
Date,k=j.getTime(),l=k+e.__options.animationDuration[1];if("disappearing"==e.__state&&l>e.__closingTime&&e.__options.animationDuration[1]>0&&(i=!1),i){e.__closingTime=l,"disappearing"!=e.__state&&e.__stateSet("disappearing");var
m=function(){clearInterval(e.__tracker),e._trigger({type:"closing",event:b}),e._$tooltip.off("."+e.__namespace+"-triggerClose").removeClass("tooltipster-dying"),a(h.window).off("."+e.__namespace+"-triggerClose"),e.__$originParents.each(function(b,c){a(c).off("scroll."+e.__namespace+"-triggerClose")}),e.__$originParents=null,a(h.window.document.body).off("."+e.__namespace+"-triggerClose"),e._$origin.off("."+e.__namespace+"-triggerClose"),e._off("dismissable"),e.__stateSet("closed"),e._trigger({type:"after",event:b}),e.__options.functionAfter&&e.__options.functionAfter.call(e,e,{event:b,origin:e._$origin[0]}),g()};h.hasTransitions?(e._$tooltip.css({"-moz-animation-duration":e.__options.animationDuration[1]+"ms","-ms-animation-duration":e.__options.animationDuration[1]+"ms","-o-animation-duration":e.__options.animationDuration[1]+"ms","-webkit-animation-duration":e.__options.animationDuration[1]+"ms","animation-duration":e.__options.animationDuration[1]+"ms","transition-duration":e.__options.animationDuration[1]+"ms"}),e._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"),e.__options.animationDuration[1]>0&&e._$tooltip.delay(e.__options.animationDuration[1]),e._$tooltip.queue(m)):e._$tooltip.stop().fadeOut(e.__options.animationDuration[1],m)}}else
g()}return e},_off:function(){return
this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return
this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return
this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_open:function(b,c){var
e=this;if(!e.__destroying&&d(e._$origin)&&e.__enabled){var
f=!0;if("closed"==e.__state&&(e._trigger({type:"before",event:b,stop:function(){f=!1}}),f&&e.__options.functionBefore&&(f=e.__options.functionBefore.call(e,e,{event:b,origin:e._$origin[0]}))),f!==!1&&null!==e.__Content){c&&e.__callbacks.open.push(c),e.__callbacks.close=[],e.__timeoutsClear();var
g,i=function(){"stable"!=e.__state&&e.__stateSet("stable"),a.each(e.__callbacks.open,function(a,b){b.call(e,e,{origin:e._$origin[0],tooltip:e._$tooltip[0]})}),e.__callbacks.open=[]};if("closed"!==e.__state)g=0,"disappearing"===e.__state?(e.__stateSet("appearing"),h.hasTransitions?(e._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"),e.__options.animationDuration[0]>0&&e._$tooltip.delay(e.__options.animationDuration[0]),e._$tooltip.queue(i)):e._$tooltip.stop().fadeIn(i)):"stable"==e.__state&&i();else{if(e.__stateSet("appearing"),g=e.__options.animationDuration[0],e.__contentInsert(),e.reposition(b,!0),h.hasTransitions?(e._$tooltip.addClass("tooltipster-"+e.__options.animation).addClass("tooltipster-initial").css({"-moz-animation-duration":e.__options.animationDuration[0]+"ms","-ms-animation-duration":e.__options.animationDuration[0]+"ms","-o-animation-duration":e.__options.animationDuration[0]+"ms","-webkit-animation-duration":e.__options.animationDuration[0]+"ms","animation-duration":e.__options.animationDuration[0]+"ms","transition-duration":e.__options.animationDuration[0]+"ms"}),setTimeout(function(){"closed"!=e.__state&&(e._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"),e.__options.animationDuration[0]>0&&e._$tooltip.delay(e.__options.animationDuration[0]),e._$tooltip.queue(i))},0)):e._$tooltip.css("display","none").fadeIn(e.__options.animationDuration[0],i),e.__trackerStart(),a(h.window).on("resize."+e.__namespace+"-triggerClose",function(b){var
c=a(document.activeElement);(c.is("input")||c.is("textarea"))&&a.contains(e._$tooltip[0],c[0])||e.reposition(b)}).on("scroll."+e.__namespace+"-triggerClose",function(a){e.__scrollHandler(a)}),e.__$originParents=e._$origin.parents(),e.__$originParents.each(function(b,c){a(c).on("scroll."+e.__namespace+"-triggerClose",function(a){e.__scrollHandler(a)})}),e.__options.triggerClose.mouseleave||e.__options.triggerClose.touchleave&&h.hasTouchCapability){e._on("dismissable",function(a){a.dismissable?a.delay?(m=setTimeout(function(){e._close(a.event)},a.delay),e.__timeouts.close.push(m)):e._close(a):clearTimeout(m)});var
j=e._$origin,k="",l="",m=null;e.__options.interactive&&(j=j.add(e._$tooltip)),e.__options.triggerClose.mouseleave&&(k+="mouseenter."+e.__namespace+"-triggerClose
",l+="mouseleave."+e.__namespace+"-triggerClose
"),e.__options.triggerClose.touchleave&&h.hasTouchCapability&&(k+="touchstart."+e.__namespace+"-triggerClose",l+="touchend."+e.__namespace+"-triggerClose
touchcancel."+e.__namespace+"-triggerClose"),j.on(l,function(a){if(e._touchIsTouchEvent(a)||!e._touchIsEmulatedEvent(a)){var
b="mouseleave"==a.type?e.__options.delay:e.__options.delayTouch;e._trigger({delay:b[1],dismissable:!0,event:a,type:"dismissable"})}}).on(k,function(a){!e._touchIsTouchEvent(a)&&e._touchIsEmulatedEvent(a)||e._trigger({dismissable:!1,event:a,type:"dismissable"})})}e.__options.triggerClose.originClick&&e._$origin.on("click."+e.__namespace+"-triggerClose",function(a){e._touchIsTouchEvent(a)||e._touchIsEmulatedEvent(a)||e._close(a)}),(e.__options.triggerClose.click||e.__options.triggerClose.tap&&h.hasTouchCapability)&&setTimeout(function(){if("closed"!=e.__state){var
b="",c=a(h.window.document.body);e.__options.triggerClose.click&&(b+="click."+e.__namespace+"-triggerClose
"),e.__options.triggerClose.tap&&h.hasTouchCapability&&(b+="touchend."+e.__namespace+"-triggerClose"),c.on(b,function(b){e._touchIsMeaningfulEvent(b)&&(e._touchRecordEvent(b),e.__options.interactive&&a.contains(e._$tooltip[0],b.target)||e._close(b))}),e.__options.triggerClose.tap&&h.hasTouchCapability&&c.on("touchstart."+e.__namespace+"-triggerClose",function(a){e._touchRecordEvent(a)})}},0),e._trigger("ready"),e.__options.functionReady&&e.__options.functionReady.call(e,e,{origin:e._$origin[0],tooltip:e._$tooltip[0]})}if(e.__options.timer>0){var
m=setTimeout(function(){e._close()},e.__options.timer+g);e.__timeouts.close.push(m)}}}return
e},_openShortly:function(a){var
b=this,c=!0;if("stable"!=b.__state&&"appearing"!=b.__state&&!b.__timeouts.open&&(b._trigger({type:"start",event:a,stop:function(){c=!1}}),c)){var
d=0==a.type.indexOf("touch")?b.__options.delayTouch:b.__options.delay;d[0]?b.__timeouts.open=setTimeout(function(){b.__timeouts.open=null,b.__pointerIsOverOrigin&&b._touchIsMeaningfulEvent(a)?(b._trigger("startend"),b._open(a)):b._trigger("startcancel")},d[0]):(b._trigger("startend"),b._open(a))}return
b},_optionsExtract:function(b,c){var
d=this,e=a.extend(!0,{},c),f=d.__options[b];return
f||(f={},a.each(c,function(a,b){var c=d.__options[a];void
0!==c&&(f[a]=c)})),a.each(e,function(b,c){void
0!==f[b]&&("object"!=typeof c||c instanceof
Array||null==c||"object"!=typeof f[b]||f[b]instanceof
Array||null==f[b]?e[b]=f[b]:a.extend(e[b],f[b]))}),e},_plug:function(b){var
c=a.tooltipster._plugin(b);if(!c)throw new Error('The
"'+b+'" plugin is not defined');return
c.instance&&a.tooltipster.__bridge(c.instance,this,c.name),this},_touchIsEmulatedEvent:function(a){for(var
b=!1,c=(new Date).getTime(),d=this.__touchEvents.length-1;d>=0;d--){var
e=this.__touchEvents[d];if(!(c-e.time<500))break;e.target===a.target&&(b=!0)}return
b},_touchIsMeaningfulEvent:function(a){return
this._touchIsTouchEvent(a)&&!this._touchSwiped(a.target)||!this._touchIsTouchEvent(a)&&!this._touchIsEmulatedEvent(a)},_touchIsTouchEvent:function(a){return
0==a.type.indexOf("touch")},_touchRecordEvent:function(a){return
this._touchIsTouchEvent(a)&&(a.time=(new
Date).getTime(),this.__touchEvents.push(a)),this},_touchSwiped:function(a){for(var
b=!1,c=this.__touchEvents.length-1;c>=0;c--){var
d=this.__touchEvents[c];if("touchmove"==d.type){b=!0;break}if("touchstart"==d.type&&a===d.target)break}return
b},_trigger:function(){var
b=Array.prototype.slice.apply(arguments);return"string"==typeof
b[0]&&(b[0]={type:b[0]}),b[0].instance=this,b[0].origin=this._$origin?this._$origin[0]:null,b[0].tooltip=this._$tooltip?this._$tooltip[0]:null,this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,b),a.tooltipster._trigger.apply(a.tooltipster,b),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,b),this},_unplug:function(b){var
c=this;if(c[b]){var
d=a.tooltipster._plugin(b);d.instance&&a.each(d.instance,function(a,d){c[a]&&c[a].bridged===c[b]&&delete
c[a]}),c[b].__destroy&&c[b].__destroy(),delete c[b]}return
c},close:function(a){return
this.__destroyed?this.__destroyError():this._close(null,a),this},content:function(a){var
b=this;if(void 0===a)return
b.__Content;if(b.__destroyed)b.__destroyError();else
if(b.__contentSet(a),null!==b.__Content){if("closed"!==b.__state&&(b.__contentInsert(),b.reposition(),b.__options.updateAnimation))if(h.hasTransitions){var
c=b.__options.updateAnimation;b._$tooltip.addClass("tooltipster-update-"+c),setTimeout(function(){"closed"!=b.__state&&b._$tooltip.removeClass("tooltipster-update-"+c)},1e3)}else
b._$tooltip.fadeTo(200,.5,function(){"closed"!=b.__state&&b._$tooltip.fadeTo(200,1)})}else
b._close();return b},destroy:function(){var
b=this;if(b.__destroyed)b.__destroyError();else{"closed"!=b.__state?b.option("animationDuration",0)._close(null,null,!0):b.__timeoutsClear(),b._trigger("destroy"),b.__destroyed=!0,b._$origin.removeData(b.__namespace).off("."+b.__namespace+"-triggerOpen"),a(h.window.document.body).off("."+b.__namespace+"-triggerOpen");var
c=b._$origin.data("tooltipster-ns");if(c)if(1===c.length){var
d=null;"previous"==b.__options.restoration?d=b._$origin.data("tooltipster-initialTitle"):"current"==b.__options.restoration&&(d="string"==typeof
b.__Content?b.__Content:a("<div></div>").append(b.__Content).html()),d&&b._$origin.attr("title",d),b._$origin.removeClass("tooltipstered"),b._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else
c=a.grep(c,function(a,c){return
a!==b.__namespace}),b._$origin.data("tooltipster-ns",c);b._trigger("destroyed"),b._off(),b.off(),b.__Content=null,b.__$emitterPrivate=null,b.__$emitterPublic=null,b.__options.parent=null,b._$origin=null,b._$tooltip=null,a.tooltipster.__instancesLatestArr=a.grep(a.tooltipster.__instancesLatestArr,function(a,c){return
b!==a}),clearInterval(b.__garbageCollector)}return
b},disable:function(){return
this.__destroyed?(this.__destroyError(),this):(this._close(),this.__enabled=!1,this)},elementOrigin:function(){return
this.__destroyed?void
this.__destroyError():this._$origin[0]},elementTooltip:function(){return
this._$tooltip?this._$tooltip[0]:null},enable:function(){return
this.__enabled=!0,this},hide:function(a){return
this.close(a)},instance:function(){return this},off:function(){return
this.__destroyed||this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return
this.__destroyed?this.__destroyError():this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return
this.__destroyed?this.__destroyError():this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},open:function(a){return
this.__destroyed?this.__destroyError():this._open(null,a),this},option:function(b,c){return
void
0===c?this.__options[b]:(this.__destroyed?this.__destroyError():(this.__options[b]=c,this.__optionsFormat(),a.inArray(b,["trigger","triggerClose","triggerOpen"])>=0&&this.__prepareOrigin(),"selfDestruction"===b&&this.__prepareGC()),this)},reposition:function(a,b){var
c=this;return
c.__destroyed?c.__destroyError():"closed"!=c.__state&&d(c._$origin)&&(b||d(c._$tooltip))&&(b||c._$tooltip.detach(),c.__Geometry=c.__geometry(),c._trigger({type:"reposition",event:a,helper:{geo:c.__Geometry}})),c},show:function(a){return
this.open(a)},status:function(){return{destroyed:this.__destroyed,enabled:this.__enabled,open:"closed"!==this.__state,state:this.__state}},triggerHandler:function(){return
this.__destroyed?this.__destroyError():this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},a.fn.tooltipster=function(){var
b=Array.prototype.slice.apply(arguments),c="You are using a single
HTML element as content for several tooltips. You probably want to set the
contentCloning option to TRUE.";if(0===this.length)return
this;if("string"==typeof b[0]){var d="#*$~&";return
this.each(function(){var
e=a(this).data("tooltipster-ns"),f=e?a(this).data(e[0]):null;if(!f)throw
new Error("You called Tooltipster's
\""+b[0]+'" method on an uninitialized
element');if("function"!=typeof f[b[0]])throw new
Error('Unknown method
"'+b[0]+'"');this.length>1&&"content"==b[0]&&(b[1]instanceof
a||"object"==typeof
b[1]&&null!=b[1]&&b[1].tagName)&&!f.__options.contentCloning&&f.__options.debug&&console.log(c);var
g=f[b[0]](b[1],b[2]);return
g!==f||"instance"===b[0]?(d=g,!1):void
0}),"#*$~&"!==d?d:this}a.tooltipster.__instancesLatestArr=[];var
e=b[0]&&void
0!==b[0].multiple,g=e&&b[0].multiple||!e&&f.multiple,h=b[0]&&void
0!==b[0].content,i=h&&b[0].content||!h&&f.content,j=b[0]&&void
0!==b[0].contentCloning,k=j&&b[0].contentCloning||!j&&f.contentCloning,l=b[0]&&void
0!==b[0].debug,m=l&&b[0].debug||!l&&f.debug;return
this.length>1&&(i instanceof a||"object"==typeof
i&&null!=i&&i.tagName)&&!k&&m&&console.log(c),this.each(function(){var
c=!1,d=a(this),e=d.data("tooltipster-ns"),f=null;e?g?c=!0:m&&(console.log("Tooltipster:
one or more tooltips are already attached to the element below.
Ignoring."),console.log(this)):c=!0,c&&(f=new
a.Tooltipster(this,b[0]),e||(e=[]),e.push(f.__namespace),d.data("tooltipster-ns",e),d.data(f.__namespace,f),f.__options.functionInit&&f.__options.functionInit.call(f,f,{origin:this}),f._trigger("init")),a.tooltipster.__instancesLatestArr.push(f)}),this},b.prototype={__init:function(b){this.__$tooltip=b,this.__$tooltip.css({left:0,overflow:"hidden",position:"absolute",top:0}).find(".tooltipster-content").css("overflow","auto"),this.$container=a('<div
class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(h.window.document.body)},__forceRedraw:function(){var
a=this.__$tooltip.parent();this.__$tooltip.detach(),this.__$tooltip.appendTo(a)},constrain:function(a,b){return
this.constraints={width:a,height:b},this.__$tooltip.css({display:"block",height:"",overflow:"auto",width:a}),this},destroy:function(){this.__$tooltip.detach().find(".tooltipster-content").css({display:"",overflow:""}),this.$container.remove()},free:function(){return
this.constraints=null,this.__$tooltip.css({display:"",height:"",overflow:"visible",width:""}),this},measure:function(){this.__forceRedraw();var
a=this.__$tooltip[0].getBoundingClientRect(),b={size:{height:a.height||a.bottom-a.top,width:a.width||a.right-a.left}};if(this.constraints){var
c=this.__$tooltip.find(".tooltipster-content"),d=this.__$tooltip.outerHeight(),e=c[0].getBoundingClientRect(),f={height:d<=this.constraints.height,width:a.width<=this.constraints.width&&e.width>=c[0].scrollWidth-1};b.fits=f.height&&f.width}return
h.IE&&h.IE<=11&&b.size.width!==h.window.document.documentElement.clientWidth&&(b.size.width=Math.ceil(b.size.width)+1),b}};var
j=navigator.userAgent.toLowerCase();-1!=j.indexOf("msie")?h.IE=parseInt(j.split("msie")[1]):-1!==j.toLowerCase().indexOf("trident")&&-1!==j.indexOf("
rv:11")?h.IE=11:-1!=j.toLowerCase().indexOf("edge/")&&(h.IE=parseInt(j.toLowerCase().split("edge/")[1]));var
k="tooltipster.sideTip";return
a.tooltipster._plugin({name:k,instance:{__defaults:function(){return{arrow:!0,distance:6,functionPosition:null,maxWidth:null,minIntersection:16,minWidth:0,position:null,side:"top",viewportAware:!0}},__init:function(a){var
b=this;b.__instance=a,b.__namespace="tooltipster-sideTip-"+Math.round(1e6*Math.random()),b.__previousState="closed",b.__options,b.__optionsFormat(),b.__instance._on("state."+b.__namespace,function(a){"closed"==a.state?b.__close():"appearing"==a.state&&"closed"==b.__previousState&&b.__create(),b.__previousState=a.state}),b.__instance._on("options."+b.__namespace,function(){b.__optionsFormat()}),b.__instance._on("reposition."+b.__namespace,function(a){b.__reposition(a.event,a.helper)})},__close:function(){this.__instance.content()instanceof
a&&this.__instance.content().detach(),this.__instance._$tooltip.remove(),this.__instance._$tooltip=null},__create:function(){var
b=a('<div class="tooltipster-base
tooltipster-sidetip"><div
class="tooltipster-box"><div
class="tooltipster-content"></div></div><div
class="tooltipster-arrow"><div
class="tooltipster-arrow-uncropped"><div
class="tooltipster-arrow-border"></div><div
class="tooltipster-arrow-background"></div></div></div></div>');this.__options.arrow||b.find(".tooltipster-box").css("margin",0).end().find(".tooltipster-arrow").hide(),this.__options.minWidth&&b.css("min-width",this.__options.minWidth+"px"),this.__options.maxWidth&&b.css("max-width",this.__options.maxWidth+"px"),
this.__instance._$tooltip=b,this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){var
b=this;if(b.__options=b.__instance._optionsExtract(k,b.__defaults()),b.__options.position&&(b.__options.side=b.__options.position),"object"!=typeof
b.__options.distance&&(b.__options.distance=[b.__options.distance]),b.__options.distance.length<4&&(void
0===b.__options.distance[1]&&(b.__options.distance[1]=b.__options.distance[0]),void
0===b.__options.distance[2]&&(b.__options.distance[2]=b.__options.distance[0]),void
0===b.__options.distance[3]&&(b.__options.distance[3]=b.__options.distance[1])),b.__options.distance={top:b.__options.distance[0],right:b.__options.distance[1],bottom:b.__options.distance[2],left:b.__options.distance[3]},"string"==typeof
b.__options.side){var
c={top:"bottom",right:"left",bottom:"top",left:"right"};b.__options.side=[b.__options.side,c[b.__options.side]],"left"==b.__options.side[0]||"right"==b.__options.side[0]?b.__options.side.push("top","bottom"):b.__options.side.push("right","left")}6===a.tooltipster._env.IE&&b.__options.arrow!==!0&&(b.__options.arrow=!1)},__reposition:function(b,c){var
d,e=this,f=e.__targetFind(c),g=[];e.__instance._$tooltip.detach();var
h=e.__instance._$tooltip.clone(),i=a.tooltipster._getRuler(h),j=!1,k=e.__instance.option("animation");switch(k&&h.removeClass("tooltipster-"+k),a.each(["window","document"],function(d,k){var
l=null;if(e.__instance._trigger({container:k,helper:c,satisfied:j,takeTest:function(a){l=a},results:g,type:"positionTest"}),1==l||0!=l&&0==j&&("window"!=k||e.__options.viewportAware))for(var
d=0;d<e.__options.side.length;d++){var
m={horizontal:0,vertical:0},n=e.__options.side[d];"top"==n||"bottom"==n?m.vertical=e.__options.distance[n]:m.horizontal=e.__options.distance[n],e.__sideChange(h,n),a.each(["natural","constrained"],function(a,d){if(l=null,e.__instance._trigger({container:k,event:b,helper:c,mode:d,results:g,satisfied:j,side:n,takeTest:function(a){l=a},type:"positionTest"}),1==l||0!=l&&0==j){var
h={container:k,distance:m,fits:null,mode:d,outerSize:null,side:n,size:null,target:f[n],whole:null},o="natural"==d?i.free():i.constrain(c.geo.available[k][n].width-m.horizontal,c.geo.available[k][n].height-m.vertical),p=o.measure();if(h.size=p.size,h.outerSize={height:p.size.height+m.vertical,width:p.size.width+m.horizontal},"natural"==d?c.geo.available[k][n].width>=h.outerSize.width&&c.geo.available[k][n].height>=h.outerSize.height?h.fits=!0:h.fits=!1:h.fits=p.fits,"window"==k&&(h.fits?"top"==n||"bottom"==n?h.whole=c.geo.origin.windowOffset.right>=e.__options.minIntersection&&c.geo.window.size.width-c.geo.origin.windowOffset.left>=e.__options.minIntersection:h.whole=c.geo.origin.windowOffset.bottom>=e.__options.minIntersection&&c.geo.window.size.height-c.geo.origin.windowOffset.top>=e.__options.minIntersection:h.whole=!1),g.push(h),h.whole)j=!0;else
if("natural"==h.mode&&(h.fits||h.size.width<=c.geo.available[k][n].width))return!1}})}}),e.__instance._trigger({edit:function(a){g=a},event:b,helper:c,results:g,type:"positionTested"}),g.sort(function(a,b){if(a.whole&&!b.whole)return-1;if(!a.whole&&b.whole)return
1;if(a.whole&&b.whole){var
c=e.__options.side.indexOf(a.side),d=e.__options.side.indexOf(b.side);return
d>c?-1:c>d?1:"natural"==a.mode?-1:1}if(a.fits&&!b.fits)return-1;if(!a.fits&&b.fits)return
1;if(a.fits&&b.fits){var
c=e.__options.side.indexOf(a.side),d=e.__options.side.indexOf(b.side);return
d>c?-1:c>d?1:"natural"==a.mode?-1:1}return"document"==a.container&&"bottom"==a.side&&"natural"==a.mode?-1:1}),d=g[0],d.coord={},d.side){case"left":case"right":d.coord.top=Math.floor(d.target-d.size.height/2);break;case"bottom":case"top":d.coord.left=Math.floor(d.target-d.size.width/2)}switch(d.side){case"left":d.coord.left=c.geo.origin.windowOffset.left-d.outerSize.width;break;case"right":d.coord.left=c.geo.origin.windowOffset.right+d.distance.horizontal;break;case"top":d.coord.top=c.geo.origin.windowOffset.top-d.outerSize.height;break;case"bottom":d.coord.top=c.geo.origin.windowOffset.bottom+d.distance.vertical}"window"==d.container?"top"==d.side||"bottom"==d.side?d.coord.left<0?c.geo.origin.windowOffset.right-this.__options.minIntersection>=0?d.coord.left=0:d.coord.left=c.geo.origin.windowOffset.right-this.__options.minIntersection-1:d.coord.left>c.geo.window.size.width-d.size.width&&(c.geo.origin.windowOffset.left+this.__options.minIntersection<=c.geo.window.size.width?d.coord.left=c.geo.window.size.width-d.size.width:d.coord.left=c.geo.origin.windowOffset.left+this.__options.minIntersection+1-d.size.width):d.coord.top<0?c.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0?d.coord.top=0:d.coord.top=c.geo.origin.windowOffset.bottom-this.__options.minIntersection-1:d.coord.top>c.geo.window.size.height-d.size.height&&(c.geo.origin.windowOffset.top+this.__options.minIntersection<=c.geo.window.size.height?d.coord.top=c.geo.window.size.height-d.size.height:d.coord.top=c.geo.origin.windowOffset.top+this.__options.minIntersection+1-d.size.height):(d.coord.left>c.geo.window.size.width-d.size.width&&(d.coord.left=c.geo.window.size.width-d.size.width),d.coord.left<0&&(d.coord.left=0)),e.__sideChange(h,d.side),c.tooltipClone=h[0],c.tooltipParent=e.__instance.option("parent").parent[0],c.mode=d.mode,c.whole=d.whole,c.origin=e.__instance._$origin[0],c.tooltip=e.__instance._$tooltip[0],delete
d.container,delete d.fits,delete d.mode,delete d.outerSize,delete
d.whole,d.distance=d.distance.horizontal||d.distance.vertical;var
l=a.extend(!0,{},d);if(e.__instance._trigger({edit:function(a){d=a},event:b,helper:c,position:l,type:"position"}),e.__options.functionPosition){var
m=e.__options.functionPosition.call(e,e.__instance,c,l);m&&(d=m)}i.destroy();var
n,o;"top"==d.side||"bottom"==d.side?(n={prop:"left",val:d.target-d.coord.left},o=d.size.width-this.__options.minIntersection):(n={prop:"top",val:d.target-d.coord.top},o=d.size.height-this.__options.minIntersection),n.val<this.__options.minIntersection?n.val=this.__options.minIntersection:n.val>o&&(n.val=o);var
p;p=c.geo.origin.fixedLineage?c.geo.origin.windowOffset:{left:c.geo.origin.windowOffset.left+c.geo.window.scroll.left,top:c.geo.origin.windowOffset.top+c.geo.window.scroll.top},d.coord={left:p.left+(d.coord.left-c.geo.origin.windowOffset.left),top:p.top+(d.coord.top-c.geo.origin.windowOffset.top)},e.__sideChange(e.__instance._$tooltip,d.side),c.geo.origin.fixedLineage?e.__instance._$tooltip.css("position","fixed"):e.__instance._$tooltip.css("position",""),e.__instance._$tooltip.css({left:d.coord.left,top:d.coord.top,height:d.size.height,width:d.size.width}).find(".tooltipster-arrow").css({left:"",top:""}).css(n.prop,n.val),e.__instance._$tooltip.appendTo(e.__instance.option("parent")),e.__instance._trigger({type:"repositioned",event:b,position:d})},__sideChange:function(a,b){a.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-"+b)},__targetFind:function(a){var
b={},c=this.__instance._$origin[0].getClientRects();if(c.length>1){var
d=this.__instance._$origin.css("opacity");1==d&&(this.__instance._$origin.css("opacity",.99),c=this.__instance._$origin[0].getClientRects(),this.__instance._$origin.css("opacity",1))}if(c.length<2)b.top=Math.floor(a.geo.origin.windowOffset.left+a.geo.origin.size.width/2),b.bottom=b.top,b.left=Math.floor(a.geo.origin.windowOffset.top+a.geo.origin.size.height/2),b.right=b.left;else{var
e=c[0];b.top=Math.floor(e.left+(e.right-e.left)/2),e=c.length>2?c[Math.ceil(c.length/2)-1]:c[0],b.right=Math.floor(e.top+(e.bottom-e.top)/2),e=c[c.length-1],b.bottom=Math.floor(e.left+(e.right-e.left)/2),e=c.length>2?c[Math.ceil((c.length+1)/2)-1]:c[c.length-1],b.left=Math.floor(e.top+(e.bottom-e.top)/2)}return
b}}}),a});default.js000064400000001052151167412130006525 0ustar00function
extractionMethodHandler(target, prefix)
{
jQuery(function ($) {
$em = $(target);
displayStyle = ($em.val() === 'direct') ? 'none' :
'table-row';
document.getElementById(prefix + '_hostname').style.display =
displayStyle;
document.getElementById(prefix + '_port').style.display =
displayStyle;
document.getElementById(prefix + '_username').style.display =
displayStyle;
document.getElementById(prefix + '_password').style.display =
displayStyle;
document.getElementById(prefix + '_directory').style.display =
displayStyle;
});
}
default.min.js000064400000000701151167412130007307 0ustar00function
extractionMethodHandler(e,t){jQuery(function(l){$em=l(e),displayStyle="direct"===$em.val()?"none":"table-row",document.getElementById(t+"_hostname").style.display=displayStyle,document.getElementById(t+"_port").style.display=displayStyle,document.getElementById(t+"_username").style.display=displayStyle,document.getElementById(t+"_password").style.display=displayStyle,document.getElementById(t+"_directory").style.display=displayStyle})}
encryption.js000064400000046064151167412130007307 0ustar00/* - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - */
/* AES implementation in JavaScript (c) Chris Veness 2005-2010
*/
/* - see http://csrc.nist.gov/publications/PubsFIPS.html#197
*/
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
var Aes = {}; // Aes namespace
/**
* AES Cipher function: encrypt 'input' state with Rijndael
algorithm
* applies Nr rounds (10/12/14) using key schedule w for 'add round
key' stage
*
* @param {Number[]} input 16-byte (128-bit) input state array
* @param {Number[][]} w Key schedule as 2D byte-array (Nr+1 x Nb bytes)
* @returns {Number[]} Encrypted output state array
*/
Aes.Cipher = function(input, w) { // main Cipher function [§5.1]
var Nb = 4; // block size (in words): no of columns in
state (fixed at 4 for AES)
var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit
keys
var state = [[],[],[],[]]; // initialise 4xNb byte-array
'state' with input [§3.4]
for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];
state = Aes.AddRoundKey(state, w, 0, Nb);
for (var round=1; round<Nr; round++) {
state = Aes.SubBytes(state, Nb);
state = Aes.ShiftRows(state, Nb);
state = Aes.MixColumns(state, Nb);
state = Aes.AddRoundKey(state, w, round, Nb);
}
state = Aes.SubBytes(state, Nb);
state = Aes.ShiftRows(state, Nb);
state = Aes.AddRoundKey(state, w, Nr, Nb);
var output = new Array(4*Nb); // convert state to 1-d array before
returning [§3.4]
for (var i=0; i<4*Nb; i++) output[i] = state[i%4][Math.floor(i/4)];
return output;
}
/**
* Perform Key Expansion to generate a Key Schedule
*
* @param {Number[]} key Key as 16/24/32-byte array
* @returns {Number[][]} Expanded key schedule as 2D byte-array (Nr+1 x Nb
bytes)
*/
Aes.KeyExpansion = function(key) { // generate Key Schedule (byte-array
Nr+1 x Nb) from Key [§5.2]
var Nb = 4; // block size (in words): no of columns in state
(fixed at 4 for AES)
var Nk = key.length/4 // key length (in words): 4/6/8 for
128/192/256-bit keys
var Nr = Nk + 6; // no of rounds: 10/12/14 for 128/192/256-bit keys
var w = new Array(Nb*(Nr+1));
var temp = new Array(4);
for (var i=0; i<Nk; i++) {
var r = [key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]];
w[i] = r;
}
for (var i=Nk; i<(Nb*(Nr+1)); i++) {
w[i] = new Array(4);
for (var t=0; t<4; t++) temp[t] = w[i-1][t];
if (i % Nk == 0) {
temp = Aes.SubWord(Aes.RotWord(temp));
for (var t=0; t<4; t++) temp[t] ^= Aes.Rcon[i/Nk][t];
} else if (Nk > 6 && i%Nk == 4) {
temp = Aes.SubWord(temp);
}
for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t];
}
return w;
}
/*
* ---- remaining routines are private, not called externally ----
*/
Aes.SubBytes = function(s, Nb) { // apply SBox to state S [§5.1.1]
for (var r=0; r<4; r++) {
for (var c=0; c<Nb; c++) s[r][c] = Aes.Sbox[s[r][c]];
}
return s;
}
Aes.ShiftRows = function(s, Nb) { // shift row r of state S left by r
bytes [§5.1.2]
var t = new Array(4);
for (var r=1; r<4; r++) {
for (var c=0; c<4; c++) t[c] = s[r][(c+r)%Nb]; // shift into temp
copy
for (var c=0; c<4; c++) s[r][c] = t[c]; // and copy back
} // note that this will work for Nb=4,5,6, but not 7,8 (always
4 for AES):
return s; // see
asmaes.sourceforge.net/rijndael/rijndaelImplementation.pdf
}
Aes.MixColumns = function(s, Nb) { // combine bytes of each col of state
S [§5.1.3]
for (var c=0; c<4; c++) {
var a = new Array(4); // 'a' is a copy of the current column
from 's'
var b = new Array(4); // 'b' is a•{02} in GF(2^8)
for (var i=0; i<4; i++) {
a[i] = s[i][c];
b[i] = s[i][c]&0x80 ? s[i][c]<<1 ^ 0x011b :
s[i][c]<<1;
}
// a[n] ^ b[n] is a•{03} in GF(2^8)
s[0][c] = b[0] ^ a[1] ^ b[1] ^ a[2] ^ a[3]; // 2*a0 + 3*a1 + a2 + a3
s[1][c] = a[0] ^ b[1] ^ a[2] ^ b[2] ^ a[3]; // a0 * 2*a1 + 3*a2 + a3
s[2][c] = a[0] ^ a[1] ^ b[2] ^ a[3] ^ b[3]; // a0 + a1 + 2*a2 + 3*a3
s[3][c] = a[0] ^ b[0] ^ a[1] ^ a[2] ^ b[3]; // 3*a0 + a1 + a2 + 2*a3
}
return s;
}
Aes.AddRoundKey = function(state, w, rnd, Nb) { // xor Round Key into
state S [§5.1.4]
for (var r=0; r<4; r++) {
for (var c=0; c<Nb; c++) state[r][c] ^= w[rnd*4+c][r];
}
return state;
}
Aes.SubWord = function(w) { // apply SBox to 4-byte word w
for (var i=0; i<4; i++) w[i] = Aes.Sbox[w[i]];
return w;
}
Aes.RotWord = function(w) { // rotate 4-byte word w left by one byte
var tmp = w[0];
for (var i=0; i<3; i++) w[i] = w[i+1];
w[3] = tmp;
return w;
}
// Sbox is pre-computed multiplicative inverse in GF(2^8) used in SubBytes
and KeyExpansion [§5.1.1]
Aes.Sbox =
[0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16];
// Rcon is Round Constant used for the Key Expansion [1st col is 2^(r-1) in
GF(2^8)] [§5.2]
Aes.Rcon = [ [0x00, 0x00, 0x00, 0x00],
[0x01, 0x00, 0x00, 0x00],
[0x02, 0x00, 0x00, 0x00],
[0x04, 0x00, 0x00, 0x00],
[0x08, 0x00, 0x00, 0x00],
[0x10, 0x00, 0x00, 0x00],
[0x20, 0x00, 0x00, 0x00],
[0x40, 0x00, 0x00, 0x00],
[0x80, 0x00, 0x00, 0x00],
[0x1b, 0x00, 0x00, 0x00],
[0x36, 0x00, 0x00, 0x00] ];
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
/* AES Counter-mode implementation in JavaScript (c) Chris Veness
2005-2010 */
/* - see http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
*/
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
var AesCtr = {}; // AesCtr namespace
/**
* Encrypt a text using AES encryption in Counter mode of operation
*
* Unicode multi-byte character safe
*
* @param {String} plaintext Source text to be encrypted
* @param {String} password The password to use to generate a key
* @param {Number} nBits Number of bits to be used in the key (128,
192, or 256)
* @returns {string} Encrypted text
*/
AesCtr.encrypt = function(plaintext, password, nBits) {
var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4)
for AES
if (!(nBits==128 || nBits==192 || nBits==256)) return ''; //
standard allows 128/192/256 bit keys
plaintext = Utf8.encode(plaintext);
password = Utf8.encode(password);
//var t = new Date(); // timer
// use AES itself to encrypt password to get cipher key (using plain
password as source for key
// expansion) - gives us well encrypted key
var nBytes = nBits/8; // no bytes in key
var pwBytes = new Array(nBytes);
for (var i=0; i<nBytes; i++) {
pwBytes[i] = isNaN(password.charCodeAt(i)) ? 0 :
password.charCodeAt(i);
}
var key = Aes.Cipher(pwBytes, Aes.KeyExpansion(pwBytes)); // gives us
16-byte key
key = key.concat(key.slice(0, nBytes-16)); // expand key to 16/24/32
bytes long
// initialise counter block (NIST SP800-38A §B.2): millisecond
time-stamp for nonce in 1st 8 bytes,
// block counter in 2nd 8 bytes
var counterBlock = new Array(blockSize);
var nonce = (new Date()).getTime(); // timestamp: milliseconds since
1-Jan-1970
var nonceSec = Math.floor(nonce/1000);
var nonceMs = nonce%1000;
// encode nonce with seconds in 1st 4 bytes, and (repeated) ms part
filling 2nd 4 bytes
for (var i=0; i<4; i++) counterBlock[i] = (nonceSec >>> i*8)
& 0xff;
for (var i=0; i<4; i++) counterBlock[i+4] = nonceMs & 0xff;
// and convert it to a string to go on the front of the ciphertext
var ctrTxt = '';
for (var i=0; i<8; i++) ctrTxt +=
String.fromCharCode(counterBlock[i]);
// generate key schedule - an expansion of the key into distinct Key
Rounds for each round
var keySchedule = Aes.KeyExpansion(key);
var blockCount = Math.ceil(plaintext.length/blockSize);
var ciphertxt = new Array(blockCount); // ciphertext as array of strings
for (var b=0; b<blockCount; b++) {
// set counter (block #) in last 8 bytes of counter block (leaving
nonce in 1st 8 bytes)
// done in two stages for 32-bit ops: using two words allows us to go
past 2^32 blocks (68GB)
for (var c=0; c<4; c++) counterBlock[15-c] = (b >>> c*8)
& 0xff;
for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000
>>> c*8)
var cipherCntr = Aes.Cipher(counterBlock, keySchedule); // -- encrypt
counter block --
// block size is reduced on final block
var blockLength = b<blockCount-1 ? blockSize :
(plaintext.length-1)%blockSize+1;
var cipherChar = new Array(blockLength);
for (var i=0; i<blockLength; i++) { // -- xor plaintext with
ciphered counter char-by-char --
cipherChar[i] = cipherCntr[i] ^ plaintext.charCodeAt(b*blockSize+i);
cipherChar[i] = String.fromCharCode(cipherChar[i]);
}
ciphertxt[b] = cipherChar.join('');
}
// Array.join is more efficient than repeated string concatenation in IE
var ciphertext = ctrTxt + ciphertxt.join('');
ciphertext = Base64.encode(ciphertext); // encode in base64
//alert((new Date()) - t);
return ciphertext;
}
/**
* Decrypt a text encrypted by AES in counter mode of operation
*
* @param {String} ciphertext Source text to be encrypted
* @param {String} password The password to use to generate a key
* @param {Number} nBits Number of bits to be used in the key (128,
192, or 256)
* @returns {String} Decrypted text
*/
AesCtr.decrypt = function(ciphertext, password, nBits) {
var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4)
for AES
if (!(nBits==128 || nBits==192 || nBits==256)) return ''; //
standard allows 128/192/256 bit keys
ciphertext = Base64.decode(ciphertext);
password = Utf8.encode(password);
//var t = new Date(); // timer
// use AES to encrypt password (mirroring encrypt routine)
var nBytes = nBits/8; // no bytes in key
var pwBytes = new Array(nBytes);
for (var i=0; i<nBytes; i++) {
pwBytes[i] = isNaN(password.charCodeAt(i)) ? 0 :
password.charCodeAt(i);
}
var key = Aes.Cipher(pwBytes, Aes.KeyExpansion(pwBytes));
key = key.concat(key.slice(0, nBytes-16)); // expand key to 16/24/32
bytes long
// recover nonce from 1st 8 bytes of ciphertext
var counterBlock = new Array(8);
ctrTxt = ciphertext.slice(0, 8);
for (var i=0; i<8; i++) counterBlock[i] = ctrTxt.charCodeAt(i);
// generate key schedule
var keySchedule = Aes.KeyExpansion(key);
// separate ciphertext into blocks (skipping past initial 8 bytes)
var nBlocks = Math.ceil((ciphertext.length-8) / blockSize);
var ct = new Array(nBlocks);
for (var b=0; b<nBlocks; b++) ct[b] = ciphertext.slice(8+b*blockSize,
8+b*blockSize+blockSize);
ciphertext = ct; // ciphertext is now array of block-length strings
// plaintext will get generated block-by-block into array of block-length
strings
var plaintxt = new Array(ciphertext.length);
for (var b=0; b<nBlocks; b++) {
// set counter (block #) in last 8 bytes of counter block (leaving
nonce in 1st 8 bytes)
for (var c=0; c<4; c++) counterBlock[15-c] = ((b) >>> c*8)
& 0xff;
for (var c=0; c<4; c++) counterBlock[15-c-4] =
(((b+1)/0x100000000-1) >>> c*8) & 0xff;
var cipherCntr = Aes.Cipher(counterBlock, keySchedule); // encrypt
counter block
var plaintxtByte = new Array(ciphertext[b].length);
for (var i=0; i<ciphertext[b].length; i++) {
// -- xor plaintxt with ciphered counter byte-by-byte --
plaintxtByte[i] = cipherCntr[i] ^ ciphertext[b].charCodeAt(i);
plaintxtByte[i] = String.fromCharCode(plaintxtByte[i]);
}
plaintxt[b] = plaintxtByte.join('');
}
// join array of blocks into single plaintext string
var plaintext = plaintxt.join('');
plaintext = Utf8.decode(plaintext); // decode from UTF8 back to Unicode
multi-byte chars
//alert((new Date()) - t);
return plaintext;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
/* Base64 class: Base 64 encoding / decoding (c) Chris Veness 2002-2010
*/
/* note: depends on Utf8 class
*/
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
var Base64 = {}; // Base64 namespace
Base64.code =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
/**
* Encode string into Base64, as defined by RFC 4648
[http://tools.ietf.org/html/rfc4648]
* (instance method extending String object). As per RFC 4648, no newlines
are added.
*
* @param {String} str The string to be encoded as base-64
* @param {Boolean} [utf8encode=false] Flag to indicate whether str is
Unicode string to be encoded
* to UTF8 before conversion to base64; otherwise string is assumed to be
8-bit characters
* @returns {String} Base64-encoded string
*/
Base64.encode = function(str, utf8encode) { //
http://tools.ietf.org/html/rfc4648
utf8encode = (typeof utf8encode == 'undefined') ? false :
utf8encode;
var o1, o2, o3, bits, h1, h2, h3, h4, e=[], pad = '', c, plain,
coded;
var b64 = Base64.code;
plain = utf8encode ? str.encodeUTF8() : str;
c = plain.length % 3; // pad string to length of multiple of 3
if (c > 0) { while (c++ < 3) { pad += '='; plain +=
'\0'; } }
// note: doing padding here saves us doing special-case packing for
trailing 1 or 2 chars
for (c=0; c<plain.length; c+=3) { // pack three octets into four
hexets
o1 = plain.charCodeAt(c);
o2 = plain.charCodeAt(c+1);
o3 = plain.charCodeAt(c+2);
bits = o1<<16 | o2<<8 | o3;
h1 = bits>>18 & 0x3f;
h2 = bits>>12 & 0x3f;
h3 = bits>>6 & 0x3f;
h4 = bits & 0x3f;
// use hextets to index into code string
e[c/3] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) +
b64.charAt(h4);
}
coded = e.join(''); // join() is far faster than repeated
string concatenation in IE
// replace 'A's from padded nulls with '='s
coded = coded.slice(0, coded.length-pad.length) + pad;
return coded;
}
/**
* Decode string from Base64, as defined by RFC 4648
[http://tools.ietf.org/html/rfc4648]
* (instance method extending String object). As per RFC 4648, newlines are
not catered for.
*
* @param {String} str The string to be decoded from base-64
* @param {Boolean} [utf8decode=false] Flag to indicate whether str is
Unicode string to be decoded
* from UTF8 after conversion from base64
* @returns {String} decoded string
*/
Base64.decode = function(str, utf8decode) {
utf8decode = (typeof utf8decode == 'undefined') ? false :
utf8decode;
var o1, o2, o3, h1, h2, h3, h4, bits, d=[], plain, coded;
var b64 = Base64.code;
coded = utf8decode ? str.decodeUTF8() : str;
for (var c=0; c<coded.length; c+=4) { // unpack four hexets into
three octets
h1 = b64.indexOf(coded.charAt(c));
h2 = b64.indexOf(coded.charAt(c+1));
h3 = b64.indexOf(coded.charAt(c+2));
h4 = b64.indexOf(coded.charAt(c+3));
bits = h1<<18 | h2<<12 | h3<<6 | h4;
o1 = bits>>>16 & 0xff;
o2 = bits>>>8 & 0xff;
o3 = bits & 0xff;
d[c/4] = String.fromCharCode(o1, o2, o3);
// check for padding
if (h4 == 0x40) d[c/4] = String.fromCharCode(o1, o2);
if (h3 == 0x40) d[c/4] = String.fromCharCode(o1);
}
plain = d.join(''); // join() is far faster than repeated
string concatenation in IE
return utf8decode ? plain.decodeUTF8() : plain;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
/* Utf8 class: encode / decode between multi-byte Unicode characters and
UTF-8 multiple */
/* single-byte character encoding (c) Chris Veness 2002-2010
*/
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - */
var Utf8 = {}; // Utf8 namespace
/**
* Encode multi-byte Unicode string into utf-8 multiple single-byte
characters
* (BMP / basic multilingual plane only)
*
* Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF
in 3 chars
*
* @param {String} strUni Unicode string to be encoded as UTF-8
* @returns {String} encoded string
*/
Utf8.encode = function(strUni) {
// use regular expressions & String.replace callback function for
better efficiency
// than procedural approaches
var strUtf = strUni.replace(
/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy,
10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f);
}
);
strUtf = strUtf.replace(
/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx,
10yyyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xe0 | cc>>12, 0x80 |
cc>>6&0x3F, 0x80 | cc&0x3f); }
);
return strUtf;
}
/**
* Decode utf-8 encoded string back into multi-byte Unicode characters
*
* @param {String} strUtf UTF-8 string to be decoded back to Unicode
* @returns {String} decoded string
*/
Utf8.decode = function(strUtf) {
var strUni = strUtf.replace(
/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
function(c) { // (note parentheses for precence)
var cc = (c.charCodeAt(0)&0x1f)<<6 |
c.charCodeAt(1)&0x3f;
return String.fromCharCode(cc); }
);
strUni = strUni.replace(
/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
function(c) { // (note parentheses for precence)
var cc = ((c.charCodeAt(0)&0x0f)<<12) |
((c.charCodeAt(1)&0x3f)<<6) | ( c.charCodeAt(2)&0x3f);
return String.fromCharCode(cc); }
);
return strUni;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - -
*/encryption.min.js000064400000013464151167412130010067 0ustar00var
Aes={};Aes.Cipher=function(r,e){for(var
o=4,n=e.length/o-1,a=[[],[],[],[]],t=0;4*o>t;t++)a[t%4][Math.floor(t/4)]=r[t];a=Aes.AddRoundKey(a,e,0,o);for(var
f=1;n>f;f++)a=Aes.SubBytes(a,o),a=Aes.ShiftRows(a,o),a=Aes.MixColumns(a,o),a=Aes.AddRoundKey(a,e,f,o);a=Aes.SubBytes(a,o),a=Aes.ShiftRows(a,o),a=Aes.AddRoundKey(a,e,n,o);for(var
c=new Array(4*o),t=0;4*o>t;t++)c[t]=a[t%4][Math.floor(t/4)];return
c},Aes.KeyExpansion=function(r){for(var e=4,o=r.length/4,n=o+6,a=new
Array(e*(n+1)),t=new Array(4),f=0;o>f;f++){var
c=[r[4*f],r[4*f+1],r[4*f+2],r[4*f+3]];a[f]=c}for(var
f=o;e*(n+1)>f;f++){a[f]=new Array(4);for(var
A=0;4>A;A++)t[A]=a[f-1][A];if(f%o==0){t=Aes.SubWord(Aes.RotWord(t));for(var
A=0;4>A;A++)t[A]^=Aes.Rcon[f/o][A]}else
o>6&&f%o==4&&(t=Aes.SubWord(t));for(var
A=0;4>A;A++)a[f][A]=a[f-o][A]^t[A]}return
a},Aes.SubBytes=function(r,e){for(var o=0;4>o;o++)for(var
n=0;e>n;n++)r[o][n]=Aes.Sbox[r[o][n]];return
r},Aes.ShiftRows=function(r,e){for(var o=new
Array(4),n=1;4>n;n++){for(var a=0;4>a;a++)o[a]=r[n][(a+n)%e];for(var
a=0;4>a;a++)r[n][a]=o[a]}return r},Aes.MixColumns=function(r,e){for(var
o=0;4>o;o++){for(var n=new Array(4),a=new
Array(4),t=0;4>t;t++)n[t]=r[t][o],a[t]=128&r[t][o]?r[t][o]<<1^283:r[t][o]<<1;r[0][o]=a[0]^n[1]^a[1]^n[2]^n[3],r[1][o]=n[0]^a[1]^n[2]^a[2]^n[3],r[2][o]=n[0]^n[1]^a[2]^n[3]^a[3],r[3][o]=n[0]^a[0]^n[1]^n[2]^a[3]}return
r},Aes.AddRoundKey=function(r,e,o,n){for(var a=0;4>a;a++)for(var
t=0;n>t;t++)r[a][t]^=e[4*o+t][a];return
r},Aes.SubWord=function(r){for(var
e=0;4>e;e++)r[e]=Aes.Sbox[r[e]];return
r},Aes.RotWord=function(r){for(var e=r[0],o=0;3>o;o++)r[o]=r[o+1];return
r[3]=e,r},Aes.Sbox=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Aes.Rcon=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]];var
AesCtr={};AesCtr.encrypt=function(r,e,o){var
n=16;if(128!=o&&192!=o&&256!=o)return"";r=Utf8.encode(r),e=Utf8.encode(e);for(var
a=o/8,t=new
Array(a),f=0;a>f;f++)t[f]=isNaN(e.charCodeAt(f))?0:e.charCodeAt(f);var
c=Aes.Cipher(t,Aes.KeyExpansion(t));c=c.concat(c.slice(0,a-16));for(var
A=new Array(n),d=(new
Date).getTime(),i=Math.floor(d/1e3),u=d%1e3,f=0;4>f;f++)A[f]=i>>>8*f&255;for(var
f=0;4>f;f++)A[f+4]=255&u;for(var
s="",f=0;8>f;f++)s+=String.fromCharCode(A[f]);for(var
h=Aes.KeyExpansion(c),v=Math.ceil(r.length/n),C=new
Array(v),y=0;v>y;y++){for(var
l=0;4>l;l++)A[15-l]=y>>>8*l&255;for(var
l=0;4>l;l++)A[15-l-4]=y/4294967296>>>8*l;for(var
g=Aes.Cipher(A,h),S=v-1>y?n:(r.length-1)%n+1,w=new
Array(S),f=0;S>f;f++)w[f]=g[f]^r.charCodeAt(y*n+f),w[f]=String.fromCharCode(w[f]);C[y]=w.join("")}var
p=s+C.join("");return
p=Base64.encode(p)},AesCtr.decrypt=function(r,e,o){var
n=16;if(128!=o&&192!=o&&256!=o)return"";r=Base64.decode(r),e=Utf8.encode(e);for(var
a=o/8,t=new
Array(a),f=0;a>f;f++)t[f]=isNaN(e.charCodeAt(f))?0:e.charCodeAt(f);var
c=Aes.Cipher(t,Aes.KeyExpansion(t));c=c.concat(c.slice(0,a-16));var A=new
Array(8);ctrTxt=r.slice(0,8);for(var
f=0;8>f;f++)A[f]=ctrTxt.charCodeAt(f);for(var
d=Aes.KeyExpansion(c),i=Math.ceil((r.length-8)/n),u=new
Array(i),s=0;i>s;s++)u[s]=r.slice(8+s*n,8+s*n+n);r=u;for(var h=new
Array(r.length),s=0;i>s;s++){for(var
v=0;4>v;v++)A[15-v]=s>>>8*v&255;for(var
v=0;4>v;v++)A[15-v-4]=(s+1)/4294967296-1>>>8*v&255;for(var
C=Aes.Cipher(A,d),y=new
Array(r[s].length),f=0;f<r[s].length;f++)y[f]=C[f]^r[s].charCodeAt(f),y[f]=String.fromCharCode(y[f]);h[s]=y.join("")}var
l=h.join("");return l=Utf8.decode(l)};var
Base64={};Base64.code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Base64.encode=function(r,e){e="undefined"==typeof
e?!1:e;var
o,n,a,t,f,c,A,d,i,u,s,h=[],v="",C=Base64.code;if(u=e?r.encodeUTF8():r,i=u.length%3,i>0)for(;i++<3;)v+="=",u+="\x00";for(i=0;i<u.length;i+=3)o=u.charCodeAt(i),n=u.charCodeAt(i+1),a=u.charCodeAt(i+2),t=o<<16|n<<8|a,f=t>>18&63,c=t>>12&63,A=t>>6&63,d=63&t,h[i/3]=C.charAt(f)+C.charAt(c)+C.charAt(A)+C.charAt(d);return
s=h.join(""),s=s.slice(0,s.length-v.length)+v},Base64.decode=function(r,e){e="undefined"==typeof
e?!1:e;var
o,n,a,t,f,c,A,d,i,u,s=[],h=Base64.code;u=e?r.decodeUTF8():r;for(var
v=0;v<u.length;v+=4)t=h.indexOf(u.charAt(v)),f=h.indexOf(u.charAt(v+1)),c=h.indexOf(u.charAt(v+2)),A=h.indexOf(u.charAt(v+3)),d=t<<18|f<<12|c<<6|A,o=d>>>16&255,n=d>>>8&255,a=255&d,s[v/4]=String.fromCharCode(o,n,a),64==A&&(s[v/4]=String.fromCharCode(o,n)),64==c&&(s[v/4]=String.fromCharCode(o));return
i=s.join(""),e?i.decodeUTF8():i};var
Utf8={};Utf8.encode=function(r){var
e=r.replace(/[\u0080-\u07ff]/g,function(r){var e=r.charCodeAt(0);return
String.fromCharCode(192|e>>6,128|63&e)});return
e=e.replace(/[\u0800-\uffff]/g,function(r){var e=r.charCodeAt(0);return
String.fromCharCode(224|e>>12,128|e>>6&63,128|63&e)})},Utf8.decode=function(r){var
e=r.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(r){var
e=(31&r.charCodeAt(0))<<6|63&r.charCodeAt(1);return
String.fromCharCode(e)});return
e=e.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,function(r){var
e=(15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2);return
String.fromCharCode(e)})};
json2.js000064400000006465151167412130006151 0ustar00/*
* json2.js
* 2014-02-04
* Public Domain.
* NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
* See http://www.JSON.org/js.html
*/
if(typeof JSON!=='object'){JSON={}}(function(){'use
strict';function f(n){return n<10?'0'+n:n}if(typeof
Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(){return
isFinite(this.valueOf())?this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z':null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return
this.valueOf()}}var e,escapable,gap,indent,meta,rep;function
quote(b){escapable.lastIndex=0;return
escapable.test(b)?'"'+b.replace(escapable,function(a){var
c=meta[a];return typeof
c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+b+'"'}function
str(a,b){var
i,k,v,length,mind=gap,partial,value=b[a];if(value&&typeof
value==='object'&&typeof
value.toJSON==='function'){value=value.toJSON(a)}if(typeof
rep==='function'){value=rep.call(b,a,value)}switch(typeof
value){case'string':return
quote(value);case'number':return
isFinite(value)?String(value):'null';case'boolean':case'null':return
String(value);case'object':if(!value){return'null'}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object
Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null'}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return
v}if(rep&&typeof
rep==='object'){length=rep.length;for(i=0;i<length;i+=1){if(typeof
rep[i]==='string'){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?':
':':')+v)}}}}else{for(k in
value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?':
':':')+v)}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return
v}}if(typeof
JSON.stringify!=='function'){escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};JSON.stringify=function(a,b,c){var
i;gap='';indent='';if(typeof
c==='number'){for(i=0;i<c;i+=1){indent+=' '}}else
if(typeof c==='string'){indent=c}rep=b;if(b&&typeof
b!=='function'&&(typeof b!=='object'||typeof
b.length!=='number')){throw new
Error('JSON.stringify');}return
str('',{'':a})}}if(typeof
JSON.parse!=='function'){e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;JSON.parse=function(c,d){var
j;function walk(a,b){var k,v,value=a[b];if(value&&typeof
value==='object'){for(k in
value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete
value[k]}}}}return
d.call(a,b,value)}c=String(c);e.lastIndex=0;if(e.test(c)){c=c.replace(e,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+c+')');return
typeof d==='function'?walk({'':j},''):j}throw
new SyntaxError('JSON.parse');}}}());
json2.min.js000064400000005562151167412130006730
0ustar00"object"!=typeof
JSON&&(JSON={}),function(){"use strict";function
f(t){return 10>t?"0"+t:t}function quote(t){return
escapable.lastIndex=0,escapable.test(t)?'"'+t.replace(escapable,function(t){var
e=meta[t];return"string"==typeof
e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function
str(t,e){var
n,r,o,f,u,p=gap,a=e[t];switch(a&&"object"==typeof
a&&"function"==typeof
a.toJSON&&(a=a.toJSON(t)),"function"==typeof
rep&&(a=rep.call(e,t,a)),typeof a){case"string":return
quote(a);case"number":return
isFinite(a)?String(a):"null";case"boolean":case"null":return
String(a);case"object":if(!a)return"null";if(gap+=indent,u=[],"[object
Array]"===Object.prototype.toString.apply(a)){for(f=a.length,n=0;f>n;n+=1)u[n]=str(n,a)||"null";return
o=0===u.length?"[]":gap?"[\n"+gap+u.join(",\n"+gap)+"\n"+p+"]":"["+u.join(",")+"]",gap=p,o}if(rep&&"object"==typeof
rep)for(f=rep.length,n=0;f>n;n+=1)"string"==typeof
rep[n]&&(r=rep[n],o=str(r,a),o&&u.push(quote(r)+(gap?":
":":")+o));else for(r in
a)Object.prototype.hasOwnProperty.call(a,r)&&(o=str(r,a),o&&u.push(quote(r)+(gap?":
":":")+o));return
o=0===u.length?"{}":gap?"{\n"+gap+u.join(",\n"+gap)+"\n"+p+"}":"{"+u.join(",")+"}",gap=p,o}}"function"!=typeof
Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return
isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return
this.valueOf()});var
e,escapable,gap,indent,meta,rep;"function"!=typeof
JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(t,e,n){var
r;if(gap="",indent="","number"==typeof
n)for(r=0;n>r;r+=1)indent+=" ";else"string"==typeof
n&&(indent=n);if(rep=e,e&&"function"!=typeof
e&&("object"!=typeof e||"number"!=typeof
e.length))throw new Error("JSON.stringify");return
str("",{"":t})}),"function"!=typeof
JSON.parse&&(e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(c,d){function
walk(t,e){var n,r,o=t[e];if(o&&"object"==typeof o)for(n
in o)Object.prototype.hasOwnProperty.call(o,n)&&(r=walk(o,n),void
0!==r?o[n]=r:delete o[n]);return d.call(t,e,o)}var
j;if(c=String(c),e.lastIndex=0,e.test(c)&&(c=c.replace(e,function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return
j=eval("("+c+")"),"function"==typeof
d?walk({"":j},""):j;throw new
SyntaxError("JSON.parse")})}();
update.js000064400000020234151167412130006366 0ustar00/**
* @package AkeebaCMSUpdate
* @copyright Copyright (c)2010-2014 Nicholas K. Dionysopoulos
* @license GNU General Public License version 3, or later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
<https://www.gnu.org/licenses/>.
*/
var stat_total = 0;
var stat_files = 0;
var stat_inbytes = 0;
var stat_outbytes = 0;
/**
* An extremely simple error handler, dumping error messages to screen
*
* @param error The error message string
*/
function error_callback(error)
{
alert("ERROR:\n"+error);
}
/**
* Performs an encrypted AJAX request and returns the parsed JSON output.
* The window.ajax_url is used as the AJAX proxy URL.
* If there is no errorCallback, the window.error_callback is used.
*
* @param object data An object with the query data, e.g.
a serialized form
* @param function successCallback A function accepting a single object
parameter, called on success
* @param function errorCallback A function accepting a single string
parameter, called on failure
*/
doEncryptedAjax = function(data, successCallback, errorCallback)
{
var json = JSON.stringify(data);
if( joomlaupdate_password.length > 0 )
{
json = AesCtr.encrypt( json, joomlaupdate_password, 128 );
}
var post_data = {
'json': json
};
var structure =
{
type: "POST",
url: joomlaupdate_ajax_url,
cache: false,
data: post_data,
timeout: 600000,
success: function(msg, responseXML)
{
// Initialize
var junk = null;
var message = "";
// Get rid of junk before the data
var valid_pos = msg.indexOf('###');
if( valid_pos == -1 )
{
// Valid data not found in the response
msg = 'Invalid AJAX data:\n' + msg;
if (errorCallback == null)
{
if(error_callback != null)
{
error_callback(msg);
}
}
else
{
errorCallback(msg);
}
return;
}
else if( valid_pos != 0 )
{
// Data is prefixed with junk
junk = msg.substr(0, valid_pos);
message = msg.substr(valid_pos);
}
else
{
message = msg;
}
message = message.substr(3); // Remove triple hash in the beginning
// Get of rid of junk after the data
var valid_pos = message.lastIndexOf('###');
message = message.substr(0, valid_pos); // Remove triple hash in the end
// Decrypt if required
var data = null;
if( joomlaupdate_password.length > 0 )
{
try
{
var data = JSON.parse(message);
}
catch(err)
{
message = AesCtr.decrypt(message, joomlaupdate_password, 128);
}
}
try
{
if (empty(data))
{
data = JSON.parse(message);
}
}
catch(err)
{
var msg = err.message + "\n<br/>\n<pre>\n" +
message + "\n</pre>";
if (errorCallback == null)
{
if (error_callback != null)
{
error_callback(msg);
}
}
else
{
errorCallback(msg);
}
return;
}
// Call the callback function
successCallback(data);
},
error: function(req)
{
var message = 'AJAX Loading Error: ' + req.statusText;
if(errorCallback == null)
{
if (error_callback != null)
{
error_callback(message);
}
}
else
{
errorCallback(message);
}
}
};
jQuery.ajax( structure );
};
/**
* Pings the update script (making sure its executable)
*/
pingExtract = function()
{
// Reset variables
this.stat_files = 0;
this.stat_inbytes = 0;
this.stat_outbytes = 0;
// Do AJAX post
var post = {task : 'ping'};
this.doEncryptedAjax(post,
function(data) {
startExtract(data);
});
};
startExtract = function()
{
// Reset variables
this.stat_files = 0;
this.stat_inbytes = 0;
this.stat_outbytes = 0;
var post = { task : 'startRestore' };
this.doEncryptedAjax(post, function(data){
stepExtract(data);
});
};
stepExtract = function(data)
{
if(data.status == false)
{
// handle failure
error_callback(data.message);
return;
}
if( !empty(data.Warnings) )
{
// @todo Handle warnings
/**
$.each(data.Warnings, function(i, item){
$('#warnings').append(
$(document.createElement('div'))
.html(item)
);
$('#warningsBox').show('fast');
});
/**/
}
if (!empty(data.factory))
{
extract_factory = data.factory;
}
if(data.done)
{
finalizeUpdate();
}
else
{
// Add data to variables
stat_inbytes += data.bytesIn;
stat_percent = (stat_inbytes * 100) / joomlaupdate_totalsize;
// Update GUI
stat_outbytes += data.bytesOut;
stat_files += data.files;
if (stat_percent < 100)
{
jQuery('#progress-bar').css('width', stat_percent +
'%').attr('aria-valuenow', stat_percent);
}
else if (stat_percent > 100)
{
stat_percent = 100;
jQuery('#progress-bar').css('width', stat_percent +
'%').attr('aria-valuenow', stat_percent);
}
else
{
jQuery('#progress-bar').removeClass('bar-success');
}
jQuery('#extpercent').text(stat_percent.toFixed(1) +
'%');
jQuery('#extbytesin').text(stat_inbytes);
jQuery('#extbytesout').text(stat_outbytes);
jQuery('#extfiles').text(stat_files);
// Do AJAX post
post = {
task: 'stepRestore',
factory: data.factory
};
doEncryptedAjax(post, function(data){
stepExtract(data);
});
}
};
finalizeUpdate = function ()
{
// Do AJAX post
var post = { task : 'finalizeRestore', factory: window.factory
};
doEncryptedAjax(post, function(data){
window.location = joomlaupdate_return_url;
});
};
/**
* Is a variable empty?
*
* Part of php.js
*
* @see http://phpjs.org/
*
* @param mixed mixed_var The variable
*
* @returns boolean True if empty
*/
function empty (mixed_var)
{
var key;
if (mixed_var === "" ||
mixed_var === 0 ||
mixed_var === "0" ||
mixed_var === null ||
mixed_var === false ||
typeof mixed_var === 'undefined'
){
return true;
}
if (typeof mixed_var == 'object')
{
for (key in mixed_var)
{
return false;
}
return true;
}
return false;
}
/**
* Is the variable an array?
*
* Part of php.js
*
* @see http://phpjs.org/
*
* @param mixed mixed_var The variable
*
* @returns boolean True if it is an array or an object
*/
function is_array (mixed_var)
{
var key = '';
var getFuncName = function (fn) {
var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
if (!name) {
return '(Anonymous)';
}
return name[1];
};
if (!mixed_var)
{
return false;
}
// BEGIN REDUNDANT
this.php_js = this.php_js || {};
this.php_js.ini = this.php_js.ini || {};
// END REDUNDANT
if (typeof mixed_var === 'object')
{
if (this.php_js.ini['phpjs.objectsAsArrays'] && //
Strict checking for being a JavaScript array (only check this way if call
ini_set('phpjs.objectsAsArrays', 0) to disallow objects as
arrays)
(
(this.php_js.ini['phpjs.objectsAsArrays'].local_value.toLowerCase
&&
this.php_js.ini['phpjs.objectsAsArrays'].local_value.toLowerCase()
=== 'off') ||
parseInt(this.php_js.ini['phpjs.objectsAsArrays'].local_value,
10) === 0)
) {
return mixed_var.hasOwnProperty('length') && // Not
non-enumerable because of being on parent class
!mixed_var.propertyIsEnumerable('length') && // Since
is own property, if not enumerable, it must be a built-in function
getFuncName(mixed_var.constructor) !== 'String'; // exclude
String()
}
if (mixed_var.hasOwnProperty)
{
for (key in mixed_var) {
// Checks whether the object has the specified property
// if not, we figure it's not an object in the sense of a
php-associative-array.
if (false === mixed_var.hasOwnProperty(key)) {
return false;
}
}
}
// Read discussion at:
http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_is_array/
return true;
}
return false;
}
update.min.js000064400000005765151167412130007164 0ustar00var
stat_total=0,stat_files=0,stat_inbytes=0,stat_outbytes=0;function
error_callback(t){alert("ERROR:\n"+t)}function empty(t){var
r;if(""===t||0===t||"0"===t||null===t||!1===t||void
0===t)return!0;if("object"==typeof t){for(r in
t)return!1;return!0}return!1}function is_array(t){var
r,e,s="";if(!t)return!1;if(this.php_js=this.php_js||{},this.php_js.ini=this.php_js.ini||{},"object"==typeof
t){if(this.php_js.ini["phpjs.objectsAsArrays"]&&(this.php_js.ini["phpjs.objectsAsArrays"].local_value.toLowerCase&&"off"===this.php_js.ini["phpjs.objectsAsArrays"].local_value.toLowerCase()||0===parseInt(this.php_js.ini["phpjs.objectsAsArrays"].local_value,10)))return
t.hasOwnProperty("length")&&!t.propertyIsEnumerable("length")&&"String"!==(r=t.constructor,(e=/\W*function\s+([\w\$]+)\s*\(/.exec(r))?e[1]:"(Anonymous)");if(t.hasOwnProperty)for(s
in
t)if(!1===t.hasOwnProperty(s))return!1;return!0}return!1}doEncryptedAjax=function(t,r,e){var
s=JSON.stringify(t);joomlaupdate_password.length>0&&(s=AesCtr.encrypt(s,joomlaupdate_password,128));var
a={type:"POST",url:joomlaupdate_ajax_url,cache:!1,data:{json:s},timeout:6e5,success:function(t,s){var
a="";if(-1==(n=t.indexOf("###")))return t="Invalid
AJAX
data:\n"+t,void(null==e?null!=error_callback&&error_callback(t):e(t));0!=n?(t.substr(0,n),a=t.substr(n)):a=t;var
n=(a=a.substr(3)).lastIndexOf("###");a=a.substr(0,n);var
o=null;if(joomlaupdate_password.length>0)try{o=JSON.parse(a)}catch(t){a=AesCtr.decrypt(a,joomlaupdate_password,128)}try{empty(o)&&(o=JSON.parse(a))}catch(r){t=r.message+"\n<br/>\n<pre>\n"+a+"\n</pre>";return
void(null==e?null!=error_callback&&error_callback(t):e(t))}r(o)},error:function(t){var
r="AJAX Loading Error:
"+t.statusText;null==e?null!=error_callback&&error_callback(r):e(r)}};jQuery.ajax(a)},pingExtract=function(){this.stat_files=0,this.stat_inbytes=0,this.stat_outbytes=0;this.doEncryptedAjax({task:"ping"},function(t){startExtract(t)})},startExtract=function(){this.stat_files=0,this.stat_inbytes=0,this.stat_outbytes=0;this.doEncryptedAjax({task:"startRestore"},function(t){stepExtract(t)})},stepExtract=function(t){0!=t.status?(empty(t.Warnings),empty(t.factory)||(extract_factory=t.factory),t.done?finalizeUpdate():(stat_inbytes+=t.bytesIn,stat_percent=100*stat_inbytes/joomlaupdate_totalsize,stat_outbytes+=t.bytesOut,stat_files+=t.files,stat_percent<100?jQuery("#progress-bar").css("width",stat_percent+"%").attr("aria-valuenow",stat_percent):stat_percent>100?(stat_percent=100,jQuery("#progress-bar").css("width",stat_percent+"%").attr("aria-valuenow",stat_percent)):jQuery("#progress-bar").removeClass("bar-success"),jQuery("#extpercent").text(stat_percent.toFixed(1)+"%"),jQuery("#extbytesin").text(stat_inbytes),jQuery("#extbytesout").text(stat_outbytes),jQuery("#extfiles").text(stat_files),post={task:"stepRestore",factory:t.factory},doEncryptedAjax(post,function(t){stepExtract(t)}))):error_callback(t.message)},finalizeUpdate=function(){var
t={task:"finalizeRestore",factory:window.factory};doEncryptedAjax(t,function(t){window.location=joomlaupdate_return_url})};
run-schedule.js000064400000002110151167612550007503 0ustar00/**
* @copyright (C) 2021 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
/**
* Makes calls to com_ajax to trigger the Scheduler.
*
* Used for lazy scheduling of tasks.
*
* @package Joomla.Plugins
* @subpackage System.ScheduleRunner
*
* @since 4.1.0
*/
if (!window.Joomla) {
throw new Error('Joomla API was not properly initialised');
}
const initScheduler = () => {
const options = Joomla.getOptions('plg_system_schedulerunner');
const paths = Joomla.getOptions('system.paths');
const interval = (options && options.interval ?
parseInt(options.interval, 10) : 300) * 1000;
const uri = `${paths ? `${paths.root}/index.php` :
window.location.pathname}?option=com_ajax&format=raw&plugin=RunSchedulerLazy&group=system`;
setInterval(() => fetch(uri, {
method: 'GET'
}), interval);
// Run it at the beginning at least once
fetch(uri, {
method: 'GET'
});
};
(document => {
document.addEventListener('DOMContentLoaded', () => {
initScheduler();
});
})(document);
run-schedule.min.js.gz000064400000000713151167612550010713
0ustar00�uQ]��0|�_��*d�(|�4Њ"D���>��,�O�ײ7�W �U�v�aƻ3��Ї� ً�Y�
����
�r bF�CX�$�9�������蕨,TD.�u�
���m����
:U�K��� l�� ��d`�P�n
6���y������xWk�R}�$�j0X��9r"����e
��`��:��h�Y�B{L9M�x�]�cZ�b!��Fp|[e�[˚��-���x�r�
UƠdH��=����24��^�#m�Is��ǵa�GC9ye��!Ƈ�W��-rD��I���&�,
JT���Ub3��@�P�W���;�+�N�=[T�6�����F�]z����7�G^�
�6�#r��%rN�$X-����C5S���ʑJ��
o��"��}Z��#�b�]��B�F6R��T%�Ӈ��_+ݠrun-schedule.min.js000064400000001240151167612550010270
0ustar00/**
* @copyright (C) 2021 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/if(!window.Joomla)throw new Error("Joomla API was not properly
initialised");const initScheduler=()=>{const
t=Joomla.getOptions("plg_system_schedulerunner"),o=Joomla.getOptions("system.paths"),n=(t&&t.interval?parseInt(t.interval,10):300)*1e3,e=`${o?`${o.root}/index.php`:window.location.pathname}?option=com_ajax&format=raw&plugin=RunSchedulerLazy&group=system`;setInterval(()=>fetch(e,{method:"GET"}),n),fetch(e,{method:"GET"})};(t=>{t.addEventListener("DOMContentLoaded",()=>{initScheduler()})})(document);
joomla-editor-codemirror.min.js000064400000004372151167745040012614
0ustar00import{JoomlaEditor as s,JoomlaEditorDecorator as
n}from"editor-api";import{keymap as c,createFromTextarea as
r,EditorState as l}from"codemirror";/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/class a extends n{getValue(){return
this.instance.state.doc.toString()}setValue(e){const t=this.instance;return
t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}}),this}getSelection(){const{state:e}=this.instance;return
e.sliceDoc(e.selection.main.from,e.selection.main.to)}replaceSelection(e){const
t=this.instance.state.replaceSelection(e);return
this.instance.dispatch(t),this}disable(e){const t=this.instance;return
t.state.config.compartments.forEach((d,i)=>{i.$j_name==="readOnly"&&t.dispatch({effects:i.reconfigure(l.readOnly.of(!e))})}),this}}class
h extends
HTMLElement{constructor(){super(),this.toggleFullScreen=()=>{this.classList.contains("fullscreen")?this.closeFullScreen():(this.classList.add("fullscreen"),document.documentElement.scrollTop=0,document.documentElement.style.overflow="hidden")},this.closeFullScreen=()=>{this.classList.remove("fullscreen"),document.documentElement.style.overflow=""},this.interactionCallback=()=>{s.setActive(this.element.id)}}get
options(){return JSON.parse(this.getAttribute("options"))}get
fsCombo(){return this.getAttribute("fs-combo")}async
connectedCallback(){const{options:e}=this;this.fsCombo&&(e.customExtensions=e.customExtensions||[],e.customExtensions.push(()=>c.of([{key:this.fsCombo,run:this.toggleFullScreen},{key:"Escape",run:this.closeFullScreen}])),this.bsModals=this.querySelectorAll(".joomla-modal.modal"),this.bsModals.forEach(t=>{document.body.appendChild(t)})),this.element=this.querySelector("textarea"),this.instance=await
r(this.element,e),this.jEditor=new
a(this.instance,"codemirror",this.element.id),s.register(this.jEditor),this.addEventListener("click",this.interactionCallback)}disconnectedCallback(){this.instance&&(this.element.style.display="",this.instance.destroy()),s.unregister(this.element.id),this.removeEventListener("click",this.interactionCallback),this.bsModals&&this.bsModals.length&&this.bsModals.forEach(e=>{this.appendChild(e)})}}customElements.define("joomla-editor-codemirror",h);
codemirror.min.js.gz000064400000002335151167745040010465
0ustar00��Vmo�6��_��ASt������мp�}0���Nk�$ې��J���-�I��sϽ��$�K�B]�U�����jRp��(���(AZE+����J/�Ŕt��`��6��iO����*pQ���:*6t
;��.��:�$lZ:g���M2�m��cg�3�l�X]r4��]ȳ�C�{vn����Sh���L��?�IJ���4��W*�Yة���Ve�
��{Pܬ*�:9)���"����/߄v��HQ�\���I�=w%���d���c��6��A�\����(N�_~P��
e=�8.���s^+�.���5�;w�hrsn
�pe
\eܭ����;t�> [�\�!<!�㇏������ @�<�S��Z�P��f�a߬Պ3�V�JI�B�>��n���
}��J
t�i_��8,�uH�n�<��s2}�MY؆w��ZX��RL��<DŽ>bBW��5^�:�J-�X/>Ȃf)�;#��5�|Am:_�d��i�iUu|�C
�Ha.�}}YVV��m)����z_�$�g�B�t\��4M��(�
T��?���U��:���@��}
,
��ڃ�'�ziVO|�c����gXY��^rw]�5��G�@ȁ�����.�����G�y��ђ�ؼMr1,��AL?O�16
�Y
�6�in2�%}�Ԏ8�'�L
�1����^����Ą�V���e)ͪ������v��MKr>�=�E�ᙼ���N����5��yIj�=$��H�B0��9clKcjA�h逯G�9�M"���C�.5�A�Q�R�����������%�s�nƎ�x����L�8VY7q<�D�YQ�mώ/S��!i2�a:��=d���rp�����
��uB�B��G�^����G�/�M,��|�zzl1?�˘�
�U�uS.
,�)E�����ϕi��ԝG� �j�^���f��7K��W����|:>��_�8E�ү�j�q��=>IǁF�ʻH�-���l:�0�|�e@dAۆ�ά{�ꬍ]������H��=SB�J��8��xp�r�;�YM!��/ˤ/ߥ���f���OƳl�&�I�nlj��Z��ƴ�.�Ա���;N�� l#�xa���g#K;]�
��G-���{�6D�Z��~�m�8��\K#5W3UI�(�e����n9��lH�� codemirror.min.js000064400000004752151167745040010053
0ustar00import{highlightSpecialChars as f,drawSelection as g,lineNumbers as
p,EditorView as a,highlightActiveLineGutter as y,highlightActiveLine as
w,keymap as
c}from"@codemirror/view";export{EditorView,keymap}from"@codemirror/view";import{Compartment
as E,EditorState as
S}from"@codemirror/state";export{EditorState}from"@codemirror/state";import{syntaxHighlighting
as k,defaultHighlightStyle as b,foldGutter as
v}from"@codemirror/language";import{history as O,defaultKeymap as
C,historyKeymap as l,emacsStyleKeymap as
x}from"@codemirror/commands";import{highlightSelectionMatches as
L,searchKeymap as K}from"@codemirror/search";import{closeBrackets
as T}from"@codemirror/autocomplete";import{oneDark as
B}from"@codemirror/theme-one-dark";/**
* @copyright (C) 2023 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/const u=()=>[f(),O(),g(),k(b,{fallback:!0})],d=async e=>{const
t=[],o=[];if(e.mode){const{mode:i}=e,h=e[i]||{};o.push(import(`@codemirror/lang-${e.mode}`).then(n=>{if(i==="php")return
import("@codemirror/lang-html").then(({html:m})=>{const
s=e.html||{selfClosingTags:!0};t.push(n.php({baseLanguage:m(s).language}))});i==="html"&&(h.selfClosingTags=!0),t.push(n[e.mode](h))}).catch(n=>{console.error(`Cannot
create an extension for "${e.mode}" syntax
mode.`,n)}))}switch(e.lineNumbers&&t.push(p()),e.lineWrapping&&t.push(a.lineWrapping),e.activeLine&&t.push(y(),w()),e.highlightSelection&&t.push(L()),e.autoCloseBrackets&&t.push(T()),e.foldGutter&&t.push(v()),e.keyMap){case"emacs":t.push(c.of([...x,...l]));break;default:t.push(c.of([...C,...K,...l]));break}const
r=new E;return
r.$j_name="readOnly",t.push(r.of(S.readOnly.of(!!e.readOnly))),("colorSchemeOs"in
document.documentElement.dataset&&window.matchMedia("(prefers-color-scheme:
dark)").matches||document.documentElement.dataset.colorScheme==="dark")&&t.push(B),e.customExtensions&&e.customExtensions.length&&e.customExtensions.forEach(i=>{if(i
instanceof
Function){t.push(i());return}const[h,n]=i;o.push(import(h).then(m=>{n.forEach(s=>{t.push(m[s]())})}))}),Promise.all(o).then(()=>t)};async
function G(e,t){const o=[u(),await d(t)],r=new
a({doc:e.value,root:t.root||null,extensions:o});return
e.parentNode.insertBefore(r.dom,e),e.style.display="none",e.form&&e.form.addEventListener("submit",()=>{e.value=r.state.doc.toString()}),t.width&&(r.dom.style.width=t.width),t.height&&(r.dom.style.height=t.height),r}export{G
as createFromTextarea,u as minimalSetup,d as optionsToExtensions};
joomla-editor-codemirror.js000064400000007276151167745040012040
0ustar00import { JoomlaEditor, JoomlaEditorDecorator } from
'editor-api';
import { keymap, createFromTextarea, EditorState } from
'codemirror';
/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
/**
* Codemirror Decorator for JoomlaEditor
*/
// eslint-disable-next-line max-classes-per-file
class CodemirrorDecorator extends JoomlaEditorDecorator {
/**
* @returns {string}
*/
getValue() {
return this.instance.state.doc.toString();
}
/**
* @param {String} value
* @returns {CodemirrorDecorator}
*/
setValue(value) {
const editor = this.instance;
editor.dispatch({
changes: {
from: 0,
to: editor.state.doc.length,
insert: value
}
});
return this;
}
/**
* @returns {string}
*/
getSelection() {
const {
state
} = this.instance;
return state.sliceDoc(state.selection.main.from,
state.selection.main.to);
}
replaceSelection(value) {
const v = this.instance.state.replaceSelection(value);
this.instance.dispatch(v);
return this;
}
disable(enable) {
const editor = this.instance;
editor.state.config.compartments.forEach((facet, compartment) => {
if (compartment.$j_name === 'readOnly') {
editor.dispatch({
effects:
compartment.reconfigure(EditorState.readOnly.of(!enable))
});
}
});
return this;
}
}
class CodemirrorEditor extends HTMLElement {
constructor() {
super();
this.toggleFullScreen = () => {
if (!this.classList.contains('fullscreen')) {
this.classList.add('fullscreen');
document.documentElement.scrollTop = 0;
document.documentElement.style.overflow = 'hidden';
} else {
this.closeFullScreen();
}
};
this.closeFullScreen = () => {
this.classList.remove('fullscreen');
document.documentElement.style.overflow = '';
};
this.interactionCallback = () => {
JoomlaEditor.setActive(this.element.id);
};
}
get options() {
return JSON.parse(this.getAttribute('options'));
}
get fsCombo() {
return this.getAttribute('fs-combo');
}
async connectedCallback() {
const {
options
} = this;
// Configure full screen feature
if (this.fsCombo) {
options.customExtensions = options.customExtensions || [];
options.customExtensions.push(() => keymap.of([{
key: this.fsCombo,
run: this.toggleFullScreen
}, {
key: 'Escape',
run: this.closeFullScreen
}]));
// Relocate BS modals, to resolve z-index issue in full screen
this.bsModals =
this.querySelectorAll('.joomla-modal.modal');
this.bsModals.forEach(modal => {
document.body.appendChild(modal);
});
}
// Create and register the Editor
this.element = this.querySelector('textarea');
this.instance = await createFromTextarea(this.element, options);
this.jEditor = new CodemirrorDecorator(this.instance,
'codemirror', this.element.id);
JoomlaEditor.register(this.jEditor);
// Find out when editor is interacted
this.addEventListener('click', this.interactionCallback);
}
disconnectedCallback() {
if (this.instance) {
this.element.style.display = '';
this.instance.destroy();
}
// Remove from the Joomla API
JoomlaEditor.unregister(this.element.id);
this.removeEventListener('click', this.interactionCallback);
// Restore modals
if (this.bsModals && this.bsModals.length) {
this.bsModals.forEach(modal => {
this.appendChild(modal);
});
}
}
}
customElements.define('joomla-editor-codemirror',
CodemirrorEditor);
codemirror.js000064400000012332151167745040007262 0ustar00import {
highlightSpecialChars, drawSelection, lineNumbers, EditorView,
highlightActiveLineGutter, highlightActiveLine, keymap } from
'@codemirror/view';
export { EditorView, keymap } from '@codemirror/view';
import { Compartment, EditorState } from '@codemirror/state';
export { EditorState } from '@codemirror/state';
import { syntaxHighlighting, defaultHighlightStyle, foldGutter } from
'@codemirror/language';
import { history, defaultKeymap, historyKeymap, emacsStyleKeymap } from
'@codemirror/commands';
import { highlightSelectionMatches, searchKeymap } from
'@codemirror/search';
import { closeBrackets } from '@codemirror/autocomplete';
import { oneDark } from '@codemirror/theme-one-dark';
/**
* @copyright (C) 2023 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
const minimalSetup = () => [highlightSpecialChars(), history(),
drawSelection(), syntaxHighlighting(defaultHighlightStyle, {
fallback: true
})];
/**
* Configure and return list of extensions for given options
*
* @param {Object} options
* @returns {Promise<[]>}
*/
const optionsToExtensions = async options => {
const extensions = [];
const q = [];
// Load the language for syntax mode
if (options.mode) {
const {
mode
} = options;
const modeOptions = options[mode] || {};
// eslint-disable-next-line consistent-return
q.push(import(`@codemirror/lang-${options.mode}`).then(modeMod => {
// For html and php we need to configure selfClosingTags, to make
code folding work correctly with <jdoc:include />
if (mode === 'php') {
return import('@codemirror/lang-html').then(({
html
}) => {
const htmlOptions = options.html || {
selfClosingTags: true
};
extensions.push(modeMod.php({
baseLanguage: html(htmlOptions).language
}));
});
}
if (mode === 'html') {
modeOptions.selfClosingTags = true;
}
extensions.push(modeMod[options.mode](modeOptions));
}).catch(error => {
// eslint-disable-next-line no-console
console.error(`Cannot create an extension for
"${options.mode}" syntax mode.`, error);
}));
}
if (options.lineNumbers) {
extensions.push(lineNumbers());
}
if (options.lineWrapping) {
extensions.push(EditorView.lineWrapping);
}
if (options.activeLine) {
extensions.push(highlightActiveLineGutter(), highlightActiveLine());
}
if (options.highlightSelection) {
extensions.push(highlightSelectionMatches());
}
if (options.autoCloseBrackets) {
extensions.push(closeBrackets());
}
if (options.foldGutter) {
extensions.push(foldGutter());
}
// Keymaps
switch (options.keyMap) {
case 'emacs':
extensions.push(keymap.of([...emacsStyleKeymap, ...historyKeymap]));
break;
default:
extensions.push(keymap.of([...defaultKeymap, ...searchKeymap,
...historyKeymap]));
break;
}
// Configurable read only
const readOnly = new Compartment();
// Set a custom name so later on we can retrieve this Compartment from
view.state.config.compartments
readOnly.$j_name = 'readOnly';
extensions.push(readOnly.of(EditorState.readOnly.of(!!options.readOnly)));
// Check for a skin that suits best for the active color scheme
// TODO: Use compartments to update on change of dark mode like:
https://discuss.codemirror.net/t/dynamic-light-mode-dark-mode-how/4709
if ('colorSchemeOs' in document.documentElement.dataset
&& window.matchMedia('(prefers-color-scheme:
dark)').matches || document.documentElement.dataset.colorScheme ===
'dark') {
extensions.push(oneDark);
}
// Check for custom extensions,
// in format [['module1 name or URL', ['init
method2']], ['module2 name or URL', ['init
method2']], () => <return extension>]
if (options.customExtensions && options.customExtensions.length)
{
options.customExtensions.forEach(extInfo => {
// Check whether we have a callable
if (extInfo instanceof Function) {
extensions.push(extInfo());
return;
}
// Import the module
const [module, methods] = extInfo;
q.push(import(module).then(modObject => {
// Call each method
methods.forEach(method => {
extensions.push(modObject[method]());
});
}));
});
}
return Promise.all(q).then(() => extensions);
};
/**
* Create an editor instance for given textarea
*
* @param {HTMLTextAreaElement} textarea
* @param {Object} options
* @returns {Promise<EditorView>}
*/
async function createFromTextarea(textarea, options) {
const extensions = [minimalSetup(), await optionsToExtensions(options)];
const view = new EditorView({
doc: textarea.value,
root: options.root || null,
extensions
});
textarea.parentNode.insertBefore(view.dom, textarea);
textarea.style.display = 'none';
if (textarea.form) {
textarea.form.addEventListener('submit', () => {
textarea.value = view.state.doc.toString();
});
}
// Set up sizing
if (options.width) {
view.dom.style.width = options.width;
}
if (options.height) {
view.dom.style.height = options.height;
}
return view;
}
export { createFromTextarea, minimalSetup, optionsToExtensions };
joomla-editor-codemirror.min.js.gz000064400000001753151167745040013233
0ustar00��V�o�6~�_� �A
��i��lA�v-�c����@Sg� Ej�S��>P�R�q���0�w�}���(]7���s���B��L"�l����2�n�]�@r"�����Z6�Geʃ$x�]}�$=�`���
IfS��Z{�|2;=>>b��7嚵�eE��˔�9��gvۀe�z�Z�nj}�J�_*����OOO��.�/�{(�X�{�'{�4�vi�bW��<jg��<3��������\�3��Se$"�� l��nJ���i���z˨�(�E�V��p[Q8%�-�k[��1ҍr�Q�6�D����*�Q��%�t�6=��Miހ-�ʴE�4��K�ٕ@0�H;�c�M6��pV���)�`QKmEH����K;��
�&���"����%|)�+��|O��L�ٕ.�ru#=�` ���T�E��|�ŏ�[YC��Y�Z�N&���j�p�������݅[�
M�t,~7�z��w�Ws��ݷ�����<���4�5f�<��y����W)\���ȓUk��I�k�r���)ߋ�E��N����D��w�ܹ&?�'Z��ʸ�<�tQ�.;D��<�����^�$fҖ��^R�Ҙ�TC6t�H?�P�H�H�0'�5!
������h��Q]y�l xݓ4�Wx�����!+<Q�)I;�k��rւ"(F�/3��)��h1�d�A����0m������Y4-V<E�~
�{�����N*��z�d�J6�|u�kp�9�Z^�+��aF�i����w���č}R/�&{�/�J���EKW��l��e�M�)�Ƥ��r��4f�F.��&�wđA�^����|'0�~ò}ie(<� "rD���(�`)L@x�x��V�7Ŝ��wH6;�&�]��v���<I��Hޭy�v��ez�0����nK'���u�;��b��m�=PDQ�J[�IU�R��O�Ύ��67�debug.min.js.gz000064400000000535151170236700007376
0ustar00�m��N1��}
+��ڦ� Qv��T~���&&�`��x)UŻ���7�x��t<�.l��R�;9Wprt|
���C���S�`���y�Ϧ��v�_c|'�c��!�z�!#���{���ð����O�Ĕ��b2�i��y{�j5��S�u��1d�X��~ҡq�DE�p����z����*�\7{��%|�W�����%��Ϭ�Rt�s���r-U�쟞u.��"��c��[!��.�dTJ����I_7{��s�'.����z�&*[��&aQ����RUA��vɜ���(I��3�'�v�[4���Y~��v(�l����debug.min.js000064400000000713151170236700006755
0ustar00/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/(e=>{const
o=".dbg-header",l="data-debug-toggle",n=t=>{e.getElementById(t).classList.toggle("hidden")},s=()=>{[].slice.call(e.querySelectorAll(o)).forEach(g=>{g.addEventListener("click",c=>{c.preventDefault(),n(g.getAttribute(l))})})};e.addEventListener("DOMContentLoaded",()=>{s()})})(document);
debug.js000064400000001654151170236700006200 0ustar00/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
(document => {
// Selectors used by this script
const debugSectionTogglerSelector = '.dbg-header';
const toggleTargetAttribute = 'data-debug-toggle';
/**
* Toggle an element by id
* @param id
*/
const toggle = id => {
document.getElementById(id).classList.toggle('hidden');
};
/**
* Register events
*/
const registerEvents = () => {
const sectionTogglers =
[].slice.call(document.querySelectorAll(debugSectionTogglerSelector));
sectionTogglers.forEach(toggler => {
toggler.addEventListener('click', event => {
event.preventDefault();
toggle(toggler.getAttribute(toggleTargetAttribute));
});
});
};
document.addEventListener('DOMContentLoaded', () => {
registerEvents();
});
})(document);
sampledata-process.js000064400000012551151170237350010701 0ustar00/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
const SampleData = {
inProgress: false
};
const sampledataAjax = (type, steps, step) => {
// Get variables
const baseUrl =
`index.php?option=com_ajax&format=json&group=sampledata&${Joomla.getOptions('csrf.token')}=1`;
// Create list
const list = document.createElement('div');
list.classList.add(`sampledata-steps-${type}-${step}`);
list.setAttribute('role', 'region');
list.setAttribute('aria-live', 'polite');
// Create paragraph
const para = document.createElement('p');
para.classList.add('loader-image');
// Create image
const loaderEl = document.createElement('joomla-core-loader');
loaderEl.setAttribute('inline', true);
loaderEl.setAttribute('size', 60);
loaderEl.setAttribute('color', 'transparent');
// Append everything
para.appendChild(loaderEl);
list.appendChild(para);
document.querySelector(`.sampledata-progress-${type}`).appendChild(list);
Joomla.request({
url:
`${baseUrl}&type=${type}&plugin=SampledataApplyStep${step}&step=${step}`,
method: 'GET',
perform: true,
onSuccess: resp => {
// Remove loader image
const loader = list.querySelector('.loader-image');
loader.parentNode.removeChild(loader);
let response = {};
try {
response = JSON.parse(resp);
} catch (e) {
Joomla.renderMessages({
error:
[Joomla.Text._('MOD_SAMPLEDATA_INVALID_RESPONSE')]
}, `.sampledata-steps-${type}-${step}`);
SampleData.inProgress = false;
return;
}
let progressClass = '';
let success;
if (response.success && response.data &&
response.data.length > 0) {
const progress =
document.querySelector(`.sampledata-progress-${type} .progress-bar`);
// Display all messages that we got
response.data.forEach(value => {
if (value === null) {
return;
}
// eslint-disable-next-line prefer-destructuring
success = value.success;
progressClass = success ? 'bg-success' :
'bg-danger';
// Display success alert
if (success) {
Joomla.renderMessages({
message: [value.message]
}, `.sampledata-steps-${type}-${step}`, false, 3000);
} else {
Joomla.renderMessages({
error: [value.message]
}, `.sampledata-steps-${type}-${step}`, false);
}
});
// Update progress
progress.innerText = `${step}/${steps}`;
progress.style.width = `${step / steps * 100}%`;
progress.setAttribute('aria-valuemin', 0);
progress.setAttribute('aria-valuemax', 100);
progress.setAttribute('aria-valuenow', step / steps *
100);
progress.classList.add(progressClass);
// Move on next step
if (success && step <= steps) {
const stepNew = step + 1;
if (stepNew <= steps) {
sampledataAjax(type, steps, stepNew);
} else {
const bar =
document.querySelector(`.sampledata-progress-${type}`);
bar.parentNode.removeChild(bar);
Joomla.renderMessages({
message:
[Joomla.Text._('MOD_SAMPLEDATA_COMPLETED')]
});
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
SampleData.inProgress = false;
}
}
} else {
// Display error alert
Joomla.renderMessages({
error:
[Joomla.Text._('MOD_SAMPLEDATA_INVALID_RESPONSE')]
});
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
SampleData.inProgress = false;
}
},
onError: () => {
Joomla.renderMessages({
error: [Joomla.Text._('MOD_SAMPLEDATA_ERROR_RESPONSE')]
});
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
SampleData.inProgress = false;
}
});
};
const sampledataApply = element => {
const type = element.getAttribute('data-type');
const steps = element.getAttribute('data-steps');
// Check whether the work in progress or we already processed with
current item
if (SampleData.inProgress) {
return;
}
if (element.getAttribute('data-processed')) {
alert(Joomla.Text._('MOD_SAMPLEDATA_ITEM_ALREADY_PROCESSED'));
SampleData.inProgress = false;
return;
}
// Make sure that use run this not by random clicking on the page links
// @todo use the CE Modal here
if
(!window.confirm(Joomla.Text._('MOD_SAMPLEDATA_CONFIRM_START')))
{
// eslint-disable-next-line consistent-return
return false;
}
// Turn on the progress container
document.querySelectorAll(`.sampledata-progress-${type}`).forEach(progressElement
=> {
progressElement.classList.remove('d-none');
});
element.setAttribute('data-processed', true);
SampleData.inProgress = true;
sampledataAjax(type, steps, 1);
// eslint-disable-next-line consistent-return
return false;
};
const sampleDataWrapper =
document.getElementById('sample-data-wrapper');
if (sampleDataWrapper) {
sampleDataWrapper.querySelectorAll('.apply-sample-data').forEach(link
=> {
link.addEventListener('click', ({
currentTarget
}) => sampledataApply(currentTarget));
});
}
sampledata-process.min.js000064400000005741151170237350011466 0ustar00/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/const SampleData={inProgress:!1},sampledataAjax=(e,r,a)=>{const
i=`index.php?option=com_ajax&format=json&group=sampledata&${Joomla.getOptions("csrf.token")}=1`,o=document.createElement("div");o.classList.add(`sampledata-steps-${e}-${a}`),o.setAttribute("role","region"),o.setAttribute("aria-live","polite");const
c=document.createElement("p");c.classList.add("loader-image");const
n=document.createElement("joomla-core-loader");n.setAttribute("inline",!0),n.setAttribute("size",60),n.setAttribute("color","transparent"),c.appendChild(n),o.appendChild(c),document.querySelector(`.sampledata-progress-${e}`).appendChild(o),Joomla.request({url:`${i}&type=${e}&plugin=SampledataApplyStep${a}&step=${a}`,method:"GET",perform:!0,onSuccess:A=>{const
m=o.querySelector(".loader-image");m.parentNode.removeChild(m);let
l={};try{l=JSON.parse(A)}catch{Joomla.renderMessages({error:[Joomla.Text._("MOD_SAMPLEDATA_INVALID_RESPONSE")]},`.sampledata-steps-${e}-${a}`),SampleData.inProgress=!1;return}let
p="",d;if(l.success&&l.data&&l.data.length>0){const
s=document.querySelector(`.sampledata-progress-${e}
.progress-bar`);if(l.data.forEach(t=>{t!==null&&(d=t.success,p=d?"bg-success":"bg-danger",d?Joomla.renderMessages({message:[t.message]},`.sampledata-steps-${e}-${a}`,!1,3e3):Joomla.renderMessages({error:[t.message]},`.sampledata-steps-${e}-${a}`,!1))}),s.innerText=`${a}/${r}`,s.style.width=`${a/r*100}%`,s.setAttribute("aria-valuemin",0),s.setAttribute("aria-valuemax",100),s.setAttribute("aria-valuenow",a/r*100),s.classList.add(p),d&&a<=r){const
t=a+1;if(t<=r)sampledataAjax(e,r,t);else{const
u=document.querySelector(`.sampledata-progress-${e}`);u.parentNode.removeChild(u),Joomla.renderMessages({message:[Joomla.Text._("MOD_SAMPLEDATA_COMPLETED")]}),window.scroll({top:0,left:0,behavior:"smooth"}),SampleData.inProgress=!1}}}else
Joomla.renderMessages({error:[Joomla.Text._("MOD_SAMPLEDATA_INVALID_RESPONSE")]}),window.scroll({top:0,left:0,behavior:"smooth"}),SampleData.inProgress=!1},onError:()=>{Joomla.renderMessages({error:[Joomla.Text._("MOD_SAMPLEDATA_ERROR_RESPONSE")]}),window.scroll({top:0,left:0,behavior:"smooth"}),SampleData.inProgress=!1}})},sampledataApply=e=>{const
r=e.getAttribute("data-type"),a=e.getAttribute("data-steps");if(!SampleData.inProgress){if(e.getAttribute("data-processed")){alert(Joomla.Text._("MOD_SAMPLEDATA_ITEM_ALREADY_PROCESSED")),SampleData.inProgress=!1;return}return
window.confirm(Joomla.Text._("MOD_SAMPLEDATA_CONFIRM_START"))&&(document.querySelectorAll(`.sampledata-progress-${r}`).forEach(i=>{i.classList.remove("d-none")}),e.setAttribute("data-processed",!0),SampleData.inProgress=!0,sampledataAjax(r,a,1)),!1}},sampleDataWrapper=document.getElementById("sample-data-wrapper");sampleDataWrapper&&sampleDataWrapper.querySelectorAll(".apply-sample-data").forEach(e=>{e.addEventListener("click",({currentTarget:r})=>sampledataApply(r))});
sampledata-process.min.js.gz000064400000002317151170237350012101
0ustar00��Vao�6��_��!f�b��0�e:/Q�I�ކ�lF��L)R=Rv<A�}��Ɖ'��}��;���=����
�%1��t�
<���V�砟�����s��e��N���̹�v�EtcL�DdpzT�R2m!����o�ЀB�ŕ�Ip����4:x�p��g����0�ܭ{&F[E�+8N�R�K4Sk;{��ڔ
'z7▇�� ʏ��N�'R�p��ɝ4�'&�q۸6� �o�э)�"�h�����bSp�z�
Ib�:r�3hB+ޞ0�S�h%�A���B��9�]%JX{&��D���� M�
����~)� e&��zΡ�*����TM�J�Tr�r��B���';˽�VZD�6e&��zg����
4W[ ���VRa{-ʶmV�
���%1�
aġ�6�ʒH�9��x&Uj� ew�~)�CP�8��$��x���� }�P�&�Kօe��3�/e�p�����U1��7e��j9t�{�S^��2p3�vȇxDX諭��bF�$�ۻ+ӌ���I�EI���0)D���*�v�@��:\���/����G�D�dV��M���`���
K@4������E㐜�O����Y|��Ƨ���NOƃxxٿƄ�U��>.�M�F���{�.�+PW>��Ү�UdW�4*��o��詛��)˿��
�[^ ��Ձu�k��Hf��G���\J5a��ׄX��w�j�\�I�/R������v��:�\�~} 2��fo�
�<�Էģ���FRk@O-�x��~�Մ�Ⱥ��h!S7�-�x�n��j�c��U@&5a-����%��z�G�a���C1�)K
��W�?�=m�|(���;�ea�^�!�bW���a���q߿���8�-�N�"� ��ҙ��b
�]�Ů`&��`���7#��V���_:�ޭ�3dF�u��%��D�?��Ҭ�A�+:�;qF~�W�u���L<m�ۑ�Z��乴���[s4^i
%��B��G�w6�{'�/��x8���
�����k�Y�R5_�?�����`D(�z�d�����q��_�W�R��U�$mj��x�--���1v\��5#��kS�<�k����q7�1�x~]��!Y�6�+gB��4�>=ƅ��C-��b�
���ka<�<&~�I�dL
�R58���
ѫ��?��%�application.js000064400000000274151171056760007421
0ustar00$('.dropdown-toggle').dropdown()
$('.collapse').collapse('show')
$('#myModal').modal('hide')
$('.typeahead').typeahead()
$('.tabs').button()
$('.tip').tooltip()
$(".alert-message").alert()classes.js000064400000002164151171056760006553
0ustar00// Add classes
window.onload=function() {
var input = document.getElementsByTagName("input");
for (var i = 0; i < input.length; i++) {
if (input[i].className == 'button') {
input[i].className = 'btn btn-primary';
}
}
var button = document.getElementsByTagName("button");
for (var i = 0; i < input.length; i++) {
if (button[i].className == 'button') {
button[i].className = 'btn btn-primary';
}
}
var p = document.getElementsByTagName("p");
for (var i = 0; i < p.length; i++) {
if (p[i].className == 'readmore') {
p[i].className = 'btn';
}
}
var table = document.getElementsByTagName("table");
for (var i = 0; i < table.length; i++) {
if (table[i].className == 'category') {
table[i].className = 'table table-striped';
}
}
var ul = document.getElementsByTagName("ul");
for (var i = 0; i < ul.length; i++) {
if (ul[i].className == 'actions') {
ul[i].className = 'nav nav-pills';
}
}
var ul = document.getElementsByTagName("ul");
for (var i = 0; i < ul.length; i++) {
if (ul[i].className == 'pagenav') {
ul[i].className = 'pagination';
}
}
}admin-article-pagebreak.js000064400000002303151171360530011532 0ustar00/**
* @copyright (C) 2017 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
(function() {
"use strict";
window.insertPagebreak = function(editor) {
/** Get the pagebreak title **/
var alt, tag, title = document.getElementById('title').value;
if (!window.parent.Joomla.getOptions('xtd-pagebreak')) {
// Something went wrong!
window.parent.jModalClose();
return false;
}
/** Get the pagebreak toc alias -- not inserting for now **/
/** don't know which attribute to use... **/
alt = document.getElementById('alt').value;
title = (title != '') ? 'title="' + title +
'"' : '';
alt = (alt != '') ? 'alt="' + alt +
'"' : '';
tag = '<hr class="system-pagebreak" ' + title +
' ' + alt + '/>';
/** Use the API, if editor supports it **/
if (window.parent.Joomla && window.parent.Joomla.editors
&& window.parent.Joomla.editors.instances &&
window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
window.parent.Joomla.editors.instances[editor].replaceSelection(tag)
} else {
window.parent.jInsertEditorText(tag, editor);
}
window.parent.jModalClose();
return false;
};
})();
admin-article-pagebreak.min.js000064400000001155151171360530012320
0ustar00!function(){"use
strict";window.insertPagebreak=function(a){var
b,c,d=document.getElementById("title").value;return
window.parent.Joomla.getOptions("xtd-pagebreak")?(b=document.getElementById("alt").value,d=""!=d?'title="'+d+'"':"",b=""!=b?'alt="'+b+'"':"",c='<hr
class="system-pagebreak" '+d+"
"+b+"/>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(a)?window.parent.Joomla.editors.instances[a].replaceSelection(c):window.parent.jInsertEditorText(c,a),window.parent.jModalClose(),!1):(window.parent.jModalClose(),!1)}}();admin-article-readmore.js000064400000002163151171360530011413
0ustar00/**
* @copyright (C) 2017 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
window.insertReadmore = function(editor) {
"use strict";
if (!Joomla.getOptions('xtd-readmore')) {
// Something went wrong!
return false;
}
var content, options = window.Joomla.getOptions('xtd-readmore');
if (window.Joomla && window.Joomla.editors &&
window.Joomla.editors.instances &&
window.Joomla.editors.instances.hasOwnProperty(editor)) {
content = window.Joomla.editors.instances[editor].getValue();
} else {
content = (new Function('return ' + options.editor))();
}
if
(content.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i))
{
alert(options.exists);
return false;
} else {
/** Use the API, if editor supports it **/
if (window.Joomla && window.Joomla.editors &&
window.Joomla.editors.instances &&
window.Joomla.editors.instances.hasOwnProperty(editor)) {
window.Joomla.editors.instances[editor].replaceSelection('<hr
id="system-readmore" />');
} else {
window.jInsertEditorText('<hr id="system-readmore"
/>', editor);
}
}
};
admin-article-readmore.min.js000064400000001265151171360530012177
0ustar00window.insertReadmore=function(a){"use
strict";if(!Joomla.getOptions("xtd-readmore"))return!1;var
b,c=window.Joomla.getOptions("xtd-readmore");if(b=window.Joomla&&window.Joomla.editors&&window.Joomla.editors.instances&&window.Joomla.editors.instances.hasOwnProperty(a)?window.Joomla.editors.instances[a].getValue():new
Function("return
"+c.editor)(),b.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i))return
alert(c.exists),!1;window.Joomla&&window.Joomla.editors&&window.Joomla.editors.instances&&window.Joomla.editors.instances.hasOwnProperty(a)?window.Joomla.editors.instances[a].replaceSelection('<hr
id="system-readmore"
/>'):window.jInsertEditorText('<hr
id="system-readmore"
/>',a)};admin-articles-modal.js000064400000004244151171360530011076
0ustar00/**
* @copyright (C) 2017 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
(function() {
"use strict";
/**
* Javascript to insert the link
* View element calls jSelectArticle when an article is clicked
* jSelectArticle creates the link tag, sends it to the editor,
* and closes the select frame.
**/
window.jSelectArticle = function (id, title, catid, object, link, lang) {
var hreflang = '', editor, tag;
if (!Joomla.getOptions('xtd-articles')) {
// Something went wrong!
window.parent.jModalClose();
return false;
}
editor = Joomla.getOptions('xtd-articles').editor;
if (lang !== '')
{
hreflang = ' hreflang="' + lang + '"';
}
tag = '<a' + hreflang + ' href="' + link +
'">' + title + '</a>';
/** Use the API, if editor supports it **/
if (window.parent.Joomla && window.parent.Joomla.editors
&& window.parent.Joomla.editors.instances &&
window.parent.Joomla.editors.instances.hasOwnProperty(editor)) {
window.parent.Joomla.editors.instances[editor].replaceSelection(tag)
} else {
window.parent.jInsertEditorText(tag, editor);
}
window.parent.jModalClose();
};
document.addEventListener('DOMContentLoaded', function(){
// Get the elements
var elements = document.querySelectorAll('.select-link');
for(var i = 0, l = elements.length; l>i; i++) {
// Listen for click event
elements[i].addEventListener('click', function (event) {
event.preventDefault();
var functionName =
event.target.getAttribute('data-function');
if (functionName === 'jSelectArticle') {
// Used in xtd_contacts
window[functionName](event.target.getAttribute('data-id'),
event.target.getAttribute('data-title'),
event.target.getAttribute('data-cat-id'), null,
event.target.getAttribute('data-uri'),
event.target.getAttribute('data-language'));
} else {
// Used in com_menus
window.parent[functionName](event.target.getAttribute('data-id'),
event.target.getAttribute('data-title'),
event.target.getAttribute('data-cat-id'), null,
event.target.getAttribute('data-uri'),
event.target.getAttribute('data-language'));
}
})
}
});
})();
admin-articles-modal.min.js000064400000002274151171360530011661
0ustar00!function(){"use
strict";window.jSelectArticle=function(a,b,c,d,e,f){var
h,i,g="";return
Joomla.getOptions("xtd-articles")?(h=Joomla.getOptions("xtd-articles").editor,""!==f&&(g='
hreflang="'+f+'"'),i="<a"+g+'
href="'+e+'">'+b+"</a>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(h)?window.parent.Joomla.editors.instances[h].replaceSelection(i):window.parent.jInsertEditorText(i,h),void
window.parent.jModalClose()):(window.parent.jModalClose(),!1)},document.addEventListener("DOMContentLoaded",function(){for(var
a=document.querySelectorAll(".select-link"),b=0,c=a.length;c>b;b++)a[b].addEventListener("click",function(a){a.preventDefault();var
b=a.target.getAttribute("data-function");"jSelectArticle"===b?window[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),a.target.getAttribute("data-cat-id"),null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language")):window.parent[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),a.target.getAttribute("data-cat-id"),null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"))})})}();privacycheck.js000064400000003716151171557020007570
0ustar00/**
* @copyright (C) 2018 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
jQuery(document).ready(function() {
var variables = Joomla.getOptions('js-privacy-check'),
plg_quickicon_privacycheck_ajax_url =
variables.plg_quickicon_privacycheck_ajax_url,
plg_quickicon_privacycheck_url =
variables.plg_quickicon_privacycheck_url,
plg_quickicon_privacycheck_text =
variables.plg_quickicon_privacycheck_text;
var ajax_structure = {
success: function(data, textStatus, jqXHR) {
var link =
jQuery('#plg_quickicon_privacycheck').find('span.j-links-link');
try {
var requestList = jQuery.parseJSON(data);
} catch (e) {
// An error occurred
link.html(plg_quickicon_privacycheck_text.ERROR);
}
if (requestList.data.number_urgent_requests == 0) {
// No requests
link.html(plg_quickicon_privacycheck_text.NOREQUEST);
} else {
// Requests
var msgString = '<span class="label
label-important">'
+ requestList.data.number_urgent_requests +
'</span> '
+ plg_quickicon_privacycheck_text.REQUESTFOUND_MESSAGE;
jQuery('#system-message-container').prepend(
'<div class="alert alert-error
alert-joomlaupdate">'
+ msgString
+ ' <button class="btn btn-primary"
onclick="document.location=\'' +
plg_quickicon_privacycheck_url + '\'">'
+ plg_quickicon_privacycheck_text.REQUESTFOUND_BUTTON +
'</button>'
+ '</div>'
);
var msgString = plg_quickicon_privacycheck_text.REQUESTFOUND
+ ' <span class="label
label-important">'
+ requestList.data.number_urgent_requests + '</span>'
link.html(msgString);
}
},
error: function(jqXHR, textStatus, errorThrown) {
// An error occurred
jQuery('#plg_quickicon_privacycheck').find('span.j-links-link').html(plg_quickicon_privacycheck_text.ERROR);
},
url: plg_quickicon_privacycheck_ajax_url
};
ajax_object = new jQuery.ajax(ajax_structure);
});
admin-notifly.js000064400000001433151171634120007656 0ustar00/**
* @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
(function() {
"use strict";
window.updateTemplateStatus = function updateTemplateStatus(input){
jQuery.get("index.php?option=com_notifly&task=template.update",
function(data, status){
/*alert("Data: " + data + "\nStatus: " +
status);*/
return false;
});
};
window.convertFromMarkdown = function convertFromMarkdown(){
jQuery.each(jQuery('.event-message'), function(index, value){
var text = jQuery(this).html();
var converter = new showdown.Converter();
var renderedHtml = converter.makeHtml(text);
jQuery(this).html(renderedHtml);
});
}
})();
chart.min.js000064400000463347151171634120007007 0ustar00/*!
* Chart.js
* http://chartjs.org/
* Version: 2.7.0
*
* Copyright 2017 Nick Downie
* Released under the MIT license
* https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
*/
!function(t){if("object"==typeof
exports&&"undefined"!=typeof
module)module.exports=t();else if("function"==typeof
define&&define.amd)define([],t);else{("undefined"!=typeof
window?window:"undefined"!=typeof
global?global:"undefined"!=typeof
self?self:this).Chart=t()}}(function(){return function t(e,n,i){function
a(r,l){if(!n[r]){if(!e[r]){var s="function"==typeof
require&&require;if(!l&&s)return s(r,!0);if(o)return
o(r,!0);var u=new Error("Cannot find module
'"+r+"'");throw
u.code="MODULE_NOT_FOUND",u}var
d=n[r]={exports:{}};e[r][0].call(d.exports,function(t){var
n=e[r][1][t];return a(n||t)},d,d.exports,t,e,n,i)}return
n[r].exports}for(var o="function"==typeof
require&&require,r=0;r<i.length;r++)a(i[r]);return
a}({1:[function(t,e,n){},{}],2:[function(t,e,n){function i(t){if(t){var
e=/^#([a-fA-F0-9]{3})$/i,n=/^#([a-fA-F0-9]{6})$/i,i=/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i,a=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i,o=/(\w+)/,r=[0,0,0],l=1,s=t.match(e);if(s){s=s[1];for(d=0;d<r.length;d++)r[d]=parseInt(s[d]+s[d],16)}else
if(s=t.match(n)){s=s[1];for(d=0;d<r.length;d++)r[d]=parseInt(s.slice(2*d,2*d+2),16)}else
if(s=t.match(i)){for(d=0;d<r.length;d++)r[d]=parseInt(s[d+1]);l=parseFloat(s[4])}else
if(s=t.match(a)){for(d=0;d<r.length;d++)r[d]=Math.round(2.55*parseFloat(s[d+1]));l=parseFloat(s[4])}else
if(s=t.match(o)){if("transparent"==s[1])return[0,0,0,0];if(!(r=c[s[1]]))return}for(var
d=0;d<r.length;d++)r[d]=u(r[d],0,255);return
l=l||0==l?u(l,0,1):1,r[3]=l,r}}function a(t){if(t){var
e=/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/,n=t.match(e);if(n){var
i=parseFloat(n[4]);return[u(parseInt(n[1]),0,360),u(parseFloat(n[2]),0,100),u(parseFloat(n[3]),0,100),u(isNaN(i)?1:i,0,1)]}}}function
o(t){if(t){var
e=/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/,n=t.match(e);if(n){var
i=parseFloat(n[4]);return[u(parseInt(n[1]),0,360),u(parseFloat(n[2]),0,100),u(parseFloat(n[3]),0,100),u(isNaN(i)?1:i,0,1)]}}}function
r(t,e){return void 0===e&&(e=void
0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+",
"+t[2]+", "+e+")"}function
l(t,e){return"rgba("+Math.round(t[0]/255*100)+"%,
"+Math.round(t[1]/255*100)+"%,
"+Math.round(t[2]/255*100)+"%,
"+(e||t[3]||1)+")"}function s(t,e){return void
0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+",
"+t[1]+"%, "+t[2]+"%, "+e+")"}function
u(t,e,n){return Math.min(Math.max(e,t),n)}function d(t){var
e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var
c=t(6);e.exports={getRgba:i,getHsla:a,getRgb:function(t){var e=i(t);return
e&&e.slice(0,3)},getHsl:function(t){var e=a(t);return
e&&e.slice(0,3)},getHwb:o,getAlpha:function(t){var e=i(t);return
e?e[3]:(e=a(t))?e[3]:(e=o(t))?e[3]:void
0},hexString:function(t){return"#"+d(t[0])+d(t[1])+d(t[2])},rgbString:function(t,e){return
e<1||t[3]&&t[3]<1?r(t,e):"rgb("+t[0]+",
"+t[1]+",
"+t[2]+")"},rgbaString:r,percentString:function(t,e){return
e<1||t[3]&&t[3]<1?l(t,e):"rgb("+Math.round(t[0]/255*100)+"%,
"+Math.round(t[1]/255*100)+"%,
"+Math.round(t[2]/255*100)+"%)"},percentaString:l,hslString:function(t,e){return
e<1||t[3]&&t[3]<1?s(t,e):"hsl("+t[0]+",
"+t[1]+"%,
"+t[2]+"%)"},hslaString:s,hwbString:function(t,e){return
void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+",
"+t[1]+"%, "+t[2]+"%"+(void
0!==e&&1!==e?",
"+e:"")+")"},keyword:function(t){return
h[t.slice(0,3)]}};var h={};for(var f in
c)h[c[f]]=f},{6:6}],3:[function(t,e,n){var i=t(5),a=t(2),o=function(t){if(t
instanceof o)return t;if(!(this instanceof o))return new
o(t);this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var
e;"string"==typeof
t?(e=a.getRgba(t))?this.setValues("rgb",e):(e=a.getHsla(t))?this.setValues("hsl",e):(e=a.getHwb(t))&&this.setValues("hwb",e):"object"==typeof
t&&(void 0!==(e=t).r||void
0!==e.red?this.setValues("rgb",e):void 0!==e.l||void
0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void
0!==e.value?this.setValues("hsv",e):void 0!==e.w||void
0!==e.whiteness?this.setValues("hwb",e):void
0===e.c&&void
0===e.cyan||this.setValues("cmyk",e))};o.prototype={isValid:function(){return
this.valid},rgb:function(){return
this.setSpace("rgb",arguments)},hsl:function(){return
this.setSpace("hsl",arguments)},hsv:function(){return
this.setSpace("hsv",arguments)},hwb:function(){return
this.setSpace("hwb",arguments)},cmyk:function(){return
this.setSpace("cmyk",arguments)},rgbArray:function(){return
this.values.rgb},hslArray:function(){return
this.values.hsl},hsvArray:function(){return
this.values.hsv},hwbArray:function(){var t=this.values;return
1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return
this.values.cmyk},rgbaArray:function(){var t=this.values;return
t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return
t.hsl.concat([t.alpha])},alpha:function(t){return void
0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return
this.setChannel("rgb",0,t)},green:function(t){return
this.setChannel("rgb",1,t)},blue:function(t){return
this.setChannel("rgb",2,t)},hue:function(t){return
t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return
this.setChannel("hsl",1,t)},lightness:function(t){return
this.setChannel("hsl",2,t)},saturationv:function(t){return
this.setChannel("hsv",1,t)},whiteness:function(t){return
this.setChannel("hwb",1,t)},blackness:function(t){return
this.setChannel("hwb",2,t)},value:function(t){return
this.setChannel("hsv",2,t)},cyan:function(t){return
this.setChannel("cmyk",0,t)},magenta:function(t){return
this.setChannel("cmyk",1,t)},yellow:function(t){return
this.setChannel("cmyk",2,t)},black:function(t){return
this.setChannel("cmyk",3,t)},hexString:function(){return
a.hexString(this.values.rgb)},rgbString:function(){return
a.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return
a.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return
a.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return
a.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return
a.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return
a.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return
a.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var
t=this.values.rgb;return
t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var
t=this.values.rgb,e=[],n=0;n<t.length;n++){var
i=t[n]/255;e[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var
e=this.luminosity(),n=t.luminosity();return
e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var
e=this.contrast(t);return
e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var
t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var
t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return
this.setValues("rgb",t),this},lighten:function(t){var
e=this.values.hsl;return
e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var
e=this.values.hsl;return
e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var
e=this.values.hsl;return
e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var
e=this.values.hsl;return
e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var
e=this.values.hwb;return
e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var
e=this.values.hwb;return
e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var
t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return
this.setValues("rgb",[e,e,e]),this},clearer:function(t){var
e=this.values.alpha;return
this.setValues("alpha",e-e*t),this},opaquer:function(t){var
e=this.values.alpha;return
this.setValues("alpha",e+e*t),this},rotate:function(t){var
e=this.values.hsl,n=(e[0]+t)%360;return
e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var
n=this,i=t,a=void
0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),l=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return
this.rgb(l*n.red()+s*i.red(),l*n.green()+s*i.green(),l*n.blue()+s*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return
this.rgb()},clone:function(){var t,e,n=new
o,i=this.values,a=n.values;for(var r in
i)i.hasOwnProperty(r)&&(t=i[r],"[object
Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object
Number]"===e?a[r]=t:console.error("unexpected color
value:",t));return
n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var
e=this.values,n={},i=0;i<t.length;i++)n[t.charAt(i)]=e[t][i];return
1!==e.alpha&&(n.a=e.alpha),n},o.prototype.setValues=function(t,e){var
n,a=this.values,o=this.spaces,r=this.maxes,l=1;if(this.valid=!0,"alpha"===t)l=e;else
if(e.length)a[t]=e.slice(0,t.length),l=e[t.length];else if(void
0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)a[t][n]=e[t.charAt(n)];l=e.a}else
if(void 0!==e[o[t][0]]){var
s=o[t];for(n=0;n<t.length;n++)a[t][n]=e[s[n]];l=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void
0===l?a.alpha:l)),"alpha"===t)return!1;var
u;for(n=0;n<t.length;n++)u=Math.max(0,Math.min(r[t][n],a[t][n])),a[t][n]=Math.round(u);for(var
d in
o)d!==t&&(a[d]=i[t][d](a[t]));return!0},o.prototype.setSpace=function(t,e){var
n=e[0];return void 0===n?this.getValues(t):("number"==typeof
n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},o.prototype.setChannel=function(t,e,n){var
i=this.values[t];return void
0===n?i[e]:n===i[e]?this:(i[e]=n,this.setValues(t,i),this)},"undefined"!=typeof
window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,n){function
i(t){var
e,n,i,a=t[0]/255,o=t[1]/255,r=t[2]/255,l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return
s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),(e=Math.min(60*e,360))<0&&(e+=360),i=(l+s)/2,n=s==l?0:i<=.5?u/(s+l):u/(2-s-l),[e,100*n,100*i]}function
a(t){var
e,n,i,a=t[0],o=t[1],r=t[2],l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return
n=0==s?0:u/s*1e3/10,s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),(e=Math.min(60*e,360))<0&&(e+=360),i=s/255*1e3/10,[e,n,i]}function
o(t){var
e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function
l(t){var e,n,i,a,o=t[0]/255,r=t[1]/255,l=t[2]/255;return
a=Math.min(1-o,1-r,1-l),e=(1-o-a)/(1-a)||0,n=(1-r-a)/(1-a)||0,i=(1-l-a)/(1-a)||0,[100*e,100*n,100*i,100*a]}function
s(t){return C[JSON.stringify(t)]}function u(t){var
e=t[0]/255,n=t[1]/255,i=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function
d(t){var e,n,i,a=u(t),o=a[0],r=a[1],l=a[2];return
o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,n=500*(o-r),i=200*(r-l),[e,n,i]}function
c(t){var e,n,i,a,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return
o=255*s,[o,o,o];e=2*s-(n=s<.5?s*(1+l):s+l-s*l),a=[0,0,0];for(var
u=0;u<3;u++)(i=r+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*o;return
a}function h(t){var
e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),l=255*i*(1-n*o),s=255*i*(1-n*(1-o)),i=255*i;switch(a){case
0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case
3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function
f(t){var
e,n,i,a,o=t[0]/360,l=t[1]/100,s=t[2]/100,u=l+s;switch(u>1&&(l/=u,s/=u),e=Math.floor(6*o),n=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),a=l+i*(n-l),e){default:case
6:case 0:r=n,g=a,b=l;break;case 1:r=a,g=n,b=l;break;case
2:r=l,g=n,b=a;break;case 3:r=l,g=a,b=n;break;case 4:r=a,g=l,b=n;break;case
5:r=n,g=l,b=a}return[255*r,255*g,255*b]}function p(t){var
e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return
e=1-Math.min(1,a*(1-l)+l),n=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*n,255*i]}function
v(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return
e=3.2406*a+-1.5372*o+-.4986*r,n=-.9689*a+1.8758*o+.0415*r,i=.0557*a+-.204*o+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function
m(t){var e,n,i,a=t[0],o=t[1],r=t[2];return
a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function
x(t){var e,n,i,a,o=t[0],r=t[1],l=t[2];return
o<=8?a=(n=100*o/903.3)/100*7.787+16/116:(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=i/108.883<=.008859?i=108.883*(a-l/200-16/116)/7.787:108.883*Math.pow(a-l/200,3),[e,n,i]}function
y(t){var e,n,i,a=t[0],o=t[1],r=t[2];return
e=Math.atan2(r,o),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function
k(t){return v(x(t))}function w(t){var e,n,i,a=t[0],o=t[1];return
i=t[2]/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function
M(t){return
S[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return
y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var
e,n,i=t[0],a=t[1]/100,o=t[2]/100;return
0===o?[0,0,0]:(o*=2,a*=o<=1?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])},hsl2hwb:function(t){return
o(c(t))},hsl2cmyk:function(t){return
l(c(t))},hsl2keyword:function(t){return
s(c(t))},hsv2rgb:h,hsv2hsl:function(t){var
e,n,i=t[0],a=t[1]/100,o=t[2]/100;return
n=(2-a)*o,e=a*o,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return
o(h(t))},hsv2cmyk:function(t){return
l(h(t))},hsv2keyword:function(t){return
s(h(t))},hwb2rgb:f,hwb2hsl:function(t){return
i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return
l(f(t))},hwb2keyword:function(t){return
s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return
i(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return
o(p(t))},cmyk2keyword:function(t){return
s(p(t))},keyword2rgb:M,keyword2hsl:function(t){return
i(M(t))},keyword2hsv:function(t){return
a(M(t))},keyword2hwb:function(t){return
o(M(t))},keyword2cmyk:function(t){return
l(M(t))},keyword2lab:function(t){return
d(M(t))},keyword2xyz:function(t){return
u(M(t))},xyz2rgb:v,xyz2lab:m,xyz2lch:function(t){return
y(m(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:w,lch2xyz:function(t){return
x(w(t))},lch2rgb:function(t){return k(w(t))}};var
S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var
_ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,n){var
i=t(4),a=function(){return new u};for(var o in
i){a[o+"Raw"]=function(t){return
function(e){return"number"==typeof
e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var
r=/(\w+)2(\w+)/.exec(o),l=r[1],s=r[2];(a[l]=a[l]||{})[s]=a[o]=function(t){return
function(e){"number"==typeof
e&&(e=Array.prototype.slice.call(arguments));var
n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var
a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(o)}var
u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var
n=e[0];return void 0===n?this.getValues(t):("number"==typeof
n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},u.prototype.setValues=function(t,e){return
this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var
e=this.convs[t];if(!e){var
n=this.space,i=this.convs[n];e=a[n][t](i),this.convs[t]=e}return
e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){u.prototype[t]=function(e){return
this.routeSpace(t,arguments)}}),e.exports=a},{4:4}],6:[function(t,e,n){"use
strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,n){var
i=t(29)();i.helpers=t(45),t(27)(i),i.defaults=t(25),i.Element=t(26),i.elements=t(40),i.Interaction=t(28),i.platform=t(48),t(31)(i),t(22)(i),t(23)(i),t(24)(i),t(30)(i),t(33)(i),t(32)(i),t(35)(i),t(54)(i),t(52)(i),t(53)(i),t(55)(i),t(56)(i),t(57)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(21)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var
a=[];a.push(t(49)(i),t(50)(i),t(51)(i)),i.plugins.register(a),i.platform.initialize(),e.exports=i,"undefined"!=typeof
window&&(window.Chart=i),i.canvasHelpers=i.helpers.canvas},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,35:35,40:40,45:45,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,8:8,9:9}],8:[function(t,e,n){"use
strict";e.exports=function(t){t.Bar=function(e,n){return
n.type="bar",new t(e,n)}}},{}],9:[function(t,e,n){"use
strict";e.exports=function(t){t.Bubble=function(e,n){return
n.type="bubble",new t(e,n)}}},{}],10:[function(t,e,n){"use
strict";e.exports=function(t){t.Doughnut=function(e,n){return
n.type="doughnut",new t(e,n)}}},{}],11:[function(t,e,n){"use
strict";e.exports=function(t){t.Line=function(e,n){return
n.type="line",new t(e,n)}}},{}],12:[function(t,e,n){"use
strict";e.exports=function(t){t.PolarArea=function(e,n){return
n.type="polarArea",new
t(e,n)}}},{}],13:[function(t,e,n){"use
strict";e.exports=function(t){t.Radar=function(e,n){return
n.type="radar",new t(e,n)}}},{}],14:[function(t,e,n){"use
strict";e.exports=function(t){t.Scatter=function(e,n){return
n.type="scatter",new t(e,n)}}},{}],15:[function(t,e,n){"use
strict";var
i=t(25),a=t(40),o=t(45);i._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),i._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var
n="";return
t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(n=e.labels[t[0].index])),n},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+":
"+t.xLabel}},mode:"index",axis:"y"}}),e.exports=function(t){t.controllers.bar=t.DatasetController.extend({dataElementType:a.Rectangle,initialize:function(){var
e,n=this;t.DatasetController.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0},update:function(t){var
e,n,i=this,a=i.getMeta().data;for(i._ruler=i.getRuler(),e=0,n=a.length;e<n;++e)i.updateElement(a[e],e,t)},updateElement:function(t,e,n){var
i=this,a=i.chart,r=i.getMeta(),l=i.getDataset(),s=t.custom||{},u=a.options.elements.rectangle;t._xScale=i.getScaleForId(r.xAxisID),t._yScale=i.getScaleForId(r.yAxisID),t._datasetIndex=i.index,t._index=e,t._model={datasetLabel:l.label,label:a.data.labels[e],borderSkipped:s.borderSkipped?s.borderSkipped:u.borderSkipped,backgroundColor:s.backgroundColor?s.backgroundColor:o.valueAtIndexOrDefault(l.backgroundColor,e,u.backgroundColor),borderColor:s.borderColor?s.borderColor:o.valueAtIndexOrDefault(l.borderColor,e,u.borderColor),borderWidth:s.borderWidth?s.borderWidth:o.valueAtIndexOrDefault(l.borderWidth,e,u.borderWidth)},i.updateElementGeometry(t,e,n),t.pivot()},updateElementGeometry:function(t,e,n){var
i=this,a=t._model,o=i.getValueScale(),r=o.getBasePixel(),l=o.isHorizontal(),s=i._ruler||i.getRuler(),u=i.calculateBarValuePixels(i.index,e),d=i.calculateBarIndexPixels(i.index,e,s);a.horizontal=l,a.base=n?r:u.base,a.x=l?n?r:u.head:d.center,a.y=l?d.center:n?r:u.head,a.height=l?d.size:void
0,a.width=l?void 0:d.size},getValueScaleId:function(){return
this.getMeta().yAxisID},getIndexScaleId:function(){return
this.getMeta().xAxisID},getValueScale:function(){return
this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return
this.getScaleForId(this.getIndexScaleId())},getStackCount:function(t){var
e,n,i=this,a=i.chart,o=i.getIndexScale().options.stacked,r=void
0===t?a.data.datasets.length:t+1,l=[];for(e=0;e<r;++e)(n=a.getDatasetMeta(e)).bar&&a.isDatasetVisible(e)&&(!1===o||!0===o&&-1===l.indexOf(n.stack)||void
0===o&&(void
0===n.stack||-1===l.indexOf(n.stack)))&&l.push(n.stack);return
l.length},getStackIndex:function(t){return
this.getStackCount(t)-1},getRuler:function(){var
t,e,n=this,i=n.getIndexScale(),a=n.getStackCount(),o=n.index,r=[],l=i.isHorizontal(),s=l?i.left:i.top,u=s+(l?i.width:i.height);for(t=0,e=n.getMeta().data.length;t<e;++t)r.push(i.getPixelForValue(null,t,o));return{pixels:r,start:s,end:u,stackCount:a,scale:i}},calculateBarValuePixels:function(t,e){var
n,i,a,o,r,l,s=this,u=s.chart,d=s.getMeta(),c=s.getValueScale(),h=u.data.datasets,f=c.getRightValue(h[t].data[e]),g=c.options.stacked,p=d.stack,v=0;if(g||void
0===g&&void
0!==p)for(n=0;n<t;++n)(i=u.getDatasetMeta(n)).bar&&i.stack===p&&i.controller.getValueScaleId()===c.id&&u.isDatasetVisible(n)&&(a=c.getRightValue(h[n].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return
o=c.getPixelForValue(v),r=c.getPixelForValue(v+f),l=(r-o)/2,{size:l,base:o,head:r,center:r+l/2}},calculateBarIndexPixels:function(t,e,n){var
i,a,r,l,s,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],p=f.length,v=n.start,m=n.end;return
1===p?(i=g>v?g-v:m-g,a=g<m?m-g:g-v):(e>0&&(i=(g-f[e-1])/2,e===p-1&&(a=i)),e<p-1&&(a=(f[e+1]-g)/2,0===e&&(i=a))),r=i*c.categoryPercentage,l=a*c.categoryPercentage,s=(r+l)/n.stackCount,u=s*c.barPercentage,u=Math.min(o.valueOrDefault(c.barThickness,u),o.valueOrDefault(c.maxBarThickness,1/0)),g-=r,g+=s*h,g+=(s-u)/2,{size:u,base:g,head:g+u,center:g+u/2}},draw:function(){var
t=this,e=t.chart,n=t.getValueScale(),i=t.getMeta().data,a=t.getDataset(),r=i.length,l=0;for(o.canvas.clipArea(e.ctx,e.chartArea);l<r;++l)isNaN(n.getRightValue(a.data[l]))||i[l].draw();o.canvas.unclipArea(e.ctx)},setHoverStyle:function(t){var
e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.hoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.hoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.hoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var
e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model,r=this.chart.options.elements.rectangle;a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.backgroundColor,n,r.backgroundColor),a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.borderColor,n,r.borderColor),a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.borderWidth,n,r.borderWidth)}}),t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return
this.getMeta().xAxisID},getIndexScaleId:function(){return
this.getMeta().yAxisID}})}},{25:25,40:40,45:45}],16:[function(t,e,n){"use
strict";var
i=t(25),a=t(40),o=t(45);i._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var
n=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return
n+": ("+t.xLabel+", "+t.yLabel+",
"+i.r+")"}}}}),e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point,update:function(t){var
e=this,n=e.getMeta().data;o.each(n,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var
i=this,a=i.getMeta(),o=t.custom||{},r=i.getScaleForId(a.xAxisID),l=i.getScaleForId(a.yAxisID),s=i._resolveElementOptions(t,e),u=i.getDataset().data[e],d=i.index,c=n?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof
u?u:NaN,e,d),h=n?l.getBasePixel():l.getPixelForValue(u,e,d);t._xScale=r,t._yScale=l,t._options=s,t._datasetIndex=d,t._index=e,t._model={backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,hitRadius:s.hitRadius,pointStyle:s.pointStyle,radius:n?0:s.radius,skip:o.skip||isNaN(c)||isNaN(h),x:c,y:h},t.pivot()},setHoverStyle:function(t){var
e=t._model,n=t._options;e.backgroundColor=o.valueOrDefault(n.hoverBackgroundColor,o.getHoverColor(n.backgroundColor)),e.borderColor=o.valueOrDefault(n.hoverBorderColor,o.getHoverColor(n.borderColor)),e.borderWidth=o.valueOrDefault(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},removeHoverStyle:function(t){var
e=t._model,n=t._options;e.backgroundColor=n.backgroundColor,e.borderColor=n.borderColor,e.borderWidth=n.borderWidth,e.radius=n.radius},_resolveElementOptions:function(t,e){var
n,i,a,r=this,l=r.chart,s=l.data.datasets[r.index],u=t.custom||{},d=l.options.elements.point,c=o.options.resolve,h=s.data[e],f={},g={chart:l,dataIndex:e,dataset:s,datasetIndex:r.index},p=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(n=0,i=p.length;n<i;++n)f[a=p[n]]=c([u[a],s[a],d[a]],g,e);return
f.radius=c([u.radius,h?h.r:void
0,s.radius,d.radius],g,e),f}})}},{25:25,40:40,45:45}],17:[function(t,e,n){"use
strict";var
i=t(25),a=t(40),o=t(45);i._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var
e=[];e.push('<ul
class="'+t.id+'-legend">');var
n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var
o=0;o<i[0].data.length;++o)e.push('<li><span
style="background-color:'+i[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return
e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var
e=t.data;return
e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var
a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i],s=l&&l.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:u(r.backgroundColor,i,d.backgroundColor),strokeStyle:s.borderColor?s.borderColor:u(r.borderColor,i,d.borderColor),lineWidth:s.borderWidth?s.borderWidth:u(r.borderWidth,i,d.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var
n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)(a=r.getDatasetMeta(n)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var
n=e.labels[t.index],i=":
"+e.datasets[t.datasetIndex].data[t.index];return
o.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}}),i._set("pie",o.clone(i.doughnut)),i._set("pie",{cutoutPercentage:0}),e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,getRingIndex:function(t){for(var
e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return
e},update:function(t){var
e=this,n=e.chart,i=n.chartArea,a=n.options,r=a.elements.arc,l=i.right-i.left-r.borderWidth,s=i.bottom-i.top-r.borderWidth,u=Math.min(l,s),d={x:0,y:0},c=e.getMeta(),h=a.cutoutPercentage,f=a.circumference;if(f<2*Math.PI){var
g=a.rotation%(2*Math.PI),p=(g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0))+f,v={x:Math.cos(g),y:Math.sin(g)},m={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,w=h/100,M={x:y?-1:Math.min(v.x*(v.x<0?1:w),m.x*(m.x<0?1:w)),y:k?-1:Math.min(v.y*(v.y<0?1:w),m.y*(m.y<0?1:w))},S={x:b?1:Math.max(v.x*(v.x>0?1:w),m.x*(m.x>0?1:w)),y:x?1:Math.max(v.y*(v.y>0?1:w),m.y*(m.y>0?1:w))},C={width:.5*(S.x-M.x),height:.5*(S.y-M.y)};u=Math.min(l/C.width,s/C.height),d={x:-.5*(S.x+M.x),y:-.5*(S.y+M.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),o.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var
i=this,a=i.chart,r=a.chartArea,l=a.options,s=l.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=i.getDataset(),g=n&&s.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(l.circumference/(2*Math.PI)),p=n&&s.animateScale?0:i.innerRadius,v=n&&s.animateScale?0:i.outerRadius,m=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:v,innerRadius:p,label:m(f.label,e,a.data.labels[e])}});var
b=t._model;this.removeHoverStyle(t),n&&s.animateRotate||(b.startAngle=0===e?l.rotation:i.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var
t,e=this.getDataset(),n=this.getMeta(),i=0;return
o.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var
e=this.getMeta().total;return
e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var
e,n,i=0,a=this.index,o=t.length,r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0,i=(n=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0)>(i=e>i?e:i)?n:i;return
i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var
i=t(25),a=t(40),o=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function
e(t,e){return
o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var
n,i,a,r=this,l=r.getMeta(),s=l.dataset,u=l.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=s.custom||{},void
0!==f.tension&&void
0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=u,s._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void
0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},s.pivot()),n=0,i=u.length;n<i;++n)r.updateElement(u[n],n,t);for(g&&0!==s._model.tension&&r.updateBezierControlPoints(),n=0,i=u.length;n<i;++n)u[n].pivot()},getPointBackgroundColor:function(t,e){var
n=this.chart.options.elements.point.backgroundColor,i=this.getDataset(),a=t.custom||{};return
a.backgroundColor?n=a.backgroundColor:i.pointBackgroundColor?n=o.valueAtIndexOrDefault(i.pointBackgroundColor,e,n):i.backgroundColor&&(n=i.backgroundColor),n},getPointBorderColor:function(t,e){var
n=this.chart.options.elements.point.borderColor,i=this.getDataset(),a=t.custom||{};return
a.borderColor?n=a.borderColor:i.pointBorderColor?n=o.valueAtIndexOrDefault(i.pointBorderColor,e,n):i.borderColor&&(n=i.borderColor),n},getPointBorderWidth:function(t,e){var
n=this.chart.options.elements.point.borderWidth,i=this.getDataset(),a=t.custom||{};return
isNaN(a.borderWidth)?!isNaN(i.pointBorderWidth)||o.isArray(i.pointBorderWidth)?n=o.valueAtIndexOrDefault(i.pointBorderWidth,e,n):isNaN(i.borderWidth)||(n=i.borderWidth):n=a.borderWidth,n},updateElement:function(t,e,n){var
i,a,r=this,l=r.getMeta(),s=t.custom||{},u=r.getDataset(),d=r.index,c=u.data[e],h=r.getScaleForId(l.yAxisID),f=r.getScaleForId(l.xAxisID),g=r.chart.options.elements.point;void
0!==u.radius&&void
0===u.pointRadius&&(u.pointRadius=u.radius),void
0!==u.hitRadius&&void
0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius),i=f.getPixelForValue("object"==typeof
c?c:NaN,e,d),a=n?h.getBasePixel():r.calculatePointY(c,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:i,y:a,skip:s.skip||isNaN(i)||isNaN(a),radius:s.radius||o.valueAtIndexOrDefault(u.pointRadius,e,g.radius),pointStyle:s.pointStyle||o.valueAtIndexOrDefault(u.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:l.dataset._model?l.dataset._model.tension:0,steppedLine:!!l.dataset._model&&l.dataset._model.steppedLine,hitRadius:s.hitRadius||o.valueAtIndexOrDefault(u.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,n){var
i,a,o,r=this,l=r.chart,s=r.getMeta(),u=r.getScaleForId(s.yAxisID),d=0,c=0;if(u.options.stacked){for(i=0;i<n;i++)if(a=l.data.datasets[i],"line"===(o=l.getDatasetMeta(i)).type&&o.yAxisID===u.id&&l.isDatasetVisible(i)){var
h=Number(u.getRightValue(a.data[e]));h<0?c+=h||0:d+=h||0}var
f=Number(u.getRightValue(t));return
f<0?u.getPixelForValue(c+f):u.getPixelForValue(d+f)}return
u.getPixelForValue(t)},updateBezierControlPoints:function(){function
t(t,e,n){return Math.max(Math.min(t,n),e)}var
e,n,i,a,r=this,l=r.getMeta(),s=r.chart.chartArea,u=l.data||[];if(l.dataset._model.spanGaps&&(u=u.filter(function(t){return!t._model.skip})),"monotone"===l.dataset._model.cubicInterpolationMode)o.splineCurveMonotone(u);else
for(e=0,n=u.length;e<n;++e)i=u[e]._model,a=o.splineCurve(o.previousItem(u,e)._model,i,o.nextItem(u,e)._model,l.dataset._model.tension),i.controlPointPreviousX=a.previous.x,i.controlPointPreviousY=a.previous.y,i.controlPointNextX=a.next.x,i.controlPointNextY=a.next.y;if(r.chart.options.elements.line.capBezierPoints)for(e=0,n=u.length;e<n;++e)(i=u[e]._model).controlPointPreviousX=t(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=t(i.controlPointPreviousY,s.top,s.bottom),i.controlPointNextX=t(i.controlPointNextX,s.left,s.right),i.controlPointNextY=t(i.controlPointNextY,s.top,s.bottom)},draw:function(){var
t=this,n=t.chart,i=t.getMeta(),a=i.data||[],r=n.chartArea,l=a.length,s=0;for(o.canvas.clipArea(n.ctx,r),e(t.getDataset(),n.options)&&i.dataset.draw(),o.canvas.unclipArea(n.ctx);s<l;++s)a[s].draw(r)},setHoverStyle:function(t){var
e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;a.radius=i.hoverRadius||o.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor||o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor||o.valueAtIndexOrDefault(e.pointHoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth||o.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var
e=this,n=e.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},r=t._model;void
0!==n.radius&&void
0===n.pointRadius&&(n.pointRadius=n.radius),r.radius=a.radius||o.valueAtIndexOrDefault(n.pointRadius,i,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,i),r.borderColor=e.getPointBorderColor(t,i),r.borderWidth=e.getPointBorderWidth(t,i)}})}},{25:25,40:40,45:45}],19:[function(t,e,n){"use
strict";var
i=t(25),a=t(40),o=t(45);i._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var
e=[];e.push('<ul
class="'+t.id+'-legend">');var
n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var
o=0;o<i[0].data.length;++o)e.push('<li><span
style="background-color:'+i[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return
e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var
e=t.data;return
e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var
a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i].custom||{},s=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:s(r.backgroundColor,i,u.backgroundColor),strokeStyle:l.borderColor?l.borderColor:s(r.borderColor,i,u.borderColor),lineWidth:l.borderWidth?l.borderWidth:s(r.borderWidth,i,u.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var
n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)(a=r.getDatasetMeta(n)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return
e.labels[t.index]+":
"+t.yLabel}}}}),e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,update:function(t){var
e=this,n=e.chart,i=n.chartArea,a=e.getMeta(),r=n.options,l=r.elements.arc,s=Math.min(i.right-i.left,i.bottom-i.top);n.outerRadius=Math.max((s-l.borderWidth/2)/2,0),n.innerRadius=Math.max(r.cutoutPercentage?n.outerRadius/100*r.cutoutPercentage:1,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),e.outerRadius=n.outerRadius-n.radiusLength*e.index,e.innerRadius=e.outerRadius-n.radiusLength,a.count=e.countVisibleElements(),o.each(a.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){for(var
i=this,a=i.chart,r=i.getDataset(),l=a.options,s=l.animation,u=a.scale,d=a.data.labels,c=i.calculateCircumference(r.data[e]),h=u.xCenter,f=u.yCenter,g=0,p=i.getMeta(),v=0;v<e;++v)isNaN(r.data[v])||p.data[v].hidden||++g;var
m=l.startAngle,b=t.hidden?0:u.getDistanceFromCenterForValue(r.data[e]),x=m+c*g,y=x+(t.hidden?0:c),k=s.animateScale?0:u.getDistanceFromCenterForValue(r.data[e]);o.extend(t,{_datasetIndex:i.index,_index:e,_scale:u,_model:{x:h,y:f,innerRadius:0,outerRadius:n?k:b,startAngle:n&&s.animateRotate?m:x,endAngle:n&&s.animateRotate?m:y,label:o.valueAtIndexOrDefault(d,e,d[e])}}),i.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var
t=this.getDataset(),e=this.getMeta(),n=0;return
o.each(e.data,function(e,i){isNaN(t.data[i])||e.hidden||n++}),n},calculateCircumference:function(t){var
e=this.getMeta().count;return
e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use
strict";var
i=t(25),a=t(40),o=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var
e=this,n=e.getMeta(),i=n.dataset,a=n.data,r=i.custom||{},l=e.getDataset(),s=e.chart.options.elements.line,u=e.chart.scale;void
0!==l.tension&&void
0===l.lineTension&&(l.lineTension=l.tension),o.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void
0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle}}),n.dataset.pivot(),o.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var
i=this,a=t.custom||{},r=i.getDataset(),l=i.chart.scale,s=i.chart.options.elements.point,u=l.getPointPositionForValue(e,r.data[e]);void
0!==r.radius&&void
0===r.pointRadius&&(r.pointRadius=r.radius),void
0!==r.hitRadius&&void
0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:i.index,_index:e,_scale:l,_model:{x:n?l.xCenter:u.x,y:n?l.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,s.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var
t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(n,i){var
a=n._model,r=o.splineCurve(o.previousItem(e.data,i,!0)._model,a,o.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var
e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var
e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=n.radius?n.radius:o.valueAtIndexOrDefault(e.pointRadius,i,r.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,i,r.backgroundColor),a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,i,r.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,i,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use
strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+",
"+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var
a,o,r=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return
void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var
e=o.findIndex(this.animations,function(e){return
e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var
t=this;null===t.request&&(t.request=o.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var
t=this,e=Date.now(),n=0;t.dropFrames>1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var
i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var
e,n,i=this.animations,a=0;a<i.length;)n=(e=i[a]).chart,e.currentStep=(e.currentStep||0)+t,e.currentStep=Math.min(e.currentStep,e.numSteps),o.callback(e.render,[n,e],n),o.callback(e.onAnimationProgress,[e],n),e.currentStep>=e.numSteps?(o.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return
this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return
this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use
strict";var
i=t(25),a=t(45),o=t(28),r=t(48);e.exports=function(t){function e(t){var
e=(t=t||{}).data=t.data||{};return
e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function
n(t){var
e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function
l(t){return"top"===t||"bottom"===t}var
s=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var
o=this;i=e(i);var
l=r.acquireContext(n,i),s=l&&l.canvas,u=s&&s.height,d=s&&s.width;o.id=a.uid(),o.ctx=l,o.canvas=s,o.config=i,o.width=d,o.height=u,o.aspectRatio=u?d/u:null,o.options=i.options,o._bufferedRender=!1,o.chart=o,o.controller=o,t.instances[o.id]=o,Object.defineProperty(o,"data",{get:function(){return
o.config.data},set:function(t){o.config.data=t}}),l&&s?(o.initialize(),o.update()):console.error("Failed
to create chart: can't acquire context from the given
item")},initialize:function(){var t=this;return
s.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),s.notify(t,"afterInit"),t},clear:function(){return
a.canvas.clear(this),this},stop:function(){return
t.animationService.cancelAnimation(this),this},resize:function(t){var
e=this,n=e.options,i=e.canvas,o=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(i))),l=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(i)));if((e.width!==r||e.height!==l)&&(i.width=e.width=r,i.height=e.height=l,i.style.width=r+"px",i.style.height=l+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var
u={width:r,height:l};s.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var
t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var
e=this,n=e.options,i=e.scales={},o=[];n.scales&&(o=o.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&o.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(o,function(n){var
o=n.options,r=a.valueOrDefault(o.type,n.dtype),s=t.scaleService.getScaleConstructor(r);if(s){l(o.position)!==l(n.dposition)&&(o.position=n.dposition);var
u=new
s({id:o.id,options:o,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var
e=this,n=[],i=[];return a.each(e.data.datasets,function(a,o){var
r=e.getDatasetMeta(o),l=a.type||e.config.type;if(r.type&&r.type!==l&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=l,n.push(r.type),r.controller)r.controller.updateIndex(o);else{var
s=t.controllers[r.type];if(void 0===s)throw new
Error('"'+r.type+'" is not a chart
type.');r.controller=new
s(e,o),i.push(r.controller)}},e),i},resetElements:function(){var
t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var
e=this;if(t&&"object"==typeof
t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==s.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var
i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),s.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var
e=this;!1!==s.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),s.notify(e,"afterScaleUpdate"),s.notify(e,"afterLayout"))},updateDatasets:function(){var
t=this;if(!1!==s.notify(t,"beforeDatasetsUpdate")){for(var
e=0,n=t.data.datasets.length;e<n;++e)t.updateDataset(e);s.notify(t,"afterDatasetsUpdate")}},updateDataset:function(t){var
e=this,n=e.getDatasetMeta(t),i={meta:n,index:t};!1!==s.notify(e,"beforeDatasetUpdate",[i])&&(n.controller.update(),s.notify(e,"afterDatasetUpdate",[i]))},render:function(e){var
n=this;e&&"object"==typeof
e||(e={duration:e,lazy:arguments[1]});var
i=e.duration,o=e.lazy;if(!1!==s.notify(n,"beforeRender")){var
r=n.options.animation,l=function(t){s.notify(n,"afterRender"),a.callback(r&&r.onComplete,[t],n)};if(r&&(void
0!==i&&0!==i||void 0===i&&0!==r.duration)){var u=new
t.Animation({numSteps:(i||r.duration)/16.66,easing:e.easing||r.easing,render:function(t,e){var
n=a.easing.effects[e.easing],i=e.currentStep,o=i/e.numSteps;t.draw(n(o),o,i)},onAnimationProgress:r.onProgress,onAnimationComplete:l});t.animationService.addAnimation(n,u,i,o)}else
n.draw(),l(new t.Animation({numSteps:0,chart:n}));return
n}},draw:function(t){var
e=this;e.clear(),a.isNullOrUndef(t)&&(t=1),e.transition(t),!1!==s.notify(e,"beforeDraw",[t])&&(a.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e.tooltip.draw(),s.notify(e,"afterDraw",[t]))},transition:function(t){for(var
e=this,n=0,i=(e.data.datasets||[]).length;n<i;++n)e.isDatasetVisible(n)&&e.getDatasetMeta(n).controller.transition(t);e.tooltip.transition(t)},drawDatasets:function(t){var
e=this;if(!1!==s.notify(e,"beforeDatasetsDraw",[t])){for(var
n=(e.data.datasets||[]).length-1;n>=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);s.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var
n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==s.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),s.notify(n,"afterDatasetDraw",[a]))},getElementAtEvent:function(t){return
o.modes.single(this,t)},getElementsAtEvent:function(t){return
o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return
o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var
i=o.modes[e];return"function"==typeof
i?i(this,t,n):[]},getDatasetAtEvent:function(t){return
o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var
e=this,n=e.data.datasets[t];n._meta||(n._meta={});var
i=n._meta[e.id];return
i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var
t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return
t},isDatasetVisible:function(t){var
e=this.getDatasetMeta(t);return"boolean"==typeof
e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return
this.options.legendCallback(this)},destroyDatasetMeta:function(t){var
e=this.id,n=this.data.datasets[t],i=n._meta&&n._meta[e];i&&(i.controller.destroy(),delete
n._meta[e])},destroy:function(){var
e,n,i=this,o=i.canvas;for(i.stop(),e=0,n=i.data.datasets.length;e<n;++e)i.destroyDatasetMeta(e);o&&(i.unbindEvents(),a.canvas.clear(i),r.releaseContext(i.ctx),i.canvas=null,i.ctx=null),s.notify(i,"destroy"),delete
t.instances[i.id]},toBase64Image:function(){return
this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var
e=this;e.tooltip=new
t.Tooltip({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var
t=this,e=t._listeners={},n=function(){t.eventHandler.apply(t,arguments)};a.each(t.options.events,function(i){r.addEventListener(t,i,n),e[i]=n}),t.options.responsive&&(n=function(){t.resize()},r.addEventListener(t,"resize",n),e.resize=n)},unbindEvents:function(){var
t=this,e=t._listeners;e&&(delete
t._listeners,a.each(e,function(e,n){r.removeEventListener(t,n,e)}))},updateHoverStyle:function(t,e,n){var
i,a,o,r=n?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(i=t[a])&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var
e=this,n=e.tooltip;if(!1!==s.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var
i=e.handleEvent(t);i|=n&&n.handleEvent(t),s.notify(e,"afterEvent",[t]);var
a=e._bufferedRequest;return
a?e.render(a):i&&!e.animating&&(e.stop(),e.render(e.options.hover.animationDuration,!0)),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var
e=this,n=e.options||{},i=n.hover,o=!1;return
e.lastActive=e.lastActive||[],"mouseout"===t.type?e.active=[]:e.active=e.getElementsAtEventForMode(t,i.mode,i),a.callback(n.onHover||n.hover.onHover,[t.native,e.active],e),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(e,t.native,e.active),e.lastActive.length&&e.updateHoverStyle(e.lastActive,i.mode,!1),e.active.length&&i.mode&&e.updateHoverStyle(e.active,i.mode,!0),o=!a.arrayEquals(e.active,e.lastActive),e.lastActive=e.active,o}}),t.Controller=t}},{25:25,28:28,45:45,48:48}],24:[function(t,e,n){"use
strict";var i=t(45);e.exports=function(t){function
e(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),a.forEach(function(e){var
n="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var
e=Array.prototype.slice.call(arguments),o=a.apply(this,e);return
i.each(t._chartjs.listeners,function(t){"function"==typeof
t[n]&&t[n].apply(t,e)}),o}})}))}function n(t,e){var
n=t._chartjs;if(n){var
i=n.listeners,o=i.indexOf(e);-1!==o&&i.splice(o,1),i.length>0||(a.forEach(function(e){delete
t[e]}),delete t._chartjs)}}var
a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var
n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var
t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return
this.chart.data.datasets[this.index]},getMeta:function(){return
this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return
this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var
t=this,e=t.datasetElementType;return e&&new
e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var
e=this,n=e.dataElementType;return n&&new
n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var
t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;t<e;++t)o[t]=o[t]||n.createMetaData(t);i.dataset=i.dataset||n.createMetaDataset()},addElementAndReset:function(t){var
e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var
t=this,i=t.getDataset(),a=i.data||(i.data=[]);t._data!==a&&(t._data&&n(t._data,t),e(a,t),t._data=a),t.resyncElements()},update:i.noop,transition:function(t){for(var
e=this.getMeta(),n=e.data||[],i=n.length,a=0;a<i;++a)n[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var
t=this.getMeta(),e=t.data||[],n=e.length,i=0;for(t.dataset&&t.dataset.draw();i<n;++i)e[i].draw()},removeHoverStyle:function(t,e){var
n=this.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=i.valueAtIndexOrDefault,l=t._model;l.backgroundColor=o.backgroundColor?o.backgroundColor:r(n.backgroundColor,a,e.backgroundColor),l.borderColor=o.borderColor?o.borderColor:r(n.borderColor,a,e.borderColor),l.borderWidth=o.borderWidth?o.borderWidth:r(n.borderWidth,a,e.borderWidth)},setHoverStyle:function(t){var
e=this.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},o=i.valueAtIndexOrDefault,r=i.getHoverColor,l=t._model;l.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(e.hoverBackgroundColor,n,r(l.backgroundColor)),l.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(e.hoverBorderColor,n,r(l.borderColor)),l.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(e.hoverBorderWidth,n,l.borderWidth)},resyncElements:function(){var
t=this,e=t.getMeta(),n=t.getDataset().data,i=e.data.length,a=n.length;a<i?e.data.splice(a,i-a):a>i&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var
n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=i.inherits}},{45:45}],25:[function(t,e,n){"use
strict";var i=t(45);e.exports={_set:function(t,e){return
i.merge(this[t]||(this[t]={}),e)}}},{45:45}],26:[function(t,e,n){"use
strict";function i(t,e,n,i){var
o,r,l,s,u,d,c,h,f,g=Object.keys(n);for(o=0,r=g.length;o<r;++o)if(l=g[o],d=n[l],e.hasOwnProperty(l)||(e[l]=d),(s=e[l])!==d&&"_"!==l[0]){if(t.hasOwnProperty(l)||(t[l]=s),u=t[l],(c=typeof
d)===typeof
u)if("string"===c){if((h=a(u)).valid&&(f=a(d)).valid){e[l]=f.mix(h,i).rgbString();continue}}else
if("number"===c&&isFinite(u)&&isFinite(d)){e[l]=u+(d-u)*i;continue}e[l]=d}}var
a=t(3),o=t(45),r=function(t){o.extend(this,t),this.initialize.apply(this,arguments)};o.extend(r.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var
t=this;return
t._view||(t._view=o.clone(t._model)),t._start={},t},transition:function(t){var
e=this,n=e._model,a=e._start,o=e._view;return
n&&1!==t?(o||(o=e._view={}),a||(a=e._start={}),i(a,o,n,t),e):(e._view=n,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return
o.isNumber(this._model.x)&&o.isNumber(this._model.y)}}),r.extend=o.inherits,e.exports=r},{3:3,45:45}],27:[function(t,e,n){"use
strict";var i=t(3),a=t(25),o=t(45);e.exports=function(t){function
e(t,e,n){var i;return"string"==typeof
t?(i=parseInt(t,10),-1!==t.indexOf("%")&&(i=i/100*e.parentNode[n])):i=t,i}function
n(t){return void
0!==t&&null!==t&&"none"!==t}function r(t,i,a){var
o=document.defaultView,r=t.parentNode,l=o.getComputedStyle(t)[i],s=o.getComputedStyle(r)[i],u=n(l),d=n(s),c=Number.POSITIVE_INFINITY;return
u||d?Math.min(u?e(l,t,a):c,d?e(s,r,a):c):"none"}o.extend=function(t){for(var
e=1,n=arguments.length;e<n;e++)o.each(arguments[e],function(e,n){t[n]=e});return
t},o.configMerge=function(){return
o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,n,i,a){var
r=n[e]||{},l=i[e];"scales"===e?n[e]=o.scaleMerge(r,l):"scale"===e?n[e]=o.merge(r,[t.scaleService.getScaleDefaults(l.type),l]):o._merger(e,n,i,a)}})},o.scaleMerge=function(){return
o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,n,i,a){if("xAxes"===e||"yAxes"===e){var
r,l,s,u=i[e].length;for(n[e]||(n[e]=[]),r=0;r<u;++r)s=i[e][r],l=o.valueOrDefault(s.type,"xAxes"===e?"category":"linear"),r>=n[e].length&&n[e].push({}),!n[e][r].type||s.type&&s.type!==n[e][r].type?o.merge(n[e][r],[t.scaleService.getScaleDefaults(l),s]):o.merge(n[e][r],s)}else
o._merger(e,n,i,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return
t.filter(e);var n=[];return
o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return
t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var
i=0,a=t.length;i<a;++i)if(e.call(n,t[i],i,t))return
i;return-1},o.findNextWhere=function(t,e,n){o.isNullOrUndef(n)&&(n=-1);for(var
i=n+1;i<t.length;i++){var a=t[i];if(e(a))return
a}},o.findPreviousWhere=function(t,e,n){o.isNullOrUndef(n)&&(n=t.length);for(var
i=n-1;i>=0;i--){var a=t[i];if(e(a))return a}},o.inherits=function(t){var
e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return
e.apply(this,arguments)},i=function(){this.constructor=n};return
i.prototype=e.prototype,n.prototype=new
i,n.extend=o.inherits,t&&o.extend(n.prototype,t),n.__super__=e.prototype,n},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return
Math.abs(t-e)<n},o.almostWhole=function(t,e){var n=Math.round(t);return
n-e<t&&n+e>t},o.max=function(t){return
t.reduce(function(t,e){return
isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return
t.reduce(function(t,e){return
isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return
Math.sign(t)}:function(t){return
0==(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return
Math.log10(t)}:function(t){return
Math.log(t)/Math.LN10},o.toRadians=function(t){return
t*(Math.PI/180)},o.toDegrees=function(t){return
t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var
n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return
o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return
Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return
t%2==0?0:.5},o.splineCurve=function(t,e,n,i){var
a=t.skip?e:t,o=e,r=n.skip?e:n,l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=l/(l+s),d=s/(l+s),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var
e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;e<l;++e)if(!(i=r[e]).model.skip){if(n=e>0?r[e-1]:null,(a=e<l-1?r[e+1]:null)&&!a.model.skip){var
s=a.model.x-i.model.x;i.deltaK=0!==s?(a.model.y-i.model.y)/s:0}!n||n.model.skip?i.mK=i.deltaK:!a||a.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}var
u,d,c,h;for(e=0;e<l-1;++e)i=r[e],a=r[e+1],i.model.skip||a.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=a.mK=0:(u=i.mK/i.deltaK,d=a.mK/i.deltaK,(h=Math.pow(u,2)+Math.pow(d,2))<=9||(c=3/Math.sqrt(h),i.mK=u*c*i.deltaK,a.mK=d*c*i.deltaK)));var
f;for(e=0;e<l;++e)(i=r[e]).model.skip||(n=e>0?r[e-1]:null,a=e<l-1?r[e+1]:null,n&&!n.model.skip&&(f=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-f,i.model.controlPointPreviousY=i.model.y-f*i.mK),a&&!a.model.skip&&(f=(a.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+f,i.model.controlPointNextY=i.model.y+f*i.mK))},o.nextItem=function(t,e,n){return
n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return
n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var
n=Math.floor(o.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},o.requestAnimFrame="undefined"==typeof
window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return
window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var
n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var
u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-u-c,g=l.bottom-l.top-d-h;return
n=Math.round((n-l.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-d)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.getConstraintWidth=function(t){return
r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return
r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var
e=t.parentNode;if(!e)return t.clientWidth;var
n=parseInt(o.getStyle(e,"padding-left"),10),i=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,r=o.getConstraintWidth(t);return
isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var
e=t.parentNode;if(!e)return t.clientHeight;var
n=parseInt(o.getStyle(e,"padding-top"),10),i=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,r=o.getConstraintHeight(t);return
isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return
t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var
n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var
i=t.canvas,a=t.height,o=t.width;i.height=a*n,i.width=o*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=o+"px"}},o.fontString=function(t,e,n){return
e+" "+t+"px "+n},o.longestText=function(t,e,n,i){var
a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var
l=0;o.each(n,function(e){void
0!==e&&null!==e&&!0!==o.isArray(e)?l=o.measureText(t,a,r,l,e):o.isArray(e)&&o.each(e,function(e){void
0===e||null===e||o.isArray(e)||(l=o.measureText(t,a,r,l,e))})});var
s=r.length/2;if(s>n.length){for(var u=0;u<s;u++)delete
a[r[u]];r.splice(0,s)}return l},o.measureText=function(t,e,n,i,a){var
o=e[a];return
o||(o=e[a]=t.measureText(a).width,n.push(a)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var
e=1;return
o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=i?function(t){return
t instanceof
CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return
console.error("Color.js not
found!"),t},o.getHoverColor=function(t){return t instanceof
CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,n){"use
strict";function i(t,e){return
t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var
n,i,a,o,r;for(i=0,o=t.data.datasets.length;i<o;++i)if(t.isDatasetVisible(i))for(a=0,r=(n=t.getDatasetMeta(i)).data.length;a<r;++a){var
l=n.data[a];l._view.skip||e(l)}}function o(t,e){var n=[];return
a(t,function(t){t.inRange(e.x,e.y)&&n.push(t)}),n}function
r(t,e,n,i){var o=Number.POSITIVE_INFINITY,r=[];return
a(t,function(t){if(!n||t.inRange(e.x,e.y)){var
a=t.getCenterPoint(),l=i(e,a);l<o?(r=[t],o=l):l===o&&r.push(t)}}),r}function
l(t){var
e=-1!==t.indexOf("x"),n=-1!==t.indexOf("y");return
function(t,i){var a=e?Math.abs(t.x-i.x):0,o=n?Math.abs(t.y-i.y):0;return
Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function s(t,e,n){var
a=i(e,t);n.axis=n.axis||"x";var
s=l(n.axis),u=n.intersect?o(t,a):r(t,a,!1,s),d=[];return
u.length?(t.data.datasets.forEach(function(e,n){if(t.isDatasetVisible(n)){var
i=t.getDatasetMeta(n).data[u[0]._index];i&&!i._view.skip&&d.push(i)}}),d):[]}var
u=t(45);e.exports={modes:{single:function(t,e){var n=i(e,t),o=[];return
a(t,function(t){if(t.inRange(n.x,n.y))return
o.push(t),o}),o.slice(0,1)},label:s,index:s,dataset:function(t,e,n){var
a=i(e,t);n.axis=n.axis||"xy";var
s=l(n.axis),u=n.intersect?o(t,a):r(t,a,!1,s);return
u.length>0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return
s(t,e,{intersect:!0})},point:function(t,e){return
o(t,i(e,t))},nearest:function(t,e,n){var
a=i(e,t);n.axis=n.axis||"xy";var
o=l(n.axis),s=r(t,a,n.intersect,o);return
s.length>1&&s.sort(function(t,e){var
n=t.getArea()-e.getArea();return
0===n&&(n=t._datasetIndex-e._datasetIndex),n}),s.slice(0,1)},x:function(t,e,n){var
o=i(e,t),r=[],l=!1;return
a(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r},y:function(t,e,n){var
o=i(e,t),r=[],l=!1;return
a(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r}}}},{45:45}],29:[function(t,e,n){"use
strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica
Neue', 'Helvetica', 'Arial',
sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var
t=function(t,e){return this.construct(t,e),this};return
t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var
i=t(45);e.exports=function(t){function e(t,e){return
i.where(t,function(t){return t.position===e})}function
n(t,e){t.forEach(function(t,e){return
t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return
i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete
t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var
n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var
i,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)i=a[r],n.hasOwnProperty(i)&&(e[i]=n[i])},update:function(t,a,o){function
r(t){var e=i.findNextWhere(_,function(e){return
e.box===t});if(e)if(t.isHorizontal()){var
n={left:Math.max(T,D),right:Math.max(F,I),top:0,bottom:0};t.update(t.fullWidth?x:S,y/2,n)}else
t.update(e.minSize.width,C)}function
l(t){t.isHorizontal()?(t.left=t.fullWidth?d:T,t.right=t.fullWidth?a-c:T+S,t.top=V,t.bottom=V+t.height,V=t.bottom):(t.left=N,t.right=N+t.width,t.top=O,t.bottom=O+C,N=t.right)}if(t){var
s=t.options.layout||{},u=i.options.toPadding(s.padding),d=u.left,c=u.right,h=u.top,f=u.bottom,g=e(t.boxes,"left"),p=e(t.boxes,"right"),v=e(t.boxes,"top"),m=e(t.boxes,"bottom"),b=e(t.boxes,"chartArea");n(g,!0),n(p,!1),n(v,!0),n(m,!1);var
x=a-d-c,y=o-h-f,k=y/2,w=(a-x/2)/(g.length+p.length),M=(o-k)/(v.length+m.length),S=x,C=y,_=[];i.each(g.concat(p,v,m),function(t){var
e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?x:S,M),C-=e.height):(e=t.update(w,k),S-=e.width),_.push({horizontal:n,minSize:e,box:t})});var
D=0,I=0,P=0,A=0;i.each(v.concat(m),function(t){if(t.getPadding){var
e=t.getPadding();D=Math.max(D,e.left),I=Math.max(I,e.right)}}),i.each(g.concat(p),function(t){if(t.getPadding){var
e=t.getPadding();P=Math.max(P,e.top),A=Math.max(A,e.bottom)}});var
T=d,F=c,O=h,R=f;i.each(g.concat(p),r),i.each(g,function(t){T+=t.width}),i.each(p,function(t){F+=t.width}),i.each(v.concat(m),r),i.each(v,function(t){O+=t.height}),i.each(m,function(t){R+=t.height}),i.each(g.concat(p),function(t){var
e=i.findNextWhere(_,function(e){return
e.box===t}),n={left:0,right:0,top:O,bottom:R};e&&t.update(e.minSize.width,C,n)}),T=d,F=c,O=h,R=f,i.each(g,function(t){T+=t.width}),i.each(p,function(t){F+=t.width}),i.each(v,function(t){O+=t.height}),i.each(m,function(t){R+=t.height});var
L=Math.max(D-T,0);T+=L,F+=Math.max(I-F,0);var
z=Math.max(P-O,0);O+=z,R+=Math.max(A-R,0);var
B=o-O-R,W=a-T-F;W===S&&B===C||(i.each(g,function(t){t.height=B}),i.each(p,function(t){t.height=B}),i.each(v,function(t){t.fullWidth||(t.width=W)}),i.each(m,function(t){t.fullWidth||(t.width=W)}),C=B,S=W);var
N=d+L,V=h+z;i.each(g.concat(v),l),N+=S,V+=C,i.each(p,l),i.each(m,l),t.chartArea={left:T,top:O,right:T+S,bottom:O+C},i.each(b,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(S,C)})}}}}},{45:45}],31:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45);i._set("global",{plugins:{}}),e.exports=function(t){t.plugins={_plugins:[],_cacheId:0,register:function(t){var
e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var
e=this._plugins;[].concat(t).forEach(function(t){var
n=e.indexOf(t);-1!==n&&e.splice(n,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return
this._plugins.length},getAll:function(){return
this._plugins},notify:function(t,e,n){var
i,a,o,r,l,s=this.descriptors(t),u=s.length;for(i=0;i<u;++i)if(a=s[i],o=a.plugin,"function"==typeof(l=o[e])&&((r=[t].concat(n||[])).push(a.options),!1===l.apply(o,r)))return!1;return!0},descriptors:function(t){var
e=t._plugins||(t._plugins={});if(e.id===this._cacheId)return
e.descriptors;var
n=[],a=[],r=t&&t.config||{},l=r.options&&r.options.plugins||{};return
this._plugins.concat(r.plugins||[]).forEach(function(t){if(-1===n.indexOf(t)){var
e=t.id,r=l[e];!1!==r&&(!0===r&&(r=o.clone(i.global.plugins[e])),n.push(t),a.push({plugin:t,options:r||{}}))}}),e.descriptors=a,e.id=this._cacheId,a}},t.pluginService=t.plugins,t.PluginBase=a.extend({})}},{25:25,26:26,45:45}],32:[function(t,e,n){"use
strict";function i(t){var
e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(t[e].label);return i}function
a(t,e,n){var i=t.getPixelForTick(e);return
n&&(i-=0===e?(t.getPixelForTick(1)-i)/2:(i-t.getPixelForTick(e-1))/2),i}var
o=t(25),r=t(26),l=t(45),s=t(34);o._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0,
0, 0,
0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",lineHeight:1.2,padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:s.formatters.values,minor:{},major:{}}}),e.exports=function(t){function
e(t,e,n){return
l.isArray(e)?l.longestText(t,n,e):t.measureText(e).width}function n(t){var
e=l.valueOrDefault,n=o.global,i=e(t.fontSize,n.defaultFontSize),a=e(t.fontStyle,n.defaultFontStyle),r=e(t.fontFamily,n.defaultFontFamily);return{size:i,style:a,family:r,font:l.fontString(i,a,r)}}function
s(t){return
l.options.toLineHeight(l.valueOrDefault(t.lineHeight,1.2),l.valueOrDefault(t.fontSize,o.global.defaultFontSize))}t.Scale=r.extend({getPadding:function(){var
t=this;return{left:t.paddingLeft||0,top:t.paddingTop||0,right:t.paddingRight||0,bottom:t.paddingBottom||0}},getTicks:function(){return
this._ticks},mergeTicksOptions:function(){var
t=this.options.ticks;!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1});for(var
e in t)"major"!==e&&"minor"!==e&&(void
0===t.minor[e]&&(t.minor[e]=t[e]),void
0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){l.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var
i,a,o,r,s,u,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=l.extend({left:0,right:0,top:0,bottom:0},n),d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],d.afterBuildTicks(),d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,i=0,a=o.length;i<a;++i)r=o[i],(u=s[i])?u.label=r:s.push(u={label:r,major:!1});return
d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){l.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){l.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var
t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){l.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){l.callback(this.options.beforeDataLimits,[this])},determineDataLimits:l.noop,afterDataLimits:function(){l.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){l.callback(this.options.beforeBuildTicks,[this])},buildTicks:l.noop,afterBuildTicks:function(){l.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){l.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var
t=this,e=t.options.ticks;t.ticks=t.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){l.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){l.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var
t=this,e=t.ctx,a=t.options.ticks,o=i(t._ticks),r=n(a);e.font=r.font;var
s=a.minRotation||0;if(o.length&&t.options.display&&t.isHorizontal())for(var
u,d=l.longestText(e,r.font,o,t.longestTextCache),c=d,h=t.getPixelForTick(1)-t.getPixelForTick(0)-6;c>h&&s<a.maxRotation;){var
f=l.toRadians(s);if(u=Math.cos(f),Math.sin(f)*d>t.maxHeight){s--;break}s++,c=u*d}t.labelRotation=s},afterCalculateTickRotation:function(){l.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){l.callback(this.options.beforeFit,[this])},fit:function(){var
t=this,a=t.minSize={width:0,height:0},o=i(t._ticks),r=t.options,u=r.ticks,d=r.scaleLabel,c=r.gridLines,h=r.display,f=t.isHorizontal(),g=n(u),p=r.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,a.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var
v=s(d)+l.options.toPadding(d.padding).height;f?a.height+=v:a.width+=v}if(u.display&&h){var
m=l.longestText(t.ctx,g.font,o,t.longestTextCache),b=l.numberOfLabelLines(o),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=m;var
k=l.toRadians(t.labelRotation),w=Math.cos(k),M=Math.sin(k)*m+g.size*b+x*(b-1)+x;a.height=Math.min(t.maxHeight,a.height+M+y),t.ctx.font=g.font;var
S=e(t.ctx,o[0],g.font),C=e(t.ctx,o[o.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===r.position?w*S+3:w*x+3,t.paddingRight="bottom"===r.position?w*x+3:w*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else
u.mirror?m=0:m+=y+x,a.width=Math.min(t.maxWidth,a.width+m),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var
t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){l.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return
this.options.fullWidth},getRightValue:function(t){if(l.isNullOrUndef(t))return
NaN;if("number"==typeof t&&!isFinite(t))return
NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return
this.getRightValue(t.x)}else if(void 0!==t.y)return
this.getRightValue(t.y);return
t},getLabelForIndex:l.noop,getPixelForValue:l.noop,getValueForPixel:l.noop,getPixelForTick:function(t){var
e=this,n=e.options.offset;if(e.isHorizontal()){var
i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var
o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var
r=e.height-(e.paddingTop+e.paddingBottom);return
e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var
e=this;if(e.isHorizontal()){var
n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return
i+=e.isFullWidth()?e.margins.left:0}return
e.top+t*e.height},getBasePixel:function(){return
this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var
t=this,e=t.min,n=t.max;return
t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var
e,n,i,a,o=this,r=o.isHorizontal(),s=o.options.ticks.minor,u=t.length,d=l.toRadians(o.labelRotation),c=Math.cos(d),h=o.longestLabelWidth*c,f=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),r&&(e=!1,(h+s.autoSkipPadding)*u>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((h+s.autoSkipPadding)*u/(o.width-(o.paddingLeft+o.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n<u;n++)i=t[n],((e>1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1||l.isNullOrUndef(i.label))&&delete
i.label,f.push(i);return f},draw:function(t){var
e=this,i=e.options;if(i.display){var
r=e.ctx,u=o.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),v=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),m=l.valueOrDefault(d.fontColor,u.defaultFontColor),b=n(d),x=l.valueOrDefault(c.fontColor,u.defaultFontColor),y=n(c),k=h.drawTicks?h.tickMarkLength:0,w=l.valueOrDefault(f.fontColor,u.defaultFontColor),M=n(f),S=l.options.toPadding(f.padding),C=l.toRadians(e.labelRotation),_=[],D="right"===i.position?e.left:e.right-k,I="right"===i.position?e.left+k:e.right,P="bottom"===i.position?e.top:e.bottom-k,A="bottom"===i.position?e.top+k:e.bottom;if(l.each(v,function(n,o){if(void
0!==n.label){var
r,s,c,f,m=n.label;o===e.zeroLineIndex&&i.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=l.valueAtIndexOrDefault(h.lineWidth,o),s=l.valueAtIndexOrDefault(h.color,o),c=l.valueOrDefault(h.borderDash,u.borderDash),f=l.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var
b,x,y,w,M,S,T,F,O,R,L="middle",z="middle",B=d.padding;if(p){var
W=k+B;"bottom"===i.position?(z=g?"middle":"top",L=g?"right":"center",R=e.top+W):(z=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-W);var
N=a(e,o,h.offsetGridLines&&v.length>1);N<e.left&&(s="rgba(0,0,0,0)"),N+=l.aliasPixel(r),O=e.getPixelForTick(o)+d.labelOffset,b=y=M=T=N,x=P,w=A,S=t.top,F=t.bottom}else{var
V,E="left"===i.position;d.mirror?(L=E?"left":"right",V=B):(L=E?"right":"left",V=k+B),O=E?e.right-V:e.left+V;var
H=a(e,o,h.offsetGridLines&&v.length>1);H<e.top&&(s="rgba(0,0,0,0)"),H+=l.aliasPixel(r),R=e.getPixelForTick(o)+d.labelOffset,b=D,y=I,M=t.left,T=t.right,x=w=S=F=H}_.push({tx1:b,ty1:x,tx2:y,ty2:w,x1:M,y1:S,x2:T,y2:F,labelX:O,labelY:R,glWidth:r,glColor:s,glBorderDash:c,glBorderDashOffset:f,rotation:-1*C,label:m,major:n.major,textBaseline:z,textAlign:L})}}),l.each(_,function(t){if(h.display&&(r.save(),r.lineWidth=t.glWidth,r.strokeStyle=t.glColor,r.setLineDash&&(r.setLineDash(t.glBorderDash),r.lineDashOffset=t.glBorderDashOffset),r.beginPath(),h.drawTicks&&(r.moveTo(t.tx1,t.ty1),r.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(r.moveTo(t.x1,t.y1),r.lineTo(t.x2,t.y2)),r.stroke(),r.restore()),d.display){r.save(),r.translate(t.labelX,t.labelY),r.rotate(t.rotation),r.font=t.major?y.font:b.font,r.fillStyle=t.major?x:m,r.textBaseline=t.textBaseline,r.textAlign=t.textAlign;var
e=t.label;if(l.isArray(e))for(var
n=0,i=0;n<e.length;++n)r.fillText(""+e[n],0,i),i+=1.5*b.size;else
r.fillText(e,0,0);r.restore()}}),f.display){var
T,F,O=0,R=s(f)/2;if(p)T=e.left+(e.right-e.left)/2,F="bottom"===i.position?e.bottom-R-S.bottom:e.top+R+S.top;else{var
L="left"===i.position;T=L?e.left+R+S.top:e.right-R-S.top,F=e.top+(e.bottom-e.top)/2,O=L?-.5*Math.PI:.5*Math.PI}r.save(),r.translate(T,F),r.rotate(O),r.textAlign="center",r.textBaseline="middle",r.fillStyle=w,r.font=M.font,r.fillText(f.labelString,0,0),r.restore()}if(h.drawBorder){r.lineWidth=l.valueAtIndexOrDefault(h.lineWidth,0),r.strokeStyle=l.valueAtIndexOrDefault(h.color,0);var
z=e.left,B=e.right,W=e.top,N=e.bottom,V=l.aliasPixel(r.lineWidth);p?(W=N="top"===i.position?e.bottom:e.top,W+=V,N+=V):(z=B="left"===i.position?e.right:e.left,z+=V,B+=V),r.beginPath(),r.moveTo(z,W),r.lineTo(B,N),r.stroke()}}}})}},{25:25,26:26,34:34,45:45}],33:[function(t,e,n){"use
strict";var
i=t(25),a=t(45);e.exports=function(t){t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=a.clone(n)},getScaleConstructor:function(t){return
this.constructors.hasOwnProperty(t)?this.constructors[t]:void
0},getScaleDefaults:function(t){return
this.defaults.hasOwnProperty(t)?a.merge({},[i.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){var
n=this;n.defaults.hasOwnProperty(t)&&(n.defaults[t]=a.extend(n.defaults[t],e))},addScalesToLayout:function(e){a.each(e.scales,function(n){n.fullWidth=n.options.fullWidth,n.position=n.options.position,n.weight=n.options.weight,t.layoutService.addBox(e,n)})}}}},{25:25,45:45}],34:[function(t,e,n){"use
strict";var i=t(45);e.exports={generators:{linear:function(t,e){var
n,a=[];if(t.stepSize&&t.stepSize>0)n=t.stepSize;else{var
o=i.niceNum(e.max-e.min,!1);n=i.niceNum(o/(t.maxTicks-1),!0)}var
r=Math.floor(e.min/n)*n,l=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(r=t.min,l=t.max);var
s=(l-r)/n;s=i.almostEquals(s,Math.round(s),n/1e3)?Math.round(s):Math.ceil(s),a.push(void
0!==t.min?t.min:r);for(var u=1;u<s;++u)a.push(r+u*n);return a.push(void
0!==t.max?t.max:l),a},logarithmic:function(t,e){var
n,a,o=[],r=i.valueOrDefault,l=r(t.min,Math.pow(10,Math.floor(i.log10(e.min)))),s=Math.floor(i.log10(e.max)),u=Math.ceil(e.max/Math.pow(10,s));0===l?(n=Math.floor(i.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,n)),o.push(l),l=a*Math.pow(10,n)):(n=Math.floor(i.log10(l)),a=Math.floor(l/Math.pow(10,n)));do{o.push(l),10===++a&&(a=1,++n),l=a*Math.pow(10,n)}while(n<s||n===s&&a<u);var
d=r(t.max,l);return o.push(d),o}},formatters:{values:function(t){return
i.isArray(t)?t:""+t},linear:function(t,e,n){var
a=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var
o=i.log10(Math.abs(a)),r="";if(0!==t){var
l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else
r="0";return r},logarithmic:function(t,e,n){var
a=t/Math.pow(10,Math.floor(i.log10(t)));return
0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var
n="",i=e.labels,a=i?i.length:0;if(t.length>0){var
o=t[0];o.xLabel?n=o.xLabel:a>0&&o.index<a&&(n=i[o.index])}return
n},afterTitle:o.noop,beforeBody:o.noop,beforeLabel:o.noop,label:function(t,e){var
n=e.datasets[t.datasetIndex].label||"";return
n&&(n+=": "),n+=t.yLabel},labelColor:function(t,e){var
n=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return
this._options.bodyFontColor},afterLabel:o.noop,afterBody:o.noop,beforeFooter:o.noop,footer:o.noop,afterFooter:o.noop}}}),e.exports=function(t){function
e(t,e){var n=o.color(t);return n.alpha(e*n.alpha()).rgbaString()}function
n(t,e){return
e&&(o.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function
r(t){var
e=t._xScale,n=t._yScale||t._scale,i=t._index,a=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,a):"",yLabel:n?n.getLabelForIndex(i,a):"",index:i,datasetIndex:a,x:t._model.x,y:t._model.y}}function
l(t){var
e=i.global,n=o.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:n(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:n(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:n(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:n(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:n(t.titleFontStyle,e.defaultFontStyle),titleFontSize:n(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:n(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:n(t.footerFontStyle,e.defaultFontStyle),footerFontSize:n(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function
s(t,e){var
n=t._chart.ctx,i=2*e.yPadding,a=0,r=e.body,l=r.reduce(function(t,e){return
t+e.before.length+e.lines.length+e.after.length},0);l+=e.beforeBody.length+e.afterBody.length;var
s=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;i+=s*d,i+=s?(s-1)*e.titleSpacing:0,i+=s?e.titleMarginBottom:0,i+=l*c,i+=l?(l-1)*e.bodySpacing:0,i+=u?e.footerMarginTop:0,i+=u*h,i+=u?(u-1)*e.footerSpacing:0;var
f=0,g=function(t){a=Math.max(a,n.measureText(t).width+f)};return
n.font=o.fontString(d,e._titleFontStyle,e._titleFontFamily),o.each(e.title,g),n.font=o.fontString(c,e._bodyFontStyle,e._bodyFontFamily),o.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,o.each(r,function(t){o.each(t.before,g),o.each(t.lines,g),o.each(t.after,g)}),f=0,n.font=o.fontString(h,e._footerFontStyle,e._footerFontFamily),o.each(e.footer,g),a+=2*e.xPadding,{width:a,height:i}}function
u(t,e){var
n=t._model,i=t._chart,a=t._chart.chartArea,o="center",r="center";n.y<e.height?r="top":n.y>i.height-e.height&&(r="bottom");var
l,s,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===r?(l=function(t){return
t<=h},s=function(t){return t>h}):(l=function(t){return
t<=e.width/2},s=function(t){return
t>=i.width-e.width/2}),u=function(t){return
t+e.width>i.width},d=function(t){return
t-e.width<0},c=function(t){return
t<=f?"top":"bottom"},l(n.x)?(o="left",u(n.x)&&(o="center",r=c(n.y))):s(n.x)&&(o="right",d(n.x)&&(o="center",r=c(n.y)));var
g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function
d(t,e,n){var
i=t.x,a=t.y,o=t.caretSize,r=t.caretPadding,l=t.cornerRadius,s=n.xAlign,u=n.yAlign,d=o+r,c=l+r;return"right"===s?i-=e.width:"center"===s&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===s?i+=d:"right"===s&&(i-=d):"left"===s?i-=c:"right"===s&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=l(this._options)},getTitle:function(){var
t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),o=e.afterTitle.apply(t,arguments),r=[];return
r=n(r,i),r=n(r,a),r=n(r,o)},getBeforeBody:function(){var
t=this._options.callbacks.beforeBody.apply(this,arguments);return
o.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var
i=this,a=i._options.callbacks,r=[];return o.each(t,function(t){var
o={before:[],lines:[],after:[]};n(o.before,a.beforeLabel.call(i,t,e)),n(o.lines,a.label.call(i,t,e)),n(o.after,a.afterLabel.call(i,t,e)),r.push(o)}),r},getAfterBody:function(){var
t=this._options.callbacks.afterBody.apply(this,arguments);return
o.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var
t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return
r=n(r,i),r=n(r,a),r=n(r,o)},update:function(e){var
n,i,a=this,c=a._options,h=a._model,f=a._model=l(c),g=a._active,p=a._data,v={xAlign:h.xAlign,yAlign:h.yAlign},m={x:h.x,y:h.y},b={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var
y=[],k=[];x=t.Tooltip.positioners[c.position](g,a._eventPosition);var
w=[];for(n=0,i=g.length;n<i;++n)w.push(r(g[n]));c.filter&&(w=w.filter(function(t){return
c.filter(t,p)})),c.itemSort&&(w=w.sort(function(t,e){return
c.itemSort(t,e,p)})),o.each(w,function(t){y.push(c.callbacks.labelColor.call(a,t,a._chart)),k.push(c.callbacks.labelTextColor.call(a,t,a._chart))}),f.title=a.getTitle(w,p),f.beforeBody=a.getBeforeBody(w,p),f.body=a.getBody(w,p),f.afterBody=a.getAfterBody(w,p),f.footer=a.getFooter(w,p),f.x=Math.round(x.x),f.y=Math.round(x.y),f.caretPadding=c.caretPadding,f.labelColors=y,f.labelTextColors=k,f.dataPoints=w,m=d(f,b=s(this,f),v=u(this,b))}else
f.opacity=0;return
f.xAlign=v.xAlign,f.yAlign=v.yAlign,f.x=m.x,f.y=m.y,f.width=b.width,f.height=b.height,f.caretX=x.x,f.caretY=x.y,a._model=f,e&&c.custom&&c.custom.call(a,f),a},drawCaret:function(t,e){var
n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var
i,a,o,r,l,s,u=n.caretSize,d=n.cornerRadius,c=n.xAlign,h=n.yAlign,f=t.x,g=t.y,p=e.width,v=e.height;if("center"===h)l=g+v/2,"left"===c?(a=(i=f)-u,o=i,r=l+u,s=l-u):(a=(i=f+p)+u,o=i,r=l-u,s=l+u);else
if("left"===c?(i=(a=f+d+u)-u,o=a+u):"right"===c?(i=(a=f+p-d-u)-u,o=a+u):(i=(a=f+p/2)-u,o=a+u),"top"===h)l=(r=g)-u,s=r;else{l=(r=g+v)+u,s=r;var
m=o;o=i,i=m}return{x1:i,x2:a,x3:o,y1:r,y2:l,y3:s}},drawTitle:function(t,n,i,a){var
r=n.title;if(r.length){i.textAlign=n._titleAlign,i.textBaseline="top";var
l=n.titleFontSize,s=n.titleSpacing;i.fillStyle=e(n.titleFontColor,a),i.font=o.fontString(l,n._titleFontStyle,n._titleFontFamily);var
u,d;for(u=0,d=r.length;u<d;++u)i.fillText(r[u],t.x,t.y),t.y+=l+s,u+1===r.length&&(t.y+=n.titleMarginBottom-s)}},drawBody:function(t,n,i,a){var
r=n.bodyFontSize,l=n.bodySpacing,s=n.body;i.textAlign=n._bodyAlign,i.textBaseline="top",i.font=o.fontString(r,n._bodyFontStyle,n._bodyFontFamily);var
u=0,d=function(e){i.fillText(e,t.x+u,t.y),t.y+=r+l};o.each(n.beforeBody,d);var
c=n.displayColors;u=c?r+2:0,o.each(s,function(l,s){o.each(l.before,d),o.each(l.lines,function(o){if(c){i.fillStyle=e(n.legendColorBackground,a),i.fillRect(t.x,t.y,r,r),i.lineWidth=1,i.strokeStyle=e(n.labelColors[s].borderColor,a),i.strokeRect(t.x,t.y,r,r),i.fillStyle=e(n.labelColors[s].backgroundColor,a),i.fillRect(t.x+1,t.y+1,r-2,r-2);var
l=e(n.labelTextColors[s],a);i.fillStyle=l}d(o)}),o.each(l.after,d)}),u=0,o.each(n.afterBody,d),t.y-=l},drawFooter:function(t,n,i,a){var
r=n.footer;r.length&&(t.y+=n.footerMarginTop,i.textAlign=n._footerAlign,i.textBaseline="top",i.fillStyle=e(n.footerFontColor,a),i.font=o.fontString(n.footerFontSize,n._footerFontStyle,n._footerFontFamily),o.each(r,function(e){i.fillText(e,t.x,t.y),t.y+=n.footerFontSize+n.footerSpacing}))},drawBackground:function(t,n,i,a,o){i.fillStyle=e(n.backgroundColor,o),i.strokeStyle=e(n.borderColor,o),i.lineWidth=n.borderWidth;var
r=n.xAlign,l=n.yAlign,s=t.x,u=t.y,d=a.width,c=a.height,h=n.cornerRadius;i.beginPath(),i.moveTo(s+h,u),"top"===l&&this.drawCaret(t,a),i.lineTo(s+d-h,u),i.quadraticCurveTo(s+d,u,s+d,u+h),"center"===l&&"right"===r&&this.drawCaret(t,a),i.lineTo(s+d,u+c-h),i.quadraticCurveTo(s+d,u+c,s+d-h,u+c),"bottom"===l&&this.drawCaret(t,a),i.lineTo(s+h,u+c),i.quadraticCurveTo(s,u+c,s,u+c-h),"center"===l&&"left"===r&&this.drawCaret(t,a),i.lineTo(s,u+h),i.quadraticCurveTo(s,u,s+h,u),i.closePath(),i.fill(),n.borderWidth>0&&i.stroke()},draw:function(){var
t=this._chart.ctx,e=this._view;if(0!==e.opacity){var
n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var
e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!o.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var
a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return
i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var
e,n,i=0,a=0,o=0;for(e=0,n=t.length;e<n;++e){var
r=t[e];if(r&&r.hasValue()){var
l=r.tooltipPosition();i+=l.x,a+=l.y,++o}}return{x:Math.round(i/o),y:Math.round(a/o)}},nearest:function(t,e){var
n,i,a,r=e.x,l=e.y,s=Number.POSITIVE_INFINITY;for(n=0,i=t.length;n<i;++n){var
u=t[n];if(u&&u.hasValue()){var
d=u.getCenterPoint(),c=o.distanceBetweenPoints(e,d);c<s&&(s=c,a=u)}}if(a){var
h=a.tooltipPosition();r=h.x,l=h.y}return{x:r,y:l}}}}},{25:25,26:26,45:45}],36:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45);i._set("global",{elements:{arc:{backgroundColor:i.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),e.exports=a.extend({inLabelRange:function(t){var
e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var
n=this._view;if(n){for(var
i=o.getAngleFromPoint(n,{x:t,y:e}),a=i.angle,r=i.distance,l=n.startAngle,s=n.endAngle;s<l;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<l;)a+=2*Math.PI;var
u=a>=l&&a<=s,d=r>=n.innerRadius&&r<=n.outerRadius;return
u&&d}return!1},getCenterPoint:function(){var
t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var
t=this._view;return
Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var
t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var
t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45),r=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var
t,e,n,i,a=this,l=a._view,s=a._chart.ctx,u=l.spanGaps,d=a._children.slice(),c=r.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),s.save(),s.lineCap=l.borderCapStyle||c.borderCapStyle,s.setLineDash&&s.setLineDash(l.borderDash||c.borderDash),s.lineDashOffset=l.borderDashOffset||c.borderDashOffset,s.lineJoin=l.borderJoinStyle||c.borderJoinStyle,s.lineWidth=l.borderWidth||c.borderWidth,s.strokeStyle=l.borderColor||r.defaultColor,s.beginPath(),h=-1,t=0;t<d.length;++t)e=d[t],n=o.previousItem(d,t),i=e._view,0===t?i.skip||(s.moveTo(i.x,i.y),h=t):(n=-1===h?n:d[h],i.skip||(h!==t-1&&!u||-1===h?s.moveTo(i.x,i.y):o.canvas.lineTo(s,n._view,e._view),h=t));s.stroke(),s.restore()}})},{25:25,26:26,45:45}],38:[function(t,e,n){"use
strict";function i(t){var
e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2)}var
a=t(25),o=t(26),r=t(45),l=a.global.defaultColor;a._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:l,borderColor:l,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}}),e.exports=o.extend({inRange:function(t,e){var
n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:i,inXRange:i,inYRange:function(t){var
e=this._view;return!!e&&Math.pow(t-e.y,2)<Math.pow(e.radius+e.hitRadius,2)},getCenterPoint:function(){var
t=this._view;return{x:t.x,y:t.y}},getArea:function(){return
Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var
t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var
e=this._view,n=this._model,i=this._chart.ctx,o=e.pointStyle,s=e.radius,u=e.x,d=e.y,c=r.color,h=0;e.skip||(i.strokeStyle=e.borderColor||l,i.lineWidth=r.valueOrDefault(e.borderWidth,a.global.elements.point.borderWidth),i.fillStyle=e.backgroundColor||l,void
0!==t&&(n.x<t.left||1.01*t.right<n.x||n.y<t.top||1.01*t.bottom<n.y)&&(n.x<t.left?h=(u-n.x)/(t.left-n.x):1.01*t.right<n.x?h=(n.x-u)/(n.x-t.right):n.y<t.top?h=(d-n.y)/(t.top-n.y):1.01*t.bottom<n.y&&(h=(n.y-d)/(n.y-t.bottom)),h=Math.round(100*h)/100,i.strokeStyle=c(i.strokeStyle).alpha(h).rgbString(),i.fillStyle=c(i.fillStyle).alpha(h).rgbString()),r.canvas.drawPoint(i,o,s,u,d))}})},{25:25,26:26,45:45}],39:[function(t,e,n){"use
strict";function i(t){return void 0!==t._view.width}function a(t){var
e,n,a,o,r=t._view;if(i(t)){var
l=r.width/2;e=r.x-l,n=r.x+l,a=Math.min(r.y,r.base),o=Math.max(r.y,r.base)}else{var
s=r.height/2;e=Math.min(r.x,r.base),n=Math.max(r.x,r.base),a=r.y-s,o=r.y+s}return{left:e,top:a,right:n,bottom:o}}var
o=t(25),r=t(26);o._set("global",{elements:{rectangle:{backgroundColor:o.global.defaultColor,borderColor:o.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=r.extend({draw:function(){function
t(t){return m[(b+t)%4]}var
e,n,i,a,o,r,l,s=this._chart.ctx,u=this._view,d=u.borderWidth;if(u.horizontal?(e=u.base,n=u.x,i=u.y-u.height/2,a=u.y+u.height/2,o=n>e?1:-1,r=1,l=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,o=1,r=(a=u.base)>i?1:-1,l=u.borderSkipped||"bottom"),d){var
c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==l?h*o:0),g=n+("right"!==l?-h*o:0),p=i+("top"!==l?h*r:0),v=a+("bottom"!==l?-h*r:0);f!==g&&(i=p,a=v),p!==v&&(e=f,n=g)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=d;var
m=[[e,a],[e,i],[n,i],[n,a]],b=["bottom","left","top","right"].indexOf(l,0);-1===b&&(b=0);var
x=t(0);s.moveTo(x[0],x[1]);for(var
y=1;y<4;y++)x=t(y),s.lineTo(x[0],x[1]);s.fill(),d&&s.stroke()},height:function(){var
t=this._view;return t.base-t.y},inRange:function(t,e){var
n=!1;if(this._view){var
i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return
n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var
o=a(n);return
i(n)?t>=o.left&&t<=o.right:e>=o.top&&e<=o.bottom},inXRange:function(t){var
e=a(this);return
t>=e.left&&t<=e.right},inYRange:function(t){var
e=a(this);return
t>=e.top&&t<=e.bottom},getCenterPoint:function(){var
t,e,n=this._view;return
i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var
t=this._view;return
t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var
t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use
strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use
strict";var
i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,o){if(o){var
r=Math.min(o,i/2),l=Math.min(o,a/2);t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+l),t.lineTo(e+i,n+a-l),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-l),t.lineTo(e,n+l),t.quadraticCurveTo(e,n,e+r,n)}else
t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var
o,r,l,s,u,d;if("object"!=typeof e||"[object
HTMLImageElement]"!==(o=e.toString())&&"[object
HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-r/2,a+u/3),t.lineTo(i+r/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var
c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else
t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void
t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use
strict";var i={noop:function(){},uid:function(){var t=0;return
function(){return t++}}(),isNullOrUndef:function(t){return null===t||void
0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object
Array]"===Object.prototype.toString.call(t)},isObject:function(t){return
null!==t&&"[object
Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return
void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return
i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof
t.call)return t.apply(n,e)},each:function(t,e,n,a){var
o,r,l;if(i.isArray(t))if(r=t.length,a)for(o=r-1;o>=0;o--)e.call(n,t[o],o);else
for(o=0;o<r;o++)e.call(n,t[o],o);else
if(i.isObject(t))for(r=(l=Object.keys(t)).length,o=0;o<r;o++)e.call(n,t[l[o]],l[o])},arrayEquals:function(t,e){var
n,a,o,r;if(!t||!e||t.length!==e.length)return!1;for(n=0,a=t.length;n<a;++n)if(o=t[n],r=e[n],o
instanceof Array&&r instanceof
Array){if(!i.arrayEquals(o,r))return!1}else
if(o!==r)return!1;return!0},clone:function(t){if(i.isArray(t))return
t.map(i.clone);if(i.isObject(t)){for(var
e={},n=Object.keys(t),a=n.length,o=0;o<a;++o)e[n[o]]=i.clone(t[n[o]]);return
e}return t},_merger:function(t,e,n,a){var
o=e[t],r=n[t];i.isObject(o)&&i.isObject(r)?i.merge(o,r,a):e[t]=i.clone(r)},_mergerIf:function(t,e,n){var
a=e[t],o=n[t];i.isObject(a)&&i.isObject(o)?i.mergeIf(a,o):e.hasOwnProperty(t)||(e[t]=i.clone(o))},merge:function(t,e,n){var
a,o,r,l,s,u=i.isArray(e)?e:[e],d=u.length;if(!i.isObject(t))return
t;for(a=(n=n||{}).merger||i._merger,o=0;o<d;++o)if(e=u[o],i.isObject(e))for(s=0,l=(r=Object.keys(e)).length;s<l;++s)a(r[s],t,e,n);return
t},mergeIf:function(t,e){return
i.merge(t,e,{merger:i._mergerIf})}};e.exports=i,i.callCallback=i.callback,i.indexOf=function(t,e,n){return
Array.prototype.indexOf.call(t,e,n)},i.getValueOrDefault=i.valueOrDefault,i.getValueAtIndexOrDefault=i.valueAtIndexOrDefault},{}],43:[function(t,e,n){"use
strict";var i=t(42),a={linear:function(t){return
t},easeInQuad:function(t){return
t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return
t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return
t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return
t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return
1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return
Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return
0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return
1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return
0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return
t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return
Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var
e=1.70158,n=0,i=1;return
0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var
e=1.70158,n=0,i=1;return
0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var
e=1.70158,n=0,i=1;return
0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var
e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var
e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var
e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return
1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return
t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return
t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use
strict";var i=t(42);e.exports={toLineHeight:function(t,e){var
n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return
1.2*e;switch(t=+n[2],n[3]){case"px":return
t;case"%":t/=100}return e*t},toPadding:function(t){var
e,n,a,o;return
i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=n=a=o=+t||0,{top:e,right:n,bottom:a,left:o,height:e+a,width:o+n}},resolve:function(t,e,n){var
a,o,r;for(a=0,o=t.length;a<o;++a)if(void 0!==(r=t[a])&&(void
0!==e&&"function"==typeof r&&(r=r(e)),void
0!==n&&i.isArray(r)&&(r=r[n]),void 0!==r))return
r}}},{42:42}],45:[function(t,e,n){"use
strict";e.exports=t(42),e.exports.easing=t(43),e.exports.canvas=t(41),e.exports.options=t(44)},{41:41,42:42,43:43,44:44}],46:[function(t,e,n){e.exports={acquireContext:function(t){return
t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},{}],47:[function(t,e,n){"use
strict";function i(t,e){var
n=v.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return
i?Number(i[1]):void 0}function a(t,e){var
n=t.style,a=t.getAttribute("height"),o=t.getAttribute("width");if(t[m]={initial:{height:a,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===o||""===o){var
r=i(t,"width");void
0!==r&&(t.width=r)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var
l=i(t,"height");void 0!==r&&(t.height=l)}return
t}function o(t,e,n){t.addEventListener(e,n,M)}function
r(t,e,n){t.removeEventListener(e,n,M)}function
l(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void
0!==n?n:null,y:void 0!==i?i:null}}function s(t,e){var
n=w[t.type]||t.type,i=v.getRelativePosition(t,e);return
l(n,e,i.x,i.y,t)}function u(t,e){var n=!1,i=[];return
function(){i=Array.prototype.slice.call(arguments),e=e||this,n||(n=!0,v.requestAnimFrame.call(window,function(){n=!1,t.apply(e,i)}))}}function
d(t){var
e=document.createElement("div"),n=b+"size-monitor",i="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=i,e.className=n,e.innerHTML='<div
class="'+n+'-expand"
style="'+i+'"><div
style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div
class="'+n+'-shrink"
style="'+i+'"><div
style="position:absolute;width:200%;height:200%;left:0;
top:0"></div></div>';var
a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var
l=function(){e._reset(),t()};return
o(a,"scroll",l.bind(a,"expand")),o(r,"scroll",l.bind(r,"shrink")),e}function
c(t,e){var
n=(t[m]||(t[m]={})).renderProxy=function(t){t.animationName===y&&e()};v.each(k,function(e){o(t,e,n)}),t.classList.add(x)}function
h(t){var
e=t[m]||{},n=e.renderProxy;n&&(v.each(k,function(e){r(t,e,n)}),delete
e.renderProxy),t.classList.remove(x)}function f(t,e,n){var
i=t[m]||(t[m]={}),a=i.resizer=d(u(function(){if(i.resizer)return
e(l("resize",n))}));c(t,function(){if(i.resizer){var
e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function
g(t){var e=t[m]||{},n=e.resizer;delete
e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function
p(t,e){var
n=t._style||document.createElement("style");t._style||(t._style=n,e="/*
Chart.js
*/\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var
v=t(45),m="$chartjs",b="chartjs-",x=b+"render-monitor",y=b+"render-animation",k=["animationstart","webkitAnimationStart"],w={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},M=!!function(){var
t=!1;try{var
e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return
t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof
window&&"undefined"!=typeof
document,initialize:function(){var
t="from{opacity:0.99}to{opacity:1}";p(this,"@-webkit-keyframes
"+y+"{"+t+"}@keyframes
"+y+"{"+t+"}."+x+"{-webkit-animation:"+y+"
0.001s;animation:"+y+"
0.001s;}")},acquireContext:function(t,e){"string"==typeof
t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var
n=t&&t.getContext&&t.getContext("2d");return
n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var
e=t.canvas;if(e[m]){var
n=e[m].initial;["height","width"].forEach(function(t){var
i=n[t];v.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),v.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete
e[m]}},addEventListener:function(t,e,n){var
i=t.canvas;if("resize"!==e){var
a=n[m]||(n[m]={});o(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(s(e,t))})}else
f(i,n,t)},removeEventListener:function(t,e,n){var
i=t.canvas;if("resize"!==e){var
a=((n[m]||{}).proxies||{})[t.id+"_"+e];a&&r(i,e,a)}else
g(i)}},v.addEvent=o,v.removeEvent=r},{45:45}],48:[function(t,e,n){"use
strict";var
i=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,n){"use
strict";var
i=t(25),a=t(40),o=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function
t(t,e,n){var i,a=t._model||{},o=a.fill;if(void
0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return
o;default:return!1}}function e(t){var
e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return
null;if("start"===a?o=void
0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?o=void
0===n.scaleTop?i.top:n.scaleTop:void
0!==n.scaleZero?o=n.scaleZero:i.getBasePosition?o=i.getBasePosition():i.getBasePixel&&(o=i.getBasePixel()),void
0!==o&&null!==o){if(void 0!==o.x&&void 0!==o.y)return
o;if("number"==typeof o&&isFinite(o))return
e=i.isHorizontal(),{x:e?o:null,y:e?null:o}}return null}function
n(t,e,n){var i,a=t[e].fill,o=[e];if(!n)return
a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return
a;if(!(i=t[a]))return!1;if(i.visible)return
a;o.push(a),a=i.fill}return!1}function r(t){var
e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function
l(t){return t&&!t.skip}function s(t,e,n,i,a){var
r;if(i&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r<i;++r)o.canvas.lineTo(t,e[r-1],e[r]);for(t.lineTo(n[a-1].x,n[a-1].y),r=a-1;r>0;--r)o.canvas.lineTo(t,n[r],n[r-1],!0)}}function
u(t,e,n,i,a,o){var
r,u,d,c,h,f,g,p=e.length,v=i.spanGaps,m=[],b=[],x=0,y=0;for(t.beginPath(),r=0,u=p+!!o;r<u;++r)h=n(c=e[d=r%p]._view,d,i),f=l(c),g=l(h),f&&g?(x=m.push(c),y=b.push(h)):x&&y&&(v?(f&&m.push(c),g&&b.push(h)):(s(t,m,b,x,y),x=y=0,m=[],b=[]));s(t,m,b,x,y),t.closePath(),t.fillStyle=a,t.fill()}var
d={dataset:function(t){var
e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],o=a.length||0;return
o?function(t,e){return
e<o&&a[e]._view||null}:null},boundary:function(t){var
e=t.boundary,n=e?e.x:null,i=e?e.y:null;return
function(t){return{x:null===n?t.x:n,y:null===i?t.y:i}}}};return{id:"filler",afterDatasetsUpdate:function(i,o){var
l,s,u,d,c=(i.data.datasets||[]).length,h=o.propagate,f=[];for(s=0;s<c;++s)d=null,(u=(l=i.getDatasetMeta(s)).dataset)&&u._model&&u
instanceof
a.Line&&(d={visible:i.isDatasetVisible(s),fill:t(u,s,c),chart:i,el:u}),l.$filler=d,f.push(d);for(s=0;s<c;++s)(d=f[s])&&(d.fill=n(f,s,h),d.boundary=e(d),d.mapper=r(d))},beforeDatasetDraw:function(t,e){var
n=e.meta.$filler;if(n){var
a=t.ctx,r=n.el,l=r._view,s=r._children||[],d=n.mapper,c=l.backgroundColor||i.global.defaultColor;d&&c&&s.length&&(o.canvas.clipArea(a,t.chartArea),u(a,s,d,l,c,r._loop),o.canvas.unclipArea(a))}}}}},{25:25,40:40,45:45}],50:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45);i._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var
n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var
e=t.data;return
o.isArray(e.datasets)?e.datasets.map(function(e,n){return{text:e.label,fillStyle:o.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}},this):[]}}},legendCallback:function(t){var
e=[];e.push('<ul
class="'+t.id+'-legend">');for(var
n=0;n<t.data.datasets.length;n++)e.push('<li><span
style="background-color:'+t.data.datasets[n].backgroundColor+'"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return
e.push("</ul>"),e.join("")}}),e.exports=function(t){function
e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var
i=new
t.Legend({ctx:e.ctx,options:n,chart:e});r.configure(e,i,n),r.addBox(e,i),e.legend=i}var
r=t.layoutService,l=o.noop;return
t.Legend=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:l,update:function(t,e,n){var
i=this;return
i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function(){var
t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:function(){var
t=this,e=t.options.labels||{},n=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return
e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:l,beforeFit:l,fit:function(){var
t=this,n=t.options,a=n.labels,r=n.display,l=t.ctx,s=i.global,u=o.valueOrDefault,d=u(a.fontSize,s.defaultFontSize),c=u(a.fontStyle,s.defaultFontStyle),h=u(a.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,v=t.isHorizontal();if(v?(p.width=t.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=t.maxHeight),r)if(l.font=f,v){var
m=t.lineWidths=[0],b=t.legendItems.length?d+a.padding:0;l.textAlign="left",l.textBaseline="top",o.each(t.legendItems,function(n,i){var
o=e(a,d)+d/2+l.measureText(n.text).width;m[m.length-1]+o+a.padding>=t.width&&(b+=d+a.padding,m[m.length]=t.left),g[i]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+a.padding}),p.height+=b}else{var
x=a.padding,y=t.columnWidths=[],k=a.padding,w=0,M=0,S=d+x;o.each(t.legendItems,function(t,n){var
i=e(a,d)+d/2+l.measureText(t.text).width;M+S>p.height&&(k+=w+a.padding,y.push(w),w=0,M=0),w=Math.max(w,i),M+=S,g[n]={left:0,top:0,width:i,height:d}}),k+=w,y.push(w),p.width+=k}t.width=p.width,t.height=p.height},afterFit:l,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var
t=this,n=t.options,a=n.labels,r=i.global,l=r.elements.line,s=t.width,u=t.lineWidths;if(n.display){var
d,c=t.ctx,h=o.valueOrDefault,f=h(a.fontColor,r.defaultFontColor),g=h(a.fontSize,r.defaultFontSize),p=h(a.fontStyle,r.defaultFontStyle),v=h(a.fontFamily,r.defaultFontFamily),m=o.fontString(g,p,v);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=m;var
b=e(a,g),x=t.legendHitBoxes,y=function(t,e,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,l.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,l.borderDashOffset),c.lineJoin=h(i.lineJoin,l.borderJoinStyle),c.lineWidth=h(i.lineWidth,l.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var
a=0===h(i.lineWidth,l.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,l.borderDash)),n.labels&&n.labels.usePointStyle){var
s=g*Math.SQRT2/2,u=s/Math.SQRT2,d=t+u,f=e+u;o.canvas.drawPoint(c,i.pointStyle,s,d,f)}else
a||c.strokeRect(t,e,b,g),c.fillRect(t,e,b,g);c.restore()}},k=function(t,e,n,i){var
a=g/2,o=b+a+t,r=e+a;c.fillText(n.text,o,r),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(o,r),c.lineTo(o+i,r),c.stroke())},w=t.isHorizontal();d=w?{x:t.left+(s-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var
M=g+a.padding;o.each(t.legendItems,function(e,n){var
i=c.measureText(e.text).width,o=b+g/2+i,r=d.x,l=d.y;w?r+o>=s&&(l=d.y+=M,d.line++,r=d.x=t.left+(s-u[d.line])/2):l+M>t.bottom&&(r=d.x=r+t.columnWidths[d.line]+a.padding,l=d.y=t.top+a.padding,d.line++),y(r,l,e),x[n].left=r,x[n].top=l,k(r,l,e,i),w?d.x+=o+a.padding:d.y+=M})}},handleEvent:function(t){var
e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var
o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var
l=e.legendHitBoxes,s=0;s<l.length;++s){var
u=l[s];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[s]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[s]),a=!0;break}}}return
a}}),{id:"legend",beforeInit:function(t){var
e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var
e=t.options.legend,a=t.legend;e?(o.mergeIf(e,i.global.legend),a?(r.configure(t,a,e),a.options=e):n(t,e)):a&&(r.removeBox(t,a),delete
t.legend)},afterEvent:function(t,e){var
n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use
strict";var
i=t(25),a=t(26),o=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function
e(e,i){var a=new
t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var
n=t.layoutService,r=o.noop;return
t.Title=a.extend({initialize:function(t){var
e=this;o.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:r,update:function(t,e,n){var
i=this;return
i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var
t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:r,afterBuildLabels:r,beforeFit:r,fit:function(){var
t=this,e=o.valueOrDefault,n=t.options,a=n.display,r=e(n.fontSize,i.global.defaultFontSize),l=t.minSize,s=o.isArray(n.text)?n.text.length:1,u=o.options.toLineHeight(n.lineHeight,r),d=a?s*u+2*n.padding:0;t.isHorizontal()?(l.width=t.maxWidth,l.height=d):(l.width=d,l.height=t.maxHeight),t.width=l.width,t.height=l.height},afterFit:r,isHorizontal:function(){var
t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var
t=this,e=t.ctx,n=o.valueOrDefault,a=t.options,r=i.global;if(a.display){var
l,s,u,d=n(a.fontSize,r.defaultFontSize),c=n(a.fontStyle,r.defaultFontStyle),h=n(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,v=0,m=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=n(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(s=b+(y-b)/2,u=m+p,l=y-b):(s="left"===a.position?b+p:y-p,u=m+(x-m)/2,l=x-m,v=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(s,u),e.rotate(v),e.textAlign="center",e.textBaseline="middle";var
k=a.text;if(o.isArray(k))for(var
w=0,M=0;M<k.length;++M)e.fillText(k[M],0,w,l),w+=g;else
e.fillText(k,0,0,l);e.restore()}}}),{id:"title",beforeInit:function(t){var
n=t.options.title;n&&e(t,n)},beforeUpdate:function(a){var
r=a.options.title,l=a.titleBlock;r?(o.mergeIf(r,i.global.title),l?(n.configure(a,l,r),l.options=r):e(a,r)):l&&(t.layoutService.removeBox(a,l),delete
a.titleBlock)}}}},{25:25,26:26,45:45}],52:[function(t,e,n){"use
strict";e.exports=function(t){var
e={position:"bottom"},n=t.Scale.extend({getLabels:function(){var
t=this.chart.data;return
this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var
t=this,e=t.getLabels();t.minIndex=0,t.maxIndex=e.length-1;var n;void
0!==t.options.ticks.min&&(n=e.indexOf(t.options.ticks.min),t.minIndex=-1!==n?n:t.minIndex),void
0!==t.options.ticks.max&&(n=e.indexOf(t.options.ticks.max),t.maxIndex=-1!==n?n:t.maxIndex),t.min=e[t.minIndex],t.max=e[t.maxIndex]},buildTicks:function(){var
t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var
n=this,i=n.chart.data,a=n.isHorizontal();return
i.yLabels&&!a?n.getRightValue(i.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var
n,i=this,a=i.options.offset,o=Math.max(i.maxIndex+1-i.minIndex-(a?0:1),1);if(void
0!==t&&null!==t&&(n=i.isHorizontal()?t.x:t.y),void
0!==n||void 0!==t&&isNaN(e)){var r=i.getLabels();t=n||t;var
l=r.indexOf(t);e=-1!==l?l:e}if(i.isHorizontal()){var
s=i.width/o,u=s*(e-i.minIndex);return
a&&(u+=s/2),i.left+Math.round(u)}var
d=i.height/o,c=d*(e-i.minIndex);return
a&&(c+=d/2),i.top+Math.round(c)},getPixelForTick:function(t){return
this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var
e=this,n=e.options.offset,i=Math.max(e._ticks.length-(n?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/i;return
t-=a?e.left:e.top,n&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return
this.bottom}});t.scaleService.registerScaleType("category",n,e)}},{}],53:[function(t,e,n){"use
strict";var i=t(25),a=t(45),o=t(34);e.exports=function(t){var
e={position:"left",ticks:{callback:o.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){function
t(t){return r?t.xAxisID===e.id:t.yAxisID===e.id}var
e=this,n=e.options,i=e.chart,o=i.data.datasets,r=e.isHorizontal();e.min=null,e.max=null;var
l=n.stacked;if(void 0===l&&a.each(o,function(e,n){if(!l){var
a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&t(a)&&void
0!==a.stack&&(l=!0)}}),n.stacked||l){var
s={};a.each(o,function(o,r){var l=i.getDatasetMeta(r),u=[l.type,void
0===n.stacked&&void
0===l.stack?r:"",l.stack].join(".");void
0===s[u]&&(s[u]={positiveValues:[],negativeValues:[]});var
d=s[u].positiveValues,c=s[u].negativeValues;i.isDatasetVisible(r)&&t(l)&&a.each(o.data,function(t,i){var
a=+e.getRightValue(t);isNaN(a)||l.data[i].hidden||(d[i]=d[i]||0,c[i]=c[i]||0,n.relativePoints?d[i]=100:a<0?c[i]+=a:d[i]+=a)})}),a.each(s,function(t){var
n=t.positiveValues.concat(t.negativeValues),i=a.min(n),o=a.max(n);e.min=null===e.min?i:Math.min(e.min,i),e.max=null===e.max?o:Math.max(e.max,o)})}else
a.each(o,function(n,o){var
r=i.getDatasetMeta(o);i.isDatasetVisible(o)&&t(r)&&a.each(n.data,function(t,n){var
i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:i<e.min&&(e.min=i),null===e.max?e.max=i:i>e.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var
t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var
o=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*o)))}return
t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var
e,n=this,i=n.start,a=+n.getRightValue(t),o=n.end-i;return
n.isHorizontal()?(e=n.left+n.width/o*(a-i),Math.round(e)):(e=n.bottom-n.height/o*(a-i),Math.round(e))},getValueForPixel:function(t){var
e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return
e.start+(e.end-e.start)*a},getPixelForTick:function(t){return
this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use
strict";var i=t(45),a=t(34);e.exports=function(t){var
e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof
e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var
t=this,e=t.options.ticks;if(e.beginAtZero){var
n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var
o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void
0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void
0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void
0!==e.max?t.max=e.max:void
0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var
t=this,e=t.options.ticks,n=t.getTickLimit(),o={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=a.generators.linear(o,t);t.handleDirectionalChanges(),t.max=i.max(r),t.min=i.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var
e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use
strict";var i=t(45),a=t(34);e.exports=function(t){var
e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function
t(t){return s?t.xAxisID===e.id:t.yAxisID===e.id}var
e=this,n=e.options,a=n.ticks,o=e.chart,r=o.data.datasets,l=i.valueOrDefault,s=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var
u=n.stacked;if(void 0===u&&i.each(r,function(e,n){if(!u){var
i=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(i)&&void
0!==i.stack&&(u=!0)}}),n.stacked||u){var
d={};i.each(r,function(a,r){var l=o.getDatasetMeta(r),s=[l.type,void
0===n.stacked&&void
0===l.stack?r:"",l.stack].join(".");o.isDatasetVisible(r)&&t(l)&&(void
0===d[s]&&(d[s]=[]),i.each(a.data,function(t,i){var
a=d[s],o=+e.getRightValue(t);isNaN(o)||l.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=o)}))}),i.each(d,function(t){var
n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else
i.each(r,function(n,a){var
r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&i.each(n.data,function(t,n){var
i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:i<e.min&&(e.min=i),null===e.max?e.max=i:i>e.max&&(e.max=i),0!==i&&(null===e.minNotZero||i<e.minNotZero)&&(e.minNotZero=i))})});e.min=l(a.min,e.min),e.max=l(a.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(i.log10(e.min))-1),e.max=Math.pow(10,Math.floor(i.log10(e.max))+1)):(e.min=1,e.max=10))},buildTicks:function(){var
t=this,e=t.options.ticks,n={min:e.min,max:e.max},o=t.ticks=a.generators.logarithmic(n,t);t.isHorizontal()||o.reverse(),t.max=i.max(o),t.min=i.min(o),e.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return
this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var
e,n,a,o=this,r=o.start,l=+o.getRightValue(t),s=o.options.ticks;return
o.isHorizontal()?(a=i.log10(o.end)-i.log10(r),0===l?n=o.left:(e=o.width,n=o.left+e/a*(i.log10(l)-i.log10(r)))):(e=o.height,0!==r||s.reverse?0===o.end&&s.reverse?(a=i.log10(o.start)-i.log10(o.minNotZero),n=l===o.end?o.top:l===o.minNotZero?o.top+.02*e:o.top+.02*e+.98*e/a*(i.log10(l)-i.log10(o.minNotZero))):0===l?n=s.reverse?o.top:o.bottom:(a=i.log10(o.end)-i.log10(r),e=o.height,n=o.bottom-e/a*(i.log10(l)-i.log10(r))):(a=i.log10(o.end)-i.log10(o.minNotZero),n=l===r?o.bottom:l===o.minNotZero?o.bottom-.02*e:o.bottom-.02*e-.98*e/a*(i.log10(l)-i.log10(o.minNotZero)))),n},getValueForPixel:function(t){var
e,n,a=this,o=i.log10(a.end)-i.log10(a.start);return
a.isHorizontal()?(n=a.width,e=a.start*Math.pow(10,(t-a.left)*o/n)):(n=a.height,e=Math.pow(10,(a.bottom-t)*o/n)/a.start),e}});t.scaleService.registerScaleType("logarithmic",n,e)}},{34:34,45:45}],56:[function(t,e,n){"use
strict";var i=t(25),a=t(45),o=t(34);e.exports=function(t){function
e(t){var e=t.options;return
e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function
n(t){var
e=t.options.pointLabels,n=a.valueOrDefault(e.fontSize,v.defaultFontSize),i=a.valueOrDefault(e.fontStyle,v.defaultFontStyle),o=a.valueOrDefault(e.fontFamily,v.defaultFontFamily);return{size:n,style:i,family:o,font:a.fontString(n,i,o)}}function
r(t,e,n){return
a.isArray(n)?{w:a.longestText(t,t.font,n),h:n.length*e+1.5*(n.length-1)*e}:{w:t.measureText(n).width,h:e}}function
l(t,e,n,i,a){return
t===i||t===a?{start:e-n/2,end:e+n/2}:t<i||t>a?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function
s(t){var
i,o,s,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var
f=e(t);for(i=0;i<f;i++){s=t.getPointPosition(i,d),o=r(t.ctx,u.size,t.pointLabels[i]||""),t._pointLabelSizes[i]=o;var
g=t.getIndexAngle(i),p=a.toDegrees(g)%360,v=l(p,s.x,o.w,0,180),m=l(p,s.y,o.h,90,270);v.start<c.l&&(c.l=v.start,h.l=g),v.end>c.r&&(c.r=v.end,h.r=g),m.start<c.t&&(c.t=m.start,h.t=g),m.end>c.b&&(c.b=m.end,h.b=g)}t.setReductions(d,c,h)}function
u(t){var
e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function
d(t){return
0===t||180===t?"center":t<180?"left":"right"}function
c(t,e,n,i){if(a.isArray(e))for(var
o=n.y,r=1.5*i,l=0;l<e.length;++l)t.fillText(e[l],n.x,o),o+=r;else
t.fillText(e,n.x,n.y)}function
h(t,e,n){90===t||270===t?n.y-=e.h/2:(t>270||t<90)&&(n.y-=e.h)}function
f(t){var
i=t.ctx,o=a.valueOrDefault,r=t.options,l=r.angleLines,s=r.pointLabels;i.lineWidth=l.lineWidth,i.strokeStyle=l.color;var
u=t.getDistanceFromCenterForValue(r.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var
g=e(t)-1;g>=0;g--){if(l.display){var
p=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(p.x,p.y),i.stroke(),i.closePath()}if(s.display){var
m=t.getPointPosition(g,u+5),b=o(s.fontColor,v.defaultFontColor);i.font=f.font,i.fillStyle=b;var
x=t.getIndexAngle(g),y=a.toDegrees(x);i.textAlign=d(y),h(y,t._pointLabelSizes[g],m),c(i,t.pointLabels[g]||"",m,f.size)}}}function
g(t,n,i,o){var
r=t.ctx;if(r.strokeStyle=a.valueAtIndexOrDefault(n.color,o-1),r.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,o-1),t.options.gridLines.circular)r.beginPath(),r.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),r.closePath(),r.stroke();else{var
l=e(t);if(0===l)return;r.beginPath();var
s=t.getPointPosition(0,i);r.moveTo(s.x,s.y);for(var
u=1;u<l;u++)s=t.getPointPosition(u,i),r.lineTo(s.x,s.y);r.closePath(),r.stroke()}}function
p(t){return a.isNumber(t)?t:0}var
v=i.global,m={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,
0, 0,
0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:o.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return
t}}},b=t.LinearScaleBase.extend({setDimensions:function(){var
t=this,e=t.options,n=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var
i=a.min([t.height,t.width]),o=a.valueOrDefault(n.fontSize,v.defaultFontSize);t.drawingArea=e.display?i/2-(o/2+n.backdropPaddingY):i/2},determineDataLimits:function(){var
t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;a.each(e.data.datasets,function(o,r){if(e.isDatasetVisible(r)){var
l=e.getDatasetMeta(r);a.each(o.data,function(e,a){var
o=+t.getRightValue(e);isNaN(o)||l.data[a].hidden||(n=Math.min(o,n),i=Math.max(o,i))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},getTickLimit:function(){var
t=this.options.ticks,e=a.valueOrDefault(t.fontSize,v.defaultFontSize);return
Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){var
e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){this.options.pointLabels.display?s(this):u(this)},setReductions:function(t,e,n){var
i=this,a=e.l/Math.sin(n.l),o=Math.max(e.r-i.width,0)/Math.sin(n.r),r=-e.t/Math.cos(n.t),l=-Math.max(e.b-i.height,0)/Math.cos(n.b);a=p(a),o=p(o),r=p(r),l=p(l),i.drawingArea=Math.min(Math.round(t-(a+o)/2),Math.round(t-(r+l)/2)),i.setCenterPoint(a,o,r,l)},setCenterPoint:function(t,e,n,i){var
a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,l=n+a.drawingArea,s=a.height-i-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((l+s)/2+a.top)},getIndexAngle:function(t){return
t*(2*Math.PI/e(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var
e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return
e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var
n=this,i=n.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+n.xCenter,y:Math.round(Math.sin(i)*e)+n.yCenter}},getPointPositionForValue:function(t,e){return
this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var
t=this,e=t.min,n=t.max;return
t.getPointPositionForValue(0,t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},draw:function(){var
t=this,e=t.options,n=e.gridLines,i=e.ticks,o=a.valueOrDefault;if(e.display){var
r=t.ctx,l=this.getIndexAngle(0),s=o(i.fontSize,v.defaultFontSize),u=o(i.fontStyle,v.defaultFontStyle),d=o(i.fontFamily,v.defaultFontFamily),c=a.fontString(s,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var
u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var
d=o(i.fontColor,v.defaultFontColor);if(r.font=c,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(l),i.showLabelBackdrop){var
h=r.measureText(e).width;r.fillStyle=i.backdropColor,r.fillRect(-h/2-i.backdropPaddingX,-u-s/2-i.backdropPaddingY,h+2*i.backdropPaddingX,s+2*i.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-u),r.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",b,m)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use
strict";function i(t,e){return t-e}function a(t){var
e,n,i,a={},o=[];for(e=0,n=t.length;e<n;++e)a[i=t[e]]||(a[i]=!0,o.push(i));return
o}function
o(t,e,n,i){if("linear"===i||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var
a,o,r,l,s,u=[],d=[e];for(a=0,o=t.length;a<o;++a)(l=t[a])>e&&l<n&&d.push(l);for(d.push(n),a=0,o=d.length;a<o;++a)s=d[a+1],r=d[a-1],l=d[a],void
0!==r&&void
0!==s&&Math.round((s+r)/2)===l||u.push({time:l,pos:a/(o-1)});return
u}function r(t,e,n){for(var
i,a,o,r=0,l=t.length-1;r>=0&&r<=l;){if(i=r+l>>1,a=t[i-1]||null,o=t[i],!a)return{lo:null,hi:o};if(o[e]<n)r=i+1;else{if(!(a[e]>n))return{lo:a,hi:o};l=i-1}}return{lo:o,hi:null}}function
l(t,e,n,i){var
a=r(t,e,n),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],l=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=l[e]-o[e],u=s?(n-o[e])/s:0,d=(l[i]-o[i])*u;return
o[i]+d}function s(t,e){var
n=e.parser,i=e.parser||e.format;return"function"==typeof
n?n(t):"string"==typeof t&&"string"==typeof
i?v(t,i):(t instanceof
v||(t=v(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function
u(t,e){if(b.isNullOrUndef(t))return null;var
n=e.options.time,i=s(e.getRightValue(t),n);return
i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function
d(t,e,n,i){var a,o,r,l=e-t,s=k[n],u=s.size,d=s.steps;if(!d)return
Math.ceil(l/((i||1)*u));for(a=0,o=d.length;a<o&&(r=d[a],!(Math.ceil(l/(u*r))<=i));++a);return
r}function c(t,e,n,i){var
a,o,r,l=w.length;for(a=w.indexOf(t);a<l-1;++a)if(o=k[w[a]],r=o.steps?o.steps[o.steps.length-1]:y,Math.ceil((n-e)/(r*o.size))<=i)return
w[a];return w[l-1]}function h(t){for(var
e=w.indexOf(t)+1,n=w.length;e<n;++e)if(k[w[e]].major)return
w[e]}function f(t,e,n,i,a,o){var
r,l=o.time,s=b.valueOrDefault(l.stepSize,l.unitStepSize),u="week"===n&&l.isoWeekday,c=o.ticks.major.enabled,h=k[n],f=v(t),g=v(e),p=[];for(s||(s=d(t,e,n,a)),u&&(f=f.isoWeekday(u),g=g.isoWeekday(u)),f=f.startOf(u?"day":n),(g=g.startOf(u?"day":n))<e&&g.add(1,n),r=v(f),c&&i&&!u&&!l.round&&(r.startOf(i),r.add(~~((f-r)/(h.size*s))*s,n));r<g;r.add(s,n))p.push(+r);return
p.push(+r),p}function g(t,e,n,i,a){var o,r,s=0,u=0;return
a.offset&&e.length&&(a.time.min||(o=e.length>1?e[1]:i,r=e[0],s=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2),a.time.max||(o=e[e.length-1],r=e.length>1?e[e.length-2]:n,u=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2)),{left:s,right:u}}function
p(t,e){var
n,i,a,o,r=[];for(n=0,i=t.length;n<i;++n)a=t[n],o=!!e&&a===+v(a).startOf(e),r.push({value:a,major:o});return
r}var v=t(1);v="function"==typeof v?v:window.moment;var
m=t(25),b=t(45),x=Number.MIN_SAFE_INTEGER||-9007199254740991,y=Number.MAX_SAFE_INTEGER||9007199254740991,k={millisecond:{major:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{major:!0,size:1e3,steps:[1,2,5,10,30]},minute:{major:!0,size:6e4,steps:[1,2,5,10,30]},hour:{major:!0,size:36e5,steps:[1,2,3,6,12]},day:{major:!0,size:864e5,steps:[1,2,5]},week:{major:!1,size:6048e5,steps:[1,2,3,4]},month:{major:!0,size:2628e6,steps:[1,2,3]},quarter:{major:!1,size:7884e6,steps:[1,2,3,4]},year:{major:!0,size:3154e7}},w=Object.keys(k);e.exports=function(t){var
e={position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS
a",second:"h:mm:ss a",minute:"h:mm
a",hour:"hA",day:"MMM
D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q -
YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}},n=t.Scale.extend({initialize:function(){if(!v)throw
new Error("Chart.js - Moment.js could not be found! You must include
it before Chart.js to use the time scale. Download at
https://momentjs.com");this.mergeTicksOptions(),t.Scale.prototype.initialize.call(this)},update:function(){var
e=this,n=e.options;return
n.time&&n.time.format&&console.warn("options.time.format
is deprecated and replaced by
options.time.parser."),t.Scale.prototype.update.apply(e,arguments)},getRightValue:function(e){return
e&&void
0!==e.t&&(e=e.t),t.Scale.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var
t,e,n,o,r,l,s=this,d=s.chart,c=s.options.time,h=u(c.min,s)||y,f=u(c.max,s)||x,g=[],p=[],m=[];for(t=0,n=d.data.labels.length;t<n;++t)m.push(u(d.data.labels[t],s));for(t=0,n=(d.data.datasets||[]).length;t<n;++t)if(d.isDatasetVisible(t))if(r=d.data.datasets[t].data,b.isObject(r[0]))for(p[t]=[],e=0,o=r.length;e<o;++e)l=u(r[e],s),g.push(l),p[t][e]=l;else
g.push.apply(g,m),p[t]=m.slice(0);else
p[t]=[];m.length&&(m=a(m).sort(i),h=Math.min(h,m[0]),f=Math.max(f,m[m.length-1])),g.length&&(g=a(g).sort(i),h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),h=h===y?+v().startOf("day"):h,f=f===x?+v().endOf("day")+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._horizontal=s.isHorizontal(),s._table=[],s._timestamps={data:g,datasets:p,labels:m}},buildTicks:function(){var
t,e,n,i=this,a=i.min,r=i.max,l=i.options,s=l.time,d=s.displayFormats,v=i.getLabelCapacity(a),m=s.unit||c(s.minUnit,a,r,v),b=h(m),x=[],y=[];switch(l.ticks.source){case"data":x=i._timestamps.data;break;case"labels":x=i._timestamps.labels;break;case"auto":default:x=f(a,r,m,b,v,l)}for("ticks"===l.bounds&&x.length&&(a=x[0],r=x[x.length-1]),a=u(s.min,i)||a,r=u(s.max,i)||r,t=0,e=x.length;t<e;++t)(n=x[t])>=a&&n<=r&&y.push(n);return
i.min=a,i.max=r,i._unit=m,i._majorUnit=b,i._minorFormat=d[m],i._majorFormat=d[b],i._table=o(i._timestamps.data,a,r,l.distribution),i._offsets=g(i._table,y,a,r,l),p(y,b)},getLabelForIndex:function(t,e){var
n=this,i=n.chart.data,a=n.options.time,o=i.labels&&t<i.labels.length?i.labels[t]:"",r=i.datasets[e].data[t];return
b.isObject(r)&&(o=n.getRightValue(r)),a.tooltipFormat&&(o=s(o,a).format(a.tooltipFormat)),o},tickFormatFunction:function(t,e,n){var
i=this,a=i.options,o=t.valueOf(),r=i._majorUnit,l=i._majorFormat,s=t.clone().startOf(i._majorUnit).valueOf(),u=a.ticks.major,d=u.enabled&&r&&l&&o===s,c=t.format(d?l:i._minorFormat),h=d?u:a.ticks.minor,f=b.valueOrDefault(h.callback,h.userCallback);return
f?f(c,e,n):c},convertTicksToLabels:function(t){var
e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(this.tickFormatFunction(v(t[e].value),e,t));return
i},getPixelForOffset:function(t){var
e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=l(e._table,"time",t,"pos");return
i+n*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)},getPixelForValue:function(t,e,n){var
i=this,a=null;if(void 0!==e&&void
0!==n&&(a=i._timestamps.datasets[n][e]),null===a&&(a=u(t,i)),null!==a)return
i.getPixelForOffset(a)},getPixelForTick:function(t){var
e=this.getTicks();return
t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var
e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=(n?(t-i)/n:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right,o=l(e._table,"pos",a,"time");return
v(o)},getLabelWidth:function(t){var
e=this,n=e.options.ticks,i=e.ctx.measureText(t).width,a=b.toRadians(n.maxRotation),o=Math.cos(a),r=Math.sin(a);return
i*o+b.valueOrDefault(n.fontSize,m.global.defaultFontSize)*r},getLabelCapacity:function(t){var
e=this;e._minorFormat=e.options.time.displayFormats.millisecond;var
n=e.tickFormatFunction(v(t),0,[]),i=e.getLabelWidth(n),a=e.isHorizontal()?e.width:e.height;return
Math.floor(a/i)}});t.scaleService.registerScaleType("time",n,e)}},{1:1,25:25,45:45}]},{},[7])(7)});cookies.min.js000064400000005252151171634130007326
0ustar00(function(d,f){"use strict";var
h=function(d){if("object"!==typeof d.document)throw
Error("Cookies.js requires a `window` with a `document`
object");var b=function(a,e,c){return
1===arguments.length?b.get(a):b.set(a,e,c)};b._document=d.document;b._cacheKeyPrefix="cookey.";b._maxExpireDate=new
Date("Fri, 31 Dec 9999 23:59:59
UTC");b.defaults={path:"/",secure:!1};b.get=function(a){b._cachedDocumentCookie!==b._document.cookie&&b._renewCache();a=b._cache[b._cacheKeyPrefix+a];return
a===f?f:decodeURIComponent(a)};
b.set=function(a,e,c){c=b._getExtendedOptions(c);c.expires=b._getExpiresDate(e===f?-1:c.expires);b._document.cookie=b._generateCookieString(a,e,c);return
b};b.expire=function(a,e){return
b.set(a,f,e)};b._getExtendedOptions=function(a){return{path:a&&a.path||b.defaults.path,domain:a&&a.domain||b.defaults.domain,expires:a&&a.expires||b.defaults.expires,secure:a&&a.secure!==f?a.secure:b.defaults.secure}};b._isValidDate=function(a){return"[object
Date]"===Object.prototype.toString.call(a)&&!isNaN(a.getTime())};
b._getExpiresDate=function(a,e){e=e||new Date;"number"===typeof
a?a=Infinity===a?b._maxExpireDate:new
Date(e.getTime()+1E3*a):"string"===typeof a&&(a=new
Date(a));if(a&&!b._isValidDate(a))throw Error("`expires`
parameter cannot be converted to a valid Date instance");return
a};b._generateCookieString=function(a,b,c){a=a.replace(/[^#$&+\^`|]/g,encodeURIComponent);a=a.replace(/\(/g,"%28").replace(/\)/g,"%29");b=(b+"").replace(/[^!#$&-+\--:<-\[\]-~]/g,encodeURIComponent);c=c||{};a=a+"="+b+(c.path?";path="+
c.path:"");a+=c.domain?";domain="+c.domain:"";a+=c.expires?";expires="+c.expires.toUTCString():"";return
a+=c.secure?";secure":""};b._getCacheFromString=function(a){var
e={};a=a?a.split("; "):[];for(var c=0;c<a.length;c++){var
d=b._getKeyValuePairFromCookieString(a[c]);e[b._cacheKeyPrefix+d.key]===f&&(e[b._cacheKeyPrefix+d.key]=d.value)}return
e};b._getKeyValuePairFromCookieString=function(a){var
b=a.indexOf("="),b=0>b?a.length:b,c=a.substr(0,b),d;try{d=decodeURIComponent(c)}catch(k){console&&"function"===
typeof console.error&&console.error('Could not decode cookie
with key
"'+c+'"',k)}return{key:d,value:a.substr(b+1)}};b._renewCache=function(){b._cache=b._getCacheFromString(b._document.cookie);b._cachedDocumentCookie=b._document.cookie};b._areEnabled=function(){var
a="1"===b.set("cookies.js",1).get("cookies.js");b.expire("cookies.js");return
a};b.enabled=b._areEnabled();return
b},g=d&&"object"===typeof
d.document?h(d):h;"function"===typeof
define&&define.amd?define(function(){return
g}):"object"===
typeof exports?("object"===typeof
module&&"object"===typeof
module.exports&&(exports=module.exports=g),exports.Cookies=g):d.Cookies=g})("undefined"===typeof
window?this:window);mustache.min.js000064400000022470151171634130007504
0ustar00(function defineMustache(global,factory){if(typeof
exports==="object"&&exports&&typeof
exports.nodeName!=="string"){factory(exports)}else if(typeof
define==="function"&&define.amd){define(["exports"],factory)}else{global.Mustache={};factory(global.Mustache)}})(this,function
mustacheFactory(mustache){var objectToString=Object.prototype.toString;var
isArray=Array.isArray||function isArrayPolyfill(object){return
objectToString.call(object)==="[object Array]"};function
isFunction(object){return typeof object==="function"}function
typeStr(obj){return isArray(obj)?"array":typeof obj}function
escapeRegExp(string){return
string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function
hasProperty(obj,propName){return obj!=null&&typeof
obj==="object"&&propName in obj}var
regExpTest=RegExp.prototype.test;function testRegExp(re,string){return
regExpTest.call(re,string)}var nonSpaceRe=/\S/;function
isWhitespace(string){return!testRegExp(nonSpaceRe,string)}var
entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function
escapeHtml(string){return
String(string).replace(/[&<>"'`=\/]/g,function
fromEntityMap(s){return entityMap[s]})}var whiteRe=/\s*/;var
spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var
tagRe=/#|\^|\/|>|\{|&|=|!/;function
parseTemplate(template,tags){if(!template)return[];var sections=[];var
tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function
stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete
tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var
openingTagRe,closingTagRe,closingCurlyRe;function
compileTags(tagsToCompile){if(typeof
tagsToCompile==="string")tagsToCompile=tagsToCompile.split(spaceRe,2);if(!isArray(tagsToCompile)||tagsToCompile.length!==2)throw
new Error("Invalid tags: "+tagsToCompile);openingTagRe=new
RegExp(escapeRegExp(tagsToCompile[0])+"\\s*");closingTagRe=new
RegExp("\\s*"+escapeRegExp(tagsToCompile[1]));closingCurlyRe=new
RegExp("\\s*"+escapeRegExp("}"+tagsToCompile[1]))}compileTags(tags||mustache.tags);var
scanner=new Scanner(template);var
start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var
i=0,valueLength=value.length;i<valueLength;++i){chr=value.charAt(i);if(isWhitespace(chr)){spaces.push(tokens.length)}else{nonSpace=true}tokens.push(["text",chr,start,start+1]);start+=1;if(chr==="\n")stripSpace()}}if(!scanner.scan(openingTagRe))break;hasTag=true;type=scanner.scan(tagRe)||"name";scanner.scan(whiteRe);if(type==="="){value=scanner.scanUntil(equalsRe);scanner.scan(equalsRe);scanner.scanUntil(closingTagRe)}else
if(type==="{"){value=scanner.scanUntil(closingCurlyRe);scanner.scan(curlyRe);scanner.scanUntil(closingTagRe);type="&"}else{value=scanner.scanUntil(closingTagRe)}if(!scanner.scan(closingTagRe))throw
new Error("Unclosed tag at
"+scanner.pos);token=[type,value,start,scanner.pos];tokens.push(token);if(type==="#"||type==="^"){sections.push(token)}else
if(type==="/"){openSection=sections.pop();if(!openSection)throw
new Error('Unopened section "'+value+'" at
'+start);if(openSection[1]!==value)throw new Error('Unclosed
section "'+openSection[1]+'" at '+start)}else
if(type==="name"||type==="{"||type==="&"){nonSpace=true}else
if(type==="="){compileTags(value)}}openSection=sections.pop();if(openSection)throw
new Error('Unclosed section "'+openSection[1]+'"
at '+scanner.pos);return nestTokens(squashTokens(tokens))}function
squashTokens(tokens){var squashedTokens=[];var token,lastToken;for(var
i=0,numTokens=tokens.length;i<numTokens;++i){token=tokens[i];if(token){if(token[0]==="text"&&lastToken&&lastToken[0]==="text"){lastToken[1]+=token[1];lastToken[3]=token[3]}else{squashedTokens.push(token);lastToken=token}}}return
squashedTokens}function nestTokens(tokens){var nestedTokens=[];var
collector=nestedTokens;var sections=[];var token,section;for(var
i=0,numTokens=tokens.length;i<numTokens;++i){token=tokens[i];switch(token[0]){case"#":case"^":collector.push(token);sections.push(token);collector=token[4]=[];break;case"/":section=sections.pop();section[5]=token[2];collector=sections.length>0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return
nestedTokens}function
Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function
eos(){return this.tail===""};Scanner.prototype.scan=function
scan(re){var
match=this.tail.match(re);if(!match||match.index!==0)return"";var
string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return
string};Scanner.prototype.scanUntil=function scanUntil(re){var
index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case
0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return
match};function
Context(view,parentContext){this.view=view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function
push(view){return new Context(view,this)};Context.prototype.lookup=function
lookup(name){var cache=this.cache;var
value;if(cache.hasOwnProperty(name)){value=cache[name]}else{var
context=this,names,index,lookupHit=false;while(context){if(name.indexOf(".")>0){value=context.view;names=name.split(".");index=0;while(value!=null&&index<names.length){if(index===names.length-1)lookupHit=hasProperty(value,names[index]);value=value[names[index++]]}}else{value=context.view[name];lookupHit=hasProperty(context.view,name)}if(lookupHit)break;context=context.parent}cache[name]=value}if(isFunction(value))value=value.call(this.view);return
value};function Writer(){this.cache={}}Writer.prototype.clearCache=function
clearCache(){this.cache={}};Writer.prototype.parse=function
parse(template,tags){var cache=this.cache;var
tokens=cache[template];if(tokens==null)tokens=cache[template]=parseTemplate(template,tags);return
tokens};Writer.prototype.render=function render(template,view,partials){var
tokens=this.parse(template);var context=view instanceof Context?view:new
Context(view);return
this.renderTokens(tokens,context,partials,template)};Writer.prototype.renderTokens=function
renderTokens(tokens,context,partials,originalTemplate){var
buffer="";var token,symbol,value;for(var
i=0,numTokens=tokens.length;i<numTokens;++i){value=undefined;token=tokens[i];symbol=token[0];if(symbol==="#")value=this.renderSection(token,context,partials,originalTemplate);else
if(symbol==="^")value=this.renderInverted(token,context,partials,originalTemplate);else
if(symbol===">")value=this.renderPartial(token,context,partials,originalTemplate);else
if(symbol==="&")value=this.unescapedValue(token,context);else
if(symbol==="name")value=this.escapedValue(token,context);else
if(symbol==="text")value=this.rawValue(token);if(value!==undefined)buffer+=value}return
buffer};Writer.prototype.renderSection=function
renderSection(token,context,partials,originalTemplate){var self=this;var
buffer="";var value=context.lookup(token[1]);function
subRender(template){return
self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var
j=0,valueLength=value.length;j<valueLength;++j){buffer+=this.renderTokens(token[4],context.push(value[j]),partials,originalTemplate)}}else
if(typeof value==="object"||typeof
value==="string"||typeof
value==="number"){buffer+=this.renderTokens(token[4],context.push(value),partials,originalTemplate)}else
if(isFunction(value)){if(typeof originalTemplate!=="string")throw
new Error("Cannot use higher-order sections without the original
template");value=value.call(context.view,originalTemplate.slice(token[3],token[5]),subRender);if(value!=null)buffer+=value}else{buffer+=this.renderTokens(token[4],context,partials,originalTemplate)}return
buffer};Writer.prototype.renderInverted=function
renderInverted(token,context,partials,originalTemplate){var
value=context.lookup(token[1]);if(!value||isArray(value)&&value.length===0)return
this.renderTokens(token[4],context,partials,originalTemplate)};Writer.prototype.renderPartial=function
renderPartial(token,context,partials){if(!partials)return;var
value=isFunction(partials)?partials(token[1]):partials[token[1]];if(value!=null)return
this.renderTokens(this.parse(value),context,partials,value)};Writer.prototype.unescapedValue=function
unescapedValue(token,context){var
value=context.lookup(token[1]);if(value!=null)return
value};Writer.prototype.escapedValue=function
escapedValue(token,context){var
value=context.lookup(token[1]);if(value!=null)return
mustache.escape(value)};Writer.prototype.rawValue=function
rawValue(token){return
token[1]};mustache.name="mustache.js";mustache.version="2.3.0";mustache.tags=["{{","}}"];var
defaultWriter=new Writer;mustache.clearCache=function clearCache(){return
defaultWriter.clearCache()};mustache.parse=function
parse(template,tags){return
defaultWriter.parse(template,tags)};mustache.render=function
render(template,view,partials){if(typeof
template!=="string"){throw new TypeError('Invalid template!
Template should be a "string" '+'but
"'+typeStr(template)+'" was given as the first
'+"argument for mustache#render(template, view,
partials)")}return
defaultWriter.render(template,view,partials)};mustache.to_html=function
to_html(template,view,partials,send){var
result=mustache.render(template,view,partials);if(isFunction(send)){send(result)}else{return
result}};mustache.escape=escapeHtml;mustache.Scanner=Scanner;mustache.Context=Context;mustache.Writer=Writer;return
mustache});
notifly-core.js000064400000025263151171634130007526 0ustar00/*!
* notifly-core.js
* https://www.themexpert.com/
* Version: 1.0.0
*
* Copyright ThemeXpert
* Released under the MIT license
* https://www.themexpert.com/notifly
*/
;
(function($, scope) {
"use strict";
var NotiflyTimeout;
var Notifly = scope.Notifly = {
/**
* Basic setup
*
* @return void
*/
initialize: function() {
/*console.log(Joomla.getOptions('notifly').params);*/
/*Get the cookie value*/
if (Cookies.get('notifly_hide_message') ===
'true') {
return;
}
/*get the list first*/
this.items = this.getList();
if(!this.items.length){
console.warn('Notifly:', 'Events are empty!
Please configure your integrations.');
return;
}
this.makeWrapper();
this.checked = false;
this.time = 0;
this.totalShown = 0;
this.max_bypage =
parseInt(Joomla.getOptions('notifly').params.max_bypage);
this.initial_delay =
parseInt(Joomla.getOptions('notifly').params.initial_delay) *
1000;
this.display_time =
parseInt(Joomla.getOptions('notifly').params.display_time) *
1000;
this.delay_time =
parseInt(Joomla.getOptions('notifly').params.delay_time) * 1000;
/*
notify_max per user per session
if(Joomla.getOptions('notifly').params.notify_max ==
'1'){
$.session.set("notifly", "value");
}
$.session.set("myVar", "value");
*/
this.showList(this.items);
$('#notifly-wrapper #text,#notifly-wrapper
#image').on('click', function() {
/*console.warn('Clicked');*/
Notifly.updateClickLog();
});
$('#notifly-wrapper #close').on('click',
function() {
/*console.warn('Clicked');*/
Notifly.hideMessage();
});
if (!this.checked) {
if ($(window).width() < 768) { /*if width is less than
768px*/
this.mobileFunctions(); /*execute mobile function*/
} else { /*if width is more than 768px*/
this.desktopFunctions(); /*execute desktop function*/
}
this.checked = true;
}
},
/**
* Called from outside. Only ever called with task
'folder.delete'
*
* @param string task [description]
*
* @return void
*/
makeWrapper: function() {
var wrapperWidth =
Joomla.getOptions('notifly').params.wrapper_width;
var show_branding =
parseInt(Joomla.getOptions('notifly').params.show_branding);
var htmlNotifly = '<div id="notifly-wrapper"
style="width:' + wrapperWidth + ';"
class="out"><div class="card-small"><div
class="row flex flex--align-vertical">';
htmlNotifly = htmlNotifly + '<div id="image"
class="col-nano-3"><img src=""
/></div>';
htmlNotifly = htmlNotifly + '<div id="text"
class="col-nano-9"></div>';
if(show_branding){
htmlNotifly = htmlNotifly + '<div
class="poweredBy"><i class="svg"><svg
width="7" height="13" viewBox="0 0 7 13"
xmlns="http://www.w3.org/2000/svg"><g fill="none"
fill-rule="evenodd"><path d="M4.127.496C4.51-.12
5.37.356 5.16 1.07L3.89 5.14H6.22c.483 0 .757.616.464 1.044l-4.338
6.34c-.407.595-1.244.082-1.01-.618L2.72 7.656H.778c-.47
0-.748-.59-.48-1.02L4.13.495z" fill="#F6A623
"></path><path fill="#FEF79E "
d="M4.606.867L.778 7.007h2.807l-1.7 5.126
4.337-6.34H3.16"></path></g></svg></i>
<span>by</span> <a target="_blank"
href="https://www.themexpert.com/notifly?utm_campaign=notifly&utm_medium=powerd_by&utm_source='
+ window.location.protocol + '//' + window.location.hostname +
Joomla.getOptions('notifly').baseurl +
'">Notifly</a></div>';
}
htmlNotifly = htmlNotifly + '</div>';
if (Joomla.getOptions('notifly').params.allow_close
== 1) {
htmlNotifly = htmlNotifly + '<div
id="close"><span>x</span></div>';
}
htmlNotifly = htmlNotifly +
'</div></div>';
$('body').append(htmlNotifly);
},
/**
* Called from outside. Only ever called with task
'folder.delete'
*
* @param string task [description]
*
* @return void
*/
getList: function() {
/*console.warn('getList');*/
return Joomla.getOptions('notifly').items;
},
/**
* Called from outside. Only ever called with task
'folder.delete'
*
* @param string task [description]
*
* @return void
*/
showList: function(items) {
this.initial_delay =
parseInt(Joomla.getOptions('notifly').params.initial_delay) *
1000;
this.display_time =
parseInt(Joomla.getOptions('notifly').params.display_time) *
1000;
this.delay_time =
parseInt(Joomla.getOptions('notifly').params.delay_time) * 1000;
/*set initial delay time*/
this.time = this.initial_delay;
$.each(items, function(index, item) {
/*max per page has crossed!*/
if (Notifly.totalShown > Notifly.max_bypage) {
return;
}
var explode = function() {
var converter = new showdown.Converter();
var renderedHtml = converter.makeHtml(item.message);
Notifly.showMessage(index, renderedHtml, item.image);
};
setTimeout(explode, Notifly.time);
Notifly.time = Notifly.time + Notifly.display_time +
Notifly.delay_time;
Notifly.totalShown++;
});
/*after all times over, wait and repeat if allowed*/
if (Joomla.getOptions('notifly').params.notifly_loop
== '1') {
setTimeout(
function() {
if (Notifly.totalShown > Notifly.max_bypage) {
return;
}
Notifly.destroy();
Notifly.initialize();
},
Notifly.time + Notifly.initial_delay
);
}
},
showMessage: function(index, text, image) {
/*Get the cookie value*/
if (Cookies.get('notifly_hide_message') ===
'true') {
return;
}
/*console.warn('showMessage');*/
$('#notifly-wrapper #text').html(text);
$('#notifly-wrapper #image
img').attr('src', image);
/*$( '#notifly-wrapper'
).fadeIn('slow').delay(Notifly.display_time).fadeOut('fast');*/
$('#notifly-wrapper').show().removeClass('out').addClass('active');
setTimeout(function() {
$('#notifly-wrapper').removeClass('active').addClass('out').fadeOut('fast');
}, Notifly.display_time);
this.updateViewLog();
},
hideMessage: function() {
$('#notifly-wrapper').removeClass('active').addClass('out').fadeOut('fast');
/*set cookie*/
var expire_cookie =
Joomla.getOptions('notifly').params.expire_cookie;
expire_cookie = (expire_cookie * 60 * 60); /*60*60 = 1 hour
1*60 = 1 min*/
Cookies.set('notifly_hide_message', 'true',
{
expires: expire_cookie
});
/*console.log('notifly disabled for ' +
Joomla.getOptions('notifly').params.expire_cookie +
'hours');*/
},
updateViewLog: function() {
/*
console.warn(Joomla.getOptions('notifly').baseurl);
console.warn('updateViewLog');
call ajax api
index.php?option=com_ajax&plugin=notifly&format=json&action=click
Joomla.getOptions('notifly').baseurl +
console.log(Joomla.getOptions('notifly').baseurl +
"/index.php?option=com_ajax&plugin=notifly&format=json");
*/
if
(Joomla.getOptions('notifly').params.enable_hitcounter ==
'0') return;
var updateViewLogInfo =
jQuery.get(Joomla.getOptions('notifly').baseurl +
"/index.php?option=com_ajax&plugin=notifly&format=json",
function(data, status) {
if (status = !'success') {
console.error('failed to update notifly
hitlog!');
}
/*console.warn('update view log');*/
});
},
updateClickLog: function() {
/*
console.warn(Joomla.getOptions('notifly').baseurl);
console.warn('updateClickLog');
call ajax api
index.php?option=com_ajax&plugin=notifly&format=json&action=click
*/
if
(Joomla.getOptions('notifly').params.enable_hitcounter ==
'0') return;
var updateClickLogInfo =
jQuery.get(Joomla.getOptions('notifly').baseurl +
"/index.php?option=com_ajax&plugin=notifly&action=click&format=json",
function(data, status) {
if (status = !'success') {
console.error('failed to update notifly
clicklog!');
}
/*console.warn('updated click');*/
});
},
mobileFunctions: function() {
/*console.warn('mobileFunctions');*/
if (Joomla.getOptions('notifly').params.hide_mobile
== '1') {
this.destroy();
} else if (!$('#notifly-wrapper').length) {
this.initialize();
}
},
desktopFunctions: function() {
/*
console.warn('desktopFunctions');
console.warn(Joomla.getOptions('notifly').params.hide_desktop);
*/
if (Joomla.getOptions('notifly').params.hide_desktop
== '1') {
this.destroy();
} else if (!$('#notifly-wrapper').length) {
this.initialize();
}
},
destroy: function() {
/*console.warn('destroy');*/
$('#notifly-wrapper').remove();
},
resize: function() {
/*console.warn('resize');*/
if ($(window).width() < 768) { /*if width is less than
768px*/
this.mobileFunctions(); /*execute mobile function*/
} else { /*if width is more than 768px*/
this.desktopFunctions(); /*execute desktop function*/
}
}
};
$(function() {
/*Added to populate data on iframe load*/
Notifly.initialize();
$(window).resize(function() {
Notifly.resize();
});
});
}(jQuery, window));notifly-core.min.js000064400000012247151171634130010306
0ustar00/*!
* notifly-core.js
* https://www.themexpert.com/
* Version: 1.0.0
*
* Copyright ThemeXpert
* Released under the MIT license
* https://www.themexpert.com/notifly
*/
!(function($,scope){"use strict";var NotiflyTimeout;var
Notifly=scope.Notifly={initialize:function(){console.log(Joomla.getOptions('notifly').params);if(Cookies.get('notifly_hide_message')==='true'){return}this.makeWrapper(this.items);this.checked=!1;this.items=this.getList();this.time=0;this.totalShown=0;this.max_bypage=parseInt(Joomla.getOptions('notifly').params.max_bypage);this.initial_delay=parseInt(Joomla.getOptions('notifly').params.initial_delay)*1000;this.display_time=parseInt(Joomla.getOptions('notifly').params.display_time)*1000;this.delay_time=parseInt(Joomla.getOptions('notifly').params.delay_time)*1000;this.showList(this.items);$('#notifly-wrapper
#text,#notifly-wrapper
#image').on('click',function(){Notifly.updateClickLog()});$('#notifly-wrapper
#close').on('click',function(){Notifly.hideMessage()});if(!this.checked){if($(window).width()<768){this.mobileFunctions()}else{this.desktopFunctions()}this.checked=!0}},makeWrapper:function(){var
wrapperWidth=Joomla.getOptions('notifly').params.wrapper_width;var
htmlNotifly='<div id="notifly-wrapper"
style="width:'+wrapperWidth+';"
class="out"><div class="card-small"><div
class="row flex
flex--align-vertical">';htmlNotifly=htmlNotifly+'<div
id="image" class="col-nano-3"><img
src=""
/></div>';htmlNotifly=htmlNotifly+'<div
id="text"
class="col-nano-9"></div>';htmlNotifly=htmlNotifly+'<div
class="poweredBy"><i class="svg"><svg
width="7" height="13" viewBox="0 0 7 13"
xmlns="http://www.w3.org/2000/svg"><g fill="none"
fill-rule="evenodd"><path d="M4.127.496C4.51-.12
5.37.356 5.16 1.07L3.89 5.14H6.22c.483 0 .757.616.464 1.044l-4.338
6.34c-.407.595-1.244.082-1.01-.618L2.72 7.656H.778c-.47
0-.748-.59-.48-1.02L4.13.495z" fill="#F6A623
"></path><path fill="#FEF79E "
d="M4.606.867L.778 7.007h2.807l-1.7 5.126
4.337-6.34H3.16"></path></g></svg></i>
<span>by</span> <a target="_blank"
href="https://www.themexpert.com/notifly?utm_campaign=notifly&utm_medium=powerd_by&utm_source='+window.location.protocol+'//'+window.location.hostname+Joomla.getOptions('notifly').baseurl+'">Notifly</a></div>';htmlNotifly=htmlNotifly+'</div>';if(Joomla.getOptions('notifly').params.allow_close==1){htmlNotifly=htmlNotifly+'<div
id="close"><span>x</span></div>'}htmlNotifly=htmlNotifly+'</div></div>';$('body').append(htmlNotifly)},getList:function(){return
Joomla.getOptions('notifly').items},showList:function(items){this.initial_delay=parseInt(Joomla.getOptions('notifly').params.initial_delay)*1000;this.display_time=parseInt(Joomla.getOptions('notifly').params.display_time)*1000;this.delay_time=parseInt(Joomla.getOptions('notifly').params.delay_time)*1000;this.time=this.initial_delay;$.each(items,function(index,item){if(Notifly.totalShown>Notifly.max_bypage){return}var
explode=function(){var converter=new showdown.Converter();var
renderedHtml=converter.makeHtml(item.message);Notifly.showMessage(index,renderedHtml,item.image)};setTimeout(explode,Notifly.time);Notifly.time=Notifly.time+Notifly.display_time+Notifly.delay_time;Notifly.totalShown++});if(Joomla.getOptions('notifly').params.notifly_loop=='1'){setTimeout(function(){if(Notifly.totalShown>Notifly.max_bypage){return}Notifly.destroy();Notifly.initialize()},Notifly.time+Notifly.initial_delay)}},showMessage:function(index,text,image){if(Cookies.get('notifly_hide_message')==='true'){return}$('#notifly-wrapper
#text').html(text);$('#notifly-wrapper #image
img').attr('src',image);$('#notifly-wrapper').show().removeClass('out').addClass('active');setTimeout(function(){$('#notifly-wrapper').removeClass('active').addClass('out').fadeOut('fast')},Notifly.display_time);this.updateViewLog()},hideMessage:function(){$('#notifly-wrapper').removeClass('active').addClass('out').fadeOut('fast');var
expire_cookie=Joomla.getOptions('notifly').params.expire_cookie;expire_cookie=(expire_cookie*60*60);Cookies.set('notifly_hide_message','true',{expires:expire_cookie})},updateViewLog:function(){if(Joomla.getOptions('notifly').params.enable_hitcounter=='0')return;var
updateViewLogInfo=jQuery.get(Joomla.getOptions('notifly').baseurl+"/index.php?option=com_ajax&plugin=notifly&format=json",function(data,status){if(status=!'success'){console.error('failed
to update notifly
hitlog!')}})},updateClickLog:function(){if(Joomla.getOptions('notifly').params.enable_hitcounter=='0')return;var
updateClickLogInfo=jQuery.get(Joomla.getOptions('notifly').baseurl+"/index.php?option=com_ajax&plugin=notifly&action=click&format=json",function(data,status){if(status=!'success'){console.error('failed
to update notifly
clicklog!')}})},mobileFunctions:function(){if(Joomla.getOptions('notifly').params.hide_mobile=='1'){this.destroy()}else
if(!$('#notifly-wrapper').length){this.initialize()}},desktopFunctions:function(){if(Joomla.getOptions('notifly').params.hide_desktop=='1'){this.destroy()}else
if(!$('#notifly-wrapper').length){this.initialize()}},destroy:function(){$('#notifly-wrapper').remove()},resize:function(){if($(window).width()<768){this.mobileFunctions()}else{this.desktopFunctions()}}};$(function(){Notifly.initialize();$(window).resize(function(){Notifly.resize()})})}(jQuery,window));showdown.min.js000064400000274434151171634130007554
0ustar00/*! showdown v 1.8.1 - 01-11-2017 */
(function(){function g(g){"use strict";var
A={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default
extra whiteline added to code
blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn
on/off generated header
id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add
a prefix to the generated header ids. Passing a string will prefix that
string to the header id. Setting to true will add a generic
'section-'
prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting
this option to true will prevent showdown from modifying the prefix. This
might result in malformed IDs (if, for instance, the " char is used in
the
prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate
header ids compatible with github style (spaces are replaced with dashes, a
bunch of non alphanumeric chars are
removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove
only spaces, ' and \" from generated header ids (including
prefixes), replacing them with dashes (-). WARNING: This might result in
malformed
ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The
header blocks level
start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn
on/off image dimension
parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn
on/off GFM autolink
style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes
trailing punctuation from links generated with
autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse
midword underscores as literal
underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse
midword asterisks as literal
asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn
on/off strikethrough
support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn
on/off tables
support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add
an id to table
headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn
on/off GFM fenced code blocks
support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn
on/off GFM tasklist
support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents
weird effects in live previews due to incomplete
input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries
to smartly fix indentation in es6
strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables
the requirement of indenting nested sublists by 4
spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses
simple line breaks as <br> (GFM
Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes
adding a space between `#` and the header text mandatory (GFM
Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables
github
@mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes
the link generated by @mentions. Only applies if ghMentions option is
enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode
e-mail addresses through the use of Character Entities, transforming ASCII
e-mail addresses into its equivalent decimal
entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open
all links in new
windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support
for HTML Tag escaping. ex:
<div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable
emoji support. Ex: `this is a :smile:
emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable
support for underline. Syntax is double or triple underscores: `__underline
word__`. With this option enabled, underscores no longer parses into
`<em>` and
`<strong>`",type:"boolean"}};if(!1===g)return
JSON.parse(JSON.stringify(A));var C={};for(var I in
A)A.hasOwnProperty(I)&&(C[I]=A[I].defaultValue);return C}function
A(g,A){"use strict";var C=A?"Error in "+A+"
extension->":"Error in unnamed
extension",e={valid:!0,error:""};I.helper.isArray(g)||(g=[g]);for(var
r=0;r<g.length;++r){var t=C+" sub-extension "+r+":
",a=g[r];if("object"!=typeof a)return
e.valid=!1,e.error=t+"must be an object, but "+typeof a+"
given",e;if(!I.helper.isString(a.type))return
e.valid=!1,e.error=t+'property "type" must be a string, but
'+typeof a.type+" given",e;var
n=a.type=a.type.toLowerCase();if("language"===n&&(n=a.type="lang"),"html"===n&&(n=a.type="output"),"lang"!==n&&"output"!==n&&"listener"!==n)return
e.valid=!1,e.error=t+"type "+n+' is not recognized. Valid
values: "lang/language", "output/html" or
"listener"',e;if("listener"===n){if(I.helper.isUndefined(a.listeners))return
e.valid=!1,e.error=t+'. Extensions of type "listener" must
have a property called "listeners"',e}else
if(I.helper.isUndefined(a.filter)&&I.helper.isUndefined(a.regex))return
e.valid=!1,e.error=t+n+' extensions must define either a
"regex" property or a "filter"
method',e;if(a.listeners){if("object"!=typeof
a.listeners)return e.valid=!1,e.error=t+'"listeners"
property must be an object but '+typeof a.listeners+"
given",e;for(var o in
a.listeners)if(a.listeners.hasOwnProperty(o)&&"function"!=typeof
a.listeners[o])return e.valid=!1,e.error=t+'"listeners"
property must be an hash of [event name]: [callback].
listeners.'+o+" must be a function but "+typeof
a.listeners[o]+"
given",e}if(a.filter){if("function"!=typeof a.filter)return
e.valid=!1,e.error=t+'"filter" must be a function, but
'+typeof a.filter+" given",e}else
if(a.regex){if(I.helper.isString(a.regex)&&(a.regex=new
RegExp(a.regex,"g")),!(a.regex instanceof RegExp))return
e.valid=!1,e.error=t+'"regex" property must either be a
string or a RegExp object, but '+typeof a.regex+"
given",e;if(I.helper.isUndefined(a.replace))return
e.valid=!1,e.error=t+'"regex" extensions must implement a
replace string or function',e}}return e}function C(g,A){"use
strict";return"¨E"+A.charCodeAt(0)+"E"}var
I={},e={},r={},t=g(!0),a="vanilla",n={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:g(!0),allOn:function(){"use
strict";var A=g(!0),C={};for(var I in
A)A.hasOwnProperty(I)&&(C[I]=!0);return
C}()};I.helper={},I.extensions={},I.setOption=function(g,A){"use
strict";return t[g]=A,this},I.getOption=function(g){"use
strict";return t[g]},I.getOptions=function(){"use
strict";return t},I.resetOptions=function(){"use
strict";t=g(!0)},I.setFlavor=function(g){"use
strict";if(!n.hasOwnProperty(g))throw Error(g+" flavor was not
found");I.resetOptions();var A=n[g];a=g;for(var C in
A)A.hasOwnProperty(C)&&(t[C]=A[C])},I.getFlavor=function(){"use
strict";return a},I.getFlavorOptions=function(g){"use
strict";if(n.hasOwnProperty(g))return
n[g]},I.getDefaultOptions=function(A){"use strict";return
g(A)},I.subParser=function(g,A){"use
strict";if(I.helper.isString(g)){if(void
0===A){if(e.hasOwnProperty(g))return e[g];throw Error("SubParser named
"+g+" not
registered!")}e[g]=A}},I.extension=function(g,C){"use
strict";if(!I.helper.isString(g))throw Error("Extension
'name' must be a
string");if(g=I.helper.stdExtName(g),I.helper.isUndefined(C)){if(!r.hasOwnProperty(g))throw
Error("Extension named "+g+" is not
registered!");return r[g]}"function"==typeof
C&&(C=C()),I.helper.isArray(C)||(C=[C]);var
e=A(C,g);if(!e.valid)throw
Error(e.error);r[g]=C},I.getAllExtensions=function(){"use
strict";return r},I.removeExtension=function(g){"use
strict";delete r[g]},I.resetExtensions=function(){"use
strict";r={}},I.validateExtension=function(g){"use
strict";var
C=A(g,null);return!!C.valid||(console.warn(C.error),!1)},I.hasOwnProperty("helper")||(I.helper={}),I.helper.isString=function(g){"use
strict";return"string"==typeof g||g instanceof
String},I.helper.isFunction=function(g){"use strict";var
A={};return g&&"[object
Function]"===A.toString.call(g)},I.helper.isArray=function(g){"use
strict";return
Array.isArray(g)},I.helper.isUndefined=function(g){"use
strict";return void 0===g},I.helper.forEach=function(g,A){"use
strict";if(I.helper.isUndefined(g))throw new Error("obj param is
required");if(I.helper.isUndefined(A))throw new Error("callback
param is required");if(!I.helper.isFunction(A))throw new
Error("callback param must be a
function/closure");if("function"==typeof
g.forEach)g.forEach(A);else if(I.helper.isArray(g))for(var
C=0;C<g.length;C++)A(g[C],C,g);else{if("object"!=typeof
g)throw new Error("obj does not seem to be an array or an iterable
object");for(var e in
g)g.hasOwnProperty(e)&&A(g[e],e,g)}},I.helper.stdExtName=function(g){"use
strict";return
g.replace(/[_?*+\/\\.^-]/g,"").replace(/\s/g,"").toLowerCase()},I.helper.escapeCharactersCallback=C,I.helper.escapeCharacters=function(g,A,I){"use
strict";var
e="(["+A.replace(/([\[\]\\])/g,"\\$1")+"])";I&&(e="\\\\"+e);var
r=new RegExp(e,"g");return g=g.replace(r,C)};var
o=function(g,A,C,I){"use strict";var
e,r,t,a,n,o=I||"",s=o.indexOf("g")>-1,i=new
RegExp(A+"|"+C,"g"+o.replace(/g/g,"")),l=new
RegExp(A,o.replace(/g/g,"")),c=[];do{for(e=0;t=i.exec(g);)if(l.test(t[0]))e++||(a=(r=i.lastIndex)-t[0].length);else
if(e&&!--e){n=t.index+t[0].length;var
u={left:{start:a,end:r},match:{start:r,end:t.index},right:{start:t.index,end:n},wholeMatch:{start:a,end:n}};if(c.push(u),!s)return
c}}while(e&&(i.lastIndex=r));return
c};I.helper.matchRecursiveRegExp=function(g,A,C,I){"use
strict";for(var
e=o(g,A,C,I),r=[],t=0;t<e.length;++t)r.push([g.slice(e[t].wholeMatch.start,e[t].wholeMatch.end),g.slice(e[t].match.start,e[t].match.end),g.slice(e[t].left.start,e[t].left.end),g.slice(e[t].right.start,e[t].right.end)]);return
r},I.helper.replaceRecursiveRegExp=function(g,A,C,e,r){"use
strict";if(!I.helper.isFunction(A)){var t=A;A=function(){return t}}var
a=o(g,C,e,r),n=g,s=a.length;if(s>0){var
i=[];0!==a[0].wholeMatch.start&&i.push(g.slice(0,a[0].wholeMatch.start));for(var
l=0;l<s;++l)i.push(A(g.slice(a[l].wholeMatch.start,a[l].wholeMatch.end),g.slice(a[l].match.start,a[l].match.end),g.slice(a[l].left.start,a[l].left.end),g.slice(a[l].right.start,a[l].right.end))),l<s-1&&i.push(g.slice(a[l].wholeMatch.end,a[l+1].wholeMatch.start));a[s-1].wholeMatch.end<g.length&&i.push(g.slice(a[s-1].wholeMatch.end)),n=i.join("")}return
n},I.helper.regexIndexOf=function(g,A,C){"use
strict";if(!I.helper.isString(g))throw"InvalidArgumentError:
first parameter of showdown.helper.regexIndexOf function must be a
string";if(A instanceof RegExp==!1)throw"InvalidArgumentError:
second parameter of showdown.helper.regexIndexOf function must be an
instance of RegExp";var e=g.substring(C||0).search(A);return
e>=0?e+(C||0):e},I.helper.splitAtIndex=function(g,A){"use
strict";if(!I.helper.isString(g))throw"InvalidArgumentError:
first parameter of showdown.helper.regexIndexOf function must be a
string";return[g.substring(0,A),g.substring(A)]},I.helper.encodeEmailAddress=function(g){"use
strict";var
A=[function(g){return"&#"+g.charCodeAt(0)+";"},function(g){return"&#x"+g.charCodeAt(0).toString(16)+";"},function(g){return
g}];return
g=g.replace(/./g,function(g){if("@"===g)g=A[Math.floor(2*Math.random())](g);else{var
C=Math.random();g=C>.9?A[2](g):C>.45?A[1](g):A[0](g)}return
g})},"undefined"==typeof
console&&(console={warn:function(g){"use
strict";alert(g)},log:function(g){"use
strict";alert(g)},error:function(g){"use strict";throw
g}}),I.helper.regexes={asteriskDashAndColon:/([*_:~])/g},I.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'<img
width="20" height="20" align="absmiddle"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAOwUlEQVR42uVbCVyO6RbPmn0sw9gZS0aZO4y5GTEUE2ObxjZjrbHEJVy3sWS5pkaWxjLEkCVDSbSgFLdESaWSLIVUSIi4kvb9f895vi/zbbR+yZ339/tbnu99n/ec/3Oe85xznufV0CjDBaAdwZqwnzCJ0FXjHV70/i8J5oQDhCFV8cJdq1atwqxZs+Ds7Iz4+HhqwgXCLELNKlK6G2Ej4e6lS5ewZcsWzJgxA+fOnWNZFqvzxT1v3boF/qcsBg0ahP3796OwsJAFWKYuIqjfPoS9cXFxWL58Obp06SInh5aWFr//jjoJWLlu3TolAorRuXNn7Ny5k4W4Spgj81xrgj5hLmED4RDhlNRygglBhADCSakpWxFMCHoETUJTwrYHDx7A1NT0je9nPHz4kN/fXl0EeI0aNeqtAjB69+4NPz8/FsSdlXvy5An8/f1hZ2cHCwsLGBsbY/To0cJy9PT0MGDAAAwePBhGRkbClNesWYODBw8iODgYOTk53M/d9evXo27duiW++8iRI3z/ZHURENOjR48ShSjGuHHjhHJ16tQp9TOKaNWqlZKpvw1MHluQOpSvk5eXh5YtW5ZbmarAvHnzmIBd6iCgXnZ2Npo1a1atCWAfwY5SHQTUKCoqQocOHao1AebmHBJgi7p8QBDP6epMwKFDvMDAWF0ELLS1ta3WBNy9e5cJMFIXAdvt7e2rNQHDhw9nAv5D+KKylV9y8+bNCi1pVYWZM2cyCfaVTcDdsqzH7xpBQRxcwqyylLdi5/K+KM/Q0dFhAqIri4Bn1T0AUgVpdmhYUeVHnD59+r1TnjF27Fgm4HhFCThoYmLyXhLQoEGD4mRKsyIE3OrZs+d7SQCDCyZcNSqv8k1evXoFTU3NUr+wzUcfYqRBf8yb/C2WzfoBFoTF08fBdMIITDD8CsP1+kL30x7Q6dYZH7drjfZ0f4fWLdG1Q1t81qMLBvTRwejB/TBl1BDMnzQGS2dMxKo5k7Fs9iSY/jAaBvR8Pc26pZaH02quLZSXgO6xsbGlelGnli1wZKcVMqN8gKcRwItrf+K/VB95doXaLwOJIVSzOU/+2Re5kV7IuuyJrIhTyLt6mmztLBBPNZLHoUAy9fE8UvJ8ikxfj8PwJPQErJeYlkquTZs2MQFLykuANgc/Jb2kn3Z3ZMaQUrmxwO1zyAo7gfRAJ6RfOIyMEFdkXj5F8BTK5lzxQv610yi8QcFatI8gQoCIK7x+hojwRnaE5H4JTiEj9Pjr/rJDqcZyn9b4ovu45LYbdWvXeqtsXMHiSlZ5CegRExPz1hd83PYj5POo0QinXyLFg48hnZTOiQ1Dzr1IZEaeQRoJn0HKZIR7lA2kfHrQUerXHTlx4ZL+rnjjFRGRGeYB5MUj2GnbW+XbuJFrp1heXgI6JCYmvvUFN1x3Aek3SWkapRAXMeJFGS8ge2Xfuog0toaykED3Mpk8+shOk+sv68Y50V9WuKewBKt5094o39atW/mRf5WXgIYZGRlo3Lixys4nj6A6Z1YMcqRCpwU4ouDlUyHk/QA/hNttR25Wlvh/ZthJUsil9ATQ/axkYbqEzDgfL0Ts/x35+aLyTES7IY36Q6w/+Q4/tP6wuUoZ9+7dy7ebVmQZjO/atavKzn32rAdeXkd6KCkXdAxZ13yFcLFnvPD73zrDVrsdTs6eggKSuSjjORHkUGoC0i86Iyc6QPQX7eqMnTodYNuzHU4vnosiaitMSUSavwMy6d3IvEUrzViVMrq5uXEX4ytCgL++vr5Sx7Vr1cIDX0dKkQJfj37Rs3jw1sBxkwlwGD4Ax3+ciN1faCHW76xQRFgAOcjSEMBkIe0x8nLzcez7kTg8Rh/uxuOxR/cTJISFSfq7eATpZCk8CAfXLVFJwIULXHnHoIoQYLtw4UKljps2aogXQcQuef/XAiMDKY+S4DhyEFwpDnCj9f+Afl8EbbWRTANaAdihlYoAMn8aZzyNuYODX/eD29TvRH/7v+qN8H27JdOAyWQfQQ74xPafVRLAPox9WUlK6hIGEgx4f00Kg2JcvHhRqeP6FIwknXemyen/2gLIIeC/CYk49M0AuE4xgtu0sThg8AUCN62TEuBdRgJo2Y+Kxh9D/k59SQiwH9QHobt3SAk4KSGA4oWjm1YqyVi8U6Soj4yOrHM/jTAyKVby/PnzIoNi8L+L4eXlpXoFcLcTgc1rAlISkJeXDxeK2A6P1hdTwI6mQPTJE+WbAlnJyE7PhNO3Q3BkrKGYWtxfHMkkmQLO0ilwA7+vXqAkn66urtBLUZ9iHfm30NBQaPAf165dA0d9vP2UlJSEp0+f4vHjx3j06JH4e+rUqUovcNmyGkiNEkLwklXsBG+ecMUOnfbYod1emG5uboFKJ8jPFVD0l0dBUHqoPDHpQeQEb0qc4FUHe3KAbYUT9JgzDbwOFL5MfN0fXkXhJ5PxSvLt2LFD1Ah5u4z1YJ14l4qnBe8v3rhxAzz4PAVG8nLHivIP0dHRiIiIQGRkpEgmrl69ClW1QBMjQ7LDW8hmU+RRI69ckJIkhL7jfRJBm62R+TJVYq6h0jhBRslsivqenT2MF/7OyI70VmkFhWnPJaS6OyPkt43IycqR9EfWlH7JDQUUTuNhCHR7Ke9YcRp/5coVoQPrcvnyZURFRYmBZlLS0kR8MVLD29sbnp6e8PHxQUBAgCgn8YO8E3z79m3BGKeVc+bMkXuBZt06SA12F/F5Go0gR4C8HBalPZMPXKL8lQKhPAqF+f97KXFyNx6HQsoPsshJ/kmAp2TKkJLISpXvjyxNhMYcDVLOEO+lPDi8B5mamipkZx1YF9YpJCRErAy+vr5CZ9ZdWABhDGEYYTBhAOFz3g4nfMJelNCbkNCpUye5F034mvxIPi1/FM+zQCw0k5B9O0iEr5kRXkqhMJOVf9NXIHjtT7hmaymSoBzKETimkAuFpaF1dkwI9RcmIYaXv3BJXoGCuyIgk5WpefPmKCgoYK46SmX/RKoL69Sfl0WuFEl1HlmWJXE5z6WmTZvKJxxmxkIQ3AuU5APk6NICj4hRT6eITTEEzqWk55HHPjz3cxJhNF5cxeNT9kj2cRDTQjEkzpDtjyyCic5l5fEA7uSHFEefR5pPsahrb2B9QkICFHeJ51HunkdLIg0VLY0BFKdLwllVHp4dHyvst3QuEiiju21vA/+VZkiluIKt4I3RIfWXQ4QgKUxkni47LJWUP3PmjHo2RxVI+CebmKJP6EiFDVurxUgmExe5PHlnPAkn8w4QqW62NCVmYopozid5H0CI9RKE21ggJeAYEeMnfitOnRn5XCfgeJ+VTosWQU8MOc6ZE0cqnUm4fv165SrPBVHCfMI4TowUfmOfsIcdJh92kBWmUcP6GDt8EDZbzIffH5tx3/ewSFjw5LKk0MEFEkZenDBjgew7Yiog5brkt+QrknvJmhIp4Apw/A1bVpjhG/0v5d7Vrl07bNu2TelUSqUoz8uI3Z49OEtBAy+TdP1CqKtwHzvQUxxgTJs2TeX5gdq1a0ObSmCjh+jB+NuvRamL1+3ls77HCip1rTSdJP5eNnMizKndjMLoH42G4bthX+FzHS3UVVEC69evH3799VeKMXJZrlWKclUGAZ5jxoxB02ZNsNlxH74aagBHZyex986HlVTczyGmI58h4CjL2toa48ePFxsUPEotWrQoc0GT0/C2bduiY8eO4ISMcxLeoOFYhS6qm2EpoZG65jmbv+dPSyRZlt5QfVjvtX19AOFNL+aDFNI4m0eFc9Ho5ORkaGtrl5kAVp6DMOk88efEjLe++ZhclZwHTJHEHbs4YOCmLj2645fdvwnTK42zoXtaEHwNDQ3LXdZm5yad3/2r+gQmDsRnIF5KAldX6zdsgG/GG8F44Vzcu3eP2y1K6GPr2rVrK1zbnz59Or/LoaoJCPZ4kCZsjw9GECL79OmDj9q2wb+320C3/5fgPQO6Vrzh+fpcDqxXr16lbHBwgkZXm6okYJr0ECMrX5vraiJ1lArEjrEnzWuOqemiYj9spGd2ee478XkiPsJakmJ83qA05/8qXNurJFLiunXrhpo1a6LxB02wyHIFZpovgOHwYfjZ0hK2lH5u2rwZ5suWYv5ycyUlmjRpgl69eimlrFy3kwuoyOvXr19frm3RokVMwPZ3TYC57E6xVq+e6KzVDSaL/oEp82Zh8IhhWLjGAp/p9oX5ujVKBNjY2MDV1VWuzd3dXaTesm2biUQuZ8u28elSPmKr8a4vdog8GnJpcT1N1KHUuBbt0jSgWuGbzJh3mVhh2TYHBwdxjFa2jVcZnvPVlQBOLXdZWlqW2ZFxNYYVlm07fPgwAgMD5dr4OD5HeHLFFxM+O42DGtXhIkFaMQlcUjIzM0P37t1Ro0YNpZPjPJcVK7SOjo5ybU5OTqIAo0gAh97VlgAZIj4l8Pn4WFaO64ocuXG6zJtDbMqySnC7IgF8uptLVrJtq1evFuWqak+A4j4i4TNpltiJ8LPiNFFFwNGjRyWFyfedAFUny/joekkEuLi4KK0CfykCeFnkiu1flgBeFtl3/D8SsMbKykpOifv37ysRcPz4cVHKUiSA8wwNdR9/VTMBSh9Y8S4Nf2qnSICiBbDzVCRg9uzZTMC+94kAv6FDh8opwRsVHPjItnl4eEDxHNLKlStFXV+2javQ/M1SpZe+1KA4L4G7WDG57fSm/OUbXiqG0ewAFYOeYcN4fwZhvLkp2y4tftrxcltdlf/w+fPn4qNGxTCYU2m6nrRu3VqunT/EoiuZvw6TTZHpyuNNmEaNGsndP3fu3OJAq1N1JOAHDmyKheVtNP4OkE2crULRAW7fvl20EyyLy24a8p+/7WISFixYIMLt4t82bNhQYjXqXREgPq3j74mlX3AmSL8E1eOPIBXnuVT5OsVZpuLnOMeOHeN7vifwiYhYzhC5IpwlOXj1QXWdBmy/XWU/X+UqMZfKBw4cKAobHPlJlZe9h6tOu+7cuSN2dg0MDMSSyZUpmXvaSD+crq/xvl0k9BTCRa7qEPq+5T4t6ffF52WVV+f1P6zyLG30bsU4AAAAAElFTkSuQmCC">',showdown:'<img
width="20" height="20" align="absmiddle"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAECtaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTAtMjRUMTM6MzE6MzArMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHBob3Rvc2hvcDpMYXllck5hbWU+UyAtPC9waG90b3Nob3A6TGF5ZXJOYW1lPgogICAgICAgICAgICAgICAgICA8cGhvdG9zaG9wOkxheWVyVGV4dD5TIC08L3Bob3Rvc2hvcDpMYXllclRleHQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6N2NkMzQxNzctOWYyZi0yNDRiLWEyYjQtMzU1MzJkY2Y1MWJiPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6M2E1YzgxYmYtYjhiNy0xMWU3LTk0NDktYTQ2MzdlZjJkNjMzPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMDEtMTVUMjE6MDE6MTlaPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEwLTI0VDEzOjMxOjMwKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjdjZDM0MTc3LTlmMmYtMjQ0Yi1hMmI0LTM1NTMyZGNmNTFiYjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0xMC0yNFQxMzozMTozMCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6ODZjNjBkMGQtOGY0Yy01ZTRlLWEwMjQtODI4ZWQyNTIwZDc3PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjYwQzVBRTY1RjY5Q0U0MTE5NDVBODU1RTNCQ0E3RUVCPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjBDNUFFNjVGNjlDRTQxMTk0NUE4NTVFM0JDQTdFRUI8L3N0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pse7bzcAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA1JJREFUeNrsm1+OmlAUhz+aeS9dwZggJn1AnRUMO6jpBgZXULuC2hWUWUGZBTSxKyiuoA4mfUBMnB04K5g+9DihRBHlyh/lJLwIXLgf99xzzu9etZeXFy7Z3nDh1gBoAFy4XeVtQNO0zNcapmUDfUBPnFoBfhQGq6IBaHmjwD4Ahmk5wAD4kKG5J8CNwsAFaHe6DvA9cc0wCgOv8gDka3vA9RHNPgo0D7hNnJtGYWBXxgV2dH4MfMnRRA+Y1WIO2NJ5F/ikoKm3tYsChmkNFHW+fmHQMC1dfHaXPQP3wM1yMdc2B/AOGALTWobBmI1Shu0UGCwX83XyRBQGawHntTtdG5gUNfxVu4CTNqNv6/wWGL7kCc+1AmCYVisl3I2ydD4GYZUCs7IjoLXrxHIx9w9tLAqDCfBwDrXAY457x+cAoCfuwRGjYFUnAGk+PsjR7s8Dn1VeLWCYVlpDw+VivjVHSHt+u9PVJbzGzZXQWTkAkz0V31fATUaEsjVJlQBs4FeGcteLgzgbAALBA+4y3voAeJL8nA0AHfClnM1qm1HhnYUidCSE+KzvSSJUTwAxCOMcpfETMFYpfRUKIAbCFhC3OTJJJwqDWS0BxED0JZ4Pjix1P2+E0loCSMBwyK4S/xc1ojBwag8gMU84cvTKGgmlAYhngu1O9xAXuVE5J1QCQCz3bwHuHvdQui5QKQAxEO6eEKpsFCgTRSXkvdoxSlBMCxhJJbgrrbZRtHCiShN0pRB6PeQ3ckBw2K0oKXMBVYJIP+Nvh9qulFivGoBt1lLQxowT2ykBXCfnhZIglgYACWmqXQv+baioBYCeiCQHm+QEg1O7RhF7hO4OhSAhcJKSFU7qBGADwZeqMMuXn6TUBw8qlaMrirNb4LdhWlP+SWD+cjFfxTpuS2GUpik+o3jFSEkqbJiWn0P0OMSGqlWiOu0TvD+FRHZKAE+oW+cfRmEwqlsesJJEJs8y91QqP+9UL6lqEtz2gpuNEY5sm9sIHln2DRa2aFKGJtiXkZEMiWtgVvRKUSUFkSKt2S7fAGgAXLYpmQQXf36MUChTZdUa2u8/rkvPA6Tz30r4eH3ybcBS5gJ6SaNXb+aABkA1AMxKenclBZLW/He4cYEGwEXb3wEASelexk6LIIIAAAAASUVORK5CYII=">'},I.Converter=function(g){"use
strict";function
C(g,C){if(C=C||null,I.helper.isString(g)){if(g=I.helper.stdExtName(g),C=g,I.extensions[g])return
console.warn("DEPRECATION WARNING: "+g+" is an old extension
that uses a deprecated loading method.Please inform the developer that the
extension should be updated!"),void
e(I.extensions[g],g);if(I.helper.isUndefined(r[g]))throw
Error('Extension "'+g+'" could not be loaded. It
was either not found or is not a valid
extension.');g=r[g]}"function"==typeof
g&&(g=g()),I.helper.isArray(g)||(g=[g]);var
t=A(g,C);if(!t.valid)throw Error(t.error);for(var
a=0;a<g.length;++a){switch(g[a].type){case"lang":l.push(g[a]);break;case"output":c.push(g[a])}if(g[a].hasOwnProperty("listeners"))for(var
n in
g[a].listeners)g[a].listeners.hasOwnProperty(n)&&o(n,g[a].listeners[n])}}function
e(g,C){"function"==typeof g&&(g=g(new
I.Converter)),I.helper.isArray(g)||(g=[g]);var e=A(g,C);if(!e.valid)throw
Error(e.error);for(var
r=0;r<g.length;++r)switch(g[r].type){case"lang":l.push(g[r]);break;case"output":c.push(g[r]);break;default:throw
Error("Extension loader error: Type unrecognized!!!")}}function
o(g,A){if(!I.helper.isString(g))throw Error("Invalid argument in
converter.listen() method: name must be a string, but "+typeof
g+" given");if("function"!=typeof A)throw
Error("Invalid argument in converter.listen() method: callback must be
a function, but "+typeof A+"
given");u.hasOwnProperty(g)||(u[g]=[]),u[g].push(A)}function s(g){var
A=g.match(/^\s*/)[0].length,C=new
RegExp("^\\s{0,"+A+"}","gm");return
g.replace(C,"")}var
i={},l=[],c=[],u={},p=a;!function(){g=g||{};for(var A in
t)t.hasOwnProperty(A)&&(i[A]=t[A]);if("object"!=typeof
g)throw Error("Converter expects the passed parameter to be an object,
but "+typeof g+" was passed instead.");for(var e in
g)g.hasOwnProperty(e)&&(i[e]=g[e]);i.extensions&&I.helper.forEach(i.extensions,C)}(),this._dispatch=function(g,A,C,I){if(u.hasOwnProperty(g))for(var
e=0;e<u[g].length;++e){var r=u[g][e](g,A,this,C,I);r&&void
0!==r&&(A=r)}return A},this.listen=function(g,A){return
o(g,A),this},this.makeHtml=function(g){if(!g)return g;var
A={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:l,outputModifiers:c,converter:this,ghCodeBlocks:[]};return
g=g.replace(/¨/g,"¨T"),g=g.replace(/\$/g,"¨D"),g=g.replace(/\r\n/g,"\n"),g=g.replace(/\r/g,"\n"),g=g.replace(/\u00A0/g,"
"),i.smartIndentationFix&&(g=s(g)),g="\n\n"+g+"\n\n",g=I.subParser("detab")(g,i,A),g=g.replace(/^[
\t]+$/gm,""),I.helper.forEach(l,function(C){g=I.subParser("runExtension")(C,g,i,A)}),g=I.subParser("hashPreCodeTags")(g,i,A),g=I.subParser("githubCodeBlocks")(g,i,A),g=I.subParser("hashHTMLBlocks")(g,i,A),g=I.subParser("hashCodeTags")(g,i,A),g=I.subParser("stripLinkDefinitions")(g,i,A),g=I.subParser("blockGamut")(g,i,A),g=I.subParser("unhashHTMLSpans")(g,i,A),g=I.subParser("unescapeSpecialChars")(g,i,A),g=g.replace(/¨D/g,"$$"),g=g.replace(/¨T/g,"¨"),I.helper.forEach(c,function(C){g=I.subParser("runExtension")(C,g,i,A)}),g},this.setOption=function(g,A){i[g]=A},this.getOption=function(g){return
i[g]},this.getOptions=function(){return
i},this.addExtension=function(g,A){C(g,A=A||null)},this.useExtension=function(g){C(g)},this.setFlavor=function(g){if(!n.hasOwnProperty(g))throw
Error(g+" flavor was not found");var A=n[g];p=g;for(var C in
A)A.hasOwnProperty(C)&&(i[C]=A[C])},this.getFlavor=function(){return
p},this.removeExtension=function(g){I.helper.isArray(g)||(g=[g]);for(var
A=0;A<g.length;++A){for(var
C=g[A],e=0;e<l.length;++e)l[e]===C&&l[e].splice(e,1);for(;0<c.length;++e)c[0]===C&&c[0].splice(e,1)}},this.getAllExtensions=function(){return{language:l,output:c}}},I.subParser("anchors",function(g,A,C){"use
strict";var
e=function(g,e,r,t,a,n,o){if(I.helper.isUndefined(o)&&(o=""),r=r.toLowerCase(),g.search(/\(<?\s*>?
?(['"].*['"])?\)$/m)>-1)t="";else
if(!t){if(r||(r=e.toLowerCase().replace(/ ?\n/g,"
")),t="#"+r,I.helper.isUndefined(C.gUrls[r]))return
g;t=C.gUrls[r],I.helper.isUndefined(C.gTitles[r])||(o=C.gTitles[r])}var
s='<a
href="'+(t=t.replace(I.helper.regexes.asteriskDashAndColon,I.helper.escapeCharactersCallback))+'"';return""!==o&&null!==o&&(s+='
title="'+(o=(o=o.replace(/"/g,""")).replace(I.helper.regexes.asteriskDashAndColon,I.helper.escapeCharactersCallback))+'"'),A.openLinksInNewWindow&&(s+='
target="¨E95Eblank"'),s+=">"+e+"</a>"};return
g=(g=C.converter._dispatch("anchors.before",g,A,C)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]
?(?:\n *)?\[(.*?)]()()()()/g,e),g=g.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[
\t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[
\t]?\)/g,e),g=g.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([
\t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[
\t]*((["'])([^"]*?)\5))?[
\t]?\)/g,e),g=g.replace(/\[([^\[\]]+)]()()()()()/g,e),A.ghMentions&&(g=g.replace(/(^|\s)(\\)?(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gim,function(g,C,e,r,t){if("\\"===e)return
C+r;if(!I.helper.isString(A.ghMentionsLink))throw new
Error("ghMentionsLink option must be a string");var
a=A.ghMentionsLink.replace(/\{u}/g,t),n="";return
A.openLinksInNewWindow&&(n='
target="¨E95Eblank"'),C+'<a
href="'+a+'"'+n+">"+r+"</a>"})),g=C.converter._dispatch("anchors.after",g,A,C)});var
s=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,i=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,l=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,c=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,u=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,p=function(g){"use
strict";return function(A,C,e,r,t,a,n){var
o=e=e.replace(I.helper.regexes.asteriskDashAndColon,I.helper.escapeCharactersCallback),s="",i="",l=C||"",c=n||"";return/^www\./i.test(e)&&(e=e.replace(/^www\./i,"http://www.")),g.excludeTrailingPunctuationFromURLs&&a&&(s=a),g.openLinksInNewWindow&&(i='
target="¨E95Eblank"'),l+'<a
href="'+e+'"'+i+">"+o+"</a>"+s+c}},d=function(g,A){"use
strict";return function(C,e,r){var t="mailto:";return
e=e||"",r=I.subParser("unescapeSpecialChars")(r,g,A),g.encodeEmails?(t=I.helper.encodeEmailAddress(t+r),r=I.helper.encodeEmailAddress(r)):t+=r,e+'<a
href="'+t+'">'+r+"</a>"}};I.subParser("autoLinks",function(g,A,C){"use
strict";return
g=C.converter._dispatch("autoLinks.before",g,A,C),g=g.replace(l,p(A)),g=g.replace(u,d(A,C)),g=C.converter._dispatch("autoLinks.after",g,A,C)}),I.subParser("simplifiedAutoLinks",function(g,A,C){"use
strict";return
A.simplifiedAutoLink?(g=C.converter._dispatch("simplifiedAutoLinks.before",g,A,C),g=A.excludeTrailingPunctuationFromURLs?g.replace(i,p(A)):g.replace(s,p(A)),g=g.replace(c,d(A,C)),g=C.converter._dispatch("simplifiedAutoLinks.after",g,A,C)):g}),I.subParser("blockGamut",function(g,A,C){"use
strict";return
g=C.converter._dispatch("blockGamut.before",g,A,C),g=I.subParser("blockQuotes")(g,A,C),g=I.subParser("headers")(g,A,C),g=I.subParser("horizontalRule")(g,A,C),g=I.subParser("lists")(g,A,C),g=I.subParser("codeBlocks")(g,A,C),g=I.subParser("tables")(g,A,C),g=I.subParser("hashHTMLBlocks")(g,A,C),g=I.subParser("paragraphs")(g,A,C),g=C.converter._dispatch("blockGamut.after",g,A,C)}),I.subParser("blockQuotes",function(g,A,C){"use
strict";return
g=C.converter._dispatch("blockQuotes.before",g,A,C),g=g.replace(/((^
{0,3}>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(g,e){var r=e;return
r=r.replace(/^[ \t]*>[
\t]?/gm,"¨0"),r=r.replace(/¨0/g,""),r=r.replace(/^[
\t]+$/gm,""),r=I.subParser("githubCodeBlocks")(r,A,C),r=I.subParser("blockGamut")(r,A,C),r=r.replace(/(^|\n)/g,"$1
"),r=r.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(g,A){var
C=A;return C=C.replace(/^
/gm,"¨0"),C=C.replace(/¨0/g,"")}),I.subParser("hashBlock")("<blockquote>\n"+r+"\n</blockquote>",A,C)}),g=C.converter._dispatch("blockQuotes.after",g,A,C)}),I.subParser("codeBlocks",function(g,A,C){"use
strict";g=C.converter._dispatch("codeBlocks.before",g,A,C);var
e=/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^
\t\n]|(?=¨0))/g;return
g=(g+="¨0").replace(e,function(g,e,r){var
t=e,a=r,n="\n";return
t=I.subParser("outdent")(t,A,C),t=I.subParser("encodeCode")(t,A,C),t=I.subParser("detab")(t,A,C),t=t.replace(/^\n+/g,""),t=t.replace(/\n+$/g,""),A.omitExtraWLInCodeBlocks&&(n=""),t="<pre><code>"+t+n+"</code></pre>",I.subParser("hashBlock")(t,A,C)+a}),g=g.replace(/¨0/,""),g=C.converter._dispatch("codeBlocks.after",g,A,C)}),I.subParser("codeSpans",function(g,A,C){"use
strict";return void
0===(g=C.converter._dispatch("codeSpans.before",g,A,C))&&(g=""),g=g.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(g,e,r,t){var
a=t;return a=a.replace(/^([ \t]*)/g,""),a=a.replace(/[
\t]*$/g,""),a=I.subParser("encodeCode")(a,A,C),e+"<code>"+a+"</code>"}),g=C.converter._dispatch("codeSpans.after",g,A,C)}),I.subParser("detab",function(g,A,C){"use
strict";return
g=C.converter._dispatch("detab.before",g,A,C),g=g.replace(/\t(?=\t)/g,"
"),g=g.replace(/\t/g,"¨A¨B"),g=g.replace(/¨B(.+?)¨A/g,function(g,A){for(var
C=A,I=4-C.length%4,e=0;e<I;e++)C+=" ";return
C}),g=g.replace(/¨A/g,"
"),g=g.replace(/¨B/g,""),g=C.converter._dispatch("detab.after",g,A,C)}),I.subParser("ellipsis",function(g,A,C){"use
strict";return
g=C.converter._dispatch("ellipsis.before",g,A,C),g=g.replace(/\.\.\./g,"…"),g=C.converter._dispatch("ellipsis.after",g,A,C)}),I.subParser("emoji",function(g,A,C){"use
strict";if(!A.emoji)return g;var e=/:([\S]+?):/g;return
g=(g=C.converter._dispatch("emoji.before",g,A,C)).replace(e,function(g,A){return
I.helper.emojis.hasOwnProperty(A)?I.helper.emojis[A]:g}),g=C.converter._dispatch("emoji.after",g,A,C)}),I.subParser("encodeAmpsAndAngles",function(g,A,C){"use
strict";return
g=C.converter._dispatch("encodeAmpsAndAngles.before",g,A,C),g=g.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),g=g.replace(/<(?![a-z\/?$!])/gi,"<"),g=g.replace(/</g,"<"),g=g.replace(/>/g,">"),g=C.converter._dispatch("encodeAmpsAndAngles.after",g,A,C)}),I.subParser("encodeBackslashEscapes",function(g,A,C){"use
strict";return
g=C.converter._dispatch("encodeBackslashEscapes.before",g,A,C),g=g.replace(/\\(\\)/g,I.helper.escapeCharactersCallback),g=g.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,I.helper.escapeCharactersCallback),g=C.converter._dispatch("encodeBackslashEscapes.after",g,A,C)}),I.subParser("encodeCode",function(g,A,C){"use
strict";return
g=C.converter._dispatch("encodeCode.before",g,A,C),g=g.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/([*_{}\[\]\\=~-])/g,I.helper.escapeCharactersCallback),g=C.converter._dispatch("encodeCode.after",g,A,C)}),I.subParser("escapeSpecialCharsWithinTagAttributes",function(g,A,C){"use
strict";var
e=/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,r=/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;return
g=(g=C.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",g,A,C)).replace(e,function(g){return
g.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,I.helper.escapeCharactersCallback)}),g=g.replace(r,function(g){return
g.replace(/([\\`*_~=|])/g,I.helper.escapeCharactersCallback)}),g=C.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",g,A,C)}),I.subParser("githubCodeBlocks",function(g,A,C){"use
strict";return
A.ghCodeBlocks?(g=C.converter._dispatch("githubCodeBlocks.before",g,A,C),g+="¨0",g=g.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(g,e,r){var
t=A.omitExtraWLInCodeBlocks?"":"\n";return
r=I.subParser("encodeCode")(r,A,C),r=I.subParser("detab")(r,A,C),r=r.replace(/^\n+/g,""),r=r.replace(/\n+$/g,""),r="<pre><code"+(e?'
class="'+e+"
language-"+e+'"':"")+">"+r+t+"</code></pre>",r=I.subParser("hashBlock")(r,A,C),"\n\n¨G"+(C.ghCodeBlocks.push({text:g,codeblock:r})-1)+"G\n\n"}),g=g.replace(/¨0/,""),C.converter._dispatch("githubCodeBlocks.after",g,A,C)):g}),I.subParser("hashBlock",function(g,A,C){"use
strict";return
g=C.converter._dispatch("hashBlock.before",g,A,C),g=g.replace(/(^\n+|\n+$)/g,""),g="\n\n¨K"+(C.gHtmlBlocks.push(g)-1)+"K\n\n",g=C.converter._dispatch("hashBlock.after",g,A,C)}),I.subParser("hashCodeTags",function(g,A,C){"use
strict";g=C.converter._dispatch("hashCodeTags.before",g,A,C);return
g=I.helper.replaceRecursiveRegExp(g,function(g,e,r,t){var
a=r+I.subParser("encodeCode")(e,A,C)+t;return"¨C"+(C.gHtmlSpans.push(a)-1)+"C"},"<code\\b[^>]*>","</code>","gim"),g=C.converter._dispatch("hashCodeTags.after",g,A,C)}),I.subParser("hashElement",function(g,A,C){"use
strict";return function(g,A){var I=A;return
I=I.replace(/\n\n/g,"\n"),I=I.replace(/^\n/,""),I=I.replace(/\n+$/g,""),I="\n\n¨K"+(C.gHtmlBlocks.push(I)-1)+"K\n\n"}}),I.subParser("hashHTMLBlocks",function(g,A,C){"use
strict";g=C.converter._dispatch("hashHTMLBlocks.before",g,A,C);var
e=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"];A.backslashEscapesHTMLTags&&(g=g.replace(/\\<(\/?[^>]+?)>/g,function(g,A){return"<"+A+">"}));for(var
r=0;r<e.length;++r)for(var t,a=new RegExp("^
{0,3}(<"+e[r]+"\\b[^>]*>)","im"),n="<"+e[r]+"\\b[^>]*>",o="</"+e[r]+">";-1!==(t=I.helper.regexIndexOf(g,a));){var
s=I.helper.splitAtIndex(g,t),i=I.helper.replaceRecursiveRegExp(s[1],function(g,A,I,e){var
r=g;return-1!==I.search(/\bmarkdown\b/)&&(r=I+C.converter.makeHtml(A)+e),"\n\n¨K"+(C.gHtmlBlocks.push(r)-1)+"K\n\n"},n,o,"im");if(i===s[1])break;g=s[0].concat(i)}return
g=g.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[
\t]*(?=\n{2,}))/g,I.subParser("hashElement")(g,A,C)),g=I.helper.replaceRecursiveRegExp(g,function(g){return"\n\n¨K"+(C.gHtmlBlocks.push(g)-1)+"K\n\n"},"^
{0,3}\x3c!--","--\x3e","gm"),g=g.replace(/(?:\n\n)(
{0,3}(?:<([?%])[^\r]*?\2>)[
\t]*(?=\n{2,}))/g,I.subParser("hashElement")(g,A,C)),g=C.converter._dispatch("hashHTMLBlocks.after",g,A,C)}),I.subParser("hashHTMLSpans",function(g,A,C){"use
strict";function
I(g){return"¨C"+(C.gHtmlSpans.push(g)-1)+"C"}return
g=C.converter._dispatch("hashHTMLSpans.before",g,A,C),g=g.replace(/<[^>]+?\/>/gi,function(g){return
I(g)}),g=g.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(g){return
I(g)}),g=g.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(g){return
I(g)}),g=g.replace(/<[^>]+?>/gi,function(g){return
I(g)}),g=C.converter._dispatch("hashHTMLSpans.after",g,A,C)}),I.subParser("unhashHTMLSpans",function(g,A,C){"use
strict";g=C.converter._dispatch("unhashHTMLSpans.before",g,A,C);for(var
I=0;I<C.gHtmlSpans.length;++I){for(var
e=C.gHtmlSpans[I],r=0;/¨C(\d+)C/.test(e);){var
t=RegExp.$1;if(e=e.replace("¨C"+t+"C",C.gHtmlSpans[t]),10===r)break;++r}g=g.replace("¨C"+I+"C",e)}return
g=C.converter._dispatch("unhashHTMLSpans.after",g,A,C)}),I.subParser("hashPreCodeTags",function(g,A,C){"use
strict";g=C.converter._dispatch("hashPreCodeTags.before",g,A,C);return
g=I.helper.replaceRecursiveRegExp(g,function(g,e,r,t){var
a=r+I.subParser("encodeCode")(e,A,C)+t;return"\n\n¨G"+(C.ghCodeBlocks.push({text:g,codeblock:a})-1)+"G\n\n"},"^
{0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^
{0,3}</code>\\s*</pre>","gim"),g=C.converter._dispatch("hashPreCodeTags.after",g,A,C)}),I.subParser("headers",function(g,A,C){"use
strict";function e(g){var e,r;if(A.customizedHeaderId){var
t=g.match(/\{([^{]+?)}\s*$/);t&&t[1]&&(g=t[1])}return
e=g,r=I.helper.isString(A.prefixHeaderId)?A.prefixHeaderId:!0===A.prefixHeaderId?"section-":"",A.rawPrefixHeaderId||(e=r+e),e=A.ghCompatibleHeaderId?e.replace(/
/g,"-").replace(/&/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,"").toLowerCase():A.rawHeaderId?e.replace(/
/g,"-").replace(/&/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-").toLowerCase():e.replace(/[^\w]/g,"").toLowerCase(),A.rawPrefixHeaderId&&(e=r+e),C.hashLinkCounts[e]?e=e+"-"+C.hashLinkCounts[e]++:C.hashLinkCounts[e]=1,e}g=C.converter._dispatch("headers.before",g,A,C);var
r=isNaN(parseInt(A.headerLevelStart))?1:parseInt(A.headerLevelStart),t=A.smoothLivePreview?/^(.+)[
\t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[
\t]*\n+/gm,a=A.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[
\t]*\n-+[ \t]*\n+/gm;g=(g=g.replace(t,function(g,t){var
a=I.subParser("spanGamut")(t,A,C),n=A.noHeaderId?"":'
id="'+e(t)+'"',o=r,s="<h"+o+n+">"+a+"</h"+o+">";return
I.subParser("hashBlock")(s,A,C)})).replace(a,function(g,t){var
a=I.subParser("spanGamut")(t,A,C),n=A.noHeaderId?"":'
id="'+e(t)+'"',o=r+1,s="<h"+o+n+">"+a+"</h"+o+">";return
I.subParser("hashBlock")(s,A,C)});var
n=A.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[
\t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm;return
g=g.replace(n,function(g,t,a){var
n=a;A.customizedHeaderId&&(n=a.replace(/\s?\{([^{]+?)}\s*$/,""));var
o=I.subParser("spanGamut")(n,A,C),s=A.noHeaderId?"":'
id="'+e(a)+'"',i=r-1+t.length,l="<h"+i+s+">"+o+"</h"+i+">";return
I.subParser("hashBlock")(l,A,C)}),g=C.converter._dispatch("headers.after",g,A,C)}),I.subParser("horizontalRule",function(g,A,C){"use
strict";g=C.converter._dispatch("horizontalRule.before",g,A,C);var
e=I.subParser("hashBlock")("<hr />",A,C);return
g=g.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,e),g=g.replace(/^ {0,2}( ?\*){3,}[
\t]*$/gm,e),g=g.replace(/^ {0,2}( ?_){3,}[
\t]*$/gm,e),g=C.converter._dispatch("horizontalRule.after",g,A,C)}),I.subParser("images",function(g,A,C){"use
strict";function e(g,A,e,r,t,a,n,o){var
s=C.gUrls,i=C.gTitles,l=C.gDimensions;if(e=e.toLowerCase(),o||(o=""),g.search(/\(<?\s*>?
?(['"].*['"])?\)$/m)>-1)r="";else
if(""===r||null===r){if(""!==e&&null!==e||(e=A.toLowerCase().replace(/
?\n/g," ")),r="#"+e,I.helper.isUndefined(s[e]))return
g;r=s[e],I.helper.isUndefined(i[e])||(o=i[e]),I.helper.isUndefined(l[e])||(t=l[e].width,a=l[e].height)}A=A.replace(/"/g,""").replace(I.helper.regexes.asteriskDashAndColon,I.helper.escapeCharactersCallback);var
c='<img
src="'+(r=r.replace(I.helper.regexes.asteriskDashAndColon,I.helper.escapeCharactersCallback))+'"
alt="'+A+'"';return o&&(c+='
title="'+(o=o.replace(/"/g,""").replace(I.helper.regexes.asteriskDashAndColon,I.helper.escapeCharactersCallback))+'"'),t&&a&&(c+='
width="'+(t="*"===t?"auto":t)+'"',c+='
height="'+(a="*"===a?"auto":a)+'"'),c+="
/>"}var r=/!\[([^\]]*?)][ \t]*()\([
\t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:
=([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[
\t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,t=/!\[([^\]]*?)][
\t]*()\([ \t]?<([^>]*)>(?:
=([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[
\t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,a=/!\[([^\]]*?)][
\t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?:
=([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[
\t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,n=/!\[([^\]]*?)] ?(?:\n
*)?\[([\s\S]*?)]()()()()()/g,o=/!\[([^\[\]]+)]()()()()()/g;return
g=(g=C.converter._dispatch("images.before",g,A,C)).replace(n,e),g=g.replace(a,function(g,A,C,I,r,t,a,n){return
I=I.replace(/\s/g,""),e(g,A,C,I,r,t,0,n)}),g=g.replace(t,e),g=g.replace(r,e),g=g.replace(o,e),g=C.converter._dispatch("images.after",g,A,C)}),I.subParser("italicsAndBold",function(g,A,C){"use
strict";function I(g,A,C){return A+g+C}return
g=C.converter._dispatch("italicsAndBold.before",g,A,C),g=A.literalMidWordUnderscores?(g=(g=g.replace(/\b___(\S[\s\S]*)___\b/g,function(g,A){return
I(A,"<strong><em>","</em></strong>")})).replace(/\b__(\S[\s\S]*)__\b/g,function(g,A){return
I(A,"<strong>","</strong>")})).replace(/\b_(\S[\s\S]*?)_\b/g,function(g,A){return
I(A,"<em>","</em>")}):(g=(g=g.replace(/___(\S[\s\S]*?)___/g,function(g,A){return/\S$/.test(A)?I(A,"<strong><em>","</em></strong>"):g})).replace(/__(\S[\s\S]*?)__/g,function(g,A){return/\S$/.test(A)?I(A,"<strong>","</strong>"):g})).replace(/_([^\s_][\s\S]*?)_/g,function(g,A){return/\S$/.test(A)?I(A,"<em>","</em>"):g}),g=A.literalMidWordAsterisks?(g=(g=g.trim().replace(/(^|
)\*{3}(\S[\s\S]*?)\*{3}([ ,;!?.]|$)/g,function(g,A,C,e){return
I(C,A+"<strong><em>","</em></strong>"+e)})).trim().replace(/(^|
)\*{2}(\S[\s\S]*?)\*{2}([ ,;!?.]|$)/g,function(g,A,C,e){return
I(C,A+"<strong>","</strong>"+e)})).trim().replace(/(^|
)\*(\S[\s\S]*?)\*([ ,;!?.]|$)/g,function(g,A,C,e){return
I(C,A+"<em>","</em>"+e)}):(g=(g=g.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(g,A){return/\S$/.test(A)?I(A,"<strong><em>","</em></strong>"):g})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(g,A){return/\S$/.test(A)?I(A,"<strong>","</strong>"):g})).replace(/\*([^\s*][\s\S]*?)\*/g,function(g,A){return/\S$/.test(A)?I(A,"<em>","</em>"):g}),g=C.converter._dispatch("italicsAndBold.after",g,A,C)}),I.subParser("lists",function(g,A,C){"use
strict";function
e(g,e){C.gListLevel++,g=g.replace(/\n{2,}$/,"\n"),g+="¨0";var
r=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[
\t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,t=/\n[
\t]*\n(?!¨0)/.test(g);return
A.disableForced4SpacesIndentedSublists&&(r=/(\n)?(^
{0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[
\t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[
\t]+))/gm),g=g.replace(r,function(g,e,r,a,n,o,s){s=s&&""!==s.trim();var
i=I.subParser("outdent")(n,A,C),l="";return
o&&A.tasklists&&(l=' class="task-list-item"
style="list-style-type: none;"',i=i.replace(/^[ \t]*\[(x|X|
)?]/m,function(){var g='<input type="checkbox" disabled
style="margin: 0px 0.35em 0.25em -1.6em; vertical-align:
middle;"';return s&&(g+="
checked"),g+=">"})),i=i.replace(/^([-*+]|\d\.)[ \t]+[\S\n
]*/g,function(g){return"¨A"+g}),e||i.search(/\n{2,}/)>-1?(i=I.subParser("githubCodeBlocks")(i,A,C),i=I.subParser("blockGamut")(i,A,C)):(i=(i=I.subParser("lists")(i,A,C)).replace(/\n$/,""),i=(i=I.subParser("hashHTMLBlocks")(i,A,C)).replace(/\n\n+/g,"\n\n"),i=t?I.subParser("paragraphs")(i,A,C):I.subParser("spanGamut")(i,A,C)),i=i.replace("¨A",""),i="<li"+l+">"+i+"</li>\n"}),g=g.replace(/¨0/g,""),C.gListLevel--,e&&(g=g.replace(/\s+$/,"")),g}function
r(g,A){if("ol"===A){var C=g.match(/^
*(\d+)\./);if(C&&"1"!==C[1])return'
start="'+C[1]+'"'}return""}function
t(g,C,I){var t=A.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^
{0,3}\d+\.[ \t]/gm,a=A.disableForced4SpacesIndentedSublists?/^ ?[*+-][
\t]/gm:/^ {0,3}[*+-][
\t]/gm,n="ul"===C?t:a,o="";if(-1!==g.search(n))!function
A(s){var
i=s.search(n),l=r(g,C);-1!==i?(o+="\n<"+C+l+">\n"+e(s.slice(0,i),!!I)+"</"+C+">\n",n="ul"===(C="ul"===C?"ol":"ul")?t:a,A(s.slice(i))):o+="\n<"+C+l+">\n"+e(s,!!I)+"</"+C+">\n"}(g);else{var
s=r(g,C);o="\n<"+C+s+">\n"+e(g,!!I)+"</"+C+">\n"}return
o}return
g=C.converter._dispatch("lists.before",g,A,C),g+="¨0",g=C.gListLevel?g.replace(/^((
{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![
\t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(g,A,C){return
t(A,C.search(/[*+-]/g)>-1?"ul":"ol",!0)}):g.replace(/(\n\n|^\n?)((
{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![
\t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(g,A,C,I){return
t(C,I.search(/[*+-]/g)>-1?"ul":"ol",!1)}),g=g.replace(/¨0/,""),g=C.converter._dispatch("lists.after",g,A,C)}),I.subParser("outdent",function(g,A,C){"use
strict";return
g=C.converter._dispatch("outdent.before",g,A,C),g=g.replace(/^(\t|[
]{1,4})/gm,"¨0"),g=g.replace(/¨0/g,""),g=C.converter._dispatch("outdent.after",g,A,C)}),I.subParser("paragraphs",function(g,A,C){"use
strict";for(var
e=(g=(g=(g=C.converter._dispatch("paragraphs.before",g,A,C)).replace(/^\n+/g,"")).replace(/\n+$/g,"")).split(/\n{2,}/g),r=[],t=e.length,a=0;a<t;a++){var
n=e[a];n.search(/¨(K|G)(\d+)\1/g)>=0?r.push(n):n.search(/\S/)>=0&&(n=(n=I.subParser("spanGamut")(n,A,C)).replace(/^([
\t]*)/g,"<p>"),n+="</p>",r.push(n))}for(t=r.length,a=0;a<t;a++){for(var
o="",s=r[a],i=!1;/¨(K|G)(\d+)\1/.test(s);){var
l=RegExp.$1,c=RegExp.$2;o=(o="K"===l?C.gHtmlBlocks[c]:i?I.subParser("encodeCode")(C.ghCodeBlocks[c].text,A,C):C.ghCodeBlocks[c].codeblock).replace(/\$/g,"$$$$"),s=s.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/,o),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(s)&&(i=!0)}r[a]=s}return
g=r.join("\n"),g=g.replace(/^\n+/g,""),g=g.replace(/\n+$/g,""),C.converter._dispatch("paragraphs.after",g,A,C)}),I.subParser("runExtension",function(g,A,C,I){"use
strict";if(g.filter)A=g.filter(A,I.converter,C);else if(g.regex){var
e=g.regex;e instanceof RegExp||(e=new
RegExp(e,"g")),A=A.replace(e,g.replace)}return
A}),I.subParser("spanGamut",function(g,A,C){"use
strict";return
g=C.converter._dispatch("spanGamut.before",g,A,C),g=I.subParser("codeSpans")(g,A,C),g=I.subParser("escapeSpecialCharsWithinTagAttributes")(g,A,C),g=I.subParser("encodeBackslashEscapes")(g,A,C),g=I.subParser("images")(g,A,C),g=I.subParser("anchors")(g,A,C),g=I.subParser("autoLinks")(g,A,C),g=I.subParser("simplifiedAutoLinks")(g,A,C),g=I.subParser("emoji")(g,A,C),g=I.subParser("underline")(g,A,C),g=I.subParser("italicsAndBold")(g,A,C),g=I.subParser("strikethrough")(g,A,C),g=I.subParser("ellipsis")(g,A,C),g=I.subParser("hashHTMLSpans")(g,A,C),g=I.subParser("encodeAmpsAndAngles")(g,A,C),A.simpleLineBreaks?/\n\n¨K/.test(g)||(g=g.replace(/\n+/g,"<br
/>\n")):g=g.replace(/ +\n/g,"<br
/>\n"),g=C.converter._dispatch("spanGamut.after",g,A,C)}),I.subParser("strikethrough",function(g,A,C){"use
strict";function e(g){return
A.simplifiedAutoLink&&(g=I.subParser("simplifiedAutoLinks")(g,A,C)),"<del>"+g+"</del>"}return
A.strikethrough&&(g=(g=C.converter._dispatch("strikethrough.before",g,A,C)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(g,A){return
e(A)}),g=C.converter._dispatch("strikethrough.after",g,A,C)),g}),I.subParser("stripLinkDefinitions",function(g,A,C){"use
strict";var e=/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?:
=([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[
\t]*(?:(\n*)["|'(](.+?)["|')][
\t]*)?(?:\n+|(?=¨0))/gm,r=/^ {0,3}\[(.+)]:[ \t]*\n?[
\t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?:
=([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[
\t]*(?:(\n*)["|'(](.+?)["|')][
\t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,t=function(g,e,r,t,a,n,o){return
e=e.toLowerCase(),r.match(/^data:.+?\/.+?;base64,/)?C.gUrls[e]=r.replace(/\s/g,""):C.gUrls[e]=I.subParser("encodeAmpsAndAngles")(r,A,C),n?n+o:(o&&(C.gTitles[e]=o.replace(/"|'/g,""")),A.parseImgDimensions&&t&&a&&(C.gDimensions[e]={width:t,height:a}),"")};return
g=(g+="¨0").replace(r,t),g=g.replace(e,t),g=g.replace(/¨0/,"")}),I.subParser("tables",function(g,A,C){"use
strict";function e(g){return/^:[ \t]*--*$/.test(g)?'
style="text-align:left;"':/^--*[ \t]*:[
\t]*$/.test(g)?' style="text-align:right;"':/^:[
\t]*--*[ \t]*:$/.test(g)?'
style="text-align:center;"':""}function r(g,e){var
r="";return
g=g.trim(),(A.tablesHeaderId||A.tableHeaderId)&&(r='
id="'+g.replace(/
/g,"_").toLowerCase()+'"'),g=I.subParser("spanGamut")(g,A,C),"<th"+r+e+">"+g+"</th>\n"}function
t(g,e){return"<td"+e+">"+I.subParser("spanGamut")(g,A,C)+"</td>\n"}function
a(g,A){for(var
C="<table>\n<thead>\n<tr>\n",I=g.length,e=0;e<I;++e)C+=g[e];for(C+="</tr>\n</thead>\n<tbody>\n",e=0;e<A.length;++e){C+="<tr>\n";for(var
r=0;r<I;++r)C+=A[e][r];C+="</tr>\n"}return
C+="</tbody>\n</table>\n"}function n(g){var
A,C=g.split("\n");for(A=0;A<C.length;++A)/^
{0,3}\|/.test(C[A])&&(C[A]=C[A].replace(/^
{0,3}\|/,"")),/\|[
\t]*$/.test(C[A])&&(C[A]=C[A].replace(/\|[
\t]*$/,""));var
n=C[0].split("|").map(function(g){return
g.trim()}),o=C[1].split("|").map(function(g){return
g.trim()}),s=[],i=[],l=[],c=[];for(C.shift(),C.shift(),A=0;A<C.length;++A)""!==C[A].trim()&&s.push(C[A].split("|").map(function(g){return
g.trim()}));if(n.length<o.length)return
g;for(A=0;A<o.length;++A)l.push(e(o[A]));for(A=0;A<n.length;++A)I.helper.isUndefined(l[A])&&(l[A]=""),i.push(r(n[A],l[A]));for(A=0;A<s.length;++A){for(var
u=[],p=0;p<i.length;++p)I.helper.isUndefined(s[A][p]),u.push(t(s[A][p],l[p]));c.push(u)}return
a(i,c)}function o(g){var
A=g.slice(-3);return"<ol"!==A&&"<ul"!==A||(g=g.slice(0,-3)+"\n\n"+g.slice(-3)),g}if(!A.tables)return
g;var s=/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[
\t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|<ol|<ul|¨0)/gm,i=/^
{0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[
\t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|<ol|<ul|¨0)/gm;return
g=C.converter._dispatch("tables.before",g,A,C),g=g.replace(/\\(\|)/g,I.helper.escapeCharactersCallback),g=g.replace(s,o),g=g.replace(i,o),g=g.replace(s,n),g=g.replace(i,n),g=C.converter._dispatch("tables.after",g,A,C)}),I.subParser("underline",function(g,A,C){"use
strict";return
A.underline?(g=C.converter._dispatch("underline.before",g,A,C),g=A.literalMidWordUnderscores?g.replace(/\b_?__(\S[\s\S]*)___?\b/g,function(g,A){return"<u>"+A+"</u>"}):g.replace(/_?__(\S[\s\S]*?)___?/g,function(g,A){return/\S$/.test(A)?"<u>"+A+"</u>":g}),g=g.replace(/(_)/g,I.helper.escapeCharactersCallback),g=C.converter._dispatch("underline.after",g,A,C)):g}),I.subParser("unescapeSpecialChars",function(g,A,C){"use
strict";return
g=C.converter._dispatch("unescapeSpecialChars.before",g,A,C),g=g.replace(/¨E(\d+)E/g,function(g,A){var
C=parseInt(A);return
String.fromCharCode(C)}),g=C.converter._dispatch("unescapeSpecialChars.after",g,A,C)});var
h=this;"function"==typeof
define&&define.amd?define(function(){"use strict";return
I}):"undefined"!=typeof
module&&module.exports?module.exports=I:h.showdown=I}).call(this);
//# sourceMappingURL=showdown.min.js.map
component_router.js000064400000004513151171726620010517 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
document.addEventListener('DOMContentLoaded', function() {
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
});
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
joomla_power.js000064400000000606151171726620007611 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
power.js000064400000043353151171726620006256 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Initial Script
document.addEventListener('DOMContentLoaded', function()
{
var add_head_vvvvvxa = jQuery("#jform_add_head
input[type='radio']:checked").val();
vvvvvxa(add_head_vvvvvxa);
});
// the vvvvvxa function
function vvvvvxa(add_head_vvvvvxa)
{
// set the function logic
if (add_head_vvvvvxa == 1)
{
jQuery('#jform_head-lbl').closest('.control-group').show();
}
else
{
jQuery('#jform_head-lbl').closest('.control-group').hide();
}
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !==
val.length){
return true;
}
return false;
}
document.addEventListener('DOMContentLoaded', function() {
// get the linked details
getLinked();
// load the active array values
buildSelectionMemory('property');
buildSelectionMemory('method');
// load the active selection array values
getClassCodeIds('property', 'jform_id', false);
getClassCodeIds('method', 'jform_id', false);
// check and load all the customcode edit buttons
setTimeout(getEditCustomCodeButtons, 300);
// trigger the row watcher
rowWatcher();
});
function getCodeFrom_server(id, type, type_name, callingName) {
var url = "index.php?option=com_componentbuilder&task=ajax."
+ callingName +
"&format=json&raw=true&vdm="+vastDevMod;
if (token.length > 0 && id > 0 && type.length >
0) {
url += '&' + token + '=1&' + type_name +
'=' + type + '&id=' + id;
}
var getUrl = JRouter(url);
return fetch(getUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(function(response) {
if (response.ok) {
return response.json();
} else {
throw new Error('Network response was not ok');
}
}).then(function(data) {
return data;
}).catch(function(error) {
console.error('There was a problem with the fetch operation:',
error);
});
}
// set selection the options
selectionMemory = {'property':{},'method':{}};
selectionActiveArray = {'property':{},'method':{}};
selectedIdRemoved =
{'property':'not','method':'not'};
function buildSelectionMemory(type) {
var i;
for (i = 0; i < 70; i++) {
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// set memory
if (jQuery("#"+id_check).length) {
selectionMemory[type][id_check] = jQuery("#"+id_check+"
option:selected").val();
}
}
}
function getClassHeaderCode(){
// now get the values
var value = jQuery("#jform_class_extends
option:selected").val();
var add_value = jQuery("#jform_add_head
input[type='radio']:checked").val();
if (add_value == 1 && value > 0){
// we first check local memory
var _result = jQuery.jStorage.get('extends_header_'+value,
null);
if (_result) {
// now set the code
addCodeToEditor(_result, "jform_head", false, null);
} else {
// now get the code
getCodeFrom_server(value, 'extends', 'type',
'getClassHeaderCode').then(function(result) {
if(result){
// now set the code
addCodeToEditor(result, "jform_head", false, null);
// add result to local memory
jQuery.jStorage.set('extends_header_'+value, result, {TTL:
expire});
}
});
}
}
}
function getClassCodeIds(type, target_field, reset_all){
// now get the value
var value = jQuery('#'+target_field).val();
// now get the code
getCodeFrom_server(value, type, 'type',
'getClassCodeIds').then(function(result) {
if(result){
// reset the selection
selectionActiveArray[type] = {};
// update the active array
jQuery.each(result, function(i, prop) {
selectionActiveArray[type][prop] = selectionArray[type][prop];
});
// update the active field selection
updateActiveFieldSelection(type, reset_all);
}
});
}
function updateActiveFieldSelection(type, reset_all){
// update the selection options
if ('joomla_plugin_group' === type) {
// get value if not going to reset all
if (!reset_all){
// get the active values
var activeValue = jQuery("#jform_"+type+"
option:selected").val();
var activeText = jQuery("#jform_"+type+"
option:selected").text();
// clear the options out
jQuery("#jform_"+type).find('option').remove().end();
// add the active selection back (must be what is available)
jQuery("#jform_"+type).append('<option
value="'+activeValue+'">'+activeText+'</option>');
// now add the lists back
jQuery.each( selectionActiveArray[type], function(aValue, aText ) {
if (activeValue !== aValue) {
jQuery("#jform_"+type).append('<option
value="'+aValue+'">'+aText+'</option>');
}
});
jQuery("#jform_"+type).val(activeValue);
} else {
// clear the options out
jQuery("#jform_"+type).find('option').remove().end();
// now add the lists back
jQuery.each( selectionActiveArray[type], function(aValue, aText ) {
jQuery("#jform_"+type).append('<option
value="'+aValue+'">'+aText+'</option>');
});
jQuery("#jform_"+type).val('');
}
jQuery("#jform_"+type).trigger('liszt:updated');
// reset all when global update is made
if (reset_all) {
resetAll('method');
resetAll('property');
}
} else {
selectionDynamicUpdate(type);
// reset all when global update is made
if (reset_all) {
resetAll(type);
}
}
}
function resetAll(type) {
var i;
for (i = 0; i < 10; i++) {
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length) {
if (i == 0) {
jQuery('#'+id_check).val('');
jQuery('#'+id_check).trigger('liszt:updated');
} else {
// remove the row
jQuery('#'+id_check).closest('tr').remove();
}
}
}
Joomla.editors.instances['jform_main_class_code'].setValue('');
selectionMemory = {'property':{},'method':{}};
}
function getClassCode(field, type){
// get the ID
var id = jQuery(field).attr('id');
// now get the value
var value = jQuery('#' + id).val();
// check if we have a memory for this field, if true remove code of old
selection and clear memory
if (selectionMemory[type].hasOwnProperty(id) &&
selectionMemory[type][id] > 0) {
// the old id to remove
var old_value = selectionMemory[type][id];
// remove the code // we first check local memory
var _result =
jQuery.jStorage.get('code_4_'+type+'_'+old_value,
null);
if (_result) {
// now remove the code
if (removeCodeFromEditor(_result, 'jform_main_class_code')) {
selectionMemory[type][id] = 0;
}
} else {
// now get the code
getCodeFrom_server(old_value, type, 'type',
'getClassCode').then(function(result) {
if(result){
// now remove the code
if (removeCodeFromEditor(result, 'jform_main_class_code'))
{
selectionMemory[type][id] = 0;
}
// add result to local memory
jQuery.jStorage.set('code_4_'+type+'_'+old_value,
result, {TTL: expire});
}
});
}
}
if (propertyIsSet(value, id, type)) {
// reset the selection
jQuery('#'+id).val('');
jQuery('#'+id).trigger("liszt:updated");
// give out a notice
jQuery.UIkit.notify({message:
Joomla.JText._('COM_COMPONENTBUILDER_ALREADY_SELECTED_TRY_ANOTHER'),
timeout: 5000, status: 'warning', pos: 'top-center'});
} else {
// set the active removed value
selectedIdRemoved[type] = id;
// do a dynamic update (to remove what was already used)
selectionDynamicUpdate(type);
// set the add action
if (type === 'property') {
var _action_add = 'prepend';
} else {
var _action_add = 'append';
}
// we first check local memory
var _result =
jQuery.jStorage.get('code_4_'+type+'_'+value, null);
if (_result) {
// now set the code
if (addCodeToEditor(_result, "jform_main_class_code", true,
_action_add)) {
selectionMemory[type][id] = value;
}
} else {
// now get the code
getCodeFrom_server(value, type, 'type',
'getClassCode').then(function(result) {
if(result){
// now set the code
if (addCodeToEditor(result, "jform_main_class_code", true,
_action_add)) {
selectionMemory[type][id] = value;
}
// add result to local memory
jQuery.jStorage.set('code_4_'+type+'_'+value,
result, {TTL: expire});
}
});
}
}
}
function selectionDynamicUpdate(type) {
selectionAvailable = {};
selectionSelectedArray = {};
selectionTrackerArray = {};
var i;
for (i = 0; i < 70; i++) { // for now this is the number of field we
should check
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length &&
selectedIdRemoved[type] !== id_check) {
// build the selected array
var key = jQuery("#"+id_check+"
option:selected").val();
var text = jQuery("#"+id_check+"
option:selected").text();
selectionSelectedArray[key] = text;
// keep track of the value set
selectionTrackerArray[id_check] = key;
// clear the options out
jQuery("#"+id_check).find('option').remove().end();
}
}
// now build the list to keep
jQuery.each( selectionActiveArray[type], function( prop, name ) {
if (!selectionSelectedArray.hasOwnProperty(prop)) {
selectionAvailable[prop] = name;
}
});
// now add the lists back
jQuery.each( selectionTrackerArray, function( tId, tKey ) {
if (jQuery('#'+tId).length) {
jQuery('#'+tId).append('<option
value="'+tKey+'">'+selectionSelectedArray[tKey]+'</option>');
jQuery.each( selectionAvailable, function( aKey, aValue ) {
jQuery('#'+tId).append('<option
value="'+aKey+'">'+aValue+'</option>');
});
jQuery('#'+tId).val(tKey);
jQuery('#'+tId).trigger('liszt:updated');
}
});
}
function rowWatcher() {
jQuery(document).on('subform-row-remove', function(event, row){
// we first chck if this is a method call
var valid_call =
jQuery(row.innerHTML).find('.method_selection_list').attr('id');
var type_call = 'method';
if (!isSet(valid_call)){
// now lets see if this is a property call
var valid_call =
jQuery(row.innerHTML).find('.property_selection_list').attr('id');
var type_call = 'property';
}
// so lets update selection if call valid
if (isSet(valid_call)){
selectedIdRemoved[type_call] = valid_call;
selectionDynamicUpdate(type_call);
// also remove from code
var valid_value = jQuery(row.innerHTML).find('#' + valid_call
+ ' option:selected').val();
if (valid_value === '') {
valid_value = selectionMemory[type_call][valid_call];
}
// remove the code // we first check local memory
var _result =
jQuery.jStorage.get('code_4_'+type_call+'_'+valid_value,
null);
if (_result) {
// now remove the code
if (removeCodeFromEditor(_result, 'jform_main_class_code'))
{
selectionMemory[type_call][valid_call] = 0;
}
} else {
// now get the code
getCodeFrom_server(valid_value, type_call, 'type',
'getClassCode').then(function(result) {
if(result){
if (removeCodeFromEditor(result, 'jform_main_class_code'))
{
selectionMemory[type_call][valid_call] = 0;;
}
// add result to local memory
jQuery.jStorage.set('code_4_'+type_call+'_'+valid_value,
result, {TTL: expire});
}
});
}
}
});
jQuery(document).on('subform-row-add', function(event, row){
// we first chck if this is a method call
var valid_call =
jQuery(row.innerHTML).find('.method_selection_list').attr('id');
var type_call = 'method';
if (!isSet(valid_call)){
// now lets see if this is a property call
var valid_call =
jQuery(row.innerHTML).find('.property_selection_list').attr('id');
var type_call = 'property';
}
// so lets update selection if call valid
if (isSet(valid_call)){
selectedIdRemoved[type_call] = 'not';
selectionDynamicUpdate(type_call);
}
});
}
function propertyIsSet(prop, id, type) {
var i;
for (i = 0; i < 70; i++) { // for now this is the number of field we
should check
// build ID
var id_check =
'jform_'+type+'_selection'+'__'+type+'_selection'+i+'__'+type;
// first check if Id is on page as that not the same as the one currently
calling
if (jQuery("#"+id_check).length && id_check != id) {
// get the property value
var tmp = jQuery("#"+id_check+"
option:selected").val();
// now validate
if (tmp === prop) {
return true;
}
}
}
return false;
}
function addCodeToEditor(code_string, editor_id, merge, merge_target){
if (Joomla.editors.instances.hasOwnProperty(editor_id)) {
var old_code_string = Joomla.editors.instances[editor_id].getValue();
if (merge && old_code_string.length > 0) {
// make sure not to load the same string twice
if (old_code_string.indexOf(code_string) == -1) {
if ('prepend' === merge_target) {
var _string = code_string + "\n\n" + old_code_string;
} else if (merge_target && 'append' !== merge_target)
{
var old_code_array = old_code_string.split(merge_target);
if (old_code_array.length > 1) {
var _string = old_code_array.shift() + "\n\n" + code_string
+ "\n\n" + merge_target + old_code_array.join(merge_target);
} else {
var _string = code_string + "\n\n" + merge_target +
old_code_array.join('');
}
} else {
var _string = old_code_string + "\n\n" + code_string;
}
Joomla.editors.instances[editor_id].setValue(_string.trim());
return true;
}
} else {
Joomla.editors.instances[editor_id].setValue(code_string.trim());
return true;
}
} else {
var old_code_string = jQuery('textarea#'+editor_id).val();
if (merge && old_code_string.length > 0) {
// make sure not to load the same string twice
if (old_code_string.indexOf(code_string) == -1) {
if ('prepend' === merge_target) {
var _string = code_string + "\n\n" + old_code_string;
} else if (merge_target && 'append' !== merge_target)
{
var old_code_array = old_code_string.split(merge_target);
if (old_code_array.length > 1) {
var _string = old_code_array.shift() + "\n\n" + code_string
+ "\n\n" + merge_target + old_code_array.join(merge_target);
} else {
var _string = code_string + "\n\n" + merge_target +
old_code_array.join('');
}
} else {
var _string = old_code_string + "\n\n" + code_string;
}
jQuery('textarea#'+editor_id).val(_string.trim());
return true;
}
} else {
jQuery('textarea#'+editor_id).val(code_string.trim());
return true;
}
}
return false;
}
function removeCodeFromEditor(code_string, editor_id){
if (Joomla.editors.instances.hasOwnProperty(editor_id)) {
var old_code_string = Joomla.editors.instances[editor_id].getValue();
if (old_code_string.length > 0) {
// make sure string is found
if (old_code_string.indexOf(code_string) !== -1) {
// remove the code
Joomla.editors.instances[editor_id].setValue(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,''));
return true;
}
}
} else {
var old_code_string = jQuery('textarea#'+editor_id).val();
if (old_code_string.length > 0) {
// make sure string is found
if (old_code_string.indexOf(code_string) !== -1) {
// remove the code
jQuery('textarea#'+editor_id).val(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,''));
return true;
}
}
}
return false;
}
function getLinked() {
getCodeFrom_server(1, 'type', 'type',
'getLinked').then(function(result) {
if (result.error) {
console.error(result.error);
} else if (result) {
document.getElementById('display_linked_to').innerHTML =
result;
}
});
}
function getEditCustomCodeButtons_server(id) {
var getUrl =
JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod);
let requestParams = '';
if (token.length > 0 && id > 0) {
requestParams =
token+'=1&id='+id+'&return_here='+return_here;
}
// Construct URL with parameters for GET request
const urlWithParams = getUrl + '&' + requestParams;
// Using the Fetch API for the GET request
return fetch(urlWithParams, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
}
function getEditCustomCodeButtons() {
// Get the id using pure JavaScript
const id = document.querySelector("#jform_id").value;
getEditCustomCodeButtons_server(id).then(function(result) {
if (typeof result === 'object') {
Object.entries(result).forEach(([field, buttons]) => {
// Creating the div element for buttons
const div = document.createElement('div');
div.className = 'control-group';
div.innerHTML = '<div
class="control-label"><label>Add/Edit
Customcode</label></div><div class="controls
control-customcode-buttons-'+field+'"></div>';
// Insert the div before .control-wrapper-{field}
const insertBeforeElement =
document.querySelector(".control-wrapper-"+field);
insertBeforeElement.parentNode.insertBefore(div, insertBeforeElement);
// Adding buttons to the div
Object.entries(buttons).forEach(([name, button]) => {
const controlsDiv =
document.querySelector(".control-customcode-buttons-"+field);
controlsDiv.innerHTML += button;
});
});
}
}).catch(error => {
console.error('Error:', error);
});
}
repository.js000064400000000606151171726620007333 0ustar00/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder
<https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights
reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
autocompleter.js000064400000037617151171733310010005 0ustar00//@deprecated
3.4
var Observer = new Class({
Implements: [Options, Events],
options: {
periodical: false,
delay: 1000
},
initialize: function (el, onFired, options) {
this.element = document.id(el) || $document.id(el);
this.addEvent('onFired', onFired);
this.setOptions(options);
this.bound = this.changed.bind(this);
this.resume();
},
changed: function () {
var value = this.element.get('value');
if ($equals(this.value, value)) return;
this.clear();
this.value = value;
this.timeout = this.onFired.delay(this.options.delay, this);
},
setValue: function (value) {
this.value = value;
this.element.set('value', value);
return this.clear();
},
onFired: function () {
this.fireEvent('onFired', [this.value, this.element]);
},
clear: function () {
clearTimeout(this.timeout || null);
return this;
},
pause: function () {
if (this.timer) clearTimeout(this.timer);
else this.element.removeEvent('keyup', this.bound);
return this.clear();
},
resume: function () {
this.value = this.element.get('value');
if (this.options.periodical) this.timer =
this.changed.periodical(this.options.periodical, this);
else this.element.addEvent('keyup', this.bound);
return this;
}
});
var $equals = function (obj1, obj2) {
return (obj1 == obj2 || JSON.encode(obj1) == JSON.encode(obj2));
};
var Autocompleter = new Class({
Implements: [Options, Events],
options: {
minLength: 1,
markQuery: true,
width: 'inherit',
maxChoices: 10,
injectChoice: null,
customChoices: null,
emptyChoices: null,
visibleChoices: true,
className: 'autocompleter-choices',
zIndex: 1000,
delay: 400,
observerOptions: {},
fxOptions: {},
autoSubmit: false,
overflow: false,
overflowMargin: 25,
selectFirst: false,
filter: null,
filterCase: false,
filterSubset: false,
forceSelect: false,
selectMode: true,
choicesMatch: null,
multiple: false,
separator: ', ',
separatorSplit: /\s*[,;]\s*/,
autoTrim: false,
allowDupes: false,
cache: true,
relative: false
},
initialize: function (element, options) {
this.element = document.id(element);
this.setOptions(options);
this.build();
this.observer = new Observer(this.element, this.prefetch.bind(this),
Object.merge({}, {
'delay': this.options.delay
}, this.options.observerOptions));
this.queryValue = null;
if (this.options.filter) this.filter = this.options.filter.bind(this);
var mode = this.options.selectMode;
this.typeAhead = (mode == 'type-ahead');
this.selectMode = (mode === true) ? 'selection' : mode;
this.cached = [];
},
build: function () {
if (document.id(this.options.customChoices)) {
this.choices = this.options.customChoices;
} else {
this.choices = new Element('ul', {
'class': this.options.className,
'styles': {
'zIndex': this.options.zIndex
}
}).inject(document.body);
this.relative = false;
if (this.options.relative) {
this.choices.inject(this.element, 'after');
this.relative = this.element.getOffsetParent();
}
this.fix = new OverlayFix(this.choices);
}
if (!this.options.separator.test(this.options.separatorSplit)) {
this.options.separatorSplit = this.options.separator;
}
this.fx = (!this.options.fxOptions) ? null : new Fx.Tween(this.choices,
Object.merge({}, {
'property': 'opacity',
'link': 'cancel',
'duration': 200
}, this.options.fxOptions)).addEvent('onStart',
Chain.prototype.clearChain).set(0);
this.element.setProperty('autocomplete',
'off').addEvent((Browser.ie || Browser.safari || Browser.chrome)
? 'keydown' : 'keypress',
this.onCommand.bind(this)).addEvent('click',
this.onCommand.bind(this, [false])).addEvent('focus',
this.toggleFocus.pass({
bind: this,
arguments: true,
delay: 100
})).addEvent('blur', this.toggleFocus.pass({
bind: this,
arguments: false,
delay: 100
}));
},
destroy: function () {
if (this.fix) this.fix.destroy();
this.choices = this.selected = this.choices.destroy();
},
toggleFocus: function (state) {
this.focussed = state;
if (!state) this.hideChoices(true);
this.fireEvent((state) ? 'onFocus' : 'onBlur',
[this.element]);
},
onCommand: function (e) {
if (!e && this.focussed) return this.prefetch();
if (e && e.key && !e.shift) {
switch (e.key) {
case 'enter':
if (this.element.value != this.opted) return true;
if (this.selected && this.visible) {
this.choiceSelect(this.selected);
return !!(this.options.autoSubmit);
}
break;
case 'up':
case 'down':
if (!this.prefetch() && this.queryValue !== null) {
var up = (e.key == 'up');
this.choiceOver((this.selected || this.choices)[(this.selected) ?
((up) ? 'getPrevious' : 'getNext') : ((up) ?
'getLast' : 'getFirst')](this.options.choicesMatch),
true);
}
return false;
case 'esc':
case 'tab':
this.hideChoices(true);
break;
}
}
return true;
},
setSelection: function (finish) {
var input = this.selected.inputValue,
value = input;
var start = this.queryValue.length,
end = input.length;
if (input.substr(0, start).toLowerCase() !=
this.queryValue.toLowerCase()) start = 0;
if (this.options.multiple) {
var split = this.options.separatorSplit;
value = this.element.value;
start += this.queryIndex;
end += this.queryIndex;
var old = value.substr(this.queryIndex).split(split, 1)[0];
value = value.substr(0, this.queryIndex) + input +
value.substr(this.queryIndex + old.length);
if (finish) {
var tokens = value.split(this.options.separatorSplit).filter(function
(entry) {
return this.test(entry);
}, /[^\s,]+/);
if (!this.options.allowDupes) tokens = [].combine(tokens);
var sep = this.options.separator;
value = tokens.join(sep) + sep;
end = value.length;
}
}
this.observer.setValue(value);
this.opted = value;
if (finish || this.selectMode == 'pick') start = end;
this.element.selectRange(start, end);
this.fireEvent('onSelection', [this.element, this.selected,
value, input]);
},
showChoices: function () {
var match = this.options.choicesMatch,
first = this.choices.getFirst(match);
this.selected = this.selectedValue = null;
if (this.fix) {
var pos = this.element.getCoordinates(this.relative),
width = this.options.width || 'auto';
this.choices.setStyles({
'left': pos.left,
'top': pos.bottom,
'width': (width === true || width == 'inherit') ?
pos.width : width
});
}
if (!first) return;
if (!this.visible) {
this.visible = true;
this.choices.setStyle('display', '');
if (this.fx) this.fx.start(1);
this.fireEvent('onShow', [this.element, this.choices]);
}
if (this.options.selectFirst || this.typeAhead || first.inputValue ==
this.queryValue) this.choiceOver(first, this.typeAhead);
var items = this.choices.getChildren(match),
max = this.options.maxChoices;
var styles = {
'overflowY': 'hidden',
'height': ''
};
this.overflown = false;
if (items.length > max) {
var item = items[max - 1];
styles.overflowY = 'scroll';
styles.height = item.getCoordinates(this.choices).bottom;
this.overflown = true;
};
this.choices.setStyles(styles);
this.fix.show();
if (this.options.visibleChoices) {
var scroll = document.getScroll(),
size = document.getSize(),
coords = this.choices.getCoordinates();
if (coords.right > scroll.x + size.x) scroll.x = coords.right -
size.x;
if (coords.bottom > scroll.y + size.y) scroll.y = coords.bottom -
size.y;
window.scrollTo(Math.min(scroll.x, coords.left), Math.min(scroll.y,
coords.top));
}
},
// TODO: No $arguments in MT 1.3
hideChoices: function (clear) {
if (clear) {
var value = this.element.value;
if (this.options.forceSelect) value = this.opted;
if (this.options.autoTrim) {
value =
value.split(this.options.separatorSplit).filter($arguments(0)).join(this.options.separator);
}
this.observer.setValue(value);
}
if (!this.visible) return;
this.visible = false;
if (this.selected)
this.selected.removeClass('autocompleter-selected');
this.observer.clear();
var hide = function () {
this.choices.setStyle('display', 'none');
this.fix.hide();
}.bind(this);
if (this.fx) this.fx.start(0).chain(hide);
else hide();
this.fireEvent('onHide', [this.element, this.choices]);
},
prefetch: function () {
var value = this.element.value,
query = value;
if (this.options.multiple) {
var split = this.options.separatorSplit;
var values = value.split(split);
var index = this.element.getSelectedRange().start;
var toIndex = value.substr(0, index).split(split);
var last = toIndex.length - 1;
index -= toIndex[last].length;
query = values[last];
}
if (query.length < this.options.minLength) {
this.hideChoices();
} else {
if (query === this.queryValue || (this.visible && query ==
this.selectedValue)) {
if (this.visible) return false;
this.showChoices();
} else {
this.queryValue = query;
this.queryIndex = index;
if (!this.fetchCached()) this.query();
}
}
return true;
},
fetchCached: function () {
return false;
if (!this.options.cache || !this.cached || !this.cached.length ||
this.cached.length >= this.options.maxChoices || this.queryValue) return
false;
this.update(this.filter(this.cached));
return true;
},
update: function (tokens) {
this.choices.empty();
this.cached = tokens;
var type = tokens && typeOf(tokens);
if (!type || (type == 'array' && !tokens.length) ||
(type == 'hash' && !tokens.getLength())) {
(this.options.emptyChoices || this.hideChoices).call(this);
} else {
if (this.options.maxChoices < tokens.length &&
!this.options.overflow) tokens.length = this.options.maxChoices;
tokens.each(this.options.injectChoice ||
function (token) {
var choice = new Element('li', {
'html': this.markQueryValue(token)
});
choice.inputValue = token;
this.addChoiceEvents(choice).inject(this.choices);
}, this);
this.showChoices();
}
},
choiceOver: function (choice, selection) {
if (!choice || choice == this.selected) return;
if (this.selected)
this.selected.removeClass('autocompleter-selected');
this.selected = choice.addClass('autocompleter-selected');
this.fireEvent('onSelect', [this.element, this.selected,
selection]);
if (!this.selectMode) this.opted = this.element.value;
if (!selection) return;
this.selectedValue = this.selected.inputValue;
if (this.overflown) {
var coords = this.selected.getCoordinates(this.choices),
margin = this.options.overflowMargin,
top = this.choices.scrollTop,
height = this.choices.offsetHeight,
bottom = top + height;
if (coords.top - margin < top && top) this.choices.scrollTop
= Math.max(coords.top - margin, 0);
else if (coords.bottom + margin > bottom) this.choices.scrollTop =
Math.min(coords.bottom - height + margin, bottom);
}
if (this.selectMode) this.setSelection();
},
choiceSelect: function (choice) {
if (choice) this.choiceOver(choice);
this.setSelection(true);
this.queryValue = false;
this.hideChoices();
},
filter: function (tokens) {
return (tokens || this.tokens).filter(function (token) {
return this.test(token);
}, new RegExp(((this.options.filterSubset) ? '' :
'^') + this.queryValue.escapeRegExp(), (this.options.filterCase)
? '' : 'i'));
},
markQueryValue: function (str) {
return (!this.options.markQuery || !this.queryValue) ? str :
str.replace(new RegExp('(' + ((this.options.filterSubset) ?
'' : '^') + this.queryValue.escapeRegExp() +
')', (this.options.filterCase) ? '' : 'i'),
'<span
class="autocompleter-queried">$1</span>');
},
addChoiceEvents: function (el) {
return el.addEvents({
'mouseover': this.choiceOver.bind(this, el),
'click': this.choiceSelect.bind(this, el)
});
}
});
var OverlayFix = new Class({
initialize: function (el) {
if (Browser.ie) {
this.element = document.id(el);
this.relative = this.element.getOffsetParent();
this.fix = new Element('iframe', {
'frameborder': '0',
'scrolling': 'no',
'src': 'javascript:false;',
'styles': {
'position': 'absolute',
'border': 'none',
'display': 'none',
'filter':
'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'
}
}).inject(this.element, 'after');
}
},
show: function () {
if (this.fix) {
var coords = this.element.getCoordinates(this.relative);
delete coords.right;
delete coords.bottom;
this.fix.setStyles(Object.append(coords, {
'display': '',
'zIndex': (this.element.getStyle('zIndex') || 1) -
1
}));
}
return this;
},
hide: function () {
if (this.fix) this.fix.setStyle('display', 'none');
return this;
},
destroy: function () {
if (this.fix) this.fix = this.fix.destroy();
}
});
Element.implement({
getSelectedRange: function () {
if (!Browser.ie) return {
start: this.selectionStart,
end: this.selectionEnd
};
var pos = {
start: 0,
end: 0
};
var range = this.getDocument().selection.createRange();
if (!range || range.parentElement() != this) return pos;
var dup = range.duplicate();
if (this.type == 'text') {
pos.start = 0 - dup.moveStart('character', -100000);
pos.end = pos.start + range.text.length;
} else {
var value = this.value;
var offset = value.length - value.match(/[\n\r]*$/)[0].length;
dup.moveToElementText(this);
dup.setEndPoint('StartToEnd', range);
pos.end = offset - dup.text.length;
dup.setEndPoint('StartToStart', range);
pos.start = offset - dup.text.length;
}
return pos;
},
selectRange: function (start, end) {
if (Browser.ie) {
var diff = this.value.substr(start, end - start).replace(/\r/g,
'').length;
start = this.value.substr(0, start).replace(/\r/g, '').length;
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', start + diff);
range.moveStart('character', start);
range.select();
} else {
this.focus();
this.setSelectionRange(start, end);
}
return this;
}
});
Autocompleter.Base = Autocompleter;
Autocompleter.Request = new Class({
Extends: Autocompleter,
options: {
postData: {},
ajaxOptions: {},
postVar: 'value'
},
query: function () {
var data = this.options.postData.unlink || {};
data[this.options.postVar] = this.queryValue;
var indicator = document.id(this.options.indicator);
if (indicator) indicator.setStyle('display', '');
var cls = this.options.indicatorClass;
if (cls) this.element.addClass(cls);
this.fireEvent('onRequest', [this.element, this.request, data,
this.queryValue]);
this.request.send({
'data': data
});
},
queryResponse: function () {
var indicator = document.id(this.options.indicator);
if (indicator) indicator.setStyle('display', 'none');
var cls = this.options.indicatorClass;
if (cls) this.element.removeClass(cls);
return this.fireEvent('onComplete', [this.element,
this.request]);
}
});
Autocompleter.Request.JSON = new Class({
Extends: Autocompleter.Request,
initialize: function (el, url, options) {
this.parent(el, options);
this.request = new Request.JSON(Object.merge({}, {
'url': url,
'link': 'cancel'
}, this.options.ajaxOptions)).addEvent('onComplete',
this.queryResponse.bind(this));
},
queryResponse: function (response) {
this.parent();
this.update(response);
}
});
Autocompleter.Request.HTML = new Class({
Extends: Autocompleter.Request,
initialize: function (el, url, options) {
this.parent(el, options);
this.request = new Request.HTML(Object.merge({}, {
'url': url,
'link': 'cancel',
'update': this.choices
}, this.options.ajaxOptions)).addEvent('onComplete',
this.queryResponse.bind(this));
},
queryResponse: function (tree, elements) {
this.parent();
if (!elements || !elements.length) {
this.hideChoices();
} else {
this.choices.getChildren(this.options.choicesMatch).each(this.options.injectChoice
||
function (choice) {
var value = choice.innerHTML;
choice.inputValue = value;
this.addChoiceEvents(choice.set('html',
this.markQueryValue(value)));
}, this);
this.showChoices();
}
}
});
Autocompleter.Ajax = {
Base: Autocompleter.Request,
Json: Autocompleter.Request.JSON,
Xhtml: Autocompleter.Request.HTML
};
indexer.js000064400000006161151171733310006546 0ustar00var FinderIndexer =
function(){
var totalItems= null;
var batchSize= null;
var offset= null;
var progress= null;
var optimized= false;
var path =
'index.php?option=com_finder&tmpl=component&format=json';
var initialize = function () {
offset = 0;
progress = 0;
path = path + '&' +
jQuery('#finder-indexer-token').attr('name') +
'=1';
getRequest('indexer.start');
};
var getRequest= function (task) {
jQuery.ajax({
type : "GET",
url : path,
data : 'task=' + task,
dataType : 'json',
success : handleResponse,
error : handleFailure
});
};
var handleResponse = function (json, resp) {
try {
if (json === null) {
throw resp;
}
if (json.error) {
throw json;
}
if (json.start) {
totalItems = json.totalItems;
}
offset += json.batchOffset;
updateProgress(json.header, json.message);
if (offset < totalItems) {
getRequest('indexer.batch');
} else if (!optimized) {
optimized = true;
getRequest('indexer.optimize');
}
} catch (error) {
jQuery('#progress').remove();
try {
if (json.error) {
jQuery('#finder-progress-header').text(json.header).addClass('finder-error');
jQuery('#finder-progress-message').html(json.message).addClass('finder-error');
}
} catch (ignore) {
if (error === '') {
error = Joomla.JText._('COM_FINDER_NO_ERROR_RETURNED');
}
jQuery('#finder-progress-header').text(Joomla.JText._('COM_FINDER_AN_ERROR_HAS_OCCURRED')).addClass('finder-error');
jQuery('#finder-progress-message').html(error).addClass('finder-error');
}
}
return true;
};
var handleFailure= function (xhr) {
json = (typeof xhr == 'object' && xhr.responseText) ?
xhr.responseText : null;
json = json ? jQuery.parseJSON(json) : null;
jQuery('#progress').remove();
if (json) {
json = json.responseText != null ? Json.evaluate(json.responseText,
true) : json;
}
var header = json ? json.header :
Joomla.JText._('COM_FINDER_AN_ERROR_HAS_OCCURRED');
var message = json ? json.message :
Joomla.JText._('COM_FINDER_MESSAGE_RETURNED') + ' <br
/>' + json;
jQuery('#finder-progress-header').text(header).addClass('finder-error');
jQuery('#finder-progress-message').html(message).addClass('finder-error');
};
var updateProgress = function (header, message) {
progress = (offset / totalItems) * 100;
jQuery('#finder-progress-header').text(header);
jQuery('#finder-progress-message').html(message);
if (progress < 100) {
jQuery('#progress-bar').css('width', progress +
'%').attr('aria-valuenow', progress);
}
else {
jQuery('#progress-bar').removeClass('bar-success').addClass('bar-warning').attr('aria-valuemin',
100).attr('aria-valuemax', 200);
jQuery('#progress-bar').css('width', progress +
'%').attr('aria-valuenow', progress);
}
if (message == msg) {
jQuery('#progress').remove();
window.parent.jQuery('#modal-archive',
parent.document).modal('hide');
}
};
initialize();
};
jQuery(function () {
Indexer = new FinderIndexer();
if (typeof window.parent.SqueezeBox == 'object') {
jQuery(window.parent.SqueezeBox).on('close', function () {
window.parent.location.reload(true);
});
}
});