1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}((function(e){"use strict";return e.ui=e.ui||{},e.ui.version="1.14.1"})); 3 4/*! 5 * jQuery UI :data 1.14.1 6 * https://jqueryui.com 7 * 8 * Copyright OpenJS Foundation and other contributors 9 * Released under the MIT license. 10 * https://jquery.org/license 11 */ 12!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){"use strict";return e.extend(e.expr.pseudos,{data:e.expr.createPseudo((function(n){return function(t){return!!e.data(t,n)}}))})})); 13 14/*! 15 * jQuery UI Disable Selection 1.14.1 16 * https://jqueryui.com 17 * 18 * Copyright OpenJS Foundation and other contributors 19 * Released under the MIT license. 20 * https://jquery.org/license 21 */ 22!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){"use strict";return e.fn.extend({disableSelection:(n="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(n+".ui-disableSelection",(function(e){e.preventDefault()}))}),enableSelection:function(){return this.off(".ui-disableSelection")}});var n})); 23 24/*! 25 * jQuery UI Legacy jQuery Core patches 1.14.1 26 * https://jqueryui.com 27 * 28 * Copyright OpenJS Foundation and other contributors 29 * Released under the MIT license. 30 * https://jquery.org/license 31 * 32 */ 33!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){"use strict";e.escapeSelector||(e.escapeSelector=function(e){return CSS.escape(e+"")}),e.fn.even&&e.fn.odd||e.fn.extend({even:function(){return this.filter((function(e){return e%2==0}))},odd:function(){return this.filter((function(e){return e%2==1}))}})})); 34 35/*! 36 * jQuery UI Scroll Parent 1.14.1 37 * https://jqueryui.com 38 * 39 * Copyright OpenJS Foundation and other contributors 40 * Released under the MIT license. 41 * https://jquery.org/license 42 */ 43!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],t):t(jQuery)}((function(t){"use strict";return t.fn.scrollParent=function(e){var s=this.css("position"),n="absolute"===s,o=e?/(auto|scroll|hidden)/:/(auto|scroll)/,i=this.parents().filter((function(){var e=t(this);return(!n||"static"!==e.css("position"))&&o.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))})).eq(0);return"fixed"!==s&&i.length?i:t(this[0].ownerDocument||document)}})); 44 45/*! 46 * jQuery UI Unique ID 1.14.1 47 * https://jqueryui.com 48 * 49 * Copyright OpenJS Foundation and other contributors 50 * Released under the MIT license. 51 * https://jquery.org/license 52 */ 53!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],i):i(jQuery)}((function(i){"use strict";return i.fn.extend({uniqueId:(e=0,function(){return this.each((function(){this.id||(this.id="ui-id-"+ ++e)}))}),removeUniqueId:function(){return this.each((function(){/^ui-id-\d+$/.test(this.id)&&i(this).removeAttr("id")}))}});var e})); 54 55/*! 56 * jQuery UI Focusable 1.14.1 57 * https://jqueryui.com 58 * 59 * Copyright OpenJS Foundation and other contributors 60 * Released under the MIT license. 61 * https://jquery.org/license 62 */ 63!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){"use strict";return e.ui.focusable=function(t,i){var s,n,u,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=(s=t.parentNode).name,!(!t.href||!n||"map"!==s.nodeName.toLowerCase())&&((u=e("img[usemap='#"+n+"']")).length>0&&u.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(r)?(a=!t.disabled)&&(o=e(t).closest("fieldset")[0])&&(a=!o.disabled):a="a"===r&&t.href||i,a&&e(t).is(":visible")&&"visible"===e(t).css("visibility"))},e.extend(e.expr.pseudos,{focusable:function(t){return e.ui.focusable(t,null!=e.attr(t,"tabindex"))}}),e.ui.focusable})); 64 65/*! 66 * jQuery UI Keycode 1.14.1 67 * https://jqueryui.com 68 * 69 * Copyright OpenJS Foundation and other contributors 70 * Released under the MIT license. 71 * https://jquery.org/license 72 */ 73!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){"use strict";return e.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}})); 74 75!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}((function(e){"use strict";return e.ui.plugin={add:function(n,i,t){var u,o=e.ui[n].prototype;for(u in t)o.plugins[u]=o.plugins[u]||[],o.plugins[u].push([i,t[u]])},call:function(e,n,i,t){var u,o=e.plugins[n];if(o&&(t||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(u=0;
vendor: 25,450 bytes, lines 75-115
75u<o.length;u++)e.options[o[u][0]]&&o[u][1].apply(e.element,i)}}})); 76 77/*! 78 * jQuery UI Widget 1.14.1 79 * https://jqueryui.com 80 * 81 * Copyright OpenJS Foundation and other contributors 82 * Released under the MIT license. 83 * https://jquery.org/license 84 */ 85!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],t):t(jQuery)}((function(t){"use strict";var e,i=0,s=Array.prototype.hasOwnProperty,n=Array.prototype.slice;return t.cleanData=(e=t.cleanData,function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)(s=t._data(n,"events"))&&s.remove&&t(n).triggerHandler("remove");e(i)}),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];if("__proto__"===(e=e.split(".")[1])||"constructor"===e)return t.error("Invalid widget name: "+e);var u=l+"-"+e;return s||(s=i,i=t.Widget),Array.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr.pseudos[u.toLowerCase()]=function(e){return!!t.data(e,u)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){if(!this||!this._createWidget)return new o(t,e);arguments.length&&this._createWidget(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),(a=new i).options=t.widget.extend({},a.options),t.each(s,(function(t,e){r[t]="function"==typeof e?function(){function s(){return i.prototype[t].apply(this,arguments)}function n(e){return i.prototype[t].apply(this,e)}return function(){var t,i=this._super,o=this._superApply;return this._super=s,this._superApply=n,t=e.apply(this,arguments),this._super=i,this._superApply=o,t}}():e})),o.prototype=t.widget.extend(a,{widgetEventPrefix:n&&a.widgetEventPrefix||e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:u}),n?(t.each(n._childConstructors,(function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)})),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,o,a=n.call(arguments,1),r=0,l=a.length;r<l;r++)for(i in a[r])o=a[r][i],s.call(a[r],i)&&void 0!==o&&(t.isPlainObject(o)?e[i]=t.isPlainObject(e[i])?t.widget.extend({},e[i],o):t.widget.extend({},o):e[i]=o);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=n.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each((function(){var i,n=t.data(this,s);return"instance"===o?(l=n,!1):n?"function"!=typeof n[o]||"_"===o.charAt(0)?t.error("no such method '"+o+"' for "+e+" widget instance"):(i=n[o].apply(n,r))!==n&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0:t.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+o+"'")})):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each((function(){var e=t.data(this,s);e?(e.option(o||{}),e._init&&e._init()):t.data(this,s,new i(o,this))}))),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,(function(t,i){e._removeClass(i,t)})),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;o<s.length-1;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){var i=[],s=this;function n(){var i=[];e.element.each((function(e,n){t.map(s.classesElementLookup,(function(t){return t})).some((function(t){return t.is(n)}))||i.push(n)})),s._on(t(i),{remove:"_untrackClassesElement"})}function o(o,a){var r,l;for(l=0;l<o.length;l++)r=s.classesElementLookup[o[l]]||t(),e.add?(n(),r=t(t.uniqueSort(r.get().concat(e.element.get())))):r=t(r.not(e.element).get()),s.classesElementLookup[o[l]]=r,i.push(o[l]),a&&e.classes[o[l]]&&i.push(e.classes[o[l]])}return(e=t.extend({element:this.element,classes:this.options.classes||{}},e)).keys&&o(e.keys.match(/\S+/g)||[],!0),e.extra&&o(e.extra.match(/\S+/g)||[]),i.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,(function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})),this._off(t(e.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,(function(s,a){function r(){if(e||!0!==o.options.disabled&&!t(this).hasClass("ui-state-disabled"))return("string"==typeof a?o[a]:a).apply(o,arguments)}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),u=l[1]+o.eventNamespace,h=l[2];h?n.on(u,h,r):i.on(u,r)}))},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){var i=this;return setTimeout((function(){return("string"==typeof t?i[t]:t).apply(i,arguments)}),e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},(i=t.Event(i)).type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!("function"==typeof a&&!1===a.apply(this.element[0],[i].concat(s))||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},(function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){var a;"string"==typeof n&&(n={effect:n});var r=n?!0===n||"number"==typeof n?i:n.effect||i:e;"number"==typeof(n=n||{})?n={duration:n}:!0===n&&(n={}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue((function(i){t(this)[e](),o&&o.call(s[0]),i()}))}})),t.widget})); 86 87/*! 88 * jQuery UI Labels 1.14.1 89 * https://jqueryui.com 90 * 91 * Copyright OpenJS Foundation and other contributors 92 * Released under the MIT license. 93 * https://jquery.org/license 94 */ 95!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery","./version"],t):t(jQuery)}((function(t){"use strict";return t.fn.labels=function(){var t,s,e,i,n;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(i=this.eq(0).parents("label"),(e=this.attr("id"))&&(n=(t=this.eq(0).parents().last()).add(t.length?t.siblings():this.siblings()),s="label[for='"+CSS.escape(e)+"']",i=i.add(n.find(s).addBack(s))),this.pushStack(i)):this.pushStack([])}})); 96 97/*! 98 * jQuery UI Autocomplete 1.14.1 99 * https://jqueryui.com 100 * 101 * Copyright OpenJS Foundation and other contributors 102 * Released under the MIT license. 103 * https://jquery.org/license 104 */ 105!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./menu","../keycode","../position","../version","../widget"],e):e(jQuery)}((function(e){"use strict";return e.widget("ui.autocomplete",{version:"1.14.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,u="input"===n;this.isMultiLine=o||!u&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[o||u?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,void(i=!0);t=!1,s=!1,i=!1;var o=e.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:t=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case o.UP:t=!0,this._keyEvent("previous",n);break;case o.DOWN:t=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||s.preventDefault());if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){if(s)return s=!1,void e.preventDefault();this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault()},menufocus:function(t,i){var s,n;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",(function(){e(t.target).trigger(t.originalEvent)}));n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),(s=i.item.attr("aria-label")||n.value)&&String.prototype.trim.call(s).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay((function(){this.liveRegion.html(e("<div>").text(s))}),100))},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.trigger("focus"),this.previous=s),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var i=this.menu.element[0];return t.target===this.element[0]||t.target===i||e.contains(i,t.target)},_closeOnClickOutside:function(e){this._isEventTargetInWidget(e)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;Array.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay((function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;t&&(!t||i||s)||(this.selectedItem=null,this.search(null,e))}),this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):!1!==this._trigger("search",t)?this._search(e):void 0},_search:function(e){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var e=++this.requestIndex;return function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")}.bind(this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,(function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})}))},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,(function(e,i){s._renderItemData(t,i)}))},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").append(e("<div>").text(i.label)).appendTo(t)},_move:function(e,t){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[e](t);this.search(null,t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=new RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,(function(e){return s.test(e.label||e.value||e)}))}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay((function(){this.liveRegion.html(e("<div>").text(i))}),100))}}),e.ui.autocomplete})); 106 107/*! 108 * jQuery UI Menu 1.14.1 109 * https://jqueryui.com 110 * 111 * Copyright OpenJS Foundation and other contributors 112 * Released under the MIT license. 113 * https://jquery.org/license 114 */ 115!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../keycode","../position","../unique-id","../version","../widget"],e):e(jQuery)}((function(e){"use strict";return e.widget("ui.menu",{version:"1.14.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault(),this._activateItem(e)},"click .ui-menu-item":function(t){var i=e(t.target),s=e(this.document[0].activeElement);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this._menuItems().first();t||this.focus(e,i)},blur:function(t){this._delay((function(){!e.contains(this.element[0],this.document[0].activeElement)&&this.collapseAll(t)}))},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e,!0),this.mouseHandled=!1}})},_activateItem:function(t){if(!this.previousFilter&&(t.clientX!==this.lastMousePosition.x||t.clientY!==this.lastMousePosition.y)){this.lastMousePosition={x:t.clientX,y:t.clientY};var i=e(t.target).closest(".ui-menu-item"),s=e(t.currentTarget);i[0]===s[0]&&(s.is(".ui-state-active")||(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,s)))}},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each((function(){var t=e(this);t.data("ui-menu-submenu-caret")&&t.remove()}))},_keydown:function(t){var i,s,n,a,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,s=this.previousFilter||"",a=!1,n=t.keyCode>=96&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),(i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i).length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay((function(){delete this.previousFilter}),1e3)):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,i,s,n,a=this,u=this.options.icons.submenu,o=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),i=o.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each((function(){var t=e(this),i=t.prev(),s=e("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+u),i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))})),this._addClass(i,"ui-menu","ui-widget ui-widget-content ui-front"),(t=o.add(this.element).find(this.options.items)).not(".ui-menu-item").each((function(){var t=e(this);a._isDivider(t)&&a._addClass(t,"ui-menu-divider","ui-widget-content")})),n=(s=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(s,"ui-menu-item")._addClass(n,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){if("icons"===e){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,t.submenu)}this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",String(e)),this._toggleClass(null,"ui-state-disabled",!!e)},focus:function(e,t){var i,s,n;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay((function(){this._close()}),this.delay),(i=t.children(".ui-menu")).length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,u,o;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),u=this.activeMenu.height(),o=t.outerHeight(),n<0?this.activeMenu.scrollTop(a+n):n+o>u&&this.activeMenu.scrollTop(a+n-u+o))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",e,{item:this.active}),this.active=null)},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay((function(){this._close(),this._open(e)}),this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay((function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s}),i?0:this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","fal
115se")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this._menuItems(this.active.children(".ui-menu")).first();t&&t.length&&(this._open(t.parent()),this._delay((function(){this.focus(e,t)})))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_menuItems:function(e){return(e||this.element).find(this.options.items).filter(".ui-menu-item")},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").last():this.active[e+"All"](".ui-menu-item").first()),s&&s.length&&this.active||(s=this._menuItems(this.activeMenu)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;this.active?this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.innerHeight(),0===e.fn.jquery.indexOf("3.2.")&&(n+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.nextAll(".ui-menu-item").each((function(){return(i=e(this)).offset().top-s-n<0})),this.focus(t,i)):this.focus(t,this._menuItems(this.activeMenu)[this.active?"last":"first"]())):this.next(t)},previousPage:function(t){var i,s,n;this.active?this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.innerHeight(),0===e.fn.jquery.indexOf("3.2.")&&(n+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.prevAll(".ui-menu-item").each((function(){return(i=e(this)).offset().top-s+n>0})),this.focus(t,i)):this.focus(t,this._menuItems(this.activeMenu).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=new RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter((function(){return s.test(String.prototype.trim.call(e(this).children(".ui-menu-item-wrapper").text()))}))}})})); 116 117let renderCounter=0;(function($,Drupal,once){Drupal.behaviors.fluid={attach:(context)=>{if(!renderCounter){const modulePath=drupalSettings.modulePath;const langCode=drupalSettings.path.currentLanguage;const translationsDir=drupalSettings.translationsDirectory;const drupalToolbarMenuHorizontal=()=>{};if(translationsDir!=="")fluid.uiOptions(".flc-prefsEditor-separatedPanel",{auxiliarySchema:{terms:{"templatePrefix":modulePath+"/infusion/src/framework/preferences/html","messagePrefix":translationsDir+langCode},"fluid.prefs.tableOfContents":{enactor:{"tocTemplate":modulePath+"/infusion/src/components/tableOfContents/html/TableOfContents.html","tocMessage":modulePath+"/infusion/src/framework/preferences/messages/tableOfContents-enactor.json",ignoreForToC:{"overviewPanel":".flc-overviewPanel"}}}},prefsEditorLoader:{lazyLoad:true}});else fluid.uiOptions(".flc-prefsEditor-separatedPanel",{auxiliarySchema:{terms:{"templatePrefix":modulePath+"/infusion/src/framework/preferences/html","messagePrefix":modulePath+"/infusion/src/framework/preferences/messages/"+langCode},"fluid.prefs.tableOfContents":{enactor:{"tocTemplate":modulePath+"/infusion/src/components/tableOfContents/html/TableOfContents.html","tocMessage":modulePath+"/infusion/src/framework/preferences/messages/tableOfContents-enactor.json",ignoreForToC:{"overviewPanel":".flc-overviewPanel"}}}},prefsEditorLoader:{lazyLoad:true}});renderCounter++;}}};})(jQuery,Drupal,once);; 118"use strict";var fluid=fluid||{};fluid.XMLP=function(strXML){return fluid.XMLP.XMLPImpl(strXML);};fluid.XMLP.closedTags={abbr:true,br:true,col:true,img:true,input:true,link:true,meta:true,param:true,hr:true,area:true,embed:true};fluid.XMLP._NONE=0;fluid.XMLP._ELM_B=1;fluid.XMLP._ELM_E=2;fluid.XMLP._ELM_EMP=3;fluid.XMLP._ATT=4;fluid.XMLP._TEXT=5;fluid.XMLP._ENTITY=6;fluid.XMLP._PI=7;fluid.XMLP._CDATA=8;fluid.XMLP._COMMENT=9;fluid.XMLP._DTD=10;fluid.XMLP._ERROR=11;fluid.XMLP._CONT_XML=0;fluid.XMLP._CONT_ALT=1;fluid.XMLP._ATT_NAME=0;fluid.XMLP._ATT_VAL=1;fluid.XMLP._STATE_PROLOG=1;fluid.XMLP._STATE_DOCUMENT=2;fluid.XMLP._STATE_MISC=3;fluid.XMLP._errs=[];fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_PI=0]="PI: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_DTD=1]="DTD: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_COMMENT=2]="Comment: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_CDATA=3]="CDATA: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_ELM=4]="Element: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_CLOSE_ENTITY=5]="Entity: missing closing sequence";fluid.XMLP._errs[fluid.XMLP.ERR_PI_TARGET=6]="PI: target is required";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_EMPTY=7]="Element: cannot be both empty and closing";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_NAME=8]='Element: name must immediately follow "<"';fluid.XMLP._errs[fluid.XMLP.ERR_ELM_LT_NAME=9]='Element: "<" not allowed in element names';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_VALUES=10]="Attribute: values are required and must be in quotes";fluid.XMLP._errs[fluid.XMLP.ERR_ATT_LT_NAME=11]='Element: "<" not allowed in attribute names';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_LT_VALUE=12]='Attribute: "<" not allowed in attribute values';fluid.XMLP._errs[fluid.XMLP.ERR_ATT_DUP=13]="Attribute: duplicate attributes not allowed";fluid.XMLP._errs[fluid.XMLP.ERR_ENTITY_UNKNOWN=14]="Entity: unknown entity";fluid.XMLP._errs[fluid.XMLP.ERR_INFINITELOOP=15]="Infinite loop";fluid.XMLP._errs[fluid.XMLP.ERR_DOC_STRUCTURE=16]="Document: only comments, processing instructions, or whitespace allowed outside of document element";fluid.XMLP._errs[fluid.XMLP.ERR_ELM_NESTING=17]="Element: must be nested correctly";fluid.XMLP._checkStructure=function(that,iEvent){var stack=that.m_stack;if(fluid.XMLP._STATE_PROLOG==that.m_iState)that.m_iState=fluid.XMLP._STATE_DOCUMENT;if(fluid.XMLP._STATE_DOCUMENT===that.m_iState){if(fluid.XMLP._ELM_B==iEvent||fluid.XMLP._ELM_EMP==iEvent)that.m_stack[stack.length]=that.getName();if(fluid.XMLP._ELM_E==iEvent||fluid.XMLP._ELM_EMP==iEvent){if(stack.length===0)return fluid.XMLP._NONE;var strTop=fluid.peek(stack);that.m_stack.length--;
118if(strTop===null||strTop!==that.getName())return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_NESTING);}}return iEvent;};fluid.XMLP._parseCDATA=function(that,iB){var iE=that.m_xml.indexOf("]]>",iB);if(iE==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_CDATA);fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB,iE);that.m_iP=iE+3;return fluid.XMLP._CDATA;};fluid.XMLP._parseComment=function(that,iB){var iE=that.m_xml.indexOf("-"+"->",iB);if(iE==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_COMMENT);fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB-4,iE+3);that.m_iP=iE+3;return fluid.XMLP._COMMENT;};fluid.XMLP._parseDTD=function(that,iB){var iE,strClose,iInt,iLast;iE=that.m_xml.indexOf(">",iB);if(iE==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_DTD);iInt=that.m_xml.indexOf("[",iB);strClose=iInt!=-1&&iInt<iE?"]>":">";while(true){if(iE==iLast)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_INFINITELOOP);iLast=iE;iE=that.m_xml.indexOf(strClose,iB);if(iE==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_DTD);if(that.m_xml.substring(iE-1,iE+2)!="]]>")break;}that.m_iP=iE+strClose.length;return fluid.XMLP._DTD;};fluid.XMLP._parsePI=function(that,iB){var iE,iTB,iTE,iCB,iCE;iE=that.m_xml.indexOf("?>",iB);if(iE==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_PI);
118iTB=fluid.SAXStrings.indexOfNonWhitespace(that.m_xml,iB,iE);if(iTB==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_PI_TARGET);iTE=fluid.SAXStrings.indexOfWhitespace(that.m_xml,iTB,iE);if(iTE==-1)iTE=iE;iCB=fluid.SAXStrings.indexOfNonWhitespace(that.m_xml,iTE,iE);if(iCB==-1)iCB=iE;iCE=fluid.SAXStrings.lastIndexOfNonWhitespace(that.m_xml,iCB,iE);if(iCE==-1)iCE=iE-1;that.m_name=that.m_xml.substring(iTB,iTE);fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iCB,iCE+1);that.m_iP=iE+2;return fluid.XMLP._PI;};fluid.XMLP._parseText=function(that,iB){var iE=that.m_xml.indexOf("<",iB);if(iE==-1)iE=that.m_xml.length;fluid.XMLP._setContent(that,fluid.XMLP._CONT_XML,iB,iE);that.m_iP=iE;return fluid.XMLP._TEXT;};fluid.XMLP._setContent=function(that,iSrc){var args=arguments;if(fluid.XMLP._CONT_XML==iSrc){that.m_cAlt=null;that.m_cB=args[2];that.m_cE=args[3];}else{that.m_cAlt=args[2];that.m_cB=0;that.m_cE=args[2].length;}that.m_cSrc=iSrc;};fluid.XMLP._setErr=function(that,iErr){var strErr=fluid.XMLP._errs[iErr];that.m_cAlt=strErr;that.m_cB=0;that.m_cE=strErr.length;that.m_cSrc=fluid.XMLP._CONT_ALT;return fluid.XMLP._ERROR;};fluid.XMLP._parseElement=function(that,iB){var iE,iDE,iRet;var iType,strN,iLast;iDE=iE=that.m_xml.indexOf(">",iB);if(iE==-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_CLOSE_ELM);if(that.m_xml.charAt(iB)=="/"){iType=fluid.XMLP._ELM_E;iB++;}else iType=fluid.XMLP._ELM_B;if(that.m_xml.charAt(iE-1)=="/"){if(iType==fluid.XMLP._ELM_E)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_EMPTY);iType=fluid.XMLP._ELM_EMP;iDE--;}that.nameRegex.lastIndex=iB;var nameMatch=that.nameRegex.exec(that.m_xml);if(!nameMatch)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_NAME);strN=nameMatch[1].toLowerCase();if("li"===strN&&iType!==fluid.XMLP._ELM_E&&that.m_stack.length>0&&fluid.peek(that.m_stack)==="li"&&!that.m_emitSynthetic){that.m_name="li";that.m_emitSynthetic=true;return fluid.XMLP._ELM_E;}that.m_attributes={};that.m_cAlt="";if(that.nameRegex.lastIndex<iDE){that.m_iP=that.nameRegex.lastIndex;while(that.m_iP<iDE){that.attrStartRegex.lastIndex=that.m_iP;var attrMatch=that.attrStartRegex.exec(that.m_xml);if(!attrMatch)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_VALUES);var attrname=attrMatch[1].toLowerCase();var attrval;if(that.m_xml.charCodeAt(that.attrStartRegex.lastIndex)===61){var valRegex=that.m_xml.charCodeAt(that.attrStartRegex.lastIndex+1)===34?that.attrValRegex:that.attrValIERegex;valRegex.lastIndex=that.attrStartRegex.lastIndex+1;attrMatch=valRegex.exec(that.m_xml);if(!attrMatch)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_VALUES);attrval=attrMatch[1];}else{attrval=attrname;valRegex=that.attrStartRegex;}if(!that.m_attributes[attrname]||that.m_attributes[attrname]===attrval)that.m_attributes[attrname]=attrval;else return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ATT_DUP);that.m_iP=valRegex.lastIndex;}}if(strN.indexOf("<")!=-1)return fluid.XMLP._setErr(that,fluid.XMLP.ERR_ELM_LT_NAME);that.m_name=strN;that.m_iP=iE+1;if(fluid.XMLP.closedTags[strN]){that.closeRegex.lastIndex=iE+1;var closeMatch=that.closeRegex.exec;if(closeMatch){var matchclose=that.m_xml.indexOf(strN,closeMatch.lastIndex);if(matchclose===closeMatch.lastIndex)return iType;else return fluid.XMLP._ELM_EMP;}}that.m_emitSynthetic=false;return iType;};fluid.XMLP._parse=function(that){var iP=that.m_iP;var xml=that.m_xml;if(iP===xml.length)return fluid.XMLP._NONE;var c=xml.charAt(iP);if(c==="<"){var c2=xml.charAt(iP+1);if(c2==="?")return fluid.XMLP._parsePI(that,iP+2);else if(c2==="!")if(iP===xml.indexOf("<!DOCTYPE",iP))return fluid.XMLP._parseDTD(that,iP+9);else if(iP===xml.indexOf("\x3c!--",iP))return fluid.XMLP._parseComment(that,iP+4);else{if(iP===xml.indexOf("<![CDATA[",iP))return fluid.XMLP._parseCDATA(that,iP+9);}else return fluid.XMLP._parseElement(that,iP+1);}else return fluid.XMLP._parseText(that,iP);};fluid.XMLP.XMLPImpl=function(strXML){var that={};that.m_xml=strXML;that.m_iP=0;that.m_iState=fluid.XMLP._STATE_PROLOG;that.m_stack=[];that.m_attributes={};that.m_emitSynthetic=false;that.getColumnNumber=function(){return fluid.SAXStrings.getColumnNumber(that.m_xml,that.m_iP);};that.getContent=function(){return that.m_cSrc==fluid.XMLP._CONT_XML?that.m_xml:that.m_cAlt;};that.getContentBegin=function(){return that.m_cB;};that.getContentEnd=function(){return that.m_cE;};that.getLineNumber=function(){return fluid.SAXStrings.getLineNumber(that.m_xml,that.m_iP);};that.getName=function(){return that.m_name;};that.next=function(){return fluid.XMLP._checkStructure(that,fluid.XMLP._parse(that));};that.nameRegex=/([^\s\/>]+)/g;that.attrStartRegex=/\s*([\w:_][\w:_\-\.]*)/gm;that.attrValRegex=/\"([^\"]*)\"\s*/gm;that.attrValIERegex=/([^\>\s]+)\s*/gm;that.closeRegex=/\s*<\//g;return that;};fluid.SAXStrings={};fluid.SAXStrings.WHITESPACE=" \t\n\r";fluid.SAXStrings.QUOTES="\"'";fluid.SAXStrings.getColumnNumber=function(strD,iP){if(!strD)return -1;iP=iP||strD.length;var arrD=strD.substring(0,iP).split("\n");arrD.length--;var iLinePos=arrD.join("\n").length;return iP-iLinePos;};fluid.SAXStrings.getLineNumber=function(strD,iP){if(!strD)return -1;iP=iP||strD.length;return strD.substring(0,iP).split("\n").length;};fluid.SAXStrings.indexOfNonWhitespace=function(strD,iB,iE){if(!strD)return -1;iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;++i){var c=strD.charAt(i);if(c!==" "&&c!=="\t"&&c!=="\n"&&c!=="\r")return i;}return -1;};fluid.SAXStrings.indexOfWhitespace=function(strD,iB,iE){if(!strD)return -1;iB=iB||0;iE=iE||strD.length;for(var i=iB;i<iE;i++)if(fluid.SAXStrings.WHITESPACE.indexOf(strD.charAt(i))!=-1)return i;return -1;};fluid.SAXStrings.lastIndexOfNonWhitespace=function(strD,iB,iE){if(!strD)return -1;iB=iB||0;iE=iE||strD.length;for(var i=iE-1;i>=iB;i--)if(fluid.SAXStrings.WHITESPACE.indexOf(strD.charAt(i))==-1)return i;return -1;};fluid.SAXStrings.replace=function(strD,iB,iE,strF,strR){if(!strD)return "";iB=iB||0;iE=iE||strD.length;return strD.substring(iB,iE).split(strF).join(strR);};(function(global,factory){"use strict";if(typeof module==="object"&&typeof module.exports==="object")module.exports=global.document?factory(global,true):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w);};else factory(global);})(typeof window!=="undefined"?window:this,(function(window,noGlobal){"use strict";var arr=[];var getProto=Object.getPrototypeOf;var slice=arr.slice;var flat=arr.flat?function(array){return arr.flat.call(array);}:function(array){return arr.concat.apply([],array);};var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var fnToString=hasOwn.toString;var ObjectFunctionString=fnToString.call(Object);var support={};var isFunction=function isFunction(obj){return typeof obj==="function"&&typeof obj.nodeType!=="number"&&typeof obj.item!=="function";};var isWindow=function isWindow(obj){return obj!=null&&obj===obj.window;};var document=window.document;var preservedScriptAttributes={type:true,src:true,nonce:true,noModule:true};function DOMEval(code,node,doc){doc=doc||document;var i,val,script=doc.createElement("script");script.text=code;if(node)for(i in preservedScriptAttributes){val=node[i]||node.getAttribute&&node.getAttribute(i);if(val)script.setAttribute(i,val);}doc.head.appendChild(script).parentNode.removeChild(script);}function toType(obj){if(obj==null)return obj+"";return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;}var version="3.7.1",rhtmlSuffix=/HTML$/i,jQuery=function(selector,context){return new jQuery.fn.init(selector,context);};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,length:0,toArray:function(){return slice.call(this);},get:function(num){if(num==null)return slice.call(this);return num<0?this[num+this.length]:this[num];},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);
118ret.prevObject=this;return ret;},each:function(callback){return jQuery.each(this,callback);},map:function(callback){return this.pushStack(jQuery.map(this,(function(elem,i){return callback.call(elem,i,elem);})));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},even:function(){return this.pushStack(jQuery.grep(this,(function(_elem,i){return (i+1)%2;})));},odd:function(){return this.pushStack(jQuery.grep(this,(function(_elem,i){return i%2;})));},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor();},push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}if(typeof target!=="object"&&!isFunction(target))target={};if(i===length){target=this;i--;}for(;i<length;i++)if((options=arguments[i])!=null)for(name in options){copy=options[name];if(name==="__proto__"||target===copy)continue;if(deep&©&&(jQuery.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))){src=target[name];if(copyIsArray&&!Array.isArray(src))clone=[];else if(!copyIsArray&&!jQuery.isPlainObject(src))clone={};else clone=src;copyIsArray=false;target[name]=jQuery.extend(deep,clone,copy);}else{if(copy!==undefined)target[name]=copy;}}return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isPlainObject:function(obj){var proto,Ctor;if(!obj||toString.call(obj)!=="[object Object]")return false;proto=getProto(obj);if(!proto)return true;Ctor=hasOwn.call(proto,"constructor")&&proto.constructor;return typeof Ctor==="function"&&fnToString.call(Ctor)===ObjectFunctionString;},isEmptyObject:function(obj){var name;for(name in obj)return false;return true;},globalEval:function(code,options,doc){DOMEval(code,{nonce:options&&options.nonce},doc);},each:function(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++)if(callback.call(obj[i],i,obj[i])===false)break;}else{for(i in obj)if(callback.call(obj[i],i,obj[i])===false)break;}return obj;},text:function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType)while(node=elem[i++])ret+=jQuery.text(node);if(nodeType===1||nodeType===11)return elem.textContent;if(nodeType===9)return elem.documentElement.textContent;if(nodeType===3||nodeType===4)return elem.nodeValue;return ret;},makeArray:function(arr,results){var ret=results||[];if(arr!=null)if(isArrayLike(Object(arr)))jQuery.merge(ret,typeof arr==="string"?[arr]:arr);else push.call(ret,arr);return ret;},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i);},isXMLDoc:function(elem){var namespace=elem&&elem.namespaceURI,docElem=elem&&(elem.ownerDocument||elem).documentElement;return !rhtmlSuffix.test(namespace||docElem&&docElem.nodeName||"HTML");},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++)first[i++]=second[j];first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect)matches.push(elems[i]);}return matches;},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null)ret.push(value);}}else for(i in elems){value=callback(elems[i],i,arg);if(value!=null)ret.push(value);}return flat(ret);},guid:1,support});if(typeof Symbol==="function")jQuery.fn[Symbol.iterator]=arr[Symbol.iterator];jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),(function(_i,name){class2type["[object "+name+"]"]=name.toLowerCase();}));function isArrayLike(obj){var length=!!obj&&"length" in obj&&obj.length,type=toType(obj);if(isFunction(obj)||isWindow(obj))return false;return type==="array"||length===0||typeof length==="number"&&length>
1180&&length-1 in obj;}function nodeName(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();}var pop=arr.pop;var sort=arr.sort;var splice=arr.splice;var whitespace="[\\x20\\t\\r\\n\\f]";var rtrimCSS=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g");jQuery.contains=function(a,b){var bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(a.contains?a.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));};var rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function fcssescape(ch,asCodePoint){if(asCodePoint){if(ch==="\0")return "�";return ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ";}return "\\"+ch;}jQuery.escapeSelector=function(sel){return (sel+"").replace(rcssescape,fcssescape);};var preferredDoc=document,pushNative=push;(function(){var i,Expr,outermostContext,sortInput,hasDuplicate,push=pushNative,document,documentElement,documentIsHTML,rbuggyQSA,matches,expando=jQuery.expando,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),nonnativeSelectorCache=createCache(),sortOrder=function(a,b){if(a===b)hasDuplicate=true;return 0;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|"+"loop|multiple|open|readonly|required|scoped",identifier="(?:\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rleadingCombinator=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rdescend=new RegExp(whitespace+"|>"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\([^\\r\\n\\f])","g"),funescape=function(escape,nonHex){var high="0x"+escape.slice(1)-65536;if(nonHex)return nonHex;return high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320);},unloadHandler=function(){setDocument();},inDisabledFieldset=addCombinator((function(elem){return elem.disabled===true&&nodeName(elem,"fieldset");}),{dir:"parentNode",next:"legend"});function safeActiveElement(){try{return document.activeElement;}catch(err){}}try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:function(target,els){pushNative.apply(target,slice.call(els));},call:function(target){pushNative.apply(target,slice.call(arguments,1));}};}function find(selector,context,results,seed){var m,i,elem,nid,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11)return results;if(!seed){setDocument(context);context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector)))if(m=match[1])if(nodeType===9)if(elem=context.getElementById(m)){if(elem.id===m){push.call(results,elem);return results;}}else return results;else{if(newContext&&(elem=newContext.getElementById(m))&&find.contains(context,elem)&&elem.id===m){push.call(results,elem);return results;}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else{if((m=match[3])&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}if(!nonnativeSelectorCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){newSelector=selector;newContext=context;if(nodeType===1&&(rdescend.test(selector)||rleadingCombinator.test(selector))){newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;if(newContext!=context||!support.scope)if(nid=context.getAttribute("id"))nid=jQuery.escapeSelector(nid);else context.setAttribute("id",nid=expando);groups=tokenize(selector);i=groups.length;while(i--)groups[i]=(nid?"#"+nid:":scope")+" "+toSelector(groups[i]);newSelector=groups.join(",");}try{push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){nonnativeSelectorCache(selector,true);}finally{if(nid===expando)context.removeAttribute("id");}}}}return select(selector.replace(rtrimCSS,"$1"),context,results,seed);}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength)delete cache[keys.shift()];return cache[key+" "]=value;}return cache;}function markFunction(fn){fn[expando]=true;return fn;}function assert(fn){var el=document.createElement("fieldset");try{return !!fn(el);}catch(e){return false;}finally{if(el.parentNode)el.parentNode.removeChild(el);el=null;}}function createInputPseudo(type){return function(elem){return nodeName(elem,"input")&&elem.type===type;};}function createButtonPseudo(type){return function(elem){return (nodeName(elem,"input")||nodeName(elem,"button"))&&elem.type===type;};}function createDisabledPseudo(disabled){return function(elem){if("form" in elem){if(elem.parentNode&&elem.disabled===false){if("label" in elem)if("label" in elem.parentNode)return elem.parentNode.disabled===disabled;else return elem.disabled===disabled;return elem.isDisabled===disabled||elem.isDisabled!==!disabled&&inDisabledFieldset(elem)===disabled;}return elem.disabled===disabled;}else{if("label" in elem)return elem.disabled===disabled;}return false;};}function createPositionalPseudo(fn){return markFunction((function(argument){argument=+argument;return markFunction((function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--)if(seed[j=matchIndexes[i]])seed[j]=!(matches[j]=seed[j]);}));}));}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context;}function setDocument(node){var subWindow,doc=node?node.ownerDocument||node:preferredDoc;if(doc==document||doc.nodeType!==9||!doc.documentElement)return document;document=doc;documentElement=document.documentElement;documentIsHTML=!jQuery.isXMLDoc(document);matches=documentElement.matches||documentElement.webkitMatchesSelector||documentElement.msMat
118chesSelector;if(documentElement.msMatchesSelector&&preferredDoc!=document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow)subWindow.addEventListener("unload",unloadHandler);support.getById=assert((function(el){documentElement.appendChild(el).id=jQuery.expando;return !document.getElementsByName||!document.getElementsByName(jQuery.expando).length;}));support.disconnectedMatch=assert((function(el){return matches.call(el,"*");}));support.scope=assert((function(){return document.querySelectorAll(":scope");}));support.cssHas=assert((function(){try{document.querySelector(":has(*,:jqfake)");return false;}catch(e){return true;}}));if(support.getById){Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};Expr.find.ID=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var elem=context.getElementById(id);return elem?[elem]:[];}};}else{Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId;};};Expr.find.ID=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var node,i,elems,elem=context.getElementById(id);if(elem){node=elem.getAttributeNode("id");if(node&&node.value===id)return [elem];elems=context.getElementsByName(id);i=0;while(elem=elems[i++]){node=elem.getAttributeNode("id");if(node&&node.value===id)return [elem];}}return [];}};}Expr.find.TAG=function(tag,context){if(typeof context.getElementsByTagName!=="undefined")return context.getElementsByTagName(tag);else return context.querySelectorAll(tag);};Expr.find.CLASS=function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML)return context.getElementsByClassName(className);};rbuggyQSA=[];assert((function(el){var input;documentElement.appendChild(el).innerHTML="<a id='"+expando+"' href='' disabled='disabled'></a>"+"<select id='"+expando+"-\r\\' disabled='disabled'>"+"<option selected=''></option></select>";if(!el.querySelectorAll("[selected]").length)rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");if(!el.querySelectorAll("[id~="+expando+"-]").length)rbuggyQSA.push("~=");if(!el.querySelectorAll("a#"+expando+"+*").length)rbuggyQSA.push(".#.+[+~]");if(!el.querySelectorAll(":checked").length)rbuggyQSA.push(":checked");input=document.createElement("input");input.setAttribute("type","hidden");el.appendChild(input).setAttribute("name","D");documentElement.appendChild(el).disabled=true;if(el.querySelectorAll(":disabled").length!==2)rbuggyQSA.push(":enabled",":disabled");input=document.createElement("input");input.setAttribute("name","");el.appendChild(input);if(!el.querySelectorAll("[name='']").length)rbuggyQSA.push("\\["+whitespace+"*name"+whitespace+"*="+whitespace+"*(?:''|\"\")");}));if(!support.cssHas)rbuggyQSA.push(":has");rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0;}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare)return compare;compare=(a.ownerDocument||a)==(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===document||a.ownerDocument==preferredDoc&&find.contains(preferredDoc,a))return -1;if(b===document||b.ownerDocument==preferredDoc&&find.contains(preferredDoc,b))return 1;return sortInput?indexOf.call(sortInput,a)-indexOf.call(sortInput,b):0;}return compare&4?-1:1;};return document;}find.matches=function(expr,elements){return find(expr,null,null,elements);};find.matchesSelector=function(elem,expr){setDocument(elem);if(documentIsHTML&&!nonnativeSelectorCache[expr+" "]&&(!rbuggyQSA||!rbuggyQSA.test(expr)))try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11)return ret;}catch(e){nonnativeSelectorCache(expr,true);}return find(expr,document,null,[elem]).length>0;};find.contains=function(context,elem){if((context.ownerDocument||context)!=document)setDocument(context);return jQuery.contains(context,elem);};find.attr=function(elem,name){if((elem.ownerDocument||elem)!=document)setDocument(elem);var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;if(val!==undefined)return val;return elem.getAttribute(name);};find.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};jQuery.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.sortStable;sortInput=!support.sortStable&&slice.call(results,0);sort.call(results,sortOrder);
118if(hasDuplicate){while(elem=results[i++])if(elem===results[i])j=duplicates.push(i);while(j--)splice.call(results,duplicates[j],1);}sortInput=null;return results;};jQuery.fn.uniqueSort=function(){return this.pushStack(jQuery.uniqueSort(slice.apply(this)));};Expr=jQuery.expr={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~=")match[3]=" "+match[3]+" ";return match.slice(0,4);},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3])find.error(match[0]);match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+(match[7]+match[8]||match[3]==="odd");}else{if(match[3])find.error(match[0]);}return match;},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr.CHILD.test(match[0]))return null;if(match[3])match[2]=match[4]||match[5]||"";else{if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}}return match.slice(0,3);}},filter:{TAG:function(nodeNameSelector){var expectedNodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return nodeName(elem,expectedNodeName);};},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,(function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"");}));},ATTR:function(name,operator,check){return function(elem){var result=find.attr(elem,name);if(result==null)return operator==="!=";if(!operator)return true;result+="";if(operator==="=")return result===check;if(operator==="!=")return result!==check;if(operator==="^=")return check&&result.indexOf(check)===0;if(operator==="*=")return check&&result.indexOf(check)>-1;if(operator==="$=")return check&&result.slice(-check.length)===check;if(operator==="~=")return (" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1;if(operator==="|=")return result===check||result.slice(0,check.length+1)===check+"-";return false;};},CHILD:function(type,what,_argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return !!elem.parentNode;}:function(elem,_context,xml){var cache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=false;if(parent){if(simple){while(dir){node=elem;while(node=node[dir])if(ofType?nodeName(node,name):node.nodeType===1)return false;start=dir=type==="only"&&!start&&"nextSibling";}return true;}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break;}}else{if(useCache){outerCache=elem[expando]||(elem[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex;}if(diff===false)while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())if((ofType?nodeName(node,name):node.nodeType===1)&&++diff){if(useCache){outerCache=node[expando]||(node[expando]={});outerCache[type]=[dirruns,diff];}if(node===elem)break;}}diff-=last;return diff===first||diff%first===0&&diff/first>=0;}};},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||find.error("unsupported pseudo: "+pseudo);if(fn[expando])return fn(argument);if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction((function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf.call(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}})):function(elem){return fn(elem,0,args);};}return fn;}},pseudos:{not:markFunction((function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrimCSS,"$1"));return matcher[expando]?markFunction((function(seed,matches,_context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--)if(elem=unmatched[i])seed[i]=!(matches[i]=elem);})):function(elem,_context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return !results.pop();};})),has:markFunction((function(selector){return function(elem){return find(selector,elem).length>0;};})),contains:markFunction((function(text){text=text.replace(runescape,funescape);return function(elem){return (elem.textContent||jQuery.text(elem)).indexOf(text)>-1;};})),lang:markFunction((function(lang){if(!ridentifier.test(lang||""))find.error("unsupported lang: "+lang);lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang")){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};})),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},root:function(elem){return elem===documentElement;},focus:function(elem){return elem===safeActiveElement()&&document.hasFocus()&&!!(elem.type||elem.href||~elem.tabIndex);},enabled:createDisabledPseudo(false),disabled:createDisabledPseudo(true),checked:function(elem){return nodeName(elem,"input")&&!!elem.checked||nodeName(elem,"option")&&!!elem.selected;},selected:function(elem){if(elem.parentNode)elem.parentNode.selectedIndex;return elem.selected===true;},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling)if(elem.nodeType<6)return false;return true;},parent:function(elem){return !Expr.pseudos.empty(elem);},header:function(elem){return rheader.test(elem.nodeName);},input:function(elem){return rinputs.test(elem.nodeName);},button:function(elem){return nodeName(elem,"input")&&elem.type==="button"||nodeName(elem,"button");},text:function(elem){var attr;return nodeName(elem,"input")&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},first:createPositionalPseudo((function(){return [0];})),last:createPositionalPseudo((function(_matchIndexes,length){return [length-1];})),eq:createPositionalPseudo((function(_matchIndexes,length,argument){return [argument<0?argument+length:argument];})),even:createPositionalPseudo((function(matchIndexes,length){var i=0;for(;i<length;i+=2)matchIndexes.push(i);return matchIndexes;})),odd:createPositionalPseudo((function(matchIndexes,length){var i=1;for(;i<length;i+=2)matchIndexes.push(i);return matchIndexes;})),lt:createPositionalPseudo((function(matchIndexes,length,argument){var i;if(argument<0)i=argument+length;else if(argument>length)i=length;else i=argument;for(;--i>=0;)matchIndexes.push(i);return matchIndexes;})),gt:createPositionalPseudo((function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;)matchIndexes.push(i);return matchIndexes;}))}};Expr.pseudos.nth=Expr.pseudos.eq;for(i in {radio:true,checkbox:true,file:true,password:true,image:true})Expr.pseudos[i]=createInputPseudo(i);for(i in {submit:true,reset:true})Expr.pseudos[i]=createButtonPseudo(i);function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();function tokenize(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[
118selector+" "];if(cached)return parseOnly?0:cached.slice(0);soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match)soFar=soFar.slice(match[0].length)||soFar;groups.push(tokens=[]);}matched=false;if(match=rleadingCombinator.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrimCSS," ")});soFar=soFar.slice(matched.length);}for(type in Expr.filter)if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type,matches:match});soFar=soFar.slice(matched.length);}if(!matched)break;}if(parseOnly)return soFar.length;return soFar?find.error(selector):tokenCache(selector,groups).slice(0);}function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++)selector+=tokens[i].value;return selector;}function addCombinator(matcher,combinator,base){var dir=combinator.dir,skip=combinator.next,key=skip||dir,checkNonElements=base&&key==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while(elem=elem[dir])if(elem.nodeType===1||checkNonElements)return matcher(elem,context,xml);return false;}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while(elem=elem[dir])if(elem.nodeType===1||checkNonElements)if(matcher(elem,context,xml))return true;}else{while(elem=elem[dir])if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if(skip&&nodeName(elem,skip))elem=elem[dir]||elem;else if((oldCache=outerCache[key])&&oldCache[0]===dirruns&&oldCache[1]===doneName)return newCache[2]=oldCache[2];else{outerCache[key]=newCache;if(newCache[2]=matcher(elem,context,xml))return true;}}}return false;};}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--)if(!matchers[i](elem,context,xml))return false;return true;}:matchers[0];}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++)find(selector,contexts[i],results);return results;}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++)if(elem=unmatched[i])if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped)map.push(i);}return newUnmatched;}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando])postFilter=setMatcher(postFilter);if(postFinder&&!postFinder[expando])postFinder=setMatcher(postFinder,postSelector);return markFunction((function(seed,results,context,xml){var temp,i,elem,matcherOut,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems;if(matcher){matcherOut=postFinder||(seed?preFilter:preexisting||postFilter)?[]:results;matcher(matcherIn,matcherOut,context,xml);}else matcherOut=matcherIn;if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--)if(elem=temp[i])matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--)if(elem=matcherOut[i])temp.push(matcherIn[i]=elem);postFinder(null,matcherOut=[],temp,xml);}i=matcherOut.length;while(i--)if((elem=matcherOut[i])&&(temp=postFinder?indexOf.call(seed,elem):preMap[i])>-1)seed[temp]=!(results[temp]=elem);}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder)postFinder(null,results,matcherOut,xml);else push.apply(results,matcherOut);}}));}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator((function(elem){return elem===checkContext;}),implicitRelative,true),matchAnyContext=addCombinator((function(elem){return indexOf.call(checkContext,elem)>-1;}),implicitRelative,true),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!=outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret;}];for(;i<len;i++)if(matcher=Expr.relative[tokens[i].type])matchers=[addCombinator(elementMatcher(matchers),matcher)];else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++)if(Expr.relative[tokens[j].type])break;return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrimCSS,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens));}matchers.push(matcher);}return elementMatcher(matchers);}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost)outermostContext=context==document||context||outermost;for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;if(!context&&elem.ownerDocument!=document){setDocument(elem);xml=!documentIsHTML;}while(matcher=elementMatchers[j++])if(matcher(elem,context||document,xml)){push.call(results,elem);break;}if(outermost)dirruns=dirrunsUnique;}if(bySet){if(elem=!matcher&&elem)matchedCount--;if(seed)unmatched.push(elem);}}matchedCount+=i;
118if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++])matcher(unmatched,setMatched,context,xml);if(seed){if(matchedCount>0)while(i--)if(!(unmatched[i]||setMatched[i]))setMatched[i]=pop.call(results);setMatched=condense(setMatched);}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1)jQuery.uniqueSort(results);}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}function compile(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match)match=tokenize(selector);i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando])setMatchers.push(cached);else elementMatchers.push(cached);}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}return cached;}function select(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context)return results;else{if(compiled)context=context.parentNode;}selector=selector.slice(tokens.shift().value.length);}i=matchExpr.needsContext.test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type])break;if(find=Expr.find[type])if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}break;}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results;}support.sortStable=expando.split("").sort(sortOrder).join("")===expando;setDocument();support.sortDetached=assert((function(el){return el.compareDocumentPosition(document.createElement("fieldset"))&1;}));jQuery.find=find;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=jQuery.uniqueSort;find.compile=compile;find.select=select;find.setDocument=setDocument;find.tokenize=tokenize;find.escape=jQuery.escapeSelector;find.getText=jQuery.text;find.isXML=jQuery.isXMLDoc;find.selectors=jQuery.expr;find.support=jQuery.support;find.uniqueSort=jQuery.uniqueSort;})();var dir=function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9)if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until))break;matched.push(elem);}return matched;};var siblings=function(n,elem){var matched=[];for(;n;n=n.nextSibling)if(n.nodeType===1&&n!==elem)matched.push(n);return matched;};var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function winnow(elements,qualifier,not){if(isFunction(qualifier))return jQuery.grep(elements,(function(elem,i){return !!qualifier.call(elem,i,elem)!==not;}));if(qualifier.nodeType)return jQuery.grep(elements,(function(elem){return elem===qualifier!==not;}));if(typeof qualifier!=="string")return jQuery.grep(elements,(function(elem){return indexOf.call(qualifier,elem)>-1!==not;}));return jQuery.filter(qualifier,elements,not);}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not)expr=":not("+expr+")";if(elems.length===1&&elem.nodeType===1)return jQuery.find.matchesSelector(elem,expr)?[elem]:[];return jQuery.find.matches(expr,jQuery.grep(elems,(function(elem){return elem.nodeType===1;})));};jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if(typeof selector!=="string")return this.pushStack(jQuery(selector).filter((function(){for(i=0;i<len;i++)if(jQuery.contains(self[i],this))return true;})));ret=this.pushStack([]);for(i=0;i<len;i++)jQuery.find(selector,self[i],ret);return len>1?jQuery.uniqueSort(ret):ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return !!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector)return this;root=root||rootjQuery;if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3)match=[null,selector,null];else match=rquickExpr.exec(selector);if(match&&(match[1]||!context))if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context))for(match in context)if(isFunction(this[match]))this[match](context[match]);else this.attr(match,context[match]);return this;}else{elem=document.getElementById(match[2]);if(elem){this[0]=elem;this.length=1;}return this;}else if(!context||context.jquery)return (context||root).find(selector);else return this.constructor(context).find(selector);}else if(selector.nodeType){this[0]=selector;this.length=1;return this;}
118else{if(isFunction(selector))return root.ready!==undefined?root.ready(selector):selector(jQuery);}return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter((function(){var i=0;for(;i<l;i++)if(jQuery.contains(this,targets[i]))return true;}));},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],targets=typeof selectors!=="string"&&jQuery(selectors);if(!rneedsContext.test(selectors))for(;i<l;i++)for(cur=this[i];cur&&cur!==context;cur=cur.parentNode)if(cur.nodeType<11&&(targets?targets.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched);},index:function(elem){if(!elem)return this[0]&&this[0].parentNode?this.first().prevAll().length:-1;if(typeof elem==="string")return indexOf.call(jQuery(elem),this[0]);return indexOf.call(this,elem.jquery?elem[0]:elem);},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}return cur;}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return dir(elem,"parentNode");},parentsUntil:function(elem,_i,until){return dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return dir(elem,"nextSibling");},prevAll:function(elem){return dir(elem,"previousSibling");},nextUntil:function(elem,_i,until){return dir(elem,"nextSibling",until);},prevUntil:function(elem,_i,until){return dir(elem,"previousSibling",until);},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem);},children:function(elem){return siblings(elem.firstChild);},contents:function(elem){if(elem.contentDocument!=null&&getProto(elem.contentDocument))return elem.contentDocument;if(nodeName(elem,"template"))elem=elem.content||elem;return jQuery.merge([],elem.childNodes);}},(function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until")selector=until;if(selector&&typeof selector==="string")matched=jQuery.filter(selector,matched);if(this.length>1){if(!guaranteedUnique[name])jQuery.uniqueSort(matched);if(rparentsprev.test(name))matched.reverse();}return this.pushStack(matched);};}));var rnothtmlwhite=/[^\x20\t\r\n\f]+/g;function createOptions(options){var object={};jQuery.each(options.match(rnothtmlwhite)||[],(function(_,flag){object[flag]=true;}));return object;}jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=locked||options.once;fired=firing=true;for(;queue.length;firingIndex=-1){memory=queue.shift();while(++firingIndex<list.length)if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false;}}if(!options.memory)memory=false;firing=false;if(locked)if(memory)list=[];else list="";},self={add:function(){if(list){if(memory&&!firing){firingIndex=list.length-1;queue.push(memory);}(function add(args){jQuery.each(args,(function(_,arg){if(isFunction(arg)){if(!options.unique||!self.has(arg))list.push(arg);}else{if(arg&&arg.length&&toType(arg)!=="string")add(arg);}}));})(arguments);if(memory&&!firing)fire();}return this;},remove:function(){jQuery.each(arguments,(function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex)firingIndex--;}}));return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0;},empty:function(){if(list)list=[];return this;},disable:function(){locked=queue=[];list=memory="";return this;},disabled:function(){return !list;},lock:function(){locked=queue=[];
118if(!memory&&!firing)list=memory="";return this;},locked:function(){return !!locked;},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing)fire();}return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return !!fired;}};return self;};function Identity(v){return v;}function Thrower(ex){throw ex;}function adoptValue(value,resolve,reject,noValue){var method;try{if(value&&isFunction(method=value.promise))method.call(value).done(resolve).fail(reject);else if(value&&isFunction(method=value.then))method.call(value,resolve,reject);else resolve.apply(undefined,[value].slice(noValue));}catch(value){reject.apply(undefined,[value]);}}jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},catch:function(fn){return promise.then(null,fn);},pipe:function(){var fns=arguments;return jQuery.Deferred((function(newDefer){jQuery.each(tuples,(function(_i,tuple){var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]]((function(){var returned=fn&&fn.apply(this,arguments);if(returned&&isFunction(returned.promise))returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);else newDefer[tuple[0]+"With"](this,fn?[returned]:arguments);}));}));fns=null;})).promise();},then:function(onFulfilled,onRejected,onProgress){var maxDepth=0;function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(depth<maxDepth)return;returned=handler.apply(that,args);if(returned===deferred.promise())throw new TypeError("Thenable self-resolution");then=returned&&(typeof returned==="object"||typeof returned==="function")&&returned.then;if(isFunction(then))if(special)then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special));else{maxDepth++;then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notifyWith));}else{if(handler!==Identity){that=undefined;args=[returned];}(special||deferred.resolveWith)(that,args);}},process=special?mightThrow:function(){try{mightThrow();}catch(e){if(jQuery.Deferred.exceptionHook)jQuery.Deferred.exceptionHook(e,process.error);if(depth+1>=maxDepth){if(handler!==Thrower){that=undefined;args=[e];}deferred.rejectWith(that,args);}}};if(depth)process();else{if(jQuery.Deferred.getErrorHook)process.error=jQuery.Deferred.getErrorHook();else{if(jQuery.Deferred.getStackHook)process.error=jQuery.Deferred.getStackHook();}window.setTimeout(process);}};}return jQuery.Deferred((function(newDefer){tuples[0][3].add(resolve(0,newDefer,isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith));tuples[1][3].add(resolve(0,newDefer,isFunction(onFulfilled)?onFulfilled:Identity));tuples[2][3].add(resolve(0,newDefer,isFunction(onRejected)?onRejected:Thrower));})).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};jQuery.each(tuples,(function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add;if(stateString)list.add((function(){state=stateString;}),tuples[3-i][2].disable,tuples[3-i][3].disable,tuples[0][2].lock,tuples[0][3].lock);list.add(tuple[3].fire);deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?undefined:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;}));promise.promise(deferred);if(func)func.call(deferred,deferred);return deferred;},when:function(singleValue){var remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),primary=jQuery.Deferred(),updateFunc=function(i){return function(value){resolve
118Contexts[i]=this;resolveValues[i]=arguments.length>1?slice.call(arguments):value;if(!--remaining)primary.resolveWith(resolveContexts,resolveValues);};};if(remaining<=1){adoptValue(singleValue,primary.done(updateFunc(i)).resolve,primary.reject,!remaining);if(primary.state()==="pending"||isFunction(resolveValues[i]&&resolveValues[i].then))return primary.then();}while(i--)adoptValue(resolveValues[i],updateFunc(i),primary.reject);return primary.promise();}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,asyncError){if(window.console&&window.console.warn&&error&&rerrorNames.test(error.name))window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,asyncError);};jQuery.readyException=function(error){window.setTimeout((function(){throw error;}));};var readyList=jQuery.Deferred();jQuery.fn.ready=function(fn){readyList.then(fn).catch((function(error){jQuery.readyException(error);}));return this;};jQuery.extend({isReady:false,readyWait:1,ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady)return;jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0)return;readyList.resolveWith(document,[jQuery]);}});jQuery.ready.then=readyList.then;function completed(){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed);jQuery.ready();}if(document.readyState==="complete"||document.readyState!=="loading"&&!document.documentElement.doScroll)window.setTimeout(jQuery.ready);else{document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed);}var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(toType(key)==="object"){chainable=true;for(i in key)access(elems,fn,i,key[i],true,emptyGet,raw);}else{if(value!==undefined){chainable=true;if(!isFunction(value))raw=true;if(bulk)if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,_key,value){return bulk.call(jQuery(elem),value);};}if(fn)for(;i<len;i++)fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}if(chainable)return elems;if(bulk)return fn.call(elems);return len?fn(elems[0],key):emptyGet;};var rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g;function fcamelCase(_all,letter){return letter.toUpperCase();}function camelCase(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);}var acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!+owner.nodeType;};function Data(){this.expando=jQuery.expando+Data.uid++;}Data.uid=1;Data.prototype={cache:function(owner){var value=owner[this.expando];if(!value){value={};if(acceptData(owner))if(owner.nodeType)owner[this.expando]=value;else Object.defineProperty(owner,this.expando,{value,configurable:true});}return value;},set:function(owner,data,value){var prop,cache=this.cache(owner);if(typeof data==="string")cache[camelCase(data)]=value;else for(prop in data)cache[camelCase(prop)]=data[prop];return cache;},get:function(owner,key){return key===undefined?this.cache(owner):owner[this.expando]&&owner[this.expando][camelCase(key)];},access:function(owner,key,value){if(key===undefined||key&&typeof key==="string"&&value===undefined)return this.get(owner,key);this.set(owner,key,value);return value!==undefined?value:key;},remove:function(owner,key){var i,cache=owner[this.expando];if(cache===undefined)return;if(key!==undefined){if(Array.isArray(key))key=key.map(camelCase);else{key=camelCase(key);key=key in cache?[key]:key.match(rnothtmlwhite)||[];}i=key.length;while(i--)delete cache[key[i]];}if(key===undefined||jQuery.isEmptyObject(cache))if(owner.nodeType)owner[this.expando]=undefined;else delete owner[this.expando];},hasData:function(owner){var cache=owner[this.expando];return cache!==undefined&&!jQuery.isEmptyObject(cache);}};var dataPriv=new Data();var dataUser=new Data();var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function getData(data){if(data==="true")return true;if(data==="false")return false;if(data==="null")return null;if(data===+data+"")return +data;if(rbrace.test(data))return JSON.parse(data);return data;}function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=getData(data);}catch(e){}dataUser.set(elem,key,data);}else data=undefined;}return data;}jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem);},data:function(elem,name,data){return dataUser.access(elem,name,data);},removeData:function(elem,name){dataUser.remove(elem,name);},_data:function(elem,name,data){return dataPriv.access(elem,name,data);},_removeData:function(elem,name){dataPriv.remove(elem,name);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=dataUser.get(elem);if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--)if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}dataPriv.set(elem,"hasDataAttrs",true);}}return data;}if(typeof key==="object")return this.each((function(){dataUser.set(this,key);}));return access(this,(function(value){var data;if(elem&&value===undefined){data=dataUser.get(elem,key);
118if(data!==undefined)return data;data=dataAttr(elem,key);if(data!==undefined)return data;return;}this.each((function(){dataUser.set(this,key,value);}));}),null,value,arguments.length>1,null,true);},removeData:function(key){return this.each((function(){dataUser.remove(this,key);}));}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=dataPriv.get(elem,type);if(data)if(!queue||Array.isArray(data))queue=dataPriv.access(elem,type,jQuery.makeArray(data));else queue.push(data);return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}if(fn){if(type==="fx")queue.unshift("inprogress");delete hooks.stop;fn.call(elem,next,hooks);}if(!startLength&&hooks)hooks.empty.fire();},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add((function(){dataPriv.remove(elem,[type+"queue",key]);}))});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}if(arguments.length<setter)return jQuery.queue(this[0],type);return data===undefined?this:this.each((function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress")jQuery.dequeue(this,type);}));},dequeue:function(type){return this.each((function(){jQuery.dequeue(this,type);}));},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!--count)defer.resolveWith(elements,[elements]);};if(typeof type!=="string"){obj=type;type=undefined;}type=type||"fx";while(i--){tmp=dataPriv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}resolve();return defer.promise(obj);}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");var cssExpand=["Top","Right","Bottom","Left"];var documentElement=document.documentElement;var isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem);},composed={composed:true};if(documentElement.getRootNode)isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem)||elem.getRootNode(composed)===elem.ownerDocument;};var isHiddenWithinTree=function(elem,el){elem=el||elem;return elem.style.display==="none"||elem.style.display===""&&isAttached(elem)&&jQuery.css(elem,"display")==="none";};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale,maxIterations=20,currentValue=tween?function(){return tween.cur();}:function(){return jQuery.css(elem,prop,"");},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=elem.nodeType&&(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){initial=initial/2;unit=unit||initialInUnit[3];initialInUnit=+initial||1;while(maxIterations--){jQuery.style(elem,prop,initialInUnit+unit);if((1-scale)*(1-(scale=currentValue()/initial||.5))<=0)maxIterations=0;initialInUnit=initialInUnit/scale;}initialInUnit=initialInUnit*2;jQuery.style(elem,prop,initialInUnit+unit);valueParts=valueParts||[];}if(valueParts){initialInUnit=+initialInUnit||+initial||0;adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2];if(tween){tween.unit=unit;tween.start=initialInUnit;tween.end=adjusted;}}return adjusted;}var defaultDisplayMap={};function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];if(display)return display;temp=doc.body.appendChild(doc.createElement(nodeName));display=jQuery.css(temp,"display");temp.parentNode.removeChild(temp);if(display==="none")display="block";defaultDisplayMap[nodeName]=display;return display;}function showHide(elements,show){var display,elem,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style)continue;display=elem.style.display;
118if(show){if(display==="none"){values[index]=dataPriv.get(elem,"display")||null;if(!values[index])elem.style.display="";}if(elem.style.display===""&&isHiddenWithinTree(elem))values[index]=getDefaultDisplay(elem);}else{if(display!=="none"){values[index]="none";dataPriv.set(elem,"display",display);}}}for(index=0;index<length;index++)if(values[index]!=null)elements[index].style.display=values[index];return elements;}jQuery.fn.extend({show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean")return state?this.show():this.hide();return this.each((function(){if(isHiddenWithinTree(this))jQuery(this).show();else jQuery(this).hide();}));}});var rcheckableType=/^(?:checkbox|radio)$/i;var rtagName=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;var rscriptType=/^$|^module$|\/(?:java|ecma)script/i;(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;div.innerHTML="<option></option>";support.option=!!div.lastChild;})();var wrapMap={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!support.option)wrapMap.optgroup=wrapMap.option=[1,"<select multiple='multiple'>","</select>"];function getAll(context,tag){var ret;if(typeof context.getElementsByTagName!=="undefined")ret=context.getElementsByTagName(tag||"*");else if(typeof context.querySelectorAll!=="undefined")ret=context.querySelectorAll(tag||"*");else ret=[];if(tag===undefined||tag&&nodeName(context,tag))return jQuery.merge([context],ret);return ret;}function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++)dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"));}var rhtml=/<|&#?\w+;/;function buildFragment(elems,context,scripts,selection,ignored){var elem,tmp,tag,wrap,attached,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0)if(toType(elem)==="object")jQuery.merge(nodes,elem.nodeType?[elem]:elem);else if(!rhtml.test(elem))nodes.push(context.createTextNode(elem));else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--)tmp=tmp.lastChild;jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}}fragment.textContent="";i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)>-1){if(ignored)ignored.push(elem);continue;}attached=isAttached(elem);tmp=getAll(fragment.appendChild(elem),"script");if(attached)setGlobalEval(tmp);if(scripts){j=0;while(elem=tmp[j++])if(rscriptType.test(elem.type||""))scripts.push(elem);}}return fragment;}var rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true;}function returnFalse(){return false;}function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}for(type in types)on(elem,type,selector,data,types[type],one);return elem;}if(data==null&&fn==null){fn=selector;data=selector=undefined;}else{if(fn==null)if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}if(fn===false)fn=returnFalse;else{if(!fn)return elem;}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}return elem.each((function(){jQuery.event.add(this,types,fn,data,selector);}));}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(!acceptData(elem))return;if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}if(selector)jQuery.find.matchesSelector(documentElement,selector);if(!handler.guid)handler.guid=jQuery.guid++;if(!(events=elemData.events))events=elemData.events=Object.create(null);if(!(eventHandle=elemData.handle))eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined;};types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type)continue;special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type,origType,data,handler,guid:handler.guid,selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;
118if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false)if(elem.addEventListener)elem.addEventListener(type,eventHandle);}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid)handleObj.handler.guid=handler.guid;}if(selector)handlers.splice(handlers.delegateCount++,0,handleObj);else handlers.push(handleObj);jQuery.event.global[type]=true;}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(!elemData||!(events=elemData.events))return;types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events)jQuery.event.remove(elem,type+types[t],handler,selector,true);continue;}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector)handlers.delegateCount--;if(special.remove)special.remove.call(elem,handleObj);}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false)jQuery.removeEvent(elem,type,elemData.handle);delete events[type];}}if(jQuery.isEmptyObject(events))dataPriv.remove(elem,"handle events");},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,args=new Array(arguments.length),event=jQuery.event.fix(nativeEvent),handlers=(dataPriv.get(this,"events")||Object.create(null))[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;for(i=1;i<arguments.length;i++)args[i]=arguments[i];event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false)return;handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped())if(!event.rnamespace||handleObj.namespace===false||event.rnamespace.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined)if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}if(special.postDispatch)special.postDispatch.call(this,event);return event.result;},handlers:function(event,handlers){var i,handleObj,sel,matchedHandlers,matchedSelectors,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&!(event.type==="click"&&event.button>=1))for(;cur!==this;cur=cur.parentNode||this)if(cur.nodeType===1&&!(event.type==="click"&&cur.disabled===true)){matchedHandlers=[];matchedSelectors={};for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matchedSelectors[sel]===undefined)matchedSelectors[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length;if(matchedSelectors[sel])matchedHandlers.push(handleObj);}if(matchedHandlers.length)handlerQueue.push({elem:cur,handlers:matchedHandlers});}cur=this;if(delegateCount<handlers.length)handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)});return handlerQueue;},addProp:function(name,hook){Object.defineProperty(jQuery.Event.prototype,name,{enumerable:true,configurable:true,get:isFunction(hook)?function(){if(this.originalEvent)return hook(this.originalEvent);}:function(){if(this.originalEvent)return this.originalEvent[name];},set:function(value){Object.defineProperty(this,name,{enumerable:true,configurable:true,writable:true,value});}});},fix:function(originalEvent){return originalEvent[jQuery.expando]?originalEvent:ne
118w jQuery.Event(originalEvent);},special:{load:{noBubble:true},click:{setup:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input"))leverageNative(el,"click",true);return false;},trigger:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input"))leverageNative(el,"click");return true;},_default:function(event){var target=event.target;return rcheckableType.test(target.type)&&target.click&&nodeName(target,"input")&&dataPriv.get(target,"click")||nodeName(target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent)event.originalEvent.returnValue=event.result;}}}};function leverageNative(el,type,isSetup){if(!isSetup){if(dataPriv.get(el,type)===undefined)jQuery.event.add(el,type,returnTrue);return;}dataPriv.set(el,type,false);jQuery.event.add(el,type,{namespace:false,handler:function(event){var result,saved=dataPriv.get(this,type);if(event.isTrigger&1&&this[type])if(!saved){saved=slice.call(arguments);dataPriv.set(this,type,saved);this[type]();result=dataPriv.get(this,type);dataPriv.set(this,type,false);if(saved!==result){event.stopImmediatePropagation();event.preventDefault();return result;}}else{if((jQuery.event.special[type]||{}).delegateType)event.stopPropagation();}else{if(saved){dataPriv.set(this,type,jQuery.event.trigger(saved[0],saved.slice(1),this));event.stopPropagation();event.isImmediatePropagationStopped=returnTrue;}}}});}jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener)elem.removeEventListener(type,handle);};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event))return new jQuery.Event(src,props);if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;this.target=src.target&&src.target.nodeType===3?src.target.parentNode:src.target;this.currentTarget=src.currentTarget;this.relatedTarget=src.relatedTarget;}else this.type=src;if(props)jQuery.extend(this,props);this.timeStamp=src&&src.timeStamp||Date.now();this[jQuery.expando]=true;};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:false,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&!this.isSimulated)e.preventDefault();},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&!this.isSimulated)e.stopPropagation();},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&!this.isSimulated)e.stopImmediatePropagation();this.stopPropagation();}};jQuery.each({altKey:true,bubbles:true,cancelable:true,changedTouches:true,ctrlKey:true,detail:true,eventPhase:true,metaKey:true,pageX:true,pageY:true,shiftKey:true,view:true,char:true,code:true,charCode:true,key:true,keyCode:true,button:true,buttons:true,clientX:true,clientY:true,offsetX:true,offsetY:true,pointerId:true,pointerType:true,screenX:true,screenY:true,targetTouches:true,toElement:true,touches:true,which:true},jQuery.event.addProp);jQuery.each({focus:"focusin",blur:"focusout"},(function(type,delegateType){function focusMappedHandler(nativeEvent){if(document.documentMode){var handle=dataPriv.get(this,"handle"),event=jQuery.event.fix(nativeEvent);event.type=nativeEvent.type==="focusin"?"focus":"blur";event.isSimulated=true;handle(nativeEvent);if(event.target===event.currentTarget)handle(event);}else jQuery.event.simulate(delegateType,nativeEvent.target,jQuery.event.fix(nativeEvent));}jQuery.event.special[type]={setup:function(){var attaches;leverageNative(this,type,true);if(document.documentMode){attaches=dataPriv.get(this,delegateType);if(!attaches)this.addEventListener(delegateType,focusMappedHandler);dataPriv.set(this,delegateType,(attaches||0)+1);}else return false;},trigger:function(){leverageNative(this,type);return true;},teardown:function(){var attaches;if(document.documentMode){attaches=dataPriv.get(this,delegateType)-1;if(!attaches){this.removeEventListener(delegateType,focusMappedHandler);dataPriv.remove(this,delegateType);}
118else dataPriv.set(this,delegateType,attaches);}else return false;},_default:function(event){return dataPriv.get(event.target,type);},delegateType};jQuery.event.special[delegateType]={setup:function(){var doc=this.ownerDocument||this.document||this,dataHolder=document.documentMode?this:doc,attaches=dataPriv.get(dataHolder,delegateType);if(!attaches)if(document.documentMode)this.addEventListener(delegateType,focusMappedHandler);else doc.addEventListener(type,focusMappedHandler,true);dataPriv.set(dataHolder,delegateType,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this.document||this,dataHolder=document.documentMode?this:doc,attaches=dataPriv.get(dataHolder,delegateType)-1;if(!attaches){if(document.documentMode)this.removeEventListener(delegateType,focusMappedHandler);else doc.removeEventListener(type,focusMappedHandler,true);dataPriv.remove(dataHolder,delegateType);}else dataPriv.set(dataHolder,delegateType,attaches);}};}));jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},(function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||related!==target&&!jQuery.contains(target,related)){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}return ret;}};}));jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn);},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}if(typeof types==="object"){for(type in types)this.off(type,selector,types[type]);return this;}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}if(fn===false)fn=returnFalse;return this.each((function(){jQuery.event.remove(this,types,fn,selector);}));}});var rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rcleanScript=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function manipulationTarget(elem,content){if(nodeName(elem,"table")&&nodeName(content.nodeType!==11?content:content.firstChild,"tr"))return jQuery(elem).children("tbody")[0]||elem;return elem;}function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem;}function restoreScript(elem){if((elem.type||"").slice(0,5)==="true/")elem.type=elem.type.slice(5);else elem.removeAttribute("type");return elem;}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,udataOld,udataCur,events;if(dest.nodeType!==1)return;if(dataPriv.hasData(src)){pdataOld=dataPriv.get(src);events=pdataOld.events;if(events){dataPriv.remove(dest,"handle events");for(type in events)for(i=0,l=events[type].length;i<l;i++)jQuery.event.add(dest,type,events[type][i]);}}if(dataUser.hasData(src)){udataOld=dataUser.access(src);udataCur=jQuery.extend({},udataOld);dataUser.set(dest,udataCur);}}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type))dest.checked=src.checked;else{if(nodeName==="input"||nodeName==="textarea")dest.defaultValue=src.defaultValue;}}function domManip(collection,args,callback,ignored){args=flat(args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],valueIsFunction=isFunction(value);if(valueIsFunction||l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))return collection.each((function(index){var self=collection.eq(index);if(valueIsFunction)args[0]=value.call(this,index,self.html());domManip(self,args,callback,ignored);}));if(l){fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);first=fragment.firstChild;if(fragment.childNodes.length===1)fragment=first;if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;
118if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts)jQuery.merge(scripts,getAll(node,"script"));}callback.call(collection[i],node,i);}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node))if(node.src&&(node.type||"").toLowerCase()!=="module"){if(jQuery._evalUrl&&!node.noModule)jQuery._evalUrl(node.src,{nonce:node.nonce||node.getAttribute("nonce")},doc);}else DOMEval(node.textContent.replace(rcleanScript,""),node,doc);}}}}return collection;}function remove(elem,selector,keepData){var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;for(;(node=nodes[i])!=null;i++){if(!keepData&&node.nodeType===1)jQuery.cleanData(getAll(node));if(node.parentNode){if(keepData&&isAttached(node))setGlobalEval(getAll(node,"script"));node.parentNode.removeChild(node);}}return elem;}jQuery.extend({htmlPrefilter:function(html){return html;},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=isAttached(elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++)fixInput(srcElements[i],destElements[i]);}if(dataAndEvents)if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++)cloneCopyEvent(srcElements[i],destElements[i]);}else cloneCopyEvent(elem,clone);destElements=getAll(clone,"script");if(destElements.length>0)setGlobalEval(destElements,!inPage&&getAll(elem,"script"));return clone;},cleanData:function(elems){var data,elem,type,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++)if(acceptData(elem)){if(data=elem[dataPriv.expando]){if(data.events)for(type in data.events)if(special[type])jQuery.event.remove(elem,type);else jQuery.removeEvent(elem,type,data.handle);elem[dataPriv.expando]=undefined;}if(elem[dataUser.expando])elem[dataUser.expando]=undefined;}}});jQuery.fn.extend({detach:function(selector){return remove(this,selector,true);},remove:function(selector){return remove(this,selector);},text:function(value){return access(this,(function(value){return value===undefined?jQuery.text(this):this.empty().each((function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9)this.textContent=value;}));}),null,value,arguments.length);},append:function(){return domManip(this,arguments,(function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}}));},prepend:function(){return domManip(this,arguments,(function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);}}));},before:function(){return domManip(this,arguments,(function(elem){if(this.parentNode)this.parentNode.insertBefore(elem,this);}));},after:function(){return domManip(this,arguments,(function(elem){if(this.parentNode)this.parentNode.insertBefore(elem,this.nextSibling);}));},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++)if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent="";}return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map((function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);}));},html:function(value){return access(this,(function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1)return elem.innerHTML;if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}elem=0;}catch(e){}}if(elem)this.empty().append(value);}),null,value,arguments.length);},replaceWith:function(){var ignored=[];return domManip(this,arguments,(function(elem){var parent=this.parentNode;if(jQuery.inArray(this,ignored)<0){jQuery.cleanData(getAll(this));if(parent)parent.replaceChild(elem,this);}}),ignored);}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},(function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);
118push.apply(ret,elems.get());}return this.pushStack(ret);};}));var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var rcustomProp=/^--/;var getStyles=function(elem){var view=elem.ownerDocument.defaultView;if(!view||!view.opener)view=window;return view.getComputedStyle(elem);};var swap=function(elem,options,callback){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}ret=callback.call(elem);for(name in options)elem.style[name]=old[name];return ret;};var rboxStyle=new RegExp(cssExpand.join("|"),"i");(function(){function computeStyleTests(){if(!div)return;container.style.cssText="position:absolute;left:-11111px;width:60px;"+"margin-top:1px;padding:0;border:0";div.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;"+"margin:auto;border:1px;padding:1px;"+"width:60%;top:1%";documentElement.appendChild(container).appendChild(div);var divStyle=window.getComputedStyle(div);pixelPositionVal=divStyle.top!=="1%";reliableMarginLeftVal=roundPixelMeasures(divStyle.marginLeft)===12;div.style.right="60%";pixelBoxStylesVal=roundPixelMeasures(divStyle.right)===36;boxSizingReliableVal=roundPixelMeasures(divStyle.width)===36;div.style.position="absolute";scrollboxSizeVal=roundPixelMeasures(div.offsetWidth/3)===12;documentElement.removeChild(container);div=null;}function roundPixelMeasures(measure){return Math.round(parseFloat(measure));}var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,reliableTrDimensionsVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style)return;div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";jQuery.extend(support,{boxSizingReliable:function(){computeStyleTests();return boxSizingReliableVal;},pixelBoxStyles:function(){computeStyleTests();return pixelBoxStylesVal;},pixelPosition:function(){computeStyleTests();return pixelPositionVal;},reliableMarginLeft:function(){computeStyleTests();return reliableMarginLeftVal;},scrollboxSize:function(){computeStyleTests();return scrollboxSizeVal;},reliableTrDimensions:function(){var table,tr,trChild,trStyle;if(reliableTrDimensionsVal==null){table=document.createElement("table");tr=document.createElement("tr");trChild=document.createElement("div");table.style.cssText="position:absolute;left:-11111px;border-collapse:separate";tr.style.cssText="box-sizing:content-box;border:1px solid";tr.style.height="1px";trChild.style.height="9px";trChild.style.display="block";documentElement.appendChild(table).appendChild(tr).appendChild(trChild);trStyle=window.getComputedStyle(tr);reliableTrDimensionsVal=parseInt(trStyle.height,10)+parseInt(trStyle.borderTopWidth,10)+parseInt(trStyle.borderBottomWidth,10)===tr.offsetHeight;documentElement.removeChild(table);}return reliableTrDimensionsVal;}});})();function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,isCustomProp=rcustomProp.test(name),style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];if(isCustomProp&&ret)ret=ret.replace(rtrimCSS,"$1")||undefined;if(ret===""&&!isAttached(elem))ret=jQuery.style(elem,name);if(!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}return ret!==undefined?ret+"":ret;}function addGetHookIf(conditionFn,hookFn){return {get:function(){if(conditionFn()){delete this.get;return;}return (this.get=hookFn).apply(this,arguments);}};}var cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style,vendorProps={};function vendorPropName(name){var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle)return name;}}function finalPropName(name){var final=jQuery.cssProps[name]||vendorProps[name];if(final)return final;if(name in emptyStyle)return name;return vendorProps[name]=vendorPropName(name)||name;}var rdisplayswap=/^(none|table(?!-c[ea]).+)/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"};function setPositiveNumber(_elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value;}function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){var i=dimension==="width"?1:0,extra=0,delta=0,marginDelta=0;if(box===(isBorderBox?"border":"content"))return 0;for(;i<4;i+=2){if(box==="margin")marginDelta+=jQuery.css(elem,box+cssExpand[i],true,
118styles);if(!isBorderBox){delta+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(box!=="padding")delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);else extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}else{if(box==="content")delta-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(box!=="margin")delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}if(!isBorderBox&&computedVal>=0)delta+=Math.max(0,Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-computedVal-delta-extra-.5))||0;return delta+marginDelta;}function getWidthOrHeight(elem,dimension,extra){var styles=getStyles(elem),boxSizingNeeded=!support.boxSizingReliable()||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",valueIsBorderBox=isBorderBox,val=curCSS(elem,dimension,styles),offsetProp="offset"+dimension[0].toUpperCase()+dimension.slice(1);if(rnumnonpx.test(val)){if(!extra)return val;val="auto";}if((!support.boxSizingReliable()&&isBorderBox||!support.reliableTrDimensions()&&nodeName(elem,"tr")||val==="auto"||!parseFloat(val)&&jQuery.css(elem,"display",false,styles)==="inline")&&elem.getClientRects().length){isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";valueIsBorderBox=offsetProp in elem;if(valueIsBorderBox)val=elem[offsetProp];}val=parseFloat(val)||0;return val+boxModelAdjustment(elem,dimension,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles,val)+"px";}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{animationIterationCount:true,aspectRatio:true,borderImageSlice:true,columnCount:true,flexGrow:true,flexShrink:true,fontWeight:true,gridArea:true,gridColumn:true,gridColumnEnd:true,gridColumnStart:true,gridRow:true,gridRowEnd:true,gridRowStart:true,lineHeight:true,opacity:true,order:true,orphans:true,scale:true,widows:true,zIndex:true,zoom:true,fillOpacity:true,floodOpacity:true,stopOpacity:true,strokeMiterlimit:true,strokeOpacity:true},cssProps:{},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style)return;var ret,type,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name),style=elem.style;if(!isCustomProp)name=finalPropName(origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){value=adjustCSS(elem,name,ret);type="number";}if(value==null||value!==value)return;if(type==="number"&&!isCustomProp)value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px");if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0)style[name]="inherit";if(!hooks||!("set" in hooks)||(value=hooks.set(elem,value,extra))!==undefined)if(isCustomProp)style.setProperty(name,value);else style[name]=value;}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,false,extra))!==undefined)return ret;return style[name];}},css:function(elem,name,extra,styles){var val,num,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name);if(!isCustomProp)name=finalPropName(origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get" in hooks)val=hooks.get(elem,true,extra);if(val===undefined)val=curCSS(elem,name,styles);if(val==="normal"&&name in cssNormalTransform)val=cssNormalTransform[name];if(extra===""||extra){num=parseFloat(val);return extra===true||isFinite(num)?num||0:val;}return val;}});jQuery.each(["height","width"],(function(_i,dimension){jQuery.cssHooks[dimension]={get:function(elem,computed,extra){if(computed)return rdisplayswap.test(jQuery.css(elem,"display"))&&(!elem.getClientRects().length||!elem.getBoundingClientRect().width)?swap(elem,cssShow,(function(){return getWidthOrHeight(elem,dimension,extra);})):getWidthOrHeight(elem,dimension,extra);},set:function(elem,value,extra){var matches,styles=getStyles(elem),scrollboxSizeBuggy=!support.scrollboxSize()&&styles.position==="absolute",boxSizingNeeded=scrollboxSizeBuggy||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",subtract=extra?boxModelAdjustment(elem,dimension,extra,isBorderBox,styles):0;if(isBorderBox&&scrollboxSizeBuggy)subtract-=Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-parseFloat(styles[dimension])-boxModelAdjustment(elem,dimension,"border",false,styles)-.5);if(subtract&&(matches=rcssNum.exec(value))&&(matches[3]||"px")!=="px"){elem.style[dimension]=value;value=jQuery.css(elem,dimension);}return setPositiveNumber(elem,value,subtract);}};}));jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,(function(elem,computed){if(computed)return (parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-swap(elem,{marginLeft:0},(function(){return elem.getBoundingClientRect().left;})))+"px";}));jQuery.each({margin:"",padding:"",border:"Width"},(function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++)expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];return expanded;}};if(prefix!=="margin")jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}));jQuery.fn.extend({css:function(name,value){return access(this,(function(elem,name,value){var styles,len,map={},i=0;if(Array.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++)map[name[i]]=jQuery.css(elem,name[i],false,styles);return map;}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);}),name,value,arguments.length>1);}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||jQuery.easing._default;this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration)this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);else this.pos=eased=percent;this.now=(this.end-this.start)*eased+this.start;if(this.options.step)this.options.step.call(this.elem,this.now,this);if(hooks&&hooks.set)hooks.set(this);else Tween.propHooks._default.set(this);return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null)return tween.elem[tween.prop];result=jQuery.css(tween.elem,tween.prop,"");return !result||result==="auto"?0:result;}
118,set:function(tween){if(jQuery.fx.step[tween.prop])jQuery.fx.step[tween.prop](tween);else if(tween.elem.nodeType===1&&(jQuery.cssHooks[tween.prop]||tween.elem.style[finalPropName(tween.prop)]!=null))jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);else tween.elem[tween.prop]=tween.now;}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode)tween.elem[tween.prop]=tween.now;}};jQuery.easing={linear:function(p){return p;},swing:function(p){return .5-Math.cos(p*Math.PI)/2;},_default:"swing"};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,inProgress,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function schedule(){if(inProgress){if(document.hidden===false&&window.requestAnimationFrame)window.requestAnimationFrame(schedule);else window.setTimeout(schedule,jQuery.fx.interval);jQuery.fx.tick();}}function createFxNow(){window.setTimeout((function(){fxNow=undefined;}));return fxNow=Date.now();}function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}if(includeWidth)attrs.opacity=attrs.width=type;return attrs;}function createTween(value,prop,animation){var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;for(;index<length;index++)if(tween=collection[index].call(animation,prop,value))return tween;}function defaultPrefilter(elem,props,opts){var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,isBox="width" in props||"height" in props,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHiddenWithinTree(elem),dataShow=dataPriv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued)oldfire();};}hooks.unqueued++;anim.always((function(){anim.always((function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length)hooks.empty.fire();}));}));}for(prop in props){value=props[prop];if(rfxtypes.test(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show"))if(value==="show"&&dataShow&&dataShow[prop]!==undefined)hidden=true;else continue;orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}}propTween=!jQuery.isEmptyObject(props);if(!propTween&&jQuery.isEmptyObject(orig))return;if(isBox&&elem.nodeType===1){opts.overflow=[style.overflow,style.overflowX,style.overflowY];restoreDisplay=dataShow&&dataShow.display;if(restoreDisplay==null)restoreDisplay=dataPriv.get(elem,"display");display=jQuery.css(elem,"display");if(display==="none")if(restoreDisplay)display=restoreDisplay;else{showHide([elem],true);restoreDisplay=elem.style.display||restoreDisplay;display=jQuery.css(elem,"display");showHide([elem]);}if(display==="inline"||display==="inline-block"&&restoreDisplay!=null)if(jQuery.css(elem,"float")==="none"){if(!propTween){anim.done((function(){style.display=restoreDisplay;}));if(restoreDisplay==null){display=style.display;restoreDisplay=display==="none"?"":display;}}style.display="inline-block";}}if(opts.overflow){style.overflow="hidden";anim.always((function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];}));}propTween=false;for(prop in orig){if(!propTween){if(dataShow){if("hidden" in dataShow)hidden=dataShow.hidden;}else dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay});if(toggle)dataShow.hidden=!hidden;if(hidden)showHide([elem],true);anim.done((function(){if(!hidden)showHide([elem]);dataPriv.remove(elem,"fxshow");for(prop in orig)jQuery.style(elem,prop,orig[prop]);}));}propTween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=propTween.start;if(hidden){propTween.end=propTween.start;propTween.start=0;}}}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=camelCase(index);
118easing=specialEasing[name];value=props[index];if(Array.isArray(value)){easing=value[1];value=props[index]=value[0];}if(index!==name){props[name]=value;delete props[index];}hooks=jQuery.cssHooks[name];if(hooks&&"expand" in hooks){value=hooks.expand(value);delete props[name];for(index in value)if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}else specialEasing[name]=easing;}}function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always((function(){delete tick.elem;})),tick=function(){if(stopped)return false;var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++)animation.tweens[index].run(percent);deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length)return remaining;if(!length)deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation]);return false;},animation=deferred.promise({elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped)return this;stopped=true;for(;index<length;index++)animation.tweens[index].run(1);if(gotoEnd){deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation,gotoEnd]);}else deferred.rejectWith(elem,[animation,gotoEnd]);return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=Animation.prefilters[index].call(animation,elem,props,animation.opts);if(result){if(isFunction(result.stop))jQuery._queueHooks(animation.elem,animation.opts.queue).stop=result.stop.bind(result);return result;}}jQuery.map(props,createTween,animation);if(isFunction(animation.opts.start))animation.opts.start.call(elem,animation);animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);jQuery.fx.timer(jQuery.extend(tick,{elem,anim:animation,queue:animation.opts.queue}));return animation;}jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);return tween;}]},tweener:function(props,callback){if(isFunction(props)){callback=props;props=["*"];}else props=props.match(rnothtmlwhite);var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];Animation.tweeners[prop]=Animation.tweeners[prop]||[];Animation.tweeners[prop].unshift(callback);}},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){if(prepend)Animation.prefilters.unshift(callback);else Animation.prefilters.push(callback);}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!isFunction(easing)&&easing};if(jQuery.fx.off)opt.duration=0;else{if(typeof opt.duration!=="number")if(opt.duration in jQuery.fx.speeds)opt.duration=jQuery.fx.speeds[opt.duration];else opt.duration=jQuery.fx.speeds._default;}if(opt.queue==null||opt.queue===true)opt.queue="fx";opt.old=opt.complete;opt.complete=function(){if(isFunction(opt.old))opt.old.call(this);if(opt.queue)jQuery.dequeue(this,opt.queue);};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHiddenWithinTree).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||dataPriv.get(this,"finish"))anim.stop(true);};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;
118type=undefined;}if(clearQueue)this.queue(type||"fx",[]);return this.each((function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index){if(data[index]&&data[index].stop)stopQueue(data[index]);}else{for(index in data)if(data[index]&&data[index].stop&&rrun.test(index))stopQueue(data[index]);}for(index=timers.length;index--;)if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}if(dequeue||!gotoEnd)jQuery.dequeue(this,type);}));},finish:function(type){if(type!==false)type=type||"fx";return this.each((function(){var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop)hooks.stop.call(this,true);for(index=timers.length;index--;)if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1);}for(index=0;index<length;index++)if(queue[index]&&queue[index].finish)queue[index].finish.call(this);delete data.finish;}));}});jQuery.each(["toggle","show","hide"],(function(_i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};}));jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},(function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};}));jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=Date.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer)timers.splice(i--,1);}if(!timers.length)jQuery.fx.stop();fxNow=undefined;};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);jQuery.fx.start();};jQuery.fx.interval=13;jQuery.fx.start=function(){if(inProgress)return;inProgress=true;schedule();};jQuery.fx.stop=function(){inProgress=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,(function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout);};}));};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t";})();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},removeAttr:function(name){return this.each((function(){jQuery.removeAttr(this,name);}));}});jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2)return;if(typeof elem.getAttribute==="undefined")return jQuery.prop(elem,name,value);if(nType!==1||!jQuery.isXMLDoc(elem))hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:undefined);if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return;}if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined)return ret;elem.setAttribute(name,value+"");return value;}if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==null)return ret;ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val)elem.value=val;return value;}}}},removeAttr:function(elem,value){var name,i=0,attrNames=value&&value.match(rnothtmlwhite);if(attrNames&&elem.nodeType===1)while(name=attrNames[i++])elem.removeAttribute(name);}});boolHook={set:function(elem,value,name){if(value===false)jQuery.removeAttr(elem,name);else elem.setAttribute(name,name);return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),(function(_i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();if(!isXML){handle=attrHandle[lowercaseName];attrHandle[lowercaseName]=ret;ret=getter(elem,name,isXML)!=null?lowercaseName:null;attrHandle[lowercaseName]=handle;}return ret;};}));var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){return this.each((function(){delete this[jQuery.propFix[name]||name];}));}});jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2)return;if(nType!==1||!jQuery.isXMLDoc(elem)){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}
118if(value!==undefined){if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined)return ret;return elem[name]=value;}if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==null)return ret;return elem[name];},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");if(tabindex)return parseInt(tabindex,10);if(rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href)return 0;return -1;}}},propFix:{for:"htmlFor",class:"className"}});if(!support.optSelected)jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode)parent.parentNode.selectedIndex;return null;},set:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode)parent.parentNode.selectedIndex;}}};jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){jQuery.propFix[this.toLowerCase()]=this;}));function stripAndCollapse(value){var tokens=value.match(rnothtmlwhite)||[];return tokens.join(" ");}function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||"";}function classesToArray(value){if(Array.isArray(value))return value;if(typeof value==="string")return value.match(rnothtmlwhite)||[];return [];}jQuery.fn.extend({addClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value))return this.each((function(j){jQuery(this).addClass(value.call(this,j,getClass(this)));}));classNames=classesToArray(value);if(classNames.length)return this.each((function(){curValue=getClass(this);cur=this.nodeType===1&&" "+stripAndCollapse(curValue)+" ";if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];if(cur.indexOf(" "+className+" ")<0)cur+=className+" ";}finalValue=stripAndCollapse(cur);if(curValue!==finalValue)this.setAttribute("class",finalValue);}}));return this;},removeClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value))return this.each((function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)));}));if(!arguments.length)return this.attr("class","");classNames=classesToArray(value);if(classNames.length)return this.each((function(){curValue=getClass(this);cur=this.nodeType===1&&" "+stripAndCollapse(curValue)+" ";if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];while(cur.indexOf(" "+className+" ")>-1)cur=cur.replace(" "+className+" "," ");}finalValue=stripAndCollapse(cur);if(curValue!==finalValue)this.setAttribute("class",finalValue);}}));return this;},toggleClass:function(value,stateVal){var classNames,className,i,self,type=typeof value,isValidValue=type==="string"||Array.isArray(value);if(isFunction(value))return this.each((function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal);}));if(typeof stateVal==="boolean"&&isValidValue)return stateVal?this.addClass(value):this.removeClass(value);classNames=classesToArray(value);return this.each((function(){if(isValidValue){self=jQuery(this);for(i=0;i<classNames.length;i++){className=classNames[i];if(self.hasClass(className))self.removeClass(className);else self.addClass(className);}}else{if(value===undefined||type==="boolean"){className=getClass(this);if(className)dataPriv.set(this,"__className__",className);if(this.setAttribute)this.setAttribute("class",className||value===false?"":dataPriv.get(this,"__className__")||"");}}}));},hasClass:function(selector){var className,elem,i=0;className=" "+selector+" ";while(elem=this[i++])if(elem.nodeType===1&&(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1)return true;return false;}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,valueIsFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get" in hooks&&(ret=hooks.get(elem,"value"))!==undefined)return ret;ret=elem.value;if(typeof ret==="string")return ret.replace(rreturn,"");return ret==null?"":ret;}return;}valueIsFunction=isFunction(value);return this.each((function(i){var val;if(this.nodeType!==1)return;if(valueIsFunction)val=value.call(this,i,jQuery(this).val());else val=value;if(val==null)val="";else if(typeof val==="number")val+="";else{if(Array.isArray(val))val=jQuery.map(val,(function(value){return value==null?"":value+"";}));}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set" in hooks)||hooks.set(this,val,"value")===undefined)this.value=val;}));}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:stripAndCollapse(jQuery.text(elem));}},select:{get:function(elem){var value,option,i,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one",values=one?null:[],max=one?index+1:options.length;if(index<0)i=max;else i=one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!node
118Name(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one)return value;values.push(value);}}return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1)optionSet=true;}if(!optionSet)elem.selectedIndex=-1;return values;}}}});jQuery.each(["radio","checkbox"],(function(){jQuery.valHooks[this]={set:function(elem,value){if(Array.isArray(value))return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1;}};if(!support.checkOn)jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}));var location=window.location;var nonce={guid:Date.now()};var rquery=/\?/;jQuery.parseXML=function(data){var xml,parserErrorElem;if(!data||typeof data!=="string")return null;try{xml=(new window.DOMParser()).parseFromString(data,"text/xml");}catch(e){}parserErrorElem=xml&&xml.getElementsByTagName("parsererror")[0];if(!xml||parserErrorElem)jQuery.error("Invalid XML: "+(parserErrorElem?jQuery.map(parserErrorElem.childNodes,(function(el){return el.textContent;})).join("\n"):data));return xml;};var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,stopPropagationCallback=function(e){e.stopPropagation();};jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=lastElement=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8)return;if(rfocusMorph.test(type+jQuery.event.triggered))return;if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target)event.target=elem;data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false)return;if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type))cur=cur.parentNode;for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}if(tmp===(elem.ownerDocument||document))eventPath.push(tmp.defaultView||tmp.parentWindow||window);}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){lastElement=cur;event.type=i>1?bubbleType:special.bindType||type;handle=(dataPriv.get(cur,"events")||Object.create(null))[event.type]&&dataPriv.get(cur,"handle");if(handle)handle.apply(cur,data);handle=ontype&&cur[ontype];if(handle&&handle.apply&&acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false)event.preventDefault();}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented())if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem))if(ontype&&isFunction(elem[type])&&!isWindow(elem)){tmp=elem[ontype];if(tmp)elem[ontype]=null;jQuery.event.triggered=type;if(event.isPropagationStopped())lastElement.addEventListener(type,stopPropagationCallback);elem[type]();if(event.isPropagationStopped())lastElement.removeEventListener(type,stopPropagationCallback);jQuery.event.triggered=undefined;if(tmp)elem[ontype]=tmp;}return event.result;},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event(),event,{type,isSimulated:true});jQuery.event.trigger(e,null,elem);}});jQuery.fn.extend({trigger:function(type,data){return this.each((function(){jQuery.event.trigger(type,data,this);}));},triggerHandler:function(type,data){var elem=this[0];if(elem)return jQuery.event.trigger(type,data,elem,true);}});var rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(Array.isArray(obj))jQuery.each(obj,(function(i,v){if(traditional||rbracket.test(prefix))add(prefix,v);else buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add);}));else if(!traditional&&toType(obj)==="object")for(name in obj)buildParams(prefix+"["+name+"]",obj[name],traditional,add);else add(prefix,obj);}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value==null?"":value);};if(a==null)return "";if(Array.isArray(a)||a.jquery&&!jQuery.isPlainObject(a))jQuery.each(a,(function(){add(this.name,this.value);}));else for(prefix in a)buildParams(prefix,a[prefix],traditional,add);return s.join("&");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map((function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}
118)).filter((function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));})).map((function(_i,elem){var val=jQuery(this).val();if(val==null)return null;if(Array.isArray(val))return jQuery.map(val,(function(val){return {name:elem.name,value:val.replace(rCRLF,"\r\n")};}));return {name:elem.name,value:val.replace(rCRLF,"\r\n")};})).get();}});var r20=/%20/g,rhash=/#.*$/,rantiCache=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href;function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func))while(dataType=dataTypes[i++])if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else (structure[dataType]=structure[dataType]||[]).push(func);};}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],(function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else{if(seekingTransport)return !(selected=dataTypeOrTransport);}}));return selected;}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src)if(src[key]!==undefined)(flatOptions[key]?target:deep||(deep={}))[key]=src[key];if(deep)jQuery.extend(true,target,deep);return target;}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined)ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");}if(ct)for(type in contents)if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}if(dataTypes[0] in responses)finalDataType=dataTypes[0];else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}if(!firstDataType)firstDataType=type;}finalDataType=finalDataType||firstDataType;}if(finalDataType){if(finalDataType!==dataTypes[0])dataTypes.unshift(finalDataType);return responses[finalDataType];}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1])for(conv in s.converters)converters[conv.toLowerCase()]=s.converters[conv];current=dataTypes.shift();while(current){if(s.responseFields[current])jqXHR[s.responseFields[current]]=response;if(!prev&&isSuccess&&s.dataFilter)response=s.dataFilter(response,s.dataType);prev=current;current=dataTypes.shift();if(current)if(current==="*")current=prev;else{if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv)for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true)conv=converters[conv2];else{if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}}break;}}}if(conv!==true)if(conv&&s.throws)response=conv(response);else try{response=conv(response);}catch(e){return {state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}return {state:"success",data:response};}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders){responseHeaders={};while(match=rheaders.exec(responseHeadersString))responseHeaders[match[1].toLowerCase()+" "]=(responseHeaders[match[1].toLowerCase()+" "]||[]).concat(match[2]);}match=responseHeaders[key.toLowerCase()+" "];}return match==null?null:match.join(", ");},getAllResponseHeaders:function(){return completed?responseHeadersString:null;},setRequestHeader:function(name,value){if(completed==null){name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name;requestHeaders[name]=value;}return this;},overrideMimeType:function(type){if(completed==null)s.mimeType=type;return this;},statusCode:function(map){var code;if(map)if(completed)jqXHR.always(map[jqXHR.status]);else for(code in map)statusCode[code]=[statusCode[code],map[code]];return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport)transport.abort(finalText);done(0,finalText);return this;}};deferred.promise(jqXHR);s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""];if(s.crossDomain==null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host;}catch(e){s.crossDomain=true;}}
118if(s.data&&s.processData&&typeof s.data!=="string")s.data=jQuery.param(s.data,s.traditional);inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(completed)return jqXHR;fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0)jQuery.event.trigger("ajaxStart");s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url.replace(rhash,"");if(!s.hasContent){uncached=s.url.slice(cacheURL.length);if(s.data&&(s.processData||typeof s.data==="string")){cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data;}if(s.cache===false){cacheURL=cacheURL.replace(rantiCache,"$1");uncached=(rquery.test(cacheURL)?"&":"?")+"_="+nonce.guid++ +uncached;}s.url=cacheURL+uncached;}else{if(s.data&&s.processData&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0)s.data=s.data.replace(r20,"+");}if(s.ifModified){if(jQuery.lastModified[cacheURL])jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);if(jQuery.etag[cacheURL])jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType)jqXHR.setRequestHeader("Content-Type",s.contentType);jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers)jqXHR.setRequestHeader(i,s.headers[i]);if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||completed))return jqXHR.abort();strAbort="abort";completeDeferred.add(s.complete);jqXHR.done(s.success);jqXHR.fail(s.error);transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport)done(-1,"No Transport");else{jqXHR.readyState=1;if(fireGlobals)globalEventContext.trigger("ajaxSend",[jqXHR,s]);if(completed)return jqXHR;if(s.async&&s.timeout>0)timeoutTimer=window.setTimeout((function(){jqXHR.abort("timeout");}),s.timeout);try{completed=false;transport.send(requestHeaders,done);}catch(e){if(completed)throw e;done(-1,e);}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(completed)return;completed=true;if(timeoutTimer)window.clearTimeout(timeoutTimer);transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses)response=ajaxHandleResponses(s,jqXHR,responses);if(!isSuccess&&jQuery.inArray("script",s.dataTypes)>-1&&jQuery.inArray("json",s.dataTypes)<0)s.converters["text script"]=function(){};response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified)jQuery.lastModified[cacheURL]=modified;modified=jqXHR.getResponseHeader("etag");if(modified)jQuery.etag[cacheURL]=modified;}if(status===204||s.type==="HEAD")statusText="nocontent";else if(status===304)statusText="notmodified";else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0)status=0;}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess)deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);else deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals)globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!--jQuery.active)jQuery.event.trigger("ajaxStop");}}return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],(function(_i,method){jQuery[method]=function(url,data,callback,type){if(isFunction(data)){type=type||callback;callback=data;data=undefined;}return jQuery.ajax(jQuery.extend({url,type:method,dataType:type,data,success:callback},jQuery.isPlainObject(url)&&url));};}));jQuery.ajaxPrefilter((function(s){var i;for(i in s.headers)if(i.toLowerCase()==="content-type")s.contentType=s.headers[i]||"";}));jQuery._evalUrl=function(url,options,doc){return jQuery.ajax({url,type:"GET",dataType:"script",cache:true,async:false,global:false,converters:{"text script":function(){}},dataFilter:function(response){jQuery.globalEval(response,options,doc);}});};jQuery.fn.extend({wrapAll:function(html){var wrap;if(this[0]){if(isFunction(html))html=html.call(this[0]);wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode)wrap.insertBefore(this[0]);wrap.map((function(){var elem=this;while(elem.firstElementChild)elem=elem.firstElementChild;return elem;})).append(this);}return this;},wrapInner:function(html){if(isFunction(html))return this.each((function(i){jQuery(this).wrapInner(html.call(this,i));}));return this.each((function(){var self=jQuery(this),contents=self.contents();if(contents.length)contents.wrapAll(html);else self.append(html);}));},wrap:function(html){var htmlIsFunction=isFunction(html);return this.each((function(i){jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html);}));},unwrap:function(selector){this.parent(selector).not("body").each((function(){jQuery(this).replaceWith(this.childNodes);}));return this;}});jQuery.expr.pseudos.hidden=function(elem){return !jQuery.expr.pseudos.visible(elem);};jQuery.expr.pseudos.visible=function(elem){return !!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest();}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&"withCredentials" in xhrSupported;support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport((function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain)return {send:function(headers,complete){var i,xhr=options.xhr();xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields)for(i in options.xhrFields)xhr[i]=options.xhrFields[i];if(options.mimeType&&xhr.overrideMimeType)xhr.overrideMimeType(options.mimeType);if(!options.crossDomain&&!headers["X-Requested-With"])headers["X-Requested-With"]="XMLHttpRequest";for(i in headers)xhr.setRequestHeader(i,headers[i]);callback=function(type){return function(){if(callback){callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null;if(type==="abort")xhr.abort();else if(type==="error")if(typeof xhr.status!=="number")complete(0,"error");else complete(xhr.status,xhr.statusText);else complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders());}};};xhr.onload=callback();errorCallback=xhr.onerror=xhr.ontimeout=callback("error");
118if(xhr.onabort!==undefined)xhr.onabort=errorCallback;else xhr.onreadystatechange=function(){if(xhr.readyState===4)window.setTimeout((function(){if(callback)errorCallback();}));};callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback)throw e;}},abort:function(){if(callback)callback();}};}));jQuery.ajaxPrefilter((function(s){if(s.crossDomain)s.contents.script=false;}));jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",(function(s){if(s.cache===undefined)s.cache=false;if(s.crossDomain)s.type="GET";}));jQuery.ajaxTransport("script",(function(s){if(s.crossDomain||s.scriptAttrs){var script,callback;return {send:function(_,complete){script=jQuery("<script>").attr(s.scriptAttrs||{}).prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt)complete(evt.type==="error"?404:200,evt.type);});document.head.appendChild(script[0]);},abort:function(){if(callback)callback();}};}}));var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce.guid++;this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",(function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp)s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);else{if(s.jsonp!==false)s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}s.converters["script json"]=function(){if(!responseContainer)jQuery.error(callbackName+" was not called");return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always((function(){if(overwritten===undefined)jQuery(window).removeProp(callbackName);else window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}if(responseContainer&&isFunction(overwritten))overwritten(responseContainer[0]);responseContainer=overwritten=undefined;}));return "script";}}));support.createHTMLDocument=function(){var body=document.implementation.createHTMLDocument("").body;body.innerHTML="<form></form><form></form>";return body.childNodes.length===2;}();jQuery.parseHTML=function(data,context,keepScripts){if(typeof data!=="string")return [];if(typeof context==="boolean"){keepScripts=context;context=false;}var base,parsed,scripts;if(!context)if(support.createHTMLDocument){context=document.implementation.createHTMLDocument("");base=context.createElement("base");base.href=document.location.href;context.head.appendChild(base);}else context=document;parsed=rsingleTag.exec(data);scripts=!keepScripts&&[];if(parsed)return [context.createElement(parsed[1])];parsed=buildFragment([data],context,scripts);if(scripts&&scripts.length)jQuery(scripts).remove();return jQuery.merge([],parsed.childNodes);};jQuery.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=stripAndCollapse(url.slice(off));url=url.slice(0,off);}if(isFunction(params)){callback=params;params=undefined;}else{if(params&&typeof params==="object")type="POST";}if(self.length>0)jQuery.ajax({url,type:type||"GET",dataType:"html",data:params}).done((function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);})).always(callback&&function(jqXHR,status){self.each((function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR]);}));});return this;};jQuery.expr.pseudos.animated=function(elem){return jQuery.grep(jQuery.timers,(function(fn){return elem===fn.elem;})).length;};jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static")elem.style.position="relative";curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}if(isFunction(options))options=options.call(elem,i,jQuery.extend({},curOffset));if(options.top!=null)props.top=options.top-curOffset.top+curTop;
118if(options.left!=null)props.left=options.left-curOffset.left+curLeft;if("using" in options)options.using.call(elem,props);else curElem.css(props);}};jQuery.fn.extend({offset:function(options){if(arguments.length)return options===undefined?this:this.each((function(i){jQuery.offset.setOffset(this,options,i);}));var rect,win,elem=this[0];if(!elem)return;if(!elem.getClientRects().length)return {top:0,left:0};rect=elem.getBoundingClientRect();win=elem.ownerDocument.defaultView;return {top:rect.top+win.pageYOffset,left:rect.left+win.pageXOffset};},position:function(){if(!this[0])return;var offsetParent,offset,doc,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed")offset=elem.getBoundingClientRect();else{offset=this.offset();doc=elem.ownerDocument;offsetParent=elem.offsetParent||doc.documentElement;while(offsetParent&&(offsetParent===doc.body||offsetParent===doc.documentElement)&&jQuery.css(offsetParent,"position")==="static")offsetParent=offsetParent.parentNode;if(offsetParent&&offsetParent!==elem&&offsetParent.nodeType===1){parentOffset=jQuery(offsetParent).offset();parentOffset.top+=jQuery.css(offsetParent,"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",true);}}return {top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)};},offsetParent:function(){return this.map((function(){var offsetParent=this.offsetParent;while(offsetParent&&jQuery.css(offsetParent,"position")==="static")offsetParent=offsetParent.offsetParent;return offsetParent||documentElement;}));}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,(function(elem,method,val){var win;if(isWindow(elem))win=elem;else{if(elem.nodeType===9)win=elem.defaultView;}if(val===undefined)return win?win[prop]:elem[method];if(win)win.scrollTo(!top?val:win.pageXOffset,top?val:win.pageYOffset);else elem[method]=val;}),method,val,arguments.length);};}));jQuery.each(["top","left"],(function(_i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,(function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}}));}));jQuery.each({Height:"height",Width:"width"},(function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},(function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,(function(elem,type,value){var doc;if(isWindow(elem))return funcName.indexOf("outer")===0?elem["inner"+name]:elem.document.documentElement["client"+name];if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);}),type,chainable?margin:undefined,chainable);};}));}));jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],(function(_i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};}));jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);},hover:function(fnOver,fnOut){return this.on("mouseenter",fnOver).on("mouseleave",fnOut||fnOver);}});jQuery.each(("blur focus focusin focusout resize scroll click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup contextmenu").split(" "),(function(_i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};}));var rtrim=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;jQuery.proxy=function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}if(!isFunction(fn))return undefined;args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;};jQuery.holdReady=function(hold){if(hold)jQuery.readyWait++;else jQuery.ready(true);};jQuery.isArray=Array.isArray;jQuery.parseJSON=JSON.parse;jQuery.nodeName=nodeName;jQuery.isFunction=isFunction;jQuery.isWindow=isWindow;jQuery.camelCase=camelCase;jQuery.type=toType;jQuery.now=Date.now;jQuery.isNumeric=function(obj){var type=jQuery.type(obj);return (type==="number"||type==="string")&&!isNaN(obj-parseFloat(obj));};jQuery.trim=function(text){return text==null?"":(text+"").replace(rtrim,"$1");};if(typeof define==="function"&&define.amd)define("jquery",[],(function(){return jQuery;}));var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery)window.$=_$;if(deep&&window.jQuery===jQuery)window.jQuery=_jQuery;return jQuery;};if(typeof noGlobal==="undefined")window.jQuery=window.$=jQuery;return jQuery;}));(function(){var module={exports:null};function Hypher(language){var exceptions=[],i=0;this.trie=this.createTrie(language["patterns"]);this.leftMin=language["leftmin"];this.rightMin=language["rightmin"];this.exceptions={};if(language["exceptions"]){exceptions=language["exceptions"].split(/,\s?/g);for(;i<exceptions.length;i+=1)this.exceptions[exceptions[i].replace(/\u2027/g,"").toLowerCase()]=new RegExp("("+exceptions[i].split("‧").join(")(")+")","i");}}Hypher.TrieNode;Hypher.prototype.createTrie=function(patternObject){var size=0,i=0,c=0,p=0,chars=null,points=null,codePoint=null,t=null,tree={_points:[]},patterns;for(size in patternObject)if(patternObject.hasOwnProperty(size)){patterns=patternObject[size].match(new RegExp(".{1,"+ +size
118+"}","g"));for(i=0;i<patterns.length;i+=1){chars=patterns[i].replace(/[0-9]/g,"").split("");points=patterns[i].split(/\D/);t=tree;for(c=0;c<chars.length;c+=1){codePoint=chars[c].charCodeAt(0);if(!t[codePoint])t[codePoint]={};t=t[codePoint];}t._points=[];for(p=0;p<points.length;p+=1)t._points[p]=points[p]||0;}}return tree;};Hypher.prototype.hyphenateText=function(str,minLength){minLength=minLength||4;var words=str.split(/([a-zA-Z0-9_\u0027\u00DF-\u00EA\u00EC-\u00EF\u00F1-\u00F6\u00F8-\u00FD\u0101\u0103\u0105\u0107\u0109\u010D\u010F\u0111\u0113\u0117\u0119\u011B\u011D\u011F\u0123\u0125\u012B\u012F\u0131\u0135\u0137\u013C\u013E\u0142\u0144\u0146\u0148\u0151\u0153\u0155\u0159\u015B\u015D\u015F\u0161\u0165\u016B\u016D\u016F\u0171\u0173\u017A\u017C\u017E\u017F\u0219\u021B\u02BC\u0390\u03AC-\u03CE\u03F2\u0401\u0410-\u044F\u0451\u0454\u0456\u0457\u045E\u0491\u0531-\u0556\u0561-\u0587\u0902\u0903\u0905-\u090B\u090E-\u0910\u0912\u0914-\u0928\u092A-\u0939\u093E-\u0943\u0946-\u0948\u094A-\u094D\u0982\u0983\u0985-\u098B\u098F\u0990\u0994-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BE-\u09C3\u09C7\u09C8\u09CB-\u09CD\u09D7\u0A02\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A14-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A82\u0A83\u0A85-\u0A8B\u0A8F\u0A90\u0A94-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABE-\u0AC3\u0AC7\u0AC8\u0ACB-\u0ACD\u0B02\u0B03\u0B05-\u0B0B\u0B0F\u0B10\u0B14-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3E-\u0B43\u0B47\u0B48\u0B4B-\u0B4D\u0B57\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C02\u0C03\u0C05-\u0C0B\u0C0E-\u0C10\u0C12\u0C14-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C43\u0C46-\u0C48\u0C4A-\u0C4D\u0C82\u0C83\u0C85-\u0C8B\u0C8E-\u0C90\u0C92\u0C94-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBE-\u0CC3\u0CC6-\u0CC8\u0CCA-\u0CCD\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60\u0D61\u0D7A-\u0D7F\u1F00-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB2-\u1FB4\u1FB6\u1FB7\u1FBD\u1FBF\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD2\u1FD3\u1FD6\u1FD7\u1FE2-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u200D\u2019]+)/g);for(var i=0;i<words.length;i+=1)if(words[i].indexOf("/")!==-1){if(i!==0&&i!==words.length-1&&!/\s+\/|\/\s+/.test(words[i]))words[i]+="​";}else{if(words[i].length>minLength)words[i]=this.hyphenate(words[i]).join("ÂÂ");}return words.join("");};Hypher.prototype.hyphenate=function(word){var characters,characterPoints=[],originalCharacters,i,j,k,node,points=[],wordLength,lowerCaseWord=word.toLowerCase(),nodePoints,nodePointsLength,m=Math.max,trie=this.trie,result=[""];if(this.exceptions.hasOwnProperty(lowerCaseWord))return word.match(this.exceptions[lowerCaseWord]).slice(1);if(word.indexOf("ÂÂ")!==-1)return [word];word="_"+word+"_";characters=word.toLowerCase().split("");originalCharacters=word.split("");wordLength=characters.length;for(i=0;i<wordLength;i+=1){points[i]=0;characterPoints[i]=characters[i].charCodeAt(0);}for(i=0;i<wordLength;i+=1){node=trie;for(j=i;j<wordLength;j+=1){node=node[characterPoints[j]];if(node){nodePoints=node._points;if(nodePoints)for(k=0,nodePointsLength=nodePoints.length;k<nodePointsLength;k+=1)points[i+k]=m(points[i+k],nodePoints[k]);}else break;}}for(i=1;i<wordLength-1;i+=1)if(i>this.leftMin&&i<wordLength-this.rightMin&&points[i]%2)result.push(originalCharacters[i]);else result[result.length-1]+=originalCharacters[i];return result;};module.exports=Hypher;window["Hypher"]=module.exports;window["Hypher"]["languages"]={};})();(function($){$.fn.hyphenate=function(language){if(window["Hypher"]["languages"][language])return this.each((function(){var i=0,len=this.childNodes.length;for(;i<len;i+=1)if(this.childNodes[i].nodeType===3)this.childNodes[i].nodeValue=window["Hypher"]["languages"][language].hyphenateText(this.childNodes[i].nodeValue);}));};})(jQuery);(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery"],factory);else if(typeof module!=="undefined"&&module.exports)module.exports=factory(require("jquery"));else factory(jQuery);})((function($){"use strict";var $scrollTo=$.scrollTo=function(target,duration,settings){return $(window).scrollTo(target,duration,settings);};$scrollTo.defaults={axis:"xy",duration:0,limit:true};function isWin(elem){return !elem.nodeName||$.inArray(elem.nodeName.toLowerCase(),["iframe","#document","html","body"])!==-1;}function isFunction(obj){return typeof obj==="function";}$.fn.scrollTo=function(target,duration,settings){if(typeof duration==="object"){settings=duration;duration=0;}if(typeof settings==="function")settings={onAfter:settings};if(target==="max")target=9e9;settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.duration;var queue=settings.queue&&settings.axis.length>1;if(queue)duration/=2;settings.offset=both(settings.offset);settings.over=both(settings.over);return this.each((function(){if(target===null)return;var win=isWin(this),elem=win?this.contentWindow||window:this,$elem=$(elem),targ=target,attr={},toff;switch(typeof targ){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break;}targ=win?$(targ):$(targ,elem);case "object":if(targ.length===0)return;if(targ.is||targ.style)toff=(targ=$(targ)).offset();}var offset=isFunction(settings.offset)&&settings.offset(elem,targ)||settings.offset;$.each(settings.axis.split(""),(function(i,axis){var Pos=axis==="x"?"Left":"Top",pos=Pos.toLowerCase(),key="scroll"+Pos,prev=$elem[key](),max=$scrollTo.max(elem,axis);if(toff){attr[key]=toff[pos]+(win?0:prev-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(targ.css("margin"+Pos),10)||0;attr[key]-=parseInt(targ.css("border"+Pos+"Width"),10)||0;}attr[key]+=offset[pos]||0;if(settings.over[pos])attr[key]+=targ[axis==="x"?"width":"height"]()*settings.over[pos];}else{var val=targ[pos];attr[key]=val.slice&&val.slice(-1)==="%"?parseFloat(val)/100*max:val;}
118if(settings.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&settings.axis.length>1)if(prev===attr[key])attr={};else{if(queue){animate(settings.onAfterFirst);attr={};}}}));animate(settings.onAfter);function animate(callback){var opts=$.extend({},settings,{queue:true,duration,complete:callback&&function(){callback.call(elem,targ,settings);}});$elem.animate(attr,opts);}}));};$scrollTo.max=function(elem,axis){var Dim=axis==="x"?"Width":"Height",scroll="scroll"+Dim;if(!isWin(elem))return elem[scroll]-$(elem)[Dim.toLowerCase()]();var size="client"+Dim,doc=elem.ownerDocument||elem.document,html=doc.documentElement,body=doc.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size]);};function both(val){return isFunction(val)||$.isPlainObject(val)?val:{top:val,left:val};}$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(t){return $(t.elem)[t.prop]();},set:function(t){var curr=this.get(t);if(t.options.interrupt&&t._last&&t._last!==curr)return $(t.elem).stop();var next=Math.round(t.now);if(curr!==next){$(t.elem)[t.prop](next);t._last=this.get(t);}}};return $scrollTo;}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery"],factory);else factory(jQuery);})((function($){"use strict";$.ui=$.ui||{};return $.ui.version="1.14.1";}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";var widgetUuid=0;var widgetHasOwnProperty=Array.prototype.hasOwnProperty;var widgetSlice=Array.prototype.slice;$.cleanData=function(orig){return function(elems){var events,elem,i;for(i=0;(elem=elems[i])!=null;i++){events=$._data(elem,"events");if(events&&events.remove)$(elem).triggerHandler("remove");}orig(elems);};}($.cleanData);$.widget=function(name,base,prototype){var existingConstructor,constructor,basePrototype;var proxiedPrototype={};var namespace=name.split(".")[0];name=name.split(".")[1];if(name==="__proto__"||name==="constructor")return $.error("Invalid widget name: "+name);var fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget;}if(Array.isArray(prototype))prototype=$.extend.apply(null,[{}].concat(prototype));$.expr.pseudos[fullName.toLowerCase()]=function(elem){return !!$.data(elem,fullName);};$[namespace]=$[namespace]||{};existingConstructor=$[namespace][name];constructor=$[namespace][name]=function(options,element){if(!this||!this._createWidget)return new constructor(options,element);if(arguments.length)this._createWidget(options,element);};$.extend(constructor,existingConstructor,{version:prototype.version,_proto:$.extend({},prototype),_childConstructors:[]});basePrototype=new base();basePrototype.options=$.widget.extend({},basePrototype.options);$.each(prototype,(function(prop,value){if(typeof value!=="function"){proxiedPrototype[prop]=value;return;}proxiedPrototype[prop]=function(){function _super(){return base.prototype[prop].apply(this,arguments);}function _superApply(args){return base.prototype[prop].apply(this,args);}return function(){var __super=this._super;var __superApply=this._superApply;var 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,{widgetEventPrefix:existingConstructor?basePrototype.widgetEventPrefix||name:name},proxiedPrototype,{constructor,namespace,widgetName:name,widgetFullName:fullName});if(existingConstructor){$.each(existingConstructor._childConstructors,(function(i,child){var childPrototype=child.prototype;$.widget(childPrototype.namespace+"."+childPrototype.widgetName,constructor,child._proto);}));delete existingConstructor._childConstructors;}else base._childConstructors.push(constructor);$.widget.bridge(name,constructor);return constructor;};$.widget.extend=function(target){var input=widgetSlice.call(arguments,1);var inputIndex=0;var inputLength=input.length;var key;var value;for(;inputIndex<inputLength;inputIndex++)for(key in input[inputIndex]){value=input[inputIndex][key];if(widgetHasOwnProperty.call(input[inputIndex],key)&&value!==undefined)if($.isPlainObject(value))target[key]=$.isPlainObject(target[key])?$.widget.extend({},target[key],value):$.widget.extend({},value);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";
118var args=widgetSlice.call(arguments,1);var returnValue=this;if(isMethodCall)if(!this.length&&options==="instance")returnValue=undefined;else this.each((function(){var methodValue;var instance=$.data(this,fullName);if(options==="instance"){returnValue=instance;return false;}if(!instance)return $.error("cannot call methods on "+name+" prior to initialization; "+"attempted to call method '"+options+"'");if(typeof instance[options]!=="function"||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{if(args.length)options=$.widget.extend.apply(null,[options].concat(args));this.each((function(){var instance=$.data(this,fullName);if(instance){instance.option(options||{});if(instance._init)instance._init();}else $.data(this,fullName,new object(options,this));}));}return returnValue;};};$.Widget=function(){};$.Widget._childConstructors=[];$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:false,create:null},_createWidget:function(options,element){element=$(element||this.defaultElement||this)[0];this.element=$(element);this.uuid=widgetUuid++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=$();this.hoverable=$();this.focusable=$();this.classesElementLookup={};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.ownerDocument:element.document||element);this.window=$(this.document[0].defaultView||this.document[0].parentWindow);}this.options=$.widget.extend({},this.options,this._getCreateOptions(),options);this._create();if(this.options.disabled)this._setOptionDisabled(this.options.disabled);this._trigger("create",null,this._getCreateEventData());this._init();},_getCreateOptions:function(){return {};},_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function(){var that=this;this._destroy();$.each(this.classesElementLookup,(function(key,value){that._removeClass(value,key);}));this.element.off(this.eventNamespace).removeData(this.widgetFullName);this.widget().off(this.eventNamespace).removeAttr("aria-disabled");this.bindings.off(this.eventNamespace);},_destroy:$.noop,widget:function(){return this.element;},option:function(key,value){var options=key;var parts;var curOption;var i;if(arguments.length===0)return $.widget.extend({},this.options);if(typeof key==="string"){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(arguments.length===1)return curOption[key]===undefined?null:curOption[key];curOption[key]=value;}else{if(arguments.length===1)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){if(key==="classes")this._setOptionClasses(value);this.options[key]=value;if(key==="disabled")this._setOptionDisabled(value);return this;},_setOptionClasses:function(value){var classKey,elements,currentElements;for(classKey in value){currentElements=this.classesElementLookup[classKey];if(value[classKey]===this.options.classes[classKey]||!currentElements||!currentElements.length)continue;elements=$(currentElements.get());this._removeClass(currentElements,classKey);elements.addClass(this._classes({element:elements,keys:classKey,classes:value,add:true}));}},_setOptionDisabled:function(value){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!value);if(value){this._removeClass(this.hoverable,null,"ui-state-hover");this._removeClass(this.focusable,null,"ui-state-focus");}},enable:function(){return this._setOptions({disabled:false});},disable:function(){return this._setOptions({disabled:true});},_classes:function(options){var full=[];var that=this;options=$.extend({element:this.element,classes:this.options.classes||{}},options);function bindRemoveEvent(){var nodesToBind=[];options.element.each((function(_,element){var isTracked=$.map(that.classesElementLookup,(function(elements){return elements;})).some((function(elements){return elements.is(element);}));if(!isTracked)nodesToBind.push(element);}));that._on($(nodesToBind),{remove:"_untrackClassesElement"});}function processClassString(classes,checkOption){var current,i;for(i=0;i<classes.length;i++){current=that.classesElementLookup[classes[i]]||$();if(options.add){bindRemoveEvent();current=$($.uniqueSort(current.get().concat(options.element.get())));}else current=$(current.not(options.element).get());that.classesElementLookup[classes[i]]=current;full.push(classes[i]);if(checkOption&&options.classes[classes[i]])full.push(options.classes[classes[i]]);}}if(options.keys)processClassString(options.keys.match(/\S+/g)||[],true);if(options.extra)processClassString(options.extra.match(/\S+/g)||[]);return full.join(" ");},_untrackClassesElement:function(event){var that=this;$.each(that.classesElementLookup,(function(key,value){if($.inArray(event.target,value)!==-1)that.classesElementLookup[key]=$(value.not(event.target).get());}));this._off($(event.target));},_removeClass:function(element,keys,extra){return this._toggleClass(element,keys,extra,false);},_addClass:function(element,keys,extra){return this._toggleClass(element,keys,extra,true);},_toggleClass:function(element,keys,extra,add){add=typeof add==="boolean"?add:extra;var shift=typeof element==="string"||element===null,options={extra:shift?keys:extra,keys:shift?element:keys,element:shift?this.element:element,add};options.element.toggleClass(this._classes(options),add);return this;},_on:function(suppressDisabledCheck,element,handlers){var delegateElement;var instance=this;if(typeof suppressDisabledCheck!=="boolean"){handlers=element;element=suppressDisabledCheck;suppressDisabledCheck=false;}if(!handlers){handlers=element;element=this.element;delegateElement=this.widget();}else{element=delegateElement=$(element);this.bindings=this.bindings.add(element);}$.each(handlers,(function(event,handler){function handlerProxy(){if(!suppressDisabledCheck&&(instance.options.disabled===true||$(this).hasClass("ui-state-disabled")))return;return (typeof handler==="string"?instance[handler]:handler).apply(instance,arguments);}if(typeof handler!=="string")handlerProxy.guid=handler.guid=handler.guid||handlerProxy.guid||$.guid++;var match=event.match(/^([\w:-]*)\s*(.*)$/);var eventName=match[1]+instance.eventNamespace;var selector=match[2];
118if(selector)delegateElement.on(eventName,selector,handlerProxy);else element.on(eventName,handlerProxy);}));},_off:function(element,eventName){eventName=(eventName||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace;element.off(eventName);this.bindings=$(this.bindings.not(element).get());this.focusable=$(this.focusable.not(element).get());this.hoverable=$(this.hoverable.not(element).get());},_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){this._addClass($(event.currentTarget),null,"ui-state-hover");},mouseleave:function(event){this._removeClass($(event.currentTarget),null,"ui-state-hover");}});},_focusable:function(element){this.focusable=this.focusable.add(element);this._on(element,{focusin:function(event){this._addClass($(event.currentTarget),null,"ui-state-focus");},focusout:function(event){this._removeClass($(event.currentTarget),null,"ui-state-focus");}});},_trigger:function(type,event,data){var prop,orig;var callback=this.options[type];data=data||{};event=$.Event(event);event.type=(type===this.widgetEventPrefix?type:this.widgetEventPrefix+type).toLowerCase();event.target=this.element[0];orig=event.originalEvent;if(orig)for(prop in orig)if(!(prop in event))event[prop]=orig[prop];this.element.trigger(event,data);return !(typeof callback==="function"&&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;var effectName=!options?method:options===true||typeof options==="number"?defaultEffect:options.effect||defaultEffect;options=options||{};if(typeof options==="number")options={duration:options};else{if(options===true)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();}));};}));return $.widget;}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";return $.ui.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,allowDisconnected){var i,set=instance.plugins[name];if(!set)return;if(!allowDisconnected&&(!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);}};}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";return $.fn.scrollParent=function(includeHidden){var position=this.css("position"),excludeStaticParent=position==="absolute",overflowRegex=includeHidden?/(auto|scroll|hidden)/:/(auto|scroll)/,scrollParent=this.parents().filter((function(){var parent=$(this);if(excludeStaticParent&&parent.css("position")==="static")return false;return overflowRegex.test(parent.css("overflow")+parent.css("overflow-y")+parent.css("overflow-x"));})).eq(0);return position==="fixed"||!scrollParent.length?$(this[0].ownerDocument||document):scrollParent;};}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";(function(){var cachedScrollbarWidth,max=Math.max,abs=Math.abs,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+(\.[\d]+)?%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;function getOffsets(offsets,width,height){return [parseFloat(offsets[0])*(rpercent.test(offsets[0])?width/100:1),parseFloat(offsets[1])*(rpercent.test(offsets[1])?height/100:1)];}function parseCss(element,property){return parseInt($.css(element,property),10)||0;}function isWindow(obj){return obj!=null&&obj===obj.window;}function getDimensions(elem){var raw=elem[0];if(raw.nodeType===9)return {width:elem.width(),height:elem.height(),offset:{top:0,left:0}};if(isWindow(raw))return {width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}};if(raw.preventDefault)return {width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}};return {width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()};}$.position={scrollbarWidth:function(){if(cachedScrollbarWidth!==undefined)return cachedScrollbarWidth;
118var w1,w2,div=$("<div style="+"'display:block;position:absolute;width:200px;height:200px;overflow:hidden;'>"+"<div style='height:300px;width:auto;'></div></div>"),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2)w2=div[0].clientWidth;div.remove();return cachedScrollbarWidth=w1-w2;},getScrollInfo:function(within){var overflowX=within.isWindow||within.isDocument?"":within.element.css("overflow-x"),overflowY=within.isWindow||within.isDocument?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||overflowX==="auto"&&within.width<within.element[0].scrollWidth,hasOverflowY=overflowY==="scroll"||overflowY==="auto"&&within.height<within.element[0].scrollHeight;return {width:hasOverflowY?$.position.scrollbarWidth():0,height:hasOverflowX?$.position.scrollbarWidth():0};},getWithinInfo:function(element){var withinElement=$(element||window),isElemWindow=isWindow(withinElement[0]),isDocument=!!withinElement[0]&&withinElement[0].nodeType===9,hasOffset=!isElemWindow&&!isDocument;return {element:withinElement,isWindow:isElemWindow,isDocument,offset:hasOffset?$(element).offset():{left:0,top:0},scrollLeft:withinElement.scrollLeft(),scrollTop:withinElement.scrollTop(),width:withinElement.outerWidth(),height:withinElement.outerHeight()};}};$.fn.position=function(options){if(!options||!options.of)return _position.apply(this,arguments);options=$.extend({},options);var atOffset,targetWidth,targetHeight,targetOffset,basePosition,dimensions,target=typeof options.of==="string"?$(document).find(options.of):$(options.of),within=$.position.getWithinInfo(options.within),scrollInfo=$.position.getScrollInfo(within),collision=(options.collision||"flip").split(" "),offsets={};dimensions=getDimensions(target);if(target[0].preventDefault)options.at="left top";targetWidth=dimensions.width;targetHeight=dimensions.height;targetOffset=dimensions.offset;basePosition=$.extend({},targetOffset);$.each(["my","at"],(function(){var pos=(options[this]||"").split(" "),horizontalOffset,verticalOffset;if(pos.length===1)pos=rhorizontal.test(pos[0])?pos.concat(["center"]):rvertical.test(pos[0])?["center"].concat(pos):["center","center"];pos[0]=rhorizontal.test(pos[0])?pos[0]:"center";pos[1]=rvertical.test(pos[1])?pos[1]:"center";horizontalOffset=roffset.exec(pos[0]);verticalOffset=roffset.exec(pos[1]);offsets[this]=[horizontalOffset?horizontalOffset[0]:0,verticalOffset?verticalOffset[0]:0];options[this]=[rposition.exec(pos[0])[0],rposition.exec(pos[1])[0]];}));if(collision.length===1)collision[1]=collision[0];if(options.at[0]==="right")basePosition.left+=targetWidth;else{if(options.at[0]==="center")basePosition.left+=targetWidth/2;}if(options.at[1]==="bottom")basePosition.top+=targetHeight;else{if(options.at[1]==="center")basePosition.top+=targetHeight/2;}atOffset=getOffsets(offsets.at,targetWidth,targetHeight);basePosition.left+=atOffset[0];basePosition.top+=atOffset[1];return this.each((function(){var collisionPosition,using,elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseCss(this,"marginLeft"),marginTop=parseCss(this,"marginTop"),collisionWidth=elemWidth+marginLeft+parseCss(this,"marginRight")+scrollInfo.width,collisionHeight=elemHeight+marginTop+parseCss(this,"marginBottom")+scrollInfo.height,position=$.extend({},basePosition),myOffset=getOffsets(offsets.my,elem.outerWidth(),elem.outerHeight());if(options.my[0]==="right")position.left-=elemWidth;else{if(options.my[0]==="center")position.left-=elemWidth/2;}if(options.my[1]==="bottom")position.top-=elemHeight;else{if(options.my[1]==="center")position.top-=elemHeight/2;}position.left+=myOffset[0];position.top+=myOffset[1];collisionPosition={marginLeft,marginTop};$.each(["left","top"],(function(i,dir){if($.ui.position[collision[i]])$.ui.position[collision[i]][dir](position,{targetWidth,targetHeight,elemWidth,elemHeight,collisionPosition,collisionWidth,collisionHeight,offset:[atOffset[0]+myOffset[0],atOffset[1]+myOffset[1]],my:options.my,at:options.at,within,elem});}));if(options.using)using=function(props){var left=targetOffset.left-position.left,right=left+targetWidth-elemWidth,top=targetOffset.top-position.top,bottom=top+targetHeight-elemHeight,feedback={target:{element:target,left:targetOffset.left,top:targetOffset.top,width:targetWidth,height:targetHeight},element:{element:elem,left:position.left,top:position.top,width:elemWidth,height:elemHeight},horizontal:right<0?"left":left>0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidth<elemWidth&&abs(left+right)<targetWidth)feedback.horizontal="center";if(targetHeight<elemHeight&&abs(top+bottom)<targetHeight)feedback.vertical="middle";if(max(abs(left),abs(right))>max(abs(top),abs(bottom)))feedback.important="horizontal";else feedback.important="vertical";options.using.call(this,props,feedback);};elem.offset($.extend(position,{using}));}));};$.ui.position={fit:{left:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;if(data.collisionWidth>outerWidth)if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-withinOffset;position.left+=overLeft-newOverRight;}else if(overRight>
1180&&overLeft<=0)position.left=withinOffset;else if(overLeft>overRight)position.left=withinOffset+outerWidth-data.collisionWidth;else position.left=withinOffset;else if(overLeft>0)position.left+=overLeft;else if(overRight>0)position.left-=overRight;else position.left=max(position.left-collisionPosLeft,position.left);},top:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;if(data.collisionHeight>outerHeight)if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-withinOffset;position.top+=overTop-newOverBottom;}else if(overBottom>0&&overTop<=0)position.top=withinOffset;else if(overTop>overBottom)position.top=withinOffset+outerHeight-data.collisionHeight;else position.top=withinOffset;else if(overTop>0)position.top+=overTop;else if(overBottom>0)position.top-=overBottom;else position.top=max(position.top-collisionPosTop,position.top);}},flip:{left:function(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-outerWidth-withinOffset;if(newOverRight<0||newOverRight<abs(overLeft))position.left+=myOffset+atOffset+offset;}else{if(overRight>0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)<overRight)position.left+=myOffset+atOffset+offset;}}},top:function(position,data){var within=data.within,withinOffset=within.offset.top+within.scrollTop,outerHeight=within.height,offsetTop=within.isWindow?within.scrollTop:within.offset.top,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=collisionPosTop-offsetTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-offsetTop,top=data.my[1]==="top",myOffset=top?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:data.at[1]==="bottom"?-data.targetHeight:0,offset=-2*data.offset[1],newOverTop,newOverBottom;if(overTop<0){newOverBottom=position.top+myOffset+atOffset+offset+data.collisionHeight-outerHeight-withinOffset;if(newOverBottom<0||newOverBottom<abs(overTop))position.top+=myOffset+atOffset+offset;}else{if(overBottom>0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+offset-offsetTop;if(newOverTop>0||abs(newOverTop)<overBottom)position.top+=myOffset+atOffset+offset;}}}},flipfit:{left:function(){$.ui.position.flip.left.apply(this,arguments);$.ui.position.fit.left.apply(this,arguments);},top:function(){$.ui.position.flip.top.apply(this,arguments);$.ui.position.fit.top.apply(this,arguments);}}};})();return $.ui.position;}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";return $.extend($.expr.pseudos,{data:$.expr.createPseudo((function(dataName){return function(elem){return !!$.data(elem,dataName);};}))});}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";return $.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38};}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./version"],factory);else factory(jQuery);})((function($){"use strict";return $.fn.extend({uniqueId:function(){var uuid=0;return function(){return this.each((function(){if(!this.id)this.id="ui-id-"+ ++uuid;}));};}(),removeUniqueId:function(){return this.each((function(){if(/^ui-id-\d+$/.test(this.id
118))$(this).removeAttr("id");}));}});}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","../version","../widget"],factory);else factory(jQuery);})((function($){"use strict";var mouseHandled=false;$(document).on("mouseup",(function(){mouseHandled=false;}));return $.widget("ui.mouse",{version:"1.14.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var that=this;this.element.on("mousedown."+this.widgetName,(function(event){return that._mouseDown(event);})).on("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;},_mouseDestroy:function(){this.element.off("."+this.widgetName);if(this._mouseMoveDelegate)this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate);},_mouseDown:function(event){if(mouseHandled)return;this._mouseMoved=false;if(this._mouseStarted)this._mouseUp(event);this._mouseDownEvent=event;var that=this,btnIsLeft=event.which===1,elIsCancel=typeof this.options.cancel==="string"?$(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;}}if(true===$.data(event.target,this.widgetName+".preventClickEvent"))$.removeData(event.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(event){return that._mouseMove(event);};this._mouseUpDelegate=function(event){return that._mouseUp(event);};this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate);event.preventDefault();mouseHandled=true;return true;},_mouseMove:function(event){if(this._mouseMoved&&!event.which)if(event.originalEvent.altKey||event.originalEvent.ctrlKey||event.originalEvent.metaKey||event.originalEvent.shiftKey)this.ignoreMissingWhich=true;else{if(!this.ignoreMissingWhich)return this._mouseUp(event);}if(event.which||event.button)this._mouseMoved=true;if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault();}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=this._mouseStart(this._mouseDownEvent,event)!==false;if(this._mouseStarted)this._mouseDrag(event);else this._mouseUp(event);}return !this._mouseStarted;},_mouseUp:function(event){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("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);}if(this._mouseDelayTimer){clearTimeout(this._mouseDelayTimer);delete this._mouseDelayTimer;}this.ignoreMissingWhich=false;mouseHandled=false;event.preventDefault();},_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(){return this.mouseDelayMet;},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true;}});}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","./mouse","../data","../plugin","../scroll-parent","../version","../widget"],factory);else factory(jQuery);})((function($){"use strict";$.widget("ui.draggable",$.ui.mouse,{version:"1.14.1",widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false,drag:null,start:null,stop:null},_create:function(){if(this.options.helper==="original")this._setPositionRelative();if(this.options.addClasses)this._addClass("ui-draggable");this._setHandleClassName();this._mouseInit();},_setOption:function(key,value){this._super(key,value);if(key==="handle"){this._removeHandleClassName();this._setHandleClassName();}},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=true;return;}this._removeHandleClassName();this._mouseDestroy();},_mouseCapture:function(event){var o=this.options;if(this.helper||o.disabled||$(event.target).closest(".ui-resizable-handle").length>0)return false;this.handle=this._getHandle(event);if(!this.handle)return false;this._blurActiveElement(event);this._blockFrames(o.iframeFix===true?"iframe":o.iframeFix);return true;},_blockFrames:function(selector){this.iframeBlocks=this.document.find(selector).map((function(){var iframe=$(this);return $("<div>").css("position","absolute").appendTo(iframe.parent()).outerWidth(iframe.outerWidth()).outerHeight(iframe.outerHeight()).offset(iframe.offset())[0];}));},_unblockFrames:function(){if(this.iframeBlocks){this.iframeBlocks.remove();delete this.iframeBlocks;}},_blurActiveElement:function(event){var activeElement=this.document[0].activeElement,target=$(event.target);if(target.closest(activeElement).length)return;$(activeElement).trigger("blur");},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this._addClass(this.helper,"ui-draggable-dragging");this._cacheHelperProportions();if($.ui.ddmanager)$.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent(true);this.offsetParent=this.helper.offsetParent();this.hasFixedAncestor=this.helper.parents().filter((function(){return $(this).css("position")==="fixed";})).length>0;this.positionAbs=this.element.offset();this._refreshOffsets(event);this.originalPosition=this.position=this._generatePosition(event,false);this.originalPageX=event.pageX;this.originalPageY=event.pageY;if(o.cursorAt)this._adjustOffsetFromHelper(o.cursorAt);this._setContainment();if(this._trigger("start",event)===false){this._clear();return false;}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour)$.ui.ddmanager.prepareOffsets(this,event);this._mouseDrag(event,true);if($.ui.ddmanager)$.ui.ddmanager.dragStart(this,event);return true;},_refreshOffsets:function(event){this.offset={top:this.positionAbs.top-this.margins.top,left
118:this.positionAbs.left-this.margins.left,scroll:false,parent:this._getParentOffset(),relative:this._getRelativeOffset()};this.offset.click={left:event.pageX-this.offset.left,top:event.pageY-this.offset.top};},_mouseDrag:function(event,noPropagation){if(this.hasFixedAncestor)this.offset.parent=this._getParentOffset();this.position=this._generatePosition(event,true);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp(new $.Event("mouseup",event));return false;}this.position=ui.position;}this.helper[0].style.left=this.position.left+"px";this.helper[0].style.top=this.position.top+"px";if($.ui.ddmanager)$.ui.ddmanager.drag(this,event);return false;},_mouseStop:function(event){var that=this,dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour)dropped=$.ui.ddmanager.drop(this,event);if(this.dropped){dropped=this.dropped;this.dropped=false;}if(this.options.revert==="invalid"&&!dropped||this.options.revert==="valid"&&dropped||this.options.revert===true||typeof this.options.revert==="function"&&this.options.revert.call(this.element,dropped))$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),(function(){if(that._trigger("stop",event)!==false)that._clear();}));else{if(this._trigger("stop",event)!==false)this._clear();}return false;},_mouseUp:function(event){this._unblockFrames();if($.ui.ddmanager)$.ui.ddmanager.dragStop(this,event);if(this.handleElement.is(event.target))this.element.trigger("focus");return $.ui.mouse.prototype._mouseUp.call(this,event);},cancel:function(){if(this.helper.is(".ui-draggable-dragging"))this._mouseUp(new $.Event("mouseup",{target:this.element[0]}));else this._clear();return this;},_getHandle:function(event){return this.options.handle?!!$(event.target).closest(this.element.find(this.options.handle)).length:true;},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element;this._addClass(this.handleElement,"ui-draggable-handle");},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle");},_createHelper:function(event){var o=this.options,helperIsFunction=typeof o.helper==="function",helper=helperIsFunction?$(o.helper.apply(this.element[0],[event])):o.helper==="clone"?this.element.clone().removeAttr("id"):this.element;if(!helper.parents("body").length)helper.appendTo(o.appendTo==="parent"?this.element[0].parentNode:o.appendTo);if(helperIsFunction&&helper[0]===this.element[0])this._setPositionRelative();if(helper[0]!==this.element[0]&&!/(fixed|absolute)/.test(helper.css("position")))helper.css("position","absolute");return helper;},_setPositionRelative:function(){if(!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";},_adjustOffsetFromHelper:function(obj){if(typeof obj==="string")obj=obj.split(" ");if(Array.isArray(obj))obj={left:+obj[0],top:+obj[1]||0};if("left" in obj)this.offset.click.left=obj.left+this.margins.left;if("right" in obj)this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left;if("top" in obj)this.offset.click.top=obj.top+this.margins.top;if("bottom" in obj)this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top;},_isRootNode:function(element){return /(html|body)/i.test(element.tagName)||element===this.document[0];},_getParentOffset:function(){var po=this.offsetParent.offset(),document=this.document[0];if(this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop();}if(this._isRootNode(this.offsetParent[0]))po={top:0,left:0};return {top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)};},_getRelativeOffset:function(){if(this.cssPosition!=="relative")return {top:0,left:0};var p=this.element.position(),scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return {top:p.top-(parseInt(this.helper.css("top"),10)||0)+(!scrollIsRootNode?this.scrollParent.scrollTop():0),left:p.left-(parseInt(this.helper.css("left"),10)||0)+(!scrollIsRootNode?this.scrollParent.scrollLeft():0)};},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0};},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};},_setContainment:function(){var isUserScrollable,c,ce,o=this.options,document=this.document[0];this.relativeContainer=null;if(!o.containment){this.containment=null;return;}if(o.containment==="window"){this.containment=[$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,$(window).scrollLeft()+$(window).width()-this.helperProportions.width-this.margins.left,$(window).scrollTop()+($(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return;}if(o.containment==="document"){this.containment=[0,0,$(document).width()-this.helperProportions.width-this.margins.left,($(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return;}if(o.containment.constructor===Array){this.containment=o.containment;return;}if(o.containment==="parent")o.containment=this.helper[0].parentNode;c=$(o.containment);ce=c[0];if(!ce)return;isUserScrollable=/(scroll|auto)/.test(c.css("overflow"));this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),
11810)||0)+(parseInt(c.css("paddingTop"),10)||0),(isUserScrollable?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt(c.css("borderRightWidth"),10)||0)-(parseInt(c.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(isUserScrollable?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt(c.css("borderBottomWidth"),10)||0)-(parseInt(c.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relativeContainer=c;},_convertPositionTo:function(d,pos){if(!pos)pos=this.position;var mod=d==="absolute"?1:-1,scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return {top:pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-(this.cssPosition==="fixed"?-this.offset.scroll.top:scrollIsRootNode?0:this.offset.scroll.top)*mod,left:pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-(this.cssPosition==="fixed"?-this.offset.scroll.left:scrollIsRootNode?0:this.offset.scroll.left)*mod};},_generatePosition:function(event,constrainPosition){var containment,co,top,left,o=this.options,scrollIsRootNode=this._isRootNode(this.scrollParent[0]),pageX=event.pageX,pageY=event.pageY;if(!scrollIsRootNode||!this.offset.scroll)this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()};if(constrainPosition){if(this.containment){if(this.relativeContainer){co=this.relativeContainer.offset();containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top];}else containment=this.containment;if(event.pageX-this.offset.click.left<containment[0])pageX=containment[0]+this.offset.click.left;if(event.pageY-this.offset.click.top<containment[1])pageY=containment[1]+this.offset.click.top;if(event.pageX-this.offset.click.left>containment[2])pageX=containment[2]+this.offset.click.left;if(event.pageY-this.offset.click.top>containment[3])pageY=containment[3]+this.offset.click.top;}if(o.grid){top=o.grid[1]?this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY;pageY=containment?top-this.offset.click.top>=containment[1]||top-this.offset.click.top>containment[3]?top:top-this.offset.click.top>=containment[1]?top-o.grid[1]:top+o.grid[1]:top;left=o.grid[0]?this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX;pageX=containment?left-this.offset.click.left>=containment[0]||left-this.offset.click.left>containment[2]?left:left-this.offset.click.left>=containment[0]?left-o.grid[0]:left+o.grid[0]:left;}if(o.axis==="y")pageX=this.originalPageX;if(o.axis==="x")pageY=this.originalPageY;}return {top:pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.offset.scroll.top:scrollIsRootNode?0:this.offset.scroll.top),left:pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.offset.scroll.left:scrollIsRootNode?0:this.offset.scroll.left)};},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging");if(this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval)this.helper.remove();this.helper=null;this.cancelHelperRemoval=false;if(this.destroyOnClear)this.destroy();},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui,this],true);
118if(/^(drag|start|stop)/.test(type)){this.positionAbs=this._convertPositionTo("absolute");ui.offset=this.positionAbs;}return $.Widget.prototype._trigger.call(this,type,event,ui);},plugins:{},_uiHash:function(){return {helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs};}});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.sortables=[];$(draggable.options.connectToSortable).each((function(){var sortable=$(this).sortable("instance");if(sortable&&!sortable.options.disabled){draggable.sortables.push(sortable);sortable.refreshPositions();sortable._trigger("activate",event,uiSortable);}}));},stop:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.cancelHelperRemoval=false;$.each(draggable.sortables,(function(){var sortable=this;if(sortable.isOver){sortable.isOver=0;draggable.cancelHelperRemoval=true;sortable.cancelHelperRemoval=false;sortable._storedCSS={position:sortable.placeholder.css("position"),top:sortable.placeholder.css("top"),left:sortable.placeholder.css("left")};sortable._mouseStop(event);sortable.options.helper=sortable.options._helper;}else{sortable.cancelHelperRemoval=true;sortable._trigger("deactivate",event,uiSortable);}}));},drag:function(event,ui,draggable){$.each(draggable.sortables,(function(){var innermostIntersecting=false,sortable=this;sortable.positionAbs=draggable.positionAbs;sortable.helperProportions=draggable.helperProportions;sortable.offset.click=draggable.offset.click;if(sortable._intersectsWith(sortable.containerCache)){innermostIntersecting=true;$.each(draggable.sortables,(function(){this.positionAbs=draggable.positionAbs;this.helperProportions=draggable.helperProportions;this.offset.click=draggable.offset.click;if(this!==sortable&&this._intersectsWith(this.containerCache)&&$.contains(sortable.element[0],this.element[0]))innermostIntersecting=false;return innermostIntersecting;}));}if(innermostIntersecting){if(!sortable.isOver){sortable.isOver=1;draggable._parent=ui.helper.parent();sortable.currentItem=ui.helper.appendTo(sortable.element).data("ui-sortable-item",true);sortable.options._helper=sortable.options.helper;sortable.options.helper=function(){return ui.helper[0];};event.target=sortable.currentItem[0];sortable._mouseCapture(event,true);sortable._mouseStart(event,true,true);sortable.offset.click.top=draggable.offset.click.top;sortable.offset.click.left=draggable.offset.click.left;sortable.offset.parent.left-=draggable.offset.parent.left-sortable.offset.parent.left;sortable.offset.parent.top-=draggable.offset.parent.top-sortable.offset.parent.top;draggable._trigger("toSortable",event);draggable.dropped=sortable.element;$.each(draggable.sortables,(function(){this.refreshPositions();}));draggable.currentItem=draggable.element;sortable.fromOutside=draggable;}if(sortable.currentItem){sortable._mouseDrag(event);ui.position=sortable.position;}}else{if(sortable.isOver){sortable.isOver=0;sortable.cancelHelperRemoval=true;sortable.options._revert=sortable.options.revert;sortable.options.revert=false;sortable._trigger("out",event,sortable._uiHash(sortable));sortable._mouseStop(event,true);sortable.options.revert=sortable.options._revert;sortable.options.helper=sortable.options._helper;if(sortable.placeholder)sortable.placeholder.remove();ui.helper.appendTo(draggable._parent);draggable._refreshOffsets(event);ui.position=draggable._generatePosition(event,true);draggable._trigger("fromSortable",event);draggable.dropped=false;$.each(draggable.sortables,(function(){this.refreshPositions();}));}}}));}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui,instance){var t=$("body"),o=instance.options;if(t.css("cursor"))o._cursor=t.css("cursor");t.css("cursor",o.cursor);},stop:function(event,ui,instance){var o=instance.options;if(o._cursor)$("body").css("cursor",o._cursor);}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("opacity"))o._opacity=t.css("opacity");t.css("opacity",o.opacity);},stop:function(event,ui,instance){var o=instance.options;if(o._opacity)$(ui.helper).css("opacity",o._opacity);}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui,i){if(!i.scrollParentNotHidden)i.scrollParentNotHidden=i.helper.scrollParent(false);
118if(i.scrollParentNotHidden[0]!==i.document[0]&&i.scrollParentNotHidden[0].tagName!=="HTML")i.overflowOffset=i.scrollParentNotHidden.offset();},drag:function(event,ui,i){var o=i.options,scrolled=false,scrollParent=i.scrollParentNotHidden[0],document=i.document[0];if(scrollParent!==document&&scrollParent.tagName!=="HTML"){if(!o.axis||o.axis!=="x")if(i.overflowOffset.top+scrollParent.offsetHeight-event.pageY<o.scrollSensitivity)scrollParent.scrollTop=scrolled=scrollParent.scrollTop+o.scrollSpeed;else{if(event.pageY-i.overflowOffset.top<o.scrollSensitivity)scrollParent.scrollTop=scrolled=scrollParent.scrollTop-o.scrollSpeed;}if(!o.axis||o.axis!=="y")if(i.overflowOffset.left+scrollParent.offsetWidth-event.pageX<o.scrollSensitivity)scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft+o.scrollSpeed;else{if(event.pageX-i.overflowOffset.left<o.scrollSensitivity)scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft-o.scrollSpeed;}}else{if(!o.axis||o.axis!=="x")if(event.pageY-$(document).scrollTop()<o.scrollSensitivity)scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed);else{if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity)scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed);}if(!o.axis||o.axis!=="y")if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity)scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed);else{if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity)scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed);}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour)$.ui.ddmanager.prepareOffsets(i,event);}});$.ui.plugin.add("draggable","snap",{start:function(event,ui,i){var o=i.options;i.snapElements=[];$(o.snap.constructor!==String?o.snap.items||":data(ui-draggable)":o.snap).each((function(){var $t=$(this),$o=$t.offset();if(this!==i.element[0])i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left});}));},drag:function(event,ui,inst){var ts,bs,ls,rs,l,r,t,b,i,first,o=inst.options,d=o.snapTolerance,x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(i=inst.snapElements.length-1;i>=0;i--){l=inst.snapElements[i].left-inst.margins.left;r=l+inst.snapElements[i].width;t=inst.snapElements[i].top-inst.margins.top;b=t+inst.snapElements[i].height;if(x2<l-d||x1>r+d||y2<t-d||y1>b+d||!$.contains(inst.snapElements[i].item.ownerDocument,inst.snapElements[i].item)){if(inst.snapElements[i].snapping)if(inst.options.snap.release)inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item}));inst.snapElements[i].snapping=false;continue;}if(o.snapMode!=="inner"){ts=Math.abs(t-y2)<=d;bs=Math.abs(b-y1)<=d;ls=Math.abs(l-x2)<=d;rs=Math.abs(r-x1)<=d;if(ts)ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top;if(bs)ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top;if(ls)ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left;if(rs)ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left;}first=ts||bs||ls||rs;if(o.snapMode!=="outer"){ts=Math.abs(t-y1)<=d;bs=Math.abs(b-y2)<=d;ls=Math.abs(l-x1)<=d;rs=Math.abs(r-x2)<=d;if(ts)ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top;if(bs)ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top;if(ls)ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left;if(rs)ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left;}if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first))if(inst.options.snap.snap)inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item}));inst.snapElements[i].snapping=ts||bs||ls||rs||first;}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui,instance){var min,o=instance.options,group=$.makeArray($(o.stack)).sort((function(a,b){return (parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0);}));if(!group.length)return;min=parseInt($(group[0]).css("zIndex"),10)||0;$(group).each((function(i){$(this).css("zIndex",min+i);}));this.css("zIndex",min+group.length);}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("zIndex"))o._zIndex=t.css("zIndex");t.css("zIndex",o.zIndex);},stop:function(event,ui,instance){var o=instance.options;if(o._zIndex)$(ui.helper).css("zIndex",o._zIndex);}});return $.ui.draggable;}));(function(factory){"use strict";if(typeof define==="function"&&define.amd)define(["jquery","../keycode","../position","../unique-id","../version","../widget"],factory);else factory(jQuery);})((function($){"use strict";$.widget("ui.tooltip",{version:"1.14.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"}
118,content:function(){var title=$(this).attr("title");return $("<a>").text(title).html();},hide:true,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:true,track:false,close:null,open:null},_addDescribedBy:function(elem,id){var describedby=(elem.attr("aria-describedby")||"").split(/\s+/);describedby.push(id);elem.data("ui-tooltip-id",id).attr("aria-describedby",String.prototype.trim.call(describedby.join(" ")));},_removeDescribedBy:function(elem){var id=elem.data("ui-tooltip-id"),describedby=(elem.attr("aria-describedby")||"").split(/\s+/),index=$.inArray(id,describedby);if(index!==-1)describedby.splice(index,1);elem.removeData("ui-tooltip-id");describedby=String.prototype.trim.call(describedby.join(" "));if(describedby)elem.attr("aria-describedby",describedby);else elem.removeAttr("aria-describedby");},_create:function(){this._on({mouseover:"open",focusin:"open"});this.tooltips={};this.parents={};this.liveRegion=$("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body);this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible");this.disabledTitles=$([]);},_setOption:function(key,value){var that=this;this._super(key,value);if(key==="content")$.each(this.tooltips,(function(id,tooltipData){that._updateContent(tooltipData.element);}));},_setOptionDisabled:function(value){this[value?"_disable":"_enable"]();},_disable:function(){var that=this;$.each(this.tooltips,(function(id,tooltipData){var event=$.Event("blur");event.target=event.currentTarget=tooltipData.element[0];that.close(event,true);}));this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter((function(){var element=$(this);if(element.is("[title]"))return element.data("ui-tooltip-title",element.attr("title")).removeAttr("title");})));},_enable:function(){this.disabledTitles.each((function(){var element=$(this);if(element.data("ui-tooltip-title"))element.attr("title",element.data("ui-tooltip-title"));}));this.disabledTitles=$([]);},open:function(event){var that=this,target=$(event?event.target:this.element).closest(this.options.items);if(!target.length||target.data("ui-tooltip-id"))return;if(target.attr("title"))target.data("ui-tooltip-title",target.attr("title"));target.data("ui-tooltip-open",true);if(event&&event.type==="mouseover")target.parents().each((function(){var parent=$(this),blurEvent;if(parent.data("ui-tooltip-open")){blurEvent=$.Event("blur");blurEvent.target=blurEvent.currentTarget=this;that.close(blurEvent,true);}if(parent.attr("title")){parent.uniqueId();that.parents[this.id]={element:this,title:parent.attr("title")};parent.attr("title","");}}));this._registerCloseHandlers(event,target);this._updateContent(target,event);},_updateContent:function(target,event){var content,contentOption=this.options.content,that=this,eventType=event?event.type:null;if(typeof contentOption==="string"||contentOption.nodeType||contentOption.jquery)return this._open(event,target,contentOption);content=contentOption.call(target[0],(function(response){if(!target.data("ui-tooltip-open"))return;if(event)event.type=eventType;that._open(event,target,response);}));if(content)this._open(event,target,content);},_open:function(event,target,content){var tooltipData,tooltip,delayedShow,a11yContent,positionOption=$.extend({},this.options.position);if(!content)return;tooltipData=this._find(target);if(tooltipData){tooltipData.tooltip.find(".ui-tooltip-content").html(content);return;}if(target.is("[title]"))if(event&&event.type==="mouseover")target.attr("title","");else target.removeAttr("title");tooltipData=this._tooltip(target);tooltip=tooltipData.tooltip;this._addDescribedBy(target,tooltip.attr("id"));tooltip.find(".ui-tooltip-content").html(content);this.liveRegion.children().hide();a11yContent=$("<div>").html(tooltip.find(".ui-tooltip-content").html());a11yContent.removeAttr("name").find("[name]").removeAttr("name");a11yContent.removeAttr("id").find("[id]").removeAttr("id");a11yContent.appendTo(this.liveRegion);function position(event){positionOption.of=event;if(tooltip.is(":hidden"))return;tooltip.position(positionOption);}if(this.options.track&&event&&/^mouse/.test(event.type)){this._on(this.document,{mousemove:position});position(event);}else tooltip.position($.extend({of:target},this.options.position));tooltip.hide();this._show(tooltip,this.options.show);if(this.options.track&&this.options.show&&this.options.show.delay)delayedShow=this.delayedShow=setInterval((function(){if(tooltip.is(":visible")){position(positionOption.of);clearInterval(delayedShow);}}),13);this._trigger("open",event,{tooltip});},_registerCloseHandlers:function(event,target){var events={keyup:function(event){if(event.keyCode===$.ui.keyCode.ESCAPE){var fakeEvent=$.Event(event);fakeEvent.currentTarget=target[0];this.close(fakeEvent,true);}}};if(target[0]!==this.element[0])events.remove=function(){var targetElement=this._find(target);if(targetElement)this._removeTooltip(targetElement.tooltip);};if(!event||event.type==="mouseover")events.mouseleave="close";if(!event||event.type==="focusin")events.focusout="close";this._on(true,target,events);},close:function(event){var tooltip,that=this,target=$(event?event.currentTarget:this.element),tooltipData=this._find(target);if(!tooltipData){target.removeData("ui-tooltip-open");return;}tooltip=tooltipData.tooltip;if(tooltipData.closing)return;clearInterval(this.delayedShow);if(target.data("ui-tooltip-title")&&!target.attr("title"))target.attr("title",target.data("ui-tooltip-title"));this._removeDescribedBy(target);tooltipData.hiding=true;tooltip.stop(true);this._hide(tooltip,this.options.hide,(function(){that._removeTooltip($(this));}));target.removeData("ui-tooltip-open");this._off(target,"mouseleave focusout keyup");if(target[0]!==this.element[0])this._off(target,"remove");this._off(this.document,"mousemove");
118if(event&&event.type==="mouseleave")$.each(this.parents,(function(id,parent){$(parent.element).attr("title",parent.title);delete that.parents[id];}));tooltipData.closing=true;this._trigger("close",event,{tooltip});if(!tooltipData.hiding)tooltipData.closing=false;},_tooltip:function(element){var tooltip=$("<div>").attr("role","tooltip"),content=$("<div>").appendTo(tooltip),id=tooltip.uniqueId().attr("id");this._addClass(content,"ui-tooltip-content");this._addClass(tooltip,"ui-tooltip","ui-widget ui-widget-content");tooltip.appendTo(this._appendTo(element));return this.tooltips[id]={element,tooltip};},_find:function(target){var id=target.data("ui-tooltip-id");return id?this.tooltips[id]:null;},_removeTooltip:function(tooltip){clearInterval(this.delayedShow);tooltip.remove();delete this.tooltips[tooltip.attr("id")];},_appendTo:function(target){var element=target.closest(".ui-front, dialog");if(!element.length)element=this.document[0].body;return element;},_destroy:function(){var that=this;$.each(this.tooltips,(function(id,tooltipData){var event=$.Event("blur"),element=tooltipData.element;event.target=event.currentTarget=element[0];that.close(event,true);$("#"+id).remove();if(element.data("ui-tooltip-title")){if(!element.attr("title"))element.attr("title",element.data("ui-tooltip-title"));element.removeData("ui-tooltip-title");}}));this.liveRegion.remove();}});if($.uiBackCompat===true)$.widget("ui.tooltip",$.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var tooltipData=this._superApply(arguments);if(this.options.tooltipClass)tooltipData.tooltip.addClass(this.options.tooltipClass);return tooltipData;}});return $.ui.tooltip;}));(function($){$.support.touch="ontouchend" in document;if(!$.support.touch)return;var mouseProto=$.ui.mouse.prototype,_mouseInit=mouseProto._mouseInit,_mouseDestroy=mouseProto._mouseDestroy,touchHandled;function simulateMouseEvent(event,simulatedType){if(event.originalEvent.touches.length>1)return;event.preventDefault();var touch=event.originalEvent.changedTouches[0],simulatedEvent=document.createEvent("MouseEvents");simulatedEvent.initMouseEvent(simulatedType,true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);event.target.dispatchEvent(simulatedEvent);}mouseProto._touchStart=function(event){var self=this;if(touchHandled||!self._mouseCapture(event.originalEvent.changedTouches[0]))return;touchHandled=true;self._touchMoved=false;simulateMouseEvent(event,"mouseover");simulateMouseEvent(event,"mousemove");simulateMouseEvent(event,"mousedown");};mouseProto._touchMove=function(event){if(!touchHandled)return;this._touchMoved=true;simulateMouseEvent(event,"mousemove");};mouseProto._touchEnd=function(event){if(!touchHandled)return;simulateMouseEvent(event,"mouseup");simulateMouseEvent(event,"mouseout");if(!this._touchMoved)simulateMouseEvent(event,"click");touchHandled=false;};mouseProto._mouseInit=function(){var self=this;self.element.bind({touchstart:$.proxy(self,"_touchStart"),touchmove:$.proxy(self,"_touchMove"),touchend:$.proxy(self,"_touchEnd")});_mouseInit.call(self);};mouseProto._mouseDestroy=function(){var self=this;self.element.unbind({touchstart:$.proxy(self,"_touchStart"),touchmove:$.proxy(self,"_touchMove"),touchend:$.proxy(self,"_touchEnd")});_mouseDestroy.call(self);};})(jQuery);"use strict";var fluid=fluid||{};fluid.version="Infusion 4.8.0";fluid.Error=Error;fluid.environment={fluid};fluid.global=fluid.global||typeof window!=="undefined"?window:typeof self!=="undefined"?self:{};fluid.invokeLater=function(func){return setTimeout(func,0);};fluid.defeatLogging=true;fluid.activityTracing=false;fluid.activityTrace=[];var activityParser=/(%\w+)/g;fluid.renderActivityArgument=function(arg){if(fluid.isComponent(arg))return fluid.dumpComponentAndPath(arg);else return arg;};fluid.renderOneActivity=function(activity,nowhile){var togo=nowhile===true?[]:[" while "];var message=activity.message;var index=activityParser.lastIndex=0;while(true){var match=activityParser.exec(message);if(match){var key=match[1].substring(1);togo.push(message.substring(index,match.index));togo.push(fluid.renderActivityArgument(activity.args[key]));index=activityParser.lastIndex;}else break;}if(index<message.length)togo.push(message.substring(index));return togo;};fluid.renderActivity=function(activityStack,renderer){renderer=renderer||fluid.renderOneActivity;return fluid.transform(activityStack,renderer);};fluid.singleThreadLocal=function(initFunc){var value=initFunc();return function(newValue){return newValue===undefined?value:value=newValue;};};fluid.threadLocal=fluid.singleThreadLocal;fluid.globalThreadLocal=fluid.threadLocal((function(){return {};}));fluid.getActivityStack=function(){var root=fluid.globalThreadLocal();if(!root.activityStack)root.activityStack=[];return root.activityStack;};fluid.describeActivity=fluid.getActivityStack;fluid.logActivity=function(activity){activity=activity||fluid.describeActivity();var rendered=fluid.renderActivity(activity).reverse();if(rendered.length>0){fluid.log("Current activity: ");fluid.each(rendered,(function(args){fluid.log.apply(null,args);}));}};fluid.pushActivity=function(type,message,args){var record={type,message,args,time:(new Date()).getTime()};if(fluid.activityTracing)fluid.activityTrace.push(record);if(fluid.passLogLevel(fluid.logLevel.TRACE))fluid.log.apply(null,fluid.renderOneActivity(rec
118ord,true));var activityStack=fluid.getActivityStack();activityStack.push(record);};fluid.popActivity=function(popframes){popframes=popframes||1;if(fluid.activityTracing)fluid.activityTrace.push({pop:popframes});var activityStack=fluid.getActivityStack();var popped=activityStack.length-popframes;activityStack.length=popped<0?0:popped;};fluid.FluidError=function(){var togo=Error.apply(this,arguments);this.message=togo.message;try{throw togo;}catch(togo){this.stack=togo.stack;}return this;};fluid.FluidError.prototype=Object.create(Error.prototype);fluid.logFailure=function(args,activity){fluid.log.apply(null,[fluid.logLevel.FAIL,"ASSERTION FAILED: "].concat(args));fluid.logActivity(activity);};fluid.renderLoggingArg=function(arg){return arg===undefined?"undefined":fluid.isPrimitive(arg)||!fluid.isPlainObject(arg)?arg:JSON.stringify(arg);};fluid.builtinFail=function(args){var message=fluid.transform(args,fluid.renderLoggingArg).join("");throw new fluid.FluidError("Assertion failure - check console for more details: "+message);};fluid.fail=function(...messages){var activity=fluid.makeArray(fluid.describeActivity());fluid.popActivity(activity.length);if(fluid.failureEvent)fluid.failureEvent.fire(messages,activity);else{fluid.logFailure(messages,activity);fluid.builtinFail(messages,activity);}};fluid.notrycatch=false;fluid.tryCatch=function(tryfun,catchfun,finallyfun){finallyfun=finallyfun||fluid.identity;if(fluid.notrycatch){var togo=tryfun();finallyfun();return togo;}else try{return tryfun();}catch(e){if(catchfun)catchfun(e);else throw e;}finally{finallyfun();}};fluid.expect=function(name,target,members){fluid.transform(fluid.makeArray(members),(function(key){if(target[key]===undefined)fluid.fail(name+" missing required member "+key);}));};fluid.isLogging=function(){return logLevelStack[0].priority>fluid.logLevel.IMPORTANT.priority;};fluid.isLogLevel=function(arg){return fluid.isMarker(arg)&&arg.priority!==undefined;};fluid.passLogLevel=function(testLogLevel){return testLogLevel.priority<=logLevelStack[0].priority;};fluid.setLogging=function(enabled){var logLevel;if(typeof enabled==="boolean")logLevel=fluid.logLevel[enabled?"INFO":"IMPORTANT"];else if(fluid.isLogLevel(enabled))logLevel=enabled;else fluid.fail("Unrecognised fluid logging level ",enabled);logLevelStack.unshift(logLevel);fluid.defeatLogging=!fluid.isLogging();};fluid.setLogLevel=fluid.setLogging;fluid.popLogging=function(){var togo=logLevelStack.length===1?logLevelStack[0]:logLevelStack.shift();fluid.defeatLogging=!fluid.isLogging();return togo;};fluid.doBrowserLog=function(args){if(typeof console!=="undefined")if(console.debug)console.debug.apply(console,args);else{if(typeof console.log==="function")console.log.apply(console,args);}};fluid.log=function(){var directArgs=fluid.makeArray(arguments);var userLogLevel=fluid.logLevel.INFO;if(fluid.isLogLevel(directArgs[0]))userLogLevel=directArgs.shift();if(fluid.passLogLevel(userLogLevel))fluid.loggingEvent.fire(directArgs);};fluid.isValue=function(value){return value!==undefined&&value!==null;};fluid.isPrimitive=function(value){var valueType=typeof value;return !value||valueType==="string"||valueType==="boolean"||valueType==="number"||valueType==="function";};fluid.isJQuery=function(totest){return Boolean(totest&&totest.jquery&&totest.constructor&&totest.constructor.prototype&&totest.constructor.prototype.jquery);};fluid.isArrayable=function(totest){return Boolean(totest)&&(Object.prototype.toString.call(totest)==="[object Array]"||fluid.isJQuery(totest));};fluid.isPlainObject=function(totest,strict){var string=Object.prototype.toString.call(totest);if(string==="[object Array]")return !strict;else{if(string!=="[object Object]")return false;}return !totest.constructor||!totest.constructor.prototype||Object.prototype.hasOwnProperty.call(totest.constructor.prototype,"isPrototypeOf");};fluid.typeCode=function(totest){return fluid.isPrimitive(totest)||!fluid.isPlainObject(totest)?"primitive":fluid.isArrayable(totest)?"array":"object";};fluid.isIoCReference=function(ref){return typeof ref==="string"&&ref.charAt(0)==="{";};fluid.isReferenceOrExpander=function(ref){return ref&&(fluid.isIoCReference(ref)||ref.expander);};fluid.isDOMNode=function(obj){return obj&&typeof obj.nodeType==="number";};fluid.isComponent=function(obj){return obj&&obj.constructor===fluid.componentConstructor;};fluid.isUncopyable=function(totest){return fluid.isPrimitive(totest)||!fluid.isPlainObject(totest);};fluid.isApplicable=function(totest){return totest.apply&&typeof totest.apply==="function";};fluid.identity=function(arg){return arg;};fluid.notImplemented=function(){fluid.fail("This operation is not implemented");};fluid.firstDefined=function(a,b){return a===undefined?b:a;};fluid.freshContainer=function(tocopy){return fluid.isArrayable(tocopy)?[]:{};};fluid.testStrategyRecursion=function(funcName,segs){if(segs.length>fluid.strategyRecursionBailout)fluid.fail("Runaway recursion encountered in "+funcName+" - reached path depth of "+fluid.strategyRecursionBailout+" via path of "+segs.join(".")+"this object is probably circularly connected. Either adjust your object structure to remove the circularity or increase fluid.strategyRecursionBailout");};fluid.copyRecurse=function(tocopy,segs){fluid.testStrategyRecursion("fluid.copy",segs);if(fluid.isUncopyable(tocopy))return tocopy;else return fluid.transform(tocopy,(function(value,key){segs.push(key);var togo=fluid.copyRecurse(value,segs);segs.pop();return togo;}));};fluid.copy=function(tocopy){return fluid.copyRecurse(tocopy,[]);};fluid.extend=$.extend;fluid.makeArray=function(arg){var togo=[];if(arg!==null&&arg!==undefined)if(fluid.isPrimitive(arg)||fluid.isPlainObject(arg,true)||typeof arg.length!=="number")togo.push(arg);else for(var i=0;i<arg.length;++i)togo[i]=arg[i];return togo;};fluid.pushArray=function(holder,member,topush){var array=holder[member]?holder[member]:holder[member]=[];if(Array.isArray(topush))array.push.apply(array,topush);else array.push(topush);};function transformInternal(source,togo,key,transformations){var transit=source[key];for(var j=0;j<transformations.length;++j)transit=transformations[j](transit,key);if(transit!==fluid.NO_VALUE)togo[key]=transit;}fluid.transform=function(source,...transformations){if(fluid.isPrimitive(source))return source;var togo=fluid.freshContainer(source);if(fluid.isArrayable(source))for(var i=0;i<source.length;++i)transformInternal(source,togo,i,transformations);else for(var key in source)transformInternal(source,togo,key,transformations);return togo;};
118fluid.forEachInRange=function(array,start,end,func){for(var i=start;i<end;++i)func(array[i],i);};fluid.peek=function(array){return array.length===0?undefined:array[array.length-1];};fluid.each=function(source,func){if(fluid.isArrayable(source))for(var i=0;i<source.length;++i)func(source[i],i);else for(var key in source)func(source[key],key);};fluid.make_find=function(find_if){var target=find_if?false:undefined;return function(source,func,deffolt){var disp;if(fluid.isArrayable(source))for(var i=0;i<source.length;++i){disp=func(source[i],i);if(disp!==target)return find_if?source[i]:disp;}else for(var key in source){disp=func(source[key],key);if(disp!==target)return find_if?source[key]:disp;}return deffolt;};};fluid.find=fluid.make_find(false);fluid.find_if=fluid.make_find(true);fluid.remove_if=function(source,fn,target){if(fluid.isArrayable(source)){for(var i=source.length-1;i>=0;--i)if(fn(source[i],i)){if(target)target.unshift(source[i]);source.splice(i,1);}}else{for(var key in source)if(fn(source[key],key)){if(target)target[key]=source[key];delete source[key];}}return target||source;};fluid.generate=function(n,generator,applyFunc){var togo=[];for(var i=0;i<n;++i)togo[i]=applyFunc?generator(i):generator;return togo;};fluid.iota=function(count,first){first=first||0;var togo=[];for(var i=0;i<count;++i)togo[togo.length]=first++;return togo;};fluid.getMembers=function(holder,name){return fluid.transform(holder,(function(member){return fluid.get(member,name);}));};fluid.filterKeys=function(toFilter,keys,exclude){return fluid.remove_if($.extend({},toFilter),(function(value,key){return exclude^keys.indexOf(key)===-1;}));};fluid.censorKeys=function(toCensor,keys){return fluid.filterKeys(toCensor,keys,true);};fluid.keys=function(obj){var togo=[];for(var key in obj)togo.push(key);return togo;};fluid.values=function(obj){var togo=[];for(var key in obj)togo.push(obj[key]);return togo;};fluid.keyForValue=function(obj,value){return fluid.find(obj,(function(thisValue,key){if(value===thisValue)return key;}));};fluid.arrayToHash=function(array){var togo={};fluid.each(array,(function(el){togo[el]=true;}));return togo;};fluid.hashToArray=function(hash,keyName,func){var togo=[];fluid.each(hash,(function(el,key){var newEl=el;if(keyName!==undefined){newEl={};newEl[keyName]=key;}if(func)newEl=func(newEl,el,key)||newEl;else{if(newEl!==el)$.extend(true,newEl,el);}togo.push(newEl);}));return togo;};fluid.flatten=function(array){var togo=[];fluid.each(array,(function(element){if(fluid.isArrayable(element))togo=togo.concat(element);else togo.push(element);}));return togo;};fluid.clear=function(target){if(fluid.isArrayable(target))target.length=0;else for(var i in target)delete target[i];};fluid.compareStringLength=function(ascending){return ascending?function(a,b){return a.length-b.length;}:function(a,b){return b.length-a.length;};};fluid.parseInteger=function(string){return isFinite(string)&&string%1===0?Number(string):NaN;};fluid.roundToDecimal=function(num,scale,method){scale=scale&&scale>=0?Math.round(scale):0;if(method==="ceil"||method==="floor")return Number(Math[method](num+"e"+scale)+"e-"+scale);else{var sign=num>=0?1:-1;return Number(sign*(Math.round(Math.abs(num)+"e"+scale)+"e-"+scale));}};fluid.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)result=func.apply(context,args);};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result;};};fluid.freezeRecursive=function(tofreeze,segs){segs=segs||[];fluid.testStrategyRecursion("fluid.freezeRecursive",segs);if(fluid.isPlainObject(tofreeze)){fluid.each(tofreeze,(function(value,key){segs.push(key);fluid.freezeRecursive(value,segs);segs.pop();}));return Object.freeze(tofreeze);}else return tofreeze;};fluid.marker=function(){};fluid.makeMarker=function(value,extra){var togo=Object.create(fluid.marker.prototype);togo.value=value;fluid.extend(togo,extra);return Object.freeze(togo);};fluid.NO_VALUE=fluid.makeMarker("NO_VALUE");fluid.EXPAND=fluid.makeMarker("EXPAND");fluid.isMarker=function(totest,type){if(!(totest instanceof fluid.marker))return false;if(!type)return true;return totest.value===type.value;};fluid.logLevelsSpec={FATAL:0,FAIL:5,WARN:10,IMPORTANT:12,INFO:15,TRACE:20};fluid.logLevel=fluid.transform(fluid.logLevelsSpec,(function(value,key){return fluid.makeMarker(key,{priority:value});}));var logLevelStack=[fluid.logLevel.IMPORTANT];fluid.model={};fluid.model.copyModel=function(target,source){fluid.clear(target);$.extend(true,target,source);};fluid.model.parseEL=function(EL){return EL===""?[]:String(EL).split(".");};fluid.model.composePath=function(prefix,suffix){return prefix===""?suffix:suffix===""?prefix:prefix+"."+suffix;};fluid.model.composeSegments=function(){return fluid.makeArray(arguments).join(".");};fluid.lastDotIndex=function(path){return path.lastIndexOf(".");};fluid.model.getToTailPath=function(path){var lastdot=fluid.lastDotIndex(path);return lastdot===-1?"":path.substring(0,lastdot);};fluid.model.getTailPath=function(path){var lastdot=fluid.lastDotIndex(path);return path.substring(lastdot+1);};fluid.path=fluid.model.composeSegments;fluid.composePath=fluid.model.composePath;fluid.requireDataBinding=function(){fluid.fail("Please include DataBinding.js in order to operate complex model accessor configuration");};
118fluid.model.setWithStrategy=fluid.model.getWithStrategy=fluid.requireDataBinding;fluid.model.resolvePathSegment=function(root,segment,create,origEnv){if(!origEnv&&root.resolvePathSegment){var togo=root.resolvePathSegment(segment);if(togo!==undefined)return togo;}if(create&&root[segment]===undefined)return root[segment]={};return root[segment];};fluid.model.parseToSegments=function(EL,parseEL,copy){return typeof EL==="number"||typeof EL==="string"?parseEL(EL):copy?fluid.makeArray(EL):EL;};fluid.model.pathToSegments=function(EL,config){var parser=config&&config.parser?config.parser.parse:fluid.model.parseEL;return fluid.model.parseToSegments(EL,parser);};fluid.model.accessImpl=function(root,EL,newValue,config,initSegs,returnSegs,traverser){var segs=fluid.model.pathToSegments(EL,config);var initPos=0;if(initSegs){initPos=initSegs.length;segs=initSegs.concat(segs);}var uncess=newValue===fluid.NO_VALUE?0:1;root=traverser(root,segs,initPos,config,uncess);if(newValue===fluid.NO_VALUE)return returnSegs?{root,segs}:root;else root[fluid.peek(segs)]=newValue;};fluid.model.accessSimple=function(root,EL,newValue,environment,initSegs,returnSegs){return fluid.model.accessImpl(root,EL,newValue,environment,initSegs,returnSegs,fluid.model.traverseSimple);};fluid.model.traverseSimple=function(root,segs,initPos,environment,uncess){var origEnv=environment;var limit=segs.length-uncess;for(var i=0;i<limit;++i){if(!root)return undefined;var segment=segs[i];if(environment&&environment[segment])root=environment[segment];else root=fluid.model.resolvePathSegment(root,segment,uncess===1,origEnv);environment=null;}return root;};fluid.model.setSimple=function(root,EL,newValue,environment,initSegs){fluid.model.accessSimple(root,EL,newValue,environment,initSegs,false);};fluid.model.getSimple=function(root,EL,environment,initSegs){if(EL===null||EL===undefined||EL.length===0)return root;return fluid.model.accessSimple(root,EL,fluid.NO_VALUE,environment,initSegs,false);};fluid.getImmediate=function(root,segs,i){var limit=i===undefined?segs.length:i+1;for(var j=0;j<limit;++j)root=root?root[segs[j]]:undefined;return root;};fluid.decodeAccessorArg=function(arg3){return !arg3||arg3===fluid.model.defaultGetConfig||arg3===fluid.model.defaultSetConfig?null:arg3.type==="environment"?arg3.value:undefined;};fluid.set=function(root,EL,newValue,config,initSegs){var env=fluid.decodeAccessorArg(config);if(env===undefined)fluid.model.setWithStrategy(root,EL,newValue,config,initSegs);else fluid.model.setSimple(root,EL,newValue,env,initSegs);};fluid.get=function(root,EL,config,initSegs){var env=fluid.decodeAccessorArg(config);return env===undefined?fluid.model.getWithStrategy(root,EL,config,initSegs):fluid.model.accessImpl(root,EL,fluid.NO_VALUE,env,null,false,fluid.model.traverseSimple);};fluid.getGlobalValue=function(path,env){if(path){env=env||fluid.environment;return fluid.get(fluid.global,path,{type:"environment",value:env});}};fluid.bind=function(obj,fnName,args){return obj[fnName].apply(obj,fluid.makeArray(args));};fluid.proxyComponentArgs=fluid.identity;fluid.invokeGlobalFunction=function(functionPath,args,environment){var func=fluid.getGlobalValue(functionPath,environment);if(!func)fluid.fail("Error invoking global function: "+functionPath+" could not be located");else{var argsArray=fluid.isArrayable(args)?args:fluid.makeArray(args);fluid.proxyComponentArgs(argsArray);return func.apply(null,argsArray);}};fluid.registerGlobalFunction=function(functionPath,func,env){env=env||fluid.environment;fluid.set(fluid.global,functionPath,func,{type:"environment",value:env});};fluid.setGlobalValue=fluid.registerGlobalFunction;fluid.registerNamespace=function(path,env){env=env||fluid.environment;var existing=fluid.getGlobalValue(path,env);if(!existing){existing={};fluid.setGlobalValue(path,existing,env);}return existing;};fluid.dumpEl=fluid.identity;fluid.renderTimestamp=fluid.identity;fluid.generateUniquePrefix=function(){return Math.floor(Math.random()*1e12).toString(36)+"-";};var fluid_prefix=fluid.generateUniquePrefix();fluid.fluidInstance=fluid_prefix;var fluid_guid=1;fluid.allocateGuid=function(){return fluid_prefix+fluid_guid++;};fluid.registerNamespace("fluid.event");fluid.extremePriority=4e9;fluid.priorityTypes={first:-1,last:1,before:0,after:0};fluid.extremalPriorities={none:0,transaction:10,testing:20,authoring:30};fluid.parsePriorityConstraint=function(constraint,fixedOnly,site){var segs=constraint.split(":");var type=segs[0];var lookup=fluid.priorityTypes[type];if(lookup===undefined)fluid.fail("Invalid constraint type in priority field "+constraint+": the only supported values are "+fluid.keys(fluid.priorityTypes).join(", ")+" or numeric");if(fixedOnly&&lookup===0)fluid.fail("Constraint type in priority field "+constraint+" is not supported in a "+site+" record - you must use either a numeric value or first, last");return {type:segs[0],target:segs[1]};};fluid.parsePriority=function(priority,count,fixedOnly,site){priority=priority||0;var togo={count:count||0,fixed:null,constraint:null,site};
118if(typeof priority==="number")togo.fixed=-priority;else togo.constraint=fluid.parsePriorityConstraint(priority,fixedOnly,site);var multiplier=togo.constraint?fluid.priorityTypes[togo.constraint.type]:0;if(multiplier!==0){var target=togo.constraint.target||"none";var extremal=fluid.extremalPriorities[target];if(extremal===undefined)fluid.fail("Unrecognised extremal priority target "+target+": the currently supported values are "+fluid.keys(fluid.extremalPriorities).join(", ")+": register your value in fluid.extremalPriorities");togo.fixed=multiplier*(fluid.extremePriority+extremal);}if(togo.fixed!==null)togo.fixed+=togo.count/1024;return togo;};fluid.renderPriority=function(parsed){return parsed.constraint?parsed.constraint.target?parsed.constraint.type+":"+parsed.constraint.target:parsed.constraint.type:Math.floor(parsed.fixed);};fluid.compareByPriority=function(recA,recB){if(recA.priority.fixed!==null&&recB.priority.fixed!==null)return recA.priority.fixed-recB.priority.fixed;else return (recA.priority.fixed===null)-(recB.priority.fixed===null);};fluid.honourConstraint=function(array,firstConstraint,c){var constraint=array[c].priority.constraint;var matchIndex=fluid.find(array,(function(element,index){return element.namespace===constraint.target?index:undefined;}),-1);if(matchIndex===-1)return true;else if(matchIndex>=firstConstraint)return false;else{var offset=constraint.type==="after"?1:0;var target=matchIndex+offset;var temp=array[c];for(var shift=c;shift>=target;--shift)array[shift]=array[shift-1];array[target]=temp;return true;}};fluid.sortByPriority=function(array){array.sort(fluid.compareByPriority);var firstConstraint=fluid.find(array,(function(element,index){return element.priority.constraint&&fluid.priorityTypes[element.priority.constraint.type]===0?index:undefined;}),array.length);while(true){if(firstConstraint===array.length)return array;var oldFirstConstraint=firstConstraint;for(var c=firstConstraint;c<array.length;++c){var applied=fluid.honourConstraint(array,firstConstraint,c);if(applied)++firstConstraint;}if(firstConstraint===oldFirstConstraint){var holders=array.slice(firstConstraint);fluid.fail("Could not find targets for any constraints in "+holders[0].priority.site+" ",holders,": none of the targets ("+fluid.getMembers(holders,"priority.constraint.target").join(", ")+") matched any namespaces of the elements in (",array.slice(0,firstConstraint),") - this is caused by either an invalid or circular reference");}}};fluid.parsePriorityRecords=function(records,name){var array=fluid.hashToArray(records,"namespace",(function(newElement,oldElement){$.extend(newElement,oldElement);newElement.priority=fluid.parsePriority(oldElement.priority,0,false,name);}));fluid.sortByPriority(array);return array;};fluid.event.identifyListener=function(listener,soft){if(typeof listener!=="string"&&!listener.$$fluid_guid&&!soft)listener.$$fluid_guid=fluid.allocateGuid();return listener.$$fluid_guid;};fluid.event.impersonateListener=function(origListener,newListener){fluid.event.identifyListener(origListener);newListener.$$fluid_guid=origListener.$$fluid_guid;};fluid.event.sortListeners=function(listeners){var togo=[];fluid.each(listeners,(function(oneNamespace){var headHard;for(var i=0;i<oneNamespace.length;++i){var thisListener=oneNamespace[i];if(!thisListener.softNamespace&&!headHard)headHard=thisListener;}if(headHard)togo.push(headHard);else togo=togo.concat(oneNamespace);}));return fluid.sortByPriority(togo);};fluid.event.resolveListener=function(listener){var listenerName=listener.globalName||(typeof listener==="string"?listener:null);if(listenerName){var listenerFunc=fluid.getGlobalValue(listenerName);if(!listenerFunc)fluid.fail("Unable to look up name "+listenerName+" as a global function");else listener=listenerFunc;}return listener;};fluid.nameComponent=function(that){return that?fluid.dumpComponentAndPath(that):"[unknown component]";};fluid.event.nameEvent=function(that,eventName){return eventName+" of "+fluid.nameComponent(that);};fluid.event.firer=function(){};fluid.makeEventFirer=function(options){options=options||{};var name=options.name||"<anonymous>";var that;var lazyInit=function(){that.listeners={};that.byId={};that.sortedListeners=[];that.onDestroy=null;that.addListener=function(listener,namespace,priority,softNamespace,listenerId){var record;if(that.destroyed)fluid.fail("Cannot add listener to destroyed event firer "+that.name);if(!listener)return;if(fluid.isPlainObject(listener,true)&&!fluid.isApplicable(listener)){record=listener;listener=record.listener;namespace=record.namespace;priority=record.priority;softNamespace=record.softNamespace;listenerId=record.listenerId;}if(typeof listener==="string")listener={globalName:listener};var id=listenerId||fluid.event.identifyListener(listener);namespace=namespace||id;record=$.extend(record||{},{namespace,listener,softNamespace,listenerId,priority:fluid.parsePriority(priority,that.sortedListeners.length,false,"listeners")});that.byId[id]=record;var thisListeners=that.listeners[namespace]=fluid.makeArray(that.listeners[namespace]);thisListeners[softNamespace?"push":"unshift"](record);that.sortedListeners=fluid.event.sortListeners(that.listeners);};that.addListener.apply(null,arguments);};that=Object.create(fluid.event.firer.prototype);fluid.extend(that,{eventId:fluid.allocateGuid(),name,ownerId:options.ownerId,typeName:"fluid.event.firer",destroy:function(){that.destroyed=true;fluid.each(that.onDestroy,(function(func){func();}));},addListener:function(){lazyInit.apply(null,arguments);},removeListener:function(listener){if(!that.listeners)return;var namespace,id,record;if(typeof listener==="string"){namespace=listener;record=that.listeners[namespace];if(!record){id=namespace;namespace=null;}}else{if(typeof listener==="function"){id=fluid.event.identifyListener(listener,true);if(!id)fluid.fail("Cannot remove unregistered listener function ",listener," from event "+that.name);}}var rec=that.byId[id];var softNamespace=rec&&rec.softNamespace;namespace=namespace||rec&&rec.namespace||id;delete that.byId[id];record=that.listeners[namespace];if(record){if(softNamespace)fluid.remove_if(record,(function(thisLis){return thisLis.listener.$$fluid_guid===id||thisLis.listenerId===id;}));else record.shift();if(record.length===0)delete that.listeners[namespace];}that.sortedListeners=fluid.event.sortListeners(that.listeners);},fire:function(){var listeners=that.sortedListeners;if(options.promise)that.promisePayload=arguments[0];if(!listeners||that.destroyed)return;for(var i=0;i<listeners.length;++i){var lisrec=listeners[i];if(typeof lisrec.listener!=="function")lisrec.listener=fluid.event.resolveListener(lisrec.listener);var listener=lisrec.listener;var ret=listener.apply(null,arguments);var value;if(options.preventable&&ret===false||that.destroyed)value=false;if(value!==undefined)return value;}}});if(options.promise)that.then=function(func){if("promisePayload" in that)func(that.promisePayload);else that.addListener(func);};return that;};fluid.event.addPrimitiveListener=function(holder,name,func){var existing=holder[name];if(!existing)existing=holder[name]=[];existing.push(func);};fluid.fireEvent=function(component,eventName,args){var firer=component.events&&component.events[eventName];if(firer)firer.fire.apply(null,fluid.makeArray(args));};fluid.event.addListenerToFirer=function(firer,value,namespace,wrapper){wrapper=wrapper||fluid.identity;if(fluid.isArrayable(value))for(var i=0;i<value.length;++i)fluid.event.addListenerToFirer(firer,value[i],namespace,wrapper);else if(typeof value==="function"||typeof value==="string")wrapper(firer).addListener(value,namespace);else{if(value&&typeof value==="object")wrapper(firer).addListener(value.listener,namespace||value.namespace,value.priority,value.softNamespace,value.listenerId);}}
118;fluid.event.resolveListenerRecord=function(records){return {records};};fluid.expandImmediate=function(material){fluid.fail("fluid.expandImmediate could not be loaded - please include FluidIoC.js in order to operate IoC-driven event with descriptor "+material);};fluid.mergeListeners=function(that,events,listeners){fluid.each(listeners,(function(value,key){var firer,namespace;if(fluid.isIoCReference(key)){firer=fluid.expandImmediate(key,that);if(!firer)fluid.fail("Error in listener record: key "+key+' could not be looked up to an event firer - did you miss out "events." when referring to an event firer?');}else{var keydot=key.indexOf(".");if(keydot!==-1){namespace=key.substring(keydot+1);key=key.substring(0,keydot);}if(!events[key])fluid.fail("Listener registered for event "+key+" which is not defined for this component");firer=events[key];}var record=fluid.event.resolveListenerRecord(value,that,key,namespace,true);fluid.event.addListenerToFirer(firer,record.records,namespace,record.adderWrapper);}));};fluid.eventFromRecord=function(eventSpec,eventKey,that){var isIoCEvent=eventSpec&&(typeof eventSpec!=="string"||fluid.isIoCReference(eventSpec));var event;if(isIoCEvent)if(!fluid.event.resolveEvent)fluid.fail("fluid.event.resolveEvent could not be loaded - please include FluidIoC.js in order to operate IoC-driven event with descriptor ",eventSpec);else event=fluid.event.resolveEvent(that,eventKey,eventSpec);else event=fluid.makeEventFirer({name:fluid.event.nameEvent(that,eventKey),preventable:eventSpec==="preventable",promise:eventSpec==="promise",ownerId:that.id});return event;};fluid.mergeListenerPolicy=function(target,source,key){if(typeof key!=="string")fluid.fail("Error in listeners declaration - the keys in this structure must resolve to event names - got "+key+" from ",source);var hasNamespace=!fluid.isIoCReference(key)&&key.indexOf(".")!==-1;return hasNamespace?source||target:fluid.arrayConcatPolicy(target,source);};fluid.makeMergeListenersPolicy=function(merger,modelRelay){return function(target,source){target=target||{};if(modelRelay&&(fluid.isArrayable(source)||"target" in source&&(typeof source.target==="string"||source.target.segs)))target[""]=merger(target[""],source,"");else fluid.each(source,(function(listeners,key){target[key]=merger(target[key],listeners,key);}));return target;};};fluid.validateListenersImplemented=function(that){var errors=[];fluid.each(that.events,(function(event,name){fluid.each(event.sortedListeners,(function(lisrec){if(lisrec.listener===fluid.notImplemented||lisrec.listener.globalName==="fluid.notImplemented")errors.push({name,namespace:lisrec.namespace,componentSource:fluid.model.getSimple(that.options.listeners,[name+"."+lisrec.namespace,0,"componentSource"])});}));}));return errors;};fluid.arrayConcatPolicy=function(target,source){return fluid.makeArray(target).concat(fluid.makeArray(source));};fluid.loggingEvent=fluid.makeEventFirer({name:"logging event"});fluid.addTimestampArg=function(args){var arg0=fluid.renderTimestamp(new Date())+": ";args.unshift(arg0);};fluid.loggingEvent.addListener(fluid.doBrowserLog,"log");fluid.loggingEvent.addListener(fluid.identity,"filterArgs","before:log");fluid.loggingEvent.addListener(fluid.addTimestampArg,"addTimestampArg","after:filterArgs");fluid.upgradeError=function(originError,whileMsg){var error=originError instanceof Error?originError:fluid.isPrimitive(originError)?{message:originError}:fluid.extend({},originError);error.message=error.message+whileMsg;return error;};fluid.failureEvent=fluid.makeEventFirer({name:"failure event"});fluid.failureEvent.addListener(fluid.builtinFail,"fail");fluid.failureEvent.addListener(fluid.logFailure,"log","before:fail");fluid.componentConstructor=function(){};Object.defineProperty(fluid.componentConstructor,"name",{value:"fluid.componentConstructor"});fluid.typeTag=function(type,id){var that=Object.create(fluid.componentConstructor.prototype);that.typeName=type;that.id=id||fluid.allocateGuid();return that;};var gradeTick=1;var gradeTickStore={};fluid.defaultsStore={};fluid.flattenGradeName=function(gradeName){return typeof gradeName==="string"?gradeName:JSON.stringify(gradeName);};fluid.resolveGradesImpl=function(gs,gradeNames){gradeNames=fluid.makeArray(gradeNames);for(var i=gradeNames.length-1;i>=0;--i){var gradeName=gradeNames[i];var flatGradeName=fluid.flattenGradeName(gradeName);if(gradeName&&!gs.gradeHash[flatGradeName]){var isDynamic=fluid.isReferenceOrExpander(gradeName);var options=(isDynamic?null:fluid.rawDefaults(gradeName))||{};var thisTick=gradeTickStore[gradeName]||gradeTick-1;gs.lastTick=Math.max(gs.lastTick,thisTick);gs.gradeHash[flatGradeName]=true;gs.gradeChain.push(gradeName);var oGradeNames=fluid.makeArray(options.gradeNames);for(var j=oGradeNames.length-1;j>=0;--j)fluid.resolveGradesImpl(gs,oGradeNames[j]);}}
118return gs;};fluid.resolveGradeStructure=function(defaultName,gradeNames){var gradeStruct={lastTick:0,gradeChain:[],gradeHash:{}};fluid.resolveGradesImpl(gradeStruct,[defaultName].concat(fluid.makeArray(gradeNames)));gradeStruct.gradeChain.reverse();return gradeStruct;};fluid.hasGrade=function(options,gradeName){return !options||!options.gradeNames?false:options.gradeNames.includes(gradeName);};fluid.resolveGrade=function(defaults,defaultName,gradeNames){var gradeStruct=fluid.resolveGradeStructure(defaultName,gradeNames);var mergeArgs=fluid.transform(gradeStruct.gradeChain,fluid.rawDefaults,fluid.copy);fluid.remove_if(mergeArgs,(function(options){return !options;}));var mergePolicy={};for(var i=0;i<mergeArgs.length;++i)if(mergeArgs[i]&&mergeArgs[i].mergePolicy)mergePolicy=$.extend(true,mergePolicy,mergeArgs[i].mergePolicy);mergeArgs=[mergePolicy,{}].concat(mergeArgs);var mergedDefaults=fluid.merge.apply(null,mergeArgs);mergedDefaults.gradeNames=gradeStruct.gradeChain;fluid.freezeRecursive(mergedDefaults);return {defaults:mergedDefaults,lastTick:gradeStruct.lastTick};};fluid.mergedDefaultsCache={};fluid.gradeNamesToKey=function(defaultName,gradeNames){return defaultName+"|"+gradeNames.join("|");};fluid.getMergedDefaults=function(defaultName,gradeNames){gradeNames=fluid.makeArray(gradeNames);var key=fluid.gradeNamesToKey(defaultName,gradeNames);var mergedDefaults=fluid.mergedDefaultsCache[key];if(mergedDefaults){var lastTick=0;var searchGrades=mergedDefaults.defaults.gradeNames;for(var i=0;i<searchGrades.length;++i)lastTick=Math.max(lastTick,gradeTickStore[searchGrades[i]]||0);if(lastTick>mergedDefaults.lastTick){if(fluid.passLogLevel(fluid.logLevel.TRACE))fluid.log(fluid.logLevel.TRACE,"Clearing cache for component "+defaultName+" with gradeNames ",searchGrades);mergedDefaults=null;}}if(!mergedDefaults){var defaults=fluid.rawDefaults(defaultName);if(!defaults)return defaults;mergedDefaults=fluid.mergedDefaultsCache[key]=fluid.resolveGrade(defaults,defaultName,gradeNames);}return mergedDefaults.defaults;};fluid.NO_ARGUMENTS=fluid.makeMarker("NO_ARGUMENTS");fluid.upgradePrimitiveFunc=function(rec,key){if(rec&&fluid.isPrimitive(rec)){var togo={};togo[key||(typeof rec==="string"&&rec.charAt(0)!=="{"?"funcName":"func")]=rec;togo.args=fluid.NO_ARGUMENTS;return togo;}else return rec;};fluid.annotateListeners=function(componentName,options){options.listeners=fluid.transform(options.listeners,(function(record){var togo=fluid.makeArray(record);return fluid.transform(togo,(function(onerec){onerec=fluid.upgradePrimitiveFunc(onerec,"listener");onerec.componentSource=componentName;return onerec;}));}));options.invokers=fluid.transform(options.invokers,(function(record){record=fluid.upgradePrimitiveFunc(record);if(record)record.componentSource=componentName;return record;}));};fluid.workflowCache={};fluid.workflowCacheSorted=[];fluid.resortWorkflows=function(workflowType,baseIndex){var thisCache=fluid.workflowCache[workflowType];var parsed=fluid.parsePriorityRecords(thisCache,workflowType+" workflows");parsed.forEach((function(oneParsed,index){thisCache[oneParsed.namespace].index=index+baseIndex;}));return parsed;};fluid.indexOneWorkflows=function(gradeName,workflowType,workflows,baseIndex){fluid.each(workflows,(function(oneWorkflow,workflowKey){fluid.model.setSimple(fluid.workflowCache,[workflowType,workflowKey],{workflowType,workflowName:workflowKey,priority:oneWorkflow.priority,gradeName,workflowOptions:oneWorkflow});}));return fluid.resortWorkflows(workflowType,baseIndex);};fluid.clearGradeWorkflows=function(gradeName,workflowType){var cacheForType=fluid.workflowCache[workflowType];fluid.each(cacheForType,(function(oneWorkflow,workflowKey){if(oneWorkflow.gradeName===gradeName)delete cacheForType[workflowKey];}));};fluid.indexGradeWorkflows=function(gradeName,options){fluid.clearGradeWorkflows(gradeName,"global");fluid.clearGradeWorkflows(gradeName,"local");var sortedGlobal=fluid.indexOneWorkflows(gradeName,"global",fluid.getImmediate(options,["workflows","global"]),0);var globalWorkflowCount=sortedGlobal.length;var sortedLocal=fluid.indexOneWorkflows(gradeName,"local",fluid.getImmediate(options,["workflows","local"]),globalWorkflowCount);fluid.workflowCacheSorted=sortedGlobal.concat(sortedLocal);};fluid.rawDefaults=function(componentName){var entry=fluid.defaultsStore[componentName];return entry&&entry.options;};fluid.registerRawDefaults=function(componentName,options){fluid.pushActivity("registerRawDefaults","registering defaults for grade %componentName with options %options",{componentName,options});var optionsCopy=fluid.expandCompact?fluid.expandCompact(options):fluid.copy(options);fluid.annotateListeners(componentName,optionsCopy);fluid.indexGradeWorkflows(componentName,optionsCopy);delete optionsCopy.workflows;var callerInfo=fluid.getCallerInfo&&fluid.getCallerInfo(6);fluid.freezeRecursive(optionsCopy);fluid.defaultsStore[componentName]={options:optionsCopy,callerInfo};gradeTickStore[componentName]=gradeTick++;fluid.popActivity();};fluid.doIndexDefaults=function(defaultName,defaults,index,indexSpec){var requiredGrades=fluid.makeArray(indexSpec.gradeNames);for(var i=0;i<requiredGrades.length;++i)if(!fluid.hasGrade(defaults,requiredGrades[i]))return;var indexFunc=typeof indexSpec.indexFunc==="function"?indexSpec.indexFunc:fluid.getGlobalValue(indexSpec.indexFunc);var keys=indexFunc(defaults)||[];for(var j=0;j<keys.length;++j)fluid.pushArray(index,keys[j],defaultName);};fluid.indexDefaults=function(indexName,indexSpec){var index={};for(var defaultName in fluid.defaultsStore){var defaults=fluid.getMergedDefaults(defaultName);fluid.doIndexDefaults(defaultName,defaults,index,indexSpec);}return index;};fluid.defaults=function(componentName,options){if(options===undefined)return fluid.getMergedDefaults(componentName);else{if(options&&options.options)fluid.fail("Probable error in o
118ptions structure for "+componentName+' with option named "options" - perhaps you meant to write these options at top level in fluid.defaults? - ',options);fluid.registerRawDefaults(componentName,options);var gradedDefaults=fluid.getMergedDefaults(componentName);if(!fluid.hasGrade(gradedDefaults,"fluid.function"))fluid.makeComponentCreator(componentName);}};fluid.validateCreatorGrade=function(message,componentName){var defaults=fluid.getMergedDefaults(componentName);if(!defaults||!defaults.gradeNames||defaults.gradeNames.length===0)fluid.fail(message+" type "+componentName+" which does not have any gradeNames defined");else{if(!defaults.argumentMap){var blankGrades=[];for(var i=0;i<defaults.gradeNames.length;++i){var gradeName=defaults.gradeNames[i];var rawDefaults=fluid.rawDefaults(gradeName);if(!rawDefaults)blankGrades.push(gradeName);}if(blankGrades.length===0)fluid.fail(message+" type "+componentName+" which is not derived from fluid.component");else fluid.fail("The grade hierarchy of component with type "+componentName+" is incomplete - it inherits from the following grade(s): "+blankGrades.join(", ")+" for which the grade definitions are corrupt or missing. Please check the files which might include these "+"grades and ensure they are readable and have been loaded by this instance of Infusion");}}};fluid.makeComponentCreator=function(componentName){var creator=function(){fluid.validateCreatorGrade("Cannot make component creator for",componentName);return fluid.initFreeComponent(componentName,arguments);};var existing=fluid.getGlobalValue(componentName);if(existing)$.extend(creator,existing);fluid.setGlobalValue(componentName,creator);};fluid.emptyPolicy=fluid.freezeRecursive({});fluid.derefMergePolicy=function(policy){return (policy?policy["*"]:fluid.emptyPolicy)||fluid.emptyPolicy;};fluid.compileMergePolicy=function(mergePolicy){var builtins={},defaultValues={};var togo={builtins,defaultValues};if(!mergePolicy)return togo;fluid.each(mergePolicy,(function(value,key){var parsed={},builtin=true;if(typeof value==="function")parsed.func=value;else if(typeof value==="object")parsed=value;else if(!fluid.isDefaultValueMergePolicy(value)){var split=value.split(/\s*,\s*/);for(var i=0;i<split.length;++i)parsed[split[i]]=true;}else{fluid.set(defaultValues,key,"{that}.options."+value);togo.hasDefaults=true;builtin=false;}if(builtin)fluid.set(builtins,fluid.composePath(key,"*"),parsed);}));return togo;};fluid.isDefaultValueMergePolicy=function(policy){return typeof policy==="string"&&(policy.indexOf(",")===-1&&!/replace|nomerge|noexpand/.test(policy));};fluid.mergeOneImpl=function(thisTarget,thisSource,j,sources,newPolicy,newPolicyHolder,i,segs){var togo=thisTarget;var primitiveTarget=fluid.isPrimitive(thisTarget);if(thisSource!==undefined)if(!newPolicy.func&&thisSource!==null&&fluid.isPlainObject(thisSource)&&!newPolicy.nomerge){if(primitiveTarget)togo=thisTarget=fluid.freshContainer(thisSource);}else{sources[j]=undefined;if(newPolicy.func)togo=newPolicy.func.call(null,thisTarget,thisSource,newPolicyHolder,segs,i);else togo=thisSource;}return togo;};fluid.regenerateCursor=function(source,segs,limit,sourceStrategy){for(var i=0;i<limit;++i)source=sourceStrategy(source,segs[i],i,fluid.makeArray(segs));return source;};fluid.regenerateSources=function(sources,segs,limit,sourceStrategies){var togo=[];for(var i=0;i<sources.length;++i){var thisSource=fluid.regenerateCursor(sources[i],segs,limit,sourceStrategies[i]);togo.push(thisSource);}return togo;};fluid.fetchMergeChildren=function(target,i,segs,sources,mergePolicy,options){var thisPolicy=fluid.derefMergePolicy(mergePolicy);for(var j=sources.length-1;j>=0;--j){var source=sources[j];if(source!==undefined){fluid.each(source,(function(newSource,name){var childPolicy=fluid.concreteTrundler(mergePolicy,name);if(!(name in target)||options.evaluateFully&&childPolicy===undefined&&!fluid.isPrimitive(target[name])){segs[i]=name;options.strategy(target,name,i+1,segs,sources,mergePolicy);}}));if(thisPolicy.replace)break;}}return target;};fluid.inEvaluationMarker=Object.freeze({__CURRENTLY_IN_EVALUATION__:true});fluid.strategyRecursionBailout=50;fluid.makeMergeStrategy=function(options){var strategy=function(target,name,i,segs,sources,policy){if(i>fluid.strategyRecursionBailout)fluid.fail("Overflow/circularity in options merging, current path is ",segs," at depth ",i,' - please protect components from merging using the "nomerge" merge policy');if(fluid.isPrimitive(target))return undefined;if(fluid.isTracing)fluid.tracing.pathCount.push(fluid.path(segs.slice(0,i)));var oldTarget;if(name in target||options.fullyEvaluated){oldTarget=target[name];if(!options.evaluateFully)return oldTarget;}if(sources===undefined){segs=fluid.makeArray(segs);sources=fluid.regenerateSources(options.sources,segs,i-1,options.sourceStrategies);policy=fluid.regenerateCursor(options.mergePolicy,segs,i-1,fluid.concreteTrundler);}var newPolicyHolder=fluid.concreteTrundler(policy,name);var newPolicy=fluid.derefMergePolicy(newPolicyHolder);var start,limit,mul;if(newPolicy.replace){start=1-sources.length;limit=0;mul=-1;}else{start=0;limit=sources.length-1;mul=+1;}var newSources=[];var thisTarget;for(var j=start;j<=limit;++j){var k=mul*j;var thisSource=options.sourceStrategies[k](sources[k],name,i,segs);if(thisSource!==undefined){if(!fluid.isPrimitive(thisSource))newSources[k]=thisSource;if(oldTarget===undefined)if(mul===-1){thisTarget=target[name]=thisSource;break;}else{thisTarget=fluid.mergeOneImpl(thisTarget,thisSource,j,newSources,newPolicy,newPolicyHolder,i,segs,options);target[name]=thisTarget;}}}
118if(oldTarget!==undefined)thisTarget=oldTarget;if(newSources.length>0)if(fluid.isPlainObject(thisTarget))fluid.fetchMergeChildren(thisTarget,i,segs,newSources,newPolicyHolder,options);return thisTarget;};options.strategy=strategy;return strategy;};fluid.driveStrategy=function(root,pathSegs,strategy){pathSegs=fluid.makeArray(pathSegs);for(var i=0;i<pathSegs.length;++i){if(!root)return undefined;root=strategy(root,pathSegs[i],i+1,pathSegs);}return root;};fluid.concreteTrundler=function(source,seg){return !source?undefined:source[seg];};fluid.merge=function(policy,...sources){var compiled=fluid.compileMergePolicy(policy).builtins;var options=fluid.makeMergeOptions(compiled,sources,{});options.initter();return options.target;};fluid.makeMergeOptions=function(policy,sources,userOptions){var options={mergePolicy:policy,sources};options=$.extend(options,userOptions);options.target=options.target||fluid.freshContainer(options.sources[0]);options.sourceStrategies=options.sourceStrategies||fluid.generate(options.sources.length,fluid.concreteTrundler);options.initter=function(){options.evaluateFully=true;fluid.fetchMergeChildren(options.target,0,[],options.sources,options.mergePolicy,options);options.fullyEvaluated=true;};fluid.makeMergeStrategy(options);return options;};fluid.transformOptions=function(options,transRec){fluid.expect("Options transformation record",transRec,["transformer","config"]);var transFunc=fluid.getGlobalValue(transRec.transformer);return transFunc.call(null,options,transRec.config);};fluid.findMergeBlocks=function(mergeBlocks,recordType){return fluid.remove_if(fluid.makeArray(mergeBlocks),(function(block){return block.recordType!==recordType;}));};fluid.transformOptionsBlocks=function(mergeBlocks,transformOptions,recordTypes){fluid.each(recordTypes,(function(recordType){var blocks=fluid.findMergeBlocks(mergeBlocks,recordType);fluid.each(blocks,(function(block){var source=block.source?"source":"target";block[block.simple||source==="target"?"target":"source"]=fluid.transformOptions(block[source],transformOptions);}));}));};fluid.dedupeDistributionNamespaces=function(mergeBlocks){var byNamespace={};fluid.remove_if(mergeBlocks,(function(mergeBlock){var ns=mergeBlock.namespace;if(ns)if(byNamespace[ns]&&byNamespace[ns]!==mergeBlock.contextThat.id)return true;else byNamespace[ns]=mergeBlock.contextThat.id;}));};fluid.mergeRecordTypes={defaults:1e3,defaultValueMerge:900,lensedComponents:800,subcomponentRecord:700,user:600,distribution:100};fluid.model.applyChangeRequest=function(model,request){var segs=request.segs;if(segs.length===0)if(request.type==="ADD")$.extend(true,model,request.value);else fluid.clear(model);else if(request.type==="ADD")fluid.model.setSimple(model,request.segs,request.value);else{for(var i=0;i<segs.length-1;++i){model=model[segs[i]];if(!model)return;}var last=fluid.peek(segs);delete model[last];}};fluid.destroyValue=function(target,segs){if(target)fluid.model.applyChangeRequest(target,{type:"DELETE",segs});};fluid.mergeComponentOptions=function(that,potentia,lightMerge){fluid.validateCreatorGrade("Cannot construct component of",lightMerge.type);var sharedMergePolicy={};var mergeBlocks=fluid.expandComponentOptions(sharedMergePolicy,potentia,lightMerge,that);var options={};var sourceStrategies=[],sources=[];var baseMergeOptions={target:options,sourceStrategies};var updateBlocks=function(){fluid.each(mergeBlocks,(function(block){if(fluid.isPrimitive(block.priority))block.priority=fluid.parsePriority(block.priority,0,false,block.recordType);}));fluid.sortByPriority(mergeBlocks);fluid.dedupeDistributionNamespaces(mergeBlocks);sourceStrategies.length=0;sources.length=0;fluid.each(mergeBlocks,(function(block){sourceStrategies.push(block.strategy);sources.push(block.target);}));};updateBlocks();var mergeOptions=fluid.makeMergeOptions(sharedMergePolicy,sources,baseMergeOptions);mergeOptions.mergeBlocks=mergeBlocks;mergeOptions.updateBlocks=updateBlocks;mergeOptions.destroyValue=function(segs){for(var i=0;i<mergeBlocks.length;++i)if(!mergeBlocks[i].immutableTarget)fluid.destroyValue(mergeBlocks[i].target,segs);fluid.destroyValue(baseMergeOptions.target,segs);};var compiledPolicy;var mergePolicy;function computeMergePolicy(){mergePolicy=fluid.driveStrategy(options,"mergePolicy",mergeOptions.strategy);mergePolicy=$.extend({},fluid.rootMergePolicy,mergePolicy);compiledPolicy=fluid.compileMergePolicy(mergePolicy);$.extend(true,sharedMergePolicy,compiledPolicy.builtins);}computeMergePolicy();mergeOptions.computeMergePolicy=computeMergePolicy;if(compiledPolicy.hasDefaults){mergeBlocks.push(fluid.generateExpandBlock({options:compiledPolicy.defaultValues,recordType:"defaultValueMerge",priority:fluid.mergeRecordTypes.defaultValueMerge},that,{}));updateBlocks();}that.options=options;fluid.driveStrategy(options,"gradeNames",mergeOptions.strategy);fluid.deliverOptionsStrategy(that,options,mergeOptions);
118fluid.computeComponentAccessor(that,potentia.localRecord);var transformOptions=fluid.driveStrategy(options,"transformOptions",mergeOptions.strategy);if(transformOptions){fluid.transformOptionsBlocks(mergeBlocks,transformOptions,["user","subcomponentRecord"]);updateBlocks();}if(!baseMergeOptions.target.mergePolicy)computeMergePolicy();return mergeOptions;};fluid.defaults("fluid.function",{});fluid.invokeGradedFunction=function(name,spec){var defaults=fluid.defaults(name);if(!defaults||!defaults.argumentMap||!fluid.hasGrade(defaults,"fluid.function"))fluid.fail("Cannot look up name "+name+" to a function with registered argumentMap - got defaults ",defaults);var args=[];fluid.each(defaults.argumentMap,(function(value,key){args[value]=spec[key];}));return fluid.invokeGlobalFunction(name,args);};fluid.noNamespaceDistributionPrefix="no-namespace-distribution-";fluid.mergeOneDistribution=function(target,source,key){var namespace=source.namespace||key||fluid.noNamespaceDistributionPrefix+fluid.allocateGuid();source.namespace=namespace;target[namespace]=$.extend(true,{},target[namespace],source);};fluid.distributeOptionsPolicy=function(target,source){target=target||{};if(fluid.isArrayable(source))for(var i=0;i<source.length;++i)fluid.mergeOneDistribution(target,source[i]);else if(typeof source.target==="string")fluid.mergeOneDistribution(target,source);else fluid.each(source,(function(oneSource,key){fluid.mergeOneDistribution(target,oneSource,key);}));return target;};fluid.mergingArray=function(){};fluid.mergingArray.prototype=[];fluid.deferringMergePolicy=function(target,source,mergePolicyHolder){target=target||{};fluid.each(source,(function(oneSource,key){if(!target[key])target[key]=new fluid.mergingArray();if(fluid.derefMergePolicy(mergePolicyHolder[key]).replace&&oneSource!==undefined)target[key].length=0;if(oneSource instanceof fluid.mergingArray)target[key].push.apply(target[key],oneSource);else{if(oneSource!==undefined)target[key].push(oneSource);}}));return target;};fluid.invokerStrategies=fluid.arrayToHash(["func","funcName","listener","this","method","changePath","value"]);fluid.invokersMergePolicy=function(target,source){target=target||{};fluid.each(source,(function(oneInvoker,name){if(!oneInvoker){target[name]=oneInvoker;return;}else oneInvoker=fluid.upgradePrimitiveFunc(oneInvoker);var oneT=target[name];if(!oneT)oneT=target[name]={};for(var key in fluid.invokerStrategies)if(key in oneInvoker)for(var key2 in fluid.invokerStrategies)oneT[key2]=undefined;$.extend(oneT,oneInvoker);}));return target;};fluid.rootMergePolicy=fluid.freezeRecursive({gradeNames:fluid.arrayConcatPolicy,distributeOptions:fluid.distributeOptionsPolicy,members:{noexpand:true,func:fluid.deferringMergePolicy},invokers:{noexpand:true,func:fluid.invokersMergePolicy},components:{noexpand:true,func:fluid.deferringMergePolicy},dynamicComponents:{noexpand:true,func:fluid.deferringMergePolicy},transformOptions:"replace",listeners:fluid.makeMergeListenersPolicy(fluid.mergeListenerPolicy)});fluid.defaults("fluid.component",{mergePolicy:fluid.rootMergePolicy,argumentMap:{options:0},workflows:{local:{concludeComponentObservation:{funcName:"fluid.concludeComponentObservation",priority:"first"},concludeComponentInit:{funcName:"fluid.concludeComponentInit",waitIO:true,priority:"last"}}},events:{onCreate:"promise",onDestroy:"promise",afterDestroy:"promise"}});fluid.computeNickName=function(typeName){var segs=fluid.model.parseEL(typeName);return fluid.peek(segs);};fluid.isDestroyed=function(that,strict){return that.lifecycleStatus==="destroyed"||!strict&&that.lifecycleStatus==="destroying";};fluid.computeGlobalMemberName=function(type,id){var nickName=fluid.computeNickName(type);return nickName+"-"+id;};fluid.adaptTransactionFailure=function(transRec){var returned=false;transRec.promise.then(null,(function(e){if(!returned)throw e;else{if(transRec.promise.onReject.length===0)fluid.fireUnhandledRejection(transRec.promise,e);}}));returned=true;};fluid.initFreeComponent=function(type,initArgs){var id=fluid.allocateGuid();var path=[fluid.computeGlobalMemberName(type,id)];var userRecord={recordType:"user",type};var upDefaults=fluid.defaults(type);var argMap=fluid.defaults(upDefaults.argumentMap.container!==undefined?"fluid.viewComponent":"fluid.component").argumentMap;fluid.each(argMap,(function(index,name){var arg=initArgs[index];userRecord[name]=name==="options"?fluid.expandCompact(arg,true):arg;}));var potentia={type:"create",path,componentId:id,records:[userRecord]};var transRec=fluid.registerPotentia(potentia);var shadow=fluid.commitPotentiae(transRec.transactionId);fluid.adaptTransactionFailure(transRec);return shadow&&shadow.that;};var charStart="(?:[\\w\\u00c0-\\uFFFF*_-";fluid.simpleCSSMatcher={regexp:new RegExp("([#.]?)("+charStart+"]|\\\\.)+)","g"),charToTag:{"":"tag","#":"id",".":"clazz"}};fluid.IoCSSMatcher={regexp:new RegExp("([&#]?)("+charStart+"]|\\.|\\/)+)","g"),charToTag:{"":"context","&":"context","#":"id"}};var childSeg=new RegExp("\\s*(>)?\\s*","g");
118fluid.parseSelector=function(selstring,strategy){var togo=[];selstring=selstring.trim();var regexp=strategy.regexp;regexp.lastIndex=0;var lastIndex=0;while(true){var atNode=[];var first=true;while(true){var segMatch=regexp.exec(selstring);if(!segMatch)break;if(segMatch.index!==lastIndex)if(first)fluid.fail("Error in selector string - cannot match child selector expression starting at "+selstring.substring(lastIndex));else break;var thisNode={};var text=segMatch[2];var targetTag=strategy.charToTag[segMatch[1]];if(targetTag)thisNode[targetTag]=text;atNode[atNode.length]=thisNode;lastIndex=regexp.lastIndex;first=false;}childSeg.lastIndex=lastIndex;var fullAtNode={predList:atNode};var childMatch=childSeg.exec(selstring);if(!childMatch||childMatch.index!==lastIndex)fluid.fail("Error in selector string - can not match child selector expression at "+selstring.substring(lastIndex));if(childMatch[1]===">")fullAtNode.child=true;togo[togo.length]=fullAtNode;if(childSeg.lastIndex>=selstring.length)break;lastIndex=childSeg.lastIndex;regexp.lastIndex=childSeg.lastIndex;}return togo;};fluid.flattenObjectPaths=function(originalObject){var flattenedObject={};fluid.each(originalObject,(function(value,key){if(value!==null&&typeof value==="object"){var flattenedSubObject=fluid.flattenObjectPaths(value);fluid.each(flattenedSubObject,(function(subValue,subKey){flattenedObject[ke
118y+"."+subKey]=subValue;}));if(typeof fluid.get(value,"toString")==="function")flattenedObject[key]=value.toString();}else flattenedObject[key]=value;}));return flattenedObject;};fluid.stringTemplate=function(template,values){var flattenedValues=fluid.flattenObjectPaths(values);var keys=fluid.keys(flattenedValues);keys=keys.sort(fluid.compareStringLength());for(var i=0;i<keys.length;++i){var key=keys[i];var templatePlaceholder="%"+key;var replacementValue=flattenedValues[key];var indexOfPlaceHolder=-1;while((indexOfPlaceHolder=template.indexOf(templatePlaceholder))!==-1)template=template.slice(0,indexOfPlaceHolder)+replacementValue+template.slice(indexOfPlaceHolder+templatePlaceholder.length);}return template;};"use strict";fluid.promise=function(){var that={onResolve:[],onReject:[],onCancel:[]};that.then=function(onResolve,onReject,onCancel){fluid.promise.pushHandler(that,onResolve,"onResolve","resolve");fluid.promise.pushHandler(that,onReject,"onReject","reject");fluid.promise.pushHandler(that,onCancel,"onCancel","cancel");return that;};that.resolve=function(value){if(that.disposition){if(that.disposition!=="cancel")fluid.fail("Error: resolving promise ",that,' which has already received "'+that.disposition+'"');}else that.complete("resolve",that.onResolve,value);return that;};that.reject=function(reason){if(that.disposition){if(that.disposition!=="cancel")fluid.fail("Error: rejecting promise ",that,'which has already received "'+that.disposition+'"');}else{if(that.onReject.length===0)fluid.armUnhandledRejection(that,reason);that.complete("reject",that.onReject,reason);}return that;};that.cancel=function(reason){if(!that.disposition)that.complete("cancel",that.onCancel,reason);};that.complete=function(which,queue,arg){that.disposition=which;that.value=arg;for(var i=0;i<queue.length;++i)queue[i](arg);delete that.onResolve;delete that.onReject;delete that.onCancel;};return that;};fluid.promise.pushHandler=function(promise,handler,eventName,disposition){if(handler)if(promise.disposition){if(promise.disposition===disposition){handler(promise.value);promise.directHandle=disposition;}}else promise[eventName].push(handler);};fluid.armUnhandledRejection=function(promise,reason){fluid.invokeLater((function(){if(promise.directHandle!=="reject")fluid.fireUnhandledRejection(promise,reason);}));};fluid.fireUnhandledRejection=function(promise,reason){fluid.unhandledRejectionEvent.fire(reason,promise);};fluid.unhandledRejectionEvent=fluid.makeEventFirer({name:"Global unhandled rejection handler"});fluid.logUnhandledRejection=function(reason){fluid.log(fluid.logLevel.WARN,"Unhandled promise rejection: ",reason);};fluid.unhandledRejectionEvent.addListener(fluid.logUnhandledRejection,"log");fluid.isPromise=function(totest){return totest&&typeof totest.then==="function";};fluid.toPromise=function(promiseOrValue){if(fluid.isPromise(promiseOrValue))return promiseOrValue;else{var togo=fluid.promise();togo.resolve(promiseOrValue);return togo;}};fluid.promise.follow=function(source,target){source.then(target.resolve,target.reject);target.then(null,null,source.cancel);};fluid.promise.map=function(source,func){var promise=fluid.toPromise(source);var togo=fluid.promise();promise.then((function(value){var mapped=func(value);if(fluid.isPromise(mapped))fluid.promise.follow(mapped,togo);else togo.resolve(mapped);}),(function(error){togo.reject(error);}));return togo;};fluid.promise.makeSequencer=function(sources,options,strategy){if(!fluid.isArrayable(sources))fluid.fail("fluid.promise sequence algorithms must be supplied an array as source");var sequencer={sources,resolvedSources:[],index:0,strategy,options,returns:[],sequenceStarted:false,sequenceCancelled:false,promise:fluid.promise()};sequencer.promise.then(null,null,(function(){fluid.promise.cancelSequencer(sequencer);}));sequencer.promise.sequencer=sequencer;return sequencer;};fluid.promise.cancelSequencer=function(sequencer){sequencer.sequenceCancelled=true;sequencer.resolvedSources.forEach((function(source){if(fluid.isPromise(source))source.cancel();}));};fluid.promise.progressSequence=function(that,retValue){that.returns.push(retValue);that.index++;fluid.promise.resumeSequence(that);};fluid.promise.processSequenceReject=function(that,error){for(var i=that.index-1;i>=0;--i){var resolved=that.resolvedSources[i];var accumulator=fluid.isPromise(resolved)&&typeof resolved.accumulateRejectionReason==="function"?resolved.accumulateRejectionReason:fluid.identity;error=accumulator(error);}that.promise.reject(error);};fluid.promise.resumeSequence=function(that){that.sequenceStarted=true;if(that.sequenceCancelled)return;else if(that.index===that.sources.length)that.promise.resolve(that.strategy.resolveResult(that));else{var value=that.strategy.invokeNext(that);that.resolvedSources[that.index]=value;if(fluid.isPromise(value))value.then((function(retValue){fluid.promise.progressSequence(that,retValue);}),(function(error){fluid.promise.processSequenceReject(that,error);}));else fluid.promise.progressSequence(that,value);}};fluid.promise.makeSequenceStrategy=function(){return {invokeNext:function(that){var source=that.sources[that.index];return typeof source==="function"?source(that.options):source;},resolveResult:function(that){return that.returns;}};};fluid.promise.sequence=function(sources,options){var sequencer=fluid.promise.makeSequencer(sources,options,fluid.promise.makeSequenceStrategy());fluid.promise.resumeSequence(sequencer);return sequencer.promise;};fluid.promise.makeTransformerStrategy=function(){return {invokeNext:function(that){var lisrec=that.sources[that.index];lisrec.listener=fluid.event.resolveListener(lisrec.listener);var value=lisrec.listener.apply(null,[that.returns[that.index],that.options]);return value;},resolveResult:function(that){return that.returns[that.index];}};};fluid.promise.makeTransformer=function(listeners,payload,options){listeners.unshift({listener:function(){return payload;}});var sequencer=fluid.promise.makeSequencer(listeners,options,fluid.promise.makeTransformerStrategy());sequencer.returns.push(null);return sequencer;};fluid.promise.filterNamespaces=function(listeners,namespaces){if(!namespaces)return listeners;return fluid.remove_if(fluid.makeArray(listeners),(function(element){return element.namespace&&!element.softNamespace&&!namespaces.includes(element.namespace);}));};fluid.promise.fireTransformEvent=function(event,payload,options){options=options||{};var listeners=options.reverse?fluid.makeArray(event.sortedListeners).reverse():fluid.makeArray(event.sortedListeners);listeners=fluid.promise.filterNamespaces(listeners,options.filterNamespaces);var sequencer=fluid.promise.makeTransformer(listeners,payload,options);var canceller=sequencer.promise.cancel;var remover=function(){fluid.remove_if(event.onDestroy,(function(func){return func===canceller;}));};fluid.event.addPrimitiveListener(event,"onDestroy",canceller);sequencer.promise.then(remover,remover,remover);fluid.promise.resumeSequence(sequencer);return sequencer.promise;};"use strict";fluid.defaults("fluid.dataSource.encoding.JSON",{gradeNames:"fluid.component",invokers:{parse:"fluid.dataSource.parseJSON",render:"fluid.dataSource.stringifyJSON"},contentType:"application/json"});fluid.defaults("fluid.dataSource.encoding.none",{gradeNames:"fluid.component",invokers:{parse:"fluid.identity",render:"fluid.identity"},contentType:"text/plain"});fluid.dataSource.parseJSON=function(string){var togo=fluid.promise();if(!string)togo.resolve(undefined);else try{togo.resolve(JSON.parse(string));}catch(err){togo.reject(err);}return togo;};fluid.dataSource.stringifyJSON=function(obj){return obj===undefined?"":JSON.stringify(obj,null,4);};fluid.defaults("fluid.dataSource",{gradeNames:["fluid.component","fluid.contextAware"],contextAwareness:{writable:{checks:{writableValue:{contextValue:"{fluid.dataSource}.options.writable",gradeNames:"{fluid.dataSource}.options.writableGrade"}}}},writable:false,events:{onRead:null,onError:null},components:{encoding:{type:"fluid.dataSource.encoding.JSON"}},listeners:{"onRead.impl":{func:"fluid.notImplemented",priority:"first"},"onRead.encoding":{func:"{encoding}.parse",priority:"after:impl"}},invokers:{get:{funcName:"fluid.dataSource.get",args:["{that}","{arguments}.0","{arguments}.1"]}}});fluid.defaults("fluid.dataSource.writable",{gradeNames:["fluid.component"],events:{onWrite:null,onWriteResponse:null},listeners:{"onWrite.encoding":{func:"{encoding}.render"},"onWrite.impl":{func:"fluid.notImplemented",priority:"after:encoding"},"onWriteResponse.encoding":{func:"{encoding}.parse"}},invokers:{set:{funcName:"fluid.dataSource.set",args:["{that}","{arguments}.0","{arguments}.1","{arguments}.2"]}}});fluid.dataSource.registerStandardPromiseHandlers=function(that,promise,requestOptions){promise.then(requestOptions.callback,requestOptions.onError?requestOptions.onError:that.events.onError.fire);};fluid.dataSource.defaultiseOptions=function(componentOptions,directOptions,directModel,isSet){var options=typeof directOptions==="function"?{callback:directOptions}:fluid.copy(directOptions)||{};options.directModel=directModel;options.operation=isSet?"set":"get";options.notFoundIsEmpty=options.notFoundIsEmpty||componentOptions.notFoundIsEmpty;return options;};fluid.dataSource.get=function(that,directModel,directOptions){var requestOptions=fluid.dataSource.defaultiseOptions(that.options,directOptions,directModel);var promise=fluid.promise.fireTransformEvent(that.events.onRead,undefined,requestOptions);fluid.dataSource.registerStandardPromiseHandlers(that,promise,requestOptions);return promise;};fluid.dataSource.set=function(that,directModel,model,directOptions){var requestOptions=fluid.dataSource.defaultiseOptions(that.options,directOptions,directModel,true);var transformPromise=fluid.promise.fireTransformEvent(that.events.onWrite,model,requestOptions);var togo=fluid.promise();transformPromise.then((function(setResponse){var options2=fluid.dataSource.defaultiseOptions(that.options,fluid.copy(requestOptions),directModel);var retransformed=fluid.promise.fireTransformEvent(that.events.onWriteResponse,setResponse,options2);fluid.promise.follow(retransformed,togo);}),(function(error){togo.reject(error);}));fluid.dataSource.registerStandardPromiseHandlers(that,togo,requestOptions);return togo;};fluid.defaults("fluid.dataSource.URL",{gradeNames:["fluid.dataSource"],writableGrade:"fluid.dataSource.URL.writable",invokers:{resolveUrl:"fluid.dataSource.URL.resolveUrl",handleHttp:"fluid.dataSource.URL.handleHttp"},listeners:{"onRead.impl":{funcName:"fluid.dataSource.URL.handle",args:["{that}","{that}.options.permittedRequestOptions","{arguments}.0","{arguments}.1"]}},permittedRequestOptions:"fluid.dataSource.URL.requestOptions",components:{cookieJar:"{cookieJar}"},termMap:{}});fluid.defaults("fluid.dataSource.URL.writable",{gradeNames:["fluid.dataSource.writable"],listeners:{"onWrite.impl":{funcName:"fluid.dataSource.URL.handle",args:["{that}","{that}.options.permittedRequestOptions","{arguments}.0","{arguments}.1"]}}});fluid.dataSource.URL.resolveUrl=function(url,termMap,directModel,noencode){var map=fluid.transform(termMap,(function resolve(entry){entry=String(entry);var encode=!noencode;if(entry.indexOf("noencode:")===0){encode=false;entry=entry.substring("noencode:".length);}var value=entry.charAt(0)==="%"?fluid.get(directModel,entry.substring(1)):entry;if(encode)value=encodeURIComponent(value);return value;}));var replaced=fluid.stringTemplate(url,map);return replaced;};fluid.dataSource.URL.urlFields=fluid.freezeRecursive(["protocol","username","password","hostname","port","pathname","search"]);fluid.dataSource.URL.condenseUrl=function(requestOptions){var togo=new fluid.resourceLoader.UrlClass("http://localhost/");fluid.dataSource.URL.urlFields.forEach((function(field){if(requestOptions[field])togo[field]=requestOptions[field];}));return togo;};fluid.dataSource.URL.requestOptions=fluid.dataSource.URL.urlFields.concat(["url","method","headers","termMap"]);fluid.dataSource.URL.prepareRequestOptions=function(componentOptions,cookieJar,userOptions,permittedOptions,directModel,userStaticOptions){var staticOptions=fluid.filterKeys(componentOptions,permittedOptions);var requestOptions=fluid.extend(true,{headers:{}},userStaticOptions,staticOptions,userOptions);if(fluid.contextAware.isNode())if(requestOptions.hostname==="localhost")requestOptions.hostname="127.0.0.1";requestOptions.writeMethod=requestOptions.writeMethod||componentOptions.writeMethod||"PUT";requestOptions.pathname=fluid.dataSource.URL.resolveUrl(requestOptions.pathname,requestOptions.termMap,directModel);if(cookieJar&&cookieJar.cookie&&componentOptions.storeCookies)requestOptions.headers.Cookie=cookieJar.cookie;return requestOptions;};fluid.dataSource.URL.parse=function(url,permittedOptions){var parsed=fluid.filterKeys(new fluid.resourceLoader.UrlClass(url,typeof window!=="undefined"&&window.location||undefined),fluid.dataSource.URL.urlFields);permittedOptions.forEach((function(oneOption){if(!parsed[oneOption])delete parsed[oneOption];}));return parsed;};fluid.dataSource.URL.isErrorStatus=function(statusCode){return statusCode<200||statusCode>=300;};fluid.dataSource.URL.handle=function(that,permittedRequestOptions,model,userOptions){var permittedOptions=fluid.getGlobalValue(permittedRequestOptions);permittedOptions.forEach((function(oneOption){fluid.getForComponent(that,["options",oneOption]);}));var directModel=userOptions.directModel;var url=that.resolveUrl(that.options.url,that.options.termMap,directModel);var parsed=fluid.dataSource.URL.parse(url,permittedOptions);var finalRequestOptions=fluid.dataSource.URL.prepareRequestOptions(that.options,that.cookieJar,userOptions,permittedOptions,directModel,parsed);return that.handleHttp(that,finalRequestOptions,model);};fluid.extractHtmlError=function(received){var matches=/<pre>(.*)<\/pre>/gm.exec(received);return matches?matches[1]:received;};fluid.dataSource.URL.relayError=function(statusCode,received,whileMsg){var rejectPayload;try{rejectPayload=JSON.parse(received);}catch(e){var message=typeof received==="string"&&received.indexOf("<html")!==-1?fluid.extractHtmlError(received):received;rejectPayload={message};}rejectPayload.message=rejectPayload.message||rejectPayload.error;delete rejectPayload.error;rejectPayload.isError=true;rejectPayload.statusCode=statusCode;return fluid.upgradeError(rejectPayload,whileMsg);};"use strict";var fluid=fluid||{};fluid.uaMatch=function(ua){ua=ua.toLowerCase();var match=/(chrome)[ \/]([\w.]+)/.exec(ua)||/(webkit)[ \/]([\w.]+)/.exec(ua)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua)||/(msie) ([\w.]+)/.exec(ua)||ua.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua)||[];return {browser:match[1]||"",version:match[2]||"0"};};fluid.assignJQueryBrowser=function($){if(!$.browser){var matched=fluid.uaMatch(navigator.userAgent);var browser={};if(matched.browser){browser[matched.browser]=true;browser.version=matched.version;}if(browser.chrome)browser.webkit=true;else{if(browser.webkit)browser.safari=true;}$.browser=browser;}};fluid.assignJQueryBrowser(jQuery);fluid.getScopedData=function(target,key){var data=$(target).data("fluid-scoped-data");return data?data[key]:undefined;};fluid.setScopedData=function(target,key,value){$(target).each((function(){var data=$.data(this,"fluid-scoped-data")||{};data[key]=value;$.data(this,"fluid-scoped-data",data);}));};fluid.lastFocusedElement=null;$(document).on("focusin",(function(event){fluid.lastFocusedElement=event.target;}));fluid.enabled=function(target,state){target=$(target);if(state===undefined)return fluid.getScopedData(target,"enablement")!==false;else{$("*",target).add(target).each((function(){if(fluid.getScopedData(this,"enablement")!==undefined)fluid.setScopedData(this,"enablement",state);else{if(/select|textarea|input/i.test(this.nodeName))$(this).prop("disabled",!state);}}));fluid.setScopedData(target,"enablement",state);}};fluid.initEnablement=function(target){fluid.setScopedData(target,"enablement",true);};fluid.resolveEventTarget=function(event){while(event.originalEvent&&event.originalEvent.target)event=event.originalEvent;return event.target;};async function applyOp(node,func){node=$(node)[0];if(node){var promise=new Promise((function(resolve){node.addEventListener(func,resolve,{once:true});}));node[func]();return promise;}}$.each(["focus","blur"],(function(i,na
118me){fluid[name]=function(elem){return applyOp(elem,name);};}));"use strict";fluid.dom=fluid.dom||{};fluid.dom.getNextNode=function(iterator){if(iterator.node.firstChild){iterator.node=iterator.node.firstChild;iterator.depth+=1;return iterator;}while(iterator.node){if(iterator.node.nextSibling){iterator.node=iterator.node.nextSibling;return iterator;}iterator.node=iterator.node.parentNode;iterator.depth-=1;}return iterator;};fluid.dom.iterateDom=function(node,acceptor,allNodes){var currentNode={node,depth:0};var prevNode=node;var condition;while(currentNode.node!==null&¤tNode.depth>=0&¤tNode.depth<fluid.dom.iterateDom.DOM_BAIL_DEPTH){condition=null;if(currentNode.node.nodeType===1||allNodes)condition=acceptor(currentNode.node,currentNode.depth);if(condition)if(condition==="delete"){currentNode.node.parentNode.removeChild(currentNode.node);currentNode.node=prevNode;}else{if(condition==="stop")return currentNode.node;}prevNode=currentNode.node;currentNode=fluid.dom.getNextNode(currentNode);}};fluid.dom.iterateDom.DOM_BAIL_DEPTH=256;"use strict";fluid.unUnicode=/(\\u[\dabcdef]{4}|\\x[\dabcdef]{2})/g;fluid.unescapeProperties=function(string){string=string.replace(fluid.unUnicode,(function(match){var code=match.substring(2);var parsed=parseInt(code,16);return String.fromCharCode(parsed);}));var pos=0;while(true){var backpos=string.indexOf("\\",pos);if(backpos===-1)break;if(backpos===string.length-1)return [string.substring(0,string.length-1),true];var replace=string.charAt(backpos+1);if(replace==="n")replace="\n";if(replace==="r")replace="\r";if(replace==="t")replace="\t";string=string.substring(0,backpos)+replace+string.substring(backpos+2);pos=backpos+1;}return [string,false];};fluid.breakPos=/[^\\][\s:=]/;fluid.parseJavaProperties=function(text){var togo={};text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");var lines=text.split("\n");var contin,key,valueComp,valueRaw,valueEsc;for(var i=0;i<lines.length;++i){var line=lines[i].trim();if(!line||line.charAt(0)==="#"||line.charAt(0)==="!")continue;if(!contin){valueComp="";var breakpos=line.search(fluid.breakPos);if(breakpos===-1){key=line;valueRaw="";}else{key=line.substring(0,breakpos+1).trim();valueRaw=line.substring(breakpos+2).trim();if(valueRaw.charAt(0)===":"||valueRaw.charAt(0)==="=")valueRaw=valueRaw.substring(1).trim();}key=fluid.unescapeProperties(key)[0];valueEsc=fluid.unescapeProperties(valueRaw);}else valueEsc=fluid.unescapeProperties(line);contin=valueEsc[1];if(!valueEsc[1])togo[key]=valueComp+valueEsc[0];else valueComp+=valueEsc[0];}return togo;};fluid.formatMessage=function(messageString,args){if(!args)return messageString;
118if(typeof args==="string")args=[args];for(var i=0;i<args.length;++i)messageString=messageString.replace("{"+i+"}",args[i]);return messageString;};"use strict";fluid.renderTimestamp=function(date){var zeropad=function(num,width){if(!width)width=2;var numstr=num===undefined?"":num.toString();return "00000".substring(5-width+numstr.length)+numstr;};return zeropad(date.getHours())+":"+zeropad(date.getMinutes())+":"+zeropad(date.getSeconds())+"."+zeropad(date.getMilliseconds(),3);};fluid.isTracing=false;fluid.registerNamespace("fluid.tracing");fluid.tracing.pathCount=[];fluid.tracing.summarisePathCount=function(pathCount){pathCount=pathCount||fluid.tracing.pathCount;var togo={};for(var i=0;i<pathCount.length;++i){var path=pathCount[i];if(!togo[path])togo[path]=1;else ++togo[path];}var toReallyGo=[];fluid.each(togo,(function(el,path){toReallyGo.push({path,count:el});}));toReallyGo.sort((function(a,b){return b.count-a.count;}));return toReallyGo;};fluid.tracing.condensePathCount=function(prefixes,pathCount){prefixes=fluid.makeArray(prefixes);var prefixCount={};fluid.each(prefixes,(function(prefix){prefixCount[prefix]=0;}));var togo=[];fluid.each(pathCount,(function(el){var path=el.path;if(!fluid.find(prefixes,(function(prefix){if(path.indexOf(prefix)===0){prefixCount[prefix]+=el.count;return true;}})))togo.push(el);}));fluid.each(prefixCount,(function(count,path){togo.unshift({path,count});}));return togo;};fluid.obtainException=function(){return new Error("Trace exception");};fluid.registerNamespace("fluid.exceptionDecoders");fluid.decodeStack=function(){var e=fluid.obtainException();return fluid.exceptionDecoders.standard(e);};fluid.exceptionDecoders.standard=function(e){var delimiter="at ";var lines=e.stack.replace(/(?:\n@:0)?\s+$/m,"").replace(/^\(/gm,"{anonymous}(").split("\n");return fluid.transform(lines,(function(line){line=line.replace(/\)/g,"");var atind=line.indexOf(delimiter);return atind===-1?[line]:[line.substring(atind+delimiter.length),line.substring(0,atind)];}));};fluid.getCallerInfo=function(atDepth){atDepth=atDepth||3;var stack=fluid.decodeStack();var element=stack&&stack[atDepth]&&stack[atDepth][0];if(element){var lastslash=element.lastIndexOf("/");if(lastslash===-1)lastslash=0;var nextColon=element.indexOf(":",lastslash);return {path:element.substring(0,lastslash),filename:element.substring(lastslash+1,nextColon),index:element.substring(nextColon+1)};}else return null;};fluid.generatePadding=function(c,count){var togo="";for(var i=0;i<count;++i)togo+=c;return togo;};fluid.SYNTHETIC_PROPERTY=Object.freeze({});fluid.getSafeProperty=function(obj,key){var desc=Object.getOwnPropertyDescriptor(obj,key);return desc&&!desc.get?obj[key]:fluid.SYNTHETIC_PROPERTY;};fluid.prettyPrintJSONImpl=function(obj,small,options){function out(str){options.output+=str;}var big=small+options.indentChars,isFunction=typeof obj==="function";if(options.maxRenderChars!==undefined&&options.output.length>options.maxRenderChars)return true;if(obj===null)out("null");else if(obj===undefined)out("undefined");else if(obj===fluid.SYNTHETIC_PROPERTY)out("[Synthetic property]");else if(fluid.isPrimitive(obj)&&!isFunction)out(JSON.stringify(obj));else{if(options.stack.indexOf(obj)!==-1){out("(CIRCULAR)");return;}options.stack.push(obj);var i;if(fluid.isArrayable(obj))if(obj.length===0)out("[]");else{out("[\n"+big);for(i=0;i<obj.length;++i){if(fluid.prettyPrintJSONImpl(obj[i],big,options))return true;if(i!==obj.length-1)out(",\n"+big);}out("\n"+small+"]");}else{out("{"+(isFunction?" Function":"")+"\n"+big);var keys=fluid.keys(obj);for(i=0;i<keys.length;++i){var key=keys[i];var value=fluid.getSafeProperty(obj,key);out(JSON.stringify(key)+": ");if(fluid.prettyPrintJSONImpl(value,big,options))return true;if(i!==keys.length-1)out(",\n"+big);}out("\n"+small+"}");}options.stack.pop();}return;};fluid.prettyPrintJSON=function(obj,options){options=$.extend({indent:4,stack:[],output:""},options);options.indentChars=fluid.generatePadding(" ",options.indent);fluid.prettyPrintJSONImpl(obj,"",options);return options.output;};fluid.dumpEl=function(element){var togo;if(!element)return "null";if(element.nodeType===3||element.nodeType===8)return "[data: "+element.data+"]";if(element.nodeType===9)return "[document: location "+element.location+"]";if(!element.nodeType&&fluid.isArrayable(element)){togo="[";for(var i=0;i<element.length;++i){togo+=fluid.dumpEl(element[i]);if(i<element.length-1)togo+=", ";}return togo+"]";}element=$(element);togo=element.get(0).tagName;
118if(element.id)togo+="#"+element.id;if(element.attr("class"))togo+="."+element.attr("class");return togo;};fluid["debugger"]=function(){debugger;};fluid.defaults("fluid.debuggingProbe",{gradeNames:["fluid.component"]});fluid.probeToDistribution=function(probe){var instantiator=fluid.globalInstantiator;var parsed=fluid.parseContextReference(probe.target);var segs=fluid.model.parseToSegments(parsed.path,instantiator.parseEL,true);if(segs[0]!=="options")segs.unshift("options");var parsedPriority=fluid.parsePriority(probe.priority);if(parsedPriority.constraint&&!parsedPriority.constraint.target)parsedPriority.constraint.target="authoring";return {target:"{/ "+parsed.context+"}."+instantiator.composeSegments.apply(null,segs),record:{func:probe.func,funcName:probe.funcName,args:probe.args,priority:fluid.renderPriority(parsedPriority)}};};fluid.registerProbes=function(probes){var probeDistribution=fluid.transform(probes,fluid.probeToDistribution);var memberName="fluid_debuggingProbe_"+fluid.allocateGuid();fluid.construct([memberName],{type:"fluid.debuggingProbe",distributeOptions:probeDistribution});return memberName;};fluid.deregisterProbes=function(probeName){fluid.destroy([probeName]);};"use strict";fluid.visitComponentChildren=function(that,visitor,options,segs){segs=segs||[];var shadow=fluid.shadowForComponent(that);for(var name in shadow.childComponents){var component=shadow.childComponents[name];if(options.visited&&options.visited[component.id])continue;segs.push(name);if(options.visited)options.visited[component.id]=true;if(visitor(component,name,segs,segs.length-1))return true;if(!options.flat)fluid.visitComponentChildren(component,visitor,options,segs);segs.pop();}};fluid.getContextHash=function(instantiator,that){var shadow=instantiator.idToShadow[that.id];return shadow&&shadow.contextHash;};fluid.componentHasGrade=function(that,gradeName){var contextHash=fluid.getContextHash(fluid.globalInstantiator,that);return !!(contextHash&&contextHash[gradeName]);};fluid.visitComponentsForMatching=function(that,options,visitor){var instantiator=fluid.getInstantiator(that);options=$.extend({visited:{},instantiator},options);var thatStack=[that];var contextHashes=[fluid.getContextHash(instantiator,that)];var visitorWrapper=function(component,name,segs){thatStack.length=1;contextHashes.length=1;for(var i=0;i<segs.length;++i){var child=thatStack[i][segs[i]];thatStack[i+1]=child;contextHashes[i+1]=fluid.getContextHash(instantiator,child)||{};}return visitor(component,thatStack,contextHashes,segs,segs.length);};fluid.visitComponentChildren(that,visitorWrapper,options,[]);};fluid.getMemberNames=function(instantiator,thatStack){if(thatStack.length===0)return [];else{var path=instantiator.idToPath(fluid.peek(thatStack).id);var segs=instantiator.parseEL(path);segs.unshift.apply(segs,fluid.generate(thatStack.length-segs.length,""));return segs;}};fluid.visitComponentsForVisibility=function(instantiator,thatStack,visitor,options){options=options||{visited:{},flat:true,instantiator};var memberNames=fluid.getMemberNames(instantiator,thatStack);for(var i=thatStack.length-1;i>=0;--i){var that=thatStack[i];options.visited[that.id]=true;if(visitor(that,memberNames[i],memberNames,i))return;if(fluid.visitComponentChildren(that,visitor,options,memberNames))return;memberNames.pop();}};fluid.mountStrategy=function(prefix,root,toMount){var offset=prefix.length;return function(target,name,i,segs){if(i<=prefix.length)return;for(var j=0;j<prefix.length;++j)if(segs[j]!==prefix[j])return;return toMount(target,name,i-prefix.length,segs.slice(offset));};};fluid.invokerFromRecord=function(invokerec,name,that){fluid.pushActivity("makeInvoker","beginning instantiation of invoker with name %name and record %record as child of %that",{name,record:invokerec,that});var invoker=invokerec?fluid.makeInvoker(that,invokerec,name):undefined;fluid.popActivity();return invoker;};fluid.memberFromRecord=function(memberrecs,name,that){var shadow=fluid.shadowForComponent(that);var togo;for(var i=0;i<memberrecs.length;++i){var expanded=fluid.expandImmediate(memberrecs[i],that,shadow.localRecord);if(!fluid.isPlainObject(togo))togo=expanded;else togo=$.extend(true,togo,expanded);}return togo;};fluid.resourceFromRecord=function(resourceRec,name,that){var resourceFetcher=fluid.getForComponent(that,"resourceFetcher");var resourceSpec=resourceFetcher.resourceSpecs[name];var oneFetcher=new fluid.fetchResources.FetchOne(resourceSpec,resourceFetcher);var existing=that.resources[name];if(existing&&existing!==fluid.inEvaluationMarker)return existing;else{var promise=oneFetcher.resourceSpec.promise;if(!promise.disposition){var transRec=fluid.currentTreeTransaction();transRec.pendingIO.push(promise);}return oneFetcher;}};fluid.recordStrategy=function(that,options,optionsStrategy,recordPath,recordMaker,prefix,exceptions){prefix=prefix||[];var fullyEvaluated=false;return {strategy:function(target,name,i){if(i!==1||fullyEvaluated)return;var record=fluid.driveStrategy(options,[recordPath,name],optionsStrategy);if(record===undefined)if(prefix.length>0)fluid.fail("Reference to "+recordPath+" record with name "+name+" which is not registered for component "+fluid.dumpComponentAndPath(that));else return;fluid.set(target,[name],fluid.inEvaluationMarker);var member=recordMaker(record,name,that);fluid.set(target,[name],member);return member;},initter:function(){var records=fluid.driveStrategy(options,recordPath,optionsStrategy)||{};for(var name in records)if(!exceptions||!exceptions[name])fluid.getForComponent(that,prefix.concat([name]));fullyEvaluated=true;}};};fluid.makeDistributionRecord=function(contextThat,sourceRecord,sourcePath,targetSegs,exclusions,sourceType){sourceType=sourceType||"distribution";fluid.pushActivity("makeDistributionRecord","Making distribution record from source record %sourceRecord path %sourcePath to target path %targetSegs",{sourceRecord,sourcePath,targetSegs});var source=fluid.copy(fluid.get(sourceRecord,sourcePath));fluid.each(exclusions,(function(exclusion){fluid.model.applyChangeRequest(source,{segs:exclusion,type:"DELETE"});}));var record={options:{}};fluid.model.applyChangeRequest(record,{segs:targetSegs,type:"ADD",value:source});fluid.checkComponentRecord(record,fluid.componentRecordExpected);fluid.popActivity();return $.extend(record,{contextThat,recordType:sourceType});};fluid.filterBlocks=function(contextThat,sourceBlocks,sourceSegs,targetSegs,exclusions,removeSource){var togo=[];fluid.each(sourceBlocks,(function(block){var source=fluid.get(block.source,sourceSegs);if(source!==undefined){togo.push(fluid.makeDistributionRecord(contextThat,block.source,sourceSegs,targetSegs,exclusions,"distribution"));var rescued=$.extend({},source);if(removeSource)fluid.model.applyChangeRequest(block.source,{segs:sourceSegs,type:"DELETE"});fluid.each(exclusions,(function(exclusion){var orig=fluid.get(rescued,exclusion);fluid.set(block.source,sourceSegs.concat(exclusion),orig);}));}}));return togo;};fluid.noteCollectedDistribution=function(parentShadow,memberName,distribution){fluid.model.setSimple(parentShadow,["collectedDistributions",memberName,distribution.id],true);};fluid.isCollectedDistribution=function(parentShadow,memberName,distribution){return fluid.model.getSimple(parentShadow,["collectedDistributions",memberName,distribution.id]);};fluid.clearCollectedDistributions=function(parentShadow,memberName){fluid.model.applyChangeRequest(parentShadow,{segs:["collectedDistributions",memberName],type:"DELETE"});};fluid.collectDistributions=function(distributedBlocks,parentShadow,distribution,thatStack,contextHashes,memberNames,i){var lastMember=fluid.peek(memberN
118ames);if(!fluid.isCollectedDistribution(parentShadow,lastMember,distribution)&&fluid.matchIoCSelector(distribution.selector,thatStack,contextHashes,memberNames,i)){distributedBlocks.push.apply(distributedBlocks,fluid.copy(distribution.blocks));fluid.noteCollectedDistribution(parentShadow,lastMember,distribution);}};fluid.registerCollectedClearer=function(shadow,parentShadow,memberName){if(!shadow.collectedClearer&&parentShadow)shadow.collectedClearer=function(){fluid.clearCollectedDistributions(parentShadow,memberName);};};fluid.receiveDistributions=function(parentThat,gradeNames,memberName,that){var instantiator=fluid.getInstantiator(parentThat||that);var thatStack=instantiator.getThatStack(parentThat||that);thatStack.unshift(fluid.rootComponent);var memberNames=fluid.getMemberNames(instantiator,thatStack);var shadows=fluid.transform(thatStack,(function(thisThat){return instantiator.idToShadow[thisThat.id];}));var parentShadow=shadows[shadows.length-(parentThat?1:2)];var contextHashes=fluid.getMembers(shadows,"contextHash");if(parentThat){memberNames.push(memberName);contextHashes.push(fluid.gradeNamesToHash(gradeNames));thatStack.push(that);}else fluid.registerCollectedClearer(fluid.peek(shadows),parentShadow,fluid.peek(memberNames));var distributedBlocks=[];for(var i=0;i<thatStack.length-1;++i)fluid.each(shadows[i].distributions,(function(distribution){fluid.collectDistributions(distributedBlocks,parentShadow,distribution,thatStack,contextHashes,memberNames,i);}));return distributedBlocks;};fluid.computeTreeDistance=function(path1,path2){var i=0;while(i<path1.length&&i<path2.length&&path1[i]===path2[i])++i;return path1.length+path2.length-2*i;};fluid.computeDistributionPriority=function(targetThat,distributedBlock){if(!distributedBlock.priority){var instantiator=fluid.getInstantiator(targetThat);var targetStack=instantiator.getThatStack(targetThat);var targetPath=fluid.getMemberNames(instantiator,targetStack);var sourceStack=instantiator.getThatStack(distributedBlock.contextThat);var sourcePath=fluid.getMemberNames(instantiator,sourceStack);var distance=fluid.computeTreeDistance(targetPath,sourcePath);distributedBlock.priority=fluid.mergeRecordTypes.distribution-distance;}return distributedBlock;};fluid.applyDistributions=function(that,preBlocks,targetShadow){var distributedBlocks=fluid.transform(preBlocks,(function(preBlock){return fluid.generateExpandBlock(preBlock,that,targetShadow.mergePolicy);}),(function(distributedBlock){return fluid.computeDistributionPriority(that,distributedBlock);}));var mergeOptions=targetShadow.mergeOptions;mergeOptions.mergeBlocks.push.apply(mergeOptions.mergeBlocks,distributedBlocks);mergeOptions.updateBlocks();return distributedBlocks;};fluid.matchIoCSelector=function(selector,thatStack,contextHashes,memberNames,i){var thatpos=thatStack.length-1;var selpos=selector.length-1;while(true){var isChild=selector[selpos].child;var mustMatchHere=thatpos===thatStack.length-1||isChild;var that=thatStack[thatpos];var selel=selector[selpos];var match=true;for(var j=0;j<selel.predList.length;++j){var pred=selel.predList[j];var context=pred.context;if(context&&context!=="*"&&!(contextHashes[thatpos][context]||memberNames[thatpos]===context)){match=false;break;}if(pred.id&&that.id!==pred.id){match=false;break;}}if(selpos===0&&thatpos>i&&mustMatchHere&&isChild)match=false;
118if(match){if(selpos===0)return true;--thatpos;--selpos;}else if(mustMatchHere)return false;else --thatpos;if(thatpos<i)return false;}return false;};fluid.queryIoCSelector=function(root,selector,flat){var parsed=fluid.parseSelector(selector,fluid.IoCSSMatcher);var togo=[];fluid.visitComponentsForMatching(root,{flat},(function(that,thatStack,contextHashes){if(fluid.matchIoCSelector(parsed,thatStack,contextHashes,[],1))togo.push(that);}));return togo;};fluid.isIoCSSSelector=function(context){return context.indexOf(" ")!==-1;};fluid.pushDistributions=function(targetHead,selector,target,blocks){var targetShadow=fluid.shadowForComponent(targetHead);var id=fluid.allocateGuid();var distribution={id,target,selector,blocks};Object.freeze(distribution);Object.freeze(distribution.blocks);distribution.blocks.forEach((function(block){fluid.freezeRecursive(block.options);}));fluid.pushArray(targetShadow,"distributions",distribution);return id;};fluid.clearDistribution=function(targetHeadId,id){var targetHeadShadow=fluid.globalInstantiator.idToShadow[targetHeadId];if(targetHeadShadow)fluid.remove_if(targetHeadShadow.distributions,(function(distribution){return distribution.id===id;}));};fluid.clearDistributions=function(shadow){fluid.each(shadow.outDistributions,(function(outDist){fluid.clearDistribution(outDist.targetHeadId,outDist.distributionId);}));};fluid.extractSelectorHead=function(parsedSelector){var predList=parsedSelector[0].predList;var context=predList[0].context;predList.length=0;return context;};fluid.parseExpectedOptionsPath=function(path,role){var segs=fluid.model.parseEL(path);if(segs[0]!=="options")fluid.fail("Error in options distribution path ",path," - only "+role+' paths beginning with "options" are supported');return segs.slice(1);};fluid.replicateProperty=function(source,property,targets){if(source[property]!==undefined)fluid.each(targets,(function(target){target[property]=source[property];}));};fluid.undistributableOptions=["gradeNames","distributeOptions","argumentMap","mergePolicy"];fluid.distributeOptionsOne=function(that,record,targetRef,selector,context){fluid.pushActivity("distributeOptions","parsing distributeOptions block %record %that ",{that,record});var targetHead=fluid.resolveContext(context,that);if(!targetHead)fluid.fail("Error in options distribution record ",record," - could not resolve context {"+context+"} to a head component");var thatShadow=fluid.shadowForComponent(that);var targetSegs=fluid.model.parseEL(targetRef.path);var preBlocks;if(record.record!==undefined)preBlocks=[fluid.makeDistributionRecord(that,record.record,[],targetSegs,[])];else{var source=fluid.parseContextReference(record.source);if(source.context!=="that")fluid.fail("Error in options distribution record ",record," only a source context of {that} is supported");var sourceSegs=fluid.parseExpectedOptionsPath(source.path,"source");var fullExclusions=fluid.makeArray(record.exclusions).concat(sourceSegs.length===0?fluid.undistributableOptions:[]);var exclusions=fluid.transform(fullExclusions,(function(exclusion){return fluid.model.parseEL(exclusion);}));preBlocks=fluid.filterBlocks(that,thatShadow.mergeOptions.mergeBlocks,sourceSegs,targetSegs,exclusions,record.removeSource);thatShadow.mergeOptions.updateBlocks();}fluid.replicateProperty(record,"priority",preBlocks);fluid.replicateProperty(record,"namespace",preBlocks);if(selector){var distributionId=fluid.pushDistributions(targetHead,selector,record.target,preBlocks);thatShadow.outDistributions=thatShadow.outDistributions||[];thatShadow.outDistributions.push({targetHeadId:targetHead.id,distributionId});}else{var targetShadow=fluid.shadowForComponent(targetHead);fluid.applyDistributions(that,preBlocks,targetShadow);}fluid.popActivity();};fluid.distributeOptions=function(that,optionsStrategy){var records=fluid.driveStrategy(that.options,"distributeOptions",optionsStrategy);fluid.each(records,(function distributeOptionsOne(record){if(typeof record.target!=="string")fluid.fail("Error in options distribution record ",record,' a member named "target" must be supplied holding an IoC reference');if(typeof record.source==="string"^record.record===undefined)fluid.fail("Error in o
118ptions distribution record ",record,': must supply either a member "source" holding an IoC reference or a member "record" holding a literal record');var targetRef=fluid.parseContextReference(record.target);var selector,context;if(fluid.isIoCSSSelector(targetRef.context)){selector=fluid.parseSelector(targetRef.context,fluid.IoCSSMatcher);context=fluid.extractSelectorHead(selector);}else context=targetRef.context;if(context==="/"||context==="that")fluid.distributeOptionsOne(that,record,targetRef,selector,context);else{var transRec=fluid.currentTreeTransaction();transRec.deferredDistributions.push({that,record,targetRef,selector,context});}}));};fluid.contextName=1;fluid.memberName=2;fluid.gradeNamesToHash=function(gradeNames){var contextHash={};fluid.each(gradeNames,(function(gradeName){if(!fluid.isReferenceOrExpander(gradeName)){contextHash[gradeName]=fluid.contextName;contextHash[fluid.computeNickName(gradeName)]=fluid.contextName;}}));return contextHash;};fluid.applyToContexts=function(hash,key,disposition){var existing=hash[key];hash[key]=(existing||0)|disposition;};fluid.applyToScope=function(scope,key,value,disposition){var existing=scope[key];if(!existing||disposition&fluid.memberName)scope[key]=value;};fluid.cacheShadowGrades=function(that,shadow){var contextHash=fluid.gradeNamesToHash(that.options&&that.options.gradeNames||[that.typeName]);fluid.applyToContexts(contextHash,shadow.memberName,fluid.memberName);shadow.contextHash=contextHash;fluid.each(contextHash,(function(disposition,context){shadow.ownScope[context]=that;if(shadow.parentShadow&&shadow.parentShadow.that.typeName!=="fluid.rootComponent")fluid.applyToScope(shadow.parentShadow.childrenScope,context,that,disposition);}));};fluid.deliverOptionsStrategy=function(that,target,mergeOptions){var shadow=fluid.shadowForComponent(that,shadow);fluid.cacheShadowGrades(that,shadow);shadow.mergeOptions=mergeOptions;};fluid.collectDistributedGrades=function(rec){var distributedBlocks=fluid.receiveDistributions(null,null,null,rec.that);if(distributedBlocks.length>0){var readyBlocks=fluid.applyDistributions(rec.that,distributedBlocks,rec.shadow);var gradeNamesList=fluid.transform(fluid.getMembers(readyBlocks,["source","gradeNames"]),fluid.makeArray);fluid.accumulateDynamicGrades(rec,fluid.flatten(gradeNamesList));}};fluid.applyDynamicGrades=function(rec){rec.oldGradeNames=fluid.makeArray(rec.gradeNames);var newDefaults=fluid.copy(fluid.getMergedDefaults(rec.that.typeName,rec.gradeNames));rec.gradeNames.length=0;rec.gradeNames.push.apply(rec.gradeNames,newDefaults.gradeNames);fluid.each(rec.gradeNames,(function(gradeName){if(!fluid.isReferenceOrExpander(gradeName))rec.seenGrades[gradeName]=true;}));var shadow=rec.shadow;fluid.cacheShadowGrades(rec.that,shadow);shadow.mergeOptions.destroyValue(["mergePolicy"]);shadow.mergeOptions.destroyValue(["components"]);shadow.mergeOptions.destroyValue(["invokers"]);rec.defaultsBlock.source=newDefaults;shadow.mergeOptions.updateBlocks();shadow.mergeOptions.computeMergePolicy();fluid.accumulateDynamicGrades(rec,newDefaults.gradeNames);};fluid.accumulateDynamicGrades=function(rec,newGradeNames){fluid.each(newGradeNames,(function(gradeName){var flatGradeName=fluid.flattenGradeName(gradeName);if(!rec.seenGrades[flatGradeName])if(fluid.isReferenceOrExpander(gradeName)){rec.rawDynamic.push(gradeName);rec.seenGrades[flatGradeName]=true;}else{if(!rec.oldGradeNames.includes(gradeName))rec.plainDynamic.push(gradeName);}}));};fluid.accumulateContextAwareGrades=function(that,rec){var newContextAware=[];if(rec.gradeNames.includes("fluid.contextAware")){var contextAwarenessOptions=fluid.getForComponent(that,["options","contextAwareness"]);newContextAware=fluid.contextAware.check(that,contextAwarenessOptions);var lostGrade=fluid.find_if(rec.contextAware,(function(gradeName){return !newContextAware.includes(gradeName);}));if(lostGrade)fluid.fail("Failure operating contextAwareness definition ",contextAwarenessOptions," for component "+fluid.dumpComponentAndPath(that)+": grade name "+lostGrade+" returned by an earlier round of checks was lost through a context change caused by a raw dynamic grade");rec.contextAware=newContextAware;}return newContextAware;};fluid.computeDynamicGrades=function(that,shadow,strategy){delete that.options.gradeNames;var gradeNames=fluid.driveStrategy(that.options,"gradeNames",strategy);gradeNames.length=0;var defaultsBlock=fluid.findMergeBlocks(shadow.mergeOptions.mergeBlocks,"defaults")[0];var rec={that,shadow,defaultsBlock,gradeNames,seenGrades:{},plainDynamic:[],contextAware:[],rawDynamic:[]};fluid.each(shadow.mergeOptions.mergeBlocks,(function(block){gradeNames.push.apply(gradeNames,fluid.makeArray(block.target&&block.target.gradeNames));fluid.applyDynamicGrades(rec);}));fluid.collectDistributedGrades(rec);var checkContextAware=true;while(true){while(rec.plainDynamic.length>0){gradeNames.push.apply(gradeNames,rec.plainDynamic);rec.plainDynamic.length=0;fluid.applyDynamicGrades(rec);fluid.collectDistributedGrades(rec);}
118if(checkContextAware){var newContextAware=fluid.accumulateContextAwareGrades(that,rec);rec.plainDynamic=rec.plainDynamic.concat(newContextAware);checkContextAware=false;}else if(rec.rawDynamic.length>0){var toexpand=rec.rawDynamic.shift();var expanded=fluid.expandImmediate(toexpand,that,shadow.localRecord);if(typeof expanded==="function")expanded=expanded();if(expanded)rec.plainDynamic=rec.plainDynamic.concat(expanded);checkContextAware=true;}else break;}fluid.remove_if(gradeNames,fluid.isReferenceOrExpander);if(shadow.collectedClearer){shadow.collectedClearer();delete shadow.collectedClearer;}};fluid.computeComponentAccessor=function(that,localRecord){var instantiator=fluid.globalInstantiator;var shadow=fluid.shadowForComponent(that);shadow.localRecord=localRecord;var options=that.options;var strategy=shadow.mergeOptions.strategy;var optionsStrategy=fluid.mountStrategy(["options"],options,strategy);shadow.invokerStrategy=fluid.recordStrategy(that,options,strategy,"invokers",fluid.invokerFromRecord);shadow.eventStrategyBlock=fluid.recordStrategy(that,options,strategy,"events",fluid.eventFromRecord,["events"]);var eventStrategy=fluid.mountStrategy(["events"],that,shadow.eventStrategyBlock.strategy);shadow.memberStrategy=fluid.recordStrategy(that,options,strategy,"members",fluid.memberFromRecord,null,{model:true,modelRelay:true});shadow.getConfig={strategies:[fluid.concreteStrategy,fluid.model.funcResolverStrategy,optionsStrategy,shadow.invokerStrategy.strategy,shadow.memberStrategy.strategy,eventStrategy]};fluid.computeDynamicGrades(that,shadow,strategy,shadow.mergeOptions.mergeBlocks);if(shadow.contextHash["fluid.resourceLoader"]){shadow.resourceStrategyBlock=fluid.recordStrategy(that,options,strategy,"resources",fluid.resourceFromRecord,["resources"]);var resourceStrategy=fluid.mountStrategy(["resources"],that,shadow.resourceStrategyBlock.strategy);shadow.getConfig.strategies.push(resourceStrategy);that.resources={};}fluid.distributeOptions(that,strategy);if(shadow.contextHash["fluid.resolveRoot"]){var memberName;if(shadow.contextHash["fluid.resolveRootSingle"]){var singleRootType=fluid.getForComponent(that,["options","singleRootType"]);if(!singleRootType)fluid.fail("Cannot register object with grades "+Object.keys(shadow.contextHash).join(", ")+" as fluid.resolveRootSingle since it has not defined option singleRootType");memberName=fluid.typeNameToMemberName(singleRootType);}else memberName=fluid.computeGlobalMemberName(that.typeName,that.id);var parent=fluid.resolveRootComponent;if(parent[memberName])instantiator.clearComponent(parent,memberName);instantiator.recordKnownComponent(parent,that,memberName,false);}return shadow.getConfig;};fluid.shadowForComponent=function(component){var instantiator=fluid.getInstantiator(component);return instantiator&&component?instantiator.idToShadow[component.id]:null;};fluid.pathInEvaluation=function(path,paths){var index=paths.indexOf(path);return index!==-1&&index!==paths.length-1;};fluid.getForComponent=function(component,path){var segs=fluid.model.pathToSegments(path);if(segs.length===0)return component;var instantiator=fluid.globalInstantiator;var shadow=fluid.shadowForComponent(component);if(shadow){var next=fluid.get(component,segs[0],shadow.getConfig);if(fluid.isComponent(next))return fluid.getForComponent(next,segs.slice(1));else{var inEvaluationPaths=instantiator.inEvaluationPaths;var inEvaluationPath=component.id+":"+path;if(fluid.pathInEvaluation(inEvaluationPath,inEvaluationPaths))fluid.fail("Error in component configuration - a circular reference was found during evaluation of path "+path+" for component "+fluid.dumpComponentAndPath(component)+": a circular set of references was found - for more details, see the activity records following this message in the console");else{inEvaluationPaths.push(inEvaluationPath);var togo=fluid.get(component,path,shadow.getConfig);inEvaluationPaths.pop();return togo;}}}else return fluid.get(component,path);};fluid.concreteStrategy=function(component,thisSeg,index,segs){var atval=component[thisSeg];if(atval===fluid.inEvaluationMarker)fluid.fail('Error in component configuration - a circular reference was found during evaluation of path segment "'+thisSeg+" of path ",segs,'": for more details, see the activity records following this message in the console, or issue fluid.set
118Logging(fluid.logLevel.TRACE) when running your application');if(index>1)return atval;if(atval===undefined&&component.hasOwnProperty(thisSeg))return fluid.NO_VALUE;return atval;};fluid.frameworkGrades=["fluid.component","fluid.modelComponent","fluid.viewComponent","fluid.rendererComponent"];fluid.filterBuiltinGrades=function(gradeNames){return fluid.remove_if(fluid.makeArray(gradeNames),(function(gradeName){return fluid.frameworkGrades.indexOf(gradeName)!==-1;}));};fluid.dumpGradeNames=function(that){return that.options&&that.options.gradeNames?" gradeNames: "+JSON.stringify(fluid.filterBuiltinGrades(that.options.gradeNames)):"";};fluid.dumpThat=function(that){return '{ typeName: "'+that.typeName+" id: "+that.id+'"'+fluid.dumpGradeNames(that)+"}";};fluid.dumpThatStack=function(thatStack,instantiator){var togo=fluid.transform(thatStack,(function(that){var path=instantiator.idToPath(that.id);return fluid.dumpThat(that)+(path?" - path: "+path:"");}));return togo.join("\n");};fluid.dumpComponentPath=function(that){var path=fluid.pathForComponent(that);return path?fluid.pathUtil.composeSegments.apply(null,path):"** no path registered for component **";};fluid.dumpComponentAndPath=function(that){return "component "+fluid.dumpThat(that)+" at path "+fluid.dumpComponentPath(that);};fluid.resolveContext=function(context,that,fast){if(context==="that")return that;else{if(context==="/")return fluid.rootComponent;}if(typeof context==="object"){var innerContext=fluid.resolveContext(context.context,that,fast);if(!fluid.isComponent(innerContext))fluid.triggerMismatchedPathError(context.context,that);var rawValue=fluid.getForComponent(innerContext,context.path);var expanded=fluid.expandOptions(rawValue,that);if(!fluid.isComponent(expanded))fluid.fail("Unable to resolve recursive context expression "+fluid.renderContextReference(context)+": the directly resolved value of "+rawValue+" did not resolve to a component in the scope of "+fluid.dumpComponentAndPath(that)+": got ",expanded);return expanded;}else{var foundComponent;var instantiator=fluid.globalInstantiator;if(fast){var shadow=instantiator.idToShadow[that.id];return shadow.ownScope[context];}else{var thatStack=instantiator.getFullStack(that);fluid.visitComponentsForVisibility(instantiator,thatStack,(function(component,memberName){var shadow=fluid.shadowForComponent(component);var scopeValue=shadow.contextHash[context];if(scopeValue&&scopeValue!==fluid.memberName||context===memberName){foundComponent=component;return true;}}));return foundComponent;}}};fluid.triggerMismatchedPathError=function(parsed,parentThat){var ref=fluid.renderContextReference(parsed);fluid.fail("Failed to resolve reference "+ref+" - could not match context with name "+parsed.context+" from "+fluid.dumpComponentAndPath(parentThat));};fluid.makeStackFetcher=function(parentThat,localRecord,fast){var fetcher=function(parsed){if(parentThat&&parentThat.lifecycleStatus==="destroyed")fluid.fail("Cannot resolve reference "+fluid.renderContextReference(parsed)+" from component "+fluid.dumpComponentAndPath(parentThat)+" which has been destroyed");var context=parsed.context;if(localRecord&&context in localRecord)return fluid.get(localRecord[context],parsed.path);var foundComponent=fluid.resolveContext(context,parentThat,fast);if(!foundComponent&&parsed.path!=="")fluid.triggerMismatchedPathError(parsed,parentThat);return fluid.getForComponent(foundComponent,parsed.path);};return fetcher;};fluid.makeStackResolverOptions=function(parentThat,localRecord,fast){return $.extend(fluid.copy(fluid.rawDefaults("fluid.makeExpandOptions")),{ELstyle:"{}",localRecord:localRecord||{},fetcher:fluid.makeStackFetcher(parentThat,localRecord,fast),contextThat:parentThat,exceptions:{members:{model:true,modelRelay:true}}});};fluid.clearListeners=function(shadow){fluid.each(shadow.listeners,(function(rec){rec.event.removeListener(rec.listenerId||rec.listener);}));delete shadow.listeners;};fluid.recordListener=function(event,listener,shadow,listenerId){if(event.ownerId!==shadow.that.id)fluid.pushArray(shadow,"listeners",{event,listener,listenerId});};fluid.constructScopeObjects=function(instantiator,parent,child,childShadow){var parentShadow=parent?instantiator.idToShadow[parent.id]:null;childShadow.childrenScope=parentShadow?Object.create(parentShadow.ownScope):{};
118childShadow.ownScope=Object.create(childShadow.childrenScope);childShadow.parentShadow=parentShadow;childShadow.childComponents={};fluid.cacheShadowGrades(child,childShadow);};fluid.clearChildrenScope=function(parentShadow,child,childShadow,memberName){var keys=fluid.keys(childShadow.contextHash);keys.push(memberName);keys.forEach((function(context){if(parentShadow.childrenScope[context]===child)delete parentShadow.childrenScope[context];}));};fluid.clearComponentIndexes=function(instantiator,destroyRec){var shadow=destroyRec.shadow;fluid.clearChildrenScope(shadow,destroyRec.child,destroyRec.childShadow,destroyRec.name);delete instantiator.pathToComponent[destroyRec.childPath];delete shadow.childComponents[destroyRec.name];};fluid.doDestroy=function(instantiator,destroyRec){var shadow=destroyRec.childShadow,that=destroyRec.child;fluid.each(shadow.injectedPaths,(function(troo,injectedPath){var parentPath=fluid.model.getToTailPath(injectedPath);var otherParent=instantiator.pathToComponent[parentPath];instantiator.clearComponent(otherParent,fluid.model.getTailPath(injectedPath),that);}));fluid.clearComponentIndexes(instantiator,destroyRec);fluid.clearDistributions(shadow);fluid.clearListeners(shadow);for(var key in that.events)if(key!=="afterDestroy"&&typeof that.events[key].destroy==="function")that.events[key].destroy();if(that.applier)that.applier.destroy();that.lifecycleStatus="destroyed";fluid.fireEvent(destroyRec.child,"afterDestroy",[destroyRec.child,destroyRec.name,destroyRec.component]);delete instantiator.idToShadow[destroyRec.child.id];};fluid.instantiator=function(){var that=fluid.typeTag("instantiator");$.extend(that,{lifecycleStatus:"constructed",pathToComponent:{},idToShadow:{},modelTransactions:{},treeTransactions:{},inEvaluationPaths:[],currentTreeTransactionId:null,composePath:fluid.model.composePath,composeSegments:fluid.model.composeSegments,parseEL:fluid.model.parseEL,events:{onComponentAttach:fluid.makeEventFirer({name:"instantiator's onComponentAttach event"}),onComponentClear:fluid.makeEventFirer({name:"instantiator's onComponentClear event"}),onBeginTreeTransaction:fluid.makeEventFirer({name:"instantiator's onBeginTransaction event"}),onEndTreeTransaction:fluid.makeEventFirer({name:"instantiator's onEndTransaction event"})}});that.parseToSegments=function(path){return fluid.model.parseToSegments(path,that.parseEL,true);};that.idToPath=function(id){var shadow=that.idToShadow[id];return shadow?shadow.path:"";};that.getThatStack=function(component){var shadow=that.idToShadow[component.id];if(shadow){var path=shadow.path;var parsed=that.parseEL(path);var root=that.pathToComponent[""],togo=[];for(var i=0;i<parsed.length;++i){root=root[parsed[i]];togo.push(root);}return togo;}else return [];};that.getFullStack=function(component){var thatStack=component?that.getThatStack(component):[];thatStack.unshift(fluid.resolveRootComponent);return thatStack;};function recordComponent(parent,component,path,name,created){var shadow;if(created){shadow=that.idToShadow[component.id]={};shadow.that=component;shadow.path=path;shadow.memberName=name;fluid.constructScopeObjects(that,parent,component,shadow);}else{shadow=that.idToShadow[component.id];shadow.injectedPaths=shadow.injectedPaths||{};shadow.injectedPaths[path]=true;var parentShadow=that.idToShadow[parent.id];var keys=fluid.keys(shadow.contextHash);fluid.remove_if(keys,(function(key){return shadow.contextHash&&shadow.contextHash[key]===fluid.memberName;}));keys.push(name);keys.forEach((function(context){if(!parentShadow.childrenScope.hasOwnProperty(context))parentShadow.childrenScope[context]=component;}));}if(that.pathToComponent[path])fluid.fail("Error during instantiation - path "+path+" which has just created component "+fluid.dumpThat(component)+" has already been used for component "+fluid.dumpThat(that.pathToComponent[path])+" - this is a circular instantiation or other oversight."+" Please clear the component using instantiator.clearComponent() before reusing the path.");that.pathToComponent[path]=component;}that.recordRoot=function(component){recordComponent(null,component,"","",true);};that.recordKnownComponent=function(parent,component,name,created){parent[name]=component;if(fluid.isComponent(component)||component.type==="instantiator"){var parentShadow=that.idToShadow[parent.id];parentShadow.childComponents[name]=component;var path=that.composePath(parentShadow.path,name);recordComponent(parent,component,path,name,created);that.events.onComponentAttach.fire(component,path,that,created);}else fluid.fail("Cannot record non-component with value ",component,' at path "'+name+'" of parent ',parent);};that.clearComponent=function(component,name,child,options,nested,path){var shadow=that.idToShadow[component.id];options=options||{flat:true,destroyRecs:[]};child=child||component[name];path=path||shadow.path;if(path===undefined)fluid.fail("Cannot clear component "+name+" from component ",component," which was not created by this instantiator");var childPath=that.composePath(path,name);var childShadow=that.idToShadow[child.id];
118if(!childShadow)return;var created=childShadow.path===childPath;that.events.onComponentClear.fire(child,childPath,component,created);var destroyRec={child,childShadow,name,component,shadow,childPath};if(created){if(fluid.isDestroyed(child))fluid.fail('Cannot destroy component which is already in status "'+child.lifecycleStatus+'"');child.lifecycleStatus="destroying";fluid.visitComponentChildren(child,(function(gchild,gchildname,segs,i){var parentPath=that.composeSegments.apply(null,segs.slice(0,i));that.clearComponent(child,gchildname,null,options,true,parentPath);}),options,that.parseEL(childPath));fluid.fireEvent(child,"onDestroy",[child,name||"",component]);options.destroyRecs.push(destroyRec);}else{fluid.remove_if(childShadow.injectedPaths,(function(troo,path){return path===childPath;}));fluid.clearComponentIndexes(that,destroyRec);}if(!nested){delete component[name];options.destroyRecs.forEach((function(destroyRec){fluid.doDestroy(that,destroyRec);}));}};return that;};fluid.globalInstantiator=fluid.instantiator();fluid.getInstantiator=function(component){var instantiator=fluid.globalInstantiator;return component&&instantiator.idToShadow[component.id]?instantiator:null;};fluid.defaults("fluid.resolveRoot");fluid.defaults("fluid.resolveRootSingle",{gradeNames:"fluid.resolveRoot"});fluid.constructRootComponents=function(instantiator){fluid.rootComponent=instantiator.rootComponent=fluid.typeTag("fluid.rootComponent");instantiator.recordRoot(fluid.rootComponent);fluid.resolveRootComponent=instantiator.resolveRootComponent=fluid.typeTag("fluid.resolveRootComponent");instantiator.recordKnownComponent(fluid.rootComponent,fluid.resolveRootComponent,"resolveRootComponent",true);var rootShadow=instantiator.idToShadow[fluid.rootComponent.id];rootShadow.contextHash={};var resolveRootShadow=instantiator.idToShadow[fluid.resolveRootComponent.id];resolveRootShadow.ownScope=rootShadow.ownScope;resolveRootShadow.childrenScope=rootShadow.childrenScope;instantiator.recordKnownComponent(fluid.resolveRootComponent,instantiator,"instantiator",true);resolveRootShadow.childrenScope.instantiator=instantiator;};fluid.constructRootComponents(fluid.globalInstantiator);fluid.expandOptions=function(args,that,mergePolicy,localRecord,outerExpandOptions){if(!args)return args;fluid.pushActivity("expandOptions","expanding options %args for component %that ",{that,args});var expandOptions=fluid.makeStackResolverOptions(that,localRecord);expandOptions.mergePolicy=mergePolicy;expandOptions.defer=outerExpandOptions&&outerExpandOptions.defer;var expanded=expandOptions.defer?fluid.makeExpandOptions(args,expandOptions):fluid.expand(args,expandOptions);fluid.popActivity();return expanded;};fluid.computeMergeListPriority=function(toMerge){toMerge.forEach((function(record){var recordType=record.recordType;if(recordType!=="distribution"){record.priority=fluid.mergeRecordTypes[recordType]+(record.priorityDelta||0);if(!Number.isInteger(record.priority))fluid.fail("Merge record with unrecognised type "+recordType+": ",record);}}));};var addPolicyBuiltins=function(policy){fluid.each(["gradeNames","mergePolicy","argumentMap","components","dynamicComponents","events","listeners","modelListeners","modelRelay","distributeOptions","transformOptions"],(function(key){fluid.set(policy,[key,"*","noexpand"],true);}));return policy;};fluid.generateExpandBlock=function(record,that,mergePolicy,localRecord){var expanded=fluid.expandOptions(record.options||{},record.contextThat||that,mergePolicy,localRecord,{defer:true});expanded.priority=record.priority;expanded.namespace=record.namespace;expanded.recordType=record.recordType;return expanded;};fluid.fabricateDestroyMethod=function(that){return function(){var currentTrans=fluid.currentTreeTransaction();var shadow=fluid.shadowForComponent(that);var transRec=fluid.destroy(shadow.path);if(!currentTrans)transRec.promise.then(null,(function(e){throw e;}));};};fluid.typeNameToMemberName=function(typeName){return typeName.replace(/\./g,"_");};fluid.expandComponentOptions=function(mergePolicy,potentia,lightMerge,that){var toMerge=lightMerge.toMerge;var container=fluid.lightMergeValue(toMerge,"container");if(container)toMerge.push({recordType:"distribution",priority:fluid.mergeRecordTypes.distribution,options:{container},contextThat:potentia.parentThat});that.destroy=fluid.fabricateDestroyMethod(that);addPolicyBuiltins(mergePolicy);var shadow=fluid.shadowForComponent(that);shadow.mergePolicy=mergePolicy;fluid.computeMergeListPriority(toMerge);var togo=fluid.transform(toMerge,(function(value){return fluid.generateExpandBlock(value,that,mergePolicy,potentia.localRecord);}));return togo;};fluid.computeDynamicComponentKey=function(recordKey,sourceKey){return recordKey+(sourceKey===0||sourceKey==="0"?"":"-"+sourceKey);};fluid.concludeAnyTreeTransaction=function(){var instantiator=fluid.globalInstantiator;var transactionId=instantiator.currentTreeTransactionId;if(transactionId){var transRec=instantiator.treeTransactions[transactionId];var errorOut;transRec.promise.then(null,(function(e){errorOut=e;}));fluid.commitPotentiae(transactionId);if(errorOut)throw errorOut;}};fluid.bindDeferredComponent=function(that,componentName,lightMerge,dynamicComponent){var eventName=lightMerge.createOnEvent;var event=fluid.isIoCReference(eventName)?fluid.expandOptions(eventName,that):that.events[eventName];if(!event||!event.addListener)fluid.fail("Error instantiating createOnEvent c
118omponent with name "+componentName+" of parent "+fluid.dumpComponentAndPath(that)+" since event specification "+eventName+" could not be expanded to an event - got ",event);var shadow=fluid.shadowForComponent(that);if(dynamicComponent)fluid.set(shadow,["dynamicComponentCount",componentName],0);var constructListener=function(){var key=dynamicComponent?fluid.computeDynamicComponentKey(componentName,shadow.dynamicComponentCount[componentName]++):componentName;var localRecord={arguments:fluid.makeArray(arguments)};fluid.pushActivity("initDeferred","instantiating deferred component %componentName of parent %that due to event %eventName",{componentName,that,eventName});var freshLightMerge=fluid.copy(lightMerge);delete freshLightMerge.createOnEvent;fluid.registerConcreteSubPotentia(freshLightMerge,key,0,that,localRecord);fluid.popActivity();};event.addListener(constructListener);fluid.recordListener(event,constructListener,shadow);event.addListener(fluid.concludeAnyTreeTransaction,"fluid-componentConstruction","last:transaction");fluid.recordListener(event,fluid.concludeAnyTreeTransaction,shadow);};fluid.markSubtree=function(instantiator,that,path,state){that.lifecycleStatus=state;fluid.visitComponentChildren(that,(function(child,name){var childPath=instantiator.composePath(path,name);var childShadow=instantiator.idToShadow[child.id];var created=childShadow&&childShadow.path===childPath;if(created)fluid.markSubtree(instantiator,child,childPath,state);}),{flat:true});};fluid.assessTreeConstruction=function(that,shadow){var instantiator=fluid.globalInstantiator;var thatStack=instantiator.getThatStack(that);var unstableUp=fluid.find_if(thatStack,(function(that){return that.lifecycleStatus==="constructing";}));if(unstableUp)that.lifecycleStatus="constructed";else fluid.markSubtree(instantiator,that,shadow.path,"treeConstructed");};fluid.concludeComponentObservation=function(shadow){var that=shadow.that;var mergeOptions=shadow.mergeOptions;fluid.pushActivity("concludeComponentObservation","constructing component of type %componentName at path %path",{componentName:that.typeName,path:shadow.path});mergeOptions.evaluateFully=true;for(var i=0;i<mergeOptions.mergeBlocks.length;++i)mergeOptions.mergeBlocks[i].initter();mergeOptions.initter();delete that.options.mergePolicy;shadow.memberStrategy.initter();shadow.invokerStrategy.initter();fluid.freezeRecursive(that.options);fluid.each(shadow.lightMergeComponents,(function(lightMerge,key){if(lightMerge.createOnEvent)fluid.bindDeferredComponent(that,key,lightMerge);}));fluid.each(shadow.lightMergeDynamicComponents,(function(lightMerge,key){if(lightMerge.createOnEvent)fluid.bindDeferredComponent(that,key,lightMerge,true);}));fluid.popActivity();};fluid.concludeComponentInit=function(shadow){var that=shadow.that;if(fluid.isDestroyed(that))return;that.lifecycleStatus="constructed";fluid.assessTreeConstruction(that,shadow);that.events.onCreate.fire(that);fluid.popActivity();return that;};fluid.pushCreatePotentia=function(potentiaList,path,topush){var existing=potentiaList.pathToPotentia[path];if(existing&&!existing.applied)fluid.lightMergeRecords.pushRecords(existing,topush.records||topush.lightMerge.toMerge);else{potentiaList.pathToPotentia[path]=topush;if(topush.records){topush.lightMerge=fluid.lightMergeRecords(topush.records);delete topush.records;}return topush;}};fluid.blankPotentiaList=function(){return {destroys:[],creates:[],activeCount:0,pathToPotentia:{}};};fluid.isInjectedComponentRecord=function(record){return typeof record==="string"||fluid.isPlainObject(record,true)&&record.expander;};fluid.lightMergeValue=function(records,member){var value;records.forEach((function(record){var recValue=record[member];value=recValue===undefined?value:recValue;}));return value;};fluid.lightMergeRecords=function(records){var togo={toMerge:[],isInjected:false};fluid.lightMergeRecords.pushRecords(togo,records);return togo;};fluid.lightMergeRecords.pushRecord=function(lightMerge,record){if(fluid.isInjectedComponentRecord(record)){lightMerge.toMerge=[{injected:record}];lightMerge.isInjected=true;}else{lightMerge.type=record.type||lightMerge.type;lightMerge.createOnEvent=record.createOnEvent||lightMerge.createOnEvent;lightMerge.source=record.source||lightMerge.source;lightMerge.sources=record.sources||lightMerge.sources;if(lightMerge.isInjected)lightMerge.toMerge=[record];else lightMerge.toMerge.push(record);lightMerge.isInjected=false;}};fluid.lightMergeRecords.pushRecords=function(lightMerge,records){records.forEach((function(record){fluid.lightMergeRecords.pushRecord(lightMerge,record);}));};fluid.instantiateEvents=function(shadow){var that=shadow.that;shadow.eventStrategyBlock.initter();var listeners=fluid.getForComponent(that,["options","listeners"]);fluid.mergeListeners(that,that.events,listeners);var errors=fluid.validateListenersImplemented(that);if(errors.length>0)fluid.fail(fluid.transform(errors,(function(error){return ["Error c
118onstructing component "+fluid.dumpComponentAndPath(that)+" - the listener for event "+error.name+" with namespace "+error.namespace+((error.componentSource?" which was defined in grade "+error.componentSource:"")+" needs to be overridden with a concrete implementation")];}))).join("\n");};fluid.initComponentShell=function(potentia,lightMerge){var instantiator=fluid.globalInstantiator,upDefaults=fluid.defaults(lightMerge.type),parentThat=potentia.parentThat,memberName=potentia.memberName,fakeThat={};var distributions=fluid.receiveDistributions(parentThat,upDefaults&&upDefaults.gradeNames,memberName,fakeThat);fluid.each(distributions,(function(distribution){fluid.computeDistributionPriority(parentThat,distribution);if(fluid.isPrimitive(distribution.priority))distribution.priority=fluid.parsePriority(distribution.priority,0,false,"options distribution");}));fluid.sortByPriority(distributions);fluid.lightMergeRecords.pushRecords(lightMerge,distributions);upDefaults=fluid.defaults(lightMerge.type);var defaultCopy=fluid.copy(upDefaults);lightMerge.toMerge.unshift({options:defaultCopy,recordType:"defaults"});var that=lightMerge.type==="fluid.emptySubcomponent"?null:fluid.typeTag(lightMerge.type,potentia.componentId);if(that){that.lifecycleStatus="constructing";instantiator.recordKnownComponent(parentThat,that,memberName,true);var mergeOptions=fluid.mergeComponentOptions(that,potentia,lightMerge);mergeOptions.exceptions={members:{model:true,modelRelay:true}};that.events={};}return that;};fluid.registerConcreteSubPotentia=function(lightMerge,key,componentDepth,parentShell,localRecord,transactionId){componentDepth=componentDepth||0;var newSegs=fluid.pathForComponent(parentShell).concat([key]);var existing=parentShell[key];if(existing)fluid.registerPotentia({segs:newSegs,type:"destroy"},transactionId);lightMerge.toMerge=fluid.transform(lightMerge.toMerge,(function(toMerge){var record=$.extend({componentDepth:componentDepth+1,sourceComponentId:parentShell.id,recordType:"subcomponentRecord"},toMerge);return record;}));lightMerge.type=fluid.expandImmediate(lightMerge.type,parentShell,localRecord);var subPotentia={type:"create",segs:newSegs,lightMerge,localRecord};fluid.registerPotentia(subPotentia,transactionId);};fluid.lightMergeComponentRecord=function(shadow,shadowKey,key,mergingArray){var lightMerge=fluid.lightMergeRecords(mergingArray);fluid.set(shadow,[shadowKey,key],lightMerge);return lightMerge;};fluid.componentRecordExpected=fluid.arrayToHash(["type","options","container","createOnEvent"]);fluid.dynamicComponentRecordExpected=$.extend({},fluid.componentRecordExpected,fluid.arrayToHash(["source","sources"]));fluid.checkComponentRecord=function(localRecord,expected){if(!fluid.isInjectedComponentRecord(localRecord))if(fluid.isPlainObject(localRecord,true))fluid.each(localRecord,(function(value,key){if(!expected[key])fluid.fail("Error in subcomponent record "+JSON.stringify(localRecord)+' - key "'+key+'" found, where the only legal options are '+fluid.keys(expected).join(", "));}));else fluid.fail("Error in subcomponent record "+JSON.stringify(localRecord)+' - this should either be an object with member "type" or else a reference to another component');};fluid.checkSubcomponentRecords=function(subcomponentRecords,expected){subcomponentRecords.forEach((function(oneRecord){fluid.checkComponentRecord(oneRecord,expected);}));};fluid.registerSourcedDynamicComponent=function(potentia,shell,source,sourceKey,lightMerge,key,localRecordContributor){var localRecord=$.extend({},potentia.localRecord,{source,sourcePath:sourceKey});(localRecordContributor||fluid.identity)(localRecord,source,sourceKey);var dynamicKey=fluid.computeDynamicComponentKey(key,sourceKey);var freshLightMerge=fluid.copy(lightMerge);fluid.registerConcreteSubPotentia(freshLightMerge,dynamicKey,potentia.componentDepth,shell,localRecord);};fluid.registerSourcedDynamicComponents=function(potentia,shell,sources,lightMerge,key,localRecordContributor){fluid.each(sources,(function(source,sourceKey){fluid.registerSourcedDynamicComponent(potentia,shell,source,sourceKey,lightMerge,key,localRecordContributor);}));};fluid.lensedComponentModelListener=function(that,key,segs,value,isBoolean){var isEmptyValue=function(value){return isBoolean?!value:value===undefined;};var shadow=fluid.shadowForComponent(that);var sourceKey=isBoolean?0:fluid.peek(segs);var expectedMemberName=fluid.computeDynamicComponentKey(key,sourceKey);var currentComponent=that[expectedMemberName];if(!isEmptyValue(value)&&!currentComponent){var lightMerge=shadow.lightMergeDynamicComponents[key];var parentRecord=shadow.modelSourcedDynamicComponents[key];fluid.registerSourcedDynamicComponent(shadow.potentia,that,value,sourceKey,lightMerge,key,parentRecord.localRecordContributor);}else{if(isEmptyValue(value)&¤tComponent)currentComponent.destroy();}};fluid.lensedComponentDefToBlock=function(key,sourcesParsed,isBoolean){var fromModelPath=sourcesParsed.segs.slice(1);var modelListener={path:{context:sourcesParsed.context,segs:fromModelPath.concat(isBoolean?[]:["*"])},excludeSource:"init",transactional:true,funcName:"fluid.lensedComponentModelListener",args:["{that}",key,"{change}.path","{change}.value",isBoolean]};var modelListeners={};modelListeners["lensedComponents-"+key]=modelListener;return {modelListeners};};fluid.addLensedComponentBlocks=function(lensedComponentBlocks,potentia,shadow){var merged=fluid.extend.apply(null,[true,{}].concat(lensedComponentBlocks));shadow.mergeOptions.mergeBlocks.push(fluid.generateExpandBlock({options:merged,recordType:"lensedComponents",priority:fluid.mergeRecordTypes.lensedComponents},shadow.that,shadow.mergePolicy,potentia.localRecord));shadow.mergeOptions.updateBlocks();};fluid.pushMarkupSourcedDynamicComponentListener=function(shell,key,sourcesParsed,registerDynamicComponents){var namespace=shell.id+"-markupDynamicComponents-"+key;var context=fluid.resolveContext(sourcesParsed.context,shell);if(context.events.onDomBind)context.events.onDomBind.addListener(registerDynamicComponents,namespace);else{var targetShadow=fluid.shadowForComponent(context);fluid.addLensedComponentBlocks([{listeners:{onDomBind:{namespace,listener:registerDynamicComponents}}}],{},targetShadow);}};fluid.expectExactlyOne=function(failStart,target,members){var found=0;
118members.forEach((function(member){if(target[member]!==undefined)++found;}));if(found!==1)fluid.fail.apply(null,failStart.concat([" must contain exactly one member out of "+members.join(", ")]));};fluid.registerSourcedDynamicComponentsTriage=function(potentia,shell,sourceOrSources,lightMerge,key,isBoolean,localRecordContributor){if(isBoolean&&sourceOrSources)fluid.registerSourcedDynamicComponent(potentia,shell,sourceOrSources,0,lightMerge,key,localRecordContributor);else fluid.registerSourcedDynamicComponents(potentia,shell,sourceOrSources,lightMerge,key,localRecordContributor);};fluid.processComponentShell=function(potentia,shell,transRec){var instantiator=fluid.globalInstantiator;var shadow=instantiator.idToShadow[shell.id];shadow.potentia=potentia;shadow.createdTransactionId=transRec.transactionId;var mergeOptions=shadow.mergeOptions;var components=fluid.driveStrategy(shell.options,"components",mergeOptions.strategy);fluid.each(components,(function(subcomponentRecords,key){fluid.checkSubcomponentRecords(subcomponentRecords,fluid.componentRecordExpected);var lightMerge=fluid.lightMergeComponentRecord(shadow,"lightMergeComponents",key,subcomponentRecords);if(!lightMerge.createOnEvent)fluid.registerConcreteSubPotentia(lightMerge,key,potentia.componentDepth,shell,potentia.localRecord);}));var dynamicComponents=fluid.driveStrategy(shell.options,"dynamicComponents",mergeOptions.strategy);var lensedComponentBlocks=[];fluid.each(dynamicComponents,(function(subcomponentRecords,key){fluid.checkSubcomponentRecords(subcomponentRecords,fluid.dynamicComponentRecordExpected);var lightMerge=fluid.lightMergeComponentRecord(shadow,"lightMergeDynamicComponents",key,subcomponentRecords);fluid.expectExactlyOne(["dynamicComponents records ",subcomponentRecords],lightMerge,["source","sources","createOnEvent"]);if(lightMerge.sources!==undefined||lightMerge.source!==undefined){var recordSources=lightMerge.sources,isBoolean=false;if(lightMerge.source!==undefined){recordSources=lightMerge.source;isBoolean=true;}if(fluid.isIoCReference(recordSources)){var sourcesParsed=fluid.parseValidModelReference(shell,"dynamicComponents source",recordSources,true);var registerDynamicComponents=function(){var sources=fluid.getForComponent(sourcesParsed.that,sourcesParsed.segs);fluid.registerSourcedDynamicComponentsTriage(potentia,shell,sources,lightMerge,key,null,isBoolean);};if(sourcesParsed.nonModel)if(sourcesParsed.segs[0]==="dom")fluid.pushMarkupSourcedDynamicComponentListener(shell,key,sourcesParsed,registerDynamicComponents);else registerDynamicComponents();else{fluid.set(shadow,["modelSourcedDynamicComponents",key],{sourcesParsed,isBoolean});lensedComponentBlocks.push(fluid.lensedComponentDefToBlock(key,sourcesParsed,isBoolean));}}else{var sources=fluid.expandImmediate(recordSources,shell,potentia.localRecord);fluid.registerSourcedDynamicComponentsTriage(potentia,shell,sources,lightMerge,key,null,isBoolean);}}}));if(lensedComponentBlocks.length)fluid.addLensedComponentBlocks(lensedComponentBlocks,potentia,shadow);if(transRec.deferredDistributions.length){transRec.pendingPotentiae.creates.push({type:"distributeOptions",distributions:transRec.deferredDistributions});++transRec.pendingPotentiae.activeCount;transRec.deferredDistributions=[];}};fluid.preparePathedPotentia=function(potentia,instantiator){var segs=potentia.segs||instantiator.parseToSegments(potentia.path);potentia.segs=segs;potentia.memberName=fluid.peek(segs);potentia.parentThat=fluid.getImmediate(fluid.rootComponent,segs.slice(0,-1));if(potentia.type==="create"&&!potentia.parentThat)fluid.fail("Cannot construct component at path ",segs," whose parent does not exist");};fluid.fetchNestedInjectedComponentReference=function(transRec,potentiaList,injected,head,parentPath,segs){var instantiator=fluid.globalInstantiator;var path=parentPath,current=head;for(var i=0;i<segs.length;++i){path=fluid.composePath(path,segs[i]);current=instantiator.pathToComponent[path];if(!current){var upcoming=potentiaList.pathToPotentia[path];if(upcoming)if(upcoming.applied)fluid.fail("Circular reference found when resolving injected component reference ",injected," - the target of the reference is still in construction");else{current=fluid.operateCreatePotentia(transRec,upcoming);if(current)path=instantiator.idToShadow[current.id].path;}}
118if(!current&&i!==segs.length-1)fluid.fail("Failed to resolved injected component reference ",injected," - component at segment "+segs[i]+" was not found");}return current;};fluid.fetchInjectedComponentReference=function(transRec,potentiaList,injected,parentThat){var instantiator=fluid.globalInstantiator;if(injected.expander)return fluid.expandImmediate(injected,parentThat,null,true);else{var parsed=fluid.parseContextReference(injected);var head=fluid.resolveContext(parsed.context,parentThat);if(!head)if(parsed.path!=="")fluid.fail("Error in injected component reference ",injected," - could not resolve context {"+parsed.context+"} to a head component");else return head;else{var parentPath=instantiator.idToShadow[head.id].path;var segs=fluid.model.parseEL(parsed.path);return fluid.fetchNestedInjectedComponentReference(transRec,potentiaList,injected,head,parentPath,segs);}}};fluid.operateCreatePotentia=function(transRec,potentia){var instantiator=fluid.globalInstantiator;var potentiaList=transRec.pendingPotentiae;fluid.preparePathedPotentia(potentia,instantiator);var memberName=potentia.memberName,parentThat=potentia.parentThat,shell;fluid.pushActivity("operateCreatePotentia",'operating create potentia for path "%path" with records %records',{path:potentia.path,records:potentia.records});potentia.applied=true;--potentiaList.activeCount;var lightMerge=potentia.lightMerge;if(lightMerge.isInjected){parentThat[memberName]=fluid.inEvaluationMarker;shell=fluid.fetchInjectedComponentReference(transRec,potentiaList,lightMerge.toMerge[0].injected,parentThat);if(shell)instantiator.recordKnownComponent(parentThat,shell,memberName,false);else delete parentThat[memberName];}else if(lightMerge.type){shell=fluid.initComponentShell(potentia,lightMerge);if(shell){fluid.processComponentShell(potentia,shell,transRec);var shadow=instantiator.idToShadow[shell.id];transRec.outputShadows.push(shadow);}}else fluid.fail("Unrecognised material in place of subcomponent "+memberName+" - could not recognise the records ",potentia.records," as designating either an injected or concrete component");fluid.pushPotentia(transRec.restoreRecords,instantiator,{type:"destroy",segs:potentia.segs});fluid.popActivity();return shell;};fluid.operateDestroyPotentia=function(transRec,potentia,instantiator){instantiator=instantiator||fluid.globalInstantiator;fluid.preparePathedPotentia(potentia,instantiator);var that=fluid.getImmediate(fluid.rootComponent,potentia.segs);if(that)instantiator.clearComponent(potentia.parentThat,potentia.memberName,that);};fluid.lookupWorkflowStage=function(workflowName){if(!workflowName)return fluid.workflowCacheSorted.length;else if(workflowName==="shells")return 0;else{var found=fluid.find_if(fluid.workflowCacheSorted,(function(workflowEntry){return workflowEntry.workflowName===workflowName;}));if(found)return found.index+1;else fluid.fail("Unknown workflow name "+workflowName+' supplied as "breakAt" for tree transaction: '+": valid names are "+fluid.getMembers(fluid.workflowCacheSorted,"workflowName").join(", "));}};fluid.evaluateWorkflows=function(shadows,workflowType){var togo=[];fluid.workflowCacheSorted[workflowType].forEach((function(workflowRecord){var workflowShadows=shadows.filter((function(oneShadow){return fluid.componentHasGrade(oneShadow.that,workflowRecord.gradeName);}));if(workflowShadows.length>0)togo.push({shadows,workflowIndex:workflowRecord.index,workflowOptions:workflowRecord.workflowOptions});}));return togo;};fluid.findWorkflowShadows=function(shadows,blockStart,blockEnd,workflowRecord){var workflowShadows=[];for(var i=blockStart;i<blockEnd;++i)if(fluid.componentHasGrade(shadows[i].that,workflowRecord.gradeName))if(workflowRecord.workflowType==="global")workflowShadows.push(shadows[i]);else workflowShadows.unshift(shadows[i]);return workflowShadows;};fluid.waitPendingIOTask=function(transRec){var sequence;var waitIOTask=function(){return transRec.pendingIO.length?sequence=fluid.promise.sequence(transRec.pendingIO):null;};waitIOTask.taskName="waitIO";waitIOTask.sequence=sequence;return waitIOTask;};fluid.enqueueWorkflowBlock=function(transRec,shadows,workflowStart,workflowEnd,blockStart,blockEnd,sequencer){var workQueued=false;var instantiator=fluid.globalInstantiator;var resumeCurrentTransaction=function(){instantiator.currentTreeTransactionId=transRec.transactionId;};transRec.lastWorkflowShadow=Math.max(transRec.lastWorkflowShadow,blockEnd);
118fluid.forEachInRange(fluid.workflowCacheSorted,workflowStart,workflowEnd,(function(workflowRecord,workflowIndex){if(workflowIndex===0)for(var i=blockStart;i<blockEnd;++i)fluid.instantiateEvents(shadows[i]);var workflowShadows=fluid.findWorkflowShadows(shadows,blockStart,blockEnd,workflowRecord);transRec.maximumWorkflowStage=Math.max(transRec.maximumWorkflowStage,workflowIndex+1);if(workflowShadows.length>0){var workflow=workflowRecord.workflowOptions;var workflowFunc=fluid.getGlobalValue(workflow.funcName);var sequence=sequencer.sources;if(workflow.waitIO)sequence.push(fluid.waitPendingIOTask(transRec));if(workflowRecord.workflowType==="global"){var globalWorkflowTask=function(){resumeCurrentTransaction();workflowFunc(workflowShadows,transRec);};globalWorkflowTask.taskName=workflowRecord.namespace;sequence.push(globalWorkflowTask);}else{var localWorkflowTask=function(){resumeCurrentTransaction();if(workflowRecord.namespace==="concludeComponentInit")sequencer.hasStartedConcludeInit=true;workflowShadows.forEach((function(shadow){workflowFunc(shadow,transRec);}));};localWorkflowTask.taskName=workflowRecord.namespace;sequence.push(localWorkflowTask);}workQueued=true;}}));if(transRec.maximumWorkflowStage===transRec.workflowStageBreak){transRec.maximumWorkflowStage=0;transRec.restartLastWorkflowShadow=transRec.lastWorkflowShadow;}return workQueued;};fluid.applyWorkflowPhase=function(transRec,sequencer){var shadows=transRec.outputShadows;if(shadows.length>transRec.lastWorkflowShadow&&transRec.maximumWorkflowStage>0){fluid.enqueueWorkflowBlock(transRec,shadows,0,transRec.maximumWorkflowStage,transRec.lastWorkflowShadow,shadows.length,sequencer);return true;}else{if(transRec.maximumWorkflowStage<transRec.workflowStageBreak)for(var workflowStage=transRec.maximumWorkflowStage;workflowStage<transRec.workflowStageBreak;++workflowStage){var workQueued=fluid.enqueueWorkflowBlock(transRec,shadows,workflowStage,workflowStage+1,transRec.restartLastWorkflowShadow,shadows.length,sequencer);if(workQueued)return workQueued;}}return false;};fluid.commitPotentiaePhase=function(transRec){var pendingPotentiae=transRec.pendingPotentiae;pendingPotentiae.destroys.forEach((function(potentia){if(!potentia.applied){potentia.applied=true;--pendingPotentiae.activeCount;fluid.operateDestroyPotentia(transRec,potentia);}}));for(var i=0;i<pendingPotentiae.creates.length;++i){var potentia=pendingPotentiae.creates[i];if(!potentia.applied)if(potentia.type==="create")fluid.operateCreatePotentia(transRec,potentia);else if(potentia.type==="distributeOptions"){potentia.distributions.forEach((function(distro){fluid.distributeOptionsOne(distro.that,distro.record,distro.targetRef,distro.selector,distro.context);}));potentia.applied=true;--pendingPotentiae.activeCount;}else fluid.fail("Unrecognised potentia type "+potentia.type);}};fluid.isPopulatedPotentiaList=function(potentiaList){return potentiaList.activeCount>0;};fluid.commitPotentiae=function(transactionId,resumeSequencer){var instantiator=fluid.globalInstantiator;var transRec=instantiator.treeTransactions[transactionId];++transRec.commitDepth;var lastWorkflowShadow=transRec.lastWorkflowShadow;var rootSequencer=transRec.rootSequencer;var sequencer=resumeSequencer;if(!sequencer){var topSequencer=fluid.getImmediate(fluid.peek(rootSequencer.sources),["sequencer"]);if(!topSequencer||topSequencer.hasStartedConcludeInit||topSequencer.promise.disposition){sequencer=fluid.promise.makeSequencer([],{},fluid.promise.makeSequenceStrategy());sequencer.promise.sequencer=sequencer;rootSequencer.sources.push(sequencer.promise);}else sequencer=topSequencer;}fluid.tryCatch((function commitPotentiae(){if(fluid.isPopulatedPotentiaList(transRec.pendingPotentiae))fluid.commitPotentiaePhase(transRec);var workflowEnqueued=fluid.applyWorkflowPhase(transRec,sequencer);if(workflowEnqueued)sequencer.sources.push((function(){if(!sequencer.hasStartedConcludeInit)fluid.commitPotentiae(transactionId,sequencer);else{if(sequencer===fluid.peek(rootSequencer.sources).sequencer)fluid.commitPotentiae(transactionId,null);}}));if(!sequencer.sequenceStarted)fluid.promise.resumeSequence(sequencer);if(!rootSequencer.sequenceStarted)fluid.promise.resumeSequence(rootSequencer);}),(function(e){if(!transRec.promise.disposition)transRec.promise.reject(e);}));
118--transRec.commitDepth;if(transRec.commitDepth===0&&!resumeSequencer)instantiator.currentTreeTransactionId=null;return transRec.outputShadows[lastWorkflowShadow];};fluid.pushPotentia=function(potentiaList,instantiator,potentia){var segs=potentia.segs=potentia.segs||instantiator.parseToSegments(potentia.path);var path=potentia.path=instantiator.composeSegments.apply(null,segs);if(potentia.type==="destroy"){potentiaList.destroys.push(potentia);potentiaList.activeCount++;fluid.remove_if(potentiaList.creates,(function(create){if(!create.applied&&create.path.startsWith(potentia.path)){potentiaList.activeCount--;return true;}}));}else{var newPotentia=potentia;if(potentia.type==="create")newPotentia=fluid.pushCreatePotentia(potentiaList,path,potentia);if(newPotentia){potentiaList.creates.push(potentia);potentiaList.activeCount++;}}};fluid.pathForComponent=function(component,instantiator){instantiator=instantiator||fluid.getInstantiator(component)||fluid.globalInstantiator;var shadow=instantiator.idToShadow[component.id];if(!shadow)return null;return instantiator.parseEL(shadow.path);};fluid.currentTreeTransaction=function(){var instantiator=fluid.globalInstantiator;return instantiator.treeTransactions[instantiator.currentTreeTransactionId];};fluid.clearTreeTransaction=function(transRec){transRec.rootSequencer=fluid.promise.makeSequencer([],{},fluid.promise.makeSequenceStrategy());transRec.restoreRecords=fluid.blankPotentiaList();transRec.initModelTransaction={};transRec.outputShadows=[];transRec.lastWorkflowShadow=0;transRec.maximumWorkflowStage=0;transRec.restartLastWorkflowShadow=0;transRec.deferredDistributions=[];};fluid.beginTreeTransaction=function(transactionOptions){var instantiator=fluid.globalInstantiator;if(instantiator.currentTreeTransactionId)fluid.fail("Attempt to start new tree transaction when transaction "+instantiator.currentTreeTransactionId+" is already active");var transactionId=instantiator.currentTreeTransactionId=fluid.allocateGuid();var transRec=$.extend({transactionId,workflowStageBreak:undefined,pendingPotentiae:fluid.blankPotentiaList(),commitDepth:0,cancelled:false,cancellationError:null,pendingIO:[]},transactionOptions);fluid.clearTreeTransaction(transRec);transRec.promise=transRec.rootSequencer.promise;var onConclude=function(){instantiator.events.onEndTreeTransaction.fire(transRec);if(transRec.rootSequencer.promise.disposition){instantiator.currentTreeTransactionId=null;delete instantiator.treeTransactions[transactionId];}};var onException=function(err){if(!transRec.cancelled){delete transRec.rootSequencer;instantiator.inEvaluationPaths.length=0;fluid.cancelTreeTransaction(transactionId,instantiator,err);onConclude();}};transRec.promise.then(onConclude,onException);instantiator.treeTransactions[transactionId]=transRec;try{transRec.workflowStageBreak=fluid.lookupWorkflowStage(transRec.breakAt);}catch(e){transRec.promise.reject(e);}instantiator.events.onBeginTreeTransaction.fire(transRec);return transRec;};fluid.registerPotentia=function(potentia,transactionId){var instantiator=fluid.globalInstantiator;transactionId=transactionId||instantiator.currentTreeTransactionId;if(!transactionId)transactionId=fluid.beginTreeTransaction().transactionId;var transRec=instantiator.treeTransactions[transactionId];fluid.pushPotentia(transRec.pendingPotentiae,instantiator,potentia);return transRec;};fluid.cancelTreeTransaction=function(transactionId,instantiator){var transRec=instantiator.treeTransactions[transactionId];if(transRec)try{transRec.pendingPotentiae=transRec.restoreRecords;transRec.cancelled=true;fluid.clearTreeTransaction(transRec);fluid.commitPotentiae(transactionId);}catch(e){fluid.log(fluid.logLevel.FAIL,"Fatal error cancelling transaction "+transactionId+": destroying all affected paths");transRec.restoreRecords.creates.forEach((function(potentia){instantiator.clearComponent(potentia.parentThat,potentia.memberName,potentia.parentThat[potentia.memberName]);}));throw e;}};fluid.constructChild=function(parent,memberName,options){var parentPath=fluid.pathForComponent(parent);var path=parentPath.concat([memberName]);return fluid.construct(path,options);};fluid.construct=function(path,componentOptions,constructOptions){constructOptions=constructOptions||{};var transRec=fluid.registerPotentia({path,type:"destroy"},constructOptions.transactionId);var record={recordType:"user"};fluid.each(fluid.componentRecordExpected,(function(troo,key){if(componentOptions[key]!==undefined)record[key]=componentOptions[key];}));record.options=componentOptions;var potentia={path,type:"create",localRecord:constructOptions.localRecord,records:[record]};fluid.registerPotentia(potentia,transRec.transactionId);if(!constructOptions.transactionId)fluid.commitPotentiae(transRec.transactionId);fluid.adaptTransactionFailure(transRec);return constructOptions.returnTransaction?transRec:fluid.getImmediate(fluid.rootComponent,potentia.segs);};fluid.destroy=function(path,instantiator){instantiator=instantiator||fluid.globalInstantiator;var segs=instantiator.parseToSegments(path);if(segs.length===0)fluid.fail("Cannot destroy the root component");var transRec=fluid.registerPotentia({path,type:"destroy"});fluid.commitPotentiae(transRec.transactionId);return transRec;};fluid.constructSingle=function(parentPath,options,instantiator){instantiator=instantiator||fluid.globalInstantiator;parentPath=parentPath||"";var segs=fluid.model.parseToSegments(parentPath,instantiator.parseEL,true);if(typeof options==="string")options={type:options};var type=options.type;if(!type)fluid.fail("Cannot construct singleton object without a type entry");options=$.extend({},options);var gradeNames=options.gradeNames=fluid.makeArray(options.gradeNames);gradeNames.unshift(type);options.type="fluid.component";var root=segs.length===0;if(root)gradeNames.push("fluid.resolveRoot");var memberName=fluid.typeNameToMemberName(options.singleRootType||type);
118segs.push(memberName);return fluid.construct(segs,options);};fluid.destroySingle=function(parentPath,typeName,instantiator){instantiator=instantiator||fluid.globalInstantiator;var segs=fluid.model.parseToSegments(parentPath,instantiator.parseEL,true);var memberName=fluid.typeNameToMemberName(typeName);segs.push(memberName);fluid.destroy(segs,instantiator);};fluid.makeGradeLinkage=function(linkageName,inputNames,outputNames){fluid.defaults(linkageName,{gradeNames:"fluid.component",distributeOptions:{record:outputNames,target:"{/ "+inputNames.join("&")+"}.options.gradeNames"}});fluid.constructSingle([],linkageName);};fluid.componentForPath=function(path){return fluid.globalInstantiator.pathToComponent[fluid.isArrayable(path)?path.join("."):path];};fluid.thisistToApplicable=function(record,recthis,that){return {apply:function(noThis,args){var resolvedThis=fluid.expandImmediate(recthis,that);if(typeof resolvedThis==="string")resolvedThis=fluid.getGlobalValue(resolvedThis);if(!resolvedThis)fluid.fail("Could not resolve reference "+recthis+" to a value");var resolvedFunc=resolvedThis[record.method];if(typeof resolvedFunc!=="function")fluid.fail("Object ",resolvedThis," at reference "+recthis+" has no member named "+record.method+" which is a function ");if(fluid.passLogLevel(fluid.logLevel.TRACE))fluid.log(fluid.logLevel.TRACE,"Applying arguments ",args," to method "+record.method+" of instance ",resolvedThis);return resolvedFunc.apply(resolvedThis,args);}};};fluid.changeToApplicable=function(record,that){fluid.getForComponent(that,"applier");var parsed=fluid.parseValidModelReference(that,"changePath listener record",record.changePath);fluid.materialiseModelPath(parsed.that,parsed.modelSegs);return {apply:function(noThis,args,localRecord,mergeRecord){var value;if(record.func||record.funcName){var invoker=fluid.makeInvoker(that,fluid.filterKeys(record,["func","funcName","args"]),"changePath listener record",localRecord);value=invoker();}else value=fluid.expandImmediate(record.value,that,fluid.extend(localRecord,{arguments:args}));var sources=mergeRecord&&mergeRecord.source&&mergeRecord.source.length?fluid.makeArray(record.source).concat(mergeRecord.source):record.source;parsed.applier.change(parsed.modelSegs,value,record.type,sources);}};};fluid.recordToApplicable=function(record,that,standard){if(record.changePath!==undefined)return fluid.changeToApplicable(record,that,standard);var recthis=record["this"];if(record.method^recthis)fluid.fail("Record ",that,' must contain both entries "method" and "this" if it contains either');return record.method?fluid.thisistToApplicable(record,recthis,that):null;};fluid.getGlobalValueNonComponent=function(funcName,context){var defaults=fluid.defaults(funcName);if(defaults&&fluid.hasGrade(defaults,"fluid.component"))fluid.fail("Error in function specification - cannot invoke function "+funcName+" in the context of "+context+": component creator functions can only be used as subcomponents");return fluid.getGlobalValue(funcName);};fluid.makeInvoker=function(that,invokerec,name,localRecord){invokerec=fluid.upgradePrimitiveFunc(invokerec);if(invokerec.args!==undefined&&invokerec.args!==fluid.NO_ARGUMENTS&&!fluid.isArrayable(invokerec.args))invokerec.args=fluid.makeArray(invokerec.args);var func=fluid.recordToApplicable(invokerec,that);var invokePre=fluid.preExpand(invokerec.args);localRecord=localRecord||{};var expandOptions=fluid.makeStackResolverOptions(that,localRecord,true);func=func||(invokerec.funcName?fluid.getGlobalValueNonComponent(invokerec.funcName,"an invoker"):fluid.expandImmediate(invokerec.func,that));if(!func||!func.apply)fluid.fail("Error in invoker record: could not resolve members func, funcName or method to a function implementation - got "+func+" from ",invokerec);else{if(func===fluid.notImplemented)fluid.fail("Error constructing component "+fluid.dumpComponentAndPath(that)+" - the invoker named "+name+" which was defined in grade "+invokerec.componentSource+" needs to be overridden with a concrete implementation");}return function invokeInvoker(){if(fluid.defeatLogging===false)fluid.pushActivity("invokeInvoker","invoking invoker with name %name and record %record holding component %that",{name,record:invokerec,that});var togo,finalArgs;if(that.lifecycleStatus==="destroyed")fluid.log(fluid.logLevel.WARN,"Ignoring call to invoker "+name+" of component "+fluid.dumpComponentAndPath(that)+" which has been destroyed");else{localRecord.arguments=arguments;if(invokerec.args===undefined||invokerec.args===fluid.NO_ARGUMENTS)finalArgs=arguments;else{fluid.expandImmediateImpl(invokePre,expandOptions);finalArgs=invokePre.source;}togo=func.apply(null,finalArgs);}if(fluid.defeatLogging===false)fluid.popActivity();return togo;};};fluid.event.makeTrackedListenerAdder=function(source){var shadow=fluid.shadowForComponent(source);return function(event){return {addListener:function(listener,namespace,priority,softNamespace,listenerId){fluid.recordListener(event,listener,shadow,listenerId);event.addListener.apply(null,arguments);}};};};
118fluid.event.listenerEngine=function(eventSpec,callback,adder){var argstruc={};function checkFire(){var notall=fluid.find(eventSpec,(function(value,key){if(argstruc[key]===undefined)return true;}));if(!notall){var oldstruc=argstruc;argstruc={};callback(oldstruc);}}fluid.each(eventSpec,(function(event,eventName){adder(event).addListener((function(){argstruc[eventName]=fluid.makeArray(arguments);checkFire();}));}));};fluid.event.dispatchListener=function(that,listener,eventName,eventSpec,wrappedArgs){if(eventSpec.args!==undefined&&eventSpec.args!==fluid.NO_ARGUMENTS&&!fluid.isArrayable(eventSpec.args))eventSpec.args=fluid.makeArray(eventSpec.args);listener=fluid.event.resolveListener(listener);var dispatchPre=fluid.preExpand(eventSpec.args);var localRecord={};var expandOptions=fluid.makeStackResolverOptions(that,localRecord,true);var togo=function(){if(fluid.defeatLogging===false)fluid.pushActivity("dispatchListener","firing to listener to event named %eventName of component %that",{eventName,that});var args=wrappedArgs?arguments[0]:arguments,finalArgs;localRecord.arguments=args;if(eventSpec.args!==undefined&&eventSpec.args!==fluid.NO_ARGUMENTS){fluid.expandImmediateImpl(dispatchPre,expandOptions);finalArgs=dispatchPre.source;}else finalArgs=args;var togo=listener.apply(null,finalArgs);if(fluid.defeatLogging===false)fluid.popActivity();return togo;};fluid.event.impersonateListener(listener,togo);return togo;};fluid.event.resolveSoftNamespace=function(key){if(typeof key!=="string")return null;else{var lastpos=Math.max(key.lastIndexOf("."),key.lastIndexOf("}"));return key.substring(lastpos+1);}};fluid.event.resolveListenerRecord=function(lisrec,that,eventName,namespace,standard){var badRec=function(record,extra){fluid.fail("Error in listener record - could not resolve reference ",record," to a listener or firer. "+'Did you miss out "events." when referring to an event firer?'+extra);};fluid.pushActivity("resolveListenerRecord","resolving listener record for event named %eventName for component %that",{eventName,that});var records=fluid.makeArray(lisrec);var transRecs=fluid.transform(records,(function(record){var expanded=fluid.isPrimitive(record)||record.expander?{listener:record}:fluid.copy(record);var methodist=fluid.recordToApplicable(record,that,standard);if(methodist)expanded.listener=methodist;else expanded.listener=expanded.listener||expanded.func||expanded.funcName;if(!expanded.listener)badRec(record,' Listener record must contain a member named "listener", "func", "funcName" or "method"');var softNamespace=record.method?fluid.event.resolveSoftNamespace(record["this"])+"."+record.method:fluid.event.resolveSoftNamespace(expanded.listener);if(!expanded.namespace&&!namespace&&softNamespace){expanded.softNamespace=true;expanded.namespace=(record.componentSource?record.componentSource:that.typeName)+"."+softNamespace;}var listener=expanded.listener=fluid.expandOptions(expanded.listener,that);if(!listener)badRec(record,"");var firer=false;if(listener.typeName==="fluid.event.firer"){listener=listener.fire;firer=true;}expanded.listener=standard&&(expanded.args&&listener!=="fluid.notImplemented"||firer)?fluid.event.dispatchListener(that,listener,eventName,expanded):listener;expanded.listenerId=fluid.allocateGuid();return expanded;}));var togo={records:transRecs,adderWrapper:standard?fluid.event.makeTrackedListenerAdder(that):null};fluid.popActivity();return togo;};fluid.event.expandOneEvent=function(that,event){var origin;if(typeof event==="string"&&event.charAt(0)!=="{")origin=fluid.getForComponent(that,["events",event]);else origin=fluid.expandOptions(event,that);if(!origin||origin.typeName!=="fluid.event.firer")fluid.fail("Error in event specification - could not resolve base event reference ",event," to an event firer: got ",origin);return origin;};fluid.event.expandEvents=function(that,event){return typeof event==="string"?fluid.event.expandOneEvent(that,event):fluid.transform(event,(function(oneEvent){return fluid.event.expandOneEvent(that,oneEvent);}));};fluid.event.resolveEvent=function(that,eventName,eventSpec){fluid.pushActivity("resolveEvent","resolving event with name %eventName attached to component %that",{eventName,that});var adder=fluid.event.makeTrackedListenerAdder(that);
118if(typeof eventSpec==="string")eventSpec={event:eventSpec};var event=eventSpec.typeName==="fluid.event.firer"?eventSpec:eventSpec.event||eventSpec.events;if(!event)fluid.fail("Event specification for event with name "+eventName+" does not include a base event specification: ",eventSpec);var origin=event.typeName==="fluid.event.firer"?event:fluid.event.expandEvents(that,event);var isMultiple=origin.typeName!=="fluid.event.firer";var isComposite=eventSpec.args||isMultiple;var firer;if(isComposite){firer=fluid.makeEventFirer({name:" [composite] "+fluid.event.nameEvent(that,eventName)});var dispatcher=fluid.event.dispatchListener(that,firer.fire,eventName,eventSpec,isMultiple);if(isMultiple)fluid.event.listenerEngine(origin,dispatcher,adder);else adder(origin).addListener(dispatcher);}else{firer={typeName:"fluid.event.firer"};firer.fire=function(){var outerArgs=fluid.makeArray(arguments);fluid.pushActivity("fireSynthetic","firing synthetic event %eventName ",{eventName});var togo=origin.fire.apply(null,outerArgs);fluid.popActivity();return togo;};firer.addListener=function(listener,namespace,priority,softNamespace,listenerId){var dispatcher=fluid.event.dispatchListener(that,listener,eventName,eventSpec);adder(origin).addListener(dispatcher,namespace,priority,softNamespace,listenerId);};firer.removeListener=function(listener){origin.removeListener(listener);};firer.originEvent=origin;}fluid.popActivity();return firer;};fluid.coerceToPrimitive=function(string){return string==="false"?false:string==="true"?true:isFinite(string)?Number(string):string;};fluid.compactStringToRec=function(string,type){var openPos=string.indexOf("(");var closePos=string.indexOf(")");if(openPos===-1^closePos===-1||openPos>closePos)fluid.fail("Badly-formed compact "+type+" record without matching parentheses: "+string);if(openPos!==-1&&closePos!==-1){var trail=string.substring(closePos+1);if(trail.trim()!=="")fluid.fail("Badly-formed compact "+type+" record "+string+" - unexpected material following close parenthesis: "+trail);var prefix=string.substring(0,openPos);var body=string.substring(openPos+1,closePos).trim();var args=body===""?[]:fluid.transform(body.split(","),(function(str){return str.trim();}),fluid.coerceToPrimitive);var togo=fluid.upgradePrimitiveFunc(prefix,null);togo.args=args;return togo;}else{if(type==="expander")fluid.fail("Badly-formed compact expander record without parentheses: "+string);}return string;};fluid.expandPrefix="@expand:";fluid.expandCompactString=function(string,active){var rec=string;if(string.indexOf(fluid.expandPrefix)===0){var rem=string.substring(fluid.expandPrefix.length);rec={expander:fluid.compactStringToRec(rem,"expander")};}else{if(active)rec=fluid.compactStringToRec(string,active);}return rec;};var singularPenRecord={listeners:"listener",modelListeners:"modelListener"};var singularRecord=$.extend({invokers:"invoker"},singularPenRecord);fluid.expandCompactRec=function(segs,target,source){fluid.guardCircularExpansion(segs,segs.length);var pen=fluid.peek(segs);var active=singularRecord[pen];if(!active&&segs.length>1)active=singularPenRecord[segs[segs.length-2]];fluid.each(source,(function(value,key){if(fluid.isPlainObject(value)){target[key]=fluid.freshContainer(value);segs.push(key);fluid.expandCompactRec(segs,target[key],value);segs.pop();return;}else{if(typeof value==="string")value=fluid.expandCompactString(value,active);}target[key]=value;}));};fluid.expandCompact=function(options){var togo={};fluid.expandCompactRec([],togo,options);return togo;};fluid.extractEL=function(string,options){if(options.ELstyle==="ALL"||options.ELstyle==="{}")return string;else if(options.ELstyle.length===1){if(string.charAt(0)===options.ELstyle)return string.substring(1);}else{if(options.ELstyle==="${}"){var i1=string.indexOf("${");var i2=string.lastIndexOf("}");if(i1===0&&i2!==-1)return string.substring(2,i2);}}};fluid.extractELWithContext=function(string,options){var EL=fluid.extractEL(string,options);if(fluid.isIoCReference(EL))return fluid.parseContextReference(EL);else{if(options.ELstyle==="{}")return null;}return EL?{path:EL}:EL;};fluid.parseContextReference=function(reference,index,delimiter){index=index||
1180;var isNested=reference.charAt(index+1)==="{",endcpos,context,nested;if(isNested){nested=fluid.parseContextReference(reference,index+1,"}");endcpos=nested.endpos;}else endcpos=reference.indexOf("}",index+1);if(endcpos===-1)fluid.fail('Cannot parse context reference "'+reference+'": Malformed context reference without }');if(isNested)context=nested;else context=reference.substring(index+1,endcpos);var endpos=delimiter?reference.indexOf(delimiter,endcpos+1):reference.length;var path=reference.substring(endcpos+1,endpos);if(path.charAt(0)===".")path=path.substring(1);return {context,path,endpos};};fluid.renderContextReference=function(parsed){var context=parsed.context;return "{"+(fluid.isPrimitive(context)?context:fluid.renderContextReference(context))+"}"+(parsed.path?"."+parsed.path:"");};fluid.resolveContextValue=function(string,options){function fetch(parsed){fluid.pushActivity("resolveContextValue","resolving context value %parsed",{parsed});var togo=options.fetcher(parsed);fluid.pushActivity("resolvedContextValue","resolved value %parsed to value %value",{parsed,value:togo});fluid.popActivity(2);return togo;}var parsed;if(options.bareContextRefs&&fluid.isIoCReference(string)){parsed=fluid.parseContextReference(string);return fetch(parsed);}else{if(options.ELstyle&&options.ELstyle!=="${}"){parsed=fluid.extractELWithContext(string,options);if(parsed)return fetch(parsed);}}if(options.ELstyle==="${}")while(typeof string==="string"){var i1=string.indexOf("${");var i2=string.indexOf("}",i1+2);if(i1!==-1&&i2!==-1){if(string.charAt(i1+2)==="{"){parsed=fluid.parseContextReference(string,i1+2,"}");i2=parsed.endpos;}else parsed={path:string.substring(i1+2,i2)};var subs=fetch(parsed);var all=i1===0&&i2===string.length-1;if(subs===undefined||subs===null)return subs;string=all?subs:string.substring(0,i1)+subs+string.substring(i2+1);}else break;}return string;};fluid.fetchExpandChildren=function(target,i,segs,source,mergePolicy,options){if(source.expander){var expanded=fluid.expandExpander(target,source,options);if(fluid.isPrimitive(expanded)||!fluid.isPlainObject(expanded)||fluid.isArrayable(expanded)^fluid.isArrayable(target))return expanded;else $.extend(true,target,expanded);}fluid.each(source,(function(newSource,key){if(newSource===undefined)target[key]=undefined;else{if(key!=="expander"){segs[i]=key;if(fluid.getImmediate(options.exceptions,segs,i)!==true)options.strategy(target,key,i+1,segs,source,mergePolicy);}}}));return target;};fluid.isUnexpandable=function(source){return fluid.isPrimitive(source)||!fluid.isPlainObject(source);};fluid.expandSource=function(options,target,i,segs,deliverer,source,policy,recurse){var expanded,isTrunk;var thisPolicy=fluid.derefMergePolicy(policy);if(typeof source==="string"&&!thisPolicy.noexpand)if(!options.defaultEL||source.charAt(0)==="{"){fluid.pushActivity("expandContextValue","expanding context value %source held at path %path",{source,path:fluid.path.apply(null,segs.slice(0,i))});expanded=fluid.copy(fluid.resolveContextValue(source,options));fluid.popActivity(1);}else expanded=source;else if(thisPolicy.noexpand||fluid.isUnexpandable(source))expanded=fluid.copy(source);else if(source.expander)expanded=fluid.expandExpander(deliverer,source,options);else{expanded=fluid.freshContainer(source);isTrunk=true;}if(expanded!==fluid.NO_VALUE)deliverer(expanded);if(isTrunk)recurse(expanded,source,i,segs,policy);return expanded;};fluid.guardCircularExpansion=function(segs,i){if(i>fluid.strategyRecursionBailout)fluid.fail("Overflow/circularity in options expansion, current path is ",segs," at depth ",i,' - please ensure options are not circularly connected, or protect from expansion using the "noexpand" policy or expander');};fluid.makeExpandStrategy=function(options){var recurse=function(target,source,i,segs,policy){return fluid.fetchExpandChildren(target,i||0,segs||[],source,policy,options);};var strategy=function(target,name,i,segs,source,policy){fluid.guardCircularExpansion(segs,i);if(!target)return;if(target.hasOwnProperty(name))return target[name];if(source===undefined){source=fluid.regenerateCursor(options.source,segs,i-1,options.sourceStrategy);policy=fluid.regenerateCursor(options.mergePolicy,segs,i-1,fluid.concreteTrundler);}var thisSource=options.sourceStrategy(source,name,i,segs);var thisPolicy=fluid.concreteTrundler(policy,name);function deliverer(value){target[name]=value;}return fluid.expandSource(options,target,i,segs,deliverer,thisSource,thisPolicy,recurse);};options.recurse=recurse;options.strategy=strategy;return strategy;};fluid.defaults("fluid.makeExpandOptions",{ELstyle:"${}",bareContextRefs:true,target:fluid.inCreationMarker});fluid.makeExpandOptions=function(source,options){options=$.extend({},fluid.rawDefaults("fluid.makeExpandOptions"),options);options.defaultEL=options.ELStyle==="${}"&&options.bareContextRefs;options.expandSource=function(source){return fluid.expandSource(options,null,0,[],fluid.identity,source,options.mergePolicy,false);};if(!fluid.isUnexpandable(source)){options.source=source;options.target=fluid.freshContainer(source);options.sourceStrategy=options.sourceStrategy||fluid.concreteTrundler;fluid.makeExpandStrategy(options);
118options.initter=function(){options.target=fluid.fetchExpandChildren(options.target,0,[],options.source,options.mergePolicy,options);};}else{options.strategy=fluid.concreteTrundler;options.initter=fluid.identity;if(typeof source==="string")options.target=(options.defer?fluid.copy:fluid.identity)(options.expandSource(source));else options.target=source;options.immutableTarget=true;}return options;};fluid.expand=function(source,options){var expandOptions=fluid.makeExpandOptions(source,options);expandOptions.initter();return expandOptions.target;};fluid.preExpandRecurse=function(root,source,holder,member,rootSegs){fluid.guardCircularExpansion(rootSegs,rootSegs.length);function pushExpander(expander){root.expanders.push({expander,holder,member});delete holder[member];}if(fluid.isIoCReference(source)){var parsed=fluid.parseContextReference(source);var segs=fluid.model.parseEL(parsed.path);pushExpander({typeFunc:fluid.expander.fetch,context:parsed.context,segs});}else{if(fluid.isPlainObject(source))if(source.expander){source.expander.typeFunc=fluid.getGlobalValue(source.expander.type||"fluid.expander.invokeFunc");pushExpander(source.expander);}else fluid.each(source,(function(value,key){rootSegs.push(key);fluid.preExpandRecurse(root,value,source,key,rootSegs);rootSegs.pop();}));}};fluid.preExpand=function(source){var root={expanders:[],source:fluid.isUnexpandable(source)?source:fluid.copy(source)};fluid.preExpandRecurse(root,root.source,root,"source",[]);return root;};fluid.expandImmediate=function(source,that,localRecord,noproxy){var options=fluid.makeStackResolverOptions(that,localRecord,true);options.noproxy=!!noproxy;var root=fluid.preExpand(source);fluid.expandImmediateImpl(root,options);return root.source;};fluid.expandImmediateImpl=function(root,options){var expanders=root.expanders;for(var i=0;i<expanders.length;++i){var expander=expanders[i];expander.holder[expander.member]=expander.expander.typeFunc(null,expander,options);}};fluid.expandExpander=function(deliverer,source,options){var expander=fluid.getGlobalValue(source.expander.type||"fluid.expander.invokeFunc");if(!expander)fluid.fail("Unknown expander with type "+source.expander.type);return expander(deliverer,source,options);};fluid.proxyComponentHandler=function(target,prop){return prop===Symbol.toStringTag?Object.prototype.toString.call(target):prop in target?target[prop]:fluid.getForComponent(target,prop);};fluid.proxyComponent=function(component){var shadow=fluid.shadowForComponent(component);if(!shadow.proxy)shadow.proxy=new Proxy(component,{get:fluid.proxyComponentHandler});return shadow.proxy;};fluid.possiblyProxyComponent=function(value){return fluid.isComponent(value)&&value.lifecycleStatus!=="treeConstructed"?fluid.proxyComponent(value):value;};fluid.proxyComponentArgs=function(args){args.forEach((function(arg,i){args[i]=fluid.possiblyProxyComponent(arg);}));};fluid.registerNamespace("fluid.expander");fluid.expander.fetch=function(deliverer,source,options){var localRecord=options.localRecord,context=source.expander.context,segs=source.expander.segs;var inLocal=localRecord[context]!==undefined;var contextStatus=options.contextThat.lifecycleStatus;var fast=contextStatus==="treeConstructed"||contextStatus==="destroyed";var component=inLocal?localRecord[context]:fluid.resolveContext(context,options.contextThat,fast);if(component!==undefined){var root=component;if(inLocal||component.lifecycleStatus!=="constructing")for(var i=0;i<segs.length;++i)root=root?root[segs[i]]:undefined;else root=fluid.getForComponent(component,segs);if(root===undefined&&!inLocal)root=fluid.getForComponent(component,segs);if(!fast&&!options.noproxy&&fluid.isComponent(root))return fluid.proxyComponent(root);return root;}else{if(segs.length>0)fluid.triggerMismatchedPathError(source.expander,options.contextThat);}};fluid.expander.invokeFunc=function(deliverer,source,options){var expander=source.expander;var args=fluid.makeArray(expander.args);var whichFuncEntry=expander.func?"func":expander.funcName?"funcName":null;expander.args=args;if(options.recurse)args=options.recurse([],args);else{expander=fluid.expandImmediate(expander,options.contextThat,options.localRecord,expander.noproxy);args=expander.args;}if(!expander.noproxy)fluid.proxyComponentArgs(args);var funcEntry=expander[whichFuncEntry];var func=(options.expandSource?options.expandSource(funcEntry):funcEntry)||fluid.recordToApplicable(expander,options.contextThat);if(typeof func==="string")func=fluid.getGlobalValue(func);if(!func)fluid.fail("Error in expander record ",source.expander,": "+source.expander[whichFuncEntry]+" could not be resolved to a function for component ",options.contextThat);return func.apply(null,args);};fluid.expander.noexpand=function(deliverer,source){return source.expander.value?source.expander.value:source.expander.tree;};fluid.noexpand=fluid.expander.noexpand;"use strict";fluid.model.makeEnvironmentStrategy=function(environment){return function(root,segment,index){return index===0&&environment[segment]?environment[segment]:undefined;};};fluid.model.defaultCreatorStrategy=function(root,segment){if(root[segment]===undefined){root[segment]={};return root[segment];}};fluid.model.defaultFetchStrategy=function(root,segment){return root[segment];};fluid.model.funcResolverStrategy=function(root,segment){if(root.resolvePathSegment)return root.resolvePathSegment(segment);};fluid.model.traverseWithStrategy=function(root,segs,initPos,config,uncess){var strategies=config.strategies;var limit=segs.length-uncess;for(var i=initPos;i<limit;++i){if(!root)return root;var accepted;for(var j=0;j<strategies.length;++j){accepted=strategies[j](root,segs[i],i+1,segs);if(accepted!==undefined)break;}if(accepted===fluid.NO_VALUE)accepted=undefined;root=accepted;}return root;};fluid.model.getValueAndSegments=function(root,EL,config,initSegs){return fluid.model.accessWithStrategy(root,EL,fluid.NO_VALUE,config,initSegs,true);};fluid.model.makeTrundler=function(config){return function(valueSeg,EL){return fluid.model.getValueAndSegments(valueSeg.root,EL,config,valueSeg.segs);};};
118fluid.model.getWithStrategy=function(root,EL,config,initSegs){return fluid.model.accessWithStrategy(root,EL,fluid.NO_VALUE,config,initSegs);};fluid.model.setWithStrategy=function(root,EL,newValue,config,initSegs){fluid.model.accessWithStrategy(root,EL,newValue,config,initSegs);};fluid.model.accessWithStrategy=function(root,EL,newValue,config,initSegs,returnSegs){if(!fluid.isPrimitive(EL)&&!fluid.isArrayable(EL)){var key=EL.type||"default";var resolver=config.resolvers[key];if(!resolver)fluid.fail("Unable to find resolver of type "+key);var trundler=fluid.model.makeTrundler(config);var valueSeg={root,segs:initSegs};valueSeg=resolver(valueSeg,EL,trundler);if(EL.path&&valueSeg)valueSeg=trundler(valueSeg,EL.path);return returnSegs?valueSeg:valueSeg?valueSeg.root:undefined;}else return fluid.model.accessImpl(root,EL,newValue,config,initSegs,returnSegs,fluid.model.traverseWithStrategy);};fluid.registerNamespace("fluid.pathUtil");fluid.pathUtil.getPathSegmentImpl=function(accept,path,i){var segment=null;if(accept)segment="";var escaped=false;var limit=path.length;for(;i<limit;++i){var c=path.charAt(i);if(!escaped)if(c===".")break;else if(c==="\\")escaped=true;else{if(segment!==null)segment+=c;}else{escaped=false;if(segment!==null)segment+=c;}}if(segment!==null)accept[0]=segment;return i;};var globalAccept=[];fluid.pathUtil.parseEL=function(path){var togo=[];var index=0;var limit=path.length;while(index<limit){var firstdot=fluid.pathUtil.getPathSegmentImpl(globalAccept,path,index);togo.push(globalAccept[0]);index=firstdot+1;}return togo;};fluid.pathUtil.composeSegment=function(prefix,toappend){toappend=toappend.toString();for(var i=0;i<toappend.length;++i){var c=toappend.charAt(i);if(c==="."||c==="\\"||c==="}")prefix+="\\";prefix+=c;}return prefix;};fluid.pathUtil.escapeSegment=function(segment){return fluid.pathUtil.composeSegment("",segment);};fluid.pathUtil.composePath=function(prefix,suffix){if(prefix.length!==0)prefix+=".";return fluid.pathUtil.composeSegment(prefix,suffix);};fluid.pathUtil.composeSegments=function(){var path="";for(var i=0;i<arguments.length;++i)path=fluid.pathUtil.composePath(path,arguments[i]);return path;};fluid.pathUtil.matchSegments=function(toMatch,segs,start,end){if(end-start!==toMatch.length)return false;for(var i=start;i<end;++i)if(segs[i]!==toMatch[i-start])return false;return true;};fluid.model.unescapedParser={parse:fluid.model.parseEL,compose:fluid.model.composeSegments};fluid.model.defaultGetConfig={parser:fluid.model.unescapedParser,strategies:[fluid.model.funcResolverStrategy,fluid.model.defaultFetchStrategy]};fluid.model.defaultSetConfig={parser:fluid.model.unescapedParser,strategies:[fluid.model.funcResolverStrategy,fluid.model.defaultFetchStrategy,fluid.model.defaultCreatorStrategy]};fluid.model.escapedParser={parse:fluid.pathUtil.parseEL,compose:fluid.pathUtil.composeSegments};fluid.model.escapedGetConfig={parser:fluid.model.escapedParser,strategies:[fluid.model.defaultFetchStrategy]};fluid.model.escapedSetConfig={parser:fluid.model.escapedParser,strategies:[fluid.model.defaultFetchStrategy,fluid.model.defaultCreatorStrategy]};fluid.stronglyConnected=function(vertices,accessor){var that={stack:[],accessor,components:[],index:0};vertices.forEach((function(vertex){delete vertex.lowIndex;delete vertex.tarjanIndex;delete vertex.onStack;}));vertices.forEach((function(vertex){if(vertex.tarjanIndex===undefined)fluid.stronglyConnectedOne(vertex,that);}));return that.components;};fluid.stronglyConnectedOne=function(vertex,that){vertex.tarjanIndex=that.index;vertex.lowIndex=that.index;++that.index;that.stack.push(vertex);vertex.onStack=true;var outEdges=that.accessor(vertex);outEdges.forEach((function(outVertex){if(outVertex.tarjanIndex===undefined){fluid.stronglyConnectedOne(outVertex,that);vertex.lowIndex=Math.min(vertex.lowIndex,outVertex.lowIndex);}else{if(outVertex.onStack)vertex.lowIndex=Math.min(vertex.lowIndex,outVertex.tarjanIndex);}}));if(vertex.lowIndex===vertex.tarjanIndex){var component=[],outVertex;do{outVertex=that.stack.pop();outVertex.onStack=false;component.push(outVertex);}while(outVertex!==vertex);that.components.push(component);}};fluid.initRelayModel=function(that){return that.model;};fluid.findInitModelTransaction=function(that){var transRec=fluid.currentTreeTransaction();if(transRec&&fluid.isComponent(that))return transRec.initModelTransaction[that.id];};fluid.enlistModelComponent=function(that){var treeTransaction=fluid.currentTreeTransaction();var transId=treeTransaction.initModelTransactionId;var initModelTransaction=treeTransaction.initModelTransaction;var enlist=initModelTransaction[that.id];if(!enlist){var shadow=fluid.shadowForComponent(that);enlist={that,applier:fluid.getForComponent(that,"applier"),initModels:[],completeOnInit:!!shadow.initTransactionId,transaction:that.applier.initiate(null,"init",transId)};initModelTransaction[that.id]=enlist;var transRec=fluid.getModelTransactionRec(fluid.rootComponent,transId);transRec[that.applier.applierId]={transaction:enlist.transaction};fluid.registerMaterialisationListener(that,that.applier);}return enlist;};fluid.clearTransactions=function(){var instantiator=fluid.globalInstantiator;fluid.clear(instantiator.modelTransactions);};fluid.failureEvent.addListener(fluid.clearTransactions,"clearTransactions","before:fail");fluid.clearLinkCounts=function(transRec,relaysAlso){fluid.each(transRec,(function(value,key){if(typeof value==="number")transRec[key]=0;else{if(relaysAlso&&value.options&&typeof value.relayCount==="number")value.relayCount=0;}}));};fluid.computeInitialOutArcs=function(transacs,initModelTransaction){return fluid.transform(initModelTransaction,(function(recel,id){var oneOutArcs={};var listeners=recel.that.applier.listeners.sortedListeners;fluid.each(listeners,(function(listener){if(listener.isRelay&&!fluid.isExcludedChangeSource(transacs[id],listener.cond)){var targetId=listener.targetId;if(targetId!==id)oneOutArcs[targetId]=true;}}));var oneOutArcList=Object.keys(oneOutArcs);var togo=oneOutArcList.map((function(id){return initModelTransaction[id];}));
118fluid.remove_if(togo,(function(rec){return rec===undefined;}));return togo;}));};fluid.sortCompleteLast=function(reca,recb){return (reca.completeOnInit?1:0)-(recb.completeOnInit?1:0);};fluid.subscribeResourceModelUpdates=function(that,resourceMapEntry){var treeTransaction=fluid.currentTreeTransaction();var resourceSpec=resourceMapEntry.resourceSpec;var resourceUpdateListener=function(){var initTransaction=fluid.getImmediate(treeTransaction,["initModelTransaction",that.id]);var trans=initTransaction?initTransaction.transaction:that.applier.initiate();resourceMapEntry.listeners.forEach((function(oneListener){var innerValue=fluid.getImmediate(resourceSpec,oneListener.resourceSegs);var segs=oneListener.segs;trans.change(segs,null,"DELETE");trans.change(segs,innerValue);}));if(!initTransaction)trans.commit();else{var transRec=fluid.getModelTransactionRec(fluid.rootComponent,trans.id);fluid.clearLinkCounts(transRec,true);that.applier.preCommit.fire(trans,that);}};resourceSpec.onFetched.addListener(resourceUpdateListener);fluid.recordListener(resourceSpec.onFetched,resourceUpdateListener,fluid.shadowForComponent(that));};fluid.resolveResourceModelWorkflow=function(shadows,treeTransaction){var initModelTransaction=treeTransaction.initModelTransaction;shadows.forEach((function(shadow){var that=shadow.that;fluid.registerMergedModelListeners(that,that.options.modelListeners);fluid.each(shadow.modelSourcedDynamicComponents,(function(componentRecord,key){fluid.constructLensedComponents(shadow,initModelTransaction[that.id],componentRecord.sourcesParsed,key);}));}));};fluid.condenseResourceMap=function(resourceMap){var byId={};
118resourceMap.forEach((function(resourceMapEntry){var resourceSpec=resourceMapEntry.fetchOne.resourceSpec;var id=resourceSpec.transformEvent.eventId;var existing=byId[id];if(!existing)existing=byId[id]={resourceSpec,listeners:[]};existing.listeners.push({resourceSegs:resourceMapEntry.fetchOne.segs,segs:resourceMapEntry.segs});}));return byId;};fluid.operateInitialTransaction=function(initModelTransaction,transId){var transacs=fluid.transform(initModelTransaction,(function(recel){return recel.transaction;}));var outArcs=fluid.computeInitialOutArcs(transacs,initModelTransaction);var arcAccessor=function(initTransactionRecord){return outArcs[initTransactionRecord.that.id];};var recs=fluid.values(initModelTransaction);var components=fluid.stronglyConnected(recs,arcAccessor);var priorityIndex=0;components.forEach((function(component){component.forEach((function(recel){recel.initPriority=recel.completeOnInit?Infinity:priorityIndex++;}));}));recs.sort((function(reca,recb){return reca.initPriority-recb.initPriority;}));var transRec=fluid.getModelTransactionRec(fluid.rootComponent,transId);recs.forEach((function applyInitialModelTransactionValues(recel){var that=recel.that,applier=recel.that.applier,transac=transacs[that.id];if(recel.completeOnInit)fluid.notifyModelChanges(applier.listeners.sortedListeners,"ADD",transac.oldHolder,fluid.emptyHolder,null,transac,applier,that);else fluid.each(recel.initModels,(function(oneInitModel){if(oneInitModel!==undefined)transac.fireChangeRequest({type:"ADD",segs:[],value:oneInitModel});fluid.clearLinkCounts(transRec,true);}));}));recs.forEach((function updateInitialModelTransactionRelays(recel){var that=recel.that,applier=recel.that.applier,transac=transacs[that.id];applier.preCommit.fire(transac,that);if(!recel.completeOnInit){var resourceMapById=fluid.condenseResourceMap(applier.resourceMap);fluid.each(resourceMapById,(function(resourceMapEntry){fluid.subscribeResourceModelUpdates(that,resourceMapEntry);}));applier.earlyModelResolved.fire(that.model);applier.preCommit.fire(transac,that);recel.completeOnInit=true;var shadow=fluid.shadowForComponent(that);if(shadow&&!shadow.initTransactionId)shadow.initTransactionId=transId;}}));};fluid.parseModelReference=function(that,ref){var parsed=fluid.parseContextReference(ref);parsed.segs=fluid.pathUtil.parseEL(parsed.path);return parsed;};fluid.parseValidModelReference=function(that,name,ref,permitNonModel){var localRecord=fluid.shadowForComponent(that).localRecord;var reject=function(){var failArgs=["Error in "+name+": ",ref].concat(fluid.makeArray(arguments));fluid.fail.apply(null,failArgs);};var rejectNonModel=function(value){reject(" must be a reference to a component with a ChangeApplier (descended from fluid.modelComponent), instead got ",value);};var parsed;if(typeof ref==="string")if(fluid.isIoCReference(ref)){parsed=fluid.parseModelReference(that,ref);var modelPoint=parsed.segs.indexOf("model");if(modelPoint===-1)if(permitNonModel)parsed.nonModel=true;else reject(' must be a reference into a component model via a path including the segment "model"');else{parsed.modelSegs=parsed.segs.slice(modelPoint+1);parsed.contextSegs=parsed.segs.slice(0,modelPoint);delete parsed.path;}}else parsed={path:ref,modelSegs:that.applier.parseEL(ref)};else{if(!fluid.isArrayable(ref.segs))reject(' must contain an entry "segs" holding path segments referring a model path within a component');parsed={context:ref.context,modelSegs:fluid.expandImmediate(ref.segs,that,localRecord)};fluid.each(parsed.modelSegs,(function(seg,index){if(!fluid.isValue(seg))reject(" did not resolve path segment reference "+ref.segs[index]+" at index "+index);}));}var contextTarget,target;if(parsed.context)if(localRecord&&parsed.context in localRecord)if(parsed.context==="source"&&localRecord.sourceModelReference){target=localRecord.sourceModelReference.that;parsed.modelSegs=localRecord.sourceModelReference.modelSegs.concat(parsed.segs);parsed.nonModel=false;}else target=localRecord[parsed.context];else{contextTarget=fluid.resolveContext(parsed.context,that);if(!contextTarget)reject(" context must be a reference to an existing component");target=parsed.contextSegs?fluid.getForComponent(contextTarget,parsed.contextSegs):contextTarget;}else target=that;
118if(!parsed.nonModel){if(!fluid.isComponent(target))rejectNonModel(target);if(!target.applier)fluid.getForComponent(target,["applier"]);if(!target.applier)rejectNonModel(target);}parsed.that=target;parsed.applier=target&&target.applier;if(!parsed.path&&parsed.applier)parsed.path=target&&parsed.applier.composeSegments.apply(null,parsed.modelSegs);return parsed;};fluid.registerNamespace("fluid.materialiserRegistry");fluid.matchMaterialiserSpec=function(record,segs){var trundle=record;var routedPath=null;for(var i=0;i<segs.length;++i){var seg=segs[i];var wildcard=trundle["*"];if(wildcard)routedPath=wildcard;trundle=trundle[seg]||wildcard;if(!trundle)break;else{if(trundle.materialiser)return trundle;}}if(routedPath)fluid.fail("Materialised DOM path ",segs," did not match any registered materialiser - available paths are "+Object.keys(routedPath).join(", "));return null;};fluid.materialiseModelPath=function(that,segs){var shadow=fluid.shadowForComponent(that);var materialisedPath=["materialisedPaths"].concat(segs);if(!fluid.getImmediate(shadow,materialisedPath))fluid.each(fluid.materialiserRegistry,(function(gradeRecord,grade){if(fluid.componentHasGrade(that,grade)){var record=fluid.matchMaterialiserSpec(gradeRecord,segs);if(record&&record.materialiser){fluid.model.setSimple(shadow,materialisedPath,{});var args=fluid.makeArray(record.args);fluid.invokeGlobalFunction(record.materialiser,[that,fluid.makeArray(segs)].concat(args));}}}));};fluid.materialiseAgainstValue=function(that,newValue,segs){if(fluid.isPlainObject(newValue))fluid.each(newValue,(function(inner,seg){segs.push(seg);fluid.materialiseAgainstValue(that,inner,segs);segs.pop();}));else fluid.materialiseModelPath(that,segs);};fluid.registerMaterialisationListener=function(that,applier){fluid.each(fluid.materialiserRegistry,(function(gradeRecord,grade){if(fluid.componentHasGrade(that,grade))fluid.each(gradeRecord,(function(rest,root){applier.modelChanged.addListener({transactional:false,path:root},(function(newValue){var segs=[root];fluid.materialiseAgainstValue(that,newValue,segs);}));}));}));};fluid.getModelTransactionRec=function(that,transId){if(!transId)fluid.fail("Cannot get transaction record without transaction id");var instantiator=fluid.isComponent(that)&&!fluid.isDestroyed(that,true)?fluid.globalInstantiator:null;if(!instantiator)return null;var transRec=instantiator.modelTransactions[transId];if(!transRec)transRec=instantiator.modelTransactions[transId]={relays:[],sources:{},externalChanges:{}};return transRec;};fluid.recordChangeListener=function(component,applier,sourceListener,listenerId){var shadow=fluid.shadowForComponent(component);fluid.recordListener(applier.modelChanged,sourceListener,shadow,listenerId);};fluid.registerRelayTransaction=function(transRec,targetApplier,transId,options,npOptions){var newTrans=targetApplier.initiate("relay",null,transId);var transEl=transRec[targetApplier.applierId]={transaction:newTrans,relayCount:0,namespace:npOptions.namespace,priority:npOptions.priority,options};transEl.priority=fluid.parsePriority(transEl.priority,transRec.relays.length,false,"model relay");transRec.relays.push(transEl);return transEl;};fluid.relayRecursionBailout=100;fluid.registerDirectChangeRelay=function(target,targetSegs,source,sourceSegs,linkId,transducer,options,npOptions){var targetApplier=options.targetApplier||target.applier;var sourceApplier=options.sourceApplier||source.applier;if(!options.targetApplier)fluid.materialiseModelPath(target,targetSegs);if(!options.sourceApplier)fluid.materialiseModelPath(source,sourceSegs);var applierId=targetApplier.applierId;targetSegs=fluid.makeArray(targetSegs);sourceSegs=fluid.makeArray(sourceSegs);var sourceListener=function(newValue,oldValue,path,changeRequest,trans,applier){var transId=trans.id;var transRec=fluid.getModelTransactionRec(target,transId);if(applier&&trans&&!transRec[applier.applierId])transRec[applier.applierId]={transaction:trans};var transEl=transRec[applierId];transRec[linkId]=transRec[linkId]||0;var relay=true;if(relay){++transRec[linkId];if(transRec[linkId]>fluid.relayRecursionBailout)fluid.fail("Error in model relay specification at component ",target," - operated more than "+fluid.relayRecursionBailout+" relays without model value settling - current model contents are ",trans.newHolder.model);
118if(!transEl)transEl=fluid.registerRelayTransaction(transRec,targetApplier,transId,options,npOptions);if(transducer&&!options.targetApplier){fluid.pushActivity("relayTransducer",'computing modelRelay output for rule with target path "%targetSegs" and namespace "%namespace"',{targetSegs,namespace:npOptions.namespace});transducer(transEl.transaction,options.sourceApplier?undefined:newValue,source,sourceSegs,targetSegs,changeRequest);fluid.popActivity();}else if(changeRequest&&changeRequest.type==="DELETE"){var deleteSegs=targetSegs.concat(changeRequest.segs.slice(sourceSegs.length));transEl.transaction.fireChangeRequest({type:"DELETE",segs:deleteSegs});}else{if(newValue!==undefined)transEl.transaction.fireChangeRequest({type:"ADD",segs:targetSegs,value:newValue});}}};var spec=sourceApplier.modelChanged.addListener({isRelay:true,cond:transducer&&transducer.cond,targetId:target.id,targetApplierId:targetApplier.id,segs:sourceSegs,transactional:options.transactional},sourceListener);if(fluid.passLogLevel(fluid.logLevel.TRACE))fluid.log(fluid.logLevel.TRACE,"Adding relay listener with listenerId "+spec.listenerId+" to source applier with id "+sourceApplier.applierId+" from target applier with id "+applierId+" for target component with id "+target.id);if(source){fluid.recordChangeListener(source,sourceApplier,sourceListener,spec.listenerId);if(target!==source)fluid.recordChangeListener(target,sourceApplier,sourceListener,spec.listenerId);}};fluid.connectModelRelay=function(source,sourceSegs,target,targetSegs,options){var linkId=fluid.allocateGuid();fluid.enlistModelComponent(target);fluid.enlistModelComponent(source);var npOptions=fluid.filterKeys(options,["namespace","priority"]);if(options.update)if(options.targetApplier)fluid.registerDirectChangeRelay(source,sourceSegs,target,targetSegs,linkId,null,{transactional:false,targetApplier:options.targetApplier,refCount:options.refCount,update:options.update},npOptions);else fluid.registerDirectChangeRelay(target,targetSegs,source,[],linkId+"-transform",options.forwardAdapter,{transactional:true,sourceApplier:options.forwardApplier},npOptions);else{fluid.registerDirectChangeRelay(target,targetSegs,source,sourceSegs,linkId,options.forwardAdapter,{transactional:false},npOptions);fluid.registerDirectChangeRelay(source,sourceSegs,target,targetSegs,linkId,options.backwardAdapter,{transactional:false},npOptions);}};fluid.parseSourceExclusionSpec=function(targetSpec,sourceSpec){targetSpec.excludeSource=fluid.arrayToHash(fluid.makeArray(sourceSpec.excludeSource||(sourceSpec.includeSource?"*":undefined)));targetSpec.includeSource=fluid.arrayToHash(fluid.makeArray(sourceSpec.includeSource));return targetSpec;};fluid.isExcludedChangeSource=function(transaction,spec){if(!spec||!spec.excludeSource)return false;
118var excluded=spec.excludeSource["*"];for(var source in transaction.fullSources){if(spec.excludeSource[source])excluded=true;if(spec.includeSource[source])excluded=false;}return excluded;};fluid.model.guardedAdapter=function(transaction,cond,func,args){if(!fluid.isExcludedChangeSource(transaction,cond)&&func!==fluid.model.transform.uninvertibleTransform)func.apply(null,args);};fluid.transformToAdapter=function(transform,targetPath){var basedTransform={};basedTransform[targetPath]=transform;return function(trans,newValue,source,sourceSegs,targetSegs,changeRequest){if(changeRequest&&changeRequest.type==="DELETE")trans.fireChangeRequest({type:"DELETE",path:targetPath});var oldTarget=fluid.getImmediate(trans.oldHolder.model,targetSegs);var oldSource=fluid.getImmediate(source.model,sourceSegs);fluid.model.transformWithRules(newValue,basedTransform,{finalApplier:trans,oldTarget,oldSource});};};fluid.makeTransformPackage=function(componentThat,transform,sourcePath,targetPath,forwardCond,backwardCond,namespace,priority){var that={forwardHolder:{model:transform},backwardHolder:{model:null}};that.generateAdapters=function(trans){that.forwardAdapterImpl=fluid.transformToAdapter(trans?trans.newHolder.model:that.forwardHolder.model,targetPath);if(sourcePath!==null){var inverted=fluid.model.transform.invertConfiguration(transform);if(inverted!==fluid.model.transform.uninvertibleTransform){that.backwardHolder.model=inverted;that.backwardAdapterImpl=fluid.transformToAdapter(that.backwardHolder.model,sourcePath);}else that.backwardAdapterImpl=inverted;}};that.forwardAdapter=function(transaction,newValue){if(newValue===undefined)that.generateAdapters();fluid.model.guardedAdapter(transaction,forwardCond,that.forwardAdapterImpl,arguments);};that.forwardAdapter.cond=forwardCond;that.runTransform=function(trans){trans.commit();trans.reset();};that.forwardApplier=fluid.makeHolderChangeApplier(that.forwardHolder);that.forwardApplier.isRelayApplier=true;that.invalidator=fluid.makeEventFirer({name:"Invalidator for model relay with applier "+that.forwardApplier.applierId});if(sourcePath!==null){that.backwardApplier=fluid.makeHolderChangeApplier(that.backwardHolder);that.backwardAdapter=function(transaction){fluid.model.guardedAdapter(transaction,backwardCond,that.backwardAdapterImpl,arguments);};that.backwardAdapter.cond=backwardCond;}that.update=that.invalidator.fire;var implicitOptions={targetApplier:that.forwardApplier,update:that.update,namespace,priority,refCount:0};that.forwardHolder.model=fluid.parseImplicitRelay(componentThat,transform,[],implicitOptions);that.refCount=implicitOptions.refCount;that.namespace=namespace;that.priority=priority;that.generateAdapters();that.invalidator.addListener(that.generateAdapters);that.invalidator.addListener(that.runTransform);return that;};fluid.singleTransformToFull=function(singleTransform){var expanded=typeof singleTransform==="string"?{type:singleTransform}:singleTransform;var withPath=$.extend(true,{inputPath:""},expanded);return {"":{transform:withPath}};};fluid.funcToSingleTransform=function(that,mrrec){if(mrrec.func){if((mrrec.args!==undefined)+(mrrec.source!==undefined)+(mrrec.value!==undefined)!==1)fluid.fail("Error in model relay definition: short-form relay must specify just one out of (args, source, value)");return {type:"fluid.transforms.free",func:mrrec.func,args:mrrec.args?mrrec.args:[fluid.isIoCReference(mrrec.source)?mrrec.source:"{that}.model."+mrrec.source]};}else return null;};fluid.model.relayConditions={initOnly:{includeSource:"init"},liveOnly:{excludeSource:"init"},never:{includeSource:[]},always:{}};fluid.model.expandRelayCondition=function(condition){var exclusionRec;if(condition==="initOnly")fluid.log(fluid.logLevel.WARN,'The relay condition "initOnly" is deprecated: Please use the form \'includeSource: "init"\' instead');else{if(condition==="liveOnly")fluid.log(fluid.logLevel.WARN,'The relay condition "liveOnly" is deprecated: Please use the form \'excludeSource: "init"\' instead');}if(!condition)exclusionRec={};else if(typeof condition==="string"){exclusionRec=fluid.model.relayConditions[condition];if(!exclusionRec)fluid.fail('Unrecognised model relay condition string "'+condition+'": the supported values are "never" or a record with members "includeSource" and/or "excludeSource"');}else exclusionRec=condition;return exclusionRec;};fluid.model.parseRelayConditions=function(conditions){var expanded=conditions.map(fluid.model.expandRelayCondition);var mergeArgs=[true,{}].concat(expanded);var merged=fluid.extend.apply(null,mergeArgs);return fluid.parseSourceExclusionSpec({},merged);};fluid.parseModelRelay=function(that,mrrec,key){fluid.pushActivity("parseModelRelay",'parsing modelRelay definition with key "%key" and body "%body" attached to component "%that"',{key,body:mrrec,that});if(typeof mrrec.target!=="string"&&!(fluid.isPlainObject(mrrec.target,true)&&mrrec.target.segs))fluid.fail('Error parsing model relay definition: model reference must be specified for "target"');var parsedSource=mrrec.source!==undefined?fluid.parseValidModelReference(that,'modelRelay record member "source"',mrrec.source,true):mrrec.value!==undefined?{nonModel:true}:{path:null,modelSegs:null};var parsedTarget=fluid.parseValidModelReference(that,'modelRelay record member "target"',mrrec.target);var namespace=mrrec.namespace||key;var singleTransform=typeof mrrec.singleTransform==="string"?{type:mrrec.singleTransform}:mrrec.singleTransform;var shortSingleTransform=fluid.funcToSingleTransform(that,mrrec);var transform=mrrec.transform||fluid.singleTransformToFull(singleTransform||shortSingleTransform||{type:"fluid.transforms.identity"});var upDefaults=singleTransform?fluid.defaults(singleTransform.type):null;var relayOptions=upDefaults&&upDefaults.relayOptions||{};var forwardCond=fluid.model.parseRelayConditions([relayOptions.forward,mrrec.forward]),backwardCond=fluid.model.parseRelayConditions([relayOptions.backward,mrrec.backward]);var transformPackage=fluid.makeTransformPackage(that,transform,parsedSource.path,parsedTarget.path,forwardCond,backwardCond,namespace,mrrec.priority);if(parsedSource.nonModel){var initValue=fluid.parseImplicitRelay(that,fluid.firstDefined(mrrec.source,mrrec.value),parsedTarget.modelSegs),transformed;if(transform[""].transform.type!=="fluid.transforms.identity"){var localTransform=fluid.copy(transform);localTransform[""].transform.args=[initValue];transformed=fluid.model.transformWithRules(initValue,localTransform);}else transformed=initValue;var enlist=fluid.enlistModelComponent(parsedTarget.that);var initModel={};fluid.model.setSimple(initModel,parsedTarget.modelSegs,transformed);enlist.initModels.push(initModel);}else if(transformPackage.refCount===0)fluid.connectModelRelay(parsedSource.that||that,parsedSource.modelSegs,parsedTarget.that,parsedTarget.modelSegs,fluid.filterKeys(transformPackage,["forwardAdapter","backwardAdapter","namespace","priority"]));else{if(parsedSource.modelSegs&&!shortSingleTransform)fluid.fail('Error in model relay definition: If a relay transform has a model dependency, you can not specify a "source" entry - please instead enter this as "input" in the transform specification. Definition was ',mrrec," for component ",that);fluid.connectModelRelay(that,null,parsedTarget.that,parsedTarget.modelSegs,transformPackage);}fluid.popActivity();};fluid.parseImplicitRelay=function(that,modelRec,segs,options){var value;if(fluid.isIoCReference(modelRec)){var parsed=fluid.parseValidModelReference(that,"model reference from model (implicit relay)",modelRec,true);if(parsed.nonModel){value=fluid.isComponent(parsed.that)?fluid.possiblyProxyComponent(fluid.getForComponent(parsed.that,parsed.segs)):fluid.getImmediate(parsed.that,parsed.segs);if(value instanceof fluid.fetchResources.FetchOne){that.applier.resourceMap.push({segs:fluid.makeArray(segs),fetchOne:value});return undefined;}}else{++options.refCount;fluid.connectModelRelay(that,segs,parsed.that,parsed.modelSegs,options);}}else if(fluid.isPrimitive(modelRec)||!fluid.isPlainObject(modelRec))value=modelRec;else if(modelRec.expander&&fluid.isPlainObject(modelRec.expander))value=fluid.expandOptions(modelRec,that);else{value=fluid.freshContainer(modelRec);fluid.each(modelRec,(function(innerValue,key){segs.push(key);var innerTrans=fluid.parseImplicitRelay(that,innerValue,segs,options);if(innerTrans!==undefined)value[key]=innerTrans;segs.pop();}));}return value;};fluid.model.notifyExternal=function(transRec){var allChanges=transRec?fluid.values(transRec.externalChanges):[];fluid.sortByPriority(allChanges);for(var i=0;i<allChanges.length;++i){var change=allChanges[i];var targetApplier=change.args[5];if(!targetApplier.destroyed)change.listener.apply(null,change.args);}fluid.clearLinkCounts(transRec,true);};fluid.model.commitRelays=function(instantiator,transactionId){var transRec=instantiator.modelTransactions[transactionId];fluid.each(transRec,(function(transEl){if(transEl.transaction){transEl.transaction.commit("relay");transEl.transaction.reset();}}));};fluid.model.updateRelays=function(instantiator,transactionId){var transRec=instantiator.modelTransactions[transactionId];var updates=0;fluid.sortByPriority(transRec.relays);fluid.each(transRec.relays,(function(transEl){var maxRelay=transEl.options.refCount?transEl.options.refCount*4:4;if(transEl.transaction.changeRecord.changes>0&&transEl.relayCount<maxRelay&&transEl.options.update){transEl.relayCount++;fluid.clearLinkCounts(transRec);transEl.options.update(transEl.transaction,transRec);++updates;}}));return updates;};fluid.concludeModelTransaction=function(transaction){var instantiator=fluid.globalInstantiator;fluid.model.notifyExternal(instantiator.modelTransactions[transaction.id]);delete instantiator.modelTransactions[transaction.id];};fluid.establishModelRelay=function(that,optionsModel,optionsML,optionsMR,applier){var shadow=fluid.shadowForComponent(that);if(!shadow.modelRelayEstablished)shadow.modelRelayEstablished=true;else fluid.fail("FLUID-5887 failure: Model relay initialised twice on component",that);var enlist=fluid.enlistModelComponent(that);var initModels=(optionsModel||[]).map((function(modelRec){return fluid.parseImplicitRelay(that,modelRec,[],{refCount:0,priority:"first"});}));Array.prototype.push.apply(enlist.initModels,initModels);fluid.each(optionsMR,(function(mrrec,key){if(key==="")for(var i=0;i<mrrec.length;++i)fluid.parseModelRelay(that,mrrec[i],key);else{var lightMerge=fluid.extend.apply(null,[true,{}].concat(mrrec));fluid.parseModelRelay(that,lightMerge,key);}}));var instantiator=fluid.getInstantiator(that);function updateRelays(transaction){while(fluid.model.updateRelays(instantiator,transaction.id)>0){}}function commitRelays(transaction){fluid.model.commitRelays(instantiator,transaction.id);}applier.preCommit.addListener(updateRelays);applier.preCommit.addListener(commitRelays);applier.postCommit.addListener(fluid.concludeModelTransaction);applier.postCommit.addListener(fluid.concludeAnyTreeTransaction);return null;};fluid.destroyLensedComponentSource=function(that,isBoolean){var shadow=fluid.shadowForComponent(that);var sourceModelReference=shadow.localRecord.sourceModelReference;if(sourceModelReference&&!fluid.isDestroyed(sourceModelReference.that,true))sourceModelReference.that.applier.change(sourceModelReference.modelSegs,false,isBoolean?"ADD":"DELETE");};fluid.constructLensedComponents=function(shadow,initTransRec,sourcesParsed,dynamicComponentKey){var lightMerge=shadow.lightMergeDynamicComponents[dynamicComponentKey];var sources=fluid.getImmediate(shadow.that.model,sourcesParsed.modelSegs);var shadowRecord=shadow.modelSourcedDynamicComponents[dynamicComponentKey];var localRecordContributor=shadowRecord.localRecordContributor=function(localRecord,source,sourceKey){localRecord.sourceModelReference={that:sourcesParsed.that,modelSegs:sourcesParsed.modelSegs.concat(shadowRecord.isBoolean?[]:[sourceKey])};};fluid.lightMergeRecords.pushRecord(lightMerge,{options:{listeners:{afterDestroy:{funcName:"fluid.destroyLensedComponentSource",args:["{that}",shadowRecord.isBoolean]}}}});fluid.registerSourcedDynamicComponentsTriage(shadow.potentia,shadow.that,sources,lightMerge,dynamicComponentKey,shadowRecord.isBoolean,localRecordContributor);};fluid.operateInitialTransactionWorkflow=function(shadows,treeTransaction){fluid.tryCatch((function(){var initModelTransaction=treeTransaction.initModelTransaction;var transId=treeTransaction.initModelTransactionId;fluid.operateInitialTransaction(initModelTransaction,transId);}),(function(e){treeTransaction.initModelTransaction={};treeTransaction.initModelTransactionId=null;fluid.clearTransactions();throw e;}),fluid.identity);};fluid.enlistModelWorkflow=function(shadows,treeTransaction){var transId=treeTransaction.initModelTransactionId;if(!transId){transId=fluid.allocateGuid();treeTransaction.initModelTransactionId=transId;}shadows.forEach((function(shadow){fluid.getForComponent(shadow.that,"modelRelay");}));fluid.operateInitialTransactionWorkflow(shadows,treeTransaction);};fluid.notifyInitModelWorkflow=function(shadow,treeTransaction){if(!shadow.modelComplete){var initModelTransaction=treeTransaction.initModelTransaction;var transRec=fluid.getModelTransactionRec(fluid.rootComponent,shadow.initTransactionId);var trans=fluid.values(initModelTransaction)[0].transaction;treeTransaction.initModelTransaction={};treeTransaction.initModelTransactionId=null;trans.commit();fluid.each(initModelTransaction,(function(oneRec){var that=oneRec.that,applier=that.applier;trans=transRec[applier.applierId].transaction;var listeners=applier.transListeners.sortedListeners;var initShadow=fluid.shadowForComponent(that);initShadow.modelComplete=true;var shadowTrans=initShadow.initTransactionId;if(shadowTrans===shadow.initTransactionId)fluid.notifyModelChanges(listeners,"ADD",trans.oldHolder,fluid.emptyHolder,null,trans,applier,that);else{}}));fluid.concludeModelTransaction(trans);}};fluid.defaults("fluid.modelComponent",{gradeNames:["fluid.component"],workflows:{global:{enlistModel:{funcName:"fluid.enlistModelWorkflow"},resolveResourceModel:{funcName:"fluid.resolveResourceModelWorkflow",priority:"after:enlistModel",waitIO:true}},local:{notifyInitModelWorkflow:{funcName:"fluid.notifyInitModelWorkflow",priority:"before:concludeComponentInit"}}},members:{model:{expander:{funcName:"fluid.initRelayModel",args:["{that}","{that}.modelRelay"],noproxy:true}},applier:{expander:{funcName:"fluid.makeHolderChangeApplier",args:["{that}","{that}.options.changeApplierOptions"],noproxy:true}},modelRelay:{expander:{funcName:"fluid.establishModelRelay",args:["{that}","{that}.options.model","{that}.options.modelListeners","{that}.options.modelRelay","{that}.applier"],noproxy:true}}},mergePolicy:{model:{noexpand:true,func:fluid.arrayConcatPolicy},modelListeners:fluid.makeMergeListenersPolicy(fluid.arrayConcatPolicy),modelRelay:fluid.makeMergeListenersPolicy(fluid.arrayConcatPolicy,true)}});fluid.modelChangedToChange=function(args){return {value:args[0],oldValue:args[1],path:args[2],transaction:args[4]};};fluid.event.invokeListener=function(listener,args,localRecord,mergeRecord){if(typeof listener==="string")listener=fluid.event.resolveListener(listener);return listener.apply(null,args,localRecord,mergeRecord);};fluid.resolveModelListener=function(that,record){var togo=function(){if(fluid.isDestroyed(that,true))return;var change=fluid.modelChangedToChange(arguments);var args=arguments;var localRecord={change,arguments:args};var mergeRecord={source:Object.keys(change.transaction.sources)};if(record.args)args=fluid.expandImmediate(record.args,that,localRecord);fluid.event.invokeListener(record.listener,fluid.makeArray(args),localRecord,mergeRecord);};fluid.event.impersonateListener(record.listener,togo);return togo;};fluid.registerModelListeners=function(that,record,paths,namespace){var func=fluid.resolveModelListener(that,record);fluid.each(record.byTarget,(function(parsedArray){var parsed=parsedArray[0];var spec={listener:func,listenerId:fluid.allocateGuid(),segsArray:fluid.getMembers(parsedArray,"modelSegs"),includeSource:record.includeSource,excludeSource:record.excludeSource,priority:fluid.expandOptions(record.priority,that),transactional:true};spec=parsed.applier.modelChanged.addListener(spec,func,namespace,record.softNamespace);spec.segsArray.forEach((function(segs){fluid.materialiseModelPath(that,segs
118);}));fluid.recordChangeListener(that,parsed.applier,func,spec.listenerId);}));};fluid.registerMergedModelListeners=function(that,listeners){fluid.each(listeners,(function(value,key){if(typeof value==="string")value={funcName:value};var records=fluid.event.resolveListenerRecord(value,that,"modelListeners",null,false).records;fluid.each(records,(function(record){record.byTarget={};var paths=fluid.makeArray(record.path===undefined?key:record.path);fluid.each(paths,(function(path){var parsed=fluid.parseValidModelReference(that,"modelListeners entry",path);fluid.pushArray(record.byTarget,parsed.that.id,parsed);}));var namespace=(record.namespace&&!record.softNamespace?record.namespace:null)||(record.path!==undefined?key:null);fluid.registerModelListeners(that,record,paths,namespace);}));}));};fluid.replaceModelValue=function(applier,path,newValue){var transaction=applier.initiate();transaction.fireChangeRequest({path,type:"DELETE"});transaction.fireChangeRequest({path,value:newValue});transaction.commit();return applier.holder.model;};fluid.fireChanges=function(applier,changes){for(var i=0;i<changes.length;++i)applier.fireChangeRequest(changes[i]);};fluid.model.isChangedPath=function(changeMap,segs){for(var i=0;i<=segs.length;++i){if(typeof changeMap==="string")return changeMap;if(i<segs.length&&changeMap)changeMap=changeMap[segs[i]];}return null;};fluid.model.setChangedPath=function(options,segs,value){var notePath=function(record){var root=options;segs.unshift(record);for(var i=0;i<segs.length-1;++i){var seg=segs[i];if(root[seg]===undefined)root[seg]={};root=root[seg];}if(fluid.isPlainObject(root))root[fluid.peek(segs)]=value;segs.shift();};if(fluid.model.isChangedPath(options.changeMap,segs)!==value){++options.changes;notePath("changeMap");}if(fluid.model.isChangedPath(options.deltaMap,segs)!==value){++options.deltas;notePath("deltaMap");}};fluid.model.fetchChangeChildren=function(target,i,segs,source,options){fluid.each(source,(function(value,key){segs[i]=key;fluid.model.applyChangeStrategy(target,key,i,segs,value,options);segs.length=i;}));};fluid.model.isSameValue=function(a,b){if(typeof a!=="number"||typeof b!=="number")return a===b;else if(a===b||a!==a&&b!==b)return true;else{var relError=Math.abs((a-b)/b);return relError<1e-12;}};fluid.model.applyChangeStrategy=function(target,name,i,segs,source,options){var targetSlot=target[name];var sourceCode=fluid.typeCode(source);var targetCode=fluid.typeCode(targetSlot);var changedValue=fluid.NO_VALUE;if(sourceCode==="primitive"){if(!fluid.model.isSameValue(targetSlot,source)){changedValue=source;++options.unchanged;}}else{if(targetCode!==sourceCode||sourceCode==="array"&&source.length!==targetSlot.length)changedValue=fluid.freshContainer(source);}if(changedValue!==fluid.NO_VALUE){target[name]=changedValue;if(options.changeMap)fluid.model.setChangedPath(options,segs,options.inverse?"DELETE":"ADD");}if(sourceCode!=="primitive")fluid.model.fetchChangeChildren(target[name],i+1,segs,source,options);};fluid.model.stepTargetAccess=function(target,type,segs,startpos,endpos,options){for(var i=startpos;i<endpos;++i){if(!target)continue;var oldTrunk=target[segs[i]];target=fluid.model.traverseWithStrategy(target,segs,i,options[type==="ADD"?"resolverSetConfig":"resolverGetConfig"],segs.length-i-1);if(oldTrunk!==target&&options.changeMap)fluid.model.setChangedPath(options,segs.slice(0,i+1),"ADD");}return {root:target,last:segs[endpos]};};fluid.model.defaultAccessorConfig=function(options){options=options||{};options.resolverSetConfig=options.resolverSetConfig||fluid.model.escapedSetConfig;options.resolverGetConfig=options.resolverGetConfig||fluid.model.escapedGetConfig;return options;};fluid.model.applyHolderChangeRequest=function(holder,request,options){options=fluid.model.defaultAccessorConfig(options);options.deltaMap=options.changeMap?{}:null;options.deltas=0;var length=request.segs.length;var pen,atRoot=length===0;if(atRoot)pen={root:holder,last:"model"};else{if(!holder.model&&request.type!=="DELETE"){holder.model={};fluid.model.setChangedPath(options,[],options.inverse?"DELETE":"ADD");}pen=fluid.model.stepTargetAccess(holder.model,request.type,request.segs,0,length-1,options);}if(request.type==="ADD"){var value=request.value;var segs=fluid.makeArray(request.segs);fluid.model.applyChangeStrategy(pen.root,pen.last,length-1,segs,value,options,atRoot);}else if(request.type==="DELETE"){if(pen.root&&pen.root[pen.last]!==undefined){delete pe
118n.root[pen.last];if(options.changeMap)fluid.model.setChangedPath(options,request.segs,"DELETE");}}else fluid.fail("Unrecognised change type of "+request.type);return options.deltas?options.deltaMap:null;};fluid.model.diff=function(modela,modelb,options){options=options||{changes:0,unchanged:0,changeMap:{}};var typea=fluid.typeCode(modela);var typeb=fluid.typeCode(modelb);var togo;if(typea==="primitive"&&typeb==="primitive")togo=fluid.model.isSameValue(modela,modelb);else if(typea==="primitive"^typeb==="primitive")togo=false;else{var holderb={model:fluid.copy(modelb)};options.inverse=true;fluid.model.applyHolderChangeRequest(holderb,{value:modela,segs:[],type:"ADD"},options);var holdera={model:fluid.copy(modela)};options.inverse=false;fluid.model.applyHolderChangeRequest(holdera,{value:modelb,segs:[],type:"ADD"},options);togo=options.changes===0;}if(togo===false&&options.changes===0){options.changes=1;options.changeMap=modelb===undefined?"DELETE":"ADD";}else{if(togo===true&&options.unchanged===0)options.unchanged=1;}return togo;};fluid.outputWildcardMatches=function(matches,outSegs,root){fluid.each(root,(function(value,key){matches.push(outSegs.concat(key));}));};fluid.matchChanges=function(changeMap,specSegs,newHolder,oldHolder){var newRoot=newHolder.model;var oldRoot=oldHolder.model;var map=changeMap;var outSegs=["model"];var wildcard=false;var togo=[];for(var i=0;i<specSegs.length;++i){var seg=specSegs[i];if(seg==="*")if(i===specSegs.length-1)wildcard=true;else fluid.fail("Wildcard specification in modelChanged listener is only supported for the final path segment: "+specSegs.join("."));else{outSegs.push(seg);map=fluid.isPrimitive(map)?map:map[seg];newRoot=newRoot?newRoot[seg]:undefined;oldRoot=oldRoot?oldRoot[seg]:undefined;}}if(map)if(wildcard)if(typeof map==="string"){var allKeys=fluid.extend({},oldRoot,newRoot);fluid.outputWildcardMatches(togo,outSegs,allKeys);}else fluid.outputWildcardMatches(togo,outSegs,map);else togo.push(outSegs);return togo;};fluid.storeExternalChange=function(transRec,applier,invalidPath,spec,args){var pathString=applier.composeSegments.apply(null,invalidPath);var keySegs=[applier.holder.id,spec.listenerId,spec.wildcard?pathString:""];var keyString=keySegs.join("|");transRec.externalChanges[keyString]={listener:spec.listener,namespace:spec.namespace,priority:spec.priority,args};};fluid.notifyModelChanges=function(listeners,changeMap,newHolder,oldHolder,changeRequest,transaction,applier,that){if(!listeners)return;var transRec=fluid.getModelTransactionRec(that,transaction.id);for(var i=0;i<listeners.length;++i){var spec=listeners[i];var multiplePaths=spec.segsArray.length>1;for(var j=0;j<spec.segsArray.length;++j){var invalidPaths=fluid.matchChanges(changeMap,spec.segsArray[j],newHolder,oldHolder);for(var k=0;k<invalidPaths.length;++k){if(applier.destroyed)return;var invalidPath=invalidPaths[k];spec.listener=fluid.event.resolveListener(spec.listener);var args=[multiplePaths?newHolder.model:fluid.model.getSimple(newHolder,invalidPath),multiplePaths?oldHolder.model:fluid.model.getSimple(oldHolder,invalidPath),multiplePaths?[]:invalidPath.slice(1),changeRequest,transaction,applier];if(!spec.isRelay){var isNull=fluid.model.diff(args[0],args[1]);if(isNull)continue;var sourceExcluded=fluid.isExcludedChangeSource(transaction,spec);if(sourceExcluded)continue;}if(transRec&&!spec.isRelay&&spec.transactional)fluid.storeExternalChange(transRec,applier,invalidPath,spec,args);else spec.listener.apply(null,args);}}}};fluid.bindELMethods=function(applier){applier.parseEL=function(EL){return fluid.model.pathToSegments(EL,applier.options.resolverSetConfig);};applier.composeSegments=function(){return applier.options.resolverSetConfig.parser.compose.apply(null,arguments);};};fluid.emptyHolder=fluid.freezeRecursive({model:undefined});fluid.preFireChangeRequest=function(applier,changeRequest){if(!changeRequest.type)changeRequest.type="ADD";changeRequest.segs=changeRequest.segs||applier.parseEL(changeRequest.path);};fluid.bindRequestChange=function(that){that.change=function(path,value,type,source){var changeRequest={path,value,type,source};that.fireChangeRequest(changeRequest);};};fluid.mergeChangeSources=function(target,globalSources){if(fluid.isPlainObject(globalSources,true))fluid.extend(target,globalSources);else fluid.each(fluid.makeArray(globalSources),(function(globalSource){target[globalSource]=true;}));};fluid.ChangeApplier=function(){};fluid.makeHolderChangeApplier=function(holder,options){options=fluid.model.defaultAccessorConfig(options);var applierId=fluid.allocateGuid();var that=new fluid.ChangeApplier();var name=fluid.isComponent(holder)?"ChangeApplier for component "+fluid.dumpThat(holder):"ChangeApplier with i
118d "+applierId;$.extend(that,{applierId,holder,listeners:fluid.makeEventFirer({name:"Internal change listeners for "+name}),transListeners:fluid.makeEventFirer({name:"External change listeners for "+name}),options,modelChanged:{},resourceMap:[],earlyModelResolved:fluid.makeEventFirer({name:"earlyModelResolved event for "+name}),preCommit:fluid.makeEventFirer({name:"preCommit event for "+name}),postCommit:fluid.makeEventFirer({name:"postCommit event for "+name})});that.destroy=function(){that.preCommit.destroy();that.postCommit.destroy();that.destroyed=true;};that.modelChanged.addListener=function(spec,listener,namespace,softNamespace){if(typeof spec==="string")spec={path:spec};else spec=fluid.copy(spec);spec.listenerId=spec.listenerId||fluid.allocateGuid();spec.namespace=namespace;spec.softNamespace=softNamespace;if(typeof listener==="string")listener={globalName:listener};spec.listener=listener;if(spec.transactional!==false)spec.transactional=true;if(!spec.segsArray){if(spec.path!==undefined)spec.segs=spec.segs||that.parseEL(spec.path);spec.segsArray=[spec.segs];}if(!spec.isRelay){fluid.parseSourceExclusionSpec(spec,spec);spec.wildcard=spec.segsArray.some((function(segs){return segs.includes("*");}));if(spec.wildcard&&spec.segsArray.length>1)fluid.fail("Error in model listener specification ",spec," - you may
118not supply a wildcard pattern as one of a set of multiple paths to be matched");}var firer=that[spec.transactional?"transListeners":"listeners"];firer.addListener(spec);return spec;};that.modelChanged.removeListener=function(listener){that.listeners.removeListener(listener);that.transListeners.removeListener(listener);};that.fireChangeRequest=function(changeRequest){var initTransaction=fluid.findInitModelTransaction(holder);if(initTransaction)initTransaction.transaction.fireChangeRequest(changeRequest);else{var ation=that.initiate("local",changeRequest.source);ation.fireChangeRequest(changeRequest);ation.commit();}};that.initiate=function(localSource,globalSources,transactionId){localSource=globalSources==="init"?null:localSource||"local";var defeatPost=localSource==="relay"||globalSources==="init";var trans={instanceId:fluid.allocateGuid(),id:transactionId||fluid.allocateGuid(),changeRecord:{resolverSetConfig:options.resolverSetConfig,resolverGetConfig:options.resolverGetConfig},reset:function(){trans.oldHolder=holder;trans.newHolder={model:fluid.copy(holder.model)};trans.changeRecord.changes=0;trans.changeRecord.unchanged=0;trans.changeRecord.changeMap={};},commit:function(code){if(code!=="relay")that.preCommit.fire(trans,that,code);if(trans.changeRecord.changes>0){var oldHolder={model:holder.model};holder.model=trans.newHolder.model;fluid.notifyModelChanges(that.transListeners.sortedListeners,trans.changeRecord.changeMap,holder,oldHolder,null,trans,that,holder);}if(!defeatPost&&code!=="relay")that.postCommit.fire(trans,that,code);},fireChangeRequest:function(changeRequest){fluid.preFireChangeRequest(that,changeRequest);changeRequest.transactionId=trans.id;var deltaMap=fluid.model.applyHolderChangeRequest(trans.newHolder,changeRequest,trans.changeRecord);fluid.notifyModelChanges(that.listeners.sortedListeners,deltaMap,trans.newHolder,holder,changeRequest,trans,that,holder);},hasChangeSource:function(source){return trans.fullSources[source];}};var transRec=fluid.getModelTransactionRec(holder,trans.id);if(transRec){fluid.mergeChangeSources(transRec.sources,globalSources);trans.sources=transRec.sources;trans.fullSources=Object.create(transRec.sources);if(localSource)trans.fullSources[localSource]=true;}trans.reset();fluid.bindRequestChange(trans);return trans;};fluid.bindRequestChange(that);fluid.bindELMethods(that);return that;};fluid.modelPairToChanges=function(value,oldValue,changePathPrefix){changePathPrefix=changePathPrefix||"";var diffOptions={changes:0,unchanged:0,changeMap:{}};fluid.model.diff(oldValue,value,diffOptions);var changes=[];fluid.modelPairToChangesImpl(value,fluid.pathUtil.parseEL(changePathPrefix),diffOptions.changeMap,[],changes);return changes;};fluid.modelPairToChangesImpl=function(value,changePathPrefixSegs,changeMap,changeSegs,changes){if(changeMap==="ADD")changes.push({path:changePathPrefixSegs,value,type:"ADD"});else if(changeMap==="DELETE")changes.push({path:changePathPrefixSegs,value:null,type:"DELETE"});else{if(fluid.isPlainObject(changeMap,true))fluid.each(changeMap,(function(change,seg){var currentChangeSegs=changeSegs.concat([seg]);if(change==="ADD")changes.push({path:changePathPrefixSegs.concat(currentChangeSegs),value:fluid.get(value,currentChangeSegs),type:"ADD"});else if(change==="DELETE")changes.push({path:changePathPrefixSegs.concat(currentChangeSegs),value:null,type:"DELETE"});else{if(fluid.isPlainObject(change,true))fluid.modelPairToChangesImpl(value,changePathPrefixSegs,change,currentChangeSegs,changes);}}));}};"use strict";fluid.defaults("fluid.remoteModelComponent",{gradeNames:["fluid.modelComponent"],events:{afterFetch:null,onFetch:null,onFetchError:null,afterWrite:null,onWrite:null,onWriteError:null},members:{pendingRequests:{write:null,fetch:null}},model:{local:{},remote:{},requestInFlight:false},modelListeners:{requestInFlight:{listener:"fluid.remoteModelComponent.launchPendingRequest",args:["{that}"]}},listeners:{"afterFetch.updateModel":{listener:"fluid.remoteModelComponent.updateModelFromFetch",args:["{that}","{arguments}.0"],priority:"before:unblock"},"afterFetch.unblock":{listener:"fluid.remoteModelComponent.unblockFetchReq",args:["{that}"]},"onFetchError.unblock":{listener:"fluid.remoteModelComponent.unblockFetchReq",args:["{that}"]},"afterWrite.updateRemoteModel":{listener:"fluid.remoteModelComponent.updateRemoteFromLocal",args:["{that}"]},"afterWrite.unblock":{changePath:"requestInFlight",value:false,priority:"after:updateRemoteModel"},"onWriteError.unblock":{changePath:"requestInFlight",value:false}},invokers:{fetch:{funcName:"fluid.remoteModelComponent.fetch",args:["{that}"]},fetchImpl:"fluid.notImplemented",write:{funcName:"fluid.remoteModelComponent.write",args:["{that}"]},writeImpl:"fluid.notImplemented"}});fluid.remoteModelComponent.launchPendingRequest=function(that){if(!that.model.requestInFlight)if(that.pendingRequests.fetch)that.fetch();else{if(that.pendingRequests.write)that.write();}};fluid.remoteModelComponent.updateModelFromFetch=function(that,fetchedModel){var remoteChanges=fluid.modelPairToChanges(fetchedModel,that.model.remote,"local");var localChanges=fluid.modelPairToChanges(that.model.local,that.model.remote,"local");var changes=remoteChanges.concat(localChanges);var transaction=that.applier.initiate();transaction.fireChangeRequest({path:"local",type:"DELETE"});transaction.change("local",that.model.remote);transaction.fireChangeRequest({path:"remote",type:"DELETE"});transaction.change("remote",fetchedModel);fluid.fireChanges(transaction,changes);transaction.commit();};fluid.remoteModelComponent.updateRemoteFromLocal=function(that){fluid.replaceModelValue(that.applier,"remote",that.model.local);};fluid.remoteModelComponent.makeSequenceStrategy=function(payload){return {invokeNext:function(that){var lisrec=that.sources[that.index];lisrec.listener=fluid.event.resolveListener(lisrec.listener);var value=lisrec.listener.apply(null,[payload,that.options]);return value;},resolveResult:function(){return payload;}};};fluid.remoteModelComponent.makeSequence=function(listeners,payload,options){var sequencer=fluid.promise.makeSequencer(listeners,options,fluid.remoteModelComponent.makeSequenceStrategy(payload));fluid.promise.resumeSequence(sequencer);return sequencer;};fluid.remoteModelComponent.fireEventSequence=function(event,payload,options){var listeners=fluid.makeArray(event.sortedListeners);var sequence=fluid.remoteModelComponent.makeSequence(listeners,payload,options);return sequence.promise;};fluid.remoteModelComponent.fetch=function(that){var promise=fluid.promise();var activePromise;if(that.pendingRequests.fetch){activePromise=that.pendingRequests.fetch;fluid.promise.follow(activePromise,promise);}else{activePromise=promise;that.pendingRequests.fetch=promise;}if(!that.model.requestInFlight){var onFetchSeqPromise=fluid.remoteModelComponent.fireEventSequence(that.events.onFetch);onFetchSeqPromise.then((function(){that.applier.change("requestInFlight",true);var reqPromise=that.fetchImpl();reqPromise.then((function(data){var afterFetchSeqPromise=fluid.remoteModelComponent.fireEventSequence(that.events.afterFetch,data);fluid.promise.follow(afterFetchSeqPromise,activePromise);}),that.events.onFetchError.fire);}),that.events.onFetchError.fire);}return promise;};fluid.remoteModelComponent.unblockFetchReq=function(that){that.pendingRequests.fetch=null;that.applier.change("requestInFlight",false);};fluid.remoteModelComponent.write=function(that){var promise=fluid.promise();var activePromise;if(that.pendingRequests.write){activePromise=that.pendingRequests.write;fluid.promise.follow(that.pendingRequests.write,promise);}else activePromise=promise;if(that.model.requestInFlight)that.pendingRequests.write=activePromise;else{var onWriteSeqPromise=fluid.remoteModelComponent.fireEventSequence(that.events.onWrite);onWriteSeqPromise.then((function(){that.applier.change("requestInFlight",true);that.pendingRequests.write=null;if(fluid.model.diff(that.model.local,that.model.remote)){var afterWriteSeqPromise=fluid.remoteModelComponent.fireEventSequence(that.events.afterWrite,that.model.local);fluid.promise.follow(afterWriteSeqPromise,activePromise);}else{var reqPromise=that.writeImpl(that.model.local);reqPromise.then((function(data){var afterWriteSeqPromise=fluid.remoteModelComponent.fireEventSequence(that.events.afterWrite,data);fluid.promise.follow(afterWriteSeqPromise,activePromise);}),that.events.onWriteError.fire);}}),that.events.onWriteError.fire);}return promise;};"use strict";fluid.registerNamespace("fluid.model.transform");fluid.defaults("fluid.transformFunction",{gradeNames:"fluid.function"});fluid.defaults("fluid.standardInputTransformFunction",{gradeNames:"fluid.transformFunction"});fluid.defaults("fluid.standardOutputTransformFunction",{gradeNames:"fluid.transformFunction"});fluid.defaults("fluid.multiInputTransformFunction",{gradeNames:"fluid.transformFunction"});fluid.defaults("fluid.standardTransformFunction",{gradeNames:["fluid.standardInputTransformFunction","fluid.standardOutputTransformFunction"]});fluid.defaults("fluid.lens",{gradeNames:"fluid.transformFunction",invertConfiguration:null});fluid.model.transform.pathToRule=function(inputPath){return {transform:{type:"fluid.transforms.value",inputPath}};};fluid.model.transform.literalValueToRule=function(input){return {transform:{type:"fluid.transforms.literalValue",input}};};fluid.model.composePaths=function(prefix,suffix){prefix=prefix===0?"0":prefix||"";suffix=suffix===0?"0":suffix||"";return !prefix?suffix:!suffix?prefix:prefix+"."+suffix;};fluid.model.transform.accumulateInputPath=function(inputPath,transformer,paths){if(inputPath!==undefined)paths.push(fluid.model.composePaths(transformer.inputPrefix,inputPath));};fluid.model.transform.accumulateStandardInputPath=function(input,transformSpec,transformer,paths){fluid.model.transform.getValue(undefined,transformSpec[input],transformer);fluid.model.transform.accumulateInputPath(transformSpec[input+"Path"],transformer,paths);};fluid.model.transform.accumulateMultiInputPaths=function(inputVariables,transformSpec,transformer,paths){fluid.each(inputVariables,(function(v,k){fluid.model.transform.accumulateStandardInputPath(k,transformSpec,transformer,paths);}));};fluid.model.transform.getValue=function(inputPath,value,transformer){var togo;if(inputPath!==undefined)togo=fluid.get(transformer.source,fluid.model.composePaths(transformer.inputPrefix,inputPath),transformer.resolverGetConfig);if(togo===undefined)togo=fluid.isPrimitive(value)?value:"literalValue" in value?value.literalValue:value.transform===undefined?value:transformer.expand(value);return togo;};fluid.model.transform.NONDEFAULT_OUTPUT_PATH_RETURN={};fluid.model.transform.setValue=function(userOutputPath,value,transformer){var toset=fluid.copy(value);var outputPath=fluid.model.composePaths(transformer.outputPrefix,userOutputPath);if(toset!==undefined)transformer.applier.change(outputPath,toset);return userOutputPath?fluid.model.transform.NONDEFAULT_OUTPUT_PATH_RETURN:toset;};fluid.model.transform.resolveParam=function(transformSpec,transformer,key,def){var val=fluid.model.transform.getValue(transformSpec[key+"Path"],transformSpec[key],transformer);return val!==undefined?val:def;};fluid.model.transform.matchValue=function(expected,actual,partialMatches){var stats={changes:0,unchanged:0,changeMap:{}};fluid.model.diff(expected,actual,stats);return stats.unchanged===0?0:partialMatches?0xffffff000000-16777216*stats.changes+stats.unchanged:stats.changes?0:0xffffff000000+stats.unchanged;};fluid.model.transform.invertPaths=function(transformSpec,transformer){var oldOutput=fluid.model.composePaths(transformer.outputPrefix,transformSpec.outputPath);transformSpec.outputPath=fluid.model.composePaths(transformer.inputPrefix,transformSpec.inputPath);transformSpec.inputPath=oldOutput;return transformSpec;};fluid.model.transform.prefixApplier=function(transformSpec,transformer){if(transformSpec.inputPrefix)transformer.inputPrefixOp.push(transformSpec.inputPrefix);if(transformSpec.outputPrefix)transformer.outputPrefixOp.push(transformSpec.outputPrefix);transformer.expand(transformSpec.input);if(transformSpec.inputPrefix)transformer.inputPrefixOp.pop();if(transformSpec.outputPrefix)transformer.outputPrefixOp.pop();};fluid.defaults("fluid.model.transform.prefixApplier",{gradeNames:["fluid.transformFunction"]});fluid.model.makePathStack=function(transform,prefixName){var stack=transform[prefixName+"Stack"]=[];transform[prefixName]="";return {push:function(prefix){var newPath=fluid.model.composePaths(transform[prefixName],prefix);stack.push(transform[prefixName]);transform[prefixName]=newPath;},pop:function(){transform[prefixName]=stack.pop();}};};fluid.model.transform.doTransform=function(transformSpec,transformer,transformOpts){var expdef=transformOpts.defaults;var transformFn=fluid.getGlobalValue(transformOpts.typeName);if(typeof transformFn!=="function")fluid.fail("Transformation record specifies transformation function with name "+transformSpec.type+" which is not a function - ",transformFn);if(!fluid.hasGrade(expdef,"fluid.transformFunction"))expdef=fluid.defaults("fluid.standardTransformFunction");var transformArgs=[transformSpec,transformer];if(fluid.hasGrade(expdef,"fluid.multiInputTransformFunction")){var inputs={};fluid.each(expdef.inputVariables,(function(v,k){inputs[k]=function(){var input=fluid.model.transform.getValue(transformSpec[k+"Path"],transformSpec[k],transformer);input=input===undefined&&v!==null?v:input;return input;};}));transformArgs.unshift(inputs);}if(fluid.hasGrade(expdef,"fluid.standardInputTransformFunction")){if(!("input" in transformSpec)&&!("inputPath" in transformSpec))fluid.fail('Error in transform specification. Either "input" or "inputPath" must be specified for a standardInputTransformFunction: received ',transformSpec);var expanded=fluid.model.transform.getValue(transformSpec.inputPath,transformSpec.input,transformer);transformArgs.unshift(expanded);if(expanded===undefined)return undefined;}var transformed=transformFn.apply(null,transformArgs);if(fluid.hasGrade(expdef,"fluid.standardOutputTransformFunction")){var outputPath=transformSpec.outputPath!==undefined?transformSpec.outputPath:transformOpts.doOutput?"":undefined;if(outputPath!==undefined&&transformed!==undefined){fluid.model.transform.setValue(transformSpec.outputPath,transformed,transformer);transformed=undefined;}}return transformed;};var globalAccept=[];fluid.registerNamespace("fluid.pathUtil");fluid.pathUtil.getPathSegment=function(path,i){fluid.pathUtil.getPathSegmentImpl(globalAccept,path,i);return globalAccept[0];};fluid.pathUtil.getHeadPath=function(path){return fluid.pathUtil.getPathSegment(path,0);};fluid.pathUtil.getFromHeadPath=function(path){var firstdot=fluid.pathUtil.getPathSegmentImpl(null,path,0);return firstdot===path.length?"":path.substring(firstdot+1);};fluid.pathUtil.matchPath=function(spec,path,exact){var togo=[];while(true){if(path===""^spec===""&&exact)return null;if(!spec||!path)break;var spechead=fluid.pathUtil.getHeadPath(spec);var pathhead=fluid.pathUtil.getHeadPath(path);if(spechead!=="*"&&spechead!==pathhead)return null;togo.push(pathhead);spec=fluid.pathUtil.getFromHeadPath(spec);path=fluid.pathUtil.getFromHeadPath(path);}return togo;};fluid.model.transform.expandWildcards=function(transformer,source){fluid.each(source,(function(value,key){var q=transformer.queuedTransforms;transformer.pathOp.push(fluid.pathUtil.escapeSegment(key.toString()));for(var i=0;i<q.length;++i)if(fluid.pathUtil.matchPath(q[i].matchPath,transformer.path,true)){var esCopy=fluid.copy(q[i].transformSpec);if(esCopy.inputPath===undefined||fluid.model.transform.hasWildcard(esCopy.inputPath))esCopy.inputPath="";transformer.inputPrefixOp.push(transformer.path);transformer.outputPrefixOp.push(transformer.path);var transformOpts=fluid.model.transform.lookupType(esCopy.type);var result=fluid.model.transform.doTransform(esCopy,transformer,transformOpts);if(result!==undefined)fluid.model.transform.setValue(null,result,transformer);transformer.outputPrefixOp.pop();transformer.inputPrefixOp.pop();}if(!fluid.isPrimitive(value))fluid.model.transform.expandWildcards(transformer,value);transformer.pathOp.pop();}));};fluid.model.transform.hasWildcard=function(path){return typeof path==="string"&&path.indexOf("*")!==-1;};fluid.model.transform.maybePushWildcard=function(transformSpec,
118transformer){var hw=fluid.model.transform.hasWildcard;var matchPath;if(hw(transformSpec.inputPath))matchPath=fluid.model.composePaths(transformer.inputPrefix,transformSpec.inputPath);else{if(hw(transformer.outputPrefix)||hw(transformSpec.outputPath))matchPath=fluid.model.composePaths(transformer.outputPrefix,transformSpec.outputPath);}if(matchPath){transformer.queuedTransforms.push({transformSpec,outputPrefix:transformer.outputPrefix,inputPrefix:transformer.inputPrefix,matchPath});return true;}return false;};fluid.model.sortByKeyLength=function(inObject){var keys=fluid.keys(inObject);return keys.sort(fluid.compareStringLength(true));};fluid.model.transform.handleTransformStrategy=function(transformSpec,transformer,transformOpts){if(fluid.model.transform.maybePushWildcard(transformSpec,transformer))return;else return fluid.model.transform.doTransform(transformSpec,transformer,transformOpts);};fluid.model.transform.handleInvertStrategy=function(transformSpec,transformer,transformOpts){transformSpec=fluid.copy(transformSpec);if(fluid.hasGrade(transformOpts.defaults,"fluid.standardTransformFunction"))transformSpec=fluid.model.transform.invertPaths(transformSpec,transformer);var invertor=transformOpts.defaults&&transformOpts.defaults.invertConfiguration;if(invertor){var inverted=fluid.invokeGlobalFunction(invertor,[transformSpec,transformer]);transformer.inverted.push(inverted);}else transformer.inverted.push(fluid.model.transform.uninvertibleTransform);};fluid.model.transform.handleCollectStrategy=function(transformSpec,transformer,transformOpts){var defaults=transformOpts.defaults;var standardInput=fluid.hasGrade(defaults,"fluid.standardInputTransformFunction");var multiInput=fluid.hasGrade(defaults,"fluid.multiInputTransformFunction");if(standardInput)fluid.model.transform.accumulateStandardInputPath("input",transformSpec,transformer,transformer.inputPaths);if(multiInput)fluid.model.transform.accumulateMultiInputPaths(defaults.inputVariables,transformSpec,transformer,transformer.inputPaths);var collector=defaults.collectInputPaths;if(collector){var collected=fluid.makeArray(fluid.invokeGlobalFunction(collector,[transformSpec,transformer]));Array.prototype.push.apply(transformer.inputPaths,collected);}};fluid.model.transform.lookupType=function(typeName,transformSpec){if(!typeName)fluid.fail("Transformation record is missing a type name: ",transformSpec);if(typeName.indexOf(".")===-1)typeName="fluid.transforms."+typeName;var defaults=fluid.defaults(typeName);return {defaults,typeName};};fluid.model.transform.processRule=function(rule,transformer){if(typeof rule==="string")rule=fluid.model.transform.pathToRule(rule);else{if(rule.literalValue!==undefined)rule=fluid.model.transform.literalValueToRule(rule.literalValue);}var togo;if(rule.transform){var transformSpec,transformOpts;if(fluid.isArrayable(rule.transform)){var transforms=rule.transform;togo=undefined;for(var i=0;i<transforms.length;++i){transformSpec=transforms[i];transformOpts=fluid.model.transform.lookupType(transformSpec.type);transformer.transformHandler(transformSpec,transformer,transformOpts);}}else{transformSpec=rule.transform;transformOpts=fluid.model.transform.lookupType(transformSpec.type);togo=transformer.transformHandler(transformSpec,transformer,transformOpts);}}if(fluid.isArrayable(rule)){transformer.collectedFlatSchemaOpts=transformer.collectedFlatSchemaOpts||{};transformer.collectedFlatSchemaOpts[transformer.outputPrefix]="array";}fluid.each(rule,(function(value,key){if(key!=="transform"){transformer.outputPrefixOp.push(key);var togo=transformer.expand(value,transformer);if(togo!==undefined){fluid.model.transform.setValue(null,togo,transformer);togo=undefined;}transformer.outputPrefixOp.pop();}}));return togo;};fluid.model.transform.makeStrategy=function(transformer,handleFn,transformFn){transformFn=transformFn||fluid.model.transform.processRule;transformer.expand=function(rules){return transformFn(rules,transformer);};transformer.outputPrefixOp=fluid.model.makePathStack(transformer,"outputPrefix");transformer.inputPrefixOp=fluid.model.makePathStack(transformer,"inputPrefix");transformer.transformHandler=handleFn;};fluid.model.transform.uninvertibleTransform=Object.freeze({});fluid.model.transform.invertConfiguration=function(rules){var transformer={inverted:[]};fluid.model.transform.makeStrategy(transformer,fluid.model.transform.handleInvertStrategy);transformer.expand(rules);var invertible=transformer.inverted.indexOf(fluid.model.transform.uninvertibleTransform)===-1;
118return invertible?{transform:transformer.inverted}:fluid.model.transform.uninvertibleTransform;};fluid.model.transform.collectInputPaths=function(rules){var transformer={inputPaths:[]};fluid.model.transform.makeStrategy(transformer,fluid.model.transform.handleCollectStrategy);transformer.expand(rules);var inputPathHash=fluid.arrayToHash(transformer.inputPaths);return Object.keys(inputPathHash);};fluid.model.transform.flatSchemaStrategy=function(flatSchema,getConfig){var keys=fluid.model.sortByKeyLength(flatSchema);return function(root,segment,index,segs){var path=getConfig.parser.compose.apply(null,segs.slice(0,index));for(var i=0;i<keys.length;++i){var key=keys[i];if(fluid.pathUtil.matchPath(key,path,true)!==null)return flatSchema[key];}};};fluid.model.transform.defaultSchemaValue=function(schemaValue){var type=fluid.isPrimitive(schemaValue)?schemaValue:schemaValue.type;return type==="array"?[]:{};};fluid.model.transform.isomorphicSchemaStrategy=function(source,getConfig){return function(root,segment,index,segs){var existing=fluid.get(source,segs.slice(0,index),getConfig);return fluid.isArrayable(existing)?"array":"object";};};fluid.model.transform.decodeStrategy=function(source,options,getConfig){if(options.isomorphic)return fluid.model.transform.isomorphicSchemaStrategy(source,getConfig);else{if(options.flatSchema)return fluid.model.transform.flatSchemaStrategy(options.flatSchema,getConfig);}};fluid.model.transform.schemaToCreatorStrategy=function(strategy){return function(root,segment,index,segs){if(root[segment]===undefined){var schemaValue=strategy(root,segment,index,segs);root[segment]=fluid.model.transform.defaultSchemaValue(schemaValue);return root[segment];}};};fluid.model.transform.sequence=function(source,rules,options){for(var i=0;i<rules.length;++i)source=fluid.model.transform(source,rules[i],options);return source;};fluid.model.compareByPathLength=function(changea,changeb){var pdiff=changea.path.length-changeb.path.length;return pdiff===0?changea.sequence-changeb.sequence:pdiff;};fluid.model.fireSortedChanges=function(changes,applier){changes.sort(fluid.model.compareByPathLength);fluid.fireChanges(applier,changes);};fluid.model.transformWithRules=function(source,rules,options){options=options||{};var getConfig=fluid.model.escapedGetConfig;var setConfig=fluid.model.escapedSetConfig;var schemaStrategy=fluid.model.transform.decodeStrategy(source,options,getConfig);var transformer={source,target:{model:schemaStrategy?fluid.model.transform.defaultSchemaValue(schemaStrategy(null,"",0,[""])):{}},oldSource:options.oldSource,oldTarget:options.oldTarget,resolverGetConfig:getConfig,resolverSetConfig:setConfig,collectedFlatSchemaOpts:undefined,queuedChanges:[],queuedTransforms:[]};fluid.model.transform.makeStrategy(transformer,fluid.model.transform.handleTransformStrategy);transformer.applier={fireChangeRequest:function(changeRequest){changeRequest.sequence=transformer.queuedChanges.length;transformer.queuedChanges.push(changeRequest);}};fluid.bindRequestChange(transformer.applier);transformer.expand(rules);var rootSetConfig=fluid.copy(setConfig);if(transformer.collectedFlatSchemaOpts!==undefined){$.extend(transformer.collectedFlatSchemaOpts,options.flatSchema);schemaStrategy=fluid.model.transform.flatSchemaStrategy(transformer.collectedFlatSchemaOpts,getConfig);}rootSetConfig.strategies=[fluid.model.defaultFetchStrategy,schemaStrategy?fluid.model.transform.schemaToCreatorStrategy(schemaStrategy):fluid.model.defaultCreatorStrategy];transformer.finalApplier=options.finalApplier||fluid.makeHolderChangeApplier(transformer.target,{resolverSetConfig:rootSetConfig});if(transformer.queuedTransforms.length>0){transformer.typeStack=[];transformer.pathOp=fluid.model.makePathStack(transformer,"path");fluid.model.transform.expandWildcards(transformer,source);}fluid.model.fireSortedChanges(transformer.queuedChanges,transformer.finalApplier);return transformer.target.model;};$.extend(fluid.model.transformWithRules,fluid.model.transform);fluid.model.transform=fluid.model.transformWithRules;fluid.transformOne=function(rules){return {transformOptions:{transformer:"fluid.model.transformWithRules",config:rules}};};fluid.transformMany=function(rules){return {transformOptions:{transformer:"fluid.model.transform.sequence",config:rules}};};"use strict";fluid.registerNamespace("fluid.model.transform");fluid.registerNamespace("fluid.transforms");fluid.defaults("fluid.transforms.value",{gradeNames:"fluid.standardTransformFunction",invertConfiguration:"fluid.identity"});fluid.transforms.value=fluid.identity;fluid.transforms.identity=fluid.transforms.value;fluid.defaults("fluid.transforms.identity",{gradeNames:"fluid.transforms.value"});fluid.transforms.invertToIdentity=function(transformSpec){transformSpec.type="fluid.transforms.identity";return transformSpec;};fluid.defaults("fluid.transforms.literalValue",{gradeNames:"fluid.standardOutputTransformFunction"});fluid.transforms.literalValue=function(transformSpec){return transformSpec.input;};fluid.defaults("fluid.transforms.stringToNumber",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.stringToNumber.invert"});fluid.transforms.stringToNumber=function(value){var newValue=Number(value);return isNaN(newValue)?undefined:newValue;};fluid.transforms.stringToNumber.invert=function(transformSpec){transformSpec.type="fluid.transforms.numberToString";return transformSpec;};fluid.defaults("fluid.transforms.numberToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.numberToString.invert"});fluid.transforms.numberToString=function(value,transformSpec){if(typeof value==="number")if(typeof transformSpec.scale==="number"&&!isNaN(transformSpec.scale)){var rounded=fluid.roundToDecimal(value,transformSpec.scale,transformSpec.method);return rounded.toString();}else return value.toString();};fluid.transforms.numberToString.invert=function(transformSpec){transformSpec.type="fluid.transforms.stringToNumber";return transformSpec;};fluid.defaults("fluid.transforms.count",{gradeNames:"fluid.standardTransformFunction"});fluid.transforms.count=function(value){return fluid.makeArray(value).length;};fluid.defaults("fluid.transforms.round",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.invertToIdentity"});fluid.transforms.round=function(value,transformSpec){return fluid.roundToDecimal(value,transformSpec.scale,transformSpec.method);};fluid.defaults("fluid.transforms.delete",{gradeNames:"fluid.transformFunction"});fluid.transforms["delete"]=function(transformSpec,transformer){var outputPath=fluid.model.composePaths(transformer.outputPrefix,transformSpec.outputPath);transformer.applier.change(outputPath,null,"DELETE");};fluid.defaults("fluid.transforms.firstValue",{gradeNames:"fluid.standardOutputTransformFunction"});fluid.transforms.firstValue=function(transformSpec,transformer){if(!transformSpec.values||!transformSpec.values.length)fluid.fail('firstValue transformer requires an array of values at path named "values", supplied',transformSpec);for(var i=0;i<transformSpec.values.length;i++){var value=transformSpec.values[i];var expanded=transformer.expand(value);if(expanded!==undefined)return expanded;}};fluid.defaults("fluid.transforms.linearScale",{gradeNames:["fluid.multiInputTransformFunction","fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.linearScale.invert",inputVariables:{factor:1,offset:0}});fluid.transforms.linearScale=function(input,extraInputs){var factor=extraInputs.factor();var offset=extraInputs.offset();if(typeof input!=="number"||typeof factor!=="number"||typeof offset!=="number")return undefined;return input*factor+offset;};fluid.transforms.linearScale.invert=function(transformSpec){delete transformSpec.factorPath;delete transformSpec.offsetPath;if(transformSpec.factor!==undefined)transformSpec.factor=transformSpec.factor===0?0:1/transformSpec.factor;if(transformSpec.offset!==undefined)transformSpec.offset=-transformSpec.offset*(transformSpec.factor!==undefined?transformSpec.factor:1);return transformSpec;};fluid.defaults("fluid.transforms.binaryOp",{gradeNames:["fluid.multiInputTransformFunction","fluid.standardOutputTransformFunction"],inputVariables:{left:null,right:null}});fluid.transforms.binaryLookup={"===":function(a,b){return fluid.model.isSameValue(a,b);},"!==":function(a,b){return !fluid.model.isSameValue(a,b);},"<=":function(a,b){return a<=b;},"<":function(a,b){return a<b;},">=":function(a,b){return a>=b;},">":function(a,b){return a>b;},"+":function(a,b){return a+b;},"-":function(a,b){return a-b;},"*":function(a,b){return a*b;},"/":function(a,b){return a/b;},"%":function(a,b){return a%b;},"&&":function(a,b){return a&&b;},"||":function(a,b){return a||b;}};fluid.transforms.binaryOp=function(inputs,transformSpec,transformer){var left=inputs.left();var right=inputs.right();var operator=fluid.model.transform.getValue(undefined,transformSpec.operator,transformer);var fun=fluid.transforms.binaryLookup[operator];return fun===undefined||left===undefined||right===undefined?undefined:fun(left,right);};fluid.defaults("fluid.transforms.condition",{gradeNames:["fluid.multiInputTransformFunction","fluid.standardOutputTransformFunction"],inputVariables:{true:null,false:null,condition:null}});fluid.transforms.condition=function(inputs){var condition=inputs.condition();if(condition===null)return undefined;
118return inputs[condition?"true":"false"]();};fluid.defaults("fluid.transforms.valueMapper",{gradeNames:["fluid.lens"],invertConfiguration:"fluid.transforms.valueMapper.invert",collectInputPaths:"fluid.transforms.valueMapper.collect"});fluid.model.transform.compareMatches=function(speca,specb){var matchDiff=specb.matchValue-speca.matchValue;return matchDiff===0?speca.index-specb.index:matchDiff;};fluid.transforms.valueMapper=function(transformSpec,transformer){if(!transformSpec.match)fluid.fail('valueMapper requires an array or hash of matches at path named "match", supplied ',transformSpec);var value=fluid.model.transform.getValue(transformSpec.defaultInputPath,transformSpec.defaultInput,transformer);var matchedEntry=fluid.isArrayable(transformSpec.match)?fluid.transforms.valueMapper.longFormMatch(value,transformSpec,transformer):transformSpec.match[value];if(matchedEntry===undefined)matchedEntry=transformSpec.noMatch;if(matchedEntry===undefined)return;var outputPath=matchedEntry.outputPath===undefined?transformSpec.defaultOutputPath:matchedEntry.outputPath;transformer.outputPrefixOp.push(outputPath);var outputValue;if(fluid.isPrimitive(matchedEntry))outputValue=matchedEntry;else if(matchedEntry.outputUndefinedValue)outputValue=undefined;else{outputValue=fluid.model.transform.resolveParam(matchedEntry,transformer,"outputValue",undefined);outputValue=outputValue===undefined?transformSpec.defaultOutputValue:outputValue;}if(typeof outputPath==="string"&&outputValue!==undefined){fluid.model.transform.setValue(undefined,outputValue,transformer,transformSpec.merge);outputValue=undefined;}transformer.outputPrefixOp.pop();return outputValue;};fluid.transforms.valueMapper.longFormMatch=function(valueFromDefaultPath,transformSpec,transformer){var o=transformSpec.match;if(o.length===0)fluid.fail("valueMapper supplied empty list of matches: ",transformSpec);var matchPower=[];for(var i=0;i<o.length;++i){var option=o[i];var value=option.inputPath?fluid.model.transform.getValue(option.inputPath,undefined,transformer):valueFromDefaultPath;var matchValue=fluid.model.transform.matchValue(option.inputValue,value,option.partialMatches);matchPower[i]={index:i,matchValue};}matchPower.sort(fluid.model.transform.compareMatches);return matchPower[0].matchValue<=0?undefined:o[matchPower[0].index];};fluid.transforms.valueMapper.invert=function(transformSpec,transformer){var match=[];var togo={type:"fluid.transforms.valueMapper",match};var isArray=fluid.isArrayable(transformSpec.match);togo.defaultInputPath=fluid.model.composePaths(transformer.outputPrefix,transformSpec.defaultOutputPath);togo.defaultOutputPath=fluid.model.composePaths(transformer.inputPrefix,transformSpec.defaultInputPath);var def=fluid.firstDefined;fluid.each(transformSpec.match,(function(option,key){if(option.outputUndefinedValue===true)return;var outOption={};var origInputValue=def(isArray?option.inputValue:key,transformSpec.defaultInputValue);if(origInputValue===undefined)fluid.fail("Failure inverting configuration for valueMapper - inputValue could not be resolved for record "+key+": ",transformSpec);outOption.outputValue=origInputValue;outOption.inputValue=!isArray&&fluid.isPrimitive(option)?option:def(option.outputValue,transformSpec.defaultOutputValue);if(option.outputPath)outOption.inputPath=fluid.model.composePaths(transformer.outputPrefix,def(option.outputPath,transformSpec.outputPath));if(option.inputPath)outOption.outputPath=fluid.model.composePaths(transformer.inputPrefix,def(option.inputPath,transformSpec.inputPath));match.push(outOption);}));return togo;};fluid.transforms.valueMapper.collect=function(transformSpec,transformer){var togo=[];fluid.model.transform.accumulateStandardInputPath("defaultInput",transformSpec,transformer,togo);fluid.each(transformSpec.match,(function(option){fluid.model.transform.accumulateInputPath(option.inputPath,transformer,togo);}));return togo;};fluid.defaults("fluid.transforms.arrayToSetMembership",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.arrayToSetMembership.invert"});fluid.transforms.arrayToSetMembership=function(value,transformSpec){if(!value||!fluid.isArrayable(value))fluid.fail("arrayToSetMembership didn't find array at inputPath nor passed as value.");transformSpec=transformSpec||{};var output=transformSpec.arrayValue?[]:{};var presentValue=transformSpec.presentValue===undefined?true:transformSpec.presentValue,missingValue=transformSpec.missingValue===undefined?fal
118se:transformSpec.missingValue,options=transformSpec.options;if(options===undefined)fluid.each(value,(function(outPath){output[outPath]=presentValue;}));else fluid.each(options,(function(outPath,key){var outVal=value.indexOf(key)!==-1?presentValue:missingValue;output[outPath]=outVal;}));return output;};fluid.transforms.arrayToSetMembership.invert=function(transformSpec){return fluid.transforms.arrayToSetMembership.invertWithType(transformSpec,"fluid.transforms.setMembershipToArray");};fluid.transforms.arrayToSetMembership.invertWithType=function(transformSpec,newType){transformSpec.type=newType;var newOptions={};fluid.each(transformSpec.options,(function(path,oldKey){newOptions[path]=oldKey;}));if(!$.isEmptyObject(newOptions))transformSpec.options=newOptions;return transformSpec;};fluid.defaults("fluid.transforms.setMembershipToArray",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.setMembershipToArray.invert"});fluid.transforms.setMembershipToArray=function(input,transformSpec){if(!fluid.isPlainObject(input))fluid.fail("setMembershipToArray didn't find object at inputPath nor passed as value.");var outputArr=[];transformSpec=transformSpec||{};var presentValue=transformSpec.presentValue===undefined?true:transformSpec.presentValue,options=transformSpec.options;if(options===undefined)fluid.each(input,(function(keyValue,outputVal){if(keyValue===presentValue)outputArr.push(outputVal);}));else fluid.each(options,(function(outputVal,key){if(input[key]===presentValue)outputArr.push(outputVal);}));return outputArr;};fluid.transforms.setMembershipToArray.invert=function(transformSpec){return fluid.transforms.arrayToSetMembership.invertWithType(transformSpec,"fluid.transforms.arrayToSetMembership");};fluid.model.transform.applyPaths=function(operation,pathOp,paths){for(var i=0;i<paths.length;++i)if(operation==="push")pathOp.push(paths[i]);else pathOp.pop();};fluid.model.transform.expandInnerValues=function(inputPath,outputPath,transformer,innerValues){var inputPrefixOp=transformer.inputPrefixOp;var outputPrefixOp=transformer.outputPrefixOp;var apply=fluid.model.transform.applyPaths;apply("push",inputPrefixOp,inputPath);apply("push",outputPrefixOp,outputPath);var expanded={};fluid.each(innerValues,(function(innerValue){var expandedInner=transformer.expand(innerValue);if(!fluid.isPrimitive(expandedInner))$.extend(true,expanded,expandedInner);else expanded=expandedInner;}));apply("pop",outputPrefixOp,outputPath);apply("pop",inputPrefixOp,inputPath);return expanded;};fluid.defaults("fluid.transforms.indexArrayByKey",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.indexArrayByKey.invert"});fluid.transforms.indexArrayByKey=function(arr,transformSpec,transformer){if(transformSpec.key===undefined)fluid.fail("indexArrayByKey requires a 'key' option.",transformSpec);if(!fluid.isArrayable(arr))fluid.fail("indexArrayByKey didn't find array at inputPath.",transformSpec);var newHash={};var pivot=transformSpec.key;fluid.each(arr,(function(v,k){var newKey=v[pivot];var keyType=typeof newKey;if(keyType!=="string"&&keyType!=="boolean"&&keyType!=="number")fluid.fail("indexArrayByKey encountered untransformable array due to missing or invalid key",v);var content=fluid.copy(v);delete content[pivot];if(transformSpec.innerValue)content=fluid.model.transform.expandInnerValues([transformer.inputPrefix,transformSpec.inputPath,k.toString()],[transformSpec.outputPath,newKey],transformer,transformSpec.innerValue);newHash[newKey]=content;}));return newHash;};fluid.transforms.indexArrayByKey.invert=function(transformSpec){transformSpec.type="fluid.transforms.deindexIntoArrayByKey";if(transformSpec.innerValue){var innerValue=transformSpec.innerValue;for(var i=0;i<innerValue.length;++i){var inverted=fluid.model.transform.invertConfiguration(innerValue[i]);if(inverted===fluid.model.transform.uninvertibleTransform)return inverted;else innerValue[i]=inverted;}}return transformSpec;};fluid.defaults("fluid.transforms.deindexIntoArrayByKey",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.deindexIntoArrayByKey.invert"});fluid.transforms.deindexIntoArrayByKey=function(hash,transformSpec,transformer){if(transformSpec.key===un
118defined)fluid.fail('deindexIntoArrayByKey requires a "key" option.',transformSpec);var newArray=[];var pivot=transformSpec.key;fluid.each(hash,(function(v,k){var content={};content[pivot]=k;if(transformSpec.innerValue)v=fluid.model.transform.expandInnerValues([transformSpec.inputPath,k],[transformSpec.outputPath,newArray.length.toString()],transformer,transformSpec.innerValue);$.extend(true,content,v);newArray.push(content);}));return newArray;};fluid.transforms.deindexIntoArrayByKey.invert=function(transformSpec){transformSpec.type="fluid.transforms.indexArrayByKey";if(transformSpec.innerValue){var innerValue=transformSpec.innerValue;for(var i=0;i<innerValue.length;++i)innerValue[i]=fluid.model.transform.invertConfiguration(innerValue[i]);}return transformSpec;};fluid.defaults("fluid.transforms.limitRange",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.invertToIdentity"});fluid.transforms.limitRange=function(value,transformSpec){var min=transformSpec.min;if(min!==undefined){var excludeMin=transformSpec.excludeMin||0;min+=excludeMin;if(value<min)value=min;}var max=transformSpec.max;if(max!==undefined){var excludeMax=transformSpec.excludeMax||0;max-=excludeMax;if(value>max)value=max;}return value;};fluid.defaults("fluid.transforms.indexOf",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.indexOf.invert"});fluid.transforms.indexOf=function(value,transformSpec){if(typeof transformSpec.notFound==="number"&&transformSpec.notFound>=0)fluid.fail("A positive number is not allowed as 'notFound' value for indexOf");var offset=fluid.transforms.parseIndexationOffset(transformSpec.offset,"indexOf");var array=fluid.makeArray(transformSpec.array);var originalIndex=array.indexOf(value);return originalIndex===-1&&transformSpec.notFound?transformSpec.notFound:originalIndex+offset;};fluid.transforms.indexOf.invert=function(transformSpec,transformer){var togo=fluid.transforms.invertArrayIndexation(transformSpec,transformer);togo.type="fluid.transforms.dereference";return togo;};fluid.defaults("fluid.transforms.dereference",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.dereference.invert"});fluid.transforms.dereference=function(value,transformSpec){if(typeof value!=="number")return undefined;var offset=fluid.transforms.parseIndexationOffset(transformSpec.offset,"dereference");var array=fluid.makeArray(transformSpec.array);var index=value+offset;return array[index];};fluid.transforms.dereference.invert=function(transformSpec,transformer){var togo=fluid.transforms.invertArrayIndexation(transformSpec,transformer);togo.type="fluid.transforms.indexOf";return togo;};fluid.transforms.parseIndexationOffset=function(offset,transformName){var parsedOffset=0;if(offset!==undefined){parsedOffset=fluid.parseInteger(offset);if(isNaN(parsedOffset))fluid.fail(transformName+' requires the value of "offset" to be an integer or a string that can be converted to an integer. '+offset+" is invalid.");}return parsedOffset;};fluid.transforms.invertArrayIndexation=function(transformSpec){if(!isNaN(Number(transformSpec.offset)))transformSpec.offset=Number(transformSpec.offset)*-1;return transformSpec;};fluid.defaults("fluid.transforms.stringTemplate",{gradeNames:"fluid.standardOutputTransformFunction"});fluid.transforms.stringTemplate=function(transformSpec){return fluid.stringTemplate(transformSpec.template,transformSpec.terms);};fluid.defaults("fluid.transforms.free",{gradeNames:"fluid.transformFunction"});fluid.transforms.free=function(transformSpec){var args=fluid.makeArray(transformSpec.args);if(!transformSpec.func)fluid.fail("Error in transform specification ",transformSpec,' required member "func" was not set');return fluid.event.invokeListener(transformSpec.func,args);};fluid.defaults("fluid.transforms.quantize",{gradeNames:"fluid.standardTransformFunction",collectInputPaths:"fluid.transforms.quantize.collect"});fluid.transforms.quantize=function(value,transformSpec,transformer){if(!transformSpec.ranges||!transformSpec.ranges.length)fluid.fail("fluid.transforms.quantize should have a key called ranges containing an array defining ranges to quantize");for(var i=0;i<transformSpec.ranges.length;i++){var rangeSpec=transformSpec.ranges[i];
118if(value<=rangeSpec.upperBound||rangeSpec.upperBound===undefined&&value>=Number.NEGATIVE_INFINITY)return fluid.isPrimitive(rangeSpec.output)?rangeSpec.output:transformer.expand(rangeSpec.output);}};fluid.transforms.quantize.collect=function(transformSpec,transformer){transformSpec.ranges.forEach((function(rangeSpec){if(!fluid.isPrimitive(rangeSpec.output))transformer.expand(rangeSpec.output);}));};fluid.defaults("fluid.transforms.inRange",{gradeNames:"fluid.standardTransformFunction"});fluid.transforms.inRange=function(value,transformSpec){return (transformSpec.min===undefined||transformSpec.min<=value)&&(transformSpec.max===undefined||transformSpec.max>=value)?true:false;};fluid.defaults("fluid.transforms.toggle",{gradeNames:["fluid.standardTransformFunction"],invertConfiguration:"fluid.transforms.toggle.invert",relayOptions:{forward:{excludeSource:"init"},backward:{includeSource:"init"}}});fluid.transforms.toggle=function(source,transformSpec,transformer){var oldSource=transformer.oldSource,oldTarget=transformer.oldTarget;var phase=(oldSource||0)-fluid.transforms.inverseToggle.base(oldTarget);return fluid.transforms.toggle.base(source+phase);};fluid.transforms.toggle.base=function(source){return (source||0)%2===1;};fluid.transforms.toggle.invert=function(transformSpec){transformSpec.type="fluid.transforms.inverseToggle";return transformSpec;};fluid.defaults("fluid.transforms.inverseToggle",{gradeNames:["fluid.standardTransformFunction"]});fluid.transforms.inverseToggle=function(source,transformSpec,transformer){return transformer.originalTarget||undefined;};fluid.transforms.inverseToggle.base=function(source){return source?1:0;};fluid.transforms.parseClasses=function(classes){var classList=classes.match(fluid.transforms.parseClasses.rnothtmlwhite)||[];return fluid.arrayToHash(classList);};fluid.transforms.parseClasses.rnothtmlwhite=/[^\x20\t\r\n\f]+/g;fluid.transforms.stringToBoolean=function(value){if(value)return !(value==="0"||value==="false");else return false;};fluid.transforms.stringToBoolean.invert=function(transformSpec){transformSpec.type="fluid.transforms.booleanToString";return transformSpec;};fluid.defaults("fluid.transforms.stringToBoolean",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.stringToBoolean.invert"});fluid.transforms.booleanToString=function(value){return value?"true":"false";};fluid.transforms.booleanToString.invert=function(transformSpec){transformSpec.type="fluid.transforms.stringToBoolean";return transformSpec;};fluid.defaults("fluid.transforms.booleanToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.booleanToString.invert"});fluid.transforms.JSONstringToObject=function(value){try{return JSON.parse(value);}catch(e){return undefined;}};fluid.transforms.JSONstringToObject.invert=function(transformSpec){transformSpec.type="fluid.transforms.objectToJSONString";return transformSpec;};fluid.defaults("fluid.transforms.JSONstringToObject",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.JSONstringToObject.invert"});fluid.transforms.objectToJSONString=function(value,transformSpec){var space=transformSpec.space||0;return JSON.stringify(value,null,space);};fluid.transforms.objectToJSONString.invert=function(transformSpec){transformSpec.type="fluid.transforms.JSONstringToObject";return transformSpec;};fluid.defaults("fluid.transforms.objectToJSONString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.objectToJSONString.invert"});fluid.transforms.stringToDate=function(value){var date=new Date(value);return isNaN(date.getTime())?undefined:date;};fluid.transforms.stringToDate.invert=function(transformSpec){transformSpec.type="fluid.transforms.dateToString";return transformSpec;};fluid.defaults("fluid.transforms.stringToDate",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.stringToDate.invert"});fluid.transforms.dateToString=function(value){if(value instanceof Date){var isoString=value.toISOString();var dateString=isoString.substring(0,isoString.indexOf("T"));return dateString;}else return undefined;};fluid.transforms.dateToString.invert=function(transformSpec){transformSpec.type="fluid.transforms.stringToDate";return transformSpec;};fluid.defaults("fluid.transforms.dateToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.dateToString.invert"});fluid.transforms.dateTimeToString=function(value){return value instanceof Date?value.toISOString():undefined;};fluid.defaults("fluid.transforms.dateTimeToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.dateToString.invert"});"use strict";var fluid=fluid||{};(function($){fluid.thatistBridge=function(name,peer){var togo=function(funcname){var segs=funcname.split(".");var move=peer;for(var i=0;i<segs.length;++i)move=move[segs[i]];var args=[this];if(arguments.length===2)args=args.concat($.makeArray(arguments[1]));var ret=move.apply(null,args);this.that=function(){return ret;};return ret&&ret.constructor&&ret.constructor.name==="fluid.componentConstructor"?this:ret;};$.fn[name]=togo;return togo;};fluid.thatistBridge("fluid",fluid);var canHaveDefaultTabindex=function(elements){if(elements.length<=0)return false;return $(elements[0]).is("a, input, button, select, area, textarea, object");};var getValue=function(elements){if(elements.length<=0)return undefined;if(!fluid.tabindex.hasAttr(elements))return canHaveDefaultTabindex(elements)?Number(0):undefined;var value=elements.attr("tabindex");return Number(value);};var setValue=function(elements,toIndex){return elements.each((function(i,item){$(item).attr("tabindex",toIndex);}));};fluid.tabindex=function(target,toIndex){target=$(target);if(toIndex!==null&&toIndex!==undefined)return setValue(target,toIndex);else return getValue(target);};fluid.tabindex.remove=function(target){target=$(target);return target.each((function(i,item){$(item).removeAttr("tabindex");}));};fluid.tabindex.hasAttr=function(target){target=$(target);if(target.length<=0)return false;var togo=target.map((function(){var attributeNode=this.getAttributeNode("tabindex");return attributeNode?attributeNode.specified:false;}));return togo.length===1?togo[0]:togo;};fluid.tabindex.has=function(target){target=$(target);return fluid.tabindex.hasAttr(target)||canHaveDefaultTabindex(target);};fluid.a11y=$.a11y||{};fluid.a11y.orientation={HORIZONTAL:0,VERTICAL:1,BOTH:2};var UP_DOWN_KEYMAP={next:$.ui.keyCode.DOWN,previous:$.ui.keyCode.UP};var LEFT_RIGHT_KEYMAP={next:$.ui.keyCode.RIGHT,previous:$.ui.keyCode.LEFT};var unwrap=function(element){return element.jquery?element[0]:element;};var makeElementsTabFocussable=function(elements){elements.each((function(idx,item){item=$(item);if(!item.fluid("tabindex.has")||item.fluid("tabindex")<0)item.fluid("tabindex",0);}));};fluid.tabbable=function(target){target=$(target);makeElementsTabFocussable(target);};var CONTEXT_KEY="selectionContext";var NO_SELECTION=-32768;var cleanUpWhenLeavingContainer=function(selectionContext){if(selectionContext.activeItemIndex!==NO_SELECTION)if(selectionContext.options.onLeaveContainer)selectionContext.options.onLeaveContainer(selectionContext.selectables[selectionContext.activeItemIndex]);else{if(selectionContext.options.onUnselect)selectionContext.options.onUnselect(selectionContext.selectables[selectionContext.activeItemIndex]);}if(!selectionContext.options.rememberSelectionState)selectionContext.activeItemIndex=NO_SELECTION;};var drawSelection=function(elementToSelect,handler){if(handler)handler(elementToSelect);};var eraseSelection=function(selectedElement,handler){if(handler&&selectedElement)handler(selectedElement);};var unselectElement=function(selectedElement,selectionContext){eraseSelection(selectedElement,selectionContext.options.onUnselect);};var selectElement=function(elementToSelect,selectionContext){unselectElement(selectionContext.selectedElement(),selectionContext);elementToSelect=unwrap(elementToSelect);var newIndex=selectionContext.selectables.index(elementToSelect);if(newIndex===-1)return;selectionContext.activeItemIndex=newIndex;drawSelection(elementToSelect,selectionContext.options.onSelect);};var selectableFocusHandler=function(selectionContext){return function(evt){$(evt.target).fluid("tabindex",0);selectElement(evt.target,selectionContext);return evt.stopPropagation();};};var selectableBlurHandler=function(selectionContext){return function(evt){$(evt.target).fluid("tabindex",selectionContext.options.selectablesTabindex);unselectElement(evt.target,selectionContext);return evt.stopPropagation();};};var reifyIndex=async function(sc_that){var elements=sc_that.selectables;if(sc_that.activeItemIndex>=elements.length)sc_that.activeItemIndex=sc_that.options.noWrap?elements.length-1:0;if(sc_that.activeItemIndex<0&&sc_that.activeItemIndex!==NO_SELECTION)sc_that.activeItemIndex=sc_that.options.noWrap?0:elements.length-1;if(sc_that.activeItemIndex>=0)return fluid.focus(elements[sc_that.activeItemIndex]);};var prepareShift=async function(selectionContext){var selElm=selectionContext.selectedElement();if(selElm)await fluid.blur(selElm);unselectElement(selectionContext.selectedElement(),selectionContext);if(selectionContext.activeItemIndex===NO_SELECTION)selectionContext.activeItemIndex=-1;};var focusNextElement=async function(selectionContext){await prepareShift(selectionContext);++selectionContext.activeItemIndex;return reifyIndex(selectionContext);};var focusPreviousElement=async function(selectionContext){await prepareShift(selectionContext);--selectionContext.activeItemIndex;return reifyIndex(selectionContext);};var arrowKeyHandler=function(selectionContext,keyMap){return async function(evt){if(evt.which===keyMap.next){await focusNextElement(selectionContext);evt.preventDefault();}else{if(evt.which===keyMap.previous){await focusPreviousElement(selectionContext);evt.preventDefault();}}};};var getKeyMapForDirection=function(direction){var keyMap;if(direction===fluid.a11y.orientation.HORIZONTAL)keyMap=LEFT_RIGHT_KEYMAP;else{if(direction===fluid.a11y.orientation.VERTICAL)keyMap=UP_DOWN_KEYMAP;}return keyMap;};var tabKeyHandler=function(selectionContext){return function(evt){if(evt.which!==$.ui.keyCode.TAB)return;cleanUpWhenLeavingContainer(selectionContext);if(evt.shiftKey)selectionContext.focusIsLeavingContainer=true;};};var containerFocusHandler=function(selectionContext){return async function(evt){var shouldOrig=selectionContext.options.autoSelectFirstItem;var shouldSelect=typeof shouldOrig==="function"?shouldOrig():shouldOrig;if(selectionContext.focusIsLeavingContainer)shouldSelect=false;if(shouldSelect&&evt.target===selectionContext.container.get(0)){if(selectionContext.activeItemIndex===NO_SELECTION)selectionContext.activeItemIndex=0;await fluid.focus(selectionContext.selectables[selectionContext.activeItemIndex]);}return evt.stopPropagation();};};var containerBlurHandler=function(selectionContext){return function(evt){selectionContext.focusIsLeavingContainer=false;return evt.stopPropagation();};};var makeElementsSelectable=function(container,defaults,userOptions){var options=$.extend(true,{},defaults,userOptions);var keyMap=getKeyMapForDirection(options.direction);var selectableElements=options.selectableElements?options.selectableElements:container.find(options.selectableSelector);var that={container,activeItemIndex:NO_SELECTION,selectables:selectableElements,focusIsLeavingContainer:false,options};that.selectablesUpdated=async function(focusedItem){if(typeof that.options.selectablesTabindex==="number")that.selectables.fluid("tabindex",that.options.selectablesTabindex);that.selectables.off("focus."+CONTEXT_KEY);
118that.selectables.off("blur."+CONTEXT_KEY);that.selectables.on("focus."+CONTEXT_KEY,selectableFocusHandler(that));that.selectables.on("blur."+CONTEXT_KEY,selectableBlurHandler(that));if(keyMap&&that.options.noBubbleListeners){that.selectables.off("keydown."+CONTEXT_KEY);that.selectables.on("keydown."+CONTEXT_KEY,arrowKeyHandler(that,keyMap));}if(focusedItem)selectElement(focusedItem,that);else return reifyIndex(that);};that.refresh=async function(){if(!that.options.selectableSelector)fluid.fail("Cannot refresh selectable context which was not initialised by a selector");that.selectables=container.find(options.selectableSelector);return that.selectablesUpdated();};that.selectedElement=function(){return that.activeItemIndex<0?null:that.selectables[that.activeItemIndex];};if(keyMap&&!that.options.noBubbleListeners)container.on("keydown",arrowKeyHandler(that,keyMap));container.on("keydown",tabKeyHandler(that));container.on("focus",containerFocusHandler(that));container.on("blur",containerBlurHandler(that));that.promise=that.selectablesUpdated();return that;};fluid.selectable=function(target,options){target=$(target);var that=makeElementsSelectable(target,fluid.selectable.defaults,options);fluid.setScopedData(target,CONTEXT_KEY,that);return that;};fluid.selectable.select=async function(target,toSelect){return fluid.focus(toSelect);};fluid.selectable.selectNext=async function(target){target=$(target);return focusNextElement(fluid.getScopedData(target,CONTEXT_KEY));};fluid.selectable.selectPrevious=async function(target){target=$(target);return focusPreviousElement(fluid.getScopedData(target,CONTEXT_KEY));};fluid.selectable.currentSelection=function(target){target=$(target);var that=fluid.getScopedData(target,CONTEXT_KEY);return $(that.selectedElement());};fluid.selectable.defaults={direction:fluid.a11y.orientation.VERTICAL,selectablesTabindex:-1,autoSelectFirstItem:true,rememberSelectionState:true,selectableSelector:".selectable",selectableElements:null,onSelect:null,onUnselect:null,onLeaveContainer:null,noWrap:false};var checkForModifier=function(binding,evt){if(!binding.modifier)return true;var modifierKey=binding.modifier;var isCtrlKeyPresent=modifierKey&&evt.ctrlKey;var isAltKeyPresent=modifierKey&&evt.altKey;var isShiftKeyPresent=modifierKey&&evt.shiftKey;return isCtrlKeyPresent||isAltKeyPresent||isShiftKeyPresent;};var makeActivationHandler=function(binding){return function(evt){var target=evt.target;if(!fluid.enabled(target))return;var code=evt.which?evt.which:evt.keyCode;if(code===binding.key&&binding.activateHandler&&checkForModifier(binding,evt)){var event=$.Event("fluid-activate");$(target).trigger(event,[binding.activateHandler]);if(event.isDefaultPrevented())evt.preventDefault();}};};var makeElementsActivatable=function(elements,onActivateHandler,defaultKeys,options){var bindings=[];$(defaultKeys).each((function(index,key){bindings.push({modifier:null,key,activateHandler:onActivateHandler});}));if(options&&options.additionalBindings)bindings=bindings.concat(options.additionalBindings);fluid.initEnablement(elements);for(var i=0;i<bindings.length;++i){var binding=bindings[i];elements.on("keydown",makeActivationHandler(binding));}elements.on("fluid-activate",(function(evt,handler){handler=handler||onActivateHandler;return handler?handler(evt):null;}));};fluid.activatable=function(target,fn,options){target=$(target);makeElementsActivatable(target,fn,fluid.activatable.defaults.keys,options);};fluid.activate=function(target){$(target).trigger("fluid-activate");};fluid.activatable.defaults={keys:[$.ui.keyCode.ENTER,$.ui.keyCode.SPACE]};})(jQuery);"use strict";fluid.apply=function(options){return options.func.apply(null,options.args);};fluid.defaults("fluid.baseViewComponent",{gradeNames:"fluid.component",argumentMap:{container:0,options:1},events:{onDomBind:"promise"},listeners:{"onCreate.onDomBind":"{that}.events.onDomBind"},selectors:{},members:{dom:"@expand:fluid.createDomBinder({that}.container, {that}.options.selectors)",locate:"{that}.dom.locate"},mergePolicy:{"members.dom":"replace","members.container":"replace"}});fluid.defaults("fluid.viewComponent",{gradeNames:["fluid.modelComponent","fluid.baseViewComponent"],members:{container:"@expand:fluid.containerForViewComponent({that}, {that}.options.container)"}});fluid.dumpSelector=function(selectable){return typeof selectable==="string"?selectable:selectable.selector?selectable.selector:"";};fluid.checkTryCatchParameter=function(){var location=window.location||{search:"",protocol:"file:"};var GETparams=location.search.slice(1).split("&");return fluid.find(GETparams,(function(param){if(param.indexOf("notrycatch")===0)return true;}))===true;};fluid.notrycatch=fluid.checkTryCatchParameter();fluid.wrap=function(obj,userJQuery){userJQuery=userJQuery||$;return !obj||obj.jquery?obj:userJQuery(obj);};fluid.unwrap=function(obj){return obj&&obj.jquery?obj[0]:obj;};fluid.container=function(containerSpec,fallible,userJQuery){if(!containerSpec)fluid.fail("fluid.container argument is empty");var selector=containerSpec.selector||containerSpec;if(userJQuery)containerSpec=fluid.unwrap(containerSpec);var container=fluid.wrap(containerSpec,userJQuery);if(fallible&&(!container||container.length===0))return null;if(!container||!container.jquery||container.length!==1){if(typeof containerSpec!=="string")containerSpec=container.selector;var count=container.length!==undefined?container.length:0;var extraMessage=container.selectorName?" with selector name "+container.selectorName+" in context "+fluid.dumpEl(containerSpec.context):"";fluid.fail((count>1?"More than one ("+count+") container elements were":"No container element was")+" found for selector "+containerSpec+extraMessage);}if(!fluid.isDOMNode(container[0]))fluid.fail("fluid.container was supplied a non-jQueryable element");container.selector=selector;container.context=container.context||containerSpec.ownerDocument||document;return container;};fluid.createDomBinder=function(container,selectors){var userJQuery=container.constructor;var that={container,id:fluid.allocateGuid(),doQuery:function(selector){return userJQuery(selector,that.container);},cache:{}};that.locate=function(selectorName){var selector=selectorName==="container"?"":selectors[selectorName];if(selector===undefined)fluid.fail("DOM binder request for selector "+selectorName+" which is not registered");var togo;if(selector==="")togo=that.container;else togo=that.doQuery(selector,selectorName);togo.selector=selector;togo.context=that.container;togo.selectorName=selectorName;that.cache[selectorName]=togo;return togo;};that.fastLocate=function(selectorName){return that.cache[selectorName]||that.locate(selectorName);};that.resetContainer=function(container){that.container=container;that.clear();};that.clear=function(){that.cache={};};that.resolvePathSegment=that.locate;return that;};fluid.createLocalContainerDomBinder=function(container,selectors){var that={container,id:fluid.allocateGuid(),cache:{}};var userJQuery=container.constructor;function cacheKey(name,thisContainer){return fluid.allocateSimpleId(thisContainer)+"-"+name;}function record(name,thisContainer,result){that.cache[cacheKey(name,thisContainer)]=result;}that.locate=function(name,localContainer){var selector,thisContainer,togo;selector=selectors[name];if(selector===undefined)if(name==="container")selector="";else fluid.fail("DOM binder request for selector "+name+" which is not registered");thisContainer=localContainer||that.container;if(!thisContainer)fluid.fail("DOM binder invoked for selector "+name+" without container");if(selector==="")togo=userJQuery(thisContainer);else if(typeof selector==="function")togo=userJQuery(selector.call(null,fluid.unwrap(thisContainer)));else togo=userJQuery(selector,thisContainer);if(!togo.selector){togo.selector=selector;togo.context=thisContainer;}togo.selectorName=name;record(name,thisContainer,togo);return togo;};that.fastLocate=function(name,localContainer){var thisContainer=localContainer?localContainer:that.container;var key=cacheKey(name,thisContainer);var togo=that.cache[key];return togo?togo:that.locate(name,localContainer);};that.resetContainer=function(container){that.container=container;that.clear();};that.clear=function(){that.cache={};};that.refresh=function(names,localContainer){var thisContainer=localContainer?localContainer:that.container;
118if(typeof names==="string")names=[names];if(thisContainer.length===undefined)thisContainer=[thisContainer];for(var i=0;i<names.length;++i)for(var j=0;j<thisContainer.length;++j)that.locate(names[i],thisContainer[j]);};that.resolvePathSegment=that.locate;return that;};fluid.expectFilledSelector=function(result,message){if(result&&result.length===0&&result.jquery)fluid.fail(message+': selector "'+result.selector+'" with name '+result.selectorName+" returned no results in context "+fluid.dumpEl(result.context));};fluid.containerForViewComponent=function(that,containerSpec){var container=fluid.container(containerSpec);fluid.expectFilledSelector(container,'Error instantiating viewComponent at path "'+fluid.pathForComponent(that));return container;};fluid.getId=function(element){return fluid.unwrap(element).id;};fluid.allocateSimpleId=function(element){element=fluid.unwrap(element);if(!element||fluid.isPrimitive(element))return null;if(!element.id){var simpleId="fluid-id-"+fluid.allocateGuid();element.id=simpleId;}return element.id;};fluid.registerNamespace("fluid.materialisers");fluid.makeDomMaterialiserManager=function(){var that={idToModelListeners:{}};return that;};fluid.checkMaterialisedElement=function(element,selectorName,that){if(!element||!element.length)fluid.fail("Could not locate element for selector "+selectorName+" for component "+fluid.dumpComponentAndPath(that));};fluid.domMaterialiserManager=fluid.makeDomMaterialiserManager();fluid.materialisers.domOutput=function(that,segs,type,options){fluid.freezeRecursive(segs);var selectorName=segs[1];var listener=function(value){if(that.dom){var element=that.dom.locate(selectorName);fluid.checkMaterialisedElement(element,selectorName,that);if(type==="jQuery"){var model={value,segs};var args=options.makeArgs?options.makeArgs(model):[model.value];element[options.method].apply(element,args);}else{if(type==="booleanAttr")if(value===undefined){var markupValue=!!element.attr(options.attr);that.applier.change(segs,options.negate?!markupValue:markupValue);}else{var attrValue=options.negate?!value:value;if(attrValue)element.attr(options.attr,options.attr);else element.removeAttr(options.attr);}}}};that.applier.modelChanged.addListener({segs},listener);that.events.onDomBind.addListener((function(){var modelValue=fluid.getImmediate(that.model,segs);listener(modelValue);}));};fluid.incrementModel=function(that,segs){var oldValue=fluid.getImmediate(that.model,segs)||0;that.applier.change(segs,oldValue+1);};fluid.materialisers.domClick=function(that,segs){var listener=function(){fluid.incrementModel(that,segs);};that.events.onDomBind.addListener((function(){that.dom.locate(segs[1]).click(listener);}));};fluid.materialisers.hover=function(that,segs){var makeListener=function(state){return function(){that.applier.change(segs,state);};};that.events.onDomBind.addListener((function(){that.dom.locate(segs[1]).hover(makeListener(true),makeListener(false));}));};fluid.materialisers.focusin=function(that,segs){var makeListener=function(state){return function(){that.applier.change(segs,state);};};that.events.onDomBind.addListener((function(){that.dom.locate(segs[1]).focusin(makeListener(true)).focusout(makeListener(false));}));};fluid.materialisers.id=function(that,segs){that.events.onDomBind.addListener((function(){var element=that.dom.locate(segs[1])[0];var modelValue=fluid.getImmediate(that.model,segs);if(modelValue===undefined){var id=fluid.allocateSimpleId(element);that.applier.change(segs,id,"ADD","DOM");}else element.id=modelValue;var modelListener=function(value){if(value!==undefined)element.id=value;};that.applier.modelChanged.addListener({segs},modelListener);}));};fluid.materialisers.domValue=function(that,segs){that.events.onDomBind.addListener((function(){var element=that.dom.locate(segs[1]);var domListener=function(){var val=fluid.value(element);that.applier.change(segs,val,"ADD","DOM");};var modelListener=function(value){if(value!==undefined)fluid.value(element,value);};that.applier.modelChanged.addListener({segs},modelListener);var options=fluid.getImmediate(that,["options","bindingOptions",fluid.model.composeSegments.apply(null,segs)]);var changeEvent=options&&options.changeEvent||"change";element.on(changeEvent,domListener);modelListener(fluid.getImmediate(that.model,segs));}));};fluid.materialisers.style=function(that,segs){var selectorName=segs[1];that.events.onDomBind.addListener((function(){var element=that.dom.locate(selectorName);fluid.checkMaterialisedElement(element,selectorName,that);var modelValue=fluid.getImmediate(that.model,segs);element[0].style[segs[3]]=modelValue;}));};fluid.registerNamespace("fluid.materialiserRegistry");fluid.materialiserRegistry["fluid.viewComponent"]={dom:{"*":{text:{materialiser:"fluid.materialisers.domOutput",args:["jQuery",{method:"text"}]},attr:{materialiser:"fluid.materialisers.domOutput",args:["jQuery",{method:"attr",makeArgs:function(model){return [model.segs[3],model.value];}}]},visible:{materialiser:"fluid.materialisers.domOutput",args:["jQuery",{method:"toggle"}]},enabled:{materialiser:"fluid.materialisers.domOutput",args:["booleanAttr",{attr:"disabled",negate:true}]},click:{materialiser:"fluid.materialisers.domClick"},hover:{materialiser:"fluid.materialisers.hover"},focusin:{materialiser:"fluid.materialisers.focusin"},value:{materialiser:"fluid.materialisers.domValue"},class:{materialiser:"fluid.materialisers.domOutput",args:["jQuery",{method:"toggleClass",makeArgs:function(model){return [model.segs[3],!!model.value];}}]},style:{materialiser:"fluid.materialisers.style"},id:{materialiser:"fluid.materialisers.id"}}}};fluid.value=function(nodeIn,newValue){var node=fluid.unwrap(nodeIn);var isMultiple=false;if(node.nodeType===undefined&&node.length>1){node=node[0];isMultiple=true;}if("input"!==node.nodeName.toLowerCase()||!/radio|checkbox/.test(node.type))return newValue===undefined?$(node).val():$(node).val(newValue);var name=node.name;var elements;if(isMultiple||name==="")elements=nodeIn;else{elements=node.ownerDocument.getElementsByName(name);var scope=fluid.findForm(node);elements=$.grep(elements,(function(element){if(element.name!==name)return false;return !scope||scope.contains(element);}));isMultiple=elements.length>1;}if(newValue!==undefined){if(typeof newValue==="boolean")newValue=newValue?"true":"false";$.each(elements,(function(){this.checked=newValue instanceof Array?newValue.indexOf(this.value)!==-1:newValue===this.value;}));}else{var checked=$.map(elements,(function(element){return element.checked?element.value:null;}));return node.type==="radio"?checked[0]:isMultiple?checked:!!checked[0];}};fluid.defaults("fluid.ariaLabeller",{gradeNames:"fluid.viewComponent"});"use strict";fluid.changeElementValue=function(node,value){node=$(node);fluid.value(node,value);node.change();};
118fluid.findAncestor=function(element,test){element=fluid.unwrap(element);while(element){if(test(element))return element;element=element.parentNode;}};fluid.findForm=function(node){return fluid.findAncestor(node,(function(element){return element.nodeName.toLowerCase()==="form";}));};fluid.each(["text","html"],(function(method){fluid[method]=function(node,newValue){node=$(node);return newValue===undefined?node[method]():node[method](newValue);};}));fluid.BINDING_ROOT_KEY="fluid-binding-root";fluid.findData=function(elem,name){while(elem){var data=$.data(elem,name);if(data)return data;elem=elem.parentNode;}};fluid.bindFossils=function(node,data,fossils){$.data(node,fluid.BINDING_ROOT_KEY,{data,fossils});};fluid.boundPathForNode=function(node,fossils){node=fluid.unwrap(node);var key=node.name||node.id;var record=fossils[key];return record?record.EL:null;};fluid.applyBoundChange=function(node,newValue,applier){node=fluid.unwrap(node);if(newValue===undefined)newValue=fluid.value(node);if(node.nodeType===undefined&&node.length>0)node=node[0];var root=fluid.findData(node,fluid.BINDING_ROOT_KEY);if(!root)fluid.fail("Bound data could not be discovered in any node above "+fluid.dumpEl(node));var name=node.name;var fossil=root.fossils[name];if(!fossil)fluid.fail("No fossil discovered for name "+name+" in fossil record above "+fluid.dumpEl(node));var EL=root.fossils[name].EL;if(applier)applier.fireChangeRequest({path:EL,value:newValue,source:"DOM:"+node.id});else fluid.set(root.data,EL,newValue);};fluid.jById=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var element=fluid.byId(id,dokkument);var togo=element?$(element):[];togo.selector="#"+id;togo.context=dokkument;return togo;};fluid.byId=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var el=dokkument.getElementById(id);if(el){if(el.id!==id)fluid.fail("Problem in document structure - picked up element "+fluid.dumpEl(el)+" for id "+id+" without this id - most likely the element has a name which conflicts with this id");return el;}else return null;};fluid.getDocument=function(element){var node=fluid.unwrap(element);return node.nodeType===9?node:node.ownerDocument;};fluid.defaults("fluid.ariaLabeller",{gradeNames:["fluid.viewComponent"],labelAttribute:"aria-label",liveRegionMarkup:'<div class="liveRegion fl-hidden-accessible" aria-live="polite"></div>',liveRegionId:"fluid-ariaLabeller-liveRegion",invokers:{generateLiveElement:{funcName:"fluid.ariaLabeller.generateLiveElement",args:"{that}"},update:{funcName:"fluid.ariaLabeller.update",args:["{that}","{arguments}.0"]}},listeners:{onCreate:{func:"{that}.update",args:[null]}}});fluid.ariaLabeller.update=function(that,newOptions){newOptions=newOptions||that.options;that.container.attr(that.options.labelAttribute,newOptions.text);if(newOptions.dynamicLabel){var live=fluid.jById(that.options.liveRegionId);if(live.length===0)live=that.generateLiveElement();live.text(newOptions.text);}};fluid.ariaLabeller.generateLiveElement=function(that){var liveEl=$(that.options.liveRegionMarkup);liveEl.prop("id",that.options.liveRegionId);$("body").append(liveEl);return liveEl;};var LABEL_KEY="aria-labelling";fluid.getAriaLabeller=function(element){element=$(element);var that=fluid.getScopedData(element,LABEL_KEY);return that;};fluid.updateAriaLabel=function(element,text,options){options=$.extend({},options||{},{text});var that=fluid.getAriaLabeller(element);if(!that){that=fluid.ariaLabeller(element,options);fluid.setScopedData(element,LABEL_KEY,that);}else that.update(options);return that;};fluid.dismissList={};$(document).click((function(event){var target=fluid.resolveEventTarget(event);while(target){if(fluid.dismissList[target.id])return;target=target.parentNode;}fluid.each(fluid.dismissList,(function(dismissFunc,key){dismissFunc(event);delete fluid.dismissList[key];}));}));fluid.globalDismissal=function(nodes,dismissFunc){fluid.each(nodes,(function(node){var id=fluid.unwrap(node).ownerDocument===document?fluid.allocateSimpleId(node):fluid.allocateGuid();if(dismissFunc)fluid.dismissList[id]=dismissFunc;else delete fluid.dismissList[id];}));};fluid.deadMansBlur=function(control,options){var that={options:$.extend(true,{},fluid.defaults("fluid.deadMansBlur"),options)};that.blurPending=false;that.lastCancel=0;that.canceller=function(event){fluid.log("Cancellation through "+event.type+" on "+fluid.dumpEl(event.target));that.lastCancel=Date.now();that.blurPending=false;};that.noteProceeded=function(){fluid.globalDismissal(that.options.exclusions);};that.reArm=function(){fluid.globalDismissal(that.options.exclusions,that.proceed);};that.addExclusion=function(exclusions){fluid.globalDismissal(exclusions,that.proceed);};that.proceed=function(event){fluid.log("Direct proceed through "+event.type+" on "+fluid.dumpEl(event.target));that.blurPending=false;that.options.handler(control);};fluid.each(that.options.exclusions,(function(exclusion){exclusion=$(exclusion);fluid.each(exclusion,(function(excludeEl){$(excludeEl).on("focusin",that.canceller).on("fluid-focus",that.canceller).click(that.canceller).mousedown(that.canceller);}));}));if(!that.options.cancelByDefault)$(control).on("focusout",(function(event){fluid.log("Starting blur timer for element "+fluid.dumpEl(event.target));var now=Date.now();fluid.log("back delay: "+(now-that.lastCancel));if(now-that.lastCancel>that.options.backDelay)that.blurPending=true;setTimeout((function(){if(that.blurPending)that.options.handler(control);}),that.options.delay);}));else that.reArm();return that;};fluid.defaults("fluid.deadMansBlur",{gradeNames:"fluid.function",delay:150,backDelay:100});"use strict";fluid.defaults("fluid.messageResolver",{gradeNames:["fluid.component"],mergePolicy:{messageBase:"nomerge",parents:"nomerge"},resolveFunc:fluid.stringTemplate,parseFunc:fluid.identity,messageBase:{},members:{messageBase:"@expand:{that}.options.parseFunc({that}.options.messageBase)"},invokers:{lookup:"fluid.messageResolver.lookup({that}, {arguments}.0)",resolve:"fluid.messageResolver.resolve({that}, {arguments}.0, {arguments}.1)"},parents:[]});fluid.messageResolver.lookup=function(that,messagecodes){var resolved=fluid.messageResolver.resolveOne(that.messageBase,messagecodes);if(resolved===undefined)return fluid.find(that.options.parents,(function(parent){return parent?parent.lookup(messagecodes):undefined;}));else return {template:resolved,resolveFunc:that.options.resolveFunc};};fluid.messageResolver.resolve=function(that,messagecodes,args){if(!messagecodes)return "[No messagecodes provided]";messagecodes=fluid.makeArray(messagecodes);var looked=that.lookup(messagecodes);return looked?looked.resolveFunc(looked.template,args):"[Message string for key "+messagecodes[0]+" not found]";};fluid.messageResolver.resolveOne=function(messageBase,messagecodes){if(messageBase instanceof fluid.fetchResources.FetchOne)messageBase=fluid.fetchResources.resolveFetchOne(messageBase);for(var i=0;i<messagecodes.length;++i){var code=messagecodes[i];var message=messageBase[code];if(message instanceof fluid.fetchResources.FetchOne)message=fluid.fetchResources.resolveFetchOne(message);if(message!==undefined)return message;}};fluid.messageLocator=function(messageBase,resolveFunc){var resolver=fluid.messageResolver({messageBase,resolveFunc});return function(messagecodes,args){return resolver.resolve(messagecodes,args);};};fluid.resolveMessageSource=function(messageSource){if(messageSource.type==="data")if(messageSource.url===undefined)return fluid.messageLocator(messageSource.messages,messageSource.resolveFunc);else{}else{if(messageSource.type==="resolver")return messageSource.resolver.resolve;}};"use strict";fluid.explodeLocalisedName=function(fileName,locale,defaultLocale){var lastDot=fileName.lastIndexOf(".");if(lastDot===-1||lastDot===0)lastDot=fileName.length;var baseName=fileName.substring(0,lastDot);var extension=fileName.substring(lastDot);var segs=locale?locale.split("_"):[];var exploded=fluid.transform(segs,(function(seg,index){var shortSegs=segs.slice(0,index+1);return baseName+"_"+shortSegs.join("_")+extension;}));if(defaultLocale)exploded.unshift(baseName+"_"+defaultLocale+extension);exploded.unshift(fileName);return exploded;};fluid.fetchResources=function(resourceSpecs,callback,options){var that=fluid.makeResourceFetcher(resourceSpecs,callback,options,fluid.identity);that.optionsReady.resolve();that.fetchAll();return that;};fluid.fetchResources.explodeForLocales=function(resourceFetcher){fluid.each(resourceFetcher.resourceSpecs,(function(resourceSpec){resourceSpec.resolvedDefaultLocale=resourceSpec.defaultLocale||resourceFetcher.options.defaultLocale;resourceSpec.resolvedLocale=resourceFetcher.options.locale||resourceSpec.locale||resourceSpec.resolvedDefaultLocale;if(!resourceSpec.loader.loader.noPath){var pathKey=resourceSpec.loader.pathKey;var path=resourceSpec[pathKey];var resolvedPath=resourceSpec[pathKey]=resourceFetcher.transformResourceURL(path);resourceSpec.localeExploded=fluid.explodeLocalisedName(resolvedPath,resourceSpec.resolvedLocale,resourceSpec.resolvedDefaultLocale);resourceSpec.localeExplodedSpecs=fluid.transform(resourceSpec.localeExploded,(function(oneExploded){var togo={loader:resourceSpec.loader,options:resourceSpec.options};togo[pathKey]=oneExploded;return togo;}),fluid.fetchResources.prepareRequestOptions);}}));};fluid.fetchResources.launchExplodedLocales=function(localeExplodedSpecs,loader){var promiseArray=fluid.transform(localeExplodedSpecs,loader,(function(promise){var promiseToGo=fluid.promise();promise.then((function(resolve){promiseToGo.resolve({resolved:resolve});}),(function(error){promiseToGo.resolve({rejected:error});}));return promiseToGo;}));var settledArrayPromise=fluid.promise.sequence(promiseArray);return settledArrayPromise;};fluid.fetchResources.condenseExplodedLocales=function(resourceSpec,settledArray){var togo=fluid.promise();settledArray.reverse();var lastNonError=fluid.find(settledArray,(function(settled){return settled.resolved;}));if(lastNonError)togo.resolve(lastNonError);else togo.reject({isError:true,message:"No localised variants of the resource could be found at any of the paths "+resourceSpec.localeExploded.join(", ")});return togo;};fluid.fetchResources.resolveLoaderTask=function(resourceSpec,loader){if(resourceSpec.localeExplodedSpecs)return function(){var togo=fluid.promise();var settledArrayPromise=fluid.fetchResources.launchExplodedLocales(resourceSpec.localeExplodedSpecs,loader);settledArrayPromise.then((function(settledArray){var condensed=fluid.fetchResources.condenseExplodedLocales(resourceSpec,settledArray);fluid.promise.follow(condensed,togo);}));return togo;};else return function(){return loader(resourceSpec);};};fluid.fetchResources.checkCompletion=function(resourceSpecs,resourceFetcher){var incomplete=fluid.find_if(resourceSpecs,(function(resourceSpec){return !resourceSpec.promise.disposition;}));if(!incomplete){var completionPromise=resourceFetcher.completionPromise;fluid.invokeLater((function(){if(!completionPromise.disposition)completionPromise.resolve(resourceSpecs);}));}};fluid.fetchResources.noteResourceText=function(resourceText,options){options.resourceSpec.resourceText=resourceText;return resourceText;};fluid.fetchResources.noteParsed=function(parsed,options){options.resourceSpec.parsed=parsed;return parsed;};fluid.fetchResources.fireFetched=function(parsed,options){options.resourceSpec.onFetched.fire(parsed);return parsed;};fluid.fetchResources.prepareRequestOptions=function(resourceSpec){var pathKey=resourceSpec.loader.pathKey;var requestOptions={};requestOptions[pathKey]=resourceSpec[pathKey];resourceSpec.options=$.extend(true,{},resourceSpec.options,requestOptions);return resourceSpec;};fluid.fetchResources.initOneResource=function(resourceSpec){resourceSpec.promise=fluid.promise();resourceSpec.launched=false;};fluid.fetchResources.subscribeOneResource=function(resourceSpec,key,ownerComponentId){if
118(resourceSpec.transformEvent)fluid.fail("Cannot subscribe resource ",resourceSpec," which has already been subscribed for I/O");resourceSpec.key=key;resourceSpec.transformEvent=fluid.makeEventFirer({name:'Transform chain for resource "'+key+'"',ownerId:ownerComponentId});resourceSpec.transformEvent.addListener(fluid.fetchResources.noteParsed,"noteParsed","last");var parser=fluid.resourceLoader.resolveResourceParser(resourceSpec);resourceSpec.transformEvent.addListener(parser,"parser","before:noteParsed");resourceSpec.transformEvent.addListener((function(parsed){return fluid.resourceLoader.renderImmutable(parsed,resourceSpec);}),"renderImmutable","after:parser");resourceSpec.transformEvent.addListener(fluid.fetchResources.noteResourceText,"resourceText","before:parser");resourceSpec.transformEvent.addListener(fluid.fetchResources.resolveLoaderTask(resourceSpec,resourceSpec.loader.loader),"loader","before:resourceText");resourceSpec.onFetched=fluid.makeEventFirer({name:'onFetched event for resources "'+key+'"',ownerId:ownerComponentId});resourceSpec.onError=fluid.makeEventFirer({name:'onError event for resources "'+key+'"',ownerId:ownerComponentId});resourceSpec.transformEvent.addListener(fluid.fetchResources.fireFetched,"fireFetched","last");fluid.fetchResources.prepareRequestOptions(resourceSpec);fluid.fetchResources.initOneResource(resourceSpec);};fluid.fetchResources.FetchOne=function(resourceSpec,resourceFetcher,segs){var FetchOne=this;FetchOne.resourceFetcher=resourceFetcher;FetchOne.resourceSpec=resourceSpec;FetchOne.segs=segs||[];var thisPromise=FetchOne.promise=fluid.promise();fluid.fetchResources.fetchOneResource(resourceSpec,resourceFetcher).then((function(){thisPromise.resolve(fluid.fetchResources.resolveFetchOne(FetchOne));}));};fluid.fetchResources.resolveFetchOne=function(FetchOne){return fluid.getImmediate(FetchOne.resourceSpec,FetchOne.segs);};fluid.fetchResources.FetchOne.prototype.resolvePathSegment=function(seg){return new fluid.fetchResources.FetchOne(this.resourceSpec,this.resourceFetcher,this.segs.concat(fluid.makeArray(seg)));};fluid.initResourceFetcher=function(resourceFetcher){resourceFetcher.completionPromise=fluid.promise();fluid.fetchResources.explodeForLocales(resourceFetcher);resourceFetcher.onInit.fire(resourceFetcher.completionPromise);};fluid.resourceFetcher=function(){};fluid.makeResourceFetcher=function(sourceResourceSpecs,callback,options,transformResourceURL){options=options||{};var that=Object.create(fluid.resourceFetcher.prototype);fluid.extend(that,{sourceResourceSpecs,options:fluid.copy(options),optionsReady:fluid.promise(),onInit:fluid.makeEventFirer({name:"onInit for resourceFetcher",ownerId:options.ownerComponentId}),transformResourceURL});that.fetchAll=function(){return fluid.fetchResources.fetchAll(that);};that.refetchAll=function(){return fluid.fetchResources.refetchAll(that);};that.fetchOneResource=function(key){return fluid.fetchResources.fetchOneResource(that.resourceSpecs[key],that);};that.refetchOneResource=function(key){return fluid.fetchResources.refetchOneResource(that.resourceSpecs[key],that);};that.resourceSpecs=fluid.copy(that.sourceResourceSpecs);that.onInit.addListener((function(completionPromise){completionPromise.then(callback,callback);}));fluid.each(options.onInitListeners,(function(args){that.onInit.addListener.apply(null,args);}));fluid.each(that.resourceSpecs,(function(resourceSpec){resourceSpec.dataType=resourceSpec.dataType||that.options.dataType;resourceSpec.loader=fluid.resourceLoader.resolveResourceLoader(resourceSpec);}));fluid.initResourceFetcher(that);fluid.each(that.resourceSpecs,(function(resourceSpec,key){fluid.fetchResources.subscribeOneResource(resourceSpec,key,that.options.ownerComponentId);}));return that;};fluid.fetchResources.fetchAll=function(resourceFetcher){fluid.each(resourceFetcher.resourceSpecs,(function(resourceSpec){fluid.fetchResources.fetchOneResource(resourceSpec,resourceFetcher);}));fluid.fetchResources.checkCompletion(resourceFetcher.resourceSpecs,resourceFetcher);return resourceFetcher.completionPromise;};fluid.fetchResources.mutableResourceSpecFields=["promise","resourceText","parsed","locale","defaultLocale"];fluid.fetchResources.refetchOneResource=function(resourceSpec,resourceFetcher,defeatInitiate){resourceSpec.promise.cancel();fluid.fetchResources.mutableResourceSpecFields.forEach((function(field){delete resourceSpec[field];}));fluid.fetchResources.initOneResource(resourceSpec);if(!defeatInitiate)fluid.fetchResources.initiateRefetch(resourceFetcher);return resourceSpec.promise;};fluid.fetchResources.initiateRefetch=function(resourceFetcher){resourceFetcher.completionPromise.cancel();delete resourceFetcher.completionPromise;fluid.initResourceFetcher(resourceFetcher,true);fluid.fetchResources.fetchAll(resourceFetcher);resourceFetcher.fetchAll();};fluid.fetchResources.refetchAll=function(resourceFetcher){var anyLaunched=false;fluid.each(resourceFetcher.resourceSpecs,(function(resourceSpec){if(resourceSpec.resolvedLocale){anyLaunched=true;fluid.fetchResources.refetchOneResource(resourceSpec,resourceFetcher,true);}}));if(anyLaunched)fluid.fetchResources.initiateRefetch(resourceFetcher);return resourceFetcher.completionPromise;};fluid.fetchResources.fireTransformEvent=function(resourceSpec,resourceFetcher){return fluid.promise.fireTransformEvent(resourceSpec.transformEvent,null,{resourceSpec,resourceFetcher});};fluid.fetchResources.fetchOneResource=function(resourceSpec,resourceFetcher){if(!resourceSpec.launched){resourceSpec.launched=true;resourceFetcher.optionsReady.then((function(){var transformPromise=fluid.fetchResources.fireTransformEvent(resourceSpec,resourceFetcher);fluid.promise.follow(transformPromise,resourceSpec.promise);resourceSpec.promise.then((function(){fluid.fetchResources.checkCompletion(resourceFetcher.resourceSpecs,resourceFetcher);}),(function(error){resourceSpec.fetchError=error;resourceSpec.onError.fire(error);resourceFetcher.completionPromise.reject(error);}));}));}return resourceSpec.promise;};fluid.registerNamespace("fluid.resourceLoader.loaders");fluid.resourceLoader.modelUpdated=function(resourceFetcher,modelOptions,early){resourceFetcher.options=$.extend(true,{},resourceFetcher.options,modelOptions);if(early){fluid.fetchResources.explodeForLocales(resourceFetcher);resourceFetcher.optionsReady.resolve();}else resourceFetcher.refetchAll();};
118fluid.resourceLoader.sanitizeResourceSpec=function(resourceSpec){return fluid.transform(resourceSpec,(function(value){return fluid.isPrimitive(value)||fluid.isPlainObject(value)&&!fluid.isPromise(value)?value:fluid.NO_VALUE;}));};fluid.ImmutableArray=function(){};fluid.ImmutableArray.prototype=[];fluid.ImmutableObject=function(){};fluid.copyImmutableResource=function(tocopy){var newContainer=fluid.isArrayable(tocopy)?new fluid.ImmutableArray():new fluid.ImmutableObject();fluid.each(tocopy,(function(value,key){newContainer[key]=value;}));return newContainer;};fluid.resourceLoader.renderImmutable=function(parsed,resourceSpec){if(resourceSpec.immutableModelResource)return fluid.copyImmutableResource(parsed);else return parsed;};fluid.resourceLoader.resolveResourceLoader=function(resourceSpec){var loaders=[];fluid.each(fluid.resourceLoader.loaders,(function(loader,key){if(fluid.isValue(resourceSpec[key]))loaders.push({loader,pathKey:key});}));if(loaders.length===0)loaders.push({loader:fluid.resourceLoader.loaders.noLoader});else{if(loaders.length>1)fluid.fail("Resource spec ",fluid.resourceLoader.sanitizeResourceSpec(resourceSpec)," is ambiguous because it has fields for multiple resource loaders filled out: at most one of the fields ",fluid.getMembers(loaders,"pathKey")," can be used");}return loaders[0];};fluid.resourceLoader.loaders.resourceText=function(resourceSpec){return resourceSpec.resourceText;};fluid.resourceLoader.loaders.resourceText.noPath=true;fluid.resourceLoader.loaders.promiseFunc=function(resourceSpec){var promiseFunc=fluid.event.resolveListener(resourceSpec.promiseFunc);return promiseFunc.apply(null,fluid.makeArray(resourceSpec.promiseArgs));};fluid.resourceLoader.loaders.promiseFunc.noPath=true;fluid.resourceLoader.loaders.dataSource=function(resourceSpec){fluid.getForComponent(resourceSpec.dataSource,"get");return resourceSpec.dataSource.get(resourceSpec.directModel,resourceSpec.options);};fluid.resourceLoader.loaders.dataSource.noPath=true;fluid.resourceLoader.loaders.dataSource.parsed=true;fluid.resourceLoader.loaders.noLoader=function(resourceSpec){return fluid.promise().resolve({noResource:true,message:["No resource was configured for resource spec ",fluid.resourceLoader.sanitizeResourceSpec(resourceSpec),"; since it had none of the fields fields ",Object.keys(fluid.resourceLoader.loaders)+" filled out"]});};fluid.resourceLoader.loaders.noLoader.noPath=true;fluid.resourceLoader.loaders.noLoader.parsed=true;fluid.registerNamespace("fluid.resourceLoader.parsers");fluid.resourceLoader.resolveResourceParser=function(resourceSpec){return !resourceSpec.loader.loader.parsed&&fluid.resourceLoader.parsers[resourceSpec.dataType]||fluid.identity;};fluid.resourceLoader.parsers.json=function(resourceText){return fluid.dataSource.parseJSON(resourceText);};fluid.resourcesMergePolicy=function(target,source){target=target||{};fluid.each(source,(function(oneResource,name){if(!oneResource){target[name]=oneResource;return;}else{if(fluid.isPrimitive(oneResource))oneResource={url:oneResource};}var oneR=target[name];if(!oneR)oneR=target[name]={};for(var key in fluid.resourceLoader.loaders)if(key in oneResource)for(var key2 in fluid.resourceLoader.loaders)delete oneR[key2];$.extend(oneR,oneResource);}));return target;};fluid.defaults("fluid.resourceLoader",{gradeNames:["fluid.modelComponent"],listeners:{"onCreate.loadResources":"{that}.resourceFetcher.fetchAll","onDestroy.destroyResourceEvents":"fluid.resourceLoader.destroyResourceEvents({that}.resourceFetcher)","{that}.resourceFetcher.onInit":{namespace:"resourceLoaderCompletion",funcName:"fluid.resourceLoader.subscribeCompletion",args:["{arguments}.0","{that}"]},"{that}.applier.earlyModelResolved":{funcName:"fluid.resourceLoader.modelUpdated",args:["{that}.resourceFetcher","{arguments}.0.resourceLoader",true]}},modelListeners:{resourceLoader:{namespace:"resourceLoader",funcName:"fluid.resourceLoader.modelUpdated",excludeSource:"init",args:["{that}.resourceFetcher","{change}.value"]}},mergePolicy:{resources:fluid.resourcesMergePolicy},members:{resourceFetcher:{expander:{funcName:"fluid.resourceLoader.makeResourceFetcher",args:["{that}","{that}.options.resources","{that}.options.resourceOptions","{that}.transformResourceURL"]}}},resourceOptions:{terms:{}},resources:{},invokers:{transformResourceURL:{funcName:"fluid.stringTemplate",args:["{arguments}.0","{that}.options.resourceOptions.terms"]}},events:{onResourcesLoaded:null,onResourceError:null}});fluid.resourceLoader.makeResourceFetcher=function(that,resourceSpecs,userResourceOptions,transformResourceURL){var resourceOptions=$.extend({ownerComponentId:that.id,ownerComponentPath:fluid.pathForComponent(that),onInitListeners:[[function(completionPromise){fluid.resourceLoader.subscribeCompletion(completionPromise,that);},"resourceLoaderCompletion"]]},userResourceOptions);var fetcher=fluid.makeResourceFetcher(resourceSpecs,null,resourceOptions,transformResourceURL);fluid.each(fetcher.resourceSpecs,(function(resourceSpec,key){resourceSpec.transformEvent.addListener((function(parsed){that.resources[key]=resourceSpec;return parsed;}
118),"noteComponentResource","after:parsed");resourceSpec.onError.addListener(that.events.onResourceError.fire);}));return fetcher;};fluid.resourceLoader.subscribeCompletion=function(completionPromise,resourceLoader){var fire=function(){resourceLoader.events.onResourcesLoaded.fire(resourceLoader.resourceFetcher.resourceSpecs);};completionPromise.then((function(){if(resourceLoader.lifecycleStatus==="constructed"||resourceLoader.lifecycleStatus==="treeConstructed")fire();else{if(resourceLoader.lifecycleStatus!=="destroyed")resourceLoader.events.onCreate.addListener(fire,"fireOnResourcesLoaded");}}),(function(error){fluid.log("Failure loading resources for component at path "+fluid.dumpComponentPath(resourceLoader)+": ",error);}));};fluid.resourceLoader.destroyResourceEvents=function(resourceFetcher){fluid.each(resourceFetcher.resourceSpecs,(function(resourceSpec){resourceSpec.transformEvent.destroy();resourceSpec.onFetched.destroy();}));};"use strict";fluid.resourceLoader.UrlClass=URL;fluid.resourceLoader.configureXHR=function(xhr,options){fluid.resourceLoader.loaders.XHR.copyProps.forEach((function(prop){if(fluid.isValue(options[prop]))xhr[prop]=options[prop];}));fluid.each(options.headers,(function(value,key){var values=fluid.makeArray(value);values.forEach((function(oneValue){xhr.setRequestHeader(key,oneValue);}));}));};fluid.resourceLoader.loaders.XHR=function(resourceSpec){var togo=fluid.promise();var xhr=resourceSpec.xhr=new XMLHttpRequest();togo.then(null,null,(function(){xhr.abort();}));var sendSuccess=function(){fluid.invokeLater((function(){var response=!xhr.responseType||xhr.responseType==="text"?xhr.responseText:xhr.response;togo.resolve(response);}));};var sendError=function(){fluid.invokeLater((function(){togo.reject({isError:true,status:xhr.status,textStatus:xhr.statusText});}));};xhr.addEventListener("load",(function(){var isError=fluid.dataSource.URL.isErrorStatus(xhr.status);isError?sendError():sendSuccess();}));xhr.addEventListener("error",sendError);var options=$.extend({async:true},resourceSpec.options);xhr.open(options.method||"GET",resourceSpec.url,options.async,options.username,options.password);fluid.resourceLoader.configureXHR(xhr,options);xhr.send();return togo;};fluid.resourceLoader.loaders.XHR.copyProps=["contentType","responseType","timeout"];fluid.resourceLoader.loaders.url=fluid.resourceLoader.loaders.XHR;fluid.dataSource.URL.handleHttp=function(that,baseOptions,data){var promise=fluid.promise();var defaultOptions={method:"GET",async:true};if(baseOptions.operation==="set"){defaultOptions.headers={"Content-Type":that.encoding.options.contentType};defaultOptions.method=baseOptions.writeMethod;}var requestOptions=fluid.extend(true,defaultOptions,baseOptions);var whileMsg=" while executing HTTP "+requestOptions.method+" on url "+requestOptions.url;promise.accumulateRejectionReason=function(originError){return fluid.upgradeError(originError,whileMsg);};var xhr=promise.xhr=new XMLHttpRequest();var sendError=function(){var relayed=fluid.dataSource.URL.relayError(xhr.status,xhr.statusText,whileMsg);if(requestOptions.notFoundIsEmpty&&relayed.statusCode===404)promise.resolve(undefined);else promise.reject(relayed);};xhr.addEventListener("load",(function(){if(fluid.dataSource.URL.isErrorStatus(xhr.status))sendError();else{var response=!xhr.responseType||xhr.responseType==="text"?xhr.responseText:xhr.response;promise.resolve(response);}}));xhr.addEventListener("error",sendError);var url=fluid.dataSource.URL.condenseUrl(requestOptions);requestOptions.url=url;fluid.log("DataSource Issuing "+requestOptions.protocol.toUpperCase().slice(0,-1)+" request with options ",requestOptions);xhr.open(requestOptions.method||"GET",url.toString(),requestOptions.async);fluid.resourceLoader.configureXHR(xhr,requestOptions);xhr.send(data);return promise;};"use strict";fluid.defaults("fluid.newViewComponent",{gradeNames:"fluid.viewComponent",listeners:{"onCreate.onDomBind":null}});fluid.defaults("fluid.containerRenderingView",{gradeNames:["fluid.newViewComponent"],members:{container:"@expand:{that}.renderContainer()"},parentContainer:"{that}
118.options.container",injectionType:"append",invokers:{renderMarkup:"fluid.identity({that}.options.markup.container)",renderContainer:"fluid.containerRenderingView.renderContainer({that}, {that}.renderMarkup, {that}.addToParent)",addToParent:{funcName:"fluid.containerRenderingView.addToParent",args:["{that}.options.parentContainer","{arguments}.0","{that}.options.injectionType"]}},workflows:{global:{evaluateContainers:{funcName:"fluid.renderer.evaluateContainers",priority:"last",waitIO:true}}},listeners:{"onDestroy.clearInjectedMarkup":{this:"{that}.container",method:"remove",args:[]}}});fluid.registerNamespace("fluid.renderer");fluid.defaults("fluid.templateResourceFetcher",{gradeNames:"fluid.resourceLoader",rendererTemplateResources:{template:true},skipTemplateFetch:false,workflows:{global:{fetchTemplates:{funcName:"fluid.renderer.fetchTemplates",priority:"after:resolveResourceModel"}}}});fluid.renderer.fetchTemplates=function(shadows){shadows.forEach((function(shadow){var that=shadow.that;if(fluid.componentHasGrade(that,"fluid.templateResourceFetcher")){var skipTemplateFetch=fluid.getForComponent(that,["options","skipTemplateFetch"]);if(!skipTemplateFetch){var rendererTemplateResources=fluid.getForComponent(that,["options","rendererTemplateResources"]);fluid.each(rendererTemplateResources,(function(value,key){if(value)fluid.getForComponent(that,["resources",key]);}));}}}));};fluid.containerRenderingView.addToParent=function(parentContainer,elm,method){if(!parentContainer)fluid.fail('fluid.containerRenderingView needs to have "parentContainer" or "container" option supplied');method=method||"append";$(parentContainer)[method](elm);};fluid.renderer.evaluateContainers=function(shadows){shadows.forEach((function(shadow){fluid.getForComponent(shadow.that,"container");}));shadows.forEach((function(shadow){shadow.that.events.onDomBind.fire(shadow.that);}));};fluid.containerRenderingView.renderContainer=function(that,renderMarkup,addToParent){fluid.log("Rendering container for "+that.id);var containerMarkup=renderMarkup();var container=$(containerMarkup);addToParent(container);return container;};fluid.defaults("fluid.templateRenderingView",{gradeNames:["fluid.containerRenderingView","fluid.templateResourceFetcher"],invokers:{renderMarkup:"fluid.identity({that}.resources.template.parsed)"},distributeOptions:{mapTemplateUrl:{source:"{that}.options.templateUrl",target:"{that}.options.resources.template.url"}}});"use strict";fluid.defaults("fluid.mutationObserver",{gradeNames:["fluid.viewComponent"],events:{onNodeAdded:null,onNodeRemoved:null,onAttributeChanged:null},listeners:{"onDestroy.disconnect":"{that}.disconnect"},members:{observer:{expander:{func:"{that}.createObserver"}}},defaultObserveConfig:{attributes:true,childList:true,subtree:true},invokers:{observe:{funcName:"fluid.mutationObserver.observe",args:["{that}","{arguments}.0","{arguments}.1"]},disconnect:{this:"{that}.observer",method:"disconnect"},takeRecords:{this:"{that}.observer",method:"takeRecords"},createObserver:{funcName:"fluid.mutationObserver.createObserver",args:["{that}"]}}});fluid.mutationObserver.createObserver=function(that){var observer=new MutationObserver((function(mutationRecords){fluid.each(mutationRecords,(function(mutationRecord){for(var i=0;i<mutationRecord.addedNodes.length;i++)that.events.onNodeAdded.fire(mutationRecord.addedNodes[i],mutationRecord);for(var j=0;j<mutationRecord.removedNodes.length;j++)that.events.onNodeRemoved.fire(mutationRecord.removedNodes[j],mutationRecord);if(mutationRecord.type==="attributes")that.events.onAttributeChanged.fire(mutationRecord.target,mutationRecord);}));}));return observer;};fluid.mutationObserver.observe=function(that,target,options){target=fluid.unwrap(target||that.container);that.observer.observe(target,options||that.options.defaultObserveConfig);};"use strict";fluid.defaults("fluid.textNodeParser",{gradeNames:["fluid.component"],events:{onParsedTextNode:null,afterParse:null},ignoredSelectors:{ariaHidden:'[aria-hidden="true"]'},parseHidden:false,invokers:{parse:{funcName:"fluid.textNodeParser.parse",args:["{that}","{arguments}.0","{arguments}.1","{that}.events.afterParse.fire"]},hasTextToRead:{funcName:"fluid.textNodeParser.hasTextToRead",args:["{arguments}.0","{that}.options.ignoredSelectors","{that}.options.parseHidden"]},getLang:"fluid.textNodeParser.getLang"}});fluid.textNodeParser.hasGlyph=function(str){return fluid.isValue(str)&&/\S/.test(str);};fluid.textNodeParser.hasTextToRead=function(elm,ignoredSelectors,parseHidden){if(elm&&(elm.tagName.toLowerCase()==="body"||parseHidden||elm.offsetParent)&&fluid.textNodeParser.hasGlyph(elm.innerText)){var selectors=Object.values(ignoredSelectors).filter(((sel)=>sel));return !selectors.find(((selector)=>elm.closest(selector)));}else return false;};fluid.textNodeParser.getLang=function(elm){return $(elm).closest("[lang]").attr("lang");};fluid.textNodeParser.parse=function(that,elm,lang,afterParseEvent){elm=fluid.unwrap(elm);var parsed=[];if(that.hasTextToRead(elm)){var childNodes=elm.childNodes;var elementLang=elm.getAttribute("lang")||lang||that.getLang(elm);Array.prototype.forEach.call(childNodes,(function(childNode,childIndex){if(childNode.nodeType===Node.TEXT_NODE){var textNodeData={node:childNode,lang:elementLang,childIndex};parsed.push(textNodeData);that.events.onParsedTextNode.fire(textNodeData);}else{if(childNode.nodeType===Node.ELEMENT_NODE)parsed=parsed.concat(fluid.textNodeParser.parse(that,childNode,elementLang));}}));}if(afterParseEvent)afterParseEvent(that,parsed);return parsed;};"use strict";fluid.registerNamespace("fluid.undo");fluid.undo.STATE_INITIAL="state_initial";fluid.undo.STATE_CHANGED="state_changed";fluid.undo.STATE_REVERTED="state_reverted";fluid.undo.defaultRenderer=function(that,targetContainer){var str=that.options.strings;var markup="<span class='flc-undo'>"+"<a href='#' class='flc-undo-undoControl'>"+str.undo+"</a>"+"<a href='#' class='flc-undo-redoControl'>"+str.redo+"</a>"+"</span>";var markupNode=$(markup).attr({role:"region","aria-live":"polite","aria-relevant":"all"});targetContainer.append(markupNode);return markupNode;};fluid.undo.refreshView=function(that){if(that.state===fluid.undo.STATE_INITIAL){that.locate("undoContainer").hide();that.locate("redoContainer").hide();}else if(that.state===fluid.undo.STATE_CHANGED){that.locate("undoContainer").show();that.locate("redoContainer").hide();}else{if(that.state===fluid.undo.STATE_REVERTED){that.locate("undoContainer").hide();that.locate("redoContainer").show();}}};fluid.undo.undoControlClick=function(that){if(that.state!==fluid.undo.STATE_REVERTED){fluid.model.copyModel(that.extremalModel,that.component.model);that.component.updateModel(that.initialModel,that);that.state=fluid.undo.STATE_REVERTED;fluid.undo.refreshView(that);that.locate("redoControl").trigger("focus");}return false;};fluid.undo.redoControlClick=function(that){if(that.state!==fluid.undo.STATE_CHANGED){that.component.updateModel(that.extremalModel,that);that.state=fluid.undo.STATE_CHANGED;fluid.undo.refreshView(that);that.locate("undoControl").trigger("focus");}return false;};fluid.undo.modelChanged=function(that,newModel,oldModel,source){if(source!==that){that.state=fluid.undo.STATE_CHANGED;fluid.model.copyModel(that.initialModel,oldModel);fluid.undo.refreshView(that);}};fluid.undo.copyInitialModel=function(that){fluid.model.copyModel(that.initialModel,that.component.model);fluid.model.copyModel(that.extremalModel,that.component.model);};fluid.undo.setTabindex=function(that){fluid.tabindex(that.locate("undoControl"),0);fluid.tabindex(that.locate("redoControl"),0);};fluid.defaults("fluid.undo",{gradeNames:["fluid.viewComponent"],members:{state:fluid.undo.STATE_INITIAL,initialModel:{},extremalModel:{},component:"{fluid.undoable}",container:{expander:{func:"{that}.options.renderer",args:["{that}","{that}.component.container"]}}},invokers:{undoControlClick:{funcName:"fluid.undo.undoControlClick",args:"{that}"},redoControlClick:{funcName:"fluid.undo.redoControlClick",args:"{that}"}},listeners:{"onCreate.copyInitialModel":{funcName:"fluid.undo.copyInitialModel",priority:"before:refreshView"},"onCreate.setTabindex":"fluid.undo.setTabindex","onCreate.refreshView":"fluid.undo.refreshView","onCreate.bindUndoClick":{this:"{that}.dom.undoControl",method:"on",args:["click","{that}.undoControlClick"]},"onCreate.bindRedoClick":{this:"{that}.dom.redoControl",method:"on",args:["click","{that}.redoControlClick"]},"{fluid.undoable}.events.modelChanged":{funcName:"fluid.undo.modelChanged",args:["{that}","{arguments}.0","{arguments}.1","{arguments}.2"]}},selectors:{undoContainer:".flc-undo-undoControl",undoControl:".flc-undo-undoControl",redoContainer:".flc-undo-redoControl",redoControl:".flc-undo-redoControl"},strings:{undo:"undo edit",redo:"redo edit"},renderer:fluid.undo.defaultRenderer});fluid.defaults("fluid.undoable",{gradeNames:["fluid.modelComponent"],invokers:{updateModel:{}},events:{modelChanged:null}});"use strict";fluid.registerNamespace("fluid.tooltip");fluid.tooltip.computeContentFunc=function(that){that.contentFunc=that.options.contentFunc?that.options.contentFunc:that.modelToContentFunc();};fluid.tooltip.updateContentImpl=function(that){that.computeContentFunc();if(that.initialised)that.container.tooltip("option","content",that.contentFunc);};fluid.tooltip.idSearchFunc=function(idToContentFunc){return function(){var target=this;if($.contains(target.ownerDocument,target)){var idToContent=idToContentFunc();
118var ancestor=fluid.findAncestor(target,(function(element){return idToContent[element.id];}));return ancestor?idToContent[ancestor.id]:null;}else return null;};};fluid.tooltip.modelToContentFunc=function(that){var model=that.model;if(model.idToContent)return fluid.tooltip.idSearchFunc((function(){return that.model.idToContent;}));else{if(model.content)return function(){return model.content;};}};fluid.tooltip.resolveTooltipTarget=function(items,event){var originalTarget=fluid.resolveEventTarget(event);var tooltipTarget=$(originalTarget).closest(items);return tooltipTarget[0];};fluid.tooltip.makeOpenHandler=function(that){return function(event,tooltip){fluid.tooltip.closeAll(that);var originalTarget=fluid.tooltip.resolveTooltipTarget(that.options.items,event);var key=fluid.allocateSimpleId(originalTarget);that.openIdMap[key]=true;if(that.initialised)that.events.afterOpen.fire(that,originalTarget,tooltip.tooltip,event);};};fluid.tooltip.makeCloseHandler=function(that){return function(event,tooltip){if(that.initialised){var originalTarget=fluid.tooltip.resolveTooltipTarget(that.options.items,event);delete that.openIdMap[originalTarget.id];that.events.afterClose.fire(that,originalTarget,tooltip.tooltip,event);}};};fluid.tooltip.closeAll=function(that){var dokkument=fluid.getDocument(that.container);fluid.each(that.openIdMap,(function(value,key){var target=fluid.byId(key,dokkument);that.container.tooltip("close",{type:"close",currentTarget:target,target});}));fluid.clear(that.openIdMap);};fluid.tooltip.setup=function(that){fluid.tooltip.updateContentImpl(that);var directOptions={content:that.contentFunc,open:fluid.tooltip.makeOpenHandler(that),close:fluid.tooltip.makeCloseHandler(that)};var fullOptions=$.extend(true,directOptions,that.options.widgetOptions);that.container.tooltip(fullOptions);that.initialised=true;};fluid.tooltip.doDestroy=function(that){if(that.initialised){fluid.tooltip.closeAll(that,true);var dokkument=fluid.getDocument(that.container),container=that.container[0];if($.contains(dokkument,container)||dokkument===container)that.container.tooltip("destroy");that.initialised=false;}};fluid.defaults("fluid.tooltip",{gradeNames:["fluid.viewComponent"],widgetOptions:{tooltipClass:"{that}.options.styles.tooltip",classes:{"ui-tooltip":"{that}.options.styles.tooltip","ui-tooltip-content":"{that}.options.styles.tooltipContent"},position:"{that}.options.position",items:"{that}.options.items",show:{duration:"{that}.options.duration",delay:"{that}.options.delay"},hide:{duration:"{that}.options.duration",delay:"{that}.options.delay"}},invokers:{open:{this:"{that}.container",method:"tooltip",args:"open"},close:{funcName:"fluid.tooltip.closeAll",args:"{that}"},updateContent:{changePath:"content",value:"{arguments}.0"},computeContentFunc:{funcName:"fluid.tooltip.computeContentFunc",args:["{that}"]},modelToContentFunc:{funcName:"fluid.tooltip.modelToContentFunc",args:"{that}"}},model:{content:"{that}.options.content"},members:{openIdMap:{}},styles:{tooltip:""},events:{afterOpen:null,afterClose:null},listeners:{"onCreate.setup":"fluid.tooltip.setup","onDestroy.doDestroy":"fluid.tooltip.doDestroy"},modelListeners:{"":{funcName:"fluid.tooltip.updateContentImpl",excludeSource:"init",args:"{that}"}},position:{my:"left top",at:"left bottom"},items:"*",delay:300});"use strict";fluid.registerNamespace("fluid.inlineEdit");fluid.inlineEdit.switchToViewMode=function(that){that.editContainer.hide();that.displayModeRenderer.show();};fluid.inlineEdit.cancel=function(that){if(that.isEditing()){setTimeout((function(){that.editView.value(that.model.value);}),1);fluid.inlineEdit.switchToViewMode(that);that.events.afterFinishEdit.fire(that.model.value,that.model.value,that.editField[0],that.viewEl[0]);}};fluid.inlineEdit.finish=function(that){var newValue=that.editView.value();var oldValue=that.model.value;var viewNode=that.viewEl[0];var editNode=that.editField[0];var ret=that.events.onFinishEdit.fire(newValue,oldValue,editNode,viewNode);if(ret===false)return;that.updateModelValue(newValue);that.events.afterFinishEdit.fire(newValue,oldValue,editNode,viewNode);fluid.inlineEdit.switchToViewMode(that);};fluid.inlineEdit.bindEditFinish=function(that){that.submitOnEnter=that.options.submitOnEnter;if(that.submitOnEnter===undefined)that.submitOnEnter="textarea"!==fluid.unwrap(that.editField).nodeName.toLowerCase();function keyCode(evt){return evt.keyCode?evt.keyCode:evt.which?evt.which:0;}var button=that.textEditButton||$();
118var escHandler=function(evt){var code=keyCode(evt);if(code===$.ui.keyCode.ESCAPE){button.trigger("focus");fluid.inlineEdit.cancel(that);return false;}};var finishHandler=function(evt){var code=keyCode(evt);if(code!==$.ui.keyCode.ENTER){button.trigger("blur");return true;}else{fluid.inlineEdit.finish(that);button.trigger("focus");}return false;};if(that.submitOnEnter)that.editContainer.on("keypress",finishHandler);that.editContainer.on("keydown",escHandler);};fluid.inlineEdit.bindBlurHandler=function(that){if(that.options.blurHandlerBinder)that.options.blurHandlerBinder(that);else{var blurHandler=function(){if(that.isEditing())fluid.inlineEdit.finish(that);return false;};that.editField.on("blur",blurHandler);}};fluid.inlineEdit.initializeEditView=function(that,initial){if(!that.editInitialized){fluid.inlineEdit.renderEditContainer(that,!that.options.lazyEditView||!initial);if(!that.options.lazyEditView||!initial){that.events.onCreateEditView.fire();if(that.textEditButton)fluid.inlineEdit.bindEditFinish(that);fluid.inlineEdit.bindBlurHandler(that);that.editView.refreshView(that);that.editInitialized=true;}}};fluid.inlineEdit.edit=function(that){fluid.inlineEdit.initializeEditView(that,false);var viewEl=that.viewEl;var displayText=that.displayView.value();that.updateModelValue(that.model.value===""?"":displayText);if(that.options.applyEditPadding)that.editField.width(Math.max(viewEl.width()+that.options.paddings.edit,that.options.paddings.minimumEdit));that.displayModeRenderer.hide();that.editContainer.show();setTimeout((function(){that.editField.trigger("focus");if(that.options.selectOnEdit)that.editField[0].select();}),0);that.events.afterBeginEdit.fire();};fluid.inlineEdit.clearEmptyViewStyles=function(textEl,styles,originalViewPadding){textEl.removeClass(styles.defaultViewStyle);textEl.css("padding-right",originalViewPadding);textEl.removeClass(styles.emptyDefaultViewText);};fluid.inlineEdit.showDefaultViewText=function(that){that.displayView.value(that.options.strings.defaultViewText);that.viewEl.css("padding-right",that.existingPadding);that.viewEl.addClass(that.options.styles.defaultViewStyle);};fluid.inlineEdit.showNothing=function(that){that.displayView.value("");if(that.viewEl.css("display")==="inline")that.viewEl.css("display","inline-block");};fluid.inlineEdit.showEditedText=function(that){that.displayView.value(that.model.value);fluid.inlineEdit.clearEmptyViewStyles(that.viewEl,that.options.styles,that.existingPadding);};fluid.inlineEdit.refreshView=function(that,source){that.displayView.refreshView(that,source);if(that.editView)that.editView.refreshView(that,source);};fluid.inlineEdit.updateModelValue=function(that,newValue,source){var comparator=that.options.modelComparator;var unchanged=comparator?comparator(that.model.value,newValue):that.model.value===newValue;if(!unchanged){var oldModel=$.extend(true,{},that.model);that.model.value=newValue;that.events.modelChanged.fire(that.model,oldModel,source);that.refreshView(source);}};fluid.inlineEdit.editHandler=function(that){var prevent=that.events.onBeginEdit.fire();if(prevent===false)return false;fluid.inlineEdit.edit(that);return true;};fluid.inlineEdit.initTooltips=function(that){var tooltipOptions={content:that.options.tooltipText,position:{my:"left top",at:"left bottom+25%",of:that.viewEl},target:"*",delay:that.options.tooltipDelay,styles:{tooltip:that.options.styles.tooltip}};fluid.tooltip(that.viewEl,tooltipOptions);if(that.textEditButton)fluid.tooltip(that.textEditButton,tooltipOptions);};fluid.inlineEdit.calculateInitialPadding=function(viewEl){var padding=viewEl.css("padding-right");return padding?parseFloat(padding):0;};fluid.inlineEdit.setupEditField=function(editStyle,editField,editFieldMarkup){var eField=$(editField);eField=eField.length?eField:$(editFieldMarkup);eField.addClass(editStyle);return eField;};fluid.inlineEdit.setupEditContainer=function(displayContainer,editField,editContainer,editContainerMarkup){var eContainer=$(editContainer);eContainer=eContainer.length?eContainer:$(editContainerMarkup);displayContainer.after(eContainer);eContainer.append(editField);return eContainer;};fluid.inlineEdit.defaultEditModeRenderer=function(that){var editField=fluid.inlineEdit.setupEditField(that.options.styles.edit,that.editField,that.options.markup.editField);var editContainer=fluid.inlineEdit.setupEditContainer(that.displayModeRenderer,editField,that.editContainer,that.options.markup.editContainer);var editModeInstruction=fluid.inlineEdit.setupEditModeInstruction(that.options.styles.editModeInstruction,that.options.strings.editModeInstruction,that.options.markup.editModeInstruction);var id=fluid.allocateSimpleId(editModeInstruction);editField.attr("aria-describedby",id);fluid.inlineEdit.positionEditModeInstruction(editModeInstruction,editContainer,editField);return {container:editContainer,field:editField};};fluid.inlineEdit.renderEditContainer=function(that,lazyEditView){that.editContainer=that.locate("editContainer");that.editField=that.locate("edit");if(that.editContainer.length!==1)if(that.editContainer.length>
1181)fluid.fail("InlineEdit did not find a unique container for selector "+that.options.selectors.editContainer+": "+fluid.dumpEl(that.editContainer));if(!lazyEditView)return;var editElms=that.options.editModeRenderer(that);if(editElms){that.editContainer=editElms.container;that.editField=editElms.field;}};fluid.inlineEdit.setupEditModeInstruction=function(editModeInstructionStyle,editModeInstructionText,editModeInstructionMarkup){var editModeInstruction=$(editModeInstructionMarkup);editModeInstruction.addClass(editModeInstructionStyle);editModeInstruction.text(editModeInstructionText);return editModeInstruction;};fluid.inlineEdit.positionEditModeInstruction=function(editModeInstruction,editContainer,editField){editContainer.append(editModeInstruction);editField.on("focus",(function(){editModeInstruction.show();var editFieldPosition=editField.offset();var editFieldHeight=parseInt(editField.css("height"),10);editModeInstruction.css({left:editFieldPosition.left});editModeInstruction.css({top:editFieldPosition.top+editFieldHeight+5});}));};fluid.inlineEdit.setupDisplayModeContainer=function(styles,displayModeWrapper){var displayModeContainer=$(displayModeWrapper);displayModeContainer=displayModeContainer.length?displayModeContainer:$("<span></span>");displayModeContainer.addClass(styles.displayView);return displayModeContainer;};fluid.inlineEdit.setupDisplayText=function(viewEl,textStyle){viewEl.attr("tabindex","-1");viewEl.addClass(textStyle);return viewEl;};fluid.inlineEdit.setupTextEditButton=function(that,model){var opts=that.options;var textEditButton=that.locate("textEditButton");if(textEditButton.length===0){var markup=$(that.options.markup.textEditButton);markup.addClass(opts.styles.textEditButton);markup.text(opts.tooltipText);fluid.inlineEdit.updateTextEditButton(markup,model.value||opts.strings.defaultViewText,opts.strings.textEditButton);that.events.modelChanged.addListener((function(){fluid.inlineEdit.updateTextEditButton(markup,model.value||opts.strings.defaultViewText,opts.strings.textEditButton);}));that.locate("text").after(markup);textEditButton=that.locate("textEditButton");}return textEditButton;};fluid.inlineEdit.updateTextEditButton=function(textEditButton,value,stringTemplate){var buttonText=fluid.stringTemplate(stringTemplate,{text:value});textEditButton.text(buttonText);};fluid.inlineEdit.bindHoverHandlers=function(displayModeRenderer,invitationStyle){var over=function(){displayModeRenderer.addClass(invitationStyle);};var out=function(){displayModeRenderer.removeClass(invitationStyle);};displayModeRenderer.on("mouseenter",over);displayModeRenderer.on("mouseleave",out);};fluid.inlineEdit.bindHighlightHandler=function(element,displayModeRenderer,styles,strings,model){element=$(element);var makeFocusSwitcher=function(focusOn){return function(){displayModeRenderer.toggleClass(styles.focus,focusOn);displayModeRenderer.toggleClass(styles.invitation,focusOn);if(!model||!model.value)displayModeRenderer.prevObject.text(focusOn?strings.defaultFocussedViewText:strings.defaultViewText);};};element.on("focus",makeFocusSwitcher(true));element.on("blur",makeFocusSwitcher(false));};fluid.inlineEdit.bindMouseHandlers=function(element,edit){element=$(element);var triggerGuard=fluid.inlineEdit.makeEditTriggerGuard(element,edit);element.on("click",(function(e){triggerGuard(e);return false;}));};fluid.inlineEdit.bindKeyboardHandlers=function(element,edit){element=$(element);element.attr("role","button");var guard=fluid.inlineEdit.makeEditTriggerGuard(element,edit);fluid.activatable(element,(function(event){return guard(event);}));};fluid.inlineEdit.makeEditTriggerGuard=function(jElement,edit){var element=fluid.unwrap(jElement);return function(event){var outer=fluid.findAncestor(event.target,(function(elem){if(/input|select|textarea|button|a/i.test(elem.nodeName)||elem===element)return true;}));if(outer===element){edit();return false;}};};fluid.inlineEdit.bindEventHandlers=function(that,edit,displayModeContainer){var styles=that.options.styles;fluid.inlineEdit.bindHoverHandlers(displayModeContainer,styles.invitation);fluid.inlineEdit.bindMouseHandlers(that.viewEl,edit);fluid.inlineEdit.bindMouseHandlers(that.textEditButton,edit);fluid.inlineEdit.bindKeyboardHandlers(that.textEditButton,edit);
118fluid.inlineEdit.bindHighlightHandler(that.viewEl,displayModeContainer,that.options.styles,that.options.strings,that.model);fluid.inlineEdit.bindHighlightHandler(that.textEditButton,displayModeContainer,that.options.styles,that.options.strings,that.model);};fluid.inlineEdit.defaultDisplayModeRenderer=function(that,edit,model){var styles=that.options.styles;var displayModeWrapper=fluid.inlineEdit.setupDisplayModeContainer(styles);var displayModeContainer=that.viewEl.wrap(displayModeWrapper).parent();that.textEditButton=fluid.inlineEdit.setupTextEditButton(that,model);displayModeContainer.append(that.textEditButton);fluid.inlineEdit.bindEventHandlers(that,edit,displayModeContainer);return displayModeContainer;};fluid.inlineEdit.getNodeName=function(element){return fluid.unwrap(element).nodeName.toLowerCase();};fluid.defaults("fluid.inlineEdit.standardAccessor",{gradeNames:["fluid.viewComponent"],members:{nodeName:{expander:{funcName:"fluid.inlineEdit.getNodeName",args:"{that}.container"}}},invokers:{value:{funcName:"fluid.inlineEdit.standardAccessor.value",args:["{that}.nodeName","{that}.container","{arguments}.0"]}}});fluid.inlineEdit.standardAccessor.value=function(nodeName,element,newValue){return fluid[nodeName==="input"||nodeName==="textarea"?"value":"text"]($(element),newValue);};fluid.defaults("fluid.inlineEdit.standardDisplayView",{gradeNames:["fluid.viewComponent"],invokers:{refreshView:{funcName:"fluid.inlineEdit.standardDisplayView.refreshView",args:["{fluid.inlineEdit}","{that}.container","{arguments}.0"]}}});fluid.inlineEdit.standardDisplayView.refreshView=function(componentThat){if(componentThat.model.value)fluid.inlineEdit.showEditedText(componentThat);else if(componentThat.options.strings.defaultViewText)fluid.inlineEdit.showDefaultViewText(componentThat);else fluid.inlineEdit.showNothing(componentThat);if(componentThat.viewEl.text().trim().length===0){componentThat.viewEl.addClass(componentThat.options.styles.emptyDefaultViewText);if(componentThat.existingPadding<componentThat.options.paddings.minimumView)componentThat.viewEl.css("padding-right",componentThat.options.paddings.minimumView);}};fluid.defaults("fluid.inlineEdit.standardEditView",{gradeNames:["fluid.viewComponent"],invokers:{refreshView:{funcName:"fluid.inlineEdit.standardEditView.refreshView",args:["{fluid.inlineEdit}","{that}.container","{arguments}.0"]}}});fluid.inlineEdit.standardEditView.refreshView=function(componentThat,editField,source){if(!source||editField&&editField.index(source)===-1)componentThat.editView.value(componentThat.model.value);};fluid.inlineEdit.setup=function(that){if(that.editContainer)that.editContainer.hide();if(that.tooltipEnabled())fluid.inlineEdit.initTooltips(that);};fluid.inlineEdit.setIsEditing=function(that,state){that.isEditingState=state;};fluid.inlineEdit.tooltipEnabled=function(useTooltip){return useTooltip&&$.fn.tooltip;};fluid.inlineEdit.processUndoDecorator=function(that){if(that.options.componentDecorators){var decorators=fluid.makeArray(that.options.componentDecorators);var decorator=decorators[0];if(typeof decorator==="string")decorator={type:decorator};if(decorator.type==="fluid.undoDecorator")that.decorators=[fluid.constructChild(that,"undo",{type:"fluid.undo",options:decorator.options})];}};fluid.defaults("fluid.inlineEdit",{gradeNames:["fluid.undoable","fluid.viewComponent"],mergePolicy:{"strings.defaultViewText":"defaultViewText"},members:{isEditingState:false,viewEl:{expander:{funcName:"fluid.inlineEdit.setupDisplayText",args:["{that}.dom.text","{that}.options.styles.text"]}},existingPadding:{expander:{funcName:"fluid.inlineEdit.calculateInitialPadding",args:"{that}.viewEl"}},displayModeRenderer:{expander:{func:"{that}.options.displayModeRenderer",args:["{that}","{that}.edit","{that}.model"]}}},invokers:{edit:{funcName:"fluid.inlineEdit.editHandler",args:"{that}"},isEditing:{funcName:"fluid.identity",args:"{that}.isEditingState"},finish:{funcName:"fluid.inlineEdit.finish",args:"{that}"},cancel:{funcName:"fluid.inlineEdit.cancel",args:"{that}"},tooltipEnabled:{funcName:"fluid.inlineEdit.tooltipEnabled",args:"{that}.options.useTooltip"},refreshView:{funcName:"fluid.inlineEdit.refreshView",args:["{that}","{arguments}.0"]},updateModelValue:{funcName:"fluid.inlineEdit.updateModelValue",args:["{that}","{arguments}.0","{arguments}.1"]},updateModel:{funcName:"fluid.inlineEdit.updateModelValue",args:["{that}","{arguments}.0.value","{arguments}.1"]}},components:{displayView:{type:"{that}.options.displayView.type",container:"{that}.viewEl",options:{gradeNames:"{fluid.inlineEdit}.options.displayAccessor.type"}},editView:{type:"{that}.options.editView.type",createOnEvent:"onCreateEditView",container:"{that}.editField",options:{gradeNames:"{fluid.inlineEdit}.options.editAccessor.type"}}},model:{value:{expander:{func:"{that}.displayView.value"}}},selectors:{text:".flc-inlineEdit-text",editContainer:".flc-inlineEdit-editContainer",edit:".flc-inlineEdit-edit",textEditButton:".flc-inlineEdit-textEditButton"},styles:{text:"fl-inlineEdit-text",edit:"fl-inlineEdit-edit",invitation:"fl-inlineEdit-invitation",defaultViewStyle:"fl-inlineEdit-emptyText-invitation",emptyDefaultViewText:"fl-inlineEdit-emptyDefaultViewText",focus:"fl-inlineEdit-focus",tooltip:"fl-inlineEdit-tooltip",editModeInstruction:"fl-inlineEdit-editModeInstruction",displayView:"fl-inlineEdit-simple-editableText fl-inlineEdit-textContainer",textEditButton:"fl-hidden-accessible"},events:{modelChanged:null,onBeginEdit:"preventable",afterBeginEdit:null,onFinishEdit:"preventable",afterFinishEdit:null,afterInitEdit:null,onCreateEditView:null},listeners:{onCreate:[{func:"{that}.refreshView"},{funcName:"fluid.inlineEdit.initializeEditView",args:["{that}",true]},{funcName:"fluid.inlineEdit.setup",args:"{that}"},{funcName:"fluid.inlineEdit.processUndoDecorator",args:"{that}"}],onBeginEdit:{funcName:"fluid.inlineEdit.setIsEditing",args:["{that}",true]},afterFinishEdit:{funcName:"fluid.inlineEdit.setIsEditing",args:["{that}",false]}},strings:{textEditButton:"Edit text %text",editModeInstruction:"Escape to cancel, Enter or Tab when finished",defaultViewText:"Click here to edit",defaultFocussedViewText:"Click here or press enter to edit"},markup:{editField:"<input type='text' class='flc-inlineEdit-edit'/>",editContainer:"<span></span>",editModeInstruction:"<p></p>",textEditButton:"<a href='#_' class='flc-inlineEdit-textEditButton'></a>"},paddings:{edit:10,minimumEdit:80,minimumView:60},applyEditPadding:true,blurHandlerBinder:null,submitOnEnter:undefined,modelComparator:null,displayAccessor:{type:"fluid.inlineEdit.standardAccessor"},displayView:{type:"fluid.inlineEdit.standardDisplayView"},editAccessor:{type:"fluid.inlineEdit.standardAccessor"},editView:{type:"fluid.inlineEdit.standardEditView"},displayModeRenderer:fluid.inlineEdit.defaultDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.defaultEditModeRenderer,lazyEditView:false,useTooltip:true,tooltipText:"Select or press Enter to edit",tooltipDelay:1e3,selectOnEdit:false});fluid.setupInlineEdits=function(that,editables){return fluid.transform(editables,(function(editable,i){var componentDef={type:"fluid.inlineEdit",container:editable};
118return fluid.constructChild(that,"inlineEdit-"+i,componentDef);}));};fluid.defaults("fluid.inlineEditsComponent",{gradeNames:["fluid.viewComponent"],distributeOptions:{source:"{that}.options",exclusions:["workflows","invokers.locate","members.inlineEdits","members.modelRelay","container","members.container","members.dom","members.applier","members.model","selectors.editables","events"],removeSource:true,target:"{that > fluid.inlineEdit}.options"},members:{inlineEdits:{expander:{funcName:"fluid.setupInlineEdits",args:["{that}","{that}.dom.editables"]}}},selectors:{editables:".flc-inlineEditable"}});fluid.inlineEdits=function(container,options){var that=fluid.inlineEditsComponent(container,options);return that.inlineEdits;};"use strict";fluid.defaults("fluid.inlineEdit.editorViewAccessor",{gradeNames:["fluid.viewComponent"],invokers:{value:{funcName:"fluid.inlineEdit.editorViewAccessor.value",args:["{that}.container","{that}.options","{arguments}.0"]}}});fluid.inlineEdit.editorViewAccessor.value=function(editField,options,newValue){var editor=options.editorGetFn(editField);if(!editor||editor.length===0){if(newValue!==undefined)$(editField).val(newValue);return "";}if(newValue!==undefined)options.setValueFn(editField,editor,newValue);else return options.getValueFn(editor);};fluid.defaults("fluid.inlineEdit.richTextViewAccessor",{gradeNames:["fluid.viewComponent"],invokers:{value:{funcName:"fluid.inlineEdit.richTextViewAccessor.value",args:["{that}.container","{arguments}.0"]}}});fluid.inlineEdit.richTextViewAccessor.value=function(element,newValue){return fluid.html(element,newValue);};fluid.inlineEdit.normalizeHTML=function(value){var togo=value.replace(/\s+/g," ").trim();togo=togo.replace(/\s+<\//g,"</");togo=togo.replace(/<([a-z0-9A-Z\/]+)>/g,(function(match){return match.toLowerCase();}));return togo;};fluid.inlineEdit.htmlComparator=function(el1,el2){return fluid.inlineEdit.normalizeHTML(el1)===fluid.inlineEdit.normalizeHTML(el2);};fluid.inlineEdit.bindRichTextHighlightHandler=function(element,displayModeRenderer,invitationStyle){element=$(element);var focusOn=function(){displayModeRenderer.addClass(invitationStyle);};var focusOff=function(){displayModeRenderer.removeClass(invitationStyle);};element.on("focus",focusOn);element.on("blur",focusOff);};fluid.inlineEdit.setupRichTextEditButton=function(that){var opts=that.options;var textEditButton=that.locate("textEditButton");if(textEditButton.length===0){var markup=$("<a href='#_' class='flc-inlineEdit-textEditButton'></a>");markup.text(opts.strings.textEditButton);that.locate("text").after(markup);textEditButton=that.locate("textEditButton");}return textEditButton;};fluid.inlineEdit.richTextDisplayModeRenderer=function(that,edit){var styles=that.options.styles;var displayModeWrapper=fluid.inlineEdit.setupDisplayModeContainer(styles);var displayModeRenderer=that.viewEl.wrap(displayModeWrapper).parent();that.textEditButton=fluid.inlineEdit.setupRichTextEditButton(that);displayModeRenderer.append(that.textEditButton);displayModeRenderer.addClass(styles.focus);fluid.inlineEdit.bindHoverHandlers(displayModeRenderer,styles.invitation);fluid.inlineEdit.bindMouseHandlers(that.textEditButton,edit);fluid.inlineEdit.bindKeyboardHandlers(that.textEditButton,edit);fluid.inlineEdit.bindRichTextHighlightHandler(that.viewEl,displayModeRenderer,styles.invitation);fluid.inlineEdit.bindRichTextHighlightHandler(that.textEditButton,displayModeRenderer,styles.invitation);return displayModeRenderer;};var flTinyMCE=fluid.registerNamespace("fluid.inlineEdit.tinyMCE");fluid.inlineEdit.tinyMCE.getEditor=function(editField){return tinyMCE.get(editField.prop("id"));};fluid.inlineEdit.tinyMCE.setValue=function(editField,editor,value){$(editField).val(value);editor.setContent(value,{format:"raw"});};fluid.inlineEdit.tinyMCE.getValue=function(editor){return editor.getContent();};fluid.defaults("fluid.inlineEdit.tinyMCE.viewAccessor",{gradeNames:["fluid.inlineEdit.editorViewAccessor"],editorGetFn:flTinyMCE.getEditor,setValueFn:flTinyMCE.setValue,getValueFn:flTinyMCE.getValue});fluid.inlineEdit.tinyMCE.blurHandlerBinder=function(that){function focusEditor(editor){setTimeout((function(){tinyMCE.execCommand("mceFocus",false,that.editField[0].id);editor.selection.select(editor.getBody(),1);editor.selection.collapse(0);}),10);}that.events.afterInitEdit.addListener((function(editor){focusEditor(editor);var editorBody=editor.getBody();that.deadMansBlur=fluid.deadMansBlur(that.editField,{cancelByDefault:true,exclusions:{body:$(editorBody),container:that.container},handler:function(){that[that.options.onBlur]();}});}));that.events.afterBeginEdit.addListener((function(){var editor=tinyMCE.get(that.editField[0].id);if(editor)focusEditor(editor);if(that.deadMansBlur)that.deadMansBlur.reArm();}));that.events.afterFinishEdit.addListener((function(){that.deadMansBlur.noteProceeded();}));};fluid.inlineEdit.tinyMCE.editModeRenderer=function(that){var options=fluid.copy(that.options.tinyMCE);options.elements=fluid.allocateSimpleId(that.editField);var oldinit=options.init_instance_callback;options.init_instance_callback=function(instance){that.events.afterInitEdit.fire(instance);if(oldinit)oldinit();};setTimeout((function(){tinyMCE.init(options);}),1);};fluid.defaults("fluid.inlineEdit.tinyMCE",{gradeNames:["fluid.inlineEdit"],tinyMCE:{mode:"exact",theme:"simple"},listeners:{onCreate:{this:"tinyMCE",method:"init",namespace:"initTinyMCE",args:"{that}.options.tinyMCE"}},useTooltip:true,selectors:{edit:"textarea"},styles:{invitation:"fl-inlineEdit-richText-invitation",displayView:"fl-inlineEdit-textContainer",text:""},strings:{textEditButton:"Edit"},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.tinyMCE.viewAccessor"},lazyEditView:true,defaultViewText:"Click Edit",modelComparator:fluid.inlineEdit.htmlComparator,onBlur:"finish",blurHandlerBinder:fluid.inlineEdit.tinyMCE.blurHandlerBinder,displayModeRenderer:fluid.inlineEdit.richTextDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.tinyMCE.editModeRenderer});var flCKEditor=fluid.registerNamespace("fluid.inlineEdit.CKEditor");fluid.inlineEdit.CKEditor.getEditor=function(editField){return CKEDITOR.instances[editField.prop("id")];};fluid.inlineEdit.CKEditor.setValue=function(editField,editor,value){editor.setData(value);};fluid.inlineEdit.CKEditor.getValue=function(editor){return editor.getData();};fluid.defaults("fluid.inlineEdit.CKEditor.viewAccessor",{gradeNames:["fluid.inlineEdit.editorViewAccessor"],editorGetFn:flCKEditor.getEditor,setValueFn:flCKEditor.setValue,getValueFn:flCKEditor.getValue});fluid.inlineEdit.CKEditor.focus=function(editor){setTimeout((function(){editor.focus();}),0);};fluid.inlineEdit.CKEditor.normalizeHTML=function(value){var togo=fluid.inlineEdit.normalizeHTML(value);var angpos=togo.indexOf(">");if(angpos!==-1&&angpos<togo.length-1)if(togo.charAt(angpos+1)!==" ")togo=togo.substring(0,angpos+1)+" "+togo.substring(angpos+1);return togo;};fluid.inlineEdit.CKEditor.htmlComparator=function(el1,el2){return fluid.inlineEdit.CKEditor.normalizeHTML(el1)===fluid.inlineEdit.CKEditor.normalizeHTML(el2);};fluid.inlineEdit.CKEditor.blurHandlerBinder=function(that){that.events.afterInitEdit.addListener(fluid.inlineEdit.CKEditor.focus);that.events.afterBeginEdit.addListener((function(){var editor=fluid.inlineEdit.CKEditor.getEditor(that.editField);if(editor)fluid.inlineEdit.CKEditor.focus(editor);}));};fluid.inlineEdit.CKEditor.editModeRenderer=function(that){var id=fluid.allocateSimpleId(that.editField);$.data(fluid.unwrap(that.editField),"fluid.inlineEdit.CKEditor",that);var editor=CKEDITOR.replace(id,that.options.CKEditor);editor.on("instanceReady",(function(e){fluid.inlineEdit.CKEditor.focus(e.editor);that.events.afterInitEdit.fire(e.editor);}));};fluid.defaults("fluid.inlineEdit.CKEditor",{gradeNames:["fluid.inlineEdit"],selectors:{edit:"textarea"},styles:{invitation:"fl-inlineEdit-richText-invitation",displayView:"fl-inlineEdit-textContainer",text:""},strings:{textEditButton:"Edit"},displayAccessor:{type:"fluid.inlineEdit.richTextViewAccessor"},editAccessor:{type:"fluid.inlineEdit.CKEditor.viewAccessor"},lazyEditView:true,defaultViewText:"Click Edit",modelComparator:fluid.inlineEdit.CKEditor.htmlComparator,blurHandlerBinder:fluid.inlineEdit.CKEditor.blurHandlerBinder,displayModeRenderer:fluid.inlineEdit.richTextDisplayModeRenderer,editModeRenderer:fluid.inlineEdit.CKEditor.editModeRenderer,CKEditor:{}});fluid.registerNamespace("fluid.inlineEdit.dropdown");fluid.inlineEdit.dropdown.editModeRenderer=function(that){fluid.allocateSimpleId(that.editField);that.editField.selectbox({finishHandler:function(){that.finish();}});return {container:that.editContainer,field:$("input.selectbox",that.editContainer)};};fluid.inlineEdit.dropdown.blurHandlerBinder=function(that){fluid.deadMansBlur(that.editField,{exclusions:{selectBox:$("div.selectbox-wrapper",that.editContainer)},handler:function(){that.cancel();}});};fluid.defaults("fluid.inlineEdit.dropdown",{gradeNames:["fluid.inlineEdit"],applyEditPadding:false,blurHandlerBinder:fluid.inlineEdit.dropdown.blurHandlerBinder,editModeRenderer:fluid.inlineEdit.dropdown.editModeRenderer});"use strict";fluid.defaults("fluid.window",{gradeNames:["fluid.component","fluid.resolveRootSingle"],singleRootType:"fluid.window",members:{window}
118,listeners:{"onCreate.bindEvents":{funcName:"fluid.window.bindEvents",args:["{that}"]}}});fluid.window.bindEvents=function(that){fluid.each(that.options.events,(function(type,eventName){window.addEventListener(eventName,that.events[eventName].fire);}));};fluid.registerNamespace("fluid.textToSpeech");fluid.textToSpeech.isSupported=function(){return !!(window&&window.speechSynthesis);};fluid.defaults("fluid.textToSpeech",{gradeNames:["fluid.modelComponent","fluid.resolveRootSingle"],singleRootType:"fluid.textToSpeech",events:{onStart:null,onStop:null,onError:null,onSpeechQueued:null,utteranceOnBoundary:null,utteranceOnEnd:null,utteranceOnError:null,utteranceOnMark:null,utteranceOnPause:null,utteranceOnResume:null,utteranceOnStart:null},members:{queue:[]},components:{wndw:{type:"fluid.window",options:{events:{beforeunload:null}}}},dynamicComponents:{utterance:{type:"fluid.textToSpeech.utterance",createOnEvent:"onSpeechQueued",options:{listeners:{"onBoundary.relay":"{textToSpeech}.events.utteranceOnBoundary.fire","onEnd.relay":{listener:"{textToSpeech}.events.utteranceOnEnd.fire",priority:"before:resolvePromise"},"onError.relay":{listener:"{textToSpeech}.events.utteranceOnError.fire",priority:"before:rejectPromise"},"onError.destroy":{listener:"{that}.destroy",priority:"after:rejectPromise"},"onMark.relay":"{textToSpeech}.events.utteranceOnMark.fire","onPause.relay":"{textToSpeech}.events.utteranceOnPause.fire","onResume.relay":"{textToSpeech}.events.utteranceOnResume.fire","onStart.relay":"{textToSpeech}.events.utteranceOnStart.fire","onCreate.followPromise":{funcName:"fluid.promise.follow",args:["{that}.promise","{that}.options.onSpeechQueuePromise"]},"onCreate.queue":{this:"{fluid.textToSpeech}.queue",method:"push",args:["{that}"],priority:"after:followPromise"},"onCreate.speak":{listener:"{textToSpeech}.speak",args:["{that}.utterance"],priority:"after:queue"},"onEnd.destroy":{func:"{that}.destroy",priority:"last"}},onSpeechQueuePromise:"{arguments}.2",utterance:"{arguments}.0"}}},model:{utteranceOpts:{}},modelListeners:{speaking:{listener:"fluid.textToSpeech.toggleSpeak",args:["{that}","{change}.value"]},pauseRequested:{listener:"fluid.textToSpeech.requestControl",args:["{that}","pause","{change}"]},resumeRequested:{listener:"fluid.textToSpeech.requestControl",args:["{that}","resume","{change}"]}},invokers:{queueSpeech:{funcName:"fluid.textToSpeech.queueSpeech",args:["{that}","{arguments}.0","{arguments}.1","{arguments}.2"]},queueSpeechSequence:{funcName:"fluid.textToSpeech.queueSpeechSequence",args:["{that}","{arguments}.0","{arguments}.1"]},cancel:{funcName:"fluid.textToSpeech.cancel",args:["{that}"]},pause:{changePath:"pauseRequested",value:true,source:"pause"},resume:{changePath:"resumeRequested",value:true,source:"resume"},getVoices:{func:"{that}.invokeSpeechSynthesisFunc",args:["getVoices"]},speak:{func:"{that}.invokeSpeechSynthesisFunc",args:["speak","{arguments}.0"]},invokeSpeechSynthesisFunc:"fluid.textToSpeech.invokeSpeechSynthesisFunc"},listeners:{"utteranceOnStart.speaking":{changePath:"speaking",value:true,source:"utteranceOnStart"},"utteranceOnEnd.stop":{funcName:"fluid.textToSpeech.handleEnd",args:["{that}"]},"onError.stop":{funcName:"fluid.textToSpeech.handleEnd",args:["{that}"]},"utteranceOnError.forward":"{that}.events.onError","utteranceOnPause.pause":{changePath:"paused",value:true,source:"utteranceOnPause"},"utteranceOnResume.resume":{changePath:"paused",value:false,source:"utteranceOnResume"},"onDestroy.cleanup":{func:"{that}.invokeSpeechSynthesisFunc",args:["cancel"]},"{wndw}.events.beforeunload":{funcName:"{that}.invokeSpeechSynthesisFunc",args:["cancel"],namespace:"cancelSpeechSynthesisOnUnload"}}});fluid.textToSpeech.invokeSpeechSynthesisFunc=function(method,args){args=fluid.makeArray(args);speechSynthesis[method].apply(speechSynthesis,args);};fluid.textToSpeech.toggleSpeak=function(that,speaking){that.events[speaking?"onStart":"onStop"].fire();};fluid.textToSpeech.requestControl=function(that,control,change){if(change.value){that.applier.change(change.path,false,"ADD","requestControl");that.invokeSpeechSynthesisFunc(control);}};fluid.textToSpeech.handleEnd=function(that){that.queue.shift();var resetValues={speaking:false,pending:false,paused:false};if(that.queue.length)that.applier.change("pending",true,"ADD","handleEnd.pending");else{if(!that.queue.length){var newModel=$.extend({},that.model,resetValues);that.applier.change("",newModel,"ADD","handleEnd.reset");}}};fluid.textToSpeech.queueSpeech=function(that,text,interrupt,options){var promise=fluid.promise();if(interrupt)that.cancel();var utteranceOpts=$.extend({},that.model.utteranceOpts,options,{text});setTimeout((function(){that.events.onSpeechQueued.fire(utteranceOpts,interrupt,promise);}),100);return promise;};fluid.textToSpeech.queueSpeechSequence=function(that,speeches,interrupt){var sequence=fluid.transform(speeches,(function(speech,index){var toInterrupt=interrupt&&!index;return that.queueSpeech(speech.text,toInterrupt,speech.options);}));return fluid.promise.sequence(sequence);};fluid.textToSpeech.cancel=function(that){while(that.queue.length){var utterance=that.queue[0];utterance.events.onEnd.fire();}that.invokeSpeechSynthesisFunc("cancel");};fluid.defaults("fluid.textToSpeech.utterance",{gradeNames:["fluid.modelComponent"],members:{utterance:{expander:{funcName:"fluid.textToSpeech.utterance.construct",args:["{that}","{that}.options.utteranceEventMap","{that}.options.utterance"]}},promise:{expander:{funcName:"fluid.promise"}}},model:{boundary:0},utterance:{},utteranceEventMap:{onboundary:"onBoundary",onend:"onEnd",onerror:"onError",onmark:"onMark",onpause:"onPause",onresume:"onResume",onstart:"onStart"},events:{onBoundary:null,onEnd:null,onError:null,onMark:null,onPause:null,onResume:null,onStart:null},listeners:{"onBoundary.updateModel":{changePath:"boundary",value:"{arguments}.0.charIndex"},"onEnd.resolvePromise":"{that}.promise.resolve","onError.rejectPromise":"{that}.promise.reject"}});fluid.textToSpeech.utterance.construct=function(that,utteranceEventMap,utteranceOpts){var utterance=new SpeechSynthesisUtterance();$.extend(utterance,utteranceOpts);fluid.each(utteranceEventMap,(function(compEventName,utteranceEvent){var compEvent=that.events[compEventName];var origHandler=utteranceOpts[utteranceEvent];utterance[utteranceEvent]=compEvent.fire;if(origHandler)compEvent.addListener(origHandler,"external");}));return utterance;};"use strict";fluid.defaults("fluid.orator",{gradeNames:["fluid.viewComponent"],selectors:{controller:".flc-orator-controller",content:".flc-orator-content"},model:{enabled:true,play:false},components:{tts:{type:"fluid.textToSpeech"},controller:{type:"fluid.orator.controller",options:{parentContainer:"{orator}.container",model:{playing:"{orator}.model.play",enabled:"{orator}.model.enabled"}}},selectionReader:{type:"fluid.orator.selectionReader",container:"{that}.container",options:{model:{enabled:"{orator}.model.enabled"}}},domReader:{type:"fluid.orator.domReader",container:"{that}.dom.content",options:{model:{tts:{enabled:"{orator}.model.enabled"}},listeners:{"onStop.domReaderStop":{changePath:"{orator}.model.play",value:false,source:"domReader.onStop",priority:"after:removeHighlight"}},modelListeners:{"{orator}.model.play":{funcName:"fluid.orator.handlePlayToggle",args:["{that}","{change}.value"],namespace:"domReader.handlePlayToggle"}}}}},modelListeners:{enabled:{listener:"fluid.orator.cancelWhenDisabled",args:["{tts}.cancel","{change}.value"],namespace:"orator.clearSpeech"}},distributeOptions:[{source:"{that}.options.tts",target:"{that tts}.options",removeSource:true,namespace:"ttsOpts"},{source:"{that}
118.options.controller",target:"{that controller}.options",removeSource:true,namespace:"controllerOpts"},{source:"{that}.options.domReader",target:"{that domReader}.options",removeSource:true,namespace:"domReaderOpts"},{source:"{that}.options.selectionReader",target:"{that selectionReader}.options",removeSource:true,namespace:"selectionReaderOpts"}]});fluid.orator.cancelWhenDisabled=function(cancelFn,state){if(!state)cancelFn();};fluid.orator.handlePlayToggle=function(that,state){that.events[state?"play":"pause"].fire();};fluid.defaults("fluid.orator.controller",{gradeNames:["fluid.containerRenderingView"],selectors:{playToggle:".flc-orator-controller-playToggle"},styles:{play:"fl-orator-controller-play"},strings:{play:"play",pause:"pause"},model:{playing:false,enabled:true},injectionType:"prepend",markup:{container:'<div class="flc-orator-controller fl-orator-controller">'+'<div class="fl-icon-orator" aria-hidden="true"></div>'+'<button type="button" class="flc-orator-controller-playToggle">'+'<span class="fl-orator-controller-playToggle fl-icon-orator-playToggle" aria-hidden="true"></span>'+"</button></div>"},invokers:{play:{changePath:"playing",value:true,source:"play"},pause:{changePath:"playing",value:false,source:"pause"},toggle:{funcName:"fluid.orator.controller.toggleState",args:["{that}","{arguments}.0","{arguments}.1"]}},listeners:{"onCreate.bindClick":{listener:"fluid.orator.controller.bindClick",args:["{that}"]}},modelListeners:{playing:{listener:"fluid.orator.controller.setToggleView",args:["{that}","{change}.value"],namespace:"toggleController"},enabled:{this:"{that}.container",method:"toggle",args:["{change}.value"],namespace:"toggleView"}}});fluid.orator.controller.bindClick=function(that){that.locate("playToggle").on("click",(function(){that.toggle("playing");}));};fluid.orator.controller.toggleState=function(that,path,state){var newState=fluid.isValue(state)?state:!fluid.get(that.model,path);that.applier.change(path,!!newState,"ADD","toggleState");};fluid.orator.controller.setToggleView=function(that,state){var playToggle=that.locate("playToggle");playToggle.toggleClass(that.options.styles.play,state);playToggle.attr({"aria-label":that.options.strings[state?"pause":"play"]});};fluid.defaults("fluid.orator.domReader",{gradeNames:["fluid.viewComponent"],selectors:{highlight:".flc-orator-highlight"},markup:{highlight:'<mark class="flc-orator-highlight fl-orator-highlight"></mark>'},events:{play:null,pause:null,readFromDOM:null,onQueueSpeech:null,utteranceOnEnd:null,utteranceOnBoundary:null,utteranceOnError:null,utteranceOnMark:null,utteranceOnPause:null,utteranceOnResume:null,utteranceOnStart:null,onStop:null,onError:null},utteranceEventMap:{onboundary:"utteranceOnBoundary",onend:"utteranceOnEnd",onerror:"utteranceOnError",onmark:"utteranceOnMark",onpause:"utteranceOnPause",onresume:"utteranceOnResume",onstart:"utteranceOnStart"},model:{tts:{paused:false,speaking:false,enabled:true},parseQueueIndex:0,parseIndex:null,ttsBoundary:null,parseQueueCount:0,parseItemCount:0},modelRelay:[{target:"parseIndex",backward:"never",forward:{excludeSource:["utteranceOnPause","init"]},namespace:"getClosestIndex",singleTransform:{type:"fluid.transforms.free",func:"fluid.orator.domReader.getClosestIndex",args:["{that}","{that}.model.ttsBoundary","{that}.model.parseQueueIndex"]}}],members:{parseQueue:[]},components:{parser:{type:"fluid.textNodeParser",options:{listeners:{"onParsedTextNode.addToParseQueue":"{domReader}.addToParseQueue"}}}},invokers:{parsedToString:"fluid.orator.domReader.parsedToString",removeHighlight:{funcName:"fluid.orator.domReader.unWrap",args:["{that}.dom.highlight"]},addToParseQueue:{funcName:"fluid.orator.domReader.addToParseQueue",args:["{that}","{arguments}.0","{that}.retrieveActiveQueue"]},retrieveActiveQueue:"fluid.orator.domReader.retrieveActiveQueue",resetParseQueue:{funcName:"fluid.orator.domReader.resetParseQueue",args:["{that}"]},highlight:{funcName:"fluid.orator.domReader.highlight",args:["{that}"]},queueSpeech:{funcName:"fluid.orator.domReader.queueSpeech",args:["{that}","{arguments}.0","{arguments}.1"]},isWord:"fluid.textNodeParser.hasGlyph"},modelListeners:{parseIndex:{listener:"{that}.highlight",namespace:"highlight",excludeSource:["init","utteranceOnEnd","resetParseQueue"]}},listeners:{"play.impl":{funcName:"fluid.orator.domReader.play",args:["{that}","{fluid.textToSpeech}.resume"]},"pause.impl":{funcName:"fluid.orator.domReader.pause",args:["{that}","{fluid.textToSpeech}.pause"]},"readFromDOM.impl":{funcName:"fluid.orator.domReader.readFromDOM",args:["{that}","{that}.container"]},"onQueueSpeech.removeExtraWhiteSpace":"fluid.orator.domReader.removeExtraWhiteSpace","onQueueSpeech.queueSpeech":{func:"{fluid.textToSpeech}.queueSpeech",args:["{arguments}.0","{arguments}.1.interrupt","{arguments}.1"],priority:"after:removeExtraWhiteSpace"},"onError.stop":"{that}.events.onStop","onStop.resetParseQueue":{listener:"{that}.resetParseQueue"},"onStop.removeHighlight":{listener:"{that}.removeHighlight",priority:"after:resetParseQueue"},"onStop.updateTTSModel":{changePath:"tts",value:{speaking:false,paused:false},source:"onStop"},"utteranceOnEnd.resetParseIndex":{changePath:"",value:{parseIndex:null},source:"utteranceOnEnd"},"utteranceOnStart.updateTTSModel":{changePath:"tts",value:{speaking:true,paused:false},source:"utteranceOnStart"},"utteranceOnPause.updateTTSModel":{changePath:"tts",value:{speaking:true,paused:true},source:"utteranceOnPause"},"utteranceOnPause.resetBoundary":{changePath:"ttsBoundary",value:null,source:"utteranceOnPause"},"utteranceOnResume.updateTTSModel":{changePath:"tts",value:{speaking:true,paused:false},source:"utteranceOnResume"},"utteranceOnBoundary.setCurrentBoundary":{listener:"fluid.orator.domReader.setCurrentBoundary",args:["{that}","{arguments}.0.charIndex","{arguments}.0.name"]}}});fluid.orator.domReader.setCurrentBoundary=function(that,boundary,boundaryType){if(that.model.tts.paused||boundaryType!=="word")return;var currentBoundary=fluid.isValue(that.model.ttsBoundary)?that.model.ttsBoundary:-1;var parseQueueIndex;if(currentBoundary<boundary)parseQueueIndex=that.model.parseQueueIndex;else parseQueueIndex=that.model.parseQueueIndex+1;that.applier.change("",{ttsBoundary:boundary,parseQueueIndex},"ADD","setCurrentBoundary");};fluid.orator.domReader.play=function(that,resumeFn){if(that.model.tts.enabled)if(that.model.tts.paused)resumeFn();else{if(!that.model.tts.speaking)that.events.readFromDOM.fire();}};fluid.orator.domReader.pause=function(that,pauseFn){if(that.model.tts.speaking&&!that.model.tts.paused)pauseFn();};fluid.orator.domReader.mapUtteranceEvents=function(that,utterance,utteranceEventMap){fluid.each(utteranceEventMap,(function(compEventName,utteranceEvent){var compEvent=that.events[compEventName];utterance[utteranceEvent]=compEvent.fire;}));};fluid.orator.domReader.removeExtraWhiteSpace=function(text){var promise=fluid.promise();var str=text.toString();str=str.trim();if(str)promise.resolve(str);else promise.reject("The text is empty");return promise;};fluid.orator.domReader.queueSpeech=function(that,text,options){options=options||{};fluid.orator.domReader.mapUtteranceEvents(that,options,that.options.utteranceEventMap);return fluid.promise.fireTransformEvent(that.events.onQueueSpeech,text,options);};
118fluid.orator.domReader.unWrap=function(elm){elm=$(elm);if(elm.length){var parent=elm.parent();elm.contents().unwrap();parent[0].normalize();}};fluid.orator.domReader.retrieveActiveQueue=function(that,lang){var lastQueue=that.parseQueue[that.parseQueue.length-1];if(!lastQueue||lastQueue.length&&lastQueue[0].lang!==lang){lastQueue=[];that.parseQueue.push(lastQueue);that.applier.change("parseQueueCount",that.parseQueue.length,"ADD","retrieveActiveQueue");}return lastQueue;};fluid.orator.domReader.addToParseQueue=function(that,textNodeData,retrieveActiveQueue){var activeQueue=retrieveActiveQueue(that,textNodeData.lang);var lastParsed=fluid.peek(activeQueue)||{};var words=textNodeData.node.textContent.split(/(\s+)/);var parsed=$.extend({},textNodeData,{blockIndex:(lastParsed.blockIndex||0)+(fluid.get(lastParsed,["word","length"])||0),startOffset:0,parentNode:textNodeData.node.parentNode});fluid.each(words,(function(word){var lastIsWord=that.isWord(lastParsed.word);var currentIsWord=that.isWord(word);if(lastIsWord&¤tIsWord){lastParsed.word+=word;lastParsed.endOffset+=word.length;parsed.blockIndex+=word.length;parsed.startOffset+=word.length;}else{parsed.word=word;parsed.endOffset=parsed.startOffset+word.length;if(currentIsWord||word&&lastIsWord){lastParsed=fluid.copy(parsed);activeQueue.push(lastParsed);that.applier.change("parseItemCount",that.model.parseItemCount+1,"ADD","addToParseQueue");parsed.blockIndex+=word.length;}parsed.startOffset=parsed.endOffset;}}));};fluid.orator.domReader.resetParseQueue=function(that){that.parseQueue=[];that.applier.change("",{parseQueueIndex:0,parseIndex:null,ttsBoundary:null,parseQueueCount:0,parseItemCount:0},"ADD","resetParseQueue");};fluid.orator.domReader.parsedToString=function(parsed){var words=fluid.transform(parsed,(function(block){return block.word;}));return words.join("");};fluid.orator.domReader.readFromDOM=function(that,elm){elm=$(elm);if(elm.length){that.resetParseQueue();that.parser.parse(elm[0]);var queueSpeechPromises=fluid.transform(that.parseQueue,(function(parsedBlock,index){var interrupt=!index;var text=that.parsedToString(parsedBlock);return that.queueSpeech(text,{lang:parsedBlock[0].lang,interrupt});}));fluid.promise.sequence(queueSpeechPromises).then(that.events.onStop.fire,that.events.onError.fire);}};fluid.orator.domReader.getClosestIndex=function(that,boundary,parseQueueIndex){var parseQueue=that.parseQueue[parseQueueIndex];if(!fluid.get(parseQueue,"length")||!fluid.isValue(boundary))return undefined;var maxIndex=Math.max(parseQueue.length-1,0);
118var index=Math.max(Math.min(that.model.parseIndex||0,maxIndex),0);var maxBoundary=parseQueue[maxIndex].blockIndex+parseQueue[maxIndex].word.length;if(boundary>maxBoundary||boundary<0)return undefined;while(index>=0){var nextIndex=index+1;var prevIndex=index-1;var currentBlockIndex=parseQueue[index].blockIndex;var nextBlockIndex=index<maxIndex?parseQueue[nextIndex].blockIndex:maxBoundary+1;if(boundary>=currentBlockIndex&&boundary<nextBlockIndex)break;if(currentBlockIndex>boundary)index=prevIndex;else index=nextIndex;}return index;};fluid.orator.domReader.findTextNode=function(node){if(!node)return;if(node.nodeType===Node.TEXT_NODE)return node;var children=node.childNodes;for(var i=0;i<children.length;i++){var textNode=fluid.orator.domReader.findTextNode(children[i]);if(textNode!==undefined)return textNode;}};fluid.orator.domReader.getTextNodeFromSibling=function(node){while(node.nextSibling){node=node.nextSibling;var textNode=fluid.orator.domReader.findTextNode(node);if(textNode)return textNode;}};fluid.orator.domReader.getNextTextNode=function(node){var nextTextNode=fluid.orator.domReader.getTextNodeFromSibling(node);if(nextTextNode)return nextTextNode;var parent=node.parentNode;if(parent)return fluid.orator.domReader.getNextTextNode(parent);};fluid.orator.domReader.setRangeEnd=function(range,node,end){var ranges=fluid.makeArray(range);if(end<=node.length)range.setEnd(node,end);else{var nextRange=document.createRange();var nextTextNode=fluid.orator.domReader.getNextTextNode(node);nextRange.selectNode(nextTextNode);nextRange.setStart(nextTextNode,0);ranges=ranges.concat(fluid.orator.domReader.setRangeEnd(nextRange,nextTextNode,end-node.length));}return ranges;};fluid.orator.domReader.highlight=function(that){that.removeHighlight();if(that.model.parseQueueCount&&fluid.isValue(that.model.parseIndex)){var data=that.parseQueue[that.model.parseQueueIndex][that.model.parseIndex];var rangeNode=data.parentNode.childNodes[data.childIndex];var startRange=document.createRange();startRange.selectNode(rangeNode);startRange.setStart(rangeNode,data.startOffset);var ranges=fluid.orator.domReader.setRangeEnd(startRange,rangeNode,data.endOffset);fluid.each(ranges,(function(range){range.surroundContents($(that.options.markup.highlight)[0]);range.detach();}));}};fluid.defaults("fluid.orator.selectionReader",{gradeNames:["fluid.viewComponent"],selectors:{control:".flc-orator-selectionReader-control",controlLabel:".flc-orator-selectionReader-controlLabel"},strings:{play:"play",stop:"stop"},styles:{above:"fl-orator-selectionReader-above",below:"fl-orator-selectionReader-below",control:"fl-orator-selectionReader-control"},markup:{control:'<button type="button" class="flc-orator-selectionReader-control"><span class="fl-icon-orator"></span><span class="flc-orator-selectionReader-controlLabel"></span></button>'},model:{enabled:true,play:false,text:""},events:{onError:null,onSelectionChanged:null,onStop:null,onToggleControl:null},components:{parser:{type:"fluid.textNodeParser"}},listeners:{"onCreate.bindEvents":{funcName:"fluid.orator.selectionReader.bindSelectionEvents",args:["{that}"]},"onSelectionChanged.updateSelection":"{that}.setTextFromSelection","onStop.stop":{changePath:"play",value:false,source:"stopMethod"},"onError.stop":{changePath:"play",value:false,source:"onError"},"onToggleControl.togglePlay":"{that}.toggle"},modelListeners:{text:[{func:"{that}.stop",namespace:"stopPlayingWhenTextChanges"},{funcName:"fluid.orator.selectionReader.renderControl",args:["{that}","{change}.value"],namespace:"render"}],play:[{funcName:"fluid.orator.selectionReader.queueSpeech",args:["{that}","{change}.value","{fluid.textToSpeech}.queueSpeechSequence"],namespace:"queueSpeech"},{func:"{that}.renderControlState",excludeSource:["init"],namespace:"renderControlState"}],enabled:{funcName:"fluid.orator.selectionReader.updateText",args:["{that}","{change}.value"],namespace:"updateText"}},invokers:{setTextFromSelection:{funcName:"fluid.orator.selectionReader.setTextFromSelection",args:["{that}","{that}.selectionFilter"]},play:{changePath:"play",value:true,source:"playMethod"},stop:{funcName:"fluid.orator.selectionReader.stopSpeech",args:["{that}.model.play","{fluid.textToSpeech}.cancel"]},toggle:{funcName:"fluid.orator.selectionReader.togglePlay",args:["{that}","{arguments}.0"]},selectionFilter:"fluid.textNodeParser.hasGlyph",calculatePosition:"fluid.orator.selectionReader.calculatePosition",createControl:{funcName:"fluid.orator.selectionReader.createControl",args:["{that}"]},renderControlState:{funcName:"fluid.orator.selectionReader.renderControlState",args:["{that}","{that}.control"]},adjustForVerticalCollision:{funcName:"fluid.orator.selectionReader.adjustForVerticalCollision",args:["{that}.control","{arguments}.0","{arguments}.1","{arguments}.2"]},adjustForHorizontalCollision:{funcName:"fluid.orator.selectionReader.adjustForHorizontalCollision",args:["{that}.control","{arguments}.0"]}}});fluid.orator.selectionReader.stopSpeech=function(state,cancelFn){
118if(state)cancelFn();};fluid.orator.selectionReader.queueSpeech=function(that,state,speechFn){if(state&&that.model.enabled&&that.model.text){var parsed=fluid.orator.selectionReader.parseRange(that.selection.getRangeAt(0),that.parser.parse);var speechPromise=speechFn(parsed,true);speechPromise.then(that.events.onStop.fire,that.events.onError.fire);}};fluid.orator.selectionReader.bindSelectionEvents=function(that){$(document).on("selectionchange",(function(e){if(that.model.enabled)that.events.onSelectionChanged.fire(e);}));};fluid.orator.selectionReader.updateText=function(that,state){if(state)that.setTextFromSelection();else that.applier.change("text","","ADD","updateText");};fluid.orator.selectionReader.setTextFromSelection=function(that,filter){that.selection=window.getSelection();var selectedText=that.selection.toString();selectedText=!filter||filter(selectedText)?selectedText:"";that.applier.change("text",selectedText,"ADD","setTextFromSelection");};fluid.orator.selectionReader.parseRange=function(range,domParser){if(range.commonAncestorContainer.nodeType===Node.TEXT_NODE)return [{text:range.commonAncestorContainer.textContent.slice(range.startOffset,range.endOffset),options:{lang:$(range.commonAncestorContainer.parentNode).closest("[lang]").attr("lang")}}];if(range.commonAncestorContainer===range.startContainer)return fluid.orator.selectionReader.parseElement(range.commonAncestorContainer.childNodes[range.startOffset],domParser);return fluid.orator.selectionReader.parseElement(range.commonAncestorContainer,domParser,range);};fluid.orator.selectionReader.parseElement=function(element,domParser,options){options=options||{};var parsed=[];var fromParser=domParser(element);var parsedNodes=fluid.getMembers(fromParser,"node");var startIndex=options.startContainer?parsedNodes.indexOf(options.startContainer):0;var endIndex=options.endContainer?parsedNodes.indexOf(options.endContainer):parsedNodes.length-1;if(startIndex>=0&&endIndex>=0)for(var i=startIndex;i<=endIndex;i++){var startOffset=i===startIndex?options.startOffset:0;var endOffset=i===endIndex?options.endOffset:undefined;var node=fromParser[i].node;var lang=fromParser[i].lang;var lastParsed=parsed[parsed.length-1];if(parsed.length&&lastParsed.options.lang===lang)lastParsed.text+=node.textContent.slice(startOffset,endOffset);else parsed.push({text:node.textContent.slice(startOffset,endOffset),options:{lang}});}return parsed;};fluid.orator.selectionReader.calculatePosition=function(range){var rangeRect=range.getClientRects()[0];var rangeParent=range.startContainer.parentNode;var rangeParentRect=rangeParent.getClientRects()[0];var offsetParent=rangeParent.offsetParent;var bodyBorderAdjustment={top:0,left:0};if(offsetParent&&offsetParent.tagName.toLowerCase()==="body"){bodyBorderAdjustment.top=Math.abs(offsetParent.offsetTop)-offsetParent.clientTop;bodyBorderAdjustment.left=Math.abs(offsetParent.offsetLeft)-offsetParent.clientLeft;}return {viewPort:{top:rangeRect.top,bottom:rangeRect.bottom,left:rangeRect.left},offset:{top:rangeParent.offsetTop+rangeRect.top-rangeParentRect.top+bodyBorderAdjustment.top,bottom:rangeParent.offsetTop+rangeRect.bottom-rangeParentRect.top+bodyBorderAdjustment.top,left:rangeParent.offsetLeft+rangeRect.left-rangeParentRect.left+bodyBorderAdjustment.left}};};fluid.orator.selectionReader.renderControlState=function(that,control){var text=that.options.strings[that.model.play?"stop":"play"];control.find(that.options.selectors.controlLabel).text(text);};fluid.orator.selectionReader.adjustForHorizontalCollision=function(control,position,viewPortWidth){viewPortWidth=viewPortWidth||document.body.clientWidth;var controlMidPoint=parseFloat(control.css("width"))/2;if(controlMidPoint>position.viewPort.left)control.css("left",position.offset.left+controlMidPoint-position.viewPort.left);else{if(controlMidPoint+position.viewPort.left>viewPortWidth)control.css("left",position.offset.left-viewPortWidth+position.viewPort.left);}};fluid.orator.selectionReader.adjustForVerticalCollision=function(control,position,belowStyle,aboveStyle){var controlHeight=parseFloat(control.css("height"));if(controlHeight>position.viewPort.top){control.css("top",position.offset.bottom);control.removeClass(aboveStyle);control.addClass(belowStyle);}else{control.removeClass(belowStyle);control.addClass(aboveStyle);}};fluid.orator.selectionReader.createControl=function(that){var control=$(that.options.markup.control);control.addClass(that.options.styles.control);control.on("click",(function(){that.events.onToggleControl.fire();}));return control;};fluid.orator.selectionReader.renderControl=function(that,state){if(state){var selectionRange=window.getSelection().getRangeAt(0);var controlContainer=selectionRange.startContainer.parentNode.offsetParent||selectionRange.startContainer.parentNode;var position=that.calculatePosition(selectionRange);that.control=that.control||that.createControl();
118that.control.css({top:position.offset.top,left:position.offset.left});that.renderControlState();that.control.appendTo(controlContainer);that.adjustForVerticalCollision(position,that.options.styles.below,that.options.styles.above);that.adjustForHorizontalCollision(position);selectionRange.detach();}else{if(that.control)that.control.detach();}};fluid.orator.selectionReader.togglePlay=function(that,state){var newState=state||!that.model.play;that[newState?"play":"stop"]();};"use strict";fluid.parseTemplate=function(template,baseURL,scanStart,cutpoints_in,opts){opts=opts||{};if(!template)fluid.fail("empty template supplied to fluid.parseTemplate");var t;var parser;var tagstack;var lumpindex=0;var nestingdepth=0;var justended=false;var defstart=-1;var defend=-1;var debugMode=false;var cutpoints=[];var simpleClassCutpoints={};var cutstatus=[];var XMLLump=function(lumpindex,nestingdepth){return {nestingdepth,lumpindex,parent:t};};function isSimpleClassCutpoint(tree){return tree.length===1&&tree[0].predList.length===1&&tree[0].predList[0].clazz;}function init(baseURLin,debugModeIn,cutpointsIn){t.rootlump=XMLLump(0,-1);tagstack=[t.rootlump];lumpindex=0;nestingdepth=0;justended=false;defstart=-1;defend=-1;baseURL=baseURLin;debugMode=debugModeIn;if(cutpointsIn)for(var i=0;i<cutpointsIn.length;++i){var tree=fluid.parseSelector(cutpointsIn[i].selector,fluid.simpleCSSMatcher);var clazz=isSimpleClassCutpoint(tree);
118if(clazz)simpleClassCutpoints[clazz]=cutpointsIn[i].id;else{cutstatus.push([]);cutpoints.push($.extend({},cutpointsIn[i],{tree}));}}}function findTopContainer(){for(var i=tagstack.length-1;i>=0;--i){var lump=tagstack[i];if(lump.rsfID!==undefined)return lump;}return t.rootlump;}function newLump(){var togo=XMLLump(lumpindex,nestingdepth);if(debugMode){togo.line=parser.getLineNumber();togo.column=parser.getColumnNumber();}t.lumps[lumpindex]=togo;++lumpindex;return togo;}function addLump(mmap,ID,lump){var list=mmap[ID];if(!list){list=[];mmap[ID]=list;}list[list.length]=lump;}function checkContribute(ID,lump){if(ID.indexOf("scr=contribute-")!==-1){var scr=ID.substring("scr=contribute-".length);addLump(t.collectmap,scr,lump);}}function debugLump(lump){return "<"+lump.tagname+">";}function hasCssClass(clazz,totest){if(!totest)return false;return (" "+totest+" ").indexOf(" "+clazz+" ")!==-1;}function matchNode(term,headlump,headclazz){if(term.predList){for(var i=0;i<term.predList.length;++i){var pred=term.predList[i];if(pred.id&&headlump.attributemap.id!==pred.id)return false;if(pred.clazz&&!hasCssClass(pred.clazz,headclazz))return false;if(pred.tag&&headlump.tagname!==pred.tag)return false;}return true;}}function tagStartCut(headlump){var togo;var headclazz=headlump.attributemap["class"];var i;if(headclazz){var split=headclazz.split(" ");for(i=0;i<split.length;++i){var simpleCut=simpleClassCutpoints[split[i].trim()];if(simpleCut)return simpleCut;}}for(i=0;i<cutpoints.length;++i){var cut=cutpoints[i];var cutstat=cutstatus[i];var nextterm=cutstat.length;if(nextterm<cut.tree.length){var term=cut.tree[nextterm];if(nextterm>0)if(cut.tree[nextterm-1].child&&cutstat[nextterm-1]!==headlump.nestingdepth-1)continue;var isMatch=matchNode(term,headlump,headclazz);if(isMatch){cutstat[cutstat.length]=headlump.nestingdepth;if(cutstat.length===cut.tree.length){if(togo!==undefined)fluid.fail("Cutpoint specification error - node "+debugLump(headlump)+" has already matched with rsf:id of "+togo);if(cut.id===undefined||cut.id===null)fluid.fail("Error in cutpoints list - entry at position "+i+" does not have an id set");togo=cut.id;}}}}return togo;}function tagEndCut(){if(cutpoints)for(var i=0;i<cutpoints.length;++i){var cutstat=cutstatus[i];if(cutstat.length>0&&fluid.peek(cutstat)===nestingdepth)cutstat.length--;}}function processTagEnd(){tagEndCut();var endlump=newLump();--nestingdepth;endlump.text="</"+parser.getName()+">";var oldtop=fluid.peek(tagstack);oldtop.close_tag=t.lumps[lumpindex-1];tagstack.length--;justended=true;}function processTagStart(isempty){++nestingdepth;if(justended){justended=false;var backlump=newLump();backlump.nestingdepth--;}if(t.firstdocumentindex===-1)t.firstdocumentindex=lumpindex;var headlump=newLump();var stacktop=fluid.peek(tagstack);headlump.uplump=stacktop;var tagname=parser.getName();headlump.tagname=tagname;var attrs=headlump.attributemap=parser.m_attributes;var ID=attrs[fluid.ID_ATTRIBUTE];if(ID===undefined)ID=tagStartCut(headlump);for(var attrname in attrs)if(ID===undefined)if(/href|src|codebase|action/.test(attrname))ID="scr=rewrite-url";else{if(ID===undefined&&/for|headers/.test(attrname))ID="scr=null";}if(ID){if(ID.charCodeAt(0)===126){ID=ID.substring(1);headlump.elide=true;}checkContribute(ID,headlump);headlump.rsfID=ID;var downreg=findTopContainer();if(!downreg.downmap)downreg.downmap={};while(downreg){if(downreg.downmap)addLump(downreg.downmap,ID,headlump);downreg=downreg.uplump;}addLump(t.globalmap,ID,headlump);var colpos=ID.indexOf(":");if(colpos!==-1){var prefix=ID.substring(0,colpos);if(!stacktop.finallump)stacktop.finallump={};stacktop.finallump[prefix]=headlump;}}headlump.text="<"+tagname+fluid.dumpAttributes(attrs)+(isempty&&!ID?"/>":">");tagstack[tagstack.length]=headlump;if(isempty)if(ID)processTagEnd();else{--nestingdepth;tagstack.length--;}}function processDefaultTag(){if(defstart!==-1){if(t.firstdocumentindex===-1)t.firstdocumentindex=lumpindex;var text=parser.getContent().substr(defstart,defend-defstart);justended=false;var newlump=newLump();newlump.text=text;defstart=-1;}}t=fluid.XMLViewTemplate();init(baseURL,opts.debugMode,cutpoints_in);var idpos=template.indexOf(fluid.ID_ATTRIBUTE);if(scanStart){var brackpos=template.indexOf(">",idpos);parser=fluid.XMLP(template.substring(brackpos+1));}else parser=fluid.XMLP(template);parseloop:while(true){var iEvent=parser.next();
118switch(iEvent){case fluid.XMLP._ELM_B:processDefaultTag();processTagStart(false,"");break;case fluid.XMLP._ELM_E:processDefaultTag();processTagEnd();break;case fluid.XMLP._ELM_EMP:processDefaultTag();processTagStart(true,"");break;case fluid.XMLP._PI:case fluid.XMLP._DTD:defstart=-1;continue;case fluid.XMLP._TEXT:case fluid.XMLP._ENTITY:case fluid.XMLP._CDATA:case fluid.XMLP._COMMENT:if(defstart===-1)defstart=parser.m_cB;defend=parser.m_cE;break;case fluid.XMLP._ERROR:fluid.setLogging(true);var message="Error parsing template: "+parser.m_cAlt+" at line "+parser.getLineNumber();fluid.log(message);fluid.log("Just read: "+parser.m_xml.substring(parser.m_iP-30,parser.m_iP));fluid.log("Still to read: "+parser.m_xml.substring(parser.m_iP,parser.m_iP+30));fluid.fail(message);break parseloop;case fluid.XMLP._NONE:break parseloop;}}processDefaultTag();var excess=tagstack.length-1;if(excess)fluid.fail("Error parsing template - unclosed tag(s) of depth "+excess+": "+fluid.transform(tagstack.splice(1,excess),(function(lump){return debugLump(lump);})).join(", "));return t;};fluid.debugLump=function(lump){var togo=lump.text;togo+=" at ";togo+="lump line "+lump.line+" column "+lump.column+" index "+lump.lumpindex;togo+=lump.parent.href===null?"":" in file "+lump.parent.href;return togo;};fluid.ID_ATTRIBUTE="rsf:id";fluid.getPrefix=function(id){var colpos=id.indexOf(":");return colpos===-1?id:id.substring(0,colpos);};fluid.SplitID=function(id){var that={};var colpos=id.indexOf(":");if(colpos===-1)that.prefix=id;else{that.prefix=id.substring(0,colpos);that.suffix=id.substring(colpos+1);}return that;};fluid.XMLViewTemplate=function(){return {globalmap:{},collectmap:{},lumps:[],firstdocumentindex:-1};};fluid.XMLEncode=function(text){return text.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\"/g,""");};fluid.dumpAttributes=function(attrcopy){var togo="";for(var attrname in attrcopy){var attrvalue=attrcopy[attrname];if(attrvalue!==null&&attrvalue!==undefined)togo+=" "+attrname+'="'+attrvalue+'"';}return togo;};fluid.aggregateMMap=function(target,source){for(var key in source){var targhas=target[key];if(!targhas)target[key]=[];target[key]=target[key].concat(source[key]);}};fluid.parseTemplates=function(resourceSpec,templateList,opts){var togo=[];opts=opts||{};togo.globalmap={};for(var i=0;i<templateList.length;++i){var resource=resourceSpec[templateList[i]];var lastslash=resource.url.lastIndexOf("/");var baseURL=lastslash===-1?"":resource.url.substring(0,lastslash+1);var template=fluid.parseTemplate(resource.resourceText,baseURL,opts.scanStart&&i===0,resource.cutpoints,opts);if(i===0)fluid.aggregateMMap(togo.globalmap,template.globalmap);template.url=resource.url;template.baseURL=baseURL;template.resourceKey=resource.resourceKey;togo[i]=template;fluid.aggregateMMap(togo.globalmap,template.rootlump.downmap);}return togo;};"use strict";(function(){function debugPosition(component){return "as child of "+(component.parent.fullID?"component with full ID "+component.parent.fullID:"root");}function computeFullID(component){var togo="";var move=component;if(component.children===undefined){togo=component.ID+(component.localID!==undefined?component.localID:"");move=component.parent;}while(move.parent){var parent=move.parent;if(move.fullID!==undefined){togo=move.fullID+togo;return togo;}if(move.noID===undefined){var ID=move.ID;if(ID===undefined)fluid.fail("Error in component tree - component found with no ID "+debugPosition(parent)+": please check structure");var colpos=ID.indexOf(":");var prefix=colpos===-1?ID:ID.substring(0,colpos);togo=prefix+":"+(move.localID===undefined?"":move.localID)+":"+togo;}move=parent;}return togo;}var renderer={};renderer.isBoundPrimitive=function(value){return fluid.isPrimitive(value)||fluid.isArrayable(value)&&(value.length===0||typeof value[0]==="string");};var unzipComponent;function processChild(value,key){if(renderer.isBoundPrimitive(value))return {componentType:"UIBound",value,ID:key};else{var unzip=unzipComponent(value);if(unzip.ID)return {ID:key,componentType:"UIContainer",children:[unzip]};else{unzip.ID=key;return unzip;}}}function fixChildren(children){if(!fluid.isArrayable(children)){var togo=[];for(var key in children){var value=children[key];if(fluid.isArrayable(value))for(var i=0;i<value.length;++i){var processed=processChild(value[i],key);togo[togo.length]=processed;}else togo[togo.length]=processChild(value,key);}return togo;}else return children;}function fixupValue(uibound,model,resolverGetConfig){if(uibound.value===undefined&&uibound.valuebinding!==undefined)uibound.value=fluid.get(model,uibound.valuebinding,resolverGetConfig);}function upgradeBound(holder,property,model,resolverGetConfig){if(holder[property]!==undefined)if(renderer.isBoundPrimitive(holder[property]))holder[property]={value:holder[property]};else{if(holder[property].messagekey)holder[property].componentType="UIMessage";}else holder[property]={value:null};fixupValue(holder[property],model,resolverGetConfig);}
118renderer.duckMap={children:"UIContainer",value:"UIBound",valuebinding:"UIBound",messagekey:"UIMessage",markup:"UIVerbatim",selection:"UISelect",target:"UILink",choiceindex:"UISelectChoice",functionname:"UIInitBlock"};var boundMap={UISelect:["selection","optionlist","optionnames"],UILink:["target","linktext"],UIVerbatim:["markup"],UIMessage:["messagekey"]};renderer.boundMap=fluid.transform(boundMap,fluid.arrayToHash);renderer.inferComponentType=function(component){for(var key in renderer.duckMap)if(component[key]!==undefined)return renderer.duckMap[key];};renderer.applyComponentType=function(component){component.componentType=renderer.inferComponentType(component);if(component.componentType===undefined&&component.ID!==undefined)component.componentType="UIBound";};unzipComponent=function(component,model,resolverGetConfig){if(component)renderer.applyComponentType(component);if(!component||component.componentType===undefined){var decorators=component.decorators;if(decorators)delete component.decorators;component={componentType:"UIContainer",children:component};component.decorators=decorators;}var cType=component.componentType;if(cType==="UIContainer")component.children=fixChildren(component.children);else{var map=renderer.boundMap[cType];if(map)fluid.each(map,(function(value,key){upgradeBound(component,key,model,resolverGetConfig);}));}return component;};function fixupTree(tree,model,resolverGetConfig){if(tree.componentType===undefined)tree=unzipComponent(tree,model,resolverGetConfig);if(tree.componentType!=="UIContainer"&&!tree.parent)tree={children:[tree]};if(tree.children){tree.childmap={};for(var i=0;i<tree.children.length;++i){var child=tree.children[i];if(child.componentType===undefined){child=unzipComponent(child,model,resolverGetConfig);tree.children[i]=child;}child.parent=tree;if(child.ID===undefined)fluid.fail("Error in component tree: component found with no ID "+debugPosition(child));tree.childmap[child.ID]=child;var colpos=child.ID.indexOf(":");if(colpos===-1){}else{var prefix=child.ID.substring(0,colpos);var childlist=tree.childmap[prefix];if(!childlist){childlist=[];tree.childmap[prefix]=childlist;}if(child.localID===undefined&&childlist.length!==0)child.localID=childlist.length;childlist[childlist.length]=child;}child.fullID=computeFullID(child);var componentType=child.componentType;if(componentType==="UISelect")child.selection.fullID=child.fullID;else if(componentType==="UIInitBlock"){var call=child.functionname+"(";var childArgs=child.arguments;for(var j=0;j<childArgs.length;++j){if(childArgs[j] instanceof fluid.ComponentReference)childArgs[j]=child.parent.fullID+childArgs[j].reference;call+=JSON.stringify(childArgs[j]);if(j<childArgs.length-1)call+=", ";}child.markup={value:call+")\n"};child.componentType="UIVerbatim";}else{if(componentType==="UIBound")fixupValue(child,model,resolverGetConfig);}
118fixupTree(child,model,resolverGetConfig);}}return tree;}fluid.NULL_STRING="▩null▩";var LINK_ATTRIBUTES={a:"href",link:"href",img:"src",frame:"src",script:"src",style:"src",input:"src",embed:"src",form:"action",applet:"codebase",object:"codebase"};renderer.decoratorComponentPrefix="**-renderer-";renderer.IDtoComponentName=function(ID,num){return renderer.decoratorComponentPrefix+ID.replace(/\./g,"")+"-"+num;};renderer.invokeFluidDecorator=function(func,args,ID,num,options){var that;if(options.parentComponent){var name=renderer.IDtoComponentName(ID,num);that=fluid.constructChild(options.parentComponent,name,$.extend({type:func,container:args[0]},args[1]));}else that=fluid.invokeGlobalFunction(func,args);return that;};fluid.oldRenderer=function(templates,tree,options,fossilsIn){options=options||{};tree=tree||{};var debugMode=options.debugMode;if(!options.messageLocator&&options.messageSource)options.messageLocator=fluid.resolveMessageSource(options.messageSource);options.document=options.document||document;options.jQuery=options.jQuery||$;options.fossils=options.fossils||fossilsIn||{};var globalmap={};var branchmap={};var rewritemap={};var seenset={};var collected={};var out="";var renderOptions=options;var decoratorQueue=[];var renderedbindings={};var usedIDs={};var that={options};function getRewriteKey(template,parent,id){return template.resourceKey+parent.fullID+id;}function resolveInScope(searchID,defprefix,scope){var deflump;var scopelook=scope?scope[searchID]:null;if(scopelook)for(var i=0;i<scopelook.length;++i){var scopelump=scopelook[i];if(!deflump&&scopelump.rsfID===defprefix)deflump=scopelump;if(scopelump.rsfID===searchID)return scopelump;}return deflump;}function resolveCall(sourcescope,child){var searchID=child.jointID?child.jointID:child.ID;var split=fluid.SplitID(searchID);var defprefix=split.prefix+":";var match=resolveInScope(searchID,defprefix,sourcescope.downmap,child);if(match)return match;if(child.children){match=resolveInScope(searchID,defprefix,globalmap,child);if(match)return match;}return null;}function noteCollected(template){if(!seenset[template.href]){fluid.aggregateMMap(collected,template.collectmap);seenset[template.href]=true;}}var fetchComponent;function resolveRecurse(basecontainer,parentlump){var i;var id;var resolved;for(i=0;i<basecontainer.children.length;++i){var branch=basecontainer.children[i];if(branch.children){resolved=resolveCall(parentlump,branch);if(resolved){branchmap[branch.fullID]=resolved;id=resolved.attributemap.id;if(id!==undefined)rewritemap[getRewriteKey(parentlump.parent,basecontainer,id)]=branch.fullID;noteCollected(resolved.parent);resolveRecurse(branch,resolved);}}}if(parentlump.downmap)for(id in parentlump.downmap){var lumps=parentlump.downmap[id];for(i=0;i<lumps.length;++i){var lump=lumps[i];var lumpid=lump.attributemap.id;if(lumpid!==undefined&&lump.rsfID!==undefined){resolved=fetchComponent(basecontainer,lump.rsfID);if(resolved!==null){var resolveID=resolved.fullID;rewritemap[getRewriteKey(parentlump.parent,basecontainer,lumpid)]=resolveID;}}}}}function resolveBranches(globalmapp,basecontainer,parentlump){branchmap={};rewritemap={};seenset={};collected={};globalmap=globalmapp;branchmap[basecontainer.fullID]=parentlump;resolveRecurse(basecontainer,parentlump);}function dumpTillLump(lumps,start,limit){for(;start<limit;++start){var text=lumps[start].text;if(text)out+=lumps[start].text;}}function dumpScan(lumps,renderindex,basedepth,closeparent,insideleaf){var start=renderindex;while(true){if(renderindex===lumps.length)break;var lump=lumps[renderindex];if(lump.nestingdepth<basedepth)break;if(lump.rsfID!==undefined){if(!insideleaf)break;if(insideleaf&&lump.nestingdepth>basedepth+(closeparent?0:1))fluid.log("Error in component tree - leaf component found to contain further components - at "+lump.toString());else break;}++renderindex;}if(!closeparent&&(renderindex===lumps.length||!lumps[renderindex].rsfID))--renderindex;dumpTillLump(lumps,start,renderindex);return renderindex;}function isPlaceholder(){return false;}function isValue(value){return value!==null&&value!==undefined&&!isPlaceholder(value);}var trc={};function openTag(){if(!trc.iselide)out+="<"+trc.uselump.tagname;}function closeTag(){if(!trc.iselide)out+="</"+trc.uselump.tagname+">";}
118function renderUnchanged(){dumpTillLump(trc.uselump.parent.lumps,trc.uselump.lumpindex+1,trc.close.lumpindex+(trc.iselide?0:1));}function isSelfClose(){return trc.endopen.lumpindex===trc.close.lumpindex&&fluid.XMLP.closedTags[trc.uselump.tagname];}function dumpTemplateBody(){if(isSelfClose()){if(!trc.iselide)out+="/>";}else{if(!trc.iselide)out+=">";dumpTillLump(trc.uselump.parent.lumps,trc.endopen.lumpindex,trc.close.lumpindex+(trc.iselide?0:1));}}function replaceAttributes(){if(!trc.iselide)out+=fluid.dumpAttributes(trc.attrcopy);dumpTemplateBody();}function replaceAttributesOpen(){if(trc.iselide)replaceAttributes();else{out+=fluid.dumpAttributes(trc.attrcopy);var selfClose=isSelfClose();out+=selfClose?"/>":">";trc.nextpos=selfClose?trc.close.lumpindex+1:trc.endopen.lumpindex;}}function replaceBody(value){out+=fluid.dumpAttributes(trc.attrcopy);if(!trc.iselide)out+=">";out+=fluid.XMLEncode(value.toString());closeTag();}function rewriteLeaf(value){if(isValue(value))replaceBody(value);else replaceAttributes();}function rewriteLeafOpen(value){if(trc.iselide)rewriteLeaf(trc.value);else if(isValue(value))replaceBody(value);else replaceAttributesOpen();}function rewriteUrl(template,url){if(renderOptions.urlRewriter){var rewritten=renderOptions.urlRewriter(url);if(rewritten)return rewritten;}if(!renderOptions.rebaseURLs)return url;var protpos=url.indexOf(":/");if(url.charAt(0)==="/"||protpos!==-1&&protpos<7)return url;else return renderOptions.baseURL+url;}function dumpHiddenField(todump){out+='<input type="hidden" ';var isvirtual=todump.virtual;var outattrs={};outattrs[isvirtual?"id":"name"]=todump.name;outattrs.value=todump.value;out+=fluid.dumpAttributes(outattrs);out+=" />\n";}var outDecoratorsImpl;function applyAutoBind(torender,finalID){if(!finalID)return;var tagname=trc.uselump.tagname;var applier=renderOptions.applier;function applyFunc(){fluid.applyBoundChange(fluid.byId(finalID,renderOptions.document),undefined,applier);}if(renderOptions.autoBind&&/input|select|textarea/.test(tagname)&&!renderedbindings[finalID]){var decorators=[{jQuery:["on","change",applyFunc]}];outDecoratorsImpl(torender,decorators,trc.attrcopy,finalID);}}function dumpBoundFields(torender,parent){if(torender){var holder=parent?parent:torender;if(renderOptions.fossils&&holder.valuebinding!==undefined){var fossilKey=holder.submittingname||torender.finalID;renderOptions.fossils[fossilKey]={name:fossilKey,EL:holder.valuebinding,oldvalue:holder.value};applyAutoBind(torender,torender.finalID);}if(torender.fossilizedbinding)dumpHiddenField(torender.fossilizedbinding);if(torender.fossilizedshaper)dumpHiddenField(torender.fossilizedshaper);}}function dumpSelectionBindings(uiselect){if(!renderedbindings[uiselect.selection.fullID]){renderedbindings[uiselect.selection.fullID]=true;dumpBoundFields(uiselect.selection);dumpBoundFields(uiselect.optionlist);dumpBoundFields(uiselect.optionnames);}}function isSelectedValue(torender,value){var selection=torender.selection;return fluid.isArrayable(selection.value)?selection.value.indexOf(value)!==-1:selection.value===value;}function getRelativeComponent(component,relativeID){component=component.parent;while(relativeID.indexOf("..::")===0){relativeID=relativeID.substring(4);component=component.parent;}return component.childmap[relativeID];}function rewriteRewriteMap(from,to){fluid.each(rewritemap,(function(value,key){if(value===from)rewritemap[key]=to;}));}function adjustForID(attrcopy,component,late,forceID){if(!late)delete attrcopy["rsf:id"];if(component.finalID!==undefined)attrcopy.id=component.finalID;else if(forceID!==undefined)attrcopy.id=forceID;else{if(attrcopy.id||late)attrcopy.id=component.fullID;}var count=1;var baseid=attrcopy.id;while(renderOptions.document.getElementById(attrcopy.id)||usedIDs[attrcopy.id])attrcopy.id=baseid+"-"+count++;if(count!==1)rewriteRewriteMap(baseid,attrcopy.id);component.finalID=attrcopy.id;return attrcopy.id;}function assignSubmittingName(attrcopy,component,parent){var submitting=parent||component;adjustForID(attrcopy,component,true,component.fullID);if(submitting.submittingname===undefined&&submitting.willinput!==false)submitting.submittingname=submitting.finalID||submitting.fullID;return submitting.submittingname;}function explodeDecorators(decorators){var togo=[];if(decorators.type)togo[0]=decorators;
118else for(var key in decorators){if(key==="$")key="jQuery";var value=decorators[key];var decorator={type:key};if(key==="jQuery"){decorator.func=value[0];decorator.args=value.slice(1);}else if(key==="addClass"||key==="removeClass")decorator.classes=value;else if(key==="attrs")decorator.attributes=value;else{if(key==="identify")decorator.key=value;}togo[togo.length]=decorator;}return togo;}outDecoratorsImpl=function(torender,decorators,attrcopy,finalID){var id;var sanitizeAttrs=function(value,key){if(value===null||value===undefined)delete attrcopy[key];else attrcopy[key]=fluid.XMLEncode(value);};renderOptions.idMap=renderOptions.idMap||{};for(var i=0;i<decorators.length;++i){var decorator=decorators[i];var type=decorator.type;if(!type){var explodedDecorators=explodeDecorators(decorator);outDecoratorsImpl(torender,explodedDecorators,attrcopy,finalID);continue;}if(type==="$")type=decorator.type="jQuery";if(type==="jQuery"||type==="event"||type==="fluid"){id=adjustForID(attrcopy,torender,true,finalID);if(decorator.ids===undefined){decorator.ids=[];decoratorQueue[decoratorQueue.length]=decorator;}decorator.ids.push(id);}else if(type==="attrs")fluid.each(decorator.attributes,sanitizeAttrs);else if(type==="addClass"||type==="removeClass"){var fakeNode=$("<div>",{class:attrcopy["class"]})[0];renderOptions.jQuery(fakeNode)[type](decorator.classes);attrcopy["class"]=fakeNode.className;}else if(type==="identify"){id=adjustForID(attrcopy,torender,true,finalID);renderOptions.idMap[decorator.key]=id;}else{if(type!=="null")fluid.log("Unrecognised decorator of type "+type+" found at component of ID "+finalID);}}};function outDecorators(torender,attrcopy){if(!torender.decorators)return;if(torender.decorators.length===undefined)torender.decorators=explodeDecorators(torender.decorators);outDecoratorsImpl(torender,torender.decorators,attrcopy);}function dumpBranchHead(branch,targetlump){if(targetlump.elide)return;var attrcopy={};$.extend(true,attrcopy,targetlump.attributemap);adjustForID(attrcopy,branch);outDecorators(branch,attrcopy);out+="<"+targetlump.tagname+" ";out+=fluid.dumpAttributes(attrcopy);out+=">";}function resolveArgs(args){if(!args)return args;args=fluid.copy(args);return fluid.transform(args,(function(arg,index){upgradeBound(args,index,renderOptions.model,renderOptions.resolverGetConfig);return args[index].value;}));}function degradeMessage(torender){if(torender.componentType==="UIMessage"){torender.componentType="UIBound";if(!renderOptions.messageLocator)torender.value="[No messageLocator is configured in options - please consult documentation on options.messageSource]";else{upgradeBound(torender,"messagekey",renderOptions.model,renderOptions.resolverGetConfig);var resArgs=resolveArgs(torender.args);torender.value=renderOptions.messageLocator(torender.messagekey.value,resArgs);}}}function renderComponent(torender){var value;var attrcopy=trc.attrcopy;degradeMessage(torender);var componentType=torender.componentType;var tagname=trc.uselump.tagname;outDecorators(torender,attrcopy);function makeFail(torender,end){fluid.fail("Error in component tree - UISelectChoice with id "+torender.fullID+end);}if(componentType==="UIBound"||componentType==="UISelectChoice"){var parent;if(torender.choiceindex!==undefined){if(torender.parentRelativeID!==undefined){parent=getRelativeComponent(torender,torender.parentRelativeID);if(!parent)makeFail(torender," has parentRelativeID of "+torender.parentRelativeID+" which cannot be resolved");}else makeFail(torender," does not have parentRelativeID set");assignSubmittingName(attrcopy,torender,parent.selection);dumpSelectionBindings(parent);}var submittingname=parent?parent.selection.submittingname:torender.submittingname;if(!parent&&torender.valuebinding)submittingname=assignSubmittingName(attrcopy,torender);if(tagname==="input"||tagname==="textarea")if(submittingname!==undefined)attrcopy.name=submittingname;dumpBoundFields(torender,parent?parent.selection:null);if(typeof torender.value==="boolean"||attrcopy.type==="radio"||attrcopy.type==="checkbox"){var underlyingValue;var directValue=torender.value;if(torender.choiceindex!==undefined){if(!parent.optionlist.value)fluid.fail("Error in component tree - selection control with full ID "+parent.fullID+" has no values");underlyingValue=parent.optionlist.value[torender.choiceindex];directValue=isSelectedValue(parent,underlyingValue);}if(isValue(directValue))if(directValue)attrcopy.checked="checked";else delete attrcopy.checked;attrcopy.value=fluid.XMLEncode(underlyingValue?underlyingValue:"true");rewriteLeaf(null);}
118else if(fluid.isArrayable(torender.value))renderUnchanged();else{value=parent?parent[tagname==="textarea"||tagname==="input"?"optionlist":"optionnames"].value[torender.choiceindex]:torender.value;if(tagname==="textarea"){if(isPlaceholder(value)&&torender.willinput)value="";rewriteLeaf(value);}else if(tagname==="input"){if(torender.willinput||isValue(value))attrcopy.value=fluid.XMLEncode(String(value));rewriteLeaf(null);}else{delete attrcopy.name;rewriteLeafOpen(value);}}}else if(componentType==="UISelect"){var ishtmlselect=tagname==="select";var ismultiple=false;if(fluid.isArrayable(torender.selection.value)){ismultiple=true;if(ishtmlselect)attrcopy.multiple="multiple";}assignSubmittingName(attrcopy,torender.selection);if(ishtmlselect){if(torender.selection.willinput!==false)attrcopy.name=torender.selection.submittingname;applyAutoBind(torender,attrcopy.id);}out+=fluid.dumpAttributes(attrcopy);if(ishtmlselect){out+=">";var values=torender.optionlist.value;var names=torender.optionnames===null||torender.optionnames===undefined||!torender.optionnames.value?values:torender.optionnames.value;if(!names||!names.length)fluid.fail("Error in component tree - UISelect component with fullID "+torender.fullID+" does not have optionnames set");for(var i=0;i<names.length;++i){out+='<option value="';value=values[i];if(value===null)value=fluid.NULL_STRING;out+=fluid.XMLEncode(value);if(isSelectedValue(torender,value))out+='" selected="selected';out+='">';out+=fluid.XMLEncode(names[i]);out+="</option>\n";}closeTag();}else dumpTemplateBody();dumpSelectionBindings(torender);}else if(componentType==="UILink"){var attrname=LINK_ATTRIBUTES[tagname];if(attrname){degradeMessage(torender.target);var target=torender.target.value;if(!isValue(target))target=attrcopy[attrname];target=rewriteUrl(trc.uselump.parent,target);attrcopy[attrname]=fluid.XMLEncode(target);}value=undefined;if(torender.linktext){degradeMessage(torender.linktext);value=torender.linktext.value;}if(!isValue(value))replaceAttributesOpen();else rewriteLeaf(value);}else{if(torender.markup!==undefined){degradeMessage(torender.markup);var rendered=torender.markup.value;if(rendered===null){out+=fluid.dumpAttributes(attrcopy);out+=">";renderUnchanged();}else{if(!trc.iselide){out+=fluid.dumpAttributes(attrcopy);out+=">";}out+=rendered;closeTag();}}}if(attrcopy.id!==undefined)usedIDs[attrcopy.id]=true;}function rewriteIDRelation(context){var attrname;var attrval=trc.attrcopy["for"];if(attrval!==undefined)attrname="for";else{attrval=trc.attrcopy.headers;if(attrval!==undefined)attrname="headers";}if(!attrname)return;var tagname=trc.uselump.tagname;if(attrname==="for"&&tagname!=="label")return;if(attrname==="headers"&&tagname!=="td"&&tagname!=="th")return;var rewritten=rewritemap[getRewriteKey(trc.uselump.parent,context,attrval)];if(rewritten!==undefined)trc.attrcopy[attrname]=rewritten;}function renderComment(message){out+="\x3c!-- "+fluid.XMLEncode(message)+"--\x3e";}function renderDebugMessage(message){out+='<span style="background-color:#FF466B;color:white;padding:1px;">';out+=message;out+="</span><br/>";}function reportPath(branch){var path=branch.fullID;return !path?"component tree root":"full path "+path;}function renderComponentSystem(context,torendero,lump){var lumpindex=lump.lumpindex;var lumps=lump.parent.lumps;var nextpos=-1;var outerendopen=lumps[lumpindex+1];var outerclose=lump.close_tag;nextpos=outerclose.lumpindex+1;var payloadlist=lump.downmap?lump.downmap["payload-component"]:null;var payload=payloadlist?payloadlist[0]:null;var iselide=lump.rsfID.charCodeAt(0)===126;var endopen=outerendopen;var close=outerclose;var uselump=lump;var attrcopy={};$.extend(true,attrcopy,(payload===null?lump:payload).attributemap);trc.attrcopy=attrcopy;trc.uselump=uselump;trc.endopen=endopen;trc.close=close;trc.nextpos=nextpos;trc.iselide=iselide;rewriteIDRelation(context);if(torendero===null)if(lump.rsfID.indexOf("scr=")===(iselide?1:0)){var scrname=lump.rsfID.substring(4+(iselide?1:0));if(scrname==="ignore")nextpos=trc.close.lumpindex+1;else if(scrname==="rewrite-url")torendero={componentType:"UILink",target:{}};else{openTag();replaceAttributesOpen();nextpos=trc.endopen.lumpindex;}}if(torendero!==null){if(payload){trc.endopen=lumps[payload.lumpindex+1];trc.close=payload.close_tag;trc.uselump=payload;dumpTillLump(lumps,lumpindex,payload.lumpindex);lumpindex=payload.lumpindex;}adjustForID(attrcopy,torendero);openTag();renderComponent(torendero);if(payload!==null)if(trc.nextpos===nextpos)dumpTillLump(lumps,trc.close.lumpindex+1,outerclose.lumpindex+1);nextpos=trc.nextpos;}return nextpos;}var renderRecurse;function renderContainer(child,targetlump){var t2=targetlump.parent;var firstchild=t2.lumps[targetlump.lumpindex+1];if(child.children!==undefined)dumpBranchHead(child,targetlump);else renderComponentSystem(child.parent,child,targetlump);renderRecurse(child,targetlump,firstchild);}fetchComponent=function(basecontainer,id){if(id.indexOf("msg=")===0){var key=id.substring(4);return {componentType:"UIMessage",messagekey:key};}while(basecontainer){var togo=basecontainer.childmap[id];if(togo)return togo;basecontainer=basecontainer.parent;}return null;};function fetchComponents(basecontainer,id){var togo;while(basecontainer){togo=basecontainer.childmap[id];if(togo)break;basecontainer=basecontainer.parent;}return togo;}function findChild(sourcescope,child){var split=fluid.SplitID(child.ID);var headlumps=sourcescope.downmap[child.ID];if(!headlumps)headlumps=sourcescope.downmap[split.prefix+":"];return headlumps?headlumps[0]:null;}renderRecurse=function(basecontainer,parentlump,baselump){var children;var targetlump;var child;var renderindex=baselump.lumpindex;
118var basedepth=parentlump.nestingdepth;var t1=parentlump.parent;var rendered;if(debugMode)rendered={};while(true){renderindex=dumpScan(t1.lumps,renderindex,basedepth,!parentlump.elide,false);if(renderindex===t1.lumps.length)break;var lump=t1.lumps[renderindex];var id=lump.rsfID;if(lump.nestingdepth<basedepth||id===undefined)break;if(id.charCodeAt(0)===126)id=id.substring(1);if(id.indexOf(":")!==-1){var prefix=fluid.getPrefix(id);children=fetchComponents(basecontainer,prefix);var finallump=lump.uplump.finallump[prefix];var closefinal=finallump.close_tag;if(children)for(var i=0;i<children.length;++i){child=children[i];if(child.children){if(debugMode)rendered[child.fullID]=true;targetlump=branchmap[child.fullID];if(targetlump){if(debugMode)renderComment("Branching for "+child.fullID+" from "+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump));renderContainer(child,targetlump);if(debugMode)renderComment("Branch returned for "+child.fullID+fluid.debugLump(lump)+" to "+fluid.debugLump(targetlump));}else{if(debugMode)renderDebugMessage("No matching template branch found for branch container with full ID "+child.fullID+" rendering from parent template branch "+fluid.debugLump(baselump));}}else{targetlump=findChild(parentlump,child);if(!targetlump){if(debugMode)renderDebugMessage("Repetitive leaf with full ID "+child.fullID+" could not be rendered from parent template branch "+fluid.debugLump(baselump));continue;}var renderend=renderComponentSystem(basecontainer,child,targetlump);var wasopentag=renderend<t1.lumps.lengtn&&t1.lumps[renderend].nestingdepth>=targetlump.nestingdepth;var newbase=child.children?child:basecontainer;if(wasopentag){renderRecurse(newbase,targetlump,t1.lumps[renderend]);renderend=targetlump.close_tag.lumpindex+1;}if(i!==children.length-1){if(renderend<closefinal.lumpindex)dumpScan(t1.lumps,renderend,targetlump.nestingdepth-1,false,false);}else dumpScan(t1.lumps,renderend,targetlump.nestingdepth,true,false);}}else{if(debugMode)renderDebugMessage("No branch container with prefix "+prefix+": found in container "+reportPath(basecontainer)+" rendering at template position "+fluid.debugLump(baselump)+", skipping");}renderindex=closefinal.lumpindex+1;if(debugMode)renderComment("Stack returned from branch for ID "+id+" to "+fluid.debugLump(baselump)+": skipping from "+fluid.debugLump(lump)+" to "+fluid.debugLump(closefinal));}else{var component;if(id){component=fetchComponent(basecontainer,id,lump);if(debugMode&&component)rendered[component.fullID]=true;}if(component&&component.children!==undefined){renderContainer(component);renderindex=lump.close_tag.lumpindex+1;}else renderindex=renderComponentSystem(basecontainer,component,lump);}if(renderindex===t1.lumps.length)break;}if(debugMode){children=basecontainer.children;for(var key=0;key<children.length;++key){child=children[key];if(!rendered[child.fullID])renderDebugMessage("Component "+child.componentType+" with full ID "+child.fullID+" could not be found within template "+fluid.debugLump(baselump));}}};function renderCollect(collump){dumpTillLump(collump.parent.lumps,collump.lumpindex,collump.close_tag.lumpindex+1);}function renderCollects(){for(var key in collected){var collist=collected[key];for(var i=0;i<collist.length;++i)renderCollect(collist[i]);}}function processDecoratorQueue(){for(var i=0;i<decoratorQueue.length;++i){var decorator=decoratorQueue[i];for(var j=0;j<decorator.ids.length;++j){var id=decorator.ids[j];var node=fluid.byId(id,renderOptions.document);if(!node)fluid.fail("Error during rendering - component with id "+id+" which has a queued decorator was not found in the output markup");if(decorator.type==="jQuery"){var jnode=renderOptions.jQuery(node);jnode[decorator.func].apply(jnode,fluid.makeArray(decorator.args));}else if(decorator.type==="fluid"){var args=decorator.args;if(!args){var thisContainer=renderOptions.jQuery(node);if(!decorator.container)decorator.container=thisContainer;else decorator.container.push(node);args=[thisContainer,decorator.options];}var that=renderer.invokeFluidDecorator(decorator.func,args,id,i,options);decorator.that=that;}else{if(decorator.type==="event")node[decorator.event]=decorator.handler;}}}}that.renderTemplates=function(){tree=fixupTree(tree,options.model,options.resolverGetConfig);var template=templates[0];resolveBranches(templates.globalmap,tree,template.rootlump);renderedbindings={};renderCollects();renderRecurse(tree,template.rootlump,template.lumps[template.firstdocumentindex]);return out;};that.processDecoratorQueue=function(){processDecoratorQueue();};return that;};$.extend(fluid.oldRenderer,fluid.renderer,renderer);fluid.renderer=fluid.oldRenderer;fluid.ComponentReference=function(reference){this.reference=reference;};fluid.explode=function(hash,basepath){var togo=[];for(var key in hash){var binding=basepath===undefined?key:basepath+"."+key;togo[togo.length]={ID:key,value:hash[key],valuebinding:binding};}return togo;};fluid.explodeSelectionToInputs=function(optionlist,opts){return fluid.transform(optionlist,(function(option,index){return {ID:opts.rowID,children:[{ID:opts.inputID,parentRelativeID:"..::"+opts.selectID,choiceindex:index},{ID:opts.labelID,parentRelativeID:"..::"+opts.selectID,choiceindex:index}]};}));};fluid.renderTemplates=function(templates,tree,options,fossilsIn){var renderer=fluid.renderer(templates,tree,options,fossilsIn);var rendered=renderer.renderTemplates();return rendered;};
118fluid.reRender=function(templates,node,tree,options){options=options||{};var renderer=fluid.oldRenderer(templates,tree,options,options.fossils);options=renderer.options;node=fluid.unwrap(node);var lastFocusedElement=fluid.lastFocusedElement;var lastId;if(lastFocusedElement&&node.contains(lastFocusedElement))lastId=lastFocusedElement.id;node.innerHTML="";var rendered=renderer.renderTemplates();if(options.renderRaw){rendered=fluid.XMLEncode(rendered);rendered=rendered.replace(/\n/g,"<br/>");}if(options.model)fluid.bindFossils(node,options.model,options.fossils);node.innerHTML=rendered;renderer.processDecoratorQueue();if(lastId){var element=fluid.byId(lastId,options.document);if(element)options.jQuery(element).trigger("focus");}return templates;};function findNodeValue(rootNode){var node=fluid.dom.iterateDom(rootNode,(function(node){return node.nodeType===8||node.nodeType===4?"stop":null;}),true);var value=node.nodeValue;if(value.indexOf("[CDATA[")===0)return value.substring(6,value.length-2);else return value;}fluid.extractTemplate=function(node,armouring){if(!armouring)return node.innerHTML;else return findNodeValue(node);};fluid.render=function(source,target,tree,options){options=options||{};var template=source;if(typeof source==="object")template=fluid.extractTemplate(fluid.unwrap(source.node),source.armouring);target=fluid.unwrap(target);var resourceSpec={base:{resourceText:template,url:".",resourceKey:".",cutpoints:options.cutpoints}};var templates=fluid.parseTemplates(resourceSpec,["base"],options);return fluid.reRender(templates,target,tree,options);};fluid.selfRender=function(node,tree,options){options=options||{};return fluid.render({node,armouring:options.armouring},node,tree,options);};})();"use strict";if(!fluid.oldRenderer)fluid.fail("fluidRenderer.js is a necessary dependency of RendererUtilities");fluid.oldRenderer.visitDecorators=function(that,visitor){fluid.visitComponentChildren(that,(function(component,name){if(name.indexOf(fluid.oldRenderer.decoratorComponentPrefix)===0)visitor(component,name);}),{flat:true},[]);};fluid.oldRenderer.clearDecorators=function(that){var instantiator=fluid.getInstantiator(that);fluid.oldRenderer.visitDecorators(that,(function(component,name){instantiator.clearComponent(that,name);}));};fluid.oldRenderer.getDecoratorComponents=function(that){var togo={};fluid.oldRenderer.visitDecorators(that,(function(component,name){togo[name]=component;}));return togo;};fluid.oldRenderer.modeliseOptions=function(options,defaults,baseOptions){return $.extend({},defaults,fluid.filterKeys(baseOptions,["model","applier"]),options);};fluid.oldRenderer.reverseMerge=function(target,source,names){names=fluid.makeArray(names);fluid.each(names,(function(name){if(target[name]===undefined&&source[name]!==undefined)target[name]=source[name];}));};fluid.oldRenderer.createOldRendererSubcomponent=function(container,selectors,options,parentThat,fossils){options=options||{};var source=options.templateSource?options.templateSource:{node:$(container)};var nativeModel=options.rendererOptions.model===undefined;var rendererOptions=fluid.oldRenderer.modeliseOptions(options.rendererOptions,null,parentThat);rendererOptions.fossils=fossils||{};rendererOptions.parentComponent=parentThat;if(container.jquery){var cascadeOptions={document:container[0].ownerDocument,jQuery:container.constructor};fluid.oldRenderer.reverseMerge(rendererOptions,cascadeOptions,fluid.keys(cascadeOptions));}var that={};var templates=null;that.render=function(tree){var cutpointFn=options.cutpointGenerator||"fluid.oldRenderer.selectorsToCutpoints";rendererOptions.cutpoints=rendererOptions.cutpoints||fluid.invokeGlobalFunction(cutpointFn,[selectors,options]);if(nativeModel)rendererOptions.model=parentThat.model;var renderTarget=$(options.renderTarget?options.renderTarget:container);if(templates){fluid.clear(rendererOptions.fossils);fluid.reRender(templates,renderTarget,tree,rendererOptions);}else{if(typeof source==="function")source=source();templates=fluid.render(source,renderTarget,tree,rendererOptions);}};return that;};fluid.defaults("fluid.oldRendererComponent",{gradeNames:["fluid.viewComponent"],mergePolicy:{"rendererOptions.idMap":"nomerge","rendererOptions.cutpoints":fluid.arrayConcatPolicy,protoTree:"noexpand, replace",parentBundle:"nomerge","changeApplierOptions.resolverSetConfig":"resolverSetConfig"},workflows:{local:{fetchOldRendererTemplate:{funcName:"fluid.fetchOldRendererTemplate",priority:"after:concludeComponentObservation"},initOldRendererComponent:{waitIO:true,funcName:"fluid.initOldRendererWorkflow",priority:"after:fetchOldRendererTemplate"}}},invokers:{refreshView:{funcName:"fluid.oldRendererComponent.refreshView",args:"{that}"},produceTree:{funcName:"fluid.oldRendererComponent.produceTree",args:"{that}"}},rendererOptions:{autoBind:true}
118,events:{prepareModelForRender:null,onRenderTree:null,afterRender:null},listeners:{"onCreate.renderOnInit":{funcName:"fluid.oldRendererComponent.renderOnInit",args:["{that}.options.renderOnInit","{that}"],priority:"last"}},components:{messageResolver:{type:"fluid.messageResolver",options:{messageBase:"{oldRendererComponent}.options.strings",resolveFunc:"{oldRendererComponent}.options.messageResolverFunction",parents:"@expand:fluid.makeArray({oldRendererComponent}.options.parentBundle)"}}}});fluid.defaults("fluid.rendererComponent",{gradeNames:"fluid.oldRendererComponent"});fluid.oldRendererComponent.renderOnInit=function(renderOnInit,that){if(renderOnInit||that.renderOnInit)that.refreshView();};fluid.protoExpanderForComponent=function(parentThat,options){var expanderOptions=fluid.renderer.modeliseOptions(options.expanderOptions,{ELstyle:"${}"},parentThat);fluid.renderer.reverseMerge(expanderOptions,options,["resolverGetConfig","resolverSetConfig"]);var expander=fluid.renderer.makeProtoExpander(expanderOptions,parentThat);return expander;};fluid.oldRendererComponent.refreshView=function(that){if(!that.renderer){that.renderOnInit=true;return;}else{fluid.oldRenderer.clearDecorators(that);that.events.prepareModelForRender.fire(that.model,that.applier,that);var tree=that.produceTree(that);var rendererFnOptions=that.renderer.rendererFnOptions;if(!rendererFnOptions.noexpand){var expander=fluid.protoExpanderForComponent(that,rendererFnOptions);tree=expander(tree);}that.events.onRenderTree.fire(that,tree);that.renderer.render(tree);that.events.afterRender.fire(that);}};fluid.oldRendererComponent.produceTree=function(that){var produceTreeOption=that.options.produceTree;return produceTreeOption?(typeof produceTreeOption==="string"?fluid.getGlobalValue(produceTreeOption):produceTreeOption)(that):fluid.copy(that.options.protoTree);};fluid.fetchOldRendererTemplate=function(shadow){fluid.getForComponent(shadow.that,"resources.template");};fluid.initOldRendererWorkflow=function(shadow){fluid.initOldRendererComponent(shadow.that);};fluid.initOldRendererComponent=function(that){var rendererOptions=fluid.oldRenderer.modeliseOptions(fluid.copy(that.options.rendererOptions),null,that);if(!rendererOptions.messageSource&&that.options.strings)rendererOptions.messageSource={type:"resolver",resolver:that.messageResolver};fluid.oldRenderer.reverseMerge(rendererOptions,that.options,["resolverGetConfig","resolverSetConfig"]);that.rendererOptions=rendererOptions;var rendererFnOptions=$.extend({},that.options.rendererFnOptions,{rendererOptions,repeatingSelectors:that.options.repeatingSelectors,selectorsToIgnore:that.options.selectorsToIgnore,expanderOptions:{envAdd:{styles:that.options.styles}}});if(that.resources&&that.resources.template)rendererFnOptions.templateSource=function(){return that.resources.template.resourceText;};fluid.oldRenderer.reverseMerge(rendererFnOptions,that.options,["resolverGetConfig","resolverSetConfig"]);var renderer={fossils:{},rendererFnOptions,boundPathForNode:function(node){return fluid.boundPathForNode(node,renderer.fossils);}};var rendererSub=fluid.oldRenderer.createOldRendererSubcomponent(that.container,that.options.selectors,rendererFnOptions,that,renderer.fossils);that.renderer=$.extend(renderer,rendererSub);};var removeSelectors=function(selectors,selectorsToIgnore){fluid.each(fluid.makeArray(selectorsToIgnore),(function(selectorToIgnore){delete selectors[selectorToIgnore];}));return selectors;};var markRepeated=function(selectorKey,repeatingSelectors){if(repeatingSelectors)fluid.each(repeatingSelectors,(function(repeatingSelector){if(selectorKey===repeatingSelector)selectorKey=selectorKey+":";}));return selectorKey;};fluid.oldRenderer.selectorsToCutpoints=function(selectors,options){var togo=[];options=options||{};selectors=fluid.copy(selectors);if(options.selectorsToIgnore)selectors=removeSelectors(selectors,options.selectorsToIgnore);for(var selectorKey in selectors)togo.push({id:markRepeated(selectorKey,options.repeatingSelectors),selector:selectors[selectorKey]});return togo;};fluid.oldRenderer.NO_COMPONENT={};fluid.oldRenderer.mergeComponents=function(target,source){for(var key in source)target[key]=source[key];return target;};fluid.registerNamespace("fluid.oldRenderer.selection");fluid.oldRenderer.selection.inputs=function(options,container,key,config){fluid.expect("Selection to inputs expander",options,["selectID","inputID","labelID","rowID"]);var selection=config.expander(options.tree);var optsToExpand=fluid.censorKeys(options,["tree"]);var expandedOpts=config.expandLight(optsToExpand);var rows=fluid.transform(selection.optionlist.value,(function(option,index){var togo={};var element={parentRelativeID:"..::"+expandedOpts.selectID,choiceindex:index};togo[expandedOpts.inputID]=element;togo[expandedOpts.labelID]=fluid.copy(element);return togo;}));var togo={};togo[expandedOpts.selectID]=selection;togo[expandedOpts.rowID]={children:rows};togo=config.expander(togo);return togo;};fluid.oldRenderer.repeat=function(options,container,key,config){fluid.expect("Repetition expander",options,["controlledBy","tree"]);var env=config.threadLocal();var path=fluid.extractContextualPath(options.controlledBy,{ELstyle:"ALL"},env);var list=fluid.get(config.model,path,config.resolverGetConfig);var togo={};if(!list||list.length===0)return options.ifEmpty?config.expander(options.ifEmpty):togo;var expanded=[];fluid.each(list,(function(element,i){var EL=fluid.model.composePath(path,i);var envAdd={};if(options.pathAs)envAdd[options.pathAs]="${"+EL+"}";if(options.valueAs)envAdd[options.valueAs]=fluid.get(config.model,EL,config.resolverGetConfig);var expandrow=fluid.withEnvironment(envAdd,(function(){return config.expander(options.tree);}),env);if(fluid.isArrayable(expandrow)){if(expandrow.length>0)expanded.push({children:expandrow});}else{if(expandrow!==fluid.oldRenderer.NO_COMPONENT)expanded.push(expandrow);}}));var repeatID=options.repeatID;if(repeatID.indexOf(":")===-1)repeatID=repeatID+":";fluid.each(expanded,(function(entry){entry.ID=repeatID;}));return expanded;};fluid.oldRenderer.condition=function(options,container,key,config){fluid.expect("Selection to condition expander",options,["condition"]);var condition;if(options.condition.funcName){var args=config.expandLight(options.condition.args
118);condition=fluid.invokeGlobalFunction(options.condition.funcName,args);}else if(options.condition.expander)condition=config.expander(options.condition);else condition=config.expandLight(options.condition);var tree=condition?options.trueTree:options.falseTree;if(!tree)tree=fluid.renderer.NO_COMPONENT;return config.expander(tree);};fluid.withEnvironment=function(envAdd,func,root){var key;root=root||fluid.globalThreadLocal();try{for(key in envAdd)root[key]=envAdd[key];$.extend(root,envAdd);return func();}finally{for(key in envAdd)delete root[key];}};fluid.fetchContextReference=function(parsed,directModel,env,elResolver,externalFetcher){if(elResolver)parsed=elResolver(parsed,env);var base=parsed.context?env[parsed.context]:directModel;if(!base){var resolveExternal=externalFetcher&&externalFetcher(parsed);return resolveExternal||base;}return parsed.noDereference?parsed.path:fluid.get(base,parsed.path);};fluid.makeEnvironmentFetcher=function(directModel,elResolver,envGetter,externalFetcher){envGetter=envGetter||fluid.globalThreadLocal;return function(parsed){var env=envGetter();return fluid.fetchContextReference(parsed,directModel,env,elResolver,externalFetcher);};};fluid.extractContextualPath=function(string,options,env,externalFetcher){var parsed=fluid.extractELWithContext(string,options);if(parsed)if(parsed.context)return env[parsed.context]?fluid.transformContextPath(parsed,env).path:{value:externalFetcher(parsed)};else return parsed.path;};fluid.transformContextPath=function(parsed,env){if(parsed.context){var fetched=env[parsed.context];var EL;if(typeof fetched==="string")EL=fluid.extractEL(fetched,{ELstyle:"${}"});if(EL)return {noDereference:parsed.path==="",path:fluid.model.composePath(EL,parsed.path)};}return parsed;};fluid.oldRenderer.makeExternalFetcher=function(contextThat){return function(parsed){var foundComponent=fluid.resolveContext(parsed.context,contextThat);return foundComponent?fluid.getForComponent(foundComponent,parsed.path):undefined;};};fluid.oldRenderer.makeProtoExpander=function(expandOptions,parentThat){var options=$.extend({ELstyle:"${}"},expandOptions);if(parentThat)options.externalFetcher=fluid.oldRenderer.makeExternalFetcher(parentThat);var threadLocal;function fetchEL(string){var env=threadLocal();return fluid.extractContextualPath(string,options,env,options.externalFetcher);}var IDescape=options.IDescape||"\\";var expandLight=function(source){return fluid.expand(source,options);};var expandBound=function(value,concrete){if(value.messagekey!==undefined)return {componentType:"UIMessage",messagekey:expandBound(value.messagekey),args:expandLight(value.args)};var proto;if(!fluid.isPrimitive(value)&&!fluid.isArrayable(value)){proto=$.extend({},value);if(proto.decorators)proto.decorators=expandLight(proto.decorators);value=proto.value;delete proto.value;}else proto={};var EL;if(typeof value==="string"){var fetched=fetchEL(value);EL=typeof fetched==="string"?fetched:null;value=fluid.get(fetched,"value")||value;}if(EL)proto.valuebinding=EL;else{if(value!==undefined)proto.value=value;}if(options.model&&proto.valuebinding&&proto.value===undefined)proto.value=fluid.get(options.model,proto.valuebinding,options.resolverGetConfig);if(concrete)proto.componentType="UIBound";return proto;};options.filter=fluid.expander.lightFilter;var expandCond;var expandLeafOrCond;var expandEntry=function(entry){var comp=[];expandCond(entry,comp);return {children:comp};};var expandExternal=function(entry){if(entry===fluid.renderer.NO_COMPONENT)return entry;var singleTarget;var target=[];var pusher=function(comp){singleTarget=comp;};expandLeafOrCond(entry,target,pusher);return singleTarget||target;};var expandConfig={model:options.model,resolverGetConfig:options.resolverGetConfig,resolverSetConfig:options.resolverSetConfig,expander:expandExternal,expandLight};var expandLeaf=function(leaf,componentType){var togo={componentType};var map=fluid.renderer.boundMap[componentType]||{};for(var key in leaf)if(/decorators|args/.test(key)){togo[key]=expandLight(leaf[key]);continue;}else if(map[key])togo[key]=expandBound(leaf[key]);else togo[key]=leaf[key];return togo;};var expandChildren=function(entry,pusher){var children=entry.children;for(var i=0;i<children.length;++i){var target=[];var comp={children:target};var child=children[i];var childPusher=function(comp){target[target.length]=comp;};expandLeafOrCond(child,target,childPusher);if(comp.children.length===1&&!comp.children[0].ID)comp=comp.children[0];pusher(comp);}};function detectBareBound(entry){return fluid.find(entry,(function(value,key){return key==="decorators";}))!==false;}expandLeafOrCond=function(entry,target,pusher){var componentType=fluid.renderer.inferComponentType(entry);if(!componentType&&(fluid.isPrimitive(entry)||detectBareBound(entry)))componentType="UIBound";if(componentType)pusher(componentType==="UIBound"?expandBound(entry,true):expandLeaf(entry,componentType));else{if(!target)fluid.fail("Illegal cond->cond transition");expandCond(entry,target);}};expandCond=function(proto,target){var key;var expandToTarget=function(expander){var expanded=fluid.invokeGlobalFunction(expander.type,[expander,proto,key,expandConfig]);if(expanded!==fluid.renderer.NO_COMPONENT)fluid.each(expanded,(function(el){target[target.length]=el;}));};var condPusher=function(comp){comp.ID=key;target[target.length]=comp;};for(key in proto){var entry=proto[key];if(key.charAt(0)===IDescape)key=key.substring(1);if(key==="expander"){var expanders=fluid.makeArray(entry);fluid.each(expanders,expandToTarget);}else{if(entry)if(entry.children){if(key.indexOf(":")===-1)key=key+":";expandChildren(entry,condPusher);}else if(fluid.renderer.isBoundPrimitive(entry))condPusher(expandBound(entry,true));else expandLeafOrCond(entry,null,condPusher);}}};return function(entry){threadLocal=fluid.threadLocal((function(){return $.extend({},options.envAdd);}));options.fetcher=fluid.makeEnvironmentFetcher(options.model,fluid.transformContextPath,threadLocal,options.externalFetcher);expandConfig.threadLocal=threadLocal;return expandEntry(entry);};};jQuery.extend(fluid.renderer,fluid.oldRenderer);"use strict";fluid.registerNamespace("fluid.overviewPanel");fluid.overviewPanel.makeBooleanListener=function(that,selector,method,path,value){var elem=that.locate(selector);elem.on(method,(function(evt){that.applier.change(path,value==="toggle"?!that.model[path]:value);evt.preventDefault();}));};fluid.defaults("fluid.overviewPanel",{gradeNames:["fluid.rendererComponent","fluid.resourceLoader"],renderOnInit:true,resources:{template:{url:"../html/overviewPanelTemplate.html"}},listeners:{"onCreate.setVisibility":"{that}
118.setVisibility","afterRender.registerToggleListener":{funcName:"fluid.overviewPanel.makeBooleanListener",args:["{that}","toggleControl","click","showPanel","toggle"]},"afterRender.registerCloseListener":{funcName:"fluid.overviewPanel.makeBooleanListener",args:["{that}","closeControl","click","showPanel",false]},"afterRender.setLinkHrefs":{funcName:"fluid.overviewPanel.setLinkHrefs",args:["{that}","{that}.options.links"]},"afterRender.setToggleControlAria":{this:"{that}.dom.toggleControl",method:"attr",args:{role:"button","aria-controls":"{that}.containerId"}},"afterRender.setCloseControlAria":{this:"{that}.dom.closeControl",method:"attr",args:{role:"button","aria-label":"{that}.options.strings.closePanelLabel","aria-controls":"{that}.containerId"}},"afterRender.setAriaStates":"{that}.setAriaStates"},model:{showPanel:true},modelListeners:{setVisibility:{path:"showPanel",func:"{that}.setVisibility"},setAriaStates:{path:"showPanel",func:"{that}.setAriaStates"}},members:{containerId:{expander:{funcName:"fluid.allocateSimpleId",args:"{that}.container"}}},invokers:{setVisibility:{funcName:"fluid.overviewPanel.setVisibility",args:["{that}","{that}.model.showPanel"]},setAriaStates:{funcName:"fluid.overviewPanel.setAriaStates",args:["{that}","{that}.model.showPanel"]}},selectors:{toggleControl:".flc-overviewPanel-toggleControl",titleBegin:".flc-overviewPanel-title-begin",titleLink:".flc-overviewPanel-titleLink",titleLinkText:".flc-overviewPanel-title-linkText",titleEnd:".flc-overviewPanel-title-end",componentName:".flc-overviewPanel-componentName",description:".flc-overviewPanel-description",instructionsHeading:".flc-overviewPanel-instructionsHeading",instructions:".flc-overviewPanel-instructions",demoCodeLink:".flc-overviewPanel-demoCodeLink",demoCodeLinkText:".flc-overviewPanel-demoCodeLinkText",infusionCodeLink:".flc-overviewPanel-infusionCodeLink",infusionCodeLinkText:".flc-overviewPanel-infusionCodeLinkText",apiLink:".flc-overviewPanel-apiLink",apiLinkText:".flc-overviewPanel-apiLinkText",designLink:".flc-overviewPanel-designLink",designLinkText:".flc-overviewPanel-designLinkText",feedbackText:".flc-overviewPanel-feedbackText",feedbackLink:".flc-overviewPanel-feedbackLink",feedbackLinkText:".flc-overviewPanel-feedbackLinkText",closeControl:".flc-overviewPanel-closeControl",closeText:".flc-overviewPanel-closeText"},selectorsToIgnore:["toggleControl","titleLink","demoCodeLink","infusionCodeLink","apiLink","designLink","feedbackLink","closeControl"],protoTree:{titleBegin:{messagekey:"titleBegin"},titleLinkText:{messagekey:"titleLinkText"},titleEnd:{messagekey:"titleEnd"},componentName:{messagekey:"componentName"},description:{markup:"${{that}.options.markup.description}"},instructionsHeading:{messagekey:"instructionsHeading"},instructions:{markup:"${{that}.options.markup.instructions}"},demoCodeLinkText:{messagekey:"demoCodeLinkText"},infusionCodeLinkText:{messagekey:"infusionCodeLinkText"},apiLinkText:{messagekey:"apiLinkText"},designLinkText:{messagekey:"designLinkText"},feedbackText:{messagekey:"feedbackText"},feedbackLinkText:{messagekey:"feedbackLinkText"},closeText:{messagekey:"closeText"}},styles:{hidden:"fl-overviewPanel-hidden"},strings:{titleBegin:"An",titleLinkText:"Infusion",titleEnd:"component demo",componentName:"Component Name",instructionsHeading:"Instructions",demoCodeLinkText:"demo code",infusionCodeLinkText:"get Infusion",apiLinkText:"API",designLinkText:"design",feedbackText:"Found a bug? Have a question?",feedbackLinkText:"Let us know!",closeText:"close",openPanelLabel:"Open the overview panel",closePanelLabel:"Close the overview panel"},markup:{description:"A description of the component should appear here. It should say: <ul><li>What the component does.</li><li>Why it is interesting / useful.</li></ul>",instructions:"<p>Do this to do this. Do that to do that.</p>"},links:{titleLink:"http://fluidproject.org/infusion.html",demoCodeLink:"#",infusionCodeLink:"https://github.com/fluid-project/infusion/",apiLink:"#",designLink:"#",feedbackLink:"#"}});fluid.overviewPanel.setVisibility=function(that,showPanel){that.container.toggleClass(that.options.styles.hidden,!showPanel);};fluid.overviewPanel.setLinkHrefs=function(that,linkMap){fluid.each(linkMap,(function(linkHref,selector){that.locate(selector).attr("href",linkHref);}));};fluid.overviewPanel.setAriaStates=function(that,showPanel){that.locate("toggleControl").attr("aria-pressed",!sh
118owPanel);that.locate("toggleControl").attr("aria-expanded",showPanel);that.locate("closeControl").attr("aria-expanded",showPanel);if(showPanel)that.locate("toggleControl").attr("aria-label",that.options.strings.closePanelLabel);else that.locate("toggleControl").attr("aria-label",that.options.strings.openPanelLabel);};"use strict";fluid.registerNamespace("fluid.pager");fluid.pager.updateStyles=function(pageListThat,newModel,oldModel){var pageLinks=pageListThat.locate("pageLinks");if(oldModel&&oldModel.pageIndex!==undefined){var oldLink=pageLinks.eq(oldModel.pageIndex);oldLink.removeClass(pageListThat.options.styles.currentPage);}var pageLink=pageLinks.eq(newModel.pageIndex);pageLink.addClass(pageListThat.options.styles.currentPage);};fluid.pager.bindLinkClick=function(link,initiatePageChange,eventArg){link.off("click.fluid.pager");link.on("click.fluid.pager",(function(){initiatePageChange.fire(eventArg);return false;}));};fluid.pager.computePageCount=function(model){return Math.max(1,Math.floor((model.totalRange-1)/model.pageSize)+1);};fluid.pager.computePageLimit=function(model){return Math.min(model.totalRange,(model.pageIndex+1)*model.pageSize);};fluid.pager.bindLinkClicks=function(pageLinks,initiatePageChange){fluid.each(pageLinks,(function(pageLink,i){fluid.pager.bindLinkClick($(pageLink),initiatePageChange,{pageIndex:i});}));};fluid.defaults("fluid.pager.pageList",{gradeNames:["fluid.viewComponent"]});fluid.defaults("fluid.pager.directPageList",{gradeNames:["fluid.pager.pageList","fluid.contextAware"],contextAwareness:{isInPager:{checks:{isInPager:{contextValue:"{fluid.pager}",gradeNames:"fluid.pager.directPageListInPager"}}}},listeners:{onCreate:{funcName:"fluid.pager.bindLinkClicks",args:["{that}.dom.pageLinks","{pager}.events.initiatePageChange"]}},modelListeners:{"{pager}.model":"fluid.pager.updateStyles({that}, {change}.value, {change}.oldValue)"}});fluid.defaults("fluid.pager.directPageListInPager",{listeners:{"onDomBind.countPageLinks":{changePath:"{fluid.pager}.model.totalRange",value:"{that}.dom.pageLinks.length"}}});fluid.pager.everyPageStrategy=fluid.iota;fluid.pager.gappedPageStrategy=function(locality,midLocality){if(!locality)locality=3;if(!midLocality)midLocality=locality;return function(count,first,mid){var togo=[];var j=0;var lastSkip=false;for(var i=0;i<count;++i)if(i<locality||count-i-1<locality||i>=mid-midLocality&&i<=mid+midLocality){togo[j++]=i;lastSkip=false;}else{if(!lastSkip){togo[j++]=-1;lastSkip=true;}}return togo;};};fluid.pager.consistentGappedPageStrategy=function(endLinkCount,midLinkCount){if(!endLinkCount)endLinkCount=1;if(!midLinkCount)midLinkCount=endLinkCount;var endWidth=endLinkCount+2+midLinkCount;return function(count,first,mid){var pages=[];var anchoredLeft=mid<endWidth;var anchoredRight=mid>=count-endWidth;var anchoredEndWidth=endWidth+midLinkCount;var midStart=mid-midLinkCount;var midEnd=mid+midLinkCount;var lastSkip=false;for(var page=0;page<count;page++)if(page<endLinkCount||count-page<=endLinkCount||anchoredLeft&&page<anchoredEndWidth||anchoredRight&&page>=count-anchoredEndWidth||page>=midStart&&page<=midEnd){pages.push(page);lastSkip=false;}else{if(!lastSkip){pages.push(-1);lastSkip=true;}}return pages;};};fluid.registerNamespace("fluid.pager.renderedPageList");fluid.pager.renderedPageList.assembleComponent=function(page,isCurrent,initiatePageChange,currentPageStyle,currentPageIndexMsg){var obj={ID:"page-link:link",localID:page+1,value:page+1,pageIndex:page,decorators:[{identify:"pageLink:"+page},{type:"jQuery",func:"on",args:["click",function(event){initiatePageChange.fire({pageIndex:page});event.preventDefault();}]}]};if(isCurrent){obj.current=true;obj.decorators=obj.decorators.concat([{type:"addClass",classes:currentPageStyle},{type:"jQuery",func:"attr",args:["aria-label",currentPageIndexMsg]}]);}return obj;};fluid.pager.renderedPageList.onModelChange=function(that,newModel){function pageToComponent(current){return function(page){return page===-1?{ID:"page-link:skip"}:that.assembleComponent(page,page===current);};}var pages=that.options.pageStrategy(newModel.pageCount,0,newModel.pageIndex);var pageTree=fluid.transform(pages,pageToComponent(newModel.pageIndex));if(pageTree.length>1)fluid.peek(pageTree).value=fluid.peek(pageTree).value+that.options.strings.last;that.events.onRenderPageLinks.fire(pageTree,newModel);that.pageTree=pageTree;that.refreshView();};fluid.pager.renderedPageList.linkBodyCutpoint=function(linkBody){return linkBody?[{id:"payload-component",selector:linkBody}]:[];};fluid.defaults("fluid.pager.renderedPageList",{gradeNames:["fluid.pager.pageList","fluid.rendererComponent"],distributeOptions:{record:"@expand:fluid.pager.renderedPageList.linkBodyCutpoint({that}.options.linkBody)",target:"{that}.options.rendererOptions.cutpoints"},rendererOptions:{idMap:{},cutpoints:[{id:"page-link:link",selector:"{that}.options.selectors.pageLinks"},{id:"page-link:skip",selector:"{that}.options.selectors.pageLinkSkip"}]},rendererFnOptions:{noexpand:true,templateSource:{node:"{that}.dom.root"},renderTarget:"{that}.dom.root"},events:{onRenderPageLinks:"{pager}.events.onRenderPageLinks"},model:"{pager}.model",modelListeners:{"":"fluid.pager.renderedPageList.onModelChange({that}, {change}.value)"},invokers:{produceTree:{funcName:"fluid.identity",args:"{that}.pageTree"}
118,assembleComponent:{funcName:"fluid.pager.renderedPageList.assembleComponent",args:["{arguments}.0","{arguments}.1","{pager}.events.initiatePageChange","{pagerBar}.options.styles.currentPage","{pagerBar}.options.strings.currentPageIndexMsg"]}},selectors:{root:".flc-pager-links",pageLinks:"{pagerBar}.options.selectors.pageLinks",pageLinkSkip:"{pagerBar}.options.selectors.pageLinkSkip"},strings:"{pager}.options.strings",linkBody:"a",pageStrategy:fluid.pager.everyPageStrategy});fluid.defaults("fluid.pager.previousNext",{gradeNames:["fluid.viewComponent"],members:{previous:"{that}.dom.previous",next:"{that}.dom.next"},selectors:{previous:".flc-pager-previous",next:".flc-pager-next"},listeners:{onCreate:[{funcName:"fluid.pager.bindLinkClick",args:["{that}.previous","{pager}.events.initiatePageChange",{relativePage:-1}]},{funcName:"fluid.pager.bindLinkClick",args:["{that}.next","{pager}.events.initiatePageChange",{relativePage:+1}]}]},modelListeners:{"{pager}.model":"fluid.pager.previousNext.update({that}, {that}.options.styles.disabled, {change}.value)"}});fluid.pager.previousNext.update=function(that,disabledStyle,newModel){that.previous.toggleClass(disabledStyle,newModel.pageIndex===0);that.next.toggleClass(disabledStyle,newModel.pageIndex===newModel.pageCount-1);};fluid.defaults("fluid.pager.pagerBar",{gradeNames:["fluid.viewComponent"],components:{pageList:{type:"fluid.pager.pageList",container:"{pagerBar}.container",options:{selectors:{pageLinks:"{pagerBar}.options.selectors.pageLinks"},styles:"{pagerBar}.options.styles"}},previousNext:{type:"fluid.pager.previousNext",container:"{pagerBar}.container",options:{selectors:{previous:"{pagerBar}.options.selectors.previous",next:"{pagerBar}.options.selectors.next"},styles:"{pagerBar}.options.styles"}}},events:{initiatePageChange:null,onModelChange:null},selectors:{pageLinks:".flc-pager-pageLink",pageLinkSkip:".flc-pager-pageLink-skip",previous:".flc-pager-previous",next:".flc-pager-next"},styles:{currentPage:"fl-pager-currentPage",disabled:"fl-pager-disabled"},strings:{currentPageIndexMsg:"Current page"}});fluid.pager.summaryAria=function(element){element.attr({"aria-relevant":"all","aria-atomic":"false","aria-live":"assertive",role:"status"});};fluid.defaults("fluid.pager.summary",{gradeNames:["fluid.viewComponent"],listeners:{onCreate:{funcName:"fluid.pager.summaryAria",args:"{that}.container"}},modelListeners:{"{pager}.model":{funcName:"fluid.pager.summary.onModelChange",args:["{that}.container","{that}.options.strings.message","{change}.value"]}}});fluid.pager.summary.onModelChange=function(node,message,newModel){var text=fluid.stringTemplate(message,{first:newModel.pageIndex*newModel.pageSize+1,last:fluid.pager.computePageLimit(newModel),total:newModel.totalRange,currentPage:newModel.pageIndex+1});node.text(text);};fluid.defaults("fluid.pager.directPageSize",{gradeNames:["fluid.viewComponent"],listeners:{onCreate:{this:"{that}.container",method:"on",args:["change",{expander:{funcName:"fluid.pager.directPageSize.onChange",args:["{pager}.events.initiatePageSizeChange","{that}.container"]}}]}},modelListeners:{"{pager}.model.pageSize":"fluid.pager.updateNodeValue({that}.container, {change}.value)"}});fluid.pager.directPageSize.onChange=function(initiatePageSizeChange,node){return function(){initiatePageSizeChange.fire(node.val()||1);};};fluid.pager.updateNodeValue=function(node,value){node.val(value);};fluid.pager.initiatePageChangeListener=function(that,arg){var newPageIndex=arg.pageIndex;if(arg.relativePage!==undefined)newPageIndex=that.model.pageIndex+arg.relativePage;that.applier.change("pageIndex",newPageIndex);};fluid.defaults("fluid.pager",{gradeNames:["fluid.viewComponent"],events:{initiatePageChange:null,initiatePageSizeChange:null,onModelChange:null,onRenderPageLinks:null,afterRender:null},model:{pageIndex:0,pageSize:1,totalRange:undefined},selectors:{pagerBar:".flc-pager-top, .flc-pager-bottom",summary:".flc-pager-summary",pageSize:".flc-pager-page-size"},strings:{last:" (last)"},markup:{rangeAnnotation:"<b> %first </b><br/>—<br/><b> %last </b>"},distributeOptions:{source:"{that}.options.pageList",removeSource:true,target:"{that fluid.pager.pageList}"},pageList:{type:"fluid.pager.renderedPageList",options:{pageStrategy:fluid.pager.gappedPageStrategy(3,1)}},modelRelay:{pageCount:{target:"pageCount",func:"fluid.pager.computePageCount",args:{totalRange:"{that}.model.totalRange",pageSize:"{that}.model.pageSize"}},limitRange:{target:"pageIndex",singleTransform:{type:"fluid.transforms.limitRange",input:"{that}.model.pageIndex",min:0,max:"{that}.model.pageCount",excludeMax:1}}},modelListeners:{"":"{that}.events.onModelChange.fire({change}.value, {change}.oldValue, {that})"},listeners:{"initiatePageChange.updatePageIndex":{funcName:"fluid.pager.initiatePageChangeListener",args:["{that}","{arguments}.0"]},"initiatePageSizeChange.updateModel":{changePath:"pageSize",value:"{arguments}.0"}},dynamicComponents:{summary:{sources:"{that}.dom.summary",type:"fluid.pager.summary",container:"{source}",options:{strings:{message:"Viewing page %currentPage. Showing records %first - %last of %total items."},events:{onModelChange:"{pager}.events.onModelChange"}}},pageSize:{sources:"{that}.dom.pageSize",type:"fluid.pager.directPageSize",container:"{source}"},pagerBar:{sources:"{that}.dom.pagerBar",type:"fluid.pager.pagerBar",container:"{source}",options:{strings:"{pager}.options.strings",events:{initiatePageChange:"{pager}.events.initiatePageChange",onModelChange:"{pager}.events.onModelChange"}}}}});"use strict";fluid.registerNamespace("fluid.table");fluid.table.findColumnDef=function(columnDefs,key){return fluid.find_if(columnDefs,(function(def){return def.ke
118y===key;}));};fluid.table.getRoots=function(target,dataOffset,index){target.shortRoot=index;target.longRoot=fluid.pathUtil.composePath(dataOffset,target.shortRoot);};fluid.table.expandPath=function(EL,shortRoot,longRoot){if(EL.charAt(0)==="*")return longRoot+EL.substring(1);else return EL.replace("*",shortRoot);};fluid.table.fetchValue=function(dataOffset,dataModel,index,valuebinding,roots){fluid.table.getRoots(roots,dataOffset,index);var path=fluid.table.expandPath(valuebinding,roots.shortRoot,roots.longRoot);return fluid.get(dataModel,path);};fluid.table.rowComparator=function(sortDir){return function(arec,brec){return (arec.value>brec.value?1:arec.value<brec.value?-1:0)*sortDir;};};fluid.table.basicSorter=function(columnDefs,dataModel,dataOffset,model){var roots={};var columnDef=fluid.table.findColumnDef(columnDefs,model.sortKey);var sortrecs=[];for(var i=0;i<model.totalRange;++i)sortrecs[i]={index:i,value:fluid.table.fetchValue(dataOffset,dataModel,i,columnDef.valuebinding,roots)};sortrecs.sort(fluid.table.rowComparator(model.sortDir));return fluid.getMembers(sortrecs,"index");};fluid.table.IDforColumn=function(columnDef,keyPrefix,roots){var EL=columnDef.valuebinding;var key=columnDef.key;if(!EL)fluid.fail("Error in definition for column with key "+key+": valuebinding is not set");if(!key){var segs=fluid.model.parseEL(EL);key=fluid.peek(segs);}return {ID:(keyPrefix||"")+key,EL:fluid.table.expandPath(EL,roots.shortRoot,roots.longRoot)}
118;};fluid.table.bigHeaderForKey=function(key,options,idMap){var id=idMap["header:"+key];var smallHeader=fluid.jById(id);if(smallHeader.length===0)return null;var headerSortStylisticOffset=options.selectors.headerSortStylisticOffset;var bigHeader=fluid.findAncestor(smallHeader,(function(element){return $(element).is(headerSortStylisticOffset);}));return bigHeader;};fluid.table.setSortHeaderClass=function(styles,element,sort){element=$(element);element.removeClass(styles.ascendingHeader);element.removeClass(styles.descendingHeader);if(sort!==0){element.addClass(sort===1?styles.ascendingHeader:styles.descendingHeader);element.attr("aria-sort",sort===1?"ascending":"descending");}};fluid.table.isCurrentColumnSortable=function(columnDefs,model){var columnDef=model.sortKey?fluid.table.findColumnDef(columnDefs,model.sortKey):null;return columnDef?columnDef.sortable:false;};fluid.table.setModelSortHeaderClass=function(columnDefs,newModel,options,idMap){var styles=options.styles;var sort=fluid.table.isCurrentColumnSortable(columnDefs,newModel)?newModel.sortDir:0;fluid.table.setSortHeaderClass(styles,fluid.table.bigHeaderForKey(newModel.sortKey,options,idMap),sort);};fluid.table.generateColumnClick=function(tableThat,options,model,columnDef){return function(){if(columnDef.sortable===true){var model=tableThat.model;var newModel=fluid.copy(model);var styles=tableThat.options.styles;var oldKey=model.sortKey;if(columnDef.key!==model.sortKey){newModel.sortKey=columnDef.key;newModel.sortDir=1;var oldBig=fluid.table.bigHeaderForKey(oldKey,options,tableThat.bodyRenderer.rendererOptions.idMap);if(oldBig)fluid.table.setSortHeaderClass(styles,oldBig,0);}else if(newModel.sortKey===columnDef.key)newModel.sortDir=-1*newModel.sortDir;else return false;newModel.pageIndex=0;tableThat.applier.change("",newModel);}return false;};};fluid.table.fetchHeaderDecorators=function(decorators,columnDef){return decorators[columnDef.sortable?"sortableHeader":"unsortableHeader"];};fluid.table.generateHeader=function(tableThat,options,newModel){var sortableColumnTxt=options.strings.sortableColumnText;if(newModel.sortDir===1)sortableColumnTxt=options.strings.sortableColumnTextAsc;else{if(newModel.sortDir===-1)sortableColumnTxt=options.strings.sortableColumnTextDesc;}var columnDefs=tableThat.options.columnDefs;return {children:fluid.transform(columnDefs,(function(columnDef){return {ID:fluid.table.IDforColumn(columnDef,options.keyPrefix,{}).ID,value:columnDef.label,decorators:[{jQuery:["on","click",fluid.table.generateColumnClick(tableThat,options,newModel,columnDef)]},{identify:"header:"+columnDef.key},{type:"attrs",attributes:{title:columnDef.key===newModel.sortKey?sortableColumnTxt:options.strings.sortableColumnText}}].concat(fluid.table.fetchHeaderDecorators(options.decorators,columnDef))};}))};};fluid.table.expandVariables=function(value,opts){var togo="";var index=0;while(true){var nextindex=value.indexOf("${",index);if(nextindex===-1){togo+=value.substring(index);break;}else{togo+=value.substring(index,nextindex);var endi=value.indexOf("}",nextindex+2);var EL=value.substring(nextindex+2,endi);if(EL==="VALUE")EL=opts.EL;else EL=fluid.table.expandPath(EL,opts.shortRoot,opts.longRoot);var val=fluid.get(opts.dataModel,EL);togo+=val;index=endi+1;}}return togo;};fluid.table.expandPaths=function(target,tree,opts){for(var i in tree){var val=tree[i];if(i==="valuebinding")target[i]=fluid.table.expandPath(tree[i],opts);else if(typeof val==="object"){target[i]=val.length!==undefined?[]:{};fluid.table.expandPaths(target[i],val,opts);}else if(typeof val==="string")target[i]=fluid.table.expandVariables(val,opts);else target[i]=tree[i];}return target;};fluid.table.expandColumnDefs=function(columnDefs,keyPrefix,dataModel,filteredRow,roots){var tree=fluid.transform(columnDefs,(function(columnDef){var record=fluid.table.IDforColumn(columnDef,keyPrefix,roots);var opts=$.extend({dataModel},roots,record);var togo;if(!columnDef.components)return {ID:record.ID,valuebinding:record.EL};else if(typeof columnDef.components==="function")togo=columnDef.components(filteredRow.row,filteredRow.index);else togo=columnDef.components;togo=fluid.table.expandPaths({},togo,opts);togo.ID=record.ID;return togo;}));return tree;};fluid.table.fetchDataModel=function(dataModel,dataOffset){return fluid.get(dataModel,dataOffset);};fluid.table.produceTree=function(tableThat,renderThat){var options=renderThat.options;var columnDefs=tableThat.options.columnDefs;var roots={};var tree=fluid.transform(tableThat.filtered,(function(filteredRow){fluid.table.getRoots(roots,tableThat.options.dataOffset,filteredRow.index);if(columnDefs==="explode")return fluid.explode(filteredRow.row,roots.longRoot);else{if(columnDefs.length)return fluid.table.expandColumnDefs(columnDefs,renderThat.options.keyPrefix,tableThat.dataModel,filteredRow,roots);}}));var fullTree={};fullTree[options.row]=tree;if(typeof columnDefs==="object")fullTree[options.header]=fluid.table.generateHeader(tableThat,renderThat.options,tableThat.model);return fullTree;};fluid.table.sortInvoker=function(tableThat,newModel){var columnDefs=tableThat.options.columnDefs;var sorted=fluid.table.isCurrentColumnSortable(columnDefs,newModel)?tableThat.options.sorter(columnDefs,tableThat.options.dataModel,tableThat.options.dataOffset,newModel):null;tableThat.permutation=sorted;};fluid.table.onModelChange=function(tableThat,renderThat,newModel){renderThat.sortInvoker(newModel);tableThat.dataModel=tableThat.fetchDataModel();tableThat.filtered=tableThat.options.modelFilter(tableThat.dataModel,newModel,tableThat.permutation);};fluid.defaults("fluid.table.selfRender",{gradeNames:["fluid.rendererComponent"],listeners:{onCreate:[{this:"{that}.root",method:"addClass",args:"{that}.options.styles.root"}],onIndexModelChange:[{funcName:"fluid.table.onModelChange",namespace:"onModelChange",args:["{fluid.table}","{fluid.table.selfRender}","{arguments}.0","{arguments}.1"]},{func:"{that}.sortInvoker",namespace:"sortInvoker",args:"{arguments}.0"},{priority:"last",namespace:"refreshView",func:"{that}.refreshView"}],afterRender:{funcName:"fluid.table.setModelSortHeaderClass",args:["{that}.options.columnDefs","{fluid.table}.model","{that}.options","{that}.rendererOptions.idMap"]}},modelListeners:{"{fluid.table}.model":"{that}.events.onIndexModelChange.fire({change}.value, {change}.oldValue)"},events:{onIndexModelChange:null},invokers:{sortInvoker:{funcName:"fluid.table.sortInvoker",args:["{fluid.table}","{arguments}.0"]},produceTree:{funcName:"fluid.table.produceTree",args:["{fluid.table}","{fluid.table.selfRender}"]}},selectors:{root:".flc-pager-body-template",headerSortStylisticOffset:"{table}.options.selectors.headerSortStylisticOffset",header:".flc-table-header",row:".flc-table-row"},repeatingSelectors:["header","row"],selectorsToIgnore:["root","headerSortStylisticOffset"],styles:{root:"fl-pager",ascendingHeader:"{table}.options.styles.ascendingHeader",descendingHeader:"{table}.options.styles.descendingHeader"},members:{root:"{that}.dom.root"},decorators:{sortableHeader:[],unsortableHeader:[]},keyStrategy:"id",keyPrefix:"",row:"row:",header:"header:",strings:"{table}.options.strings",columnDefs:"{table}.options.columnDefs",rendererFnOptions:{templateSource:{node:"{that}.dom.root"},renderTarget:"{that}
118.dom.root",noexpand:true},rendererOptions:{model:"{table}.options.dataModel",idMap:{}}});fluid.table.checkTotalRange=function(totalRange,pagerBar){if(totalRange===undefined&&!pagerBar)fluid.fail("Error in Pager configuration - cannot determine total range, "+" since not configured in model.totalRange and no PagerBar is configured");};fluid.defaults("fluid.table",{gradeNames:["fluid.viewComponent"],mergePolicy:{dataModel:"preserve",columnDefs:"noexpand"},components:{bodyRenderer:{type:"fluid.table.selfRender",container:"{table}.container"}},listeners:{onCreate:{funcName:"fluid.table.checkTotalRange",namespace:"checkTotalRange",args:["{that}.model.totalRange","{that}.pagerBar"]}},modelFilter:fluid.table.directModelFilter,sorter:fluid.table.basicSorter,members:{dataModel:{expander:{func:"{that}.fetchDataModel"}}},invokers:{fetchDataModel:{funcName:"fluid.table.fetchDataModel",args:["{that}.options.dataModel","{that}.options.dataOffset"]}},styles:{ascendingHeader:"fl-pager-asc",descendingHeader:"fl-pager-desc"},selectors:{headerSortStylisticOffset:".flc-pager-sort-header"},strings:{sortableColumnText:"Select to sort",sortableColumnTextDesc:"Select to sort in ascending, currently in descending order.",sortableColumnTextAsc:"Select to sort in descending, currently in ascending order."},dataOffset:"",columnDefs:[]});"use strict";fluid.registerNamespace("fluid.pagedTable");fluid.defaults("fluid.pagedTable.rangeAnnotator",{gradeNames:["fluid.component"]});fluid.pagedTable.rangeAnnotator.onRenderPageLinks=function(that,tree,newModel,pagerBar){pagerBar.tooltip.close();var roots={};var column=that.options.annotateColumnRange||(that.options.annotateSortedColumn?newModel.sortKey:null);if(!column)return;var dataModel=that.options.dataModel;var columnDefs=that.options.columnDefs;var columnDef=fluid.table.findColumnDef(columnDefs,column);function fetchValue(index){index=that.permutation?that.permutation[index]:index;return fluid.table.fetchValue(that.options.dataOffset,dataModel,index,columnDef.valuebinding,roots);}var tModel={};fluid.model.copyModel(tModel,newModel);var tooltipInfo={};fluid.each(tree,(function(cell){if(cell.ID==="page-link:link"){var page=cell.pageIndex;var start=page*tModel.pageSize;tModel.pageIndex=page;var limit=fluid.pager.computePageLimit(tModel);var iValue=fetchValue(start);var lValue=fetchValue(limit-1);tooltipInfo[page]={first:iValue,last:lValue};}}));pagerBar.tooltipInfo=tooltipInfo;};fluid.pagedTable.directModelFilter=function(model,pagerModel,perm){var togo=[];var limit=fluid.pager.computePageLimit(pagerModel);for(var i=pagerModel.pageIndex*pagerModel.pageSize;i<limit;++i){var index=perm?perm[i]:i;togo[togo.length]={index,row:model[index]};}return togo;};fluid.pagedTable.configureTooltip=function(pagedTable,pagerBar,renderedPageList){var idMap=renderedPageList.rendererOptions.idMap;var idToContent={};fluid.each(pagerBar.tooltipInfo,(function(value,index){idToContent[idMap["pageLink:"+index]]=fluid.stringTemplate(pagedTable.options.markup.rangeAnnotation,value);}));pagerBar.tooltip.applier.change("idToContent",idToContent);};fluid.defaults("fluid.pagedTable",{gradeNames:["fluid.pager","fluid.table"],distributeOptions:[{target:"{that renderedPageList}.options.listeners.afterRender",record:{funcName:"fluid.pagedTable.configureTooltip",args:["{pagedTable}","{pagerBar}","{arguments}.0"]}},{target:"{that renderedPageList}.options.listeners.onRenderPageLinks",record:{funcName:"fluid.pagedTable.rangeAnnotator.onRenderPageLinks",args:["{pagedTable}","{arguments}.0","{arguments}.1","{pagerBar}"]}},{target:"{that pagerBar}.options.components.tooltip",source:"{that}.options.tooltip"}],annotateSortedColumn:false,annotateColumnRange:undefined,markup:{rangeAnnotation:"<b> %first </b><br/>—<br/><b> %last </b>"},tooltip:{type:"fluid.tooltip",container:"{that}.container",options:{}},modelFilter:fluid.pagedTable.directModelFilter,model:{pageSize:10,totalRange:"{that}.dataModel.length"}});"use strict";fluid.registerNamespace("fluid.progress");fluid.progress.animateDisplay=function(elm,animation,defaultAnimation,callback){animation=animation?animation:defaultAnimation;elm.animate(animation.params,animation.duration,callback);};fluid.progress.animateProgress=function(elm,width,speed){elm.queue("fx",[]);elm.animate({width,queue:false},speed);};fluid.progress.showProgress=function(that,animation){var firer=that.events.onProgressBeg
118in.fire;if(animation===false){that.displayElement.show();firer();}else fluid.progress.animateDisplay(that.displayElement,animation,that.options.showAnimation,firer);};fluid.progress.hideProgress=function(that,delay,animation){if(delay)setTimeout((function(){fluid.progress.hideProgress(that,0,animation);}),delay);else{var firer=that.events.afterProgressHidden.fire;if(animation===false){that.displayElement.hide();firer();}else fluid.progress.animateDisplay(that.displayElement,animation,that.options.hideAnimation,firer);}};fluid.progress.updateWidth=function(that,newWidth,dontAnimate){var currWidth=that.indicator.width();var direction=that.options.animate;if(newWidth>currWidth&&(direction==="both"||direction==="forward")&&!dontAnimate)fluid.progress.animateProgress(that.indicator,newWidth,that.options.speed);else if(newWidth<currWidth&&(direction==="both"||direction==="backward")&&!dontAnimate)fluid.progress.animateProgress(that.indicator,newWidth,that.options.speed);else that.indicator.width(newWidth);};fluid.progress.percentToPixels=function(that,percent){return Math.round(Math.min(percent,100)*that.progressBar.innerWidth()/100);};fluid.progress.refreshRelativeWidth=function(that){var pixels=Math.max(fluid.progress.percentToPixels(that,parseFloat(that.storedPercent)),that.options.minWidth);fluid.progress.updateWidth(that,pixels,true);};fluid.progress.initARIA=function(ariaElement,ariaBusyText){ariaElement.attr("role","progressbar");ariaElement.attr("aria-valuemin","0");ariaElement.attr("aria-valuemax","100");ariaElement.attr("aria-valuenow","0");if(ariaBusyText)ariaElement.attr("aria-valuetext","");ariaElement.attr("aria-busy","false");};fluid.progress.updateARIA=function(that,percent){var str=that.options.strings;var busy=percent<100&&percent>0;that.ariaElement.attr("aria-busy",busy);that.ariaElement.attr("aria-valuenow",percent);if(str.ariaBusyText)if(busy){var busyString=fluid.stringTemplate(str.ariaBusyText,{percentComplete:percent});that.ariaElement.attr("aria-valuetext",busyString);}else{if(percent===100)that.ariaElement.attr("aria-valuetext",str.ariaDoneText);}};fluid.progress.updateText=function(label,value){label.html(value);};fluid.progress.repositionIndicator=function(that){that.indicator.css("top",that.progressBar.position().top).css("left",0).height(that.progressBar.height());fluid.progress.refreshRelativeWidth(that);};fluid.progress.updateProgress=function(that,percent,labelText,animationForShow){fluid.progress.showProgress(that,animationForShow);if(percent!==null){that.storedPercent=percent;var pixels=Math.max(fluid.progress.percentToPixels(that,parseFloat(percent)),that.options.minWidth);fluid.progress.updateWidth(that,pixels);}if(fluid.isValue(labelText)){var text=fluid.stringTemplate(labelText,{percentComplete:percent});fluid.progress.updateText(that.label,text);}if(that.ariaElement)fluid.progress.updateARIA(that,percent);};fluid.progress.hideElement=function(element,shouldHide){element.toggle(!shouldHide);};fluid.defaults("fluid.progress",{gradeNames:["fluid.viewComponent"],members:{displayElement:"{that}.dom.displayElement",progressBar:"{that}.dom.progressBar",label:"{that}.dom.label",indicator:"{that}.dom.indicator",ariaElement:"{that}.dom.ariaElement",storedPercent:0},events:{onProgressBegin:null,afterProgressHidden:null},listeners:{onCreate:[{this:"{that}.dom.indicator",method:"width",args:"{that}.options.minWidth"},{funcName:"fluid.progress.hideElement",args:["{that}.dom.displayElement","{that}.options.initiallyHidden"]},{funcName:"fluid.progress.initARIA",args:["{that}.ariaElement","{that}.options.strings.ariaBusyText"]}],onProgressBegin:{func:"{that}.options.showAnimation.onProgressBegin"},afterProgressHidden:{func:"{that}.options.hideAnimation.afterProgressHidden"}},invokers:{show:{funcName:"fluid.progress.showProgress",args:["{that}","{arguments}.0"]},hide:{funcName:"fluid.progress.hideProgress",args:["{that}","{arguments}.0","{arguments}.1"]},update:{funcName:"fluid.progress.updateProgress",args:["{that}","{arguments}.0","{arguments}.1","{arguments}.2"]},refreshView:{funcName:"fluid.progress.repositionIndicator",args:"{that}"}},selectors:{displayElement:".flc-progress",progressBar:".flc-progress-bar",indicator:".flc-progress-indicator",label:".flc-progress-label",ariaElement:".flc-progress-bar"}
118,strings:{ariaBusyText:"Progress is %percentComplete percent complete",ariaDoneText:"Progress is complete."},showAnimation:{params:{opacity:"show"},duration:"slow",onProgressBegin:fluid.identity},hideAnimation:{params:{opacity:"hide"},duration:"slow",afterProgressHidden:fluid.identity},minWidth:5,delay:0,speed:200,animate:"forward",initiallyHidden:true,updatePosition:false});"use strict";fluid.dom.computeAbsolutePosition=function(element){var curleft=0,curtop=0;if(element.offsetParent){do{curleft+=element.offsetLeft;curtop+=element.offsetTop;element=element.offsetParent;}while(element);return [curleft,curtop];}};fluid.dom.cleanseScripts=function(element){var cleansed=$.data(element,fluid.dom.cleanseScripts.MARKER);if(!cleansed){fluid.dom.iterateDom(element,(function(node){return node.tagName.toLowerCase()==="script"?"delete":null;}));$.data(element,fluid.dom.cleanseScripts.MARKER,true);}};fluid.dom.cleanseScripts.MARKER="fluid-scripts-cleansed";fluid.dom.insertAfter=function(newChild,refChild){var nextSib=refChild.nextSibling;if(!nextSib)refChild.parentNode.appendChild(newChild);else refChild.parentNode.insertBefore(newChild,nextSib);};fluid.dom.isWhitespaceNode=function(node){return !/[^\t\n\r ]/.test(node.data);};fluid.dom.isIgnorableNode=function(node){return node.nodeType===8||node.nodeType===3&&fluid.dom.isWhitespaceNode(node);};"use strict";fluid.orientation={HORIZONTAL:4,VERTICAL:1};fluid.rectSides={4:["left","right"],1:["top","bottom"],8:"top",12:"bottom",2:"left",3:"right"};fluid.position={BEFORE:-1,AFTER:1,INSIDE:2,REPLACE:3};fluid.direction={NEXT:1,PREVIOUS:-1,UP:8,DOWN:12,LEFT:2,RIGHT:3};fluid.directionSign=function(direction){return direction===fluid.direction.UP||direction===fluid.direction.LEFT?fluid.direction.PREVIOUS:fluid.direction.NEXT;};fluid.directionAxis=function(direction){return direction===fluid.direction.LEFT||direction===fluid.direction.RIGHT?0:1;};fluid.directionOrientation=function(direction){return fluid.directionAxis(direction)?fluid.orientation.VERTICAL:fluid.orientation.HORIZONTAL;};fluid.keycodeDirection={up:fluid.direction.UP,down:fluid.direction.DOWN,left:fluid.direction.LEFT,right:fluid.direction.RIGHT};fluid.registerNamespace("fluid.dom");fluid.dom.moveDom=function(source,target,position){source=fluid.unwrap(source);target=fluid.unwrap(target);var scan;if(position===fluid.position.INSIDE)target.appendChild(source);else if(position===fluid.position.BEFORE){for(scan=target.previousSibling;;scan=scan.previousSibling)if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);target.parentNode.insertBefore(source,target);}break;}}else if(position===fluid.position.AFTER){for(scan=target.nextSibling;;scan=scan.nextSibling)if(!scan||!fluid.dom.isIgnorableNode(scan)){if(scan!==source){fluid.dom.cleanseScripts(source);fluid.dom.insertAfter(source,target);}break;}}else fluid.fail("Unrecognised position supplied to fluid.moveDom: "+position);};fluid.dom.normalisePosition=function(position,samespan,targeti,sourcei){if(position===fluid.position.REPLACE)position=samespan&&targeti>=sourcei?fluid.position.AFTER:fluid.position.BEFORE;return position;};fluid.dom.permuteDom=function(element,target,position,sourceelements,targetelements){element=fluid.unwrap(element);target=fluid.unwrap(target);var sourcei=$.inArray(element,sourceelements);if(sourcei===-1)fluid.fail("Error in permuteDom: source element "+fluid.dumpEl(element)+" not found in source list "+fluid.dumpEl(sourceelements));var targeti=$.inArray(target,targetelements);if(targeti===-1)fluid.fail("Error in permuteDom: target element "+fluid.dumpEl(target)+" not found in source list "+fluid.dumpEl(targetelements));var samespan=sourceelements===targetelements;position=fluid.dom.normalisePosition(position,samespan,targeti,sourcei);var oldn={};oldn[fluid.position.AFTER]=element.nextSibling;oldn[fluid.position.BEFORE]=element.previousSibling;fluid.dom.moveDom(sourceelements[sourcei],targetelements[targeti],position);var frontlimit=samespan?targeti-1:sourceelements.length-2;var i;if(position===fluid.position.BEFORE&&samespan)frontlimit--;if(!samespan||targeti>sourcei){for(i=frontlimit;i>sourcei;--i)fluid.dom.moveDom(sourceelements[i+1],sourceelements[i],fluid.position.AFTER);if(sourcei+1<sourceelements.length)fluid.dom.moveDom(sourceelements[sourcei+1],oldn[fluid.position.AFTER],fluid.position.BEFORE);}var backlimit=samespan?sourcei-1:targetelements.length-1;if(position===fluid.position.AFTER)targeti++;if(!samespan||targeti<sourcei){for(i=targeti;i<backlimit;++i)fluid.dom.moveDom(targetelements[i],targetelements[i+1],fluid.position.BEFORE);if(backlimit>=0&&backlimit<targetelements.length-1)fluid.dom.moveDom(targetelements[backlimit],oldn[fluid.position.BEFORE],fluid.position.AFTER);}};var curCss=function(a,name){return window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(name):a.currentStyle[name];};fluid.dom.isAttached=function(node){while(node&&node.nodeName){if(node.nodeName==="BODY")return true;node=node.parentNode;}return false;};fluid.dom.generalHidden=function(a){return "hidden"===a.type||curCss(a,"display")==="none"||curCss(a,"visibility")==="hidden"||!fluid.dom.isAttached(a);};fluid.registerNamespace("fluid.geometricManager");fluid.geometricManager.computeGeometry=function(element,orientation,disposition){var elem={};elem.element=element;elem.orientation=orientation;if(disposition===fluid.position.INSIDE)elem.position=disposition;if(fluid.dom.generalHidden(element))elem.clazz="hidden";var pos=fluid.dom.computeAbsolutePosition(element)||[0,0];var width=element.offsetWidth;var height=element.offsetHeight;elem.rect={left:pos[0],top:pos[1]};elem.rect.right=pos[0]+width;elem.rect.bottom=pos[1]+height;return elem;};var SENTINEL_DIMENSION=1e4;fluid.geometricManager.dumprect=function(rect){return "Rect top: "+rect.top+" left: "+rect.left+" bottom: "+rect.bottom+" right: "+rect.right;};fluid.geometricManager.dumpelem=function(cacheelem){if(!cacheelem||!cacheelem.rect)return "null";else return fluid.geometricManager.dumprect(cacheelem.rect)+" position: "+cacheelem.position+" for "+fluid.dumpEl(cacheelem.element);};fluid.dropManager=function(){var targets=[];var cache={};var that={};var lastClosest;var lastGeometry;var displacementX,displacementY;that.updateGeometry=function(geometricInfo){lastGeometry=geometricInfo;targets=[];cache={};var mapper=geometricInfo.elementMapper;var geometryComputor=geometricInfo.geometryComputor||fluid.geometricManager.computeGeometry;var processElement=function(element,extent,sentB,sentF,disposition,index){var orientation=extent.orientation;var sides=fluid.rectSides[orientation];var cacheelem=geometryComputor(element,orientation,disposition);cacheelem.owner=extent;if(cacheelem.clazz!=="hidden"&&mapper)cacheelem.clazz=mapper(element);cache[fluid.dropManager.cacheKey(element)]=cacheelem;var backClass=fluid.dropManager.getRelativeClass(extent.elements,index,fluid.position.BEFORE,cacheelem.clazz,mapper);var frontClass=fluid.dropManager.getRelativeClass(extent.elements,index,fluid.position.AFTER,cacheelem.clazz,mapper);if(disposition===fluid.position.INSIDE)targets[targets.length]=cacheelem;else fluid.dropManager.splitElement(targets,sides,cacheelem,disposition,backClass,frontClass);if(sentB&&geometricInfo.sentinelize)fluid.dropManager.sentinelizeElement(targets,sides,cacheelem,1,disposition,backClass);if(sentF&&geometricInfo.sentinelize)fluid.dropManager.sentinelizeElement(targets,sides,cacheelem,0,disposition,frontClass);return cacheelem;};for(var i=0;i<geometricInfo.extents.length;++i){var thisInfo=geometricInfo.extents[i];var allHidden=true;for(var j=0;j<thisInfo.elements.length;++j){var element=thisInfo.elements[j];var cacheelem=processElement(element,thisInfo,j===0,j===thisInfo.elements.length-1,fluid.position.INT
118ERLEAVED,j);if(cacheelem.clazz!=="hidden")allHidden=false;}if(allHidden&&thisInfo.parentElement)processElement(thisInfo.parentElement,thisInfo,true,true,fluid.position.INSIDE);}fluid.dropManager.normalizeSentinels(targets);};that.startDrag=function(event,handlePos,handleWidth,handleHeight){var handleMidX=handlePos[0]+handleWidth/2;var handleMidY=handlePos[1]+handleHeight/2;var dX=handleMidX-event.pageX;var dY=handleMidY-event.pageY;that.updateGeometry(lastGeometry);lastClosest=null;displacementX=dX;displacementY=dY;$("body").on("mousemove.fluid-dropManager",that.mouseMove);};that.lastPosition=function(){return lastClosest;};that.endDrag=function(){$("body").off("mousemove.fluid-dropManager");};that.mouseMove=function(evt){var x=evt.pageX+displacementX;var y=evt.pageY+displacementY;var closestTarget=that.closestTarget(x,y,lastClosest);if(closestTarget&&closestTarget!==fluid.dropManager.NO_CHANGE){lastClosest=closestTarget;that.dropChangeFirer.fire(closestTarget);}};that.dropChangeFirer=fluid.makeEventFirer();var blankHolder={element:null};that.closestTarget=function(x,y,lastClosest){var mindistance=Number.MAX_VALUE;var minelem=blankHolder;var minlockeddistance=Number.MAX_VALUE;var minlockedelem=blankHolder;for(var i=0;i<targets.length;++i){var cacheelem=targets[i];if(cacheelem.clazz==="hidden")continue;var distance=fluid.geom.minPointRectangle(x,y,cacheelem.rect);if(cacheelem.clazz==="locked"){if(distance<minlockeddistance){minlockeddistance=distance;minlockedelem=cacheelem;}}else{if(distance<mindistance){mindistance=distance;minelem=cacheelem;}if(distance===0)break;}}if(!minelem)return minelem;if(minlockeddistance>=mindistance)minlockedelem=blankHolder;if(lastClosest&&lastClosest.position===minelem.position&&fluid.unwrap(lastClosest.element)===fluid.unwrap(minelem.element)&&fluid.unwrap(lastClosest.lockedelem)===fluid.unwrap(minlockedelem.element))return fluid.dropManager.NO_CHANGE;return {position:minelem.position,element:minelem.element,lockedelem:minlockedelem.element};};that.shuffleProjectFrom=function(element,direction,includeLocked,disableWrap){var togo=that.projectFrom(element,direction,includeLocked,disableWrap);if(togo)togo.position=fluid.position.REPLACE;return togo;};that.projectFrom=function(element,direction,includeLocked,disableWrap){that.updateGeometry(lastGeometry);var cacheelem=cache[fluid.dropManager.cacheKey(element)];var projected=fluid.geom.projectFrom(cacheelem.rect,direction,targets,includeLocked,disableWrap);if(!projected.cacheelem)return null;var retpos=projected.cacheelem.position;return {element:projected.cacheelem.element,position:retpos?retpos:fluid.position.BEFORE};};that.logicalFrom=function(element,direction,includeLocked,disableWrap){var orderables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);return {element:fluid.dropManager.getRelativeElement(element,direction,orderables,disableWrap),position:fluid.position.REPLACE};};that.lockedWrapFrom=function(element,direction,includeLocked,disableWrap){var base=that.logicalFrom(element,direction,includeLocked,disableWrap);var selectables=that.getOwningSpan(element,fluid.position.INTERLEAVED,includeLocked);var allElements=cache[fluid.dropManager.cacheKey(element)].owner.elements;if(includeLocked||selectables[0]===allElements[0])return base;var directElement=fluid.dropManager.getRelativeElement(element,direction,allElements,disableWrap);if(lastGeometry.elementMapper(directElement)==="locked"){base.element=null;base.clazz="locked";}return base;};that.getOwningSpan=function(element,position,includeLocked){var owner=cache[fluid.dropManager.cacheKey(element)].owner;var elements=position===fluid.position.INSIDE?[owner.parentElement]:owner.elements;if(!includeLocked&&lastGeometry.elementMapper){elements=fluid.makeArray(elements);fluid.remove_if(elements,(function(element){return lastGeometry.elementMapper(element)==="locked";}));}return elements;};that.geometricMove=function(element,target,position){var sourceElements=that.getOwningSpan(element,null,true);var targetElements=that.getOwningSpan(target,position,true);fluid.dom.permuteDom(element,target,position,sourceElements,targetElements);};return that;};fluid.dropManager.NO_CHANGE="no change";fluid.dropManager.cacheKey=function(element){return fluid.allocateSimpleId(element);};fluid.dropManager.sentinelizeElement=function(targets,sides,cacheelem,fc,disposition,clazz){var elemCopy=$.extend(true,{},cacheelem);elemCopy.origRect=fluid.copy(elemCopy.rect);elemCopy.rect[sides[fc]]=elemCopy.rect[sides[1-fc]]+(fc?1:-1);elemCopy.rect[sides[1-fc]]=(fc?-1:1)*SENTINEL_DIMENSION;elemCopy.position=disposition===fluid.position.INSIDE?disposition:fc?fluid.position.BEFORE:fluid.position.AFTER;elemCopy.clazz=clazz;targets[targets.length]=elemCopy;};fluid.dropManager.normalizeSentinels=function(targets){for(var i=0;i<targets.length;++i)for(var j=0;j<targets.length;++j){var ti=targets[i],tj=targets[j];var jrect=tj.origRect||tj.rect;if(ti.element!==tj.element&&ti.origRect&&fluid.geom.minRectRect(ti.rect,jrect)===0){ti.rect=ti.origRect;delete ti.origRect;}}};fluid.dropManager.splitElement=function(targets,sides,cacheelem,disposition,clazz1,clazz2){var elem1=$.extend(true,{},cacheelem);var elem2=$.extend(true,{},cacheelem);var midpoint=(elem1.rect[sides[0]]+elem1.rect[sides[1]])/2;elem1.rect[sides[1]]=midpoint;elem1.position=fluid.position.BEFORE;elem2.rect[sides[0]]=midpoint;elem2.position=fluid.position.AFTER;elem1.clazz=clazz1;elem2.clazz=clazz2;targets[targets.length]=elem1;targets[targets.length]=elem2;};fluid.dropManager.getRelativeClass=function(thisElements,index,relative,thisclazz,mapper){index+=relative;if(index<0&&thisclazz==="locked")return "locked";if(index>=thisElements.length||mapper===null)return null;else{relative=thisElements[index];return mapper(relative)==="locked"&&thisclazz==="locked"?"locked":null;}};fluid.dropManager.getRelativeElement=function(element,direction,elements,disableWrap){var folded=fluid.directionSign(direction);var index=$(elements).index(element)+folded;if(index<0)index+=elements.length;if(disableWrap)if(index===elements.length||index===elements.length+folded)return element;index%=elements.length;return elements[index];};fluid.geom=fluid.geom||{};fluid.geom.minPointRectangle=function(x,y,rectangle){var dx=x<rectangle.left?rectangle.left-x:x>rectangle.right?x-rectangle.right:0;var dy=y<rectangle.top?rectangle.top-y:y>rectangle.bottom?y-rectangle.bottom:0;return dx*dx+dy*dy;};fluid.geom.minRectRect=function(rect1,rect2){var dx=rect1.right<rect2.left?rect2.left-rect1.right:rect2.right<rect1.left?rect1.left-rect2.right:0;var dy=rect1.bottom<rect2.top?rect2.top-rect1.bottom:rect2.bottom<rect1.top?rect1.top-rect2.bottom:0;return dx*dx+dy*dy;};var makePenCollect=function(){return {mindist:Number.MAX_VALUE,minrdist:Number.MAX_VALUE};};fluid.geom.projectFrom=function(baserect,direction,targets,forSelection,disableWrap){var axis=fluid.directionAxis(direction);var frontSide=fluid.rectSides[direction];var backSide=fluid.rectSides[axis*15+5-direction];var dirSign=fluid.directionSign(direction);
118var penrect={left:(7*baserect.left+1*baserect.right)/8,right:(5*baserect.left+3*baserect.right)/8,top:(7*baserect.top+1*baserect.bottom)/8,bottom:(5*baserect.top+3*baserect.bottom)/8};penrect[frontSide]=dirSign*SENTINEL_DIMENSION;penrect[backSide]=-penrect[frontSide];function accPen(collect,cacheelem,backSign){var thisrect=cacheelem.rect;var pdist=fluid.geom.minRectRect(penrect,thisrect);var rdist=-dirSign*backSign*(baserect[backSign===1?frontSide:backSide]-thisrect[backSign===1?backSide:frontSide]);if(pdist<=collect.mindist&&rdist>=0){if(pdist===collect.mindist&&rdist*backSign>collect.minrdist)return;collect.minrdist=rdist*backSign;collect.mindist=pdist;collect.minelem=cacheelem;}}var collect=makePenCollect();var backcollect=makePenCollect();var lockedcollect=makePenCollect();for(var i=0;i<targets.length;++i){var elem=targets[i];var isPure=elem.owner&&elem.element===elem.owner.parentElement;if(elem.clazz==="hidden"||forSelection&&isPure)continue;else if(!forSelection&&elem.clazz==="locked")accPen(lockedcollect,elem,1);else{accPen(collect,elem,1);accPen(backcollect,elem,-1);}}var wrap=!collect.minelem||backcollect.mindist<collect.mindist;wrap=wrap&&!disableWrap;var mincollect=wrap?backcollect:collect;var togo={wrapped:wrap,cacheelem:mincollect.minelem};if(lockedcollect.mindist<mincollect.mindist)togo.lockedelem=lockedcollect.minelem;return togo;};"use strict";fluid.registerNamespace("fluid.reorderer");fluid.reorderer.defaultAvatarCreator=function(item,cssClass,dropWarning){fluid.dom.cleanseScripts(fluid.unwrap(item));var avatar=$(item).clone();fluid.dom.iterateDom(avatar.get(0),(function(node){node.removeAttribute("id");if(node.tagName.toLowerCase()==="input")node.setAttribute("disabled","disabled");}));avatar.removeProp("id");avatar.removeClass("ui-droppable");avatar.addClass(cssClass);if(dropWarning){var avatarContainer=$(document.createElement("div"));avatarContainer.append(avatar);avatarContainer.append(dropWarning);avatar=avatarContainer;}$("body").append(avatar);if(!$.browser.safari)avatar.css("display","block").width(item.offsetWidth).height(item.offsetHeight);if($.browser.opera)avatar.hide();return avatar;};fluid.reorderer.bindHandlersToContainer=function(container,keyDownHandler,keyUpHandler){var actualKeyDown=keyDownHandler;var advancedPrevention=false;if($.browser.opera){container.on("keypress",(function(evt){if(advancedPrevention){advancedPrevention=false;evt.preventDefault();return false;}}));actualKeyDown=async function(evt){var oldret=await keyDownHandler(evt);if(oldret===false)advancedPrevention=true;};}container.on("keydown",actualKeyDown);container.on("keyup",keyUpHandler);};fluid.reorderer.addRolesToContainer=function(that){that.container.attr("role",that.options.containerRole.container);that.container.attr("aria-multiselectable","false");that.container.attr("aria-readonly","false");that.container.attr("aria-disabled","false");};fluid.reorderer.createAvatarId=function(parentId){return parentId+"_avatar";};fluid.reorderer.keys={TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:19,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,i:73,j:74,k:75,m:77};fluid.reorderer.defaultKeysets=[{modifier:function(evt){return evt.ctrlKey;},up:fluid.reorderer.keys.UP,down:fluid.reorderer.keys.DOWN,right:fluid.reorderer.keys.RIGHT,left:fluid.reorderer.keys.LEFT},{modifier:function(evt){return evt.ctrlKey;},up:fluid.reorderer.keys.i,down:fluid.reorderer.keys.m,right:fluid.reorderer.keys.k,left:fluid.reorderer.keys.j}];fluid.reorderer.keysetsPolicy=function(target,source){var value=source?source:target;return fluid.makeArray(value);};fluid.reorderer.copyDropWarning=function(dropWarning){return dropWarning?dropWarning.clone():dropWarning;};fluid.defaults("fluid.reorderer",{gradeNames:["fluid.viewComponent"],styles:{defaultStyle:"fl-reorderer-movable-default",selected:"fl-reorderer-movable-selected",dragging:"fl-reorderer-movable-dragging",mouseDrag:"fl-reorderer-movable-dragging",hover:"fl-reorderer-movable-hover",dropMarker:"fl-reorderer-dropMarker",avatar:"fl-reorderer-avatar"},selectors:{dropWarning:".flc-reorderer-dropWarning",movables:".flc-reorderer-movable",selectables:".flc-reorderer-movable",dropTargets:".flc-reorderer-movable",grabHandle:""},avatarCreator:fluid.reorderer.defaultAvatarCreator,keysets:fluid.reorderer.defaultKeysets,containerRole:"{that}.layoutHandler.options.containerRole",selectablesTabindex:"{that}.layoutHandler.options.selectablesTabindex",layoutHandler:"fluid.listLayoutHandler",members:{dom:"@expand:fluid.createLocalContainerDomBinder({that}.container, {that}.options.selectors)",dropManager:"@expand:fluid.dropManager()",activeItem:null,kbDropWarning:"{that}.dom.dropWarning",mouseDropWarning:"@expand:fluid.reorderer.copyDropWarning({that}.kbDropWarning)"},events:{onShowKeyboardDropWarning:null,onSelect:null,onBeginMove:"preventable",onMove:null,afterMove:null,onHover:null,onRefresh:null},listeners:{onCreate:[{namespace:"bindKeyHandlers",funcName:"fluid.reorderer.bindHandlersToContainer",args:["{that}.container","{that}.handleKeyDown","{that}.handleKeyUp"]},{namespace:"addContainerRoles",funcName:"fluid.reorderer.addRolesToContainer",args:"{that}"},{namespace:"makeTabbable",funcName:"fluid.tabbable",args:"{that}.container"},{namespace:"processAfterMoveCallback",funcName:"fluid.reorderer.processAfterMoveCallbackUrl",args:"{that}"},"{that}.refresh"],onRefresh:{listener:"fluid.reorderer.initItems",args:"{that}",priority:-1e3},onHover:{funcName:"fluid.reorderer.hoverStyleHandler",args:["{that}.dom","{that}.options.styles","{arguments}.0","{arguments}.1"]}},invokers:{changeSelectedToDefault:{funcName:"fluid.reorderer.changeSelectedToDefault",args:["{arguments}.0","{that}.options.styles"]},setDropEffects:{funcName:"fluid.reorderer.setDropEffects",args:["{that}.dom","{arguments}.0"]},createDropMarker:{funcName:"fluid.reorderer.createDropMarker",args:["{arguments}.0","{that}.options.styles.dropMarker"]},refresh:{funcName:"fluid.reorderer.refresh",args:["{that}.dom","{that}.events","{that}.selectableContext","{that}.activeItem"]},selectItem:{funcName:"fluid.reorderer.selectItem",args:["{that}","{arguments}.0"]},initSelectables:{funcName:"fluid.reorderer.initSelectables",args:["{that}"]},initMovable:{funcName:"fluid.reorderer.initMovable",args:["{that}","{that}.dropManager","{arguments}.0"]},isMove:{funcName:"fluid.reorderer.isMove",args:["{that}.options.keysets","{arguments}.0"]},isActiveItemMovable:{funcName:"fluid.reorderer.isActiveItemMovable",args:["{that}.activeItem","{that}.dom"]}
118,handleKeyDown:{funcName:"fluid.reorderer.handleKeyDown",args:["{that}","{that}.options.styles","{arguments}.0"]},handleDirectionKeyDown:{funcName:"fluid.reorderer.handleDirectionKeyDown",args:["{that}","{arguments}.0"]},handleKeyUp:{funcName:"fluid.reorderer.handleKeyUp",args:["{that}","{that}.options.styles","{arguments}.0"]},requestMovement:{funcName:"fluid.reorderer.requestMovement",args:["{that}","{arguments}.0","{arguments}.1"]}},mergePolicy:{keysets:fluid.reorderer.keysetsPolicy,"selectors.labelSource":"selectors.grabHandle","selectors.selectables":"selectors.movables","selectors.dropTargets":"selectors.movables"},components:{layoutHandler:{type:"{that}.options.layoutHandler",container:"{reorderer}.container"},labeller:{type:"fluid.reorderer.labeller",options:{members:{dom:"{reorderer}.dom"},getGeometricInfo:"{reorderer}.layoutHandler.getGeometricInfo",orientation:"{reorderer}.layoutHandler.options.orientation",layoutType:"{reorderer}.options.layoutHandler"}}},disableWrap:false});fluid.reorderer.noModifier=function(evt){return !evt.ctrlKey&&!evt.altKey&&!evt.shiftKey&&!evt.metaKey;};fluid.reorderer.isMove=function(keysets,evt){for(var i=0;i<keysets.length;i++)if(keysets[i].modifier(evt))return true;return false;};fluid.reorderer.isActiveItemMovable=function(activeItem,dom){return $.inArray(activeItem,dom.fastLocate("movables"))>=0;};fluid.reorderer.handleKeyDown=async function(thatReorderer,styles,evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target)return true;var jActiveItem=$(thatReorderer.activeItem);if(!jActiveItem.hasClass(styles.dragging)&&thatReorderer.isMove(evt)){if(thatReorderer.isActiveItemMovable()){jActiveItem.removeClass(styles.selected);jActiveItem.addClass(styles.dragging);jActiveItem.attr("aria-grabbed","true");thatReorderer.setDropEffects("move");}return false;}return thatReorderer.handleDirectionKeyDown(evt);};fluid.reorderer.handleDirectionKeyDown=async function(thatReorderer,evt){var item=thatReorderer.activeItem;if(!item)return true;var keysets=thatReorderer.options.keysets;for(var i=0;i<keysets.length;i++){var keyset=keysets[i];var keydir=fluid.keyForValue(keyset,evt.keyCode);if(!keydir)continue;var isMovement=keyset.modifier(evt);var dirnum=fluid.keycodeDirection[keydir];var relativeItem=thatReorderer.layoutHandler.getRelativePosition(item,dirnum,!isMovement);if(!relativeItem)continue;if(isMovement){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false)return false;var kbDropWarning=thatReorderer.kbDropWarning;if(kbDropWarning.length>0)if(relativeItem.clazz==="locked"){thatReorderer.events.onShowKeyboardDropWarning.fire(item,kbDropWarning);kbDropWarning.show();}else kbDropWarning.hide();if(relativeItem.element)thatReorderer.requestMovement(relativeItem,item);}else{if(fluid.reorderer.noModifier(evt)){await fluid.blur(item);await fluid.focus(relativeItem.element);}}return false;}return true;};fluid.reorderer.handleKeyUp=function(thatReorderer,styles,evt){if(!thatReorderer.activeItem||thatReorderer.activeItem!==evt.target)return true;var jActiveItem=$(thatReorderer.activeItem);if(jActiveItem.hasClass(styles.dragging)&&!thatReorderer.isMove(evt)){if(thatReorderer.kbDropWarning)thatReorderer.kbDropWarning.hide();jActiveItem.removeClass(styles.dragging);jActiveItem.addClass(styles.selected);jActiveItem.attr("aria-grabbed","false");thatReorderer.setDropEffects("none");return false;}return false;};fluid.reorderer.requestMovement=async function(thatReorderer,requestedPosition,item){item=fluid.unwrap(item);if(!requestedPosition||fluid.unwrap(requestedPosition.element)===item)return;var activeItem=$(thatReorderer.activeItem);activeItem.off("blur.fluid.reorderer");thatReorderer.events.onMove.fire(item,requestedPosition);thatReorderer.dropManager.geometricMove(item,requestedPosition.element,requestedPosition.position);await fluid.focus(activeItem);thatReorderer.refresh();thatReorderer.dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());thatReorderer.events.afterMove.fire(item,requestedPosition,thatReorderer.dom.fastLocate("movables"));};fluid.reorderer.hoverStyleHandler=function(dom,styles,item,state){dom.fastLocate("grabHandle",item)[state?"addClass":"removeClass"](styles.hover);};fluid.reorderer.processAfterMoveCallbackUrl=function(thatReorderer){var options=thatReorderer.options;if(options.afterMoveCallbackUrl)thatReorderer.events.afterMove.addListener((function(){var layoutHandler=thatReorderer.layoutHandler;var model=layoutHandler.getModel?layoutHandler.getModel():options.acquireModel(thatReorderer);$.post(options.afterMoveCallbackUrl,JSON.stringify(model));}),"postModel");};fluid.reorderer.setDropEffects=function(dom,value){dom.fastLocate("dropTargets").attr("aria-dropeffect",value);};fluid.reorderer.createDropMarker=function(tagName,dropClass){var dropMarker=$(document.createElement(tagName));dropMarker.addClass(dropClass);dropMarker.hide();return dropMarker;};fluid.reorderer.changeSelectedToDefault=function(jItem,styles){jItem.removeClass(styles.selected);jItem.removeClass(styles.dragging);jItem.addClass(styles.defaultStyle);jItem.attr("aria-selected","false");};fluid.reorderer.initSelectables=function(thatReorderer){var handleBlur=function(evt){thatReorderer.changeSelectedToDefault($(this));return evt.stopPropagation();};var handleFocus=function(evt){thatReorderer.selectItem(this);return evt.stopPropagation();};var handleClick=async function(evt){var handle=fluid.unwrap(thatReorderer.dom.fastLocate("grabHandle",this));if(handle.contains(evt.target))await fluid.focus(this);};var selectables=thatReorderer.dom.fastLocate("selectables");for(var i=0;i<selectables.length;++i){var selectable=$(selectables[i]);if(!$.data(selectable[0],"fluid.reorderer.selectable-initialised")){selectable.addClass(thatReorderer.options.styles.defaultStyle);selectable.on("blur.fluid.reorderer",handleBlur);selectable.on("focus",handleFocus);selectable.on("click",handleClick);selectable.attr("role",thatReorderer.options.containerRole.item);selectable.attr("aria-selected","false");selectable.attr("aria-disabled","false");$.data(selectable[0],"fluid.reorderer.selectable-initialised",true);}}if(!thatReorderer.selectableContext)thatReorderer.selectableContext=fluid.selectable(thatReorderer.container,{selectableElements:selectables,selectablesTabindex:thatReorderer.options.selectablesTabindex,direction:null});};fluid.reorderer.selectItem=function(thatReorderer,anItem){thatReorderer.events.onSelect.fire(anItem);if(thatReorderer.activeItem&&thatReorderer.activeItem!==anItem)thatReorderer.changeSelectedToDefault($(thatReorderer.activeItem));thatReorderer.activeItem=anItem;var jItem=$(anItem);var styles=thatReorderer.options.styles;jItem.removeClass(styles.defaultStyle);jItem.addClass(styles.selected);jItem.attr("aria-selected","true");};fluid.reorderer.initMovable=function(thatReorderer,dropManager,item){var options=thatReorderer.options;var styles=options.styles;item.attr("aria-grabbed","false");item.on("mouseover",(function(){thatReorderer.events.onHover.fire(item,true);}));item.on("mouseout",(function(){thatReorderer.events.onHover.fire(item,fal
118se);}));var avatar;var handle=thatReorderer.dom.fastLocate("grabHandle",item);item.draggable({refreshPositions:false,scroll:true,helper:function(){var dropWarningEl;if(thatReorderer.mouseDropWarning)dropWarningEl=thatReorderer.mouseDropWarning[0];avatar=$(options.avatarCreator(item[0],styles.avatar,dropWarningEl));avatar.prop("id",fluid.reorderer.createAvatarId(thatReorderer.container.id));return avatar;},start:function(e){var prevent=thatReorderer.events.onBeginMove.fire(item);if(prevent===false)return false;var handle=thatReorderer.dom.fastLocate("grabHandle",item)[0];var handlePos=fluid.dom.computeAbsolutePosition(handle);var handleWidth=handle.offsetWidth;var handleHeight=handle.offsetHeight;fluid.focus(item);item.removeClass(options.styles.selected);item.addClass(options.styles.mouseDrag);item.attr("aria-grabbed","true");thatReorderer.setDropEffects("move");dropManager.startDrag(e,handlePos,handleWidth,handleHeight);avatar.show();},stop:async function(e,ui){item.removeClass(options.styles.mouseDrag);item.addClass(options.styles.selected);$(thatReorderer.activeItem).attr("aria-grabbed","false");var markerNode=fluid.unwrap(thatReorderer.dropMarker);if(markerNode.parentNode)markerNode.parentNode.removeChild(markerNode);avatar.hide();ui.helper=null;thatReorderer.setDropEffects("none");dropManager.endDrag();await thatReorderer.requestMovement(dropManager.lastPosition(),item);await fluid.focus(thatReorderer.activeItem);},handle:fluid.unwrap(handle)===fluid.unwrap(item)?null:handle});};fluid.reorderer.initItems=function(thatReorderer){var movables=thatReorderer.dom.fastLocate("movables");var dropTargets=thatReorderer.dom.fastLocate("dropTargets");thatReorderer.initSelectables();for(var i=0;i<movables.length;i++){var item=movables[i];if(!$.data(item,"fluid.reorderer.movable-initialised")){thatReorderer.initMovable($(item));$.data(item,"fluid.reorderer.movable-initialised",true);}}if(movables.length>0&&!thatReorderer.dropMarker)thatReorderer.dropMarker=thatReorderer.createDropMarker(movables[0].tagName);thatReorderer.dropManager.updateGeometry(thatReorderer.layoutHandler.getGeometricInfo());var dropChangeListener=function(dropTarget){fluid.dom.moveDom(thatReorderer.dropMarker,dropTarget.element,dropTarget.position);thatReorderer.dropMarker.css("display","");if(thatReorderer.mouseDropWarning)if(dropTarget.lockedelem)thatReorderer.mouseDropWarning.show();else thatReorderer.mouseDropWarning.hide();};thatReorderer.dropManager.dropChangeFirer.addListener(dropChangeListener,"fluid.reorderer");dropTargets.attr("aria-dropeffect","none");};fluid.reorderer.refresh=function(dom,events,selectableContext,activeItem){dom.refresh("movables");dom.refresh("selectables");dom.refresh("grabHandle",dom.fastLocate("movables"));dom.refresh("dropTargets");if(selectableContext){selectableContext.selectables=dom.fastLocate("selectables");selectableContext.selectablesUpdated(activeItem);}events.onRefresh.fire();};fluid.reorderer.roles={GRID:{container:"grid",item:"gridcell"},LIST:{container:"list",item:"listitem"},REGIONS:{container:"main",item:"article"}};fluid.defaults("fluid.reorderList",{gradeNames:["fluid.reorderer"],layoutHandler:"fluid.listLayoutHandler"});fluid.defaults("fluid.reorderGrid",{gradeNames:["fluid.reorderer"],layoutHandler:"fluid.gridLayoutHandler"});fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY="shuffleProjectFrom";fluid.reorderer.GEOMETRIC_STRATEGY="projectFrom";fluid.reorderer.LOGICAL_STRATEGY="logicalFrom";fluid.reorderer.WRAP_LOCKED_STRATEGY="lockedWrapFrom";fluid.reorderer.NO_STRATEGY=null;fluid.reorderer.relativeInfoGetter=function(orientation,coStrategy,contraStrategy,dropManager,disableWrap){return function(item,direction,forSelection){var dirorient=fluid.directionOrientation(direction);var strategy=dirorient===orientation?coStrategy:contraStrategy;return strategy!==null?dropManager[strategy](item,direction,forSelection,disableWrap):null;};};fluid.reorderer.makeGeometricInfoGetter=function(orientation,sentinelize,dom){var that={sentinelize,extents:[{orientation,elements:dom.fastLocate("dropTargets")}],elementMapper:function(element){return $.inArray(element,dom.fastLocate("movables"))===-1?"locked":null;},elementIndexer:function(element){var selectables=dom.fastLocate("selectables");return {elementClass:that.elementMapper(element),index:$.inArray(element,selectables),length:selectables.length};}};return that;};fluid.defaults("fluid.layoutHandler",{gradeNames:["fluid.viewComponent"],disableWrap:"{reorderer}.options.disableWrap",members:{reordererDom:"{reorderer}.dom",dropManager:"{reorderer}.dropManager"},invokers:{getGeometricInfo:"fluid.reorderer.makeGeometricInfoGetter({that}.options.orientation, {that}.options.sentinelize, {that}.reordererDom)"}});fluid.defaults("fluid.listLayoutHandler",{gradeNames:["fluid.layoutHandler"],orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.LIST,selectablesTabindex:-1,sentinelize:true,members:{getRelativePosition:{expander:{funcName:"fluid.reorderer.relativeInfoGetter",args:["{that}.options.orientation",fluid.reorderer.LOGICAL_STRATEGY,null,"{that}.dropManager","{that}.options.disableWrap"]}}}});fluid.defaults("fluid.gridLayoutHandler",{gradeNames:["fluid.layoutHandler"],orientation:fluid.orientation.HORIZONTAL,containerRole:fluid.reorderer.roles.GRID,selectablesTabindex:-1,sentinelize:false,coStrategy:"@expand:fluid.gridLayoutHandler.computeCoStrategy({that}.options.disableWrap)",members:{getRelativePosition:{expander:{funcName:"fluid.reorderer.relativeInfoGetter",args:["{that}.options.orientation","{that}.options.coStrategy",fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY,"{that}.dropManager","{that}.options.disableWrap"]}}}});fluid.gridLayoutHandler.computeCoStrategy=function(disableWrap){return disableWrap?fluid.reorderer.SHUFFLE_GEOMETRIC_STRATEGY:fluid.reorderer.LOGICAL_STRATEGY;};fluid.defaults("fluid.reorderer.labeller",{gradeNames:["fluid.component"],members:{movedMap:{},moduleCell:{expander:{funcName:"fluid.reorderer.labeller.computeModuleCell",args:["{that}.resolver","{that}.options.orientation"]}},layoutType:{expander:{funcName:"fluid.computeNickName",args:"{that}.options.layoutType"}},positionTemplate:{expander:{funcName:"fluid.reorderer.labeller.computePositionTemplate",args:["{that}.resolver","{that}.layoutType"]}}}
118,strings:{overallTemplate:"%recentStatus %item %position %movable",position:"%index of %length",position_moduleLayoutHandler:"%index of %length in %moduleCell %moduleIndex of %moduleLength",moduleCell_0:"row",moduleCell_1:"column",movable:"movable",fixed:"fixed",recentStatus:"moved from position %position"},components:{resolver:{type:"fluid.messageResolver",options:{messageBase:"{labeller}.options.strings"}}},invokers:{renderLabel:{funcName:"fluid.reorderer.labeller.renderLabel",args:["{labeller}","{arguments}.0","{arguments}.1"]}},listeners:{"{reorderer}.events.onRefresh":{listener:"fluid.reorderer.labeller.onRefresh",args:"{that}"},"{reorderer}.events.onMove":{listener:"fluid.reorderer.labeller.onMove",args:["{that}","{arguments}.0","{arguments}.1"]}}});fluid.reorderer.labeller.computeModuleCell=function(resolver,orientation){return resolver.resolve("moduleCell_"+orientation);};fluid.reorderer.labeller.computePositionTemplate=function(resolver,layoutType){return resolver.lookup(["position_"+layoutType,"position"]);};fluid.reorderer.labeller.onRefresh=function(that){var selectables=that.dom.locate("selectables");var movedMap=that.movedMap;fluid.each(selectables,(function(selectable){var labelOptions={};var id=fluid.allocateSimpleId(selectable);var moved=movedMap[id];var label=that.renderLabel(selectable);var plainLabel=label;if(moved){moved.newRender=plainLabel;label=that.renderLabel(selectable,moved.oldRender.position);$(selectable).one("focusout.ariaLabeller",(function(){if(movedMap[id]){var oldLabel=movedMap[id].newRender.label;delete movedMap[id];fluid.updateAriaLabel(selectable,oldLabel);}}));labelOptions.dynamicLabel=true;}fluid.updateAriaLabel(selectable,label.label,labelOptions);}));};fluid.reorderer.labeller.onMove=function(that,item){fluid.clear(that.movedMap);$(item).off("focusout.ariaLabeller");var movingId=fluid.allocateSimpleId(item);that.movedMap[movingId]={oldRender:that.renderLabel(item)};};fluid.reorderer.indexRebaser=function(indices){indices.index++;if(indices.moduleIndex!==undefined)indices.moduleIndex++;return indices;};fluid.reorderer.labeller.renderLabel=function(that,selectable,recentPosition){var geom=that.options.getGeometricInfo();var indices=fluid.reorderer.indexRebaser(geom.elementIndexer(selectable));indices.moduleCell=that.moduleCell;var elementClass=geom.elementMapper(selectable);var labelSource=that.dom.locate("labelSource",selectable);var recentStatus;if(recentPosition)recentStatus=that.resolver.resolve("recentStatus",{position:recentPosition});var topModel={item:typeof labelSource==="string"?labelSource:fluid.unwrap(labelSource).innerText,position:that.positionTemplate.resolveFunc(that.positionTemplate.template,indices),movable:that.resolver.resolve(elementClass==="locked"?"fixed":"movable"),recentStatus:recentStatus||""};var template=that.resolver.lookup(["overallTemplate"]);var label=template.resolveFunc(template.template,topModel);return {position:topModel.position,label};};"use strict";fluid.registerNamespace("fluid.reorderImages");fluid.reorderImages.deriveLightboxCellBase=function(namebase,index){return namebase+"lightbox-cell:"+index+":";};fluid.reorderImages.addThumbnailActivateHandler=function(container){var enterKeyHandler=function(evt){if(evt.which===fluid.reorderer.keys.ENTER){var thumbnailAnchors=$("a",evt.target);document.location=thumbnailAnchors.attr("href");}};container.keypress(enterKeyHandler);};fluid.reorderImages.seekNodesById=function(rootnode,tagname,idmatch){var inputs=rootnode.getElementsByTagName(tagname);var togo=[];for(var i=0;i<inputs.length;i+=1){var input=inputs[i];var id=input.id;if(id&&id.match(idmatch))togo.push(input);}return togo;};fluid.reorderImages.createImageCellFinder=function(parentNode,containerId){containerId=containerId||parentNode.prop("id");parentNode=fluid.unwrap(parentNode);var lightboxCellNamePattern="^"+fluid.reorderImages.deriveLightboxCellBase(containerId,"[0-9]+")+"$";return function(){return fluid.reorderImages.seekNodesById(parentNode,"div",lightboxCellNamePattern);};};fluid.reorderImages.seekForm=function(container){return fluid.findAnce
118stor(container,(function(element){return $(element).is("form");}));};fluid.reorderImages.seekInputs=function(container,reorderform){return fluid.reorderImages.seekNodesById(reorderform,"input","^"+fluid.reorderImages.deriveLightboxCellBase(container.prop("id"),"[^:]*")+"reorder-index$");};fluid.reorderImages.mapIdsToNames=function(container,reorderform){var inputs=fluid.reorderImages.seekInputs(container,reorderform);for(var i=0;i<inputs.length;i++){var input=inputs[i];var name=input.name;input.name=name||input.id;}};fluid.reorderImages.createIDAfterMoveListener=function(container){var reorderform=fluid.reorderImages.seekForm(container);fluid.reorderImages.mapIdsToNames(container,reorderform);return function(){var inputs,i;inputs=fluid.reorderImages.seekInputs(container,reorderform);for(i=0;i<inputs.length;i+=1)inputs[i].value=i;if(reorderform&&reorderform.action){var order=$(reorderform).serialize();$.post(reorderform.action,order,(function(){}));}};};fluid.defaults("fluid.reorderImages",{gradeNames:["fluid.reorderer"],layoutHandler:"fluid.gridLayoutHandler",listeners:{"afterMove.postModel":{expander:{funcName:"fluid.reorderImages.createIDAfterMoveListener",args:"{that}.container"}}},selectors:{movables:{expander:{funcName:"fluid.reorderImages.createImageCellFinder",args:"{that}.container"}},labelSource:".flc-reorderer-imageTitle"}});"use strict";fluid.registerNamespace("fluid.moduleLayout");fluid.moduleLayout.findColumnAndItemIndices=function(item,layout){return fluid.find(layout.columns,(function(column,colIndex){var index=$.inArray(item,column.elements);return index===-1?undefined:{columnIndex:colIndex,itemIndex:index};}),{columnIndex:-1,itemIndex:-1});};fluid.moduleLayout.findColIndex=function(item,layout){return fluid.find(layout.columns,(function(column,colIndex){return item===column.container?colIndex:undefined;}),-1);};fluid.moduleLayout.updateLayout=function(item,target,position,layout){item=fluid.unwrap(item);target=fluid.unwrap(target);var itemIndices=fluid.moduleLayout.findColumnAndItemIndices(item,layout);layout.columns[itemIndices.columnIndex].elements.splice(itemIndices.itemIndex,1);var targetCol;if(position===fluid.position.INSIDE){targetCol=layout.columns[fluid.moduleLayout.findColIndex(target,layout)].elements;targetCol.splice(targetCol.length,0,item);}else{var relativeItemIndices=fluid.moduleLayout.findColumnAndItemIndices(target,layout);targetCol=layout.columns[relativeItemIndices.columnIndex].elements;position=fluid.dom.normalisePosition(position,itemIndices.columnIndex===relativeItemIndices.columnIndex,relativeItemIndices.itemIndex,itemIndices.itemIndex);var relative=position===fluid.position.BEFORE?0:1;targetCol.splice(relativeItemIndices.itemIndex+relative,0,item);}};fluid.moduleLayout.layoutFromFlat=function(container,columns,portlets){var layout={};layout.container=container;layout.columns=fluid.transform(columns,(function(column){return {container:column,elements:fluid.makeArray(portlets.filter((function(){return column.contains(this);})))};}));return layout;};fluid.moduleLayout.layoutFromIds=function(idLayout){return {container:fluid.byId(idLayout.id),columns:fluid.transform(idLayout.columns,(function(column){return {container:fluid.byId(column.id),elements:fluid.transform(column.children,fluid.byId)};}))};};fluid.moduleLayout.layoutToIds=function(idLayout){return {id:fluid.getId(idLayout.container),columns:fluid.transform(idLayout.columns,(function(column){return {id:fluid.getId(column.container),children:fluid.transform(column.elements,fluid.getId)};}))};};fluid.moduleLayout.defaultOnShowKeyboardDropWarning=function(item,dropWarning){if(dropWarning){var offset=$(item).offset();dropWarning=$(dropWarning);dropWarning.css("position","absolute");dropWarning.css("top",offset.top);dropWarning.css("left",offset.left);}};fluid.defaults("fluid.moduleLayoutHandler",{gradeNames:["fluid.layoutHandler"],orientation:fluid.orientation.VERTICAL,containerRole:fluid.reorderer.roles.REGIONS,selectablesTabindex:-1,sentinelize:true,events:{onMove:"{reorderer}.events.onMove",onRefresh:"{reorderer}.events.onRefresh",onShowKeyboardDropWarning:"{reorderer}.events.onShowKeyboardDropWarning"},listeners:{"onShowKeyboardDropWarning.setPosition":"fluid.moduleLayout.defaultOnShowKeyboardDropWarning",onRefresh:{priority:"first",listener:"{that}.computeLayout"},onMove:{priority:"last",listener:"fluid.moduleLayout.onMoveListener",args:["{arguments}.0","{arguments}.1","{that}.layout"]}},members:{layout:{expander:{func:"{that}.computeLayout"}},getRelativePosition:{expander:{funcName:"fluid.reorderer.relativeInfoGetter",args:["{that}.options.orientation",fluid.reorderer.WRAP_LOCKED_STRATEGY,fluid.reorderer.GEOMETRIC_STRATEGY,"{that}.dropManager","{that}.options.disableWrap"]}}},invokers:{computeLayout:{funcName:"fluid.moduleLayout.computeLayout",args:["{that}","{reorderer}.options.selectors.modules","{that}.dom"]}
118,computeModules:{funcName:"fluid.moduleLayout.computeModules",args:["{that}.layout","{that}.isLocked","{arguments}.0"]},makeComputeModules:{funcName:"fluid.moduleLayout.makeComputeModules",args:["{that}","{arguments}.0"]},isLocked:{funcName:"fluid.moduleLayout.isLocked",args:["{arguments}.0","{reorderer}.options.selectors.lockedModules","{that}.reordererDom"]},getGeometricInfo:"fluid.moduleLayout.getGeometricInfo({that})",getModel:"fluid.moduleLayout.getModel({that})"},selectors:{modules:"{reorderer}.options.selectors.modules",columns:"{reorderer}.options.selectors.columns"},distributeOptions:{target:"{reorderer}.options",record:{selectors:{movables:{expander:{func:"{that}.makeComputeModules",args:[false]}},dropTargets:{expander:{func:"{that}.makeComputeModules",args:[false]}},selectables:{expander:{func:"{that}.makeComputeModules",args:[true]}}}}}});fluid.moduleLayout.getGeometricInfo=function(that){var options=that.options;var extents=[];var togo={extents,sentinelize:options.sentinelize};togo.elementMapper=function(element){return that.isLocked(element)?"locked":null;};togo.elementIndexer=function(element){var indices=fluid.moduleLayout.findColumnAndItemIndices(element,that.layout);return {index:indices.itemIndex,length:that.layout.columns[indices.columnIndex].elements.length,moduleIndex:indices.columnIndex,moduleLength:that.layout.columns.length};};for(var col=0;col<that.layout.columns.length;col++){var column=that.layout.columns[col];var thisEls={orientation:options.orientation,elements:fluid.makeArray(column.elements),parentElement:column.container};extents.push(thisEls);}return togo;};fluid.moduleLayout.getModel=function(that){return fluid.moduleLayout.layoutToIds(that.layout);};fluid.moduleLayout.computeLayout=function(that,modulesSelector,dom){var togo;if(modulesSelector)togo=fluid.moduleLayout.layoutFromFlat(that.container,dom.locate("columns"),dom.locate("modules"));if(!togo){var idLayout=fluid.get(that.options,"moduleLayout.layout");togo=fluid.moduleLayout.layoutFromIds(idLayout);}that.layout=togo;return togo;};fluid.moduleLayout.computeModules=function(layout,isLocked,all){var modules=layout.columns.reduce((function(list,column){return list.concat(column.elements);}),[]);if(!all)fluid.remove_if(modules,isLocked);return modules;};fluid.moduleLayout.makeComputeModules=function(that,all){return function(){return that.computeModules(all);};};fluid.moduleLayout.isLocked=function(item,lockedModulesSelector,dom){var lockedModules=lockedModulesSelector?dom.fastLocate("lockedModules"):[];return $.inArray(item,lockedModules)!==-1;};fluid.moduleLayout.onMoveListener=function(item,requestedPosition,layout){fluid.moduleLayout.updateLayout(item,requestedPosition.element,requestedPosition.position,layout);};"use strict";fluid.reorderLayout=function(container,userOptions){var assembleOptions={layoutHandler:"fluid.moduleLayoutHandler",selectors:{columns:".flc-reorderer-column",modules:".flc-reorderer-module"}};var options=$.extend(true,assembleOptions,userOptions);return fluid.reorderer(container,options);};"use strict";fluid.defaults("fluid.slidingPanel",{gradeNames:["fluid.viewComponent"],selectors:{panel:".flc-slidingPanel-panel",toggleButton:".flc-slidingPanel-toggleButton",toggleButtonLabel:".flc-slidingPanel-toggleButton"},strings:{showText:"show",hideText:"hide",panelLabel:"panel"},events:{onPanelHide:null,onPanelShow:null,afterPanelHide:null,afterPanelShow:null},listeners:{"onCreate.bindClick":{this:"{that}.dom.toggleButton",method:"on",args:["click","{that}.togglePanel"]},"onCreate.bindModelChange":{listener:"{that}.applier.modelChanged.addListener",args:["isShowing","{that}.refreshView"]},"onCreate.setAriaProps":"{that}.setAriaProps","onCreate.setInitialState":{listener:"{that}.refreshView"},"onPanelHide.setText":{this:"{that}.dom.toggleButtonLabel",method:"text",args:["{that}.options.strings.showText"],priority:"first"},"onPanelHide.setAriaLabel":{this:"{that}.dom.toggleButtonLabel",method:"attr",args:["aria-label","{that}.options.strings.showTextAriaLabel"]},"onPanelShow.setText":{this:"{that}.dom.toggleButtonLabel",method:"text",args:["{that}.options.strings.hideText"],priority:"first"},"onPanelShow.setAriaLabel":{this:"{that}.dom.toggleButtonLabel",method:"attr",args:["aria-label","{that}.options.strings.hideTextAriaLabel"]},"onPanelHide.operate":{listener:"{that}.operateHide"},"onPanelShow.operate":{listener:"{that}.operateShow"},"onCreate.setAriaStates":"{that}.setAriaStates"},members:{panelId:{expander:{funcName:"fluid.allocateSimpleId",args:"{that}.dom.panel"}}},model:{isShowing:false},modelListeners:{isShowing:{funcName:"{that}.setAriaStates",excludeSource:"init"}},invokers:{operateHide:{this:"{that}.dom.panel",method:"slideUp",args:["{that}.options.animationDurations.hide","{that}.events.afterPanelHide.fire"]},operateShow:{this:"{that}.dom.panel",method:"slideDown",args:["{that}.options.animationDurations.show","{that}.events.afterPanelShow.fire"]},hidePanel:{func:"{that}.applier.change",args:["isShowing",false]},showPanel:{func:"{that}.applier.change",args:["isShowing",true]},setAriaStates:{funcName:"fluid.slidingPanel.setAriaStates",args:["{that}","{that}.model.isShowing"]},setAriaProps:{funcName:"fluid.slidingPanel.setAriaProperties",args:["{that}","{that}.panelId"]},togglePanel:{funcName:"fluid.slidingPanel.togglePanel",args:["{that}"]},refreshView:{funcName:"fluid.slidingPanel.refreshView",args:["{that}"]}},animationDurations:{hide:400,show:400}});fluid.slidingPanel.togglePanel=function(that){that.applier.change("isShowing",!that.model.isShowing);};fluid.slidingPanel.refreshView=function(that){that.events[that.model.isShowing?"onPanelShow":"onPanelHide"].fire();};fluid.slidingPanel.setAriaProperties=function(that,panelId){that.locate("toggleButton").attr({role:"button","aria-controls":panelId});that.locate("panel").attr({"aria-label":that.options.strings.panelLabel,role:"group"});};fluid.slidingPanel.setAriaStates=function(that,isShowing){that.locate("toggleButton").attr({"aria-pressed":isShowing,"aria-expanded":isShowing});};"use strict";fluid.defaults("fluid.switchUI",{gradeNames:["fluid.viewComponent"],selectors:{on:".flc-switchUI-on",off:".flc-switchUI-off",control:".flc-switchUI-control"},strings:{label:"",on:"on",off:"off"},attrs:{role:"switch"},model:{enabled:false},modelListeners:{enabled:{this:"{that}.dom.control",method:"attr",args:["aria-checked","{change}.value"]}},listeners:{"onCreate.addAttrs":{this:"{that}.dom.control",method:"attr",args:["{that}.options.attrs"]},"onCreate.addOnText":{this:"{that}.dom.on",method:"text",args:["{that}.options.strings.on"]},"onCreate.addOffText":{this:"{that}.dom.off",method:"text",args:["{that}.options.strings.off"]},"onCreate.bindClick":{this:"{that}.dom.control",method:"on",args:["click","{that}.toggleModel"]}},invokers:{toggleModel:{funcName:"fluid.switchUI.toggleModel",args:["{that}"]}}});fluid.switchUI.toggleModel=function(that){that.applier.change("enabled",!that.model.enabled);};"use strict";fluid.registerNamespace("fluid.tableOfContents");
118fluid.tableOfContents.headingTextToAnchorInfo=function(heading){var id=fluid.allocateSimpleId(heading);var anchorInfo={id,url:"#"+id};return anchorInfo;};fluid.tableOfContents.locateHeadings=function(that){var headings=that.locate("headings");fluid.each(that.options.ignoreForToC,(function(sel){headings=headings.not(sel).not(sel+" :header");}));return headings;};fluid.tableOfContents.refreshView=function(that){var headings=that.locateHeadings();that.anchorInfo=fluid.transform(headings,(function(heading){return that.headingTextToAnchorInfo(heading);}));var headingsModel=that.modelBuilder.assembleModel(headings,that.anchorInfo);that.applier.change("",headingsModel);that.events.onRefresh.fire();};fluid.defaults("fluid.tableOfContents",{gradeNames:["fluid.viewComponent"],components:{levels:{type:"fluid.tableOfContents.levels",createOnEvent:"onCreate",container:"{tableOfContents}.dom.tocContainer",options:{model:{headings:"{tableOfContents}.model"},events:{afterRender:"{tableOfContents}.events.afterRender"},listeners:{"{tableOfContents}.events.onRefresh":"{that}.refreshView"},strings:"{tableOfContents}.options.strings"}},modelBuilder:{type:"fluid.tableOfContents.modelBuilder"}},model:[],invokers:{headingTextToAnchorInfo:"fluid.tableOfContents.headingTextToAnchorInfo",locateHeadings:{funcName:"fluid.tableOfContents.locateHeadings",args:["{that}"]},refreshView:{funcName:"fluid.tableOfContents.refreshView",args:["{that}"]},hide:{this:"{that}.dom.tocContainer",method:"hide"},show:{this:"{that}.dom.tocContainer",method:"show"}},strings:{tocHeader:"Table of Contents"},selectors:{headings:":header:visible",tocContainer:".flc-toc-tocContainer"},ignoreForToC:{tocContainer:"{that}.options.selectors.tocContainer"},events:{onRefresh:null,afterRender:null,onReady:{events:{onCreate:"onCreate",afterRender:"afterRender"},args:["{that}"]}},listeners:{"onCreate.setLabel":{this:"{that}.dom.tocContainer",method:"attr",args:["aria-label","{that}.options.strings.tocHeader"],priority:"before:refreshView"},"onCreate.refreshView":{func:"{that}.refreshView",priority:"after:fluid-componentConstruction"}}});fluid.registerNamespace("fluid.tableOfContents.modelBuilder");fluid.tableOfContents.modelBuilder.toModel=function(headingInfo,modelLevelFn){var headings=fluid.copy(headingInfo);var buildModelLevel=function(headings,level){var modelLevel=[];while(headings.length>0){var heading=headings[0];if(heading.level<level)break;if(heading.level>level){var subHeadings=buildModelLevel(headings,level+1);if(modelLevel.length>0)fluid.peek(modelLevel).headings=subHeadings;else modelLevel=modelLevelFn(modelLevel,subHeadings);}if(heading.level===level){modelLevel.push(heading);headings.shift();}}return modelLevel;};return buildModelLevel(headings,1);};fluid.tableOfContents.modelBuilder.gradualModelLevelFn=function(modelLevel,subHeadings){var subHeadingsClone=fluid.copy(subHeadings);subHeadingsClone[0].level--;return subHeadingsClone;};fluid.tableOfContents.modelBuilder.skippedModelLevelFn=function(modelLevel,subHeadings){modelLevel.push({headings:subHeadings});return modelLevel;};fluid.tableOfContents.modelBuilder.convertToHeadingObjects=function(that,headings,anchorInfo){headings=$(headings);return fluid.transform(headings,(function(heading,index){return {level:that.headingCalculator.getHeadingLevel(heading),text:$(heading).text(),url:anchorInfo[index].url};}));};fluid.tableOfContents.modelBuilder.assembleModel=function(that,headings,anchorInfo){var headingInfo=that.convertToHeadingObjects(headings,anchorInfo);return that.toModel(headingInfo);};fluid.defaults("fluid.tableOfContents.modelBuilder",{gradeNames:["fluid.component"],components:{headingCalculator:{type:"fluid.tableOfContents.modelBuilder.headingCalculator"}},invokers:{toModel:{funcName:"fluid.tableOfContents.modelBuilder.toModel",args:["{arguments}.0","{modelBuilder}.modelLevelFn"]},modelLevelFn:"fluid.tableOfContents.modelBuilder.gradualModelLevelFn",convertToHeadingObjects:"fluid.tableOfContents.modelBuilder.convertToHeadingObjects({that}, {arguments}.0, {arguments}.1)",assembleModel:"fluid.tableOfContents.modelBuilder.assembleModel({that}, {arguments}.0, {arguments}.1)"}});fluid.registerNamespace("fluid.tableOfContents.modelBuilder.headingCalculator");fluid.tableOfContents.modelBuilder.headingCalculator.getHeadingLevel=function(that,heading){return that.options.levels.indexOf(heading.tagName)+1;};fluid.defaults("fluid.tableOfContents.modelBuilder.headingCalculator",{gradeNames:["fluid.component"],invokers:{getHeadingLevel:"fluid.tableOfContents.modelBuilder.headingCalculator.getHeadingLevel({that}, {arguments}.0)"},levels:["H1","H2","H3","H4","H5","H6"]});fluid.registerNamespace("fluid.tableOfContents.levels");fluid.tableOfContents.levels.objModel=function(type,ID){var objModel={ID:type+ID+":",children:[]};return objModel;};fluid.tableOfContents.levels.handleEmptyItemObj=function(itemObj){itemObj.decorators=[{type:"addClass",classes:"fl-tableOfContents-hide-bullet"}];};fluid.tableOfContents.levels.generateTree=function(headingsModel,currentLevel){currentLevel=currentLevel||0;var levelObj=fluid.tableOfContents.levels.objModel("level",currentLevel);if(headingsModel.headings.length===0)return currentLevel?[]:{children:[]};if(currentLevel===0){var tree={children:[fluid.tableOfContents.levels.generateTree(headingsModel,currentLevel+1)]};return tree;}$.each(headingsModel.headings,(function(index,model){var itemObj=fluid.tableOfContents.levels.objModel("items",currentLevel);var linkObj={ID:"link"+currentLevel,target:model.url,linktext:model.text};
118if(!model.level)fluid.tableOfContents.levels.handleEmptyItemObj(itemObj);else itemObj.children.push(linkObj);if(model.headings)itemObj.children.push(fluid.tableOfContents.levels.generateTree(model,currentLevel+1));levelObj.children.push(itemObj);}));return levelObj;};fluid.tableOfContents.levels.produceTree=function(that){var tree=fluid.tableOfContents.levels.generateTree(that.model);tree.children.push({ID:"tocHeader",messagekey:"tocHeader"});return tree;};fluid.defaults("fluid.tableOfContents.levels",{gradeNames:["fluid.rendererComponent","fluid.resourceLoader"],produceTree:"fluid.tableOfContents.levels.produceTree",strings:{tocHeader:"Table of Contents"},selectors:{tocHeader:".flc-toc-header",level1:".flc-toc-levels-level1",level2:".flc-toc-levels-level2",level3:".flc-toc-levels-level3",level4:".flc-toc-levels-level4",level5:".flc-toc-levels-level5",level6:".flc-toc-levels-level6",items1:".flc-toc-levels-items1",items2:".flc-toc-levels-items2",items3:".flc-toc-levels-items3",items4:".flc-toc-levels-items4",items5:".flc-toc-levels-items5",items6:".flc-toc-levels-items6",link1:".flc-toc-levels-link1",link2:".flc-toc-levels-link2",link3:".flc-toc-levels-link3",link4:".flc-toc-levels-link4",link5:".flc-toc-levels-link5",link6:".flc-toc-levels-link6"},repeatingSelectors:["level1","level2","level3","level4","level5","level6","items1","items2","items3","items4","items5","items6"],model:{headings:[]},resources:{template:{url:"../html/TableOfContents.html"}},renderOnInit:true,rendererFnOptions:{noexpand:true},rendererOptions:{debugMode:false}});"use strict";fluid.defaults("fluid.textfield",{gradeNames:["fluid.viewComponent"],attrs:{},strings:{},modelListeners:{value:{this:"{that}.container",method:"val",args:["{change}.value"]}},listeners:{"onCreate.bindChangeEvt":{this:"{that}.container",method:"on",args:["change","{that}.setModel"]},"onCreate.initTextfieldAttributes":{this:"{that}.container",method:"attr",args:["{that}.options.attrs"]}},invokers:{setModel:{changePath:"value",value:"{arguments}.0.target.value"}}});fluid.textfield.setModelRestrictToNumbers=function(that,value,path){var isNumber=!isNaN(Number(value));if(isNumber)that.applier.change(path,value);that.container.val(that.model.value);};fluid.defaults("fluid.textfield.rangeController",{gradeNames:["fluid.textfield"],components:{controller:{type:"fluid.modelComponent",options:{model:{value:null},modelRelay:[{source:"value",target:"{fluid.textfield}.model.value",singleTransform:{type:"fluid.transforms.numberToString",scale:"{that}.options.scale"}},{target:"value",singleTransform:{type:"fluid.transforms.limitRange",input:"{that}.model.value",min:"{that}.model.range.min",max:"{that}.model.range.max"}}]}}},invokers:{setModel:{funcName:"fluid.textfield.setModelRestrictToNumbers",args:["{that}","{arguments}.0.target.value","value"]}}});"use strict";fluid.defaults("fluid.textfieldSlider",{gradeNames:["fluid.viewComponent"],components:{textfield:{type:"fluid.textfield.rangeController",container:"{that}.dom.textfield",options:{components:{controller:{options:{model:"{textfieldSlider}.model"}}},attrs:"{textfieldSlider}.options.attrs",strings:"{textfieldSlider}.options.strings"}},slider:{type:"fluid.slider",container:"{textfieldSlider}.dom.slider",options:{model:"{textfieldSlider}.model",attrs:"{textfieldSlider}.options.attrs",strings:"{textfieldSlider}.options.strings"}}},selectors:{textfield:".flc-textfieldSlider-field",slider:".flc-textfieldSlider-slider"},styles:{container:"fl-textfieldSlider fl-focus"},model:{value:null,step:1,range:{min:0,max:100}},modelRelay:{target:"value",singleTransform:{type:"fluid.transforms.limitRange",input:"{that}.model.value",min:"{that}.options.range.min",max:"{that}.options.range.max"}},attrs:{},strings:{},listeners:{"onCreate.addContainerStyle":{this:"{that}.container",method:"addClass",args:["{that}.options.styles.container"]}},distributeOptions:[{source:"{that}.options.scale",target:"{that > fluid.textfield > controller}.options.scale"}]});fluid.defaults("fluid.slider",{gradeNames:["fluid.viewComponent"],modelRelay:{target:"value",singleTransform:{type:"fluid.transforms.stringToNumber",input:"{that}.model.stringValue"}},invokers:{setModel:{changePath:"stringValue",value:{expander:{this:"{that}.container",method:"val"}}},updateSliderAttributes:{this:"{that}.container",method:"attr",args:[{min:"{that}.model.range.min",max:"{that}.model.range.max",step:"{that}.model.step",type:"range",value:"{that}.model.value","aria-labelledby":"{that}.options.attrs.aria-labelledby","aria-label":"{that}.options.attrs.aria-label"}]}},listeners:{"onCreate.initSliderAttributes":"{that}.updateSliderAttributes","onCreate.bindSlideEvt":{this:"{that}.container",method:"on",args:["input","{that}.setModel"]},"onCreate.bindRangeChangeEvt":{this:"{that}.container",method:"on",args:["change","{that}.setModel"]}},modelListeners:{value:[{this:"{that}.container",method:"val",args:["{change}.value"],excludeSource:"init"}],range:{listener:"{that}.updateSliderAttributes",excludeSource:"init"},step:{listener:"{that}.updateSliderAttributes",excludeSource:"init"}}});"use strict";fluid.defaults("fluid.textfieldStepper",{gradeNames:["fluid.viewComponent"],strings:{increaseLabel:"increment",decreaseLabel:"decrement"},selectors:{textfield:".flc-textfieldStepper-field",focusContainer:".flc-textfieldStepper-focusContainer",increaseButton:".flc-textfieldStepper-increase",decreaseButton:".flc-textfieldStepper-decrease"},styles:{container:"fl-textfieldStepper",focus:"fl-textfieldStepper-focus"},components:{textfield:{type:"fluid.textfield.rangeController",container:"{that}.dom.textfield",options:{components:{controller:{options:{model:"{textfieldStepper}.model",modelListeners:{"range.min":{this:"{textfield}.container",method:"attr",args:["min","{change}.value"]},"range.max":{this:"{textfield}.container",method:"attr",args:["max","{change}.value"]},step:{this:"{textfield}.container",method:"attr",args:["step","{change}.value"]}}}}},attrs:"{textfieldStepper}.options.attrs",strings:"{textfieldStepper}.options.strings"}},increaseButton:{type:"fluid.textfieldStepper.button",container:"{textfieldStepper}.dom.increaseButton",options:{strings:{label:"{textfieldStepper}.options.strings.increaseLabel"},listeners:{"onClick.increase":"{textfieldStepper}.increase"},modelRelay:{target:"disabled",singleTransform:{type:"fluid.transforms.binaryOp",left:"{textfieldStepper}.model.value",right:"{textfieldStepper}.model.range.max",operator:">="}}}},decreaseButton:{type:"fluid.textfieldStepper.button",container:"{textfieldStepper}.dom.decreaseButton",options:{strings:{label:"{textfieldStepper}.options.strings.decreaseLabel"},listeners:{"onClick.decrease":"{textfieldStepper}.decrease"},modelRelay:{target:"disabled",singleTransform:{type:"fluid.transforms.binaryOp",left:"{textfieldStepper}.model.value",right:"{textfieldStepper}.model.range.min",operator:"<="}}}}},invokers:{increase:{funcName:"fluid.textfieldStepper.step",args:["{that}"]},decrease:{funcName:"fluid.textfieldStepper.step",args:["{that}",-1]},addFocus:{this:"{that}.dom.focusContainer",method:"addClass",args:["{that}.options.styles.focus"]},removeFocus:{this:"{that}.dom.focusContainer",method:"removeClass",args:["{that}.options.styles.focus"]}},listeners:{"onCreate.addContainerStyle":{this:"{that}.container",method:"addClass",args:["{that}.options.styles.container"]},"onCreate.bindFocusin":{this:"{that}.container",method:"on",args:["focusin","{that}.addFocus"]}
118,"onCreate.bindFocusout":{this:"{that}.container",method:"on",args:["focusout","{that}.removeFocus"]}},model:{value:null,step:1,range:{min:0,max:100}},attrs:{},distributeOptions:[{source:"{that}.options.scale",target:"{that > fluid.textfield > controller}.options.scale"}]});fluid.textfieldStepper.step=function(that,coefficient){coefficient=coefficient||1;var newValue=that.model.value+coefficient*that.model.step;that.applier.change("value",newValue);};fluid.defaults("fluid.textfieldStepper.button",{gradeNames:["fluid.viewComponent"],strings:{},styles:{container:"fl-textfieldStepper-button"},model:{disabled:false},events:{onClick:null},listeners:{"onCreate.bindClick":{this:"{that}.container",method:"on",args:["click","{that}.events.onClick.fire"]},"onCreate.addLabel":{this:"{that}.container",method:"attr",args:["aria-label","{that}.options.strings.label"]},"onCreate.addContainerStyle":{this:"{that}.container",method:"addClass",args:["{that}.options.styles.container"]},"onCreate.removeFromTabOrder":{this:"{that}.container",method:"attr",args:["tabindex","-1"]}},modelListeners:{disabled:{this:"{that}.container",method:"prop",args:["disabled","{change}.value"]}}});"use strict";fluid.registerNamespace("fluid.contextAware");fluid.defaults("fluid.contextAware.marker",{gradeNames:["fluid.component"]});fluid.contextAware.makeCheckMarkers=function(checks,path,instantiator){fluid.each(checks,(function(value,markerTypeName){fluid.constructSingle(path,{type:markerTypeName,gradeNames:"fluid.contextAware.marker",value},instantiator);}));};fluid.contextAware.performChecks=function(checkHash){return fluid.transform(checkHash,(function(checkRecord){if(typeof checkRecord==="function")checkRecord={func:checkRecord};else{if(typeof checkRecord==="string")checkRecord={funcName:checkRecord};}if(fluid.isPrimitive(checkRecord))return checkRecord;else if("value" in checkRecord)return checkRecord.value;else if("func" in checkRecord)return checkRecord.func();else if("funcName" in checkRecord)return fluid.invokeGlobalFunction(checkRecord.funcName);else fluid.fail("Error in contextAwareness check record ",checkRecord," - must contain an entry with name value, func, or funcName");}));};fluid.contextAware.makeChecks=function(checkHash,path,instantiator){var checkOptions=fluid.contextAware.performChecks(checkHash);fluid.contextAware.makeCheckMarkers(checkOptions,path,instantiator);};fluid.contextAware.forgetChecks=function(markerNames,path,instantiator){instantiator=instantiator||fluid.globalInstantiator;path=path||[];var markerArray=fluid.makeArray(markerNames);fluid.each(markerArray,(function(markerName){var memberName=fluid.typeNameToMemberName(markerName);var segs=fluid.model.parseToSegments(path,instantiator.parseEL,true);segs.push(memberName);fluid.destroy(segs,instantiator);}));};fluid.defaults("fluid.contextAware",{mergePolicy:{contextAwareness:"noexpand"},contextAwareness:{}});fluid.contextAware.getCheckValue=function(that,reference){var targetRef=fluid.parseContextReference(reference);var targetComponent=fluid.resolveContext(targetRef.context,that);var path=targetRef.path||(fluid.isComponent(targetComponent)&&fluid.componentHasGrade(targetComponent,"fluid.contextAware.marker")?["options","value"]:[]);var value=fluid.getForComponent(targetComponent,path);return value;};fluid.contextAware.checkOne=function(that,contextAwareRecord){if(contextAwareRecord.checks&&contextAwareRecord.checks.contextValue)fluid.fail("Nesting error in contextAwareness record ",contextAwareRecord,' - the "checks" entry must contain a hash and not a contextValue/gradeNames record at top level');var checkList=fluid.parsePriorityRecords(contextAwareRecord.checks,"contextAwareness checkRecord");return fluid.find(checkList,(function(check){if(!check.contextValue)fluid.fail("Cannot perform check for contextAwareness record ",check,' without a valid field named "contextValue"');var value=fluid.contextAware.getCheckValue(that,check.contextValue);if(check.equals===undefined?value:value===check.equals)return check.gradeNames;}),contextAwareRecord.defaultGradeNames);};fluid.contextAware.check=function(that,contextAwarenessOptions){var gradeNames=[];var contextAwareList=fluid.parsePriorityRecords(contextAwarenessOptions,"contextAwareness adaptationRecord");fluid.each(contextAwareList,(function(record){var matched=fluid.contextAware.checkOne(that,record);gradeNames=gradeNames.concat(fluid.makeArray(matched));}));return gradeNames;};fluid.contextAware.makeAdaptation=function(options){fluid.expect("fluid.contextAware.makeAdaptation",options,["distributionName","targetName","adaptationName","checkName","record"]);fluid.defaults(options.distributionName,{gradeNames:["fluid.component"],distributeOptions:{target:"{/ "+options.targetName+"}.options.contextAwareness."+options.adaptationName+".checks."+options.checkName,record:options.record}});fluid.constructSingle([],options.distributionName);};fluid.contextAware.isBrowser=function(){return typeof window!=="undefined"&&!!window.document;};fluid.contextAware.isNode=function(){return typeof process!=="undefined"&&process.versions&&process.versions.node;};fluid.contextAware.makeChecks({"fluid.browser":{funcName:"fluid.contextAware.isBrowser"},"fluid.node":{funcName:"fluid.contextAware.isNode"}});fluid.registerNamespace("fluid.contextAware.browser");fluid.contextAware.browser.getPlatformName=function(){return typeof navigator!=="undefined"&&navigator.platform?navigator.platform:undefined;};fluid.contextAware.browser.getUserAgent=function(){return typeof navigator!=="undefined"&&navigator.userAgent?navigator.userAgent:undefined;};fluid.contextAware.makeChecks({"fluid.browser.platformName":{funcName:"fluid.contextAware.browser.getPlatformName"},"fluid.browser.userAgent":{funcName:"fluid.contextAware.browser.getUserAgent"}});"use strict";if(fluid.contextAware.isBrowser()&&$.fn)$("head").append("<style type='text/css'>.fl-progEnhance-basic, .fl-ProgEnhance-basic { display: none; } .fl-progEnhance-enhanced, .fl-ProgEnhance-enhanced { display: block; }</style>");"use strict";fluid.defaults("fluid.prefs.store",{gradeNames:["fluid.dataSource","fluid.contextAware"],contextAwareness:{strategy:{defaultGradeNames:"fluid.prefs.cookieStore"}}});
118fluid.prefs.store.decodeURIComponent=function(payload){if(typeof payload==="string")return decodeURIComponent(payload);};fluid.prefs.store.encodeURIComponent=function(payload){if(typeof payload==="string")return encodeURIComponent(payload);};fluid.defaults("fluid.prefs.cookieStore",{gradeNames:["fluid.dataSource"],writableGrade:"fluid.prefs.cookieStore.writable",cookie:{name:"fluid-ui-settings"},listeners:{"onRead.impl":{listener:"fluid.prefs.cookieStore.getCookie",args:["{arguments}.1"]},"onRead.decodeURI":{listener:"fluid.prefs.store.decodeURIComponent",priority:"before:encoding"}},invokers:{get:{args:["{that}","{arguments}.0","{that}.options.cookie"]}}});fluid.defaults("fluid.prefs.cookieStore.writable",{gradeNames:["fluid.dataSource.writable"],cookie:{path:"/",samesite:"strict"},listeners:{"onWrite.encodeURI":{func:"fluid.prefs.store.encodeURIComponent",priority:"before:impl"},"onWrite.impl":{listener:"fluid.prefs.cookieStore.writeCookie"},"onWriteResponse.decodeURI":{listener:"fluid.prefs.store.decodeURIComponent",priority:"before:encoding"}},invokers:{set:{args:["{that}","{arguments}.0","{arguments}.1","{that}.options.cookie"]}}});fluid.prefs.cookieStore.getCookie=function(options){var cookieName=fluid.get(options,["directModel","cookieName"])||options.name;var cookie=document.cookie;if(cookie.length<=0)return;var cookiePrefix=cookieName+"=";var startIndex=cookie.indexOf(cookiePrefix);if(startIndex<0)return;startIndex=startIndex+cookiePrefix.length;var endIndex=cookie.indexOf(";",startIndex);if(endIndex<startIndex)endIndex=cookie.length;return cookie.substring(startIndex,endIndex);};fluid.prefs.cookieStore.assembleCookie=function(cookieName,payload,options){options=options||{};var cookieStr=cookieName+"="+payload;fluid.each(options,(function(value,attribute){var isNameAttr=attribute.toLowerCase()==="name";var isSecureAttr=attribute.toLowerCase()==="secure";if(!isNameAttr&&!isSecureAttr)cookieStr+="; "+attribute+"="+value;else{if(isSecureAttr&&value)cookieStr+="; "+attribute;}}));return cookieStr;};fluid.prefs.cookieStore.writeCookie=function(payload,options){var cookieName=fluid.get(options,["directModel","cookieName"])||options.name;var cookieStr=fluid.prefs.cookieStore.assembleCookie(cookieName,payload,options);document.cookie=cookieStr;return payload;};fluid.defaults("fluid.dataSource.encoding.model",{gradeNames:"fluid.component",invokers:{parse:"fluid.identity",render:"fluid.identity"},contentType:"application/json"});fluid.defaults("fluid.prefs.tempStore",{gradeNames:["fluid.dataSource","fluid.modelComponent"],writableGrade:"fluid.prefs.tempStore.writable",components:{encoding:{type:"fluid.dataSource.encoding.model"}},listeners:{"onRead.impl":{listener:"fluid.identity",args:["{that}.model"]}}});fluid.defaults("fluid.prefs.tempStore.writable",{gradeNames:["fluid.dataSource.writable","fluid.modelComponent"],components:{encoding:{type:"fluid.dataSource.encoding.model"}},listeners:{"onWrite.impl":{listener:"fluid.replaceModelValue",args:["{that}.applier","","{arguments}.0"]}}});fluid.defaults("fluid.prefs.globalSettingsStore",{gradeNames:["fluid.component"],components:{settingsStore:{type:"fluid.prefs.store",options:{gradeNames:["fluid.resolveRootSingle"],writable:true,singleRootType:"fluid.prefs.store"}}}});"use strict";fluid.defaults("fluid.prefs.initialModel",{gradeNames:["fluid.component"],members:{initialModel:{preferences:{}}}});fluid.defaults("fluid.uiEnhancer",{gradeNames:["fluid.viewComponent"],defaultLocale:"en",invokers:{updateModel:{func:"{that}.applier.change",args:["","{arguments}.0"]}},userGrades:"@expand:fluid.prefs.filterEnhancerGrades({that}.options.gradeNames)",distributeOptions:{"uiEnhancer.messageLoader.defaultLocale":{source:"{that}.options.defaultLocale",target:"{that messageLoader}.options.resourceOptions.defaultLocale"},"uiEnhancer.messageLoader.locale":{source:"{that}.options.locale",target:"{that messageLoader}.model.locale"}}});fluid.defaults("fluid.uiEnhancer.root",{gradeNames:["fluid.uiEnhancer","fluid.resolveRootSingle"],singleRootType:"fluid.uiEnhancer"});fluid.uiEnhancer.ignorableGrades=["fluid.uiEnhancer","fluid.uiEnhancer.root","fluid.resolveRoot","fluid.resolveRootSingle"];fluid.prefs.filterEnhancerGrades=function(gradeNames){return fluid.remove_if(fluid.makeArray(gradeNames),(function(gradeName){return fluid.frameworkGrades.indexOf(gradeName)!==-1||fluid.uiEnhancer.ignorableGrades.indexOf(gradeName)!==-1;}));};fluid.prefs.filterEnhancerOptions=function(options){return fluid.filterKeys(options,["classnameMap","fontSizeMap","tocTemplate","tocMessage","components"]);};fluid.defaults("fluid.pageEnhancer",{gradeNames:["fluid.component","fluid.originalEnhancerOptions","fluid.prefs.initialModel","fluid.prefs.settingsGetter","fluid.resolveRootSingle"],distributeOptions:{"pageEnhancer.uiEnhancer":{source:"{that}.options.uiEnhancer",target:"{that > uiEnhancer}.options"}},singleRootType:"fluid.pageEnhancer",components:{uiEnhancer:{type:"fluid.uiEnhancer.root",container:"body"}},originalUserOptions:"@expand:fluid.prefs.filterEnhancerOptions({uiEnhancer}.options)",listeners:{"onCreate.initModel":"fluid.pageEnhancer.init"}});fluid.pageEnhancer.init=function(that){var fetchPromise=that.getSettings();fetchPromise.then((function(fetchedSettings){that.uiEnhancer.updateModel(fluid.get(fetchedSettings,"preferences"));}));};"use strict";fluid.defaults("fluid.prefs.prefsEditorLoader",{gradeNames:["fluid.prefs.settingsGetter","fluid.prefs.initialModel","fluid.viewComponent"],defaultLocale:"en",components:{prefsEditor:{type:"fluid.prefs.prefsEditor",createOnEvent:"onCreatePrefsEditorReady",options:{members:{initialModel:"{prefsEditorLoader}.initialModel"},invokers:{getSettings:"{prefsEditorLoader}.getSettings"},listeners:{"onReady.boil":{listener:"{prefsEditorLoader}.events.onReady",args:["{prefsEditorLoader}"]}}}},templateLoader:{type:"fluid.resourceLoader",options:{events:{onResourcesLoaded:"{prefsEditorLoader}.events.onPrefsEditorTemplatesLoaded"}}},messageLoader:{type:"fluid.resourceLoader",createOnEvent:"afterInitialSettingsFetched",options:{resourceOptions:{dataType:"json",defaultLocale:"{prefsEditorLoader}.options.defaultLocale",locale:"{prefsEditorLoader}.settings.preferences.locale"},events:{onResourcesLoaded:"{prefsEditorLoader}.events.onPrefsEditorMessagesLoaded"}}}},listeners:{"onCreate.getInitialSettings":{listener:"fluid.prefs.prefsEditorLoader.getInitialSettings",args:["{that}"]}},events:{afterInitialSettingsFetched:null,onPrefsEditorTemplatesLoaded:null,onPrefsEditorMessagesLoaded:null,onCreatePrefsEditorReady:{events:{templateLoaded:"onPrefsEditorTemplatesLoaded",prefsEditorMessagesLoaded:"onPrefsEditorMessagesLoaded"}},onReady:null},distributeOptions:{"prefsEditorLoader.templateLoader":{source:"{that}.options.templateLoader",removeSource:true,target:"{that > templateLoader}.options"},"prefsEditorLoader.templateLoader.terms":{source:"{that}.options.terms",target:"{that > templateLoader}.options.resourceOptions.terms"},"prefsEditorLoader.messageLoader":{source:"{that}.options.messageLoader",removeSource:true,target:"{that > messageLoader}.options"},"prefsEditorLoader.messageLoader.terms":{source:"{that}.options.terms",target:"{that > messageLoader}.options.resourceOptions.terms"},"prefsEditorLoader.prefsEditor":{source:"{that}.options.prefsEditor",removeSource:true,target:"{that > prefsEditor}.options"}}});fluid.prefs.prefsEditorLoader.getInitialSettings=function(that){var promise=fluid.promise();var fetchPromise=that.getSettings();
118fetchPromise.then((function(savedSettings){that.settings=$.extend(true,{},that.initialModel,savedSettings);that.events.afterInitialSettingsFetched.fire(that.settings);}),(function(error){fluid.log(fluid.logLevel.WARN,error);that.settings=that.initialModel;that.events.afterInitialSettingsFetched.fire(that.settings);}));fluid.promise.follow(fetchPromise,promise);return promise;};fluid.defaults("fluid.prefs.transformDefaultPanelsOptions",{gradeNames:["fluid.viewComponent"],distributeOptions:{"transformDefaultPanelsOptions.textSize":{source:"{that}.options.textSize",removeSource:true,target:"{that textSize}.options"},"transformDefaultPanelsOptions.lineSpace":{source:"{that}.options.lineSpace",removeSource:true,target:"{that lineSpace}.options"},"transformDefaultPanelsOptions.textFont":{source:"{that}.options.textFont",removeSource:true,target:"{that textFont}.options"},"transformDefaultPanelsOptions.contrast":{source:"{that}.options.contrast",removeSource:true,target:"{that contrast}.options"},"transformDefaultPanelsOptions.layoutControls":{source:"{that}.options.layoutControls",removeSource:true,target:"{that layoutControls}.options"},"transformDefaultPanelsOptions.enhanceInputs":{source:"{that}.options.enhanceInputs",removeSource:true,target:"{that enhanceInputs}.options"}}});fluid.defaults("fluid.prefs.settingsGetter",{gradeNames:["fluid.component"],members:{getSettings:"{fluid.prefs.store}.get"}});fluid.defaults("fluid.prefs.settingsSetter",{gradeNames:["fluid.component"],invokers:{setSettings:{funcName:"fluid.prefs.settingsSetter.setSettings",args:["{arguments}.0","{arguments}.1","{fluid.prefs.store}.set"]}}});fluid.prefs.settingsSetter.setSettings=function(model,directModel,set){var userSettings=fluid.copy(model);return set(directModel,userSettings);};fluid.defaults("fluid.prefs.uiEnhancerRelay",{gradeNames:["fluid.modelComponent"],listeners:{"onCreate.addListener":"{that}.addListener","onDestroy.removeListener":"{that}.removeListener"},events:{updateEnhancerModel:"{fluid.prefs.prefsEditor}.events.onUpdateEnhancerModel"},invokers:{addListener:{funcName:"fluid.prefs.uiEnhancerRelay.addListener",args:["{that}.events.updateEnhancerModel","{that}.updateEnhancerModel"]},removeListener:{funcName:"fluid.prefs.uiEnhancerRelay.removeListener",args:["{that}.events.updateEnhancerModel","{that}.updateEnhancerModel"]},updateEnhancerModel:{funcName:"fluid.prefs.uiEnhancerRelay.updateEnhancerModel",args:["{uiEnhancer}","{fluid.prefs.prefsEditor}.model.preferences"]}}});fluid.prefs.uiEnhancerRelay.addListener=function(modelChanged,listener){modelChanged.addListener(listener);};fluid.prefs.uiEnhancerRelay.removeListener=function(modelChanged,listener){modelChanged.removeListener(listener);};fluid.prefs.uiEnhancerRelay.updateEnhancerModel=function(uiEnhancer,newModel){uiEnhancer.updateModel(newModel);};fluid.defaults("fluid.prefs.prefsEditor",{gradeNames:["fluid.prefs.settingsGetter","fluid.prefs.settingsSetter","fluid.prefs.initialModel","fluid.remoteModelComponent","fluid.viewComponent"],markup:{panel:'<li class="%className flc-prefsEditor-panel fl-prefsEditor-panel"></li>'},invokers:{fetchImpl:{funcName:"fluid.prefs.prefsEditor.fetchImpl",args:["{that}"]},writeImpl:{funcName:"fluid.prefs.prefsEditor.writeImpl",args:["{that}","{arguments}.0"]},applyChanges:{funcName:"fluid.prefs.prefsEditor.applyChanges",args:["{that}"]},save:{funcName:"fluid.prefs.prefsEditor.save",args:["{that}"]},saveAndApply:{funcName:"fluid.prefs.prefsEditor.saveAndApply",args:["{that}"]},reset:{funcName:"fluid.prefs.prefsEditor.reset",args:["{that}"]},cancel:{funcName:"fluid.prefs.prefsEditor.cancel",args:["{that}"]}},selectors:{panels:".flc-prefsEditor-panel",cancel:".flc-prefsEditor-cancel",reset:".flc-prefsEditor-reset",save:".flc-prefsEditor-save",previewFrame:".flc-prefsEditor-preview-frame"},events:{onSave:null,onCancel:null,beforeReset:null,afterReset:null,onAutoSave:null,modelChanged:null,onPrefsEditorRefresh:null,onUpdateEnhancerModel:null,onPrefsEditorMarkupReady:null,onReady:null},listeners:{"onCreate.init":"fluid.prefs.prefsEditor.init","onAutoSave.save":"{that}.save"},model:{local:{preferences:"{that}.model.preferences"}},modelListeners:{preferences:[{listener:"fluid.prefs.prefsEditor.handleAutoSave",args:["{that}"],namespace:"autoSave",excludeSource:["init"]},{listener:"{that}.events.modelChanged.fire",args:["{change}.value"],namespace:"modelChange"}]},members:{resources:{template:"{templateLoader}.resources.prefsEditor"}},autoSave:false});fluid.prefs.prefsEditor.applyChanges=function(that){that.events.onUp
118dateEnhancerModel.fire();};fluid.prefs.prefsEditor.fetchImpl=function(that){var promise=fluid.promise(),fetchPromise=that.getSettings();fetchPromise.then((function(savedModel){var completeModel=$.extend(true,{},that.initialModel,savedModel);promise.resolve(completeModel);}),promise.reject);return promise;};fluid.prefs.prefsEditor.writeImpl=function(that,modelToSave){var promise=fluid.promise(),stats={changes:0,unchanged:0,changeMap:{}},changedPrefs={};modelToSave=fluid.copy(modelToSave);fluid.model.diff(modelToSave.preferences,fluid.get(that.initialModel,["preferences"]),stats);if(stats.changes===0)delete modelToSave.preferences;else{fluid.each(stats.changeMap,(function(state,pref){fluid.set(changedPrefs,pref,modelToSave.preferences[pref]);}));modelToSave.preferences=changedPrefs;}that.events.onSave.fire(modelToSave);var setPromise=that.setSettings(modelToSave);fluid.promise.follow(setPromise,promise);return promise;};fluid.prefs.prefsEditor.save=function(that){var promise=fluid.promise();if(!that.model||$.isEmptyObject(that.model))promise.resolve({});else{var writePromise=that.write();fluid.promise.follow(writePromise,promise);}return promise;};fluid.prefs.prefsEditor.saveAndApply=function(that){var promise=fluid.promise();var prevSettingsPromise=that.getSettings(),savePromise=that.save();prevSettingsPromise.then((function(prevSettings){savePromise.then((function(changedSelections){if(!fluid.model.diff(fluid.get(changedSelections,"preferences"),fluid.get(prevSettings,"preferences"))){that.events.onPrefsEditorRefresh.fire();that.applyChanges();}}));fluid.promise.follow(savePromise,promise);}));return promise;};fluid.prefs.prefsEditor.resetModel=function(that,newModel){var transaction=that.applier.initiate();transaction.fireChangeRequest({path:"preferences",type:"DELETE"});transaction.change("",newModel);transaction.commit();that.events.onPrefsEditorRefresh.fire();};fluid.prefs.prefsEditor.reset=function(that){that.events.beforeReset.fire(that);fluid.prefs.prefsEditor.resetModel(that,fluid.copy(that.initialModel));that.events.afterReset.fire(that);};fluid.prefs.prefsEditor.cancel=function(that){that.events.onCancel.fire();var fetchPromise=that.fetch();fetchPromise.then((function(){fluid.prefs.prefsEditor.resetModel(that,that.model.remote);}));};fluid.prefs.prefsEditor.finishInit=function(that){var bindHandlers=function(that){var saveButton=that.locate("save");if(saveButton.length>0){saveButton.on("click",that.saveAndApply);var form=fluid.findForm(saveButton);$(form).on("submit",(function(){that.saveAndApply();}));}that.locate("reset").on("click",that.reset);that.locate("cancel").on("click",that.cancel);};var template=that.resources.template.resourceText;if(that.options.generatePanelContainers){var sorted=fluid.parsePriorityRecords(that.options.preferences,"preferences");var sortedPrefs=fluid.getMembers(sorted,"namespace");var panels=sortedPrefs.map((function(pref){var className=that.options.selectors[that.options.prefToMemberMap[pref]].slice(1);return fluid.stringTemplate(that.options.markup.panel,{className});})).join("");template=fluid.stringTemplate(template,{panels});}that.container.append(template);bindHandlers(that);var fetchPromise=that.fetch();fetchPromise.then((function(){that.events.onPrefsEditorMarkupReady.fire();that.events.onPrefsEditorRefresh.fire();that.applyChanges();that.events.onReady.fire(that);}));};fluid.prefs.prefsEditor.handleAutoSave=function(that){if(that.options.autoSave)that.events.onAutoSave.fire();};fluid.prefs.prefsEditor.init=function(that){setTimeout((function(){if(!fluid.isDestroyed(that))fluid.prefs.prefsEditor.finishInit(that);}),1);};fluid.defaults("fluid.prefs.preview",{gradeNames:["fluid.viewComponent"],components:{enhancer:{type:"fluid.uiEnhancer",container:"{preview}.enhancerContainer",createOnEvent:"onReady"},templateLoader:"{templateLoader}"},invokers:{updateModel:{funcName:"fluid.prefs.preview.updateModel",args:["{preview}","{prefsEditor}.model.preferences"]}},events:{onReady:null},listeners:{"onCreate.startLoadingContainer":"fluid.prefs.preview.startLoadingContainer","{prefsEditor}.events.modelChanged":{listener:"{that}.updateModel",namespace:"updateModel"},"onReady.updateModel":"{that}.updateModel"},templateUrl:"%templatePrefix/PrefsEditorPreview.html"});fluid.prefs.preview.updateModel=function(that,preferences){setTimeout((function(){if(that.enhancer)that.enhancer.updateModel(preferences);}),0);};fluid.prefs.preview.startLoadingContainer=function(that){var templateUrl=that.templateLoader.transformResourceURL(that.options.templateUrl);that.container.on("load",(function(){that.enhancerContainer=$("body",that.container.contents());that.events.onReady.fire();}));that.container.attr("src",templateUrl);};"use strict";fluid.defaults("fluid.prefs.msgLookup",{gradeNames:["fluid.component"],members:{msgLookup:{expander:{funcName:"fluid.prefs.stringLookup",args:["{msgResolver}","{that}.options.stringArrayIndex"]}}}
118,stringArrayIndex:{}});fluid.prefs.stringLookup=function(messageResolver,stringArrayIndex){var that={id:fluid.allocateGuid()};that.singleLookup=function(value){var looked=messageResolver.lookup([value]);return fluid.get(looked,"template");};that.multiLookup=function(values){return fluid.transform(values,(function(value){return that.singleLookup(value);}));};that.lookup=function(value){var values=fluid.get(stringArrayIndex,value)||value;var lookupFn=fluid.isArrayable(values)?"multiLookup":"singleLookup";return that[lookupFn](values);};that.resolvePathSegment=that.lookup;return that;};fluid.defaults("fluid.prefs.panel",{gradeNames:["fluid.prefs.msgLookup","fluid.rendererComponent"],components:{msgResolver:{type:"fluid.messageResolver"},messageResolver:{type:"fluid.emptySubcomponent"}},rendererOptions:{messageLocator:"{msgResolver}.resolve"},distributeOptions:{"panel.msgResolver.messageBase":{source:"{that}.options.messageBase",target:"{that > msgResolver}.options.messageBase"}}});fluid.defaults("fluid.prefs.subPanel",{gradeNames:["fluid.prefs.panel"],listeners:{"{compositePanel}.events.afterRender":{listener:"{that}.events.afterRender",args:["{that}"],namespce:"boilAfterRender"},"onCreate.onDomBind":null,"afterRender.onDomBind":"{that}.resetDomBinder"},rules:{expander:{func:"fluid.prefs.subPanel.generateRules",args:["{that}.options.preferenceMap"]}},invokers:{refreshView:"{compositePanel}.refreshView",resetDomBinder:{funcName:"fluid.prefs.subPanel.resetDomBinder",args:["{that}"]}},strings:{},parentBundle:"{compositePanel}.messageResolver",renderOnInit:false});fluid.prefs.subPanel.resetDomBinder=function(that){var userJQuery=that.container.constructor;var context=that.container[0].ownerDocument;var selector=that.container.selector;that.container=userJQuery(selector,context);that.container.selector=selector;that.container.context=context;if(that.container.length===0)fluid.fail("resetDomBinder got no elements in DOM for container searching for selector "+that.container.selector);that.dom.resetContainer(that.container);that.events.onDomBind.fire(that);};fluid.prefs.subPanel.safePrefKey=function(prefKey){return prefKey.replace(/[.]/g,"_");};fluid.prefs.subPanel.generateRules=function(preferenceMap){var rules={};fluid.each(preferenceMap,(function(prefObj,prefKey){fluid.each(prefObj,(function(value,prefRule){if(prefRule.indexOf("model.")===0)rules[fluid.prefs.subPanel.safePrefKey(prefKey)]=prefRule.slice("model.".length);}));}));return rules;};fluid.registerNamespace("fluid.prefs.compositePanel");fluid.prefs.compositePanel.arrayMergePolicy=function(target,source){target=fluid.makeArray(target);source=fluid.makeArray(source);fluid.each(source,(function(selector){if(target.indexOf(selector)<0)target.push(selector);}));return target;};fluid.prefs.appendTemplate=function(container,markup){container.append(markup);};fluid.defaults("fluid.prefs.compositePanel",{gradeNames:["fluid.prefs.panel","{that}.getDistributeOptionsGrade","{that}.getSubPanelLifecycleBindings"],mergePolicy:{subPanelOverrides:"noexpand",selectorsToIgnore:fluid.prefs.compositePanel.arrayMergePolicy},selectors:{},selectorsToIgnore:[],repeatingSelectors:[],events:{initSubPanels:null},listeners:{"onCreate.combineResources":"{that}.combineResources","onCreate.appendTemplate":"fluid.prefs.appendTemplate({that}.container, {that}.resources.template.resourceText)","onCreate.initSubPanels":"{that}.events.initSubPanels","onCreate.hideInactive":{func:"{that}.hideInactive",priority:"after:fluid-componentConstruction"},"afterRender.hideInactive":"{that}.hideInactive"},invokers:{getDistributeOptionsGrade:{funcName:"fluid.prefs.compositePanel.assembleDistributeOptions",args:["{that}.options.components"]},getSubPanelLifecycleBindings:{funcName:"fluid.prefs.compositePanel.subPanelLifecycleBindings",args:["{that}","{that}.options.components"]},combineResources:{funcName:"fluid.prefs.compositePanel.combineTemplates",args:["{that}.resources","{that}.options.selectors"]},produceSubPanelTrees:{funcName:"fluid.prefs.compositePanel.produceSubPanelTrees",args:["{that}"]},expandProtoTree:{funcName:"fluid.prefs.compositePanel.expandProtoTree",args:["{that}"]},produceTree:{funcName:"fluid.prefs.compositePanel.produceTree",args:["{that}"]},hideInactive:{funcName:"fluid.prefs.compositePanel.hideInactive",args:["{that}"]},handleRenderOnPreference:{funcName:"fluid.prefs.compositePanel.handleRenderOnPreference",args:["{that}","{that}.refreshView","{that}.conditionalCreateEvent","{arguments}.0","{arguments}.1","{arguments}.2"]},conditionalCreateEvent:{funcName:"fluid.prefs.compositePanel.conditionalCreateEvent"}},subPanelOverrides:{gradeNames:["fluid.prefs.subPanel"]},rendererFnOptions:{noexpand:true,cutpointGenerator:"fluid.prefs.compositePanel.cutpointGenerator",subPanelRepeatingSelectors:{expander:{funcName:"fluid.prefs.compositePanel.surfaceRepeatingSelectors",args:["{that}.options.components"]}}},components:{},resources:{}});fluid.prefs.compositePanel.prefetchComponentOptions=function(type,options){var baseOptions=fluid.getMergedDefaults(type,fluid.get(options,"gradeNames"));return baseOptions&&fluid.merge(baseOptions.mergePolicy,fluid.copy(baseOptions),options);};fluid.prefs.compositePanel.isPanel=function(type,options){var opts=fluid.prefs.compositePanel.prefetchComponentOptions(type,options);return fluid.hasGrade(opts,"fluid.prefs.panel");};fluid.prefs.compositePanel.isActivePanel=function(comp){return comp&&fluid.hasGrade(comp.options,"fluid.prefs.panel");};fluid.prefs.compositePanel.assembleDistributeOptions=function(components){var gradeName="fluid.prefs.compositePanel.distributeOptions_"+fluid.allocateGuid();var distributeOptions={};var relayOption={};
118fluid.each(components,(function(componentEntry,componentName){var componentOptions=componentEntry[0];if(fluid.prefs.compositePanel.isPanel(componentOptions.type,componentOptions.options))distributeOptions[componentName+".subPanelOverrides"]={source:"{that}.options.subPanelOverrides",target:"{that > "+componentName+"}.options"};var componentRelayRules={};var definedOptions=fluid.prefs.compositePanel.prefetchComponentOptions(componentOptions.type,componentOptions.options);var preferenceMap=fluid.get(definedOptions,["preferenceMap"]);fluid.each(preferenceMap,(function(prefObj,prefKey){fluid.each(prefObj,(function(value,prefRule){if(prefRule.indexOf("model.")===0)fluid.set(componentRelayRules,prefRule.slice("model.".length),"{compositePanel}.model."+fluid.prefs.subPanel.safePrefKey(prefKey));}));}));relayOption[componentName]=componentRelayRules;distributeOptions[componentName+".modelRelay"]={source:"{that}.options.relayOption."+componentName,target:"{that > "+componentName+"}.options.model"};}));fluid.defaults(gradeName,{relayOption,distributeOptions});return gradeName;};fluid.prefs.compositePanel.conditionalCreateEvent=function(value,createEvent){if(value)createEvent();};fluid.prefs.compositePanel.handleRenderOnPreference=function(that,refreshViewFunc,conditionalCreateEventFunc,value,createEvent,componentNames){componentNames=fluid.makeArray(componentNames);conditionalCreateEventFunc(value,createEvent);fluid.each(componentNames,(function(componentName){var comp=that[componentName];if(!value&&comp)comp.destroy();}));refreshViewFunc();};fluid.prefs.compositePanel.creationEventName=function(pref){return "initOn_"+pref;};fluid.prefs.compositePanel.generateModelListeners=function(conditionals){return fluid.transform(conditionals,(function(componentNames,pref){var eventName=fluid.prefs.compositePanel.creationEventName(pref);return {func:"{that}.handleRenderOnPreference",args:["{change}.value","{that}.events."+eventName+".fire",componentNames],excludeSource:"init",namespace:"handleRenderOnPreference_"+pref};}));};fluid.prefs.compositePanel.rebaseSelectorName=function(memberName,selectorName){return memberName+"_"+selectorName;};fluid.prefs.compositePanel.rebaseSelector=function(compositePanelSelector,selector){return compositePanelSelector+" "+selector;};fluid.prefs.compositePanel.subPanelLifecycleBindings=function(that,components){var gradeName="fluid.prefs.compositePanel.subPanelCreationTimingDistibution_"+fluid.allocateGuid();var distributeOptions={};var subPanelCreationOpts={default:"initSubPanels"};var conditionals={};var listeners={};var events={};var selectors={};fluid.each(components,(function(componentEntry,componentName){var componentOptions=componentEntry[0];if(fluid.prefs.compositePanel.isPanel(componentOptions.type,componentOptions.options)){var creationEventOpt="default";var renderOnPreference=fluid.get(componentOptions,"options.renderOnPreference");if(renderOnPreference){var pref=fluid.prefs.subPanel.safePrefKey(renderOnPreference);var onCreateListener="onCreate."+pref;creationEventOpt=fluid.prefs.compositePanel.creationEventName(pref);subPanelCreationOpts[creationEventOpt]=creationEventOpt;events[creationEventOpt]=null;conditionals[pref]=conditionals[pref]||[];conditionals[pref].push(componentName);listeners[onCreateListener]={listener:"{that}.conditionalCreateEvent",args:["{that}.model."+pref,"{that}.events."+creationEventOpt+".fire"]};}distributeOptions[componentName+".subPanelCreationOpts"]={source:"{that}.options.subPanelCreationOpts."+creationEventOpt,target:"{that}.options.components."+componentName+".createOnEvent"};var opts=fluid.prefs.compositePanel.prefetchComponentOptions(componentOptions.type,componentOptions.options);fluid.each(opts.selectors,(function(selector,selName){if(!opts.selectorsToIgnore||opts.selectorsToIgnore.indexOf(selName)<0)selectors[fluid.prefs.compositePanel.rebaseSelectorName(componentName,selName)]={expander:{funcName:"fluid.prefs.compositePanel.rebaseSelector",args:["{that}.options.selectors."+componentName,selector]}};}));}}));fluid.defaults(gradeName,{events,listeners,modelListeners:fluid.prefs.compositePanel.generateModelListeners(conditionals),subPanelCreationOpts,distributeOptions,selectors});return gradeName;};fluid.prefs.compositePanel.hideInactive=function(that){fluid.each(that.options.components,(function(componentEntry,c
118omponentName){var componentOpts=componentEntry[0];if(fluid.prefs.compositePanel.isPanel(componentOpts.type,componentOpts.options)&&!fluid.prefs.compositePanel.isActivePanel(that[componentName]))that.locate(componentName).hide();}));};fluid.prefs.compositePanel.combineTemplates=function(resources,selectors){var cutpoints=[];var tree={children:[]};fluid.each(resources,(function(resource,resourceName){if(resourceName!=="template"){tree.children.push({ID:resourceName,markup:resource.resourceText});cutpoints.push({id:resourceName,selector:selectors[resourceName]});}}));var resourceSpec={base:{resourceText:resources.template.resourceText,url:".",resourceKey:".",cutpoints}};var templates=fluid.parseTemplates(resourceSpec,["base"]);var renderer=fluid.renderer(templates,tree,{cutpoints,debugMode:true});resources.template.resourceText=renderer.renderTemplates();};fluid.prefs.compositePanel.surfaceRepeatingSelectors=function(components){var repeatingSelectors=[];fluid.each(components,(function(compEntry,compName){var compOpts=compEntry[0];if(fluid.prefs.compositePanel.isPanel(compOpts.type,compOpts.options)){var opts=fluid.prefs.compositePanel.prefetchComponentOptions(compOpts.type,compOpts.options);var rebasedRepeatingSelectors=fluid.transform(opts.repeatingSelectors,(function(selector){return fluid.prefs.compositePanel.rebaseSelectorName(compName,selector);}));repeatingSelectors=repeatingSelectors.concat(rebasedRepeatingSelectors);}}));return repeatingSelectors;};fluid.prefs.compositePanel.cutpointGenerator=function(selectors,options){var opts={selectorsToIgnore:options.selectorsToIgnore,repeatingSelectors:options.repeatingSelectors.concat(options.subPanelRepeatingSelectors)};return fluid.renderer.selectorsToCutpoints(selectors,opts);};fluid.prefs.compositePanel.rebaseID=function(value,memberName){return memberName+"_"+value;};fluid.prefs.compositePanel.rebaseParentRelativeID=function(val,memberName){var slicePos="..::".length;return val.slice(0,slicePos)+fluid.prefs.compositePanel.rebaseID(val.slice(slicePos),memberName);};fluid.prefs.compositePanel.rebaseValueBinding=function(value,modelRelayRules){return fluid.find(modelRelayRules,(function(oldModelPath,newModelPath){if(value===oldModelPath)return newModelPath;else{if(value.indexOf(oldModelPath)===0)return value.replace(oldModelPath,newModelPath);}}))||value;};fluid.prefs.compositePanel.rebaseTreeComp=function(msgResolver,model,treeComp,memberName,modelRelayRules){var rebased=fluid.copy(treeComp);if(rebased.ID)rebased.ID=fluid.prefs.compositePanel.rebaseID(rebased.ID,memberName);if(rebased.children)rebased.children=fluid.prefs.compositePanel.rebaseTree(msgResolver,model,rebased.children,memberName,modelRelayRules);else if(rebased.selection)rebased.selection=fluid.prefs.compositePanel.rebaseTreeComp(msgResolver,model,rebased.selection,memberName,modelRelayRules);else if(rebased.messagekey){rebased.componentType="UIBound";rebased.value=msgResolver.resolve(rebased.messagekey.value,rebased.messagekey.args);delete rebased.messagekey;}else if(rebased.parentRelativeID)rebased.parentRelativeID=fluid.prefs.compositePanel.rebaseParentRelativeID(rebased.parentRelativeID,memberName);else{if(rebased.valuebinding){rebased.valuebinding=fluid.prefs.compositePanel.rebaseValueBinding(rebased.valuebinding,modelRelayRules);if(rebased.value){var modelValue=fluid.get(model,rebased.valuebinding);rebased.value=modelValue!==undefined?modelValue:rebased.value;}}}return rebased;};fluid.prefs.compositePanel.rebaseTree=function(msgResolver,model,tree,memberName,modelRelayRules){var rebased;if(fluid.isArrayable(tree))rebased=fluid.transform(tree,(function(treeComp){return fluid.prefs.compositePanel.rebaseTreeComp(msgResolver,model,treeComp,memberName,modelRelayRules);}));else rebased=fluid.prefs.compositePanel.rebaseTreeComp(msgResolver,model,tree,memberName,modelRelayRules);return rebased;};fluid.prefs.compositePanel.produceTree=function(that){var produceTreeOption=that.options.produceTree;var ownTree=produceTreeOption?(typeof produceTreeOption==="string"?fluid.getGlobalValue(produceTreeOption):produceTreeOption)(that):that.expandProtoTree();var subPanelTree=that.produceSubPanelTrees();var tree={children:ownTree.children.concat(subPanelTree.children)};return tree;};fluid.prefs.compositePanel.expandProtoTree=function(that){var expanderOptions=fluid.renderer.modeliseOptions(that.options.expanderOptions,{ELstyle:"${}"},that);var expander=fluid.renderer.makeProtoExpander(expanderOptions,that);return expander(that.options.protoTree||{});};fluid.prefs.compositePanel.produceSubPanelTrees=function(that){var tree={children:[]};fluid.each(that.options.components,(function(options,componentName){var subPanel=that[componentName];if(fluid.prefs.compositePanel.isActivePanel(subPanel)){var expanderOptions=fluid.renderer.modeliseOptions(subPanel.options.expanderOptions,{ELstyle:"${}"},subPanel);var expander=fluid.renderer.makeProtoExpander(expanderOptions,subPanel);var subTree=subPanel.produceTree();subTree=fluid.get(subPanel.options,"rendererFnOptions.noexpand")?subTree:expander(subTree);var rebasedTree=fluid.prefs.compositePanel.rebaseTree(subPanel.msgResolver,that.model,subTree,componentName,subPanel.options.rules);tree.children=tree.children.concat(rebasedTree.children);}}));return tree;};fluid.defaults("fluid.prefs.prefsEditorConnections",{gradeNames:["fluid.component"],listeners:{"{fluid.prefs.prefsEditor}.events.onPrefsEditorRefresh":"{fluid.prefs.panel}.refreshView"},strings:{},parentBundle:"{fluid.prefs.prefsEditorLoader}.msgResolver"});fluid.defaults("fluid.prefs.panel.switchAdjuster",{gradeNames:["fluid.prefs.panel"],selectors:{header:".flc-prefsEditor-header",switchContainer:".flc-prefsEditor-switch",label:".flc-prefsEditor-label",description:".flc-prefsEditor-description"},selectorsToIgnore:["header","switchContainer"],components:{switchUI:{type:"fluid.switchUI",container:"{that}.dom.switchContainer",createOnEvent:"afterRender",options:{strings:{on:"{fluid.prefs.panel.switchAdjuster}.msgLookup.switchOn",off:"{fluid.prefs.panel.switchAdjuster}.msgLookup.switchOff"},model:{enabled:"{fluid.prefs.panel.switchAdjuster}.model.value"},attrs:{"aria-labelledby":{expander:{funcName:"fluid.allocateSimpleId",args:["{fluid.prefs.panel.switchAdjuster}.dom.description"]}}}}}},protoTree:{label:{messagekey:"label"},description:{messagekey:"description"}}});fluid.defaults("fluid.prefs.panel.themePicker",{gradeNames:["fluid.prefs.panel"],mergePolicy:{"controlValues.theme":"replace","stringArrayIndex.theme":"replace"},controlValues:{theme:[]},stringArrayIndex:{theme:[]},selectID:"{that}
118.id",listeners:{"afterRender.style":"{that}.style"},selectors:{themeRow:".flc-prefsEditor-themeRow",themeLabel:".flc-prefsEditor-theme-label",themeInput:".flc-prefsEditor-themeInput",label:".flc-prefsEditor-themePicker-label",description:".flc-prefsEditor-themePicker-descr"},styles:{defaultThemeLabel:"fl-prefsEditor-themePicker-defaultThemeLabel"},repeatingSelectors:["themeRow"],protoTree:{label:{messagekey:"label"},description:{messagekey:"description"},expander:{type:"fluid.renderer.selection.inputs",rowID:"themeRow",labelID:"themeLabel",inputID:"themeInput",selectID:"{that}.options.selectID",tree:{optionnames:"${{that}.msgLookup.theme}",optionlist:"${{that}.options.controlValues.theme}",selection:"${value}"}}},markup:{label:'<span class="fl-preview-A" aria-hidden="true"></span><span class="fl-hidden-accessible">%theme</span><div class="fl-crossout" aria-hidden="true"></div>'},invokers:{style:{funcName:"fluid.prefs.panel.themePicker.style",args:["{that}.dom.themeLabel","{that}.msgLookup.theme","{that}.options.markup.label","{that}.options.controlValues.theme","default","{that}.options.classnameMap.theme","{that}.options.styles.defaultThemeLabel"]}}});fluid.prefs.panel.themePicker.style=function(labels,strings,markup,theme,defaultThemeName,style,defaultLabelStyle){fluid.each(labels,(function(label,index){label=$(label);var themeValue=strings[index];label.html(fluid.stringTemplate(markup,{theme:themeValue}));var labelTheme=theme[index];if(labelTheme===defaultThemeName)label.addClass(defaultLabelStyle);label.addClass(style[labelTheme]);}));};fluid.defaults("fluid.prefs.panel.stepperAdjuster",{gradeNames:["fluid.prefs.panel"],selectors:{header:".flc-prefsEditor-header",textfieldStepperContainer:".flc-prefsEditor-textfieldStepper",label:".flc-prefsEditor-label",descr:".flc-prefsEditor-descr"},selectorsToIgnore:["header","textfieldStepperContainer"],components:{textfieldStepper:{type:"fluid.textfieldStepper",container:"{that}.dom.textfieldStepperContainer",createOnEvent:"afterRender",options:{model:{value:"{fluid.prefs.panel.stepperAdjuster}.model.value",range:{min:"{fluid.prefs.panel.stepperAdjuster}.options.range.min",max:"{fluid.prefs.panel.stepperAdjuster}.options.range.max"},step:"{fluid.prefs.panel.stepperAdjuster}.options.step"},scale:1,strings:{increaseLabel:"{fluid.prefs.panel.stepperAdjuster}.msgLookup.increaseLabel",decreaseLabel:"{fluid.prefs.panel.stepperAdjuster}.msgLookup.decreaseLabel"},attrs:{"aria-labelledby":"{fluid.prefs.panel.stepperAdjuster}.options.panelOptions.labelId"}}}},protoTree:{label:{messagekey:"label",decorators:{attrs:{id:"{that}.options.panelOptions.labelId"}}},descr:{messagekey:"description"}},panelOptions:{labelIdTemplate:"%guid",labelId:{expander:{funcName:"fluid.prefs.panel.stepperAdjuster.setLabelID",args:["{that}.options.panelOptions.labelIdTemplate"]}}}});fluid.prefs.panel.stepperAdjuster.setLabelID=function(template){return fluid.stringTemplate(template,{guid:fluid.allocateGuid()});};fluid.defaults("fluid.prefs.panel.textSize",{gradeNames:["fluid.prefs.panel.stepperAdjuster"],preferenceMap:{"fluid.prefs.textSize":{"model.value":"value","range.min":"minimum","range.max":"maximum",step:"multipleOf"}},panelOptions:{labelIdTemplate:"textSize-label-%guid"}});fluid.defaults("fluid.prefs.panel.textFont",{gradeNames:["fluid.prefs.panel"],preferenceMap:{"fluid.prefs.textFont":{"model.value":"value","controlValues.textFont":"enum","stringArrayIndex.textFont":"enumLabels"}},mergePolicy:{"controlValues.textFont":"replace","stringArrayIndex.textFont":"replace"},selectors:{header:".flc-prefsEditor-text-font-header",textFont:".flc-prefsEditor-text-font",label:".flc-prefsEditor-text-font-label",textFontDescr:".flc-prefsEditor-text-font-descr"},selectorsToIgnore:["header"],protoTree:{label:{messagekey:"textFontLabel"},textFontDescr:{messagekey:"textFontDescr"},textFont:{optionnames:"${{that}.msgLookup.textFont}",optionlist:"${{that}.options.controlValues.textFont}",selection:"${value}",decorators:{type:"fluid",func:"fluid.prefs.selectDecorator",options:{styles:"{that}.options.classnameMap.textFont"}}}},classnameMap:null});fluid.defaults("fluid.prefs.panel.lineSpace",{gradeNames:["fluid.prefs.panel.stepperAdjuster"],preferenceMap:{"fluid.prefs.lineSpace":{"model.value":"value","range.min":"minimum","range.max":"maximum",step:"multipleOf"}},panelOptions:{labelIdTemplate:"lineSpace-label-%guid"}});fluid.defaults("fluid.prefs.panel.contrast",{gradeNames:["fluid.prefs.panel.themePicker"],preferenceMap:{"fluid.prefs.contrast":{"model.value":"value","controlValues.theme":"enum","stringArrayIndex.theme":"enumLabels"}}
118,listeners:{"afterRender.style":"{that}.style"},selectors:{header:".flc-prefsEditor-contrast-header",themeRow:".flc-prefsEditor-themeRow",themeLabel:".flc-prefsEditor-theme-label",themeInput:".flc-prefsEditor-themeInput",label:".flc-prefsEditor-themePicker-label",contrastDescr:".flc-prefsEditor-themePicker-descr"},selectorsToIgnore:["header"],styles:{defaultThemeLabel:"fl-prefsEditor-themePicker-defaultThemeLabel"}});fluid.defaults("fluid.prefs.panel.layoutControls",{gradeNames:["fluid.prefs.panel.switchAdjuster"],preferenceMap:{"fluid.prefs.tableOfContents":{"model.value":"value"}}});fluid.defaults("fluid.prefs.panel.enhanceInputs",{gradeNames:["fluid.prefs.panel.switchAdjuster"],preferenceMap:{"fluid.prefs.enhanceInputs":{"model.value":"value"}}});fluid.defaults("fluid.prefs.selectDecorator",{gradeNames:["fluid.viewComponent"],listeners:{"onCreate.decorateOptions":"fluid.prefs.selectDecorator.decorateOptions"},styles:{preview:"fl-preview-theme"}});fluid.prefs.selectDecorator.decorateOptions=function(that){fluid.each($("option",that.container),(function(option){var styles=that.options.styles;$(option).addClass(styles.preview+" "+styles[fluid.value(option)]);}));};"use strict";fluid.defaults("fluid.prefs.panel.captions",{gradeNames:["fluid.prefs.panel.switchAdjuster"],preferenceMap:{"fluid.prefs.captions":{"model.value":"value"}}});"use strict";fluid.defaults("fluid.prefs.panel.letterSpace",{gradeNames:["fluid.prefs.panel.stepperAdjuster"],preferenceMap:{"fluid.prefs.letterSpace":{"model.value":"value","range.min":"minimum","range.max":"maximum",step:"multipleOf"}},panelOptions:{labelIdTemplate:"letterSpace-label-%guid"}});"use strict";fluid.defaults("fluid.prefs.panel.speak",{gradeNames:["fluid.prefs.panel.switchAdjuster"],preferenceMap:{"fluid.prefs.speak":{"model.value":"value"}}});"use strict";fluid.defaults("fluid.prefs.panel.syllabification",{gradeNames:["fluid.prefs.panel.switchAdjuster"],preferenceMap:{"fluid.prefs.syllabification":{"model.value":"value"}}});"use strict";fluid.defaults("fluid.prefs.panel.localization",{gradeNames:["fluid.prefs.panel"],preferenceMap:{"fluid.prefs.localization":{"model.value":"value","controlValues.localization":"enum","stringArrayIndex.localization":"enumLabels"}},mergePolicy:{"controlValues.localization":"replace","stringArrayIndex.localization":"replace"},selectors:{header:".flc-prefsEditor-localization-header",localization:".flc-prefsEditor-localization",label:".flc-prefsEditor-localization-label",localizationDescr:".flc-prefsEditor-localization-descr"},selectorsToIgnore:["header"],protoTree:{label:{messagekey:"label"},localizationDescr:{messagekey:"description"},localization:{optionnames:"${{that}.msgLookup.localization}",optionlist:"${{that}.options.controlValues.localization}",selection:"${value}"}}});"use strict";fluid.defaults("fluid.prefs.panel.wordSpace",{gradeNames:["fluid.prefs.panel.stepperAdjuster"],preferenceMap:{"fluid.prefs.wordSpace":{"model.value":"value","range.min":"minimum","range.max":"maximum",step:"multipleOf"}},panelOptions:{labelIdTemplate:"wordSpace-label-%guid"}});"use strict";fluid.defaults("fluid.prefs.enactor",{gradeNames:["fluid.modelComponent"],applyInitValue:false,ignoreSelectorForEnactor:null});fluid.defaults("fluid.prefs.enactor.styleElements",{gradeNames:["fluid.prefs.enactor"],cssClass:null,elementsToStyle:null,invokers:{applyStyle:{funcName:"fluid.prefs.enactor.styleElements.applyStyle",args:["{arguments}.0","{arguments}.1"]},resetStyle:{funcName:"fluid.prefs.enactor.styleElements.resetStyle",args:["{arguments}.0","{arguments}.1"]},handleStyle:{funcName:"fluid.prefs.enactor.styleElements.handleStyle",args:["{arguments}.0","{that}.options.elementsToStyle","{that}.options.cssClass","{that}.applyStyle","{that}.resetStyle"]}},modelListeners:{value:{listener:"{that}.handleStyle",args:["{change}.value"],namespace:"handleStyle"}}});fluid.prefs.enactor.styleElements.applyStyle=function(elements,cssClass){elements.addClass(cssClass);};fluid.prefs.enactor.styleElements.resetStyle=function(elements,cssClass){$(elements,"."+cssClass).addBack().removeClass(cssClass);};fluid.prefs.enactor.styleElements.handleStyle=function(value,elements,cssClass,applyStyleFunc,resetStyleFunc){var func=value?applyStyleFunc:resetStyleFunc;func(elements,cssClass);};fluid.defaults("fluid.prefs.enactor.classSwapper",{gradeNames:["fluid.prefs.enactor","fluid.viewComponent"],classes:{},invokers:{clearClasses:{funcName:"fluid.prefs.enactor.classSwapper.clearClasses",args:["{that}.container","{that}.classStr"]},swap:{funcName:"fluid.prefs.enactor.classSwapper.swap",args:["{arguments}.0","{that}","{that}.clearClasses"]}},modelListeners:{value:{listener:"{that}.swap",args:["{change}.value"],namespace:"swapClass"}},members:{classStr:{expander:{func:"fluid.prefs.enactor.classSwapper.joinClassStr",args:"{that}.options.classes"}}}});fluid.prefs.enactor.classSwapper.clearClasses=function(container,classStr){container.removeClass(classStr);};fluid.prefs.enactor.classSwapper.swap=function(value,that,clearClassesFunc){clearClassesFunc();that.container.addClass(that.options.classes[value]);};
118fluid.prefs.enactor.classSwapper.joinClassStr=function(classes){var classStr="";fluid.each(classes,(function(oneClassName){if(oneClassName)classStr+=classStr?" "+oneClassName:oneClassName;}));return classStr;};fluid.defaults("fluid.prefs.enactor.enhanceInputs",{gradeNames:["fluid.prefs.enactor.styleElements","fluid.viewComponent"],preferenceMap:{"fluid.prefs.enhanceInputs":{"model.value":"value"}},cssClass:null,elementsToStyle:"{that}.container"});fluid.defaults("fluid.prefs.enactor.textFont",{gradeNames:["fluid.prefs.enactor.classSwapper"],preferenceMap:{"fluid.prefs.textFont":{"model.value":"value"}}});fluid.defaults("fluid.prefs.enactor.contrast",{gradeNames:["fluid.prefs.enactor.classSwapper"],preferenceMap:{"fluid.prefs.contrast":{"model.value":"value"}}});fluid.prefs.enactor.getTextSizeInPx=function(container,fontSizeMap){var fontSize=container.css("font-size");if(fontSizeMap[fontSize])fontSize=fontSizeMap[fontSize];return parseFloat(fontSize);};fluid.defaults("fluid.prefs.enactor.textRelatedSizer",{gradeNames:["fluid.prefs.enactor","fluid.viewComponent"],fontSizeMap:{},invokers:{set:"fluid.notImplemented",getTextSizeInPx:{funcName:"fluid.prefs.enactor.getTextSizeInPx",args:["{that}.container","{that}.options.fontSizeMap"]}},modelListeners:{value:{listener:"{that}.set",args:["{change}.value"],namespace:"setAdaptation"}}});fluid.defaults("fluid.prefs.enactor.spacingSetter",{gradeNames:["fluid.prefs.enactor.textRelatedSizer"],members:{originalSpacing:{expander:{func:"{that}.getSpacing"}}},applyInitValue:false,styles:{enabled:""},cssProp:"",cssCustomProp:{factor:"",size:""},invokers:{set:{funcName:"fluid.prefs.enactor.spacingSetter.set",args:["{that}","{arguments}.0"]},getSpacing:{funcName:"fluid.prefs.enactor.spacingSetter.getSpacing",args:["{that}","{that}.options.cssProp","{that}.getTextSizeInPx"]}},modelListeners:{unit:{listener:"{that}.set",args:["{change}.value"],namespace:"setAdaptation"},value:{listener:"fluid.identity",namespace:"setAdaptation"}},modelRelay:{target:"unit",namespace:"toUnit",singleTransform:{type:"fluid.transforms.round",scale:1,input:{transform:{type:"fluid.transforms.linearScale",offset:-1,input:"{that}.model.value"}}}}});fluid.prefs.enactor.spacingSetter.getSpacing=function(that,cssProp,getTextSizeFn){var current=parseFloat(that.container.css(cssProp));var textSize=getTextSizeFn();return fluid.roundToDecimal(current/textSize,2);};fluid.prefs.enactor.spacingSetter.set=function(that,units){units=units||"";var targetSize=units?`${fluid.roundToDecimal(that.originalSpacing+units,2)}em`:"";that.container.toggleClass(that.options.styles.enabled,that.options.applyInitValue||!!units);that.container.css(that.options.cssCustomProp.size,that.options.applyInitValue&&targetSize===""?0:targetSize);that.container.css(that.options.cssCustomProp.factor,that.options.applyInitValue&&units===""?0:units);};fluid.defaults("fluid.prefs.enactor.textSize",{gradeNames:["fluid.prefs.enactor.textRelatedSizer"],preferenceMap:{"fluid.prefs.textSize":{"model.value":"value"}},styles:{enabled:"fl-textSize-enabled"},cssCustomProp:{factor:"--fl-textSize-factor",size:"--fl-textSize"},scale:1,members:{root:"@expand:fluid.prefs.enactor.textSize.computeRoot({that}.container)"},invokers:{set:{funcName:"fluid.prefs.enactor.textSize.set",args:["{that}","{arguments}.0"]},getTextSizeInPx:{args:["{that}.root","{that}.options.fontSizeMap"]}},listeners:{"onCreate.applyInitValue":{listener:"fluid.prefs.enactor.textSize.applyInitValue",args:["{that}"]}}});fluid.prefs.enactor.textSize.computeRoot=function(container){return container[0].tagName.toLowerCase()==="body"?container.closest("html"):container;};fluid.prefs.enactor.textSize.set=function(that,factor){factor=fluid.roundToDecimal(factor,that.options.scale)||1;if(!that.initialSize)that.initialSize=that.getTextSizeInPx();if(that.initialSize&&factor!==1||that.options.applyInitValue&&that.initialSize&&factor){var targetSize=fluid.roundToDecimal(factor*that.initialSize);that.root.addClass(that.options.styles.enabled);that.root.css(that.options.cssCustomProp.size,`${targetSize}px`);that.root.css(that.options.cssCustomProp.factor,factor);}else{that.root.removeClass(that.options.styles.enabled);that.root.css(that.options.cssCustomProp.size,"");that.root.css(that.options.cssCustomProp.factor,"");}};fluid.prefs.enactor.textSize.applyInitValue=function(that){if(that.options.applyInitValue)that.set();};fluid.defaults("fluid.prefs.enactor.lineSpace",{gradeNames:["fluid.prefs.enactor.textRelatedSizer"],preferenceMap:{"fluid.prefs.lineSpace":{"model.value":"value"}},styles:{enabled:"fl-lineSpace-enabled"},cssCustomProp:{factor:"--fl-lineSpace-factor",size:"--fl-lineSpace"},scale:1,invokers:{set:{funcName:"fluid.prefs.enactor.lineSpace.set",args:["{that}","{arguments}.0"]},getLineHeight:{funcName:"fluid.prefs.enactor.lineSpace.getLineHeight",args:"{that}.container"},getLineHeightMultiplier:{funcName:"fluid.prefs.enactor.lineSpace.getLineHeightMultiplier",args:[{expander:{func:"{that}.getLineHeight"}},{expander:{func:"{that}.getTextSizeInPx"}}]}},listeners:{"onCreate.applyInitValue":{listener:"fluid.prefs.enactor.lineSpace.applyInitValue",args:["{that}"]}}});fluid.prefs.enactor.lineSpace.getLineHeight=function(container){return container.css("line-height");};fluid.prefs.enactor.lineSpace.getLineHeightMultiplier=function(lineHeight,fontSize){if(lineHeight==="normal"||lineHeight==="0px")return 1.2;return fluid.roundToDecimal(parseFloat(lineHeight)/fontSize,2);};fluid.prefs.enactor.lineSpace.set=function(that,factor){factor=fluid.roundToDecimal(factor,that.options.scale)||1;if(!that.lineHeightMultiplier)that.lineHeightMultiplier=that.getLineHeightMultiplier();if(that.lineHeightMultiplier&&factor!==1||that.options.applyInitValue&&that.lineHeightMultiplier&&factor){var targetLineSpace=fluid.roundToDecimal(factor*that.lineHeightMultiplier,2);that.container.addClass(that.options.styles.enabled);that.container.css(that.options.cssCustomProp.size,targetLineSpace);that.container.css(that.options.cssCustomProp.factor,factor);}else{that.container.removeClass(that.options.styles.enabled);that.container.css(that.options.cssCustomProp.size,"");that.container.css(that.options.cssCustomProp.factor,"");}};fluid.prefs.enactor.lineSpace.applyInitValue=function(that){if(that.options.applyInitValue)that.set();};fluid.defaults("fluid.prefs.enactor.tableOfContents",{gradeNames:["fluid.prefs.enactor","fluid.viewComponent"],preferenceMap:{"fluid.prefs.tableOfContents":{"model.toc":"value"}},tocTemplate:null,tocMessage:null,components:{messageLoader:{type:"fluid.resourceLoader",options:{resourceOptions:{dataType:"json"},events:{onResourcesLoaded:"{fluid.prefs.enactor.tableOfContents}.events.onMessagesLoaded"}}},tableOfContents:{type:"fluid.tableOfContents",container:"{fluid.prefs.enactor.tableOfContents}.container",createOnEvent:"onCreateTOCReady",options:{ignoreForToC:{forEnactor:"{fluid.prefs.enactor.tableOfContents}.options.ignoreSelectorForEnactor.forEnactor"}
118,listeners:{"afterRender.boilAfterTocRender":"{fluid.prefs.enactor.tableOfContents}.events.afterTocRender","onReady.show":{listener:"{that}.show",args:[0]}},strings:{tocHeader:"{messageLoader}.resources.tocMessage.parsed.tocHeader"}}}},invokers:{applyToc:{funcName:"fluid.prefs.enactor.tableOfContents.applyToc",args:["{arguments}.0","{that}"]}},events:{afterTocRender:null,onCreateTOC:null,onMessagesLoaded:null,onCreateTOCReady:{events:{onCreateTOC:"onCreateTOC",onMessagesLoaded:"onMessagesLoaded"}}},modelListeners:{toc:{listener:"{that}.applyToc",args:["{change}.value"],namespace:"toggleToc"}},distributeOptions:{"tocEnactor.tableOfContents.ignoreForToC":{source:"{that}.options.ignoreForToC",target:"{that tableOfContents}.options.ignoreForToC"},"tocEnactor.tableOfContents.tocTemplate":{source:"{that}.options.tocTemplate",target:"{that > tableOfContents > levels}.options.resources.template.url"},"tocEnactor.messageLoader.tocMessage":{source:"{that}.options.tocMessage",target:"{that messageLoader}.options.resources.tocMessage"}}});fluid.prefs.enactor.tableOfContents.applyToc=function(value,that){if(value)if(that.tableOfContents)that.tableOfContents.show();else that.events.onCreateTOC.fire();else{if(that.tableOfContents)that.tableOfContents.hide();}};"use strict";fluid.defaults("fluid.prefs.enactor.captions",{gradeNames:["fluid.prefs.enactor","fluid.viewComponent"],preferenceMap:{"fluid.prefs.captions":{"model.enabled":"value"}},events:{onVideoElementLocated:null},selectors:{videos:'iframe[src^="https://www.youtube.com/embed/"]'},model:{enabled:false},components:{ytAPI:{type:"fluid.prefs.enactor.captions.ytAPI"}},dynamicComponents:{player:{type:"fluid.prefs.enactor.captions.youTubePlayer",createOnEvent:"onVideoElementLocated",container:"{arguments}.0",options:{model:{captions:"{captions}.model.enabled"}}}},listeners:{"onCreate.initPlayers":"{that}.initPlayers"},invokers:{initPlayers:{funcName:"fluid.prefs.enactor.captions.initPlayers",args:["{that}","{ytAPI}.notifyWhenLoaded","{that}.dom.videos"]}}});fluid.prefs.enactor.captions.initPlayers=function(that,getYtApi,videos){var promise=fluid.promise();var ytAPINotice=getYtApi();promise.then((function(){$(videos).each((function(index,elm){that.events.onVideoElementLocated.fire($(elm));}));}));fluid.promise.follow(ytAPINotice,promise);return promise;};fluid.defaults("fluid.prefs.enactor.captions.ytAPI",{gradeNames:["fluid.component","fluid.resolveRootSingle"],singleRootType:"fluid.prefs.enactor.captions.window",events:{onYouTubeAPILoaded:null},members:{global:window},invokers:{notifyWhenLoaded:{funcName:"fluid.prefs.enactor.captions.ytAPI.notifyWhenLoaded",args:["{that}"]}}});fluid.prefs.enactor.captions.ytAPI.notifyWhenLoaded=function(that){var promise=fluid.promise();promise.then((function(){that.events.onYouTubeAPILoaded.fire();}),(function(error){fluid.log(fluid.logLevel.WARN,error);}));if(fluid.get(window,["YT","Player"]))promise.resolve();else fluid.set(that.global,"onYouTubeIframeAPIReady",promise.resolve);return promise;};fluid.defaults("fluid.prefs.enactor.captions.youTubePlayer",{gradeNames:["fluid.viewComponent"],events:{onReady:null,onStateChange:null,onPlaybackQualityChange:null,onPlaybackRateChange:null,onError:null,onApiChange:null},model:{captions:false,track:{}},members:{player:{expander:{funcName:"fluid.prefs.enactor.captions.youTubePlayer.initYTPlayer",args:["{that}"]}},tracklist:[]},invokers:{applyCaptions:{funcName:"fluid.prefs.enactor.captions.youTubePlayer.applyCaptions",args:["{that}.player","{that}.model.track","{that}.model.captions"]}},modelListeners:{setCaptions:{listener:"{that}.applyCaptions",path:["captions","track"],excludeSource:"init"}},listeners:{"onApiChange.prepTrack":{listener:"fluid.prefs.enactor.captions.youTubePlayer.prepTrack",args:["{that}","{that}.player"]},"onApiChange.applyCaptions":{listener:"{that}.applyCaptions",priority:"after:prepTrack"}}});fluid.prefs.enactor.captions.youTubePlayer.enableJSAPI=function(videoElm){videoElm=$(videoElm);var url=new URL(videoElm.attr("src"));url.searchParams.set("enablejsapi",1);videoElm.attr("src",url.toString());};fluid.prefs.enactor.captions.youTubePlayer.initYTPlayer=function(that){var id=fluid.allocateSimpleId(that.container);fluid.prefs.enactor.captions.youTubePlayer.enableJSAPI(that.container);return new YT.Player(id,{events:{onReady:that.events.onReady.fire,onStateChange:that.events.onStateChange.fire,onPlaybackQualityChange:that.events.onPlaybackQualityChange.fire,onPlaybackRateChange:that.events.onPlaybackRateChange.fire,onError:that.events.onError.fire,onApiChange:that.events.onApiChange.fire}});};fluid.prefs.enactor.captions.youTubePlayer.applyCaptions=function(player,track,state){if(player.loadModule)if(state){player.loadModule("captions");player.setOption("captions","track",track);}else player.unloadModule("captions");};fluid.prefs.enactor.captions.youTubePlayer.prepTrack=function(that,player){player.loadModule("captions");var tracklist=player.getOption("captions","tracklist");if(tracklist.length&&!that.tracklist.length){that.tracklist=tracklist;that.applier.change("track",tracklist[0],"ADD","prepTrack");}};"use strict";fluid.defaults("fluid.prefs.enactor.letterSpace",{gradeNames:["fluid.prefs.enactor.spacingSetter"],preferenceMap:{"fluid.prefs.letterSpace":{"model.value":"value"}},styles:{enabled:"fl-letterSpace-enabled"},cssProp:"letter-spacing",cssCustomProp:{factor:"--fl-letterSpace-factor",size:"--fl-letterSpace"}});"use strict";fluid.defaults("fluid.prefs.enactor.selfVoicing",{gradeNames:["fluid.prefs.enactor","fluid.viewComponent"],preferenceMap:{"fluid.prefs.speak":{"model.enabled":"value"}},selectors:{controller:".flc-prefs-selfVoicingWidget"},events:{onInitOrator:null},modelListeners:{enabled:{funcName:"fluid.prefs.enactor.selfVoicing.initOrator",args:["{that}","{change}.value"],namespace:"initOrator"}},components:{orator:{type:"fluid.orator",createOnEvent:"onInitOrator",container:"{fluid.prefs.enactor.selfVoicing}.container",options:{model:{enabled:"{selfVoicing}.model.enabled"},controller:{parentContainer:"{fluid.prefs.enactor.selfVoicing}.dom.controller"}}}},distributeOptions:{oratorOpts:{source:"{that}.options.orator",target:"{that > orator}.options"},ignoreSelectorForEnactor:{source:"{that}.options.ignoreSelectorForEnactor.forEnactor",target:"{that > orator > domReader > parser}.options.ignoredSelectors.forEnactor"}}});fluid.prefs.enactor.selfVoicing.initOrator=function(that,enabled){if(enabled&&!that.orator)that.events.onInitOrator.fire();};"use strict";fluid.defaults("fluid.prefs.enactor.syllabification",{gradeNames:["fluid.prefs.enactor","fluid.prefs.enactor.syllabification.patterns","fluid.viewComponent"],preferenceMap:{"fluid.prefs.syllabification":{"model.enabled":"value"}}
118,selectors:{separator:".flc-syllabification-separator",softHyphenPlaceholder:".flc-syllabification-softHyphenPlaceholder"},strings:{languageUnavailable:"Syllabification not available for %lang",patternLoadError:"The pattern file %src could not be loaded. %errorMsg"},markup:{separator:'<span class="flc-syllabification-separator fl-syllabification-separator"></span>',softHyphenPlaceholder:'<span class="flc-syllabification-softHyphenPlaceholder fl-syllabification-softHyphenPlaceholder"></span>'},model:{enabled:false},events:{afterParse:null,afterSyllabification:null,onParsedTextNode:null,onNodeAdded:null,onError:null},listeners:{"afterParse.waitForHyphenators":{listener:"fluid.prefs.enactor.syllabification.waitForHyphenators",args:["{that}"]},"onParsedTextNode.syllabify":{listener:"{that}.apply",args:["{arguments}.0.node","{arguments}.0.lang"]},"onNodeAdded.syllabify":{listener:"{that}.parse",args:["{arguments}.0","{that}.model.enabled"]}},components:{parser:{type:"fluid.textNodeParser",options:{listeners:{"afterParse.boil":"{syllabification}.events.afterParse","onParsedTextNode.boil":"{syllabification}.events.onParsedTextNode"}}},observer:{type:"fluid.mutationObserver",container:"{that}.container",options:{defaultObserveConfig:{attributes:false},modelListeners:{"{syllabification}.model.enabled":{funcName:"fluid.prefs.enactor.syllabification.disconnectObserver",priority:"before:setPresentation",args:["{that}","{change}.value"],namespace:"disconnectObserver"}},listeners:{"onNodeAdded.boil":"{syllabification}.events.onNodeAdded","{syllabification}.events.afterSyllabification":{listener:"{that}.observe",namespace:"enableObserver"}}}}},distributeOptions:{ignoreSelectorForEnactor:{source:"{that}.options.ignoreSelectorForEnactor.forEnactor",target:"{that > parser}.options.ignoredSelectors.forEnactor"}},members:{hyphenators:{}},modelListeners:{enabled:{listener:"{that}.setPresentation",args:["{that}.container","{change}.value"],namespace:"setPresentation"}},invokers:{apply:{funcName:"fluid.prefs.enactor.syllabification.syllabify",args:["{that}","{arguments}.0","{arguments}.1"]},remove:{funcName:"fluid.prefs.enactor.syllabification.removeSyllabification",args:["{that}","{that}.options.ignoreSelectorForEnactor"]},setPresentation:{funcName:"fluid.prefs.enactor.syllabification.setPresentation",args:["{that}","{arguments}.0","{arguments}.1"]},parse:{funcName:"fluid.prefs.enactor.syllabification.parse",args:["{that}","{arguments}.0"]},createHyphenator:{funcName:"fluid.prefs.enactor.syllabification.createHyphenator",args:["{that}","{arguments}.0","{arguments}.1"]},getHyphenator:{funcName:"fluid.prefs.enactor.syllabification.getHyphenator",args:["{that}","{arguments}.0"]},getPattern:"fluid.prefs.enactor.syllabification.getPattern",hyphenateNode:{funcName:"fluid.prefs.enactor.syllabification.hyphenateNode",args:["{arguments}.0","{arguments}.1","{that}.options.markup.separator","{that}.options.markup.softHyphenPlaceholder"]},injectScript:{this:"$",method:"ajax",args:[{url:"{arguments}.0",dataType:"script",cache:true}]}}});fluid.prefs.enactor.syllabification.disconnectObserver=function(that,state){if(!state)that.disconnect();};fluid.prefs.enactor.syllabification.waitForHyphenators=function(that){var hyphenatorPromises=fluid.values(that.hyphenators);var promise=fluid.promise.sequence(hyphenatorPromises);promise.then((function(){that.events.afterSyllabification.fire();}),that.events.onError.fire);return promise;};fluid.prefs.enactor.syllabification.parse=function(that,elm){elm=fluid.unwrap(elm);elm=elm.nodeType===Node.ELEMENT_NODE?$(elm):$(elm.parentNode);that.parser.parse(elm);};fluid.prefs.enactor.syllabification.createHyphenator=function(that,pattern,lang){var promise=fluid.promise();var globalPath=["Hypher","languages",lang];var hyphenator=fluid.getGlobalValue(globalPath);if(hyphenator){promise.resolve(hyphenator);return promise;}var src=fluid.stringTemplate(pattern,that.options.terms);var injectPromise=that.injectScript(src);injectPromise.then((function(){hyphenator=fluid.getGlobalValue(globalPath);promise.resolve(hyphenator);}),(function(error){var errorInfo={src,errorMsg:typeof error==="string"?error:""};var errorMessage=fluid.stringTemplate(that.options.strings.patternLoadError,errorInfo);fluid.log(fluid.logLevel.WARN,errorMessage,error);that.events.onError.fire(errorMessage,error);promise.resolve();}));return promise;};fluid.prefs.enactor.syllabification.getPattern=function(lang,patterns){var src=patterns[lang];if(!src){lang=lang.split("-")[0];src=patterns[lang];}return {lang,src};};fluid.prefs.enactor.syllabification.getHyphenator=function(that,lang){var promise=fluid.promise();var hyphenatorPromise;if(!lang){promise.resolve();return promise;}var pattern=that.getPattern(lang.toLowerCase(),that.options.patterns);if(!pattern.src){hyphenatorPromise=promise;promise.resolve();return promise;}if(that.hyphenators[pattern.src])return that.hyphenators[pattern.src];hyphenatorPromise=that.createHyphenator(pattern.src,pattern.lang);fluid.promise.follow(hyphenatorPromise,promise);that.hyphenators[pattern.src]=hyphenatorPromise;return promise;};fluid.prefs.enactor.syllabification.syllabify=function(that,node,lang){var hyphenatorPromise=that.getHyphenator(lang);hyphenatorPromise.then((function(hyphenator){that.hyphenateNode(hyphenator,node);}));};fluid.prefs.enactor.syllabification.insertIntoTextNode=function(node,toInsert,position){node=node.splitText(position);node.parentNode.insertBefore(toInsert,node);return node;};fluid.prefs.enactor.syllabification.hyphenateNode=function(hyphenator,node,separatorMarkup,softHyphenPlaceholderMarkup){if(!hyphenator||!node.textContent)return;var softHyphen="ÂÂ";var hyphenated=hyphenator.hyphenateText(node.textContent);var segs=hyphenated.split(softHyphen);for(var i=0;i<segs.length;i++){if(node.textContent.startsWith(softHyphen)){var placeholder=$(softHyphenPlaceholderMarkup)[0];var newNode=fluid.prefs.enactor.syllabification.insertIntoTextNode(node,placeholder,1);node.remove();node=newNode;}if(i<segs.length-1){var separator=$(separatorMarkup)[0];node=fluid.prefs.enactor.syllabification.insertIntoTextNode(node,separator,segs[i].length);}}};fluid.prefs.enactor.syllabification.removeSyllabification=function(that,ignoreSelectorForEnactor){that.locate("separator").each((function(index,elm){if(ignoreSelectorForEnactor){var selectors=Object.values(ignoreSelectorForEnactor).filter(((sel)=>sel));if(selectors.find(((selector)=>elm.closest(selector))))return;}var parent=elm.parentNode;$(elm).remove();parent.normalize();}));that.locate("softHyphenPlaceholder").each((function(index,elm){var parent=elm.parentNode;elm.replaceWith(document.createTextNode("ÂÂ"));parent.normalize();}));};fluid.prefs.enactor.syllabification.setPresentation=function(that,elm,state){if(state)that.parse(elm);else that.remove();};fluid.defaults("fluid.prefs.enactor.syllabification.patterns",{terms:{patternPrefix:"../../../lib/hypher/patterns"},patterns:{be:"%patternPrefix/bg.js",bn:"%patternPrefix/bn.js",ca:"%patternPrefix/ca.js",cs:"%patternPrefix/cs.js",da:"%patternPrefix/da.js",de
118:"%patternPrefix/de.js",el:"%patternPrefix/el-monoton.js","el-monoton":"%patternPrefix/el-monoton.js","el-polyton":"%patternPrefix/el-polyton.js",en:"%patternPrefix/en-us.js","en-gb":"%patternPrefix/en-gb.js","en-us":"%patternPrefix/en-us.js",es:"%patternPrefix/es.js",fi:"%patternPrefix/fi.js",fr:"%patternPrefix/fr.js",grc:"%patternPrefix/grc.js",gu:"%patternPrefix/gu.js",hi:"%patternPrefix/hi.js",hu:"%patternPrefix/hu.js",hy:"%patternPrefix/hy.js",is:"%patternPrefix/is.js",it:"%patternPrefix/it.js",kn:"%patternPrefix/kn.js",la:"%patternPrefix/la.js",lt:"%patternPrefix/lt.js",lv:"%patternPrefix/lv.js",ml:"%patternPrefix/ml.js",nb:"%patternPrefix/nb-no.js","nb-no":"%patternPrefix/nb-no.js",no:"%patternPrefix/nb-no.js",nl:"%patternPrefix/nl.js",or:"%patternPrefix/or.js",pa:"%patternPrefix/pa.js",pl:"%patternPrefix/pl.js",pt:"%patternPrefix/pt.js",ru:"%patternPrefix/ru.js",sk:"%patternPrefix/sk.js",sl:"%patternPrefix/sl.js",sv:"%patternPrefix/sv.js",ta:"%patternPrefix/ta.js",te:"%patternPrefix/te.js",tr:"%patternPrefix/tr.js",uk:"%patternPrefix/uk.js"}});"use strict";fluid.defaults("fluid.prefs.enactor.localization",{gradeNames:["fluid.prefs.enactor","fluid.contextAware","fluid.resolveRoot"],preferenceMap:{"fluid.prefs.localization":{"model.lang":"value"}},contextAwareness:{localeChange:{checks:{urlPath:{contextValue:"{localization}.options.localizationScheme",equals:"urlPath",gradeNames:"fluid.prefs.enactor.localization.urlPathLocale",priority:"after:inPanel"}}}}});fluid.defaults("fluid.prefs.enactor.localization.urlPathLocale",{langMap:{},langSegValues:{expander:{funcName:"fluid.values",args:["{that}.options.langMap"]}},modelRelay:[{target:"urlLangSeg",singleTransform:{type:"fluid.transforms.valueMapper",defaultInput:"{that}.model.lang",match:"{that}.options.langMap"}}],modelListeners:{urlLangSeg:{funcName:"{that}.updatePathname",args:["{change}.value"],namespace:"updateURLPathname"}},invokers:{updatePathname:{funcName:"fluid.prefs.enactor.localization.urlPathLocale.updatePathname",args:["{that}","{arguments}.0","{that}.options.langSegValues","{that}.options.langSegIndex"]},getPathname:"fluid.prefs.enactor.localization.urlPathLocale.getPathname",setPathname:"fluid.prefs.enactor.localization.urlPathLocale.setPathname"}});fluid.prefs.enactor.localization.urlPathLocale.getPathname=function(){return location.pathname;};fluid.prefs.enactor.localization.urlPathLocale.setPathname=function(pathname){location.pathname=pathname;};fluid.prefs.enactor.localization.urlPathLocale.updatePathname=function(that,urlLangSeg,langSegValues,langSegIndex){if(fluid.isValue(urlLangSeg)){langSegIndex=langSegIndex||1;var pathname=that.getPathname();var pathSegs=pathname.split("/");var currentLang=pathSegs[langSegIndex];var hasLang=!!currentLang&&langSegValues.indexOf(currentLang)>=0;if(hasLang)if(urlLangSeg)pathSegs[langSegIndex]=urlLangSeg;else if(langSegIndex===pathSegs.length-1)pathSegs.pop();else pathSegs.splice(langSegIndex,1);else{if(urlLangSeg)pathSegs.splice(langSegIndex,0,urlLangSeg);}var newPathname=pathSegs.join("/");if(newPathname!==pathname)that.setPathname(newPathname);}};"use strict";fluid.defaults("fluid.prefs.enactor.wordSpace",{gradeNames:["fluid.prefs.enactor.spacingSetter"],preferenceMap:{"fluid.prefs.wordSpace":{"model.value":"value"}},styles:{enabled:"fl-wordSpace-enabled"},cssProp:"word-spacing",cssCustomProp:{factor:"--fl-wordSpace-factor",size:"--fl-wordSpace"}});"use strict";fluid.defaults("fluid.prefs.initialModel.starter",{gradeNames:["fluid.prefs.initialModel"],members:{initialModel:{preferences:{textFont:"default",theme:"default",textSize:1,lineSpace:1,toc:false,inputs:false}}}});fluid.defaults("fluid.uiEnhancer.cssClassEnhancerBase",{gradeNames:["fluid.component"],classnameMap:{textFont:{default:"",system:"fl-font-system-ui",times:"fl-font-times",comic:"fl-font-comic-sans",arial:"fl-font-arial",verdana:"fl-font-verdana","open-dyslexic":"fl-font-open-dyslexic","atkinson-hyperlegible":"fl-font-atkinson-hyperlegible"},theme:{default:"fl-theme-prefsEditor-default",bw:"fl-theme-bw",wb:"fl-theme-wb",by:"fl-theme-by",yb:"fl-theme-yb",lgdg:"fl-theme-lgdg",gd:"fl-theme-gd",gw:"fl-theme-gw",bbr:"fl-theme-bbr"},inputs:"fl-input-enhanced"}});fluid.defaults("fluid.uiEnhancer.browserTextEnhancerBase",{gradeNames:["fluid.component"],fontSizeMap:{"xx-small":"9px","x-small":"11px",small:"13px",medium:"15px",large:"18px","x-large":"23px","xx-large":"30px"}});fluid.defaults("fluid.uiEnhancer.starterEnactors",{gradeNames:["fluid.uiEnhancer","fluid.uiEnhancer.cssClassEnhancerBase","fluid.uiEnhancer.browserTextEnhancerBase"],model:"{fluid.prefs.initialModel}.initialModel.preferences",components:{textSize:{type:"fluid.prefs.enactor.textSize",container:"{uiEnhancer}.container",options:{fontSizeMap:"{uiEnhancer}.options.fontSizeMap",model:{value:"{uiEnhancer}.model.textSize"}}},textFont:{type:"fluid.prefs.enactor.textFont",container:"{uiEnhancer}.container",options:{classes:"{uiEnhancer}.options.classnameMap.textFont",model:{value:"{uiEnhancer}.model.textFont"}}},lineSpace:{type:"fluid.prefs.enactor.lineSpace",container:"{uiEnhancer}.container",options:{fontSizeMap:"{uiEnhancer}.options.fontSizeMap",model:{value:"{uiEnhancer}.model.lineSpace"}}},contrast:{type:"fluid.prefs.enactor.contrast",container:"{uiEnhancer}.container",options:{classes:"{uiEnhancer}.options.classnameMap.theme",model:{value:"{uiEnhancer}.model.theme"}}},enhanceInputs:{type:"fluid.prefs.enactor.enhanceInputs",container:"{uiEnhancer}.container",options:{cssClass:"{uiEnhancer}.options.classnameMap.inputs",model:{value:"{uiEnhancer}.model.inputs"}}},tableOfContents:{type:"fluid.prefs.enactor.tableOfContents",container:"{uiEnhancer}.container",options:{tocTemplate:"{uiEnhancer}.options.tocTemplate",tocMessage:"{uiEnhancer}.options.tocMessage",model:{toc:"{uiEnhancer}.model.toc"}}}}});fluid.defaults("fluid.prefs.starterPanels",{gradeNames:["fluid.prefs.prefsEditor"],selectors:{textSize:".flc-prefsEditor-text-size",textFont:".flc-prefsEditor-text-font",lineSpace:".flc-prefsEditor-line-space",contrast:".flc-prefsEditor-contrast",layoutControls:".flc-prefsEditor-layout-control
118s",enhanceInputs:".flc-prefsEditor-enhanceInputs"},components:{textSize:{type:"fluid.prefs.panel.textSize",container:"{prefsEditor}.dom.textSize",createOnEvent:"onPrefsEditorMarkupReady",options:{gradeNames:"fluid.prefs.prefsEditorConnections",model:{value:"{prefsEditor}.model.preferences.textSize"},messageBase:"{messageLoader}.resources.textSize.parsed",members:{resources:{template:"{templateLoader}.resources.textSize"}},step:.1,range:{min:1,max:2}}},lineSpace:{type:"fluid.prefs.panel.lineSpace",container:"{prefsEditor}.dom.lineSpace",createOnEvent:"onPrefsEditorMarkupReady",options:{gradeNames:"fluid.prefs.prefsEditorConnections",model:{value:"{prefsEditor}.model.preferences.lineSpace"},messageBase:"{messageLoader}.resources.lineSpace.parsed",members:{resources:{template:"{templateLoader}.resources.lineSpace"}},step:.1,range:{min:1,max:2}}},textFont:{type:"fluid.prefs.panel.textFont",container:"{prefsEditor}.dom.textFont",createOnEvent:"onPrefsEditorMarkupReady",options:{gradeNames:"fluid.prefs.prefsEditorConnections",classnameMap:"{uiEnhancer}.options.classnameMap",model:{value:"{prefsEditor}.model.preferences.textFont"},messageBase:"{messageLoader}.resources.textFont.parsed",members:{resources:{template:"{templateLoader}.resources.textFont"}},stringArrayIndex:{textFont:["textFont-default","textFont-system","textFont-times","textFont-comic","textFont-arial","textFont-verdana","textFont-open-dyslexic","textFont-atkinson-hyperlegible"]},controlValues:{textFont:["default","system","times","comic","arial","verdana","open-dyslexic","atkinson-hyperlegible"]}}},contrast:{type:"fluid.prefs.panel.contrast",container:"{prefsEditor}.dom.contrast",createOnEvent:"onPrefsEditorMarkupReady",options:{gradeNames:"fluid.prefs.prefsEditorConnections",classnameMap:"{uiEnhancer}.options.classnameMap",model:{value:"{prefsEditor}.model.preferences.theme"},messageBase:"{messageLoader}.resources.contrast.parsed",members:{resources:{template:"{templateLoader}.resources.contrast"}},stringArrayIndex:{theme:["contrast-default","contrast-bw","contrast-wb","contrast-by","contrast-yb","contrast-lgdg","contrast-gw","contrast-gd","contrast-bbr"]},controlValues:{theme:["default","bw","wb","by","yb","lgdg","gw","gd","bbr"]}}},layoutControls:{type:"fluid.prefs.panel.layoutControls",container:"{prefsEditor}.dom.layoutControls",createOnEvent:"onPrefsEditorMarkupReady",options:{gradeNames:"fluid.prefs.prefsEditorConnections",model:{value:"{prefsEditor}.model.preferences.toc"},messageBase:"{messageLoader}.resources.layoutControls.parsed",members:{resources:{template:"{templateLoader}.resources.layoutControls"}}}},enhanceInputs:{type:"fluid.prefs.panel.enhanceInputs",container:"{prefsEditor}.dom.enhanceInputs",createOnEvent:"onPrefsEditorMarkupReady",options:{gradeNames:"fluid.prefs.prefsEditorConnections",model:{value:"{prefsEditor}.model.preferences.inputs"},messageBase:"{messageLoader}.resources.enhanceInputs.parsed",members:{resources:{template:"{templateLoader}.resources.enhanceInputs"}}}}}});fluid.defaults("fluid.prefs.starterTemplateLoader",{gradeNames:["fluid.resourceLoader"],resources:{textSize:"%templatePrefix/PrefsEditorTemplate-textSize.html",lineSpace:"%templatePrefix/PrefsEditorTemplate-lineSpace.html",textFont:"%templatePrefix/PrefsEditorTemplate-textFont.html",contrast:"%templatePrefix/PrefsEditorTemplate-contrast.html",layoutControls:"%templatePrefix/PrefsEditorTemplate-layout.html",enhanceInputs:"%templatePrefix/PrefsEditorTemplate-enhanceInputs.html"}});fluid.defaults("fluid.prefs.starterSeparatedPanelTemplateLoader",{gradeNames:["fluid.prefs.starterTemplateLoader"],resources:{prefsEditor:"%templatePrefix/StaticSeparatedPanelPrefsEditor.html"}});fluid.defaults("fluid.prefs.starterFullPreviewTemplateLoader",{gradeNames:["fluid.prefs.starterTemplateLoader"],resources:{prefsEditor:"%templatePrefix/FullPreviewPrefsEditor.html"}});fluid.defaults("fluid.prefs.starterFullNoPreviewTemplateLoader",{gradeNames:["fluid.prefs.starterTemplateLoader"],resources:{prefsEditor:"%templatePrefix/FullNoPreviewPrefsEditor.html"}});fluid.defaults("fluid.prefs.starterMessageLoader",{gradeNames:["fluid.resourceLoader"],resources:{prefsEditor:"%messagePrefix/prefsEditor.json",textSize:"%messagePrefix/textSize.json",textFont:"%messagePrefix/textFont.json",lineSpace:"%messagePrefix/lineSpace.json",contrast:"%messagePrefix/contrast.json",layoutControls:"%messagePrefix/tableOfContents.json",enhanceInputs:"%messagePrefix/enhanceInputs.json"}});"use strict";fluid.defaults("fluid.prefs.arrowScrolling",{gradeNames:["fluid.modelComponent"],selectors:{scrollC
118ontainer:".flc-prefsEditor-scrollContainer"},onScrollDelay:100,model:{},events:{beforeReset:null,onScroll:null},modelRelay:{target:"panelIndex",forward:{excludeSource:"init"},namespace:"limitPanelIndex",singleTransform:{type:"fluid.transforms.limitRange",input:"{that}.model.panelIndex",min:0,max:"{that}.model.panelMaxIndex"}},modelListeners:{panelIndex:{listener:"fluid.prefs.arrowScrolling.scrollToPanel",args:["{that}","{change}.value"],excludeSource:["scrollEvent"],namespace:"scrollToPanel"}},listeners:{"onReady.scrollEvent":{this:"{that}.dom.scrollContainer",method:"on",args:["scroll",{expander:{func:"fluid.debounce",args:["{that}.events.onScroll.fire","{that}.options.onScrollDelay"]}}]},"onPrefsEditorMarkupReady.setPanelMaxIndex":{changePath:"panelMaxIndex",value:{expander:{funcName:"fluid.prefs.arrowScrolling.calculatePanelMaxIndex",args:["{that}.dom.panels"]}}},"beforeReset.resetPanelIndex":{listener:"{that}.applier.fireChangeRequest",args:{path:"panelIndex",value:0,type:"ADD",source:"reset"}},"onScroll.setPanelIndex":{changePath:"panelIndex",value:{expander:{funcName:"fluid.prefs.arrowScrolling.getClosestPanelIndex",args:"{that}.dom.panels"}},source:"scrollEvent"}},invokers:{eventToScrollIndex:{funcName:"fluid.prefs.arrowScrolling.eventToScrollIndex",args:["{that}","{arguments}.0"]}},distributeOptions:{"arrowScrolling.panel.listeners.bindScrollArrows":{record:{"afterRender.bindScrollArrows":{this:"{that}.dom.header",method:"on",args:["click","{prefsEditor}.eventToScrollIndex"]}},target:"{that > fluid.prefs.panel}.options.listeners"}}});fluid.prefs.arrowScrolling.calculatePanelMaxIndex=function(panels){return Math.max(0,panels.length-1);};fluid.prefs.arrowScrolling.eventToScrollIndex=function(that,event){event.preventDefault();var target=$(event.target);var midPoint=target.width()/2;var currentIndex=that.model.panelIndex||0;var scrollToIndex=currentIndex+(event.offsetX<midPoint?-1:1);that.applier.change("panelIndex",scrollToIndex,"ADD","eventToScrollIndex");};fluid.prefs.arrowScrolling.scrollToPanel=function(that,panelIndex){panelIndex=panelIndex||0;var panels=that.locate("panels");var scrollContainer=that.locate("scrollContainer");var panel=panels.eq(panelIndex);if(panel.width())scrollContainer.scrollLeft(scrollContainer.scrollLeft()+panels.eq(panelIndex).offset().left);};fluid.prefs.arrowScrolling.getClosestPanelIndex=function(panels){var panelArray=fluid.transform(panels,(function(panel,idx){return {index:idx,offset:Math.abs($(panel).offset().left)};}));panelArray.sort((function(a,b){return a.offset-b.offset;}));return fluid.get(panelArray,["0","index"])||0;};"use strict";fluid.registerNamespace("fluid.dom");fluid.dom.getDocumentHeight=function(dokkument){var body=$("body",dokkument)[0];return body.offsetHeight;};fluid.defaults("fluid.prefs.separatedPanel",{gradeNames:["fluid.prefs.prefsEditorLoader","fluid.contextAware"],events:{onReady:null,onCreateSlidingPanelReady:{events:{onPrefsEditorMessagesLoaded:"onPrefsEditorMessagesLoaded"}},templatesAndMessagesReady:{events:{templatesLoaded:"onPrefsEditorTemplatesLoaded",messagesLoaded:"onPrefsEditorMessagesLoaded"}}},lazyLoad:false,contextAwareness:{lazyLoad:{checks:{lazyLoad:{contextValue:"{fluid.prefs.separatedPanel}.options.lazyLoad",gradeNames:"fluid.prefs.separatedPanel.lazyLoad"}}}},selectors:{reset:".flc-prefsEditor-reset",prefsEditor:".flc-slidingPanel-panel",containerMarker:".flc-prefsEditor-main"},styles:{blockingClasses:["fl-blocking-theme","fl-blocking-font","fl-blocking-input-enhanced"]},listeners:{"onReady.bindEvents":{listener:"fluid.prefs.separatedPanel.bindEvents",args:["{separatedPanel}.prefsEditor","{separatedPanel}.innerEnhancer","{separatedPanel}"]},"onCreate.hideReset":{listener:"fluid.prefs.separatedPanel.hideReset",args:["{separatedPanel}"]},"onCreate.applyInitialClasses":{listener:"fluid.prefs.separatedPanel.applyInitialClasses",args:["{separatedPanel}"]}},components:{slidingPanel:{type:"fluid.slidingPanel",container:"{separatedPanel}.container",createOnEvent:"onCreateSlidingPanelReady",options:{gradeNames:["fluid.prefs.msgLookup"],strings:{showText:"{that}.msgLookup.slidingPanelShowText",hideText:"{that}.msgLookup.slidingPanelHideText",showTextAriaLabel:"{that}.msgLookup.showTextAriaLabel",hideTextAriaLabel:"{that}.msgLookup.hideTextAriaLabel",panelLabel:"{that}.msgLookup.slidingPanelPanelLabel"},components:{msgResolver:{type:"fluid.messageResolver",options:{messageBase:"{messageLoader}.resources.prefsEditor.parsed"}}}}},innerEnhancer:{type:"fluid.uiEnhancer",container:"{separatedPanel}.dom.prefsEditor",options:{gradeNames:["{pageEnhancer}.uiEnhancer.options.userGrades"],tocTemplate:"{pageEnhancer}.uiEnhancer.options.tocTemplate",distributeOptions:{applyInitValue:{record:true,target:"{that enactor}.options.applyInitValue"},syllabifyHiddenContents:{record:true,target:"{that fluid.prefs.enactor.syllabification > parser}.options.parseHidden"},removeTocEnactor:{record:"fluid.emptySubcomponent",target:"{that fluid.prefs.enactor.tableOfContents}.type"},removeOrator:{record:"fluid.emptySubcomponent",target:"{that fluid.orator}.type"},removeSelfVoicingEnactor:{record:"fluid.emptySubcomponent",target:"{that fluid.prefs.enactor.selfVoicing}.type"}}}},prefsEditor:{createOnEvent:"templatesAndMessagesReady",container:"{separatedPanel}.dom.prefsEditor",options:{gradeNames:["fluid.prefs.uiEnhancerRelay","fluid.prefs.arrowScrolling"],model:{preferences:"{separatedPanel}.model.preferences"},autoSave:true,events:{updateEnhancerModel:"{that}.events.modelChanged"},listeners:{"onCreate.bindReset":{this:"{separatedPanel}.dom.reset",method:"on",args:["click","{that}.reset"]},"{separatedPanel}.events.onReady":"{that}.events.onPrefsEditorRefresh.fire","afterReset.applyChanges":"{that}.applyChanges"}}}},outerEnhancerOptions:"{originalEnhancerOptions}.options.originalUserOptions",distributeOptions:{"separatedPanel.slidingPanel":{source:"{that}.options.slidingPanel",removeSource:true,target:"{that > slidingPanel}.options"},"separatedPanel.innerEnhancer.outerEnhancerOptions":{source:"{that}.options.outerEnhancerOptions",removeSource:true,target:"{that > innerEnhancer}.options"},"separatedPanel.ignoreSelectorForToc":{source:"{that}.options.selectors.containerMarker",target:"{fluid.prefs.builder > enhancer fluid.prefs.enactor.tableOfContents}.options.ignoreSelectorForEnactor.forEnactor"},"separatedPanel.ignoreSelectorForSelfVoicing":{source:"{that}.options.selectors.containerMarker",target:"{fluid.prefs.builder > enhancer fluid.prefs.enactor.selfVoicing}.options.ignoreSelectorForEnactor.forEnactor"},"separatedPanel.ignoreSelectorForSyllabification":{source:"{that}.options.selectors.prefsEditor",target:"{fluid.prefs.builder > enhancer fluid.prefs.enactor.syllabification}.options.ignoreSelectorForEnactor.forEnactor"}}});fluid.prefs.separatedPanel.hideReset=function(separatedPanel){separatedPanel.locate("reset").hide();};fluid.prefs.separatedPanel.applyInitialClasses=function(separatedPanel){separatedPanel.container[0].classList.add(separatedPanel.options.selectors.containerMarker.substring(1));separatedPanel.locate("prefsEditor")[0].classList.add(...separatedPanel.options.styles.blockingClasses);};fluid.prefs.separatedPanel.bindEvents=function(prefsEditor,innerEnhancer,separatedPanel){var separatedPanelId=separatedPanel.slidingPanel.panelId;separatedPanel.locate("reset").attr({"aria-controls":separatedPanelId,role:"button"});separatedPanel.slidingPanel.events.afterPanelHide.addListener((function(){prefsEditor.events.onPrefsEditorRefresh.fire();}),"updateView");prefsEditor.events.afterReset.addListener((function(prefsEditor){prefsEditor.events.onPrefsEditorRefresh.fire();}),"updateView");prefsEditor.events.onPrefsEditorRefresh.addListener((function(){innerEnhancer.updateModel(prefsEditor.model.preferences);}),"updateModel");separatedPanel.slidingPanel.events.afterPanelShow.addListener((function(){separatedPanel.prefsEditor.container.slideDown(separatedPanel.slidingPanel.options.animationDurations.show);separatedPanel.locate("reset").show();}),"openPanel");separatedPanel.slidingPanel.events.onPanelHide.addListener((function(){separatedPanel.locate("reset").hide();}),"hideReset");};fluid.defaults("fluid.prefs.separatedPanel.lazyLoad",{events:{onLazyLoad:null,onPrefsEditorMessagesPreloaded:null,onCreateSlidingPanelReady:{events:{onPrefsEditorMessagesLoaded:"onPrefsEditorMessagesPreloaded"}},templatesAndMessagesReady:{events:{onLazyLoad:"onLazyLoad"}}},components:{templateLoader:{createOnEvent:"onLazyLoad"},messageLoader:{options:{events:{onResourcesPreloaded:"{separatedPanel}.events.onPrefsEditorMessagesPreloaded"},preloadResources:"prefsEditor",listeners:{"onCreate.loadResources":{listener:"fluid.prefs.separatedPanel.lazyLoad.preloadResources",args:["{that}","{that}.options.preloadResources"]},"{separatedPanel}.events.onLazyLoad":{listener:"{that}.resourceFetcher.fetchAll"}}}},slidingPanel:{options:{invokers:{operateShow:{funcName:"fluid.prefs.separatedPanel.lazyLoad.showPanel",args:["{separatedPanel}","{that}.events.afterPanelShow.fire"]}}}}}});fluid.prefs.separatedPanel.lazyLoad.showPanel=function(separatedPanel,callback){if(separatedPanel.prefsEditor)fluid.invokeLater(callback);else{separatedPanel.events.onReady.addListener((function(that){that.events.onReady.removeListener("showPanelCallBack");fluid.invokeLater(callback);}),"showPanelCallBack");separatedPanel.events.onLazyLoad.fire();}};fluid.prefs.separatedPanel.lazyLoad.preloadResources=function(that,toPreload){toPreload=fluid.makeArray(toPreload);var resourceFetcher=that.resourceFetcher;var preloadPromises=toPreload.map((function(onePreload){return fluid.fetchResources.fetchOneResource(resourceFetcher.resourceSpecs[onePreload],resourceFetcher);}));var preloadAllPromise=fluid.promise.sequence(preloadPromises);
118preloadAllPromise.then((function(){that.events.onResourcesPreloaded.fire(that.resources);}));};"use strict";fluid.defaults("fluid.prefs.fullNoPreview",{gradeNames:["fluid.prefs.prefsEditorLoader"],components:{prefsEditor:{container:"{that}.container",options:{listeners:{"afterReset.applyChanges":{listener:"{that}.applyChanges"},"afterReset.save":{listener:"{that}.save",priority:"after:applyChanges"}}}}},events:{onReady:null}});"use strict";fluid.defaults("fluid.prefs.fullPreview",{gradeNames:["fluid.prefs.prefsEditorLoader"],outerUiEnhancerOptions:"{originalEnhancerOptions}.options.originalUserOptions",outerUiEnhancerGrades:"{originalEnhancerOptions}.uiEnhancer.options.userGrades",components:{prefsEditor:{container:"{that}.container",options:{components:{preview:{type:"fluid.prefs.preview",createOnEvent:"onReady",container:"{prefsEditor}.dom.previewFrame",options:{listeners:{"onReady.boilOnPreviewReady":"{fullPreview}.events.onPreviewReady"}}}},listeners:{"onReady.boil":{listener:"{prefsEditorLoader}.events.onPrefsEditorReady"}},distributeOptions:{"fullPreview.prefsEditor.preview":{source:"{that}.options.preview",removeSource:true,target:"{that > preview}.options"}}}}},events:{onPrefsEditorReady:null,onPreviewReady:null,onReady:{events:{onPrefsEditorReady:"onPrefsEditorReady",onPreviewReady:"onPreviewReady"},args:"{that}"}},distributeOptions:{"fullPreview.enhancer.outerUiEnhancerOptions":{source:"{that}.options.outerUiEnhancerOptions",target:"{that enhancer}.options"},"fullPreview.enhancer.previewEnhancer":{source:"{that}.options.previewEnhancer",target:"{that enhancer}.options"},"fullPreview.preview":{source:"{that}.options.preview",target:"{that preview}.options"},"fullPreview.enhancer.outerUiEnhancerGrades":{source:"{that}.options.outerUiEnhancerGrades",target:"{that enhancer}.options.gradeNames"}}});"use strict";fluid.registerNamespace("fluid.prefs.schemas");fluid.prefs.schemas.merge=function(target,source){if(!target)target={type:"object",properties:{}};source=source.properties||source;$.extend(true,target.properties,source);return target;};fluid.defaults("fluid.prefs.primaryBuilder",{gradeNames:["fluid.component","{that}.buildPrimary"],schemaIndex:{expander:{func:"fluid.indexDefaults",args:["schemaIndex",{gradeNames:"fluid.prefs.schemas",indexFunc:"fluid.prefs.primaryBuilder.defaultSchemaIndexer"}]}},primarySchema:{},invokers:{buildPrimary:{funcName:"fluid.prefs.primaryBuilder.buildPrimary",args:["{that}.options.schemaIndex","{that}.options.requestedPrefs","{that}.options.primarySchema"]}}});fluid.prefs.primaryBuilder.buildPrimary=function(schemaIndex,preferences,primarySchema){var suppliedPrimaryGradeName="fluid.prefs.schemas.suppliedPrimary"+fluid.allocateGuid();fluid.defaults(suppliedPrimaryGradeName,{gradeNames:["fluid.prefs.schemas"],schema:fluid.filterKeys(primarySchema.properties||primarySchema,preferences)});var primary=[];fluid.each(preferences,(function merge(pref){var schemaGrades=schemaIndex[pref];if(schemaGrades)primary=primary.concat(schemaGrades);}));primary.push(suppliedPrimaryGradeName);return primary;};fluid.prefs.primaryBuilder.defaultSchemaIndexer=function(defaults){if(defaults.schema)return fluid.keys(defaults.schema.properties);return [];};fluid.defaults("fluid.prefs.schemas",{gradeNames:["fluid.component"],mergePolicy:{schema:fluid.prefs.schemas.merge}});"use strict";fluid.registerNamespace("fluid.prefs");fluid.defaults("fluid.prefs.auxSchema",{gradeNames:["fluid.component"],auxiliarySchema:{}});fluid.prefs.mergeAtPath=function(root,path,object){var existingObject=fluid.get(root,path);fluid.set(root,path,$.extend(true,{},existingObject,object));return root;};fluid.prefs.removeKey=function(root,key){var value=root[key];delete root[key];return value;};fluid.prefs.extract=function(root,path,extractedPath){extractedPath=fluid.isValue(extractedPath)?extractedPath:path;var result={};var sourceValue=fluid.prefs.removeKey(root,path);if(sourceValue)fluid.set(result,extractedPath,sourceValue);return result;};fluid.prefs.addCommonOptions=function(root,path,commonOptions,templateValues){templateValues=templateValues||{};
118var existingValue=fluid.get(root,path);if(!existingValue)return root;var opts={},mergePolicy={};fluid.each(commonOptions,(function(value,key){if(key==="container"){var componentType=fluid.get(root,[path,"type"]);var componentOptions=fluid.defaults(componentType);if(fluid.get(componentOptions,["argumentMap","container"])===undefined)return false;}if(key.indexOf("gradeNames")!==-1)mergePolicy[key]=fluid.arrayConcatPolicy;key=fluid.stringTemplate(key,templateValues);value=typeof value==="string"?fluid.stringTemplate(value,templateValues):value;fluid.set(opts,key,value);}));fluid.set(root,path,fluid.merge(mergePolicy,existingValue,opts));};fluid.prefs.checkPrimarySchema=function(primarySchema,prefKey){if(!primarySchema)fluid.fail("The primary schema for "+prefKey+" is not defined.");return !!primarySchema;};fluid.prefs.flattenName=function(name){var regexp=new RegExp("\\.","g");return name.replace(regexp,"_");};fluid.prefs.constructAliases=function(auxSchema,flattenedPrefKey,aliases){aliases=fluid.makeArray(aliases);var prefsEditorModel={};var enhancerModel={};fluid.each(aliases,(function(alias){prefsEditorModel[alias]="{that}.model.preferences."+flattenedPrefKey;enhancerModel[alias]="{that}.model."+flattenedPrefKey;}));fluid.prefs.mergeAtPath(auxSchema,["aliases_prefsEditor","model","preferences"],prefsEditorModel);fluid.prefs.mergeAtPath(auxSchema,["aliases_enhancer","model"],enhancerModel);};fluid.prefs.expandSchemaComponents=function(auxSchema,type,prefKey,alias,componentConfig,commonOptions,modelCommonOptions,mappedDefaults){var componentOptions=fluid.copy(componentConfig)||{};var components={};var initialModel={};var componentName=fluid.prefs.removeKey(componentOptions,"type");var memberName=fluid.prefs.flattenName(componentName);var flattenedPrefKey=fluid.prefs.flattenName(prefKey);if(componentName){components[memberName]={type:componentName,options:componentOptions};var selectors={};if(auxSchema.generatePanelContainers&&type==="panels"){fluid.prefs.removeKey(componentOptions,"container");selectors[memberName]=".flc-prefsEditor-"+flattenedPrefKey;}else selectors=fluid.prefs.extract(componentOptions,"container",memberName);var prefToMemberMap={};
118prefToMemberMap[prefKey]=memberName;var templates=fluid.prefs.extract(componentOptions,"template",memberName);var messages=fluid.prefs.extract(componentOptions,"message",memberName);var preferenceMap=fluid.defaults(componentName).preferenceMap;var map=preferenceMap[prefKey];var prefSchema=mappedDefaults[prefKey];fluid.each(map,(function(primaryPath,internalPath){if(fluid.prefs.checkPrimarySchema(prefSchema,prefKey)){var opts={};if(internalPath.indexOf("model.")===0&&primaryPath==="value"){var internalModelName=internalPath.slice(6);fluid.set(opts,"model",fluid.get(opts,"model")||{});fluid.prefs.addCommonOptions(opts,"model",modelCommonOptions,{internalModelName,externalModelName:flattenedPrefKey});fluid.set(initialModel,["members","initialModel","preferences",flattenedPrefKey],prefSchema["default"]);if(alias)fluid.set(initialModel,["members","initialModel","preferences",alias],prefSchema["default"]);}else fluid.set(opts,internalPath,prefSchema[primaryPath]);$.extend(true,componentOptions,opts);}}));fluid.prefs.addCommonOptions(components,memberName,commonOptions,{prefKey:memberName});fluid.prefs.mergeAtPath(auxSchema,[type,"components"],components);fluid.prefs.mergeAtPath(auxSchema,[type,"selectors"],selectors);fluid.prefs.mergeAtPath(auxSchema,[type,"prefToMemberMap"],prefToMemberMap);fluid.prefs.mergeAtPath(auxSchema,["templateLoader","resources"],templates);fluid.prefs.mergeAtPath(auxSchema,["messageLoader","resources"],messages);fluid.prefs.mergeAtPath(auxSchema,"initialModel",initialModel);fluid.prefs.constructAliases(auxSchema,flattenedPrefKey,alias);}return auxSchema;};fluid.prefs.expandCompositePanels=function(auxSchema,compositePanelList,panelCommonOptions,subPanelCommonOptions,compositePanelBasedOnSubCommonOptions,panelModelCommonOptions,mappedDefaults){var panelsToIgnore=[];fluid.each(compositePanelList,(function(compositeDetail,compositeKey){var compositePanelOptions={};var components={};var initialModel={};var selectors={};var templates={};var messages={};var selectorsToIgnore=[];var thisCompositeOptions=fluid.copy(compositeDetail);fluid.set(compositePanelOptions,"type",thisCompositeOptions.type);delete thisCompositeOptions.type;selectors=fluid.prefs.extract(thisCompositeOptions,"container",compositeKey);templates=fluid.prefs.extract(thisCompositeOptions,"template",compositeKey);messages=fluid.prefs.extract(thisCompositeOptions,"message",compositeKey);var subPanelList=[];var subPanels={};var subPanelRenderOn={};if(fluid.isPlainObject(thisCompositeOptions.panels)&&!fluid.isArrayable(thisCompositeOptions.panels))fluid.each(thisCompositeOptions.panels,(function(subpanelArray,pref){subPanelList=subPanelList.concat(subpanelArray);if(pref!=="always")fluid.each(subpanelArray,(function(onePanel){fluid.set(subPanelRenderOn,onePanel,pref);}));}));else subPanelList=thisCompositeOptions.panels;fluid.each(subPanelList,(function(subPanelID){panelsToIgnore.push(subPanelID);var safeSubPanelPrefsKey=fluid.prefs.subPanel.safePrefKey(subPanelID);selectorsToIgnore.push(safeSubPanelPrefsKey);var subPanelOptions=fluid.copy(fluid.get(auxSchema,[subPanelID,"panel"]));var subPanelType=fluid.get(subPanelOptions,"type");fluid.set(subPanels,[safeSubPanelPrefsKey,"type"],subPanelType);var renderOn=fluid.get(subPanelRenderOn,subPanelID);if(renderOn)fluid.set(subPanels,[safeSubPanelPrefsKey,"options","renderOnPreference"],renderOn);var map=fluid.defaults(subPanelType).preferenceMap[subPanelID];var prefSchema=mappedDefaults[subPanelID];fluid.each(map,(function(primaryPath,internalPath){if(fluid.prefs.checkPrimarySchema(prefSchema,subPanelID)){var opts;if(internalPath.indexOf("model.")===0&&primaryPath==="value"){fluid.set(compositePanelOptions,["options","model"],fluid.get(compositePanelOptions,["options","model"])||{});fluid.prefs.addCommonOptions(compositePanelOptions,["options","model"],panelModelCommonOptions,{internalModelName:safeSubPanelPrefsKey,externalModelName:safeSubPanelPrefsKey});fluid.set(initialModel,["members","initialModel","preferences",safeSubPanelPrefsKey],prefSchema["default"]);}else{opts=opts||{options:{}};fluid.set(opts,"options."+internalPath,prefSchema[primaryPath]);}$.extend(true,subPanels[safeSubPanelPrefsKey],opts);}}));fluid.set(templates,safeSubPanelPrefsKey,fluid.get(subPanelOptions,"template"));fluid.set(messages,safeSubPanelPrefsKey,fluid.get(subPanelOptions,"message"));fluid.set(compositePanelOptions,["options","selectors",safeSubPanelPrefsKey],fluid.get(subPanelOptions,"container"));fluid.set(compositePanelOptions,["options","members","resources"],fluid.get(compositePanelOptions,["options","members","resources"])||{});fluid.prefs.addCommonOptions(compositePanelOptions.options,"members.resources",compositePanelBasedOnSubCommonOptions,{subPref
118Key:safeSubPanelPrefsKey});delete subPanelOptions.type;delete subPanelOptions.template;delete subPanelOptions.message;delete subPanelOptions.container;fluid.set(subPanels,[safeSubPanelPrefsKey,"options"],$.extend(true,{},fluid.get(subPanels,[safeSubPanelPrefsKey,"options"]),subPanelOptions));fluid.prefs.addCommonOptions(subPanels,safeSubPanelPrefsKey,subPanelCommonOptions,{compositePanel:compositeKey,prefKey:safeSubPanelPrefsKey});}));delete thisCompositeOptions.panels;fluid.set(compositePanelOptions,["options"],$.extend(true,{},compositePanelOptions.options,thisCompositeOptions));fluid.set(compositePanelOptions,["options","selectorsToIgnore"],selectorsToIgnore);fluid.set(compositePanelOptions,["options","components"],subPanels);components[compositeKey]=compositePanelOptions;fluid.prefs.addCommonOptions(components,compositeKey,panelCommonOptions,{prefKey:compositeKey});fluid.prefs.mergeAtPath(auxSchema,["panels","components"],components);fluid.prefs.mergeAtPath(auxSchema,["panels","selectors"],selectors);fluid.prefs.mergeAtPath(auxSchema,["templateLoader","resources"],templates);fluid.prefs.mergeAtPath(auxSchema,["messageLoader","resources"],messages);fluid.prefs.mergeAtPath(auxSchema,"initialModel",initialModel);$.extend(true,auxSchema,{panelsToIgnore});}));return auxSchema;};fluid.prefs.expandSchema=function(requestedPrefs,schemaToExpand,topCommonOptions,elementCommonOptions,mappedDefaults){var schemaIndex=fluid.indexDefaults("auxSchemaIndex",{gradeNames:"fluid.prefs.auxSchema",indexFunc:"fluid.prefs.auxBuilder.defaultSchemaIndexer"});var auxGradeNames=fluid.prefs.auxBuilder.auxGradesForPrefs(schemaIndex,requestedPrefs);var auxGrades=auxGradeNames.map((function(gradeName){return fluid.defaults(gradeName).auxiliarySchema;}));var auxSchema=fluid.extend(true,{},...auxGrades,schemaToExpand);auxSchema.namespace=auxSchema.namespace||"fluid.prefs.created_"+fluid.allocateGuid();var terms=fluid.prefs.removeKey(auxSchema,"terms");if(terms)fluid.set(auxSchema,["terms","terms"],terms);var compositePanelList=fluid.get(auxSchema,"groups");if(compositePanelList)fluid.prefs.expandCompositePanels(auxSchema,compositePanelList,fluid.get(elementCommonOptions,"panel"),fluid.get(elementCommonOptions,"subPanel"),fluid.get(elementCommonOptions,"compositePanelBasedOnSub"),fluid.get(elementCommonOptions,"panelModel"),mappedDefaults);fluid.each(auxSchema,(function(category,prefName){if(fluid.isValue(category)){var panelSchemaConfig=category.panel;if(panelSchemaConfig&&!(auxSchema.panelsToIgnore||[]).includes(prefName))fluid.prefs.expandSchemaComponents(auxSchema,"panels",prefName,category.alias,panelSchemaConfig,fluid.get(elementCommonOptions,"panel"),fluid.get(elementCommonOptions,"panelModel"),mappedDefaults);var enactorSchemaConfig=category.enactor;if(enactorSchemaConfig)fluid.prefs.expandSchemaComponents(auxSchema,"enactors",prefName,category.alias,enactorSchemaConfig,fluid.get(elementCommonOptions,"enactor"),fluid.get(elementCommonOptions,"enactorModel"),mappedDefaults);fluid.each(["template","message"],(function(type){if(prefName===type){fluid.set(auxSchema,[type+"Loader","resources","prefsEditor"],category);delete auxSchema[type];}}));}}));if(auxSchema.panelsToIgnore)delete auxSchema.panelsToIgnore;fluid.each(topCommonOptions,(function(topOptions,type){fluid.prefs.addCommonOptions(auxSchema,type,topOptions);}));return auxSchema;};fluid.defaults("fluid.prefs.auxBuilder",{gradeNames:["fluid.component"],mergePolicy:{elementCommonOptions:"noexpand"},topCommonOptions:{panels:{gradeNames:["fluid.prefs.prefsEditor"]},enactors:{gradeNames:["fluid.uiEnhancer"]},templateLoader:{gradeNames:["fluid.resourceLoader"]},messageLoader:{gradeNames:["fluid.resourceLoader"]},initialModel:{gradeNames:["fluid.prefs.initialModel"]},terms:{gradeNames:["fluid.component"]},aliases_prefsEditor:{gradeNames:["fluid.modelComponent"]},aliases_enhancer:{gradeNames:["fluid.modelComponent"]}},elementCommonOptions:{panel:{createOnEvent:"onPrefsEditorMarkupReady",container:"{prefsEditor}.dom.%prefKey","options.gradeNames":"fluid.prefs.prefsEditorConnections","options.members.resources.template":"{templateLoader}.resources.%prefKey","options.messageBase":"{messageLoader}.resources.%prefKey.parsed"},panelModel:{"%internalModelName":"{prefsEditor}.model.preferences.%externalModelName"},compositePanelBasedOnSub:{"%subPrefKey":"{templateLoader}.resources.%subPrefKey"},subPanel:{container:"{%compositePanel}.dom.%prefKey","options.messageBase":"{messageLoader}.resources.%prefKey.parsed"},enactor:{container:"{uiEnhancer}.container"},enactorModel:{"%internalModelName":"{uiEnhancer}.model.%externalModelName"}},auxiliarySchema:{loaderGrades:["fluid.prefs.separatedPanel"],generatePanelContainers:true,template:"%templatePrefix/SeparatedPanelPrefsEditor.html",message:"%messagePrefix/prefsEditor.json",terms:{templatePrefix:"../../framework/preferences/html",messagePrefix:"../../framework/preferences/messages"}},auxSchema:{expander:{func:"fluid.prefs.expandSchema",args:["{that}.options.requestedPrefs","{that}.options.auxiliarySchema","{that}.options.topCommonOptions","{that}.options.elementCommonOptions","{that}.options.schema.properties"]}}});fluid.prefs.auxBuilder.defaultSchemaIndexer=function(defaults){var censoredKeys=["defaultLocale","groups","loaderGrades","message","template","terms"];return fluid.keys(fluid.censorKeys(defaults.auxiliarySchema,censoredKeys));};fluid.prefs.auxBuilder.auxGradesForPrefs=function(schemaIndex,preferences){var auxSchema=[];fluid.each(preferences,(function merge(pref){var schemaGrades=schemaIndex[pref];if(schemaGrades)auxSchema=auxSchema.concat(schemaGrades);}));return auxSchema;};"use strict";fluid.defaults("fluid.prefs.auxSchema.textSize",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.textSize":{alias:"textSize",enactor:{type:"fluid.prefs.enactor.textSize"},panel:{type:"fluid.prefs.panel.textSize",container:".flc-prefsEditor-text-size",message:"%messagePrefix/textSize.json",template:"%templatePrefix/PrefsEditorTemplate-textSize.html"}}}});fluid.defaults("fluid.prefs.auxSchema.lineSpace",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.lineSpace":{alias:"lineSpace",enactor:{type:"fluid.prefs.enactor.lineSpace",fontSizeMap:{"xx-small":"9px","x-small":"11px",small:"13px",medium:"15px",large:"18px","x-large":"23px","xx-large":"30px"}},panel:{type:"fluid.prefs.panel.lineSpace",container:".flc-prefsEditor-line-space",message:"%messagePrefix/lineSpace.json",template:"%templatePrefix/PrefsEditorTemplate-lineSpace.html"}}}});fluid.defaults("fluid.prefs.auxSchema.textFont",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.textFont":{alias:"textFont",enactor:{type:"fluid.prefs.enactor.textFont",classes:{default:"",system:"fl-font-system-ui",times:"fl-font-times",comic:"fl-font-comic-sans",arial:"fl-font-arial",verdana:"fl-font-verdana","open-dyslexic":"fl-font-open-dyslexic","atkinson-hyperlegible":"fl-font-atkinson-hyperlegible"}},panel:{type:"fluid.prefs.panel.textFont",container:".flc-prefsEditor-text-font",classnameMap:{textFont:{default:"",system:"fl-font-system-ui",times:"fl-font-times",comic:"fl-font-comic-sans",arial:"fl-font-arial",verdana:"fl-font-verdana","open-dyslexic":"fl-font-open-dyslexic","atkinson-hyperlegible":"fl-font-atkinson-hyperlegible"}},template:"%templatePrefix/PrefsEditorTemplate-textFont.html",message:"%messagePrefix/textFont.json"}}}});fluid.defaults("fluid.prefs.auxSchema.contrast",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.contrast":{alias:"theme",enactor:{type:"fluid.prefs.enactor.contrast",classes:{default:"fl-theme-prefsEditor-default",bw:"fl-theme-bw",wb:"fl-theme-wb",by:"fl-theme-by",yb:"fl-theme-yb",lgdg:"fl-theme-lgdg",gd:"fl-theme-gd",gw:"fl-theme-gw",bbr:"fl-theme-bbr"}},panel:{type:"fluid.prefs.panel.contrast",container:".flc-prefsEditor-contrast",classnameMap:{theme:{default:"fl-theme-prefsEditor-default",bw:"fl-theme-bw",wb:"fl-theme-wb",by:"fl-theme-by",yb:"fl-theme-yb",lgdg:"fl-theme-lgdg",gd:"fl-theme-gd",gw:"fl-theme-gw",bbr:"fl-theme-bbr"}},template:"%templatePrefix/PrefsEditorTemplate-contrast.html",message:"%messagePrefix/contrast.json"}}}});fluid.defaults("fluid.prefs.auxSchema.tableOfContents",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.tableOfContents":{alias:"toc",enactor:{type:"fluid.prefs.enactor.tableOfContents",tocTemplate:"../../components/tableOfContents/html/TableOfContents.html",tocMessage:"../../framework/preferences/messages/tableOfContents-enactor.json"},panel:{type:"fluid.prefs.panel.layoutControls",container:".flc-prefsEditor-layout-control
118s",template:"%templatePrefix/PrefsEditorTemplate-layout.html",message:"%messagePrefix/tableOfContents.json"}}}});fluid.defaults("fluid.prefs.auxSchema.enhanceInputs",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.enhanceInputs":{alias:"inputs",enactor:{type:"fluid.prefs.enactor.enhanceInputs",cssClass:"fl-input-enhanced"},panel:{type:"fluid.prefs.panel.enhanceInputs",container:".flc-prefsEditor-enhanceInputs",template:"%templatePrefix/PrefsEditorTemplate-enhanceInputs.html",message:"%messagePrefix/enhanceInputs.json"}}}});fluid.defaults("fluid.prefs.schemas.textSize",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.textSize":{type:"number",default:1,minimum:.5,maximum:2,multipleOf:.1}}});fluid.defaults("fluid.prefs.schemas.lineSpace",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.lineSpace":{type:"number",default:1,minimum:.7,maximum:2,multipleOf:.1}}});fluid.defaults("fluid.prefs.schemas.textFont",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.textFont":{type:"string",default:"default",enum:["default","system","times","comic","arial","verdana","open-dyslexic","atkinson-hyperlegible"],enumLabels:["textFont-default","textFont-system","textFont-times","textFont-comic","textFont-arial","textFont-verdana","textFont-open-dyslexic","textFont-atkinson-hyperlegible"]}}});fluid.defaults("fluid.prefs.schemas.contrast",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.contrast":{type:"string",default:"default",enum:["default","bw","wb","by","yb","lgdg","gw","gd","bbr"],enumLabels:["contrast-default","contrast-bw","contrast-wb","contrast-by","contrast-yb","contrast-lgdg","contrast-gw","contrast-gd","contrast-bbr"]}}});fluid.defaults("fluid.prefs.schemas.tableOfContents",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.tableOfContents":{type:"boolean",default:false}}});fluid.defaults("fluid.prefs.schemas.enhanceInputs",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.enhanceInputs":{type:"boolean",default:false}}});"use strict";fluid.defaults("fluid.prefs.auxSchema.captions",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.captions":{enactor:{type:"fluid.prefs.enactor.captions",container:"body"},panel:{type:"fluid.prefs.panel.captions",container:".flc-prefsEditor-captions",template:"%templatePrefix/PrefsEditorTemplate-captions.html",message:"%messagePrefix/captions.json"}}}});fluid.defaults("fluid.prefs.schemas.captions",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.captions":{type:"boolean",default:false}}});"use strict";fluid.defaults("fluid.prefs.auxSchema.letterSpace",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.letterSpace":{enactor:{type:"fluid.prefs.enactor.letterSpace",fontSizeMap:{"xx-small":"9px","x-small":"11px",small:"13px",medium:"15px",large:"18px","x-large":"23px","xx-large":"30px"}},panel:{type:"fluid.prefs.panel.letterSpace",container:".flc-prefsEditor-letter-space",template:"%templatePrefix/PrefsEditorTemplate-letterSpace.html",message:"%messagePrefix/letterSpace.json"}}}});fluid.defaults("fluid.prefs.schemas.letterSpace",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.letterSpace":{type:"number",default:1,minimum:.9,maximum:2,multipleOf:.1}}});"use strict";fluid.defaults("fluid.prefs.auxSchema.speak",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.speak":{enactor:{type:"fluid.prefs.enactor.selfVoicing"},panel:{type:"fluid.prefs.panel.speak",container:".flc-prefsEditor-speak",template:"%templatePrefix/PrefsEditorTemplate-speak.html",message:"%messagePrefix/speak.json"}}}});fluid.defaults("fluid.prefs.schemas.speak",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.speak":{type:"boolean",default:false}}});"use strict";fluid.defaults("fluid.prefs.auxSchema.syllabification",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.syllabification":{enactor:{type:"fluid.prefs.enactor.syllabification"},panel:{type:"fluid.prefs.panel.syllabification",container:".flc-prefsEditor-syllabification",template:"%templatePrefix/PrefsEditorTemplate-syllabification.html",message:"%messagePrefix/syllabification.json"}}}});fluid.defaults("fluid.prefs.schemas.syllabification",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.syllabification":{type:"boolean",default:false}}});"use strict";fluid.defaults("fluid.prefs.auxSchema.localization",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.localization":{alias:"locale",enactor:{type:"fluid.prefs.enactor.localization"},panel:{type:"fluid.prefs.panel.localization",container:".flc-prefsEditor-localization",template:"%templatePrefix/PrefsEditorTemplate-localization.html",message:"%messagePrefix/localization.json"}}}});fluid.defaults("fluid.prefs.schemas.localization",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.localization":{type:"string",default:"",enum:["","en","en_CA","en_US","fr","es","fa","pt_BR"],enumLabels:["localization-default","localization-en","localization-fr","localization-e
118s","localization-fa","localization-pt_BR"]}}});"use strict";fluid.defaults("fluid.prefs.localizationPrefsEditorConfig",{gradeNames:["fluid.contextAware"],contextAwareness:{localeChange:{checks:{urlPath:{contextValue:"{localizationPrefsEditorConfig}.options.localizationScheme",equals:"urlPath",gradeNames:"fluid.prefs.localizationPrefsEditorConfig.urlPathLocale"}}}},distributeOptions:{"prefsEditor.localization.enactor.localizationScheme":{source:"{that}.options.localizationScheme",target:"{that uiEnhancer fluid.prefs.enactor.localization}.options.localizationScheme"},"prefsEditor.localization.panel.locales":{source:"{that}.options.locales",target:"{that prefsEditor fluid.prefs.panel.localization}.options.controlValues.localization"},"prefsEditor.localization.panel.localeNames":{source:"{that}.options.localeNames",target:"{that prefsEditor fluid.prefs.panel.localization}.options.stringArrayIndex.localization"}}});fluid.defaults("fluid.prefs.localizationPrefsEditorConfig.urlPathLocale",{distributeOptions:{"prefsEditor.localization.enactor.langMap":{source:"{that}.options.langMap",target:"{that uiEnhancer fluid.prefs.enactor.localization}.options.langMap"},"prefsEditor.localization.enactor.langSegIndex":{source:"{that}.options.langSegIndex",target:"{that uiEnhancer fluid.prefs.enactor.localization}.options.langSegIndex"}}});"use strict";fluid.defaults("fluid.prefs.auxSchema.wordSpace",{gradeNames:["fluid.prefs.auxSchema"],auxiliarySchema:{"fluid.prefs.wordSpace":{enactor:{type:"fluid.prefs.enactor.wordSpace",fontSizeMap:{"xx-small":"9px","x-small":"11px",small:"13px",medium:"15px",large:"18px","x-large":"23px","xx-large":"30px"}},panel:{type:"fluid.prefs.panel.wordSpace",container:".flc-prefsEditor-word-space",template:"%templatePrefix/PrefsEditorTemplate-wordSpace.html",message:"%messagePrefix/wordSpace.json"}}}});fluid.defaults("fluid.prefs.schemas.wordSpace",{gradeNames:["fluid.prefs.schemas"],schema:{"fluid.prefs.wordSpace":{type:"number",default:1,minimum:.7,maximum:2,multipleOf:.1}}});"use strict";fluid.registerNamespace("fluid.prefs.builder");fluid.deferredMergePolicy=function(target,source){if(!target)target=new fluid.mergingArray();if(source instanceof fluid.mergingArray)target.push.apply(target,source);else{if(source!==undefined)target.push(source);}return target;};fluid.defaults("fluid.prefs.builder",{gradeNames:["fluid.prefs.primaryBuilder","fluid.prefs.auxBuilder","{that}.applyAssemblerGrades"],mergePolicy:{preferences:"replace",prefsPrioritized:{noexpand:true,func:fluid.deferredMergePolicy}},invokers:{applyAssemblerGrades:{funcName:"fluid.get",args:["{that}.options.assemblerGrades","{that}.options.buildType"]}},buildType:"prefsEditor",assemblerGrades:{store:"fluid.prefs.assembler.store",prefsEditor:"fluid.prefs.assembler.prefsEd",enhancer:"fluid.prefs.assembler.uie"},requestedPrefs:{expander:{funcName:"fluid.keys",args:["{that}.options.prefsMerged"]}},prefsMerged:{expander:{funcName:"fluid.prefs.builder.mergePrefs",args:["{that}","{that}.options.prefsPrioritized"]}},prefsPrioritized:{expander:{funcName:"fluid.prefs.builder.prioritizePrefs",args:["{that}.options.preferences"]}},componentGrades:{expander:{func:"fluid.prefs.builder.constructGrades",args:["{that}.options.auxSchema",["enactors","panels","initialModel","templateLoader","messageLoader","terms","aliases_prefsEditor","aliases_enhancer"]]}},distributeOptions:{generatePanelContainers:{source:"{that}.options.auxiliarySchema.generatePanelContainers",target:"{that prefsEditorLoader prefsEditor}.options.generatePanelContainers"}}});fluid.defaults("fluid.prefs.assembler.store",{gradeNames:["fluid.component"],components:{store:{type:"fluid.prefs.globalSettingsStore",options:{distributeOptions:{"uie.store.context.checkUser":{target:"{that fluid.prefs.store}.options.contextAwareness.strategy.checks.user",record:{contextValue:"{fluid.prefs.assembler.store}.options.storeType",gradeNames:"{fluid.prefs.assembler.store}.options.storeType"}}}}}},distributeOptions:{"uie.store":{source:"{that}.options.store",target:"{that fluid.prefs.store}.options"}}});fluid.defaults("fluid.prefs.assembler.uie",{gradeNames:["fluid.prefs.assembler.store","fluid.viewComponent"],enhancerType:"fluid.pageEnhancer",components:{store:{type:"fluid.prefs.globalSettingsStore",options:{distributeOptions:{"uie.store.context.checkUser":{target:"{that fluid.prefs.store}.options.contextAwareness.strategy.checks.user",record:{contextValue:"{fluid.prefs.assembler.store}.options.storeType",gradeNames:"{fluid.prefs.assembler.store}.options.storeType"}}}}},enhancer:{type:"fluid.component",options:{gradeNames:"{that}.options.enhancerType",components:{uiEnhancer:{options:{gradeNames:["{fluid.prefs.assembler.uie}.options.componentGrades.enactors","{fluid.prefs.assembler.uie}
118.options.componentGrades.aliases_enhancer"],defaultLocale:"{fluid.prefs.assembler.uie}.options.auxSchema.defaultLocale"}}}}}},distributeOptions:{"uie.enhancer":{source:"{that}.options.enhancer",target:"{that uiEnhancer}.options",removeSource:true},"uie.enhancer.enhancerType":{source:"{that}.options.enhancerType",target:"{that > enhancer}.options.enhancerType"}}});fluid.defaults("fluid.prefs.assembler.prefsEd",{gradeNames:["fluid.prefs.assembler.uie"],components:{prefsEditorLoader:{type:"fluid.viewComponent",container:"{fluid.prefs.assembler.prefsEd}.container",options:{gradeNames:["{fluid.prefs.assembler.prefsEd}.options.componentGrades.terms","{fluid.prefs.assembler.prefsEd}.options.componentGrades.messages","{fluid.prefs.assembler.prefsEd}.options.componentGrades.initialModel","{fluid.prefs.assembler.prefsEd}.options.auxSchema.loaderGrades"],defaultLocale:"{fluid.prefs.assembler.prefsEd}.options.auxSchema.defaultLocale",templateLoader:{gradeNames:["{fluid.prefs.assembler.prefsEd}.options.componentGrades.templateLoader"]},messageLoader:{gradeNames:["{fluid.prefs.assembler.prefsEd}.options.componentGrades.messageLoader"]},prefsEditor:{gradeNames:["{fluid.prefs.assembler.prefsEd}.options.componentGrades.panels","{fluid.prefs.assembler.prefsEd}.options.componentGrades.aliases_prefsEditor","fluid.prefs.uiEnhancerRelay"]},events:{onReady:"{fluid.prefs.assembler.prefsEd}.events.onPrefsEditorReady"}}}},events:{onPrefsEditorReady:null,onReady:{events:{onPrefsEditorReady:"onPrefsEditorReady",onCreate:"onCreate"},args:["{that}"]}},distributeOptions:{"prefsEdAssembler.prefsEditor":{source:"{that}.options.prefsEditor",target:"{that prefsEditor}.options"},"prefsEdAssembler.prefsEditorPrefs":{source:"{that}.options.prefsMerged",target:"{that prefsEditor}.options.preferences"},"prefsEdAssembler.prefsEditorLoader":{source:"{that}.options.prefsEditorLoader",target:"{that prefsEditorLoader}.options"}}});fluid.prefs.builder.constructGrade=function(name,namespace,options){var gradeNameTemplate="%namespace.%name";var gradeName=fluid.stringTemplate(gradeNameTemplate,{name,namespace});fluid.defaults(gradeName,options);return gradeName;};fluid.prefs.builder.constructGrades=function(auxSchema,gradeCategories){var constructedGrades={};fluid.each(gradeCategories,(function(category){var gradeOpts=auxSchema[category];if(fluid.get(gradeOpts,"gradeNames"))constructedGrades[category]=fluid.prefs.builder.constructGrade(category,auxSchema.namespace,gradeOpts);}));return constructedGrades;};fluid.prefs.builder.prioritizePrefs=function(preferences){var prioritized={};fluid.each(preferences,(function(preference,index){var record={};if(index)record.priority="after:"+preferences[index-1];prioritized[preference]=record;}));return prioritized;};fluid.prefs.builder.mergePrefs=function(that,mergingArray){var merged={};fluid.each(mergingArray,(function(mergeRecord){var expanded=fluid.expandImmediate(mergeRecord,that);fluid.each(expanded,(function(prefConfig,preference){if(prefConfig===null){delete merged[preference];delete expanded[preference];}}));$.extend(true,merged,expanded);}));return merged;};"use strict";fluid.defaults("fluid.uiOptions",{gradeNames:["fluid.prefs.builder","fluid.viewComponent"],preferences:["fluid.prefs.textSize","fluid.prefs.lineSpace","fluid.prefs.textFont","fluid.prefs.contrast","fluid.prefs.tableOfContents","fluid.prefs.enhanceInputs"]});fluid.defaults("fluid.uiOptions.multilingual",{gradeNames:["fluid.uiOptions"],prefsEditorLoader:{defaultLocale:"{that}.options.locale"},listeners:{"onPrefsEditorReady.addLanguageAttributesToBody":{this:"{that}.prefsEditorLoader.prefsEditor.container",method:"attr",args:{lang:"{that}.options.locale",dir:"{that}.options.direction"},priority:"first"}}});"use strict";fluid.registerNamespace("fluid.enhance");fluid.enhance.supportsBinaryXHR=function(){return window.FormData||window.XMLHttpRequest&&window.XMLHttpRequest.prototype&&window.XMLHttpRequest.prototype.sendAsBinary;};fluid.enhance.supportsFormData=function(){return !!window.FormData;};fluid.contextAware.makeChecks({"fluid.browser.supportsBinaryXHR":{funcName:"fluid.enhance.supportsBinaryXHR"},"fluid.browser.supportsFormData":{funcName:"fluid.enhance.supportsFormData"}});fluid.registerNamespace("fluid.uploader");fluid.uploader.fileOrFiles=function(that,numFiles){return numFiles===1?that.options.strings.progress.singleFile:that.options.strings.progress.pluralFiles;};fluid.uploader.enableElement=function(that,elm){elm.prop("disabled",fal
118se);elm.removeClass(that.options.styles.dim);};fluid.uploader.disableElement=function(that,elm){elm.prop("disabled",true);elm.addClass(that.options.styles.dim);};fluid.uploader.showElement=function(that,elm){elm.removeClass(that.options.styles.hidden);};fluid.uploader.hideElement=function(that,elm){elm.addClass(that.options.styles.hidden);};fluid.uploader.maxFilesUploaded=function(that){var fileUploadLimit=that.queue.getUploadedFiles().length+that.queue.getReadyFiles().length+that.queue.getErroredFiles().length;return fileUploadLimit===that.options.queueSettings.fileUploadLimit;};fluid.uploader.setTotalProgressStyle=function(that,didError){didError=didError||false;var indicator=that.totalProgress.indicator;indicator.toggleClass(that.options.styles.totalProgress,!didError);indicator.toggleClass(that.options.styles.totalProgressError,didError);};fluid.uploader.setStateEmpty=function(that){fluid.uploader.disableElement(that,that.locate("uploadButton"));if(that.queue.files.length===0){that.locate("browseButtonText").text(that.options.strings.buttons.browse);that.locate("browseButton").removeClass(that.options.styles.browseButton);fluid.uploader.showElement(that,that.locate("instructions"));}};fluid.uploader.enableBrowseButton=function(that){if(!fluid.uploader.maxFilesUploaded(that)){fluid.uploader.enableElement(that,that.locate("browseButton"));that.strategy.local.enableBrowseButton();}};fluid.uploader.setStateDone=function(that){fluid.uploader.disableElement(that,that.locate("uploadButton"));fluid.uploader.hideElement(that,that.locate("pauseButton"));fluid.uploader.showElement(that,that.locate("uploadButton"));fluid.uploader.enableBrowseButton(that);};fluid.uploader.setStateLoaded=function(that){that.locate("browseButtonText").text(that.options.strings.buttons.addMore);that.locate("browseButton").addClass(that.options.styles.browseButton);fluid.uploader.hideElement(that,that.locate("pauseButton"));fluid.uploader.showElement(that,that.locate("uploadButton"));fluid.uploader.enableElement(that,that.locate("uploadButton"));fluid.uploader.hideElement(that,that.locate("instructions"));that.totalProgress.hide();fluid.uploader.enableBrowseButton(that);};fluid.uploader.setStateUploading=function(that){that.totalProgress.hide(false,false);fluid.uploader.setTotalProgressStyle(that);fluid.uploader.hideElement(that,that.locate("uploadButton"));fluid.uploader.disableElement(that,that.locate("browseButton"));that.strategy.local.disableBrowseButton();fluid.uploader.enableElement(that,that.locate("pauseButton"));fluid.uploader.showElement(that,that.locate("pauseButton"));};fluid.uploader.setStateFull=function(that){that.locate("browseButtonText").text(that.options.strings.buttons.addMore);that.locate("browseButton").addClass(that.options.styles.browseButton);fluid.uploader.hideElement(that,that.locate("pauseButton"));fluid.uploader.showElement(that,that.locate("uploadButton"));fluid.uploader.enableElement(that,that.locate("uploadButton"));fluid.uploader.disableElement(that,that.locate("browseButton"));that.strategy.local.disableBrowseButton();fluid.uploader.hideElement(that,that.locate("instructions"));that.totalProgress.hide();};fluid.uploader.renderUploadTotalMessage=function(that){var numReadyFiles=that.queue.getReadyFiles().length;var bytesReadyFiles=that.queue.sizeOfReadyFiles();var fileLabelStr=fluid.uploader.fileOrFiles(that,numReadyFiles);var totalCount=that.queue.files.length;var noFilesMsg=that.options.strings.progress.noFiles;var totalStateStr=fluid.stringTemplate(that.options.strings.progress.toUploadLabel,{fileCount:numReadyFiles,fileLabel:fileLabelStr,totalBytes:fluid.uploader.formatFileSize(bytesReadyFiles),uploadedCount:that.queue.getUploadedFiles().length,uploadedSize:fluid.uploader.formatFileSize(that.queue.sizeOfUploadedFiles()),totalCount,totalSize:fluid.uploader.formatFileSize(that.queue.totalBytes())});if(!totalCount&&noFilesMsg)totalStateStr=noFilesMsg;that.locate("totalFileStatusText").html(totalStateStr);};fluid.uploader.renderFileUploadLimit=function(that){if(that.options.queueSettings.fileUploadLimit>0){var fileUploadLimitText=fluid.stringTemplate(that.options.strings.progress.fileUploadLimitLabel,{fileUploadLimit:that.options.queueSettings.fileUploadLimit,fileLabel:fluid.uploader.fileOrFiles(that,that.options.queueSettings.fileUploadLimit)});that.locate("fileUploadLimitText").html(fileUploadLimitText);}};fluid.uploader.formatFileSize=function(bytes){if(typeof bytes==="number")if(bytes===0)return "0.0 KB";else{if(bytes>0)if(bytes<1048576)return (Math.ceil(bytes/1024*10)/10).toFixed(1)+" KB";else return (Math.ceil(bytes/1048576*10)/10).toFixed(1)+" MB";}return "";};fluid.uploader.derivePercent=function(num,total){return Math.round(num*100/total);};fluid.uploader.updateTotalProgress=function(that){var batch=that.queue.currentBatch;var totalPercent=fluid.uploader.derivePercent(batch.totalBytesUploaded,batch.totalBytes);var numFilesInBatch=batch.files.length;var fileLabelStr=fluid.uploader.fileOrFiles(that,numFilesInBatch);var uploadingSize=batch.totalBytesUploaded+that.queue.sizeOfUploadedFiles();var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.totalProgressLabel,{curFileN:batch.fileIdx,totalFilesN:numFilesInBatch,fileLabel:fileLabelStr,currBytes:fluid.uploader.formatFileSize(batch.totalBytesUploaded),totalBytes:fluid.uploader.formatFileSize(batch.totalBytes),uploadedCount:that.queue.getUploadedFiles().length,uploadedSize:fluid.uploader.formatFileSize(uploadingSize),totalCount:that.queue.files.length,totalSize:fluid.uploader.formatFileSize(that.queue.totalBytes())});that.totalProgress.update(totalPercent,totalProgressStr);};fluid.uploader.updateTotalAtCompletion=function(that){var numErroredFiles=that.queue.getErroredFiles().length;var numTotalFiles=that.queue.files.length;var fileLabelStr=fluid.uploader.fileOrFiles(that,numTotalFiles);var errorStr="";if(numErroredFiles>0){var errorLabelString=numErroredFiles===1?that.options.strings.progress.singleError:that.options.strings.progress.pluralErrors;fluid.uploader.setTotalProgressStyle(that,true);errorStr=fluid.stringTemplate(that.options.strings.progress.numberOfErrors,{errorsN:numErroredFiles,errorLabel:errorLabelString});}var totalProgressStr=fluid.stringTemplate(that.options.strings.progress.completedLabel,{curFileN:that.queue.getUploadedFiles().length,totalFilesN:numTotalFiles,errorString:errorStr,fileLabel:fileLabelStr,totalCurrBytes:fluid.uploader.formatFileSize(that.queue.sizeOfUploadedFiles()),uploadedCount:that.queue.getUploadedFiles().length,uploadedSize:fluid.uploader.formatFileSize(that.queue.sizeOfUploadedFiles()),totalCount:that.queue.files.length,totalSize:fluid.uploader.formatFileSize(that.queue.totalBytes())});that.totalProgress.update(100,totalProgressStr);};fluid.uploader.updateStateAfterFileDialog=function(that){var queueLength=that.queue.getReadyFiles().length;if(queueLength>0){fluid.uploader[queueLength===that.options.queueSettings.fileUploadLimit?"setStateFull":"setStateLoaded"](that);fluid.uploader.renderUploadTotalMessage(that);that.locate(that.options.focusWithEvent.afterFileDialog).trigger("focus");}};fluid.uploader.updateStateAfterFileRemoval=function(that){fluid.uploader[that.queue.getReadyFiles().length===0?"setStateEmpty":"setStateLoaded"](that);fluid.uploader.renderUploadTotalMessage(that);};fluid.uploader.updateStateAfterCompletion=function(that){fluid.uploader[that.queue.getReadyFiles().length===0?"setStateDone":"setStateLoaded"](that);fluid.uploader.updateTotalAtCompletion(that);};fluid.uploader.uploadNextOrFinish=function(that){if(that.queue.shouldUploadNextFile())that.strategy.remote.uploadNextFile();else{that.events.afterUploadComplete.fire(that.queue.currentBatch.files);that.queue.clearCurrentBatch();}};fluid.uploader.onFileStart=function(file,queue){file.filestatus=fluid.uploader.fileStatusConstants.IN_PROGRESS;queue.startFile();};fluid.uploader.onFileProgress=function(that,currentBytes){that.queue.updateBatchStatus(currentBytes);fluid.uploader.updateTotalProgress(that);};fluid.uploader.onFileComplete=function(file,that){that.queue.finishFile(file);that.events.afterFileComplete.fire(file);fluid.uploader.uploadNextOrFinish(that);};fluid.uploader.onFileSuccess=function(file,that){file.filestatus=fluid.uploader.fileStatusConstants.COMPLETE;if(that.queue.currentBatch.bytesUploadedForFile===0)that.queue.currentBatch.totalBytesUploaded+=file.size;fluid.uploader.updateTotalProgress(that);};fluid.uploader.onFileError=function(file,error,that){if(error===fluid.uploader.errorConstants.UPLOAD_STOPPED)file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;else{file.filestatus=fluid.uploader.fileStatusConstants.ERROR;
118if(that.queue.isUploading){that.queue.currentBatch.totalBytesUploaded+=file.size;that.queue.currentBatch.numFilesErrored++;fluid.uploader.uploadNextOrFinish(that);}}};fluid.uploader.afterUploadComplete=function(that){that.queue.isUploading=false;fluid.uploader.updateStateAfterCompletion(that);};fluid.defaults("fluid.uploader",{gradeNames:["fluid.viewComponent","fluid.contextAware"],contextAwareness:{technology:{defaultGradeNames:"fluid.uploader.singleFile"},liveness:{priority:"before:technology",checks:{localDemoOption:{contextValue:"{uploader}.options.demo",gradeNames:"fluid.uploader.demo"}},defaultGradeNames:"fluid.uploader.live"}}});fluid.defaults("fluid.uploader.builtinStrategyDistributor",{gradeNames:["fluid.component"],distributeOptions:{record:{contextValue:"{fluid.browser.supportsBinaryXHR}",gradeNames:"fluid.uploader.html5"},target:"{/ fluid.uploader}.options.contextAwareness.technology.checks.supportsBinaryXHR"}});fluid.constructSingle([],"fluid.uploader.builtinStrategyDistributor");fluid.uploader.browse=function(queue,localStrategy){if(!queue.isUploading)localStrategy.browse();};fluid.uploader.removeFile=function(queue,localStrategy,afterFileRemoved,file){queue.removeFile(file);localStrategy.removeFile(file);afterFileRemoved.fire(file);};fluid.uploader.start=function(queue,remoteStrategy,onUploadStart){queue.start();onUploadStart.fire(queue.currentBatch.files);remoteStrategy.uploadNextFile();};fluid.uploader.stop=function(remoteStrategy,onUploadStop){onUploadStop.fire();remoteStrategy.stop();};fluid.uploader.defaultQueueSettings={uploadURL:"",postParams:{},fileSizeLimit:"20480",fileTypes:null,fileTypesDescription:null,fileUploadLimit:0,fileQueueLimit:0};fluid.uploader.bindFocus=function(focusWithEvent,noAutoFocus,events,dom){fluid.each(focusWithEvent,(function(element,event){if(!noAutoFocus[event])events[event].addListener((function(){dom.locate(element).trigger("focus");}));}));};fluid.defaults("fluid.uploader.multiFileUploader",{gradeNames:["fluid.viewComponent"],members:{totalFileStatusTextId:{expander:{funcName:"fluid.allocateSimpleId",args:"{that}.dom.totalFileStatusText"}}},invokers:{browse:{funcName:"fluid.uploader.browse",args:["{that}.queue","{that}.strategy.local"]},removeFile:{funcName:"fluid.uploader.removeFile",args:["{that}.queue","{that}.strategy.local","{that}.events.afterFileRemoved","{arguments}.0"]},start:{funcName:"fluid.uploader.start",args:["{that}.queue","{that}.strategy.remote","{that}.events.onUploadStart"]},stop:{funcName:"fluid.uploader.stop",args:["{that}.strategy.remote","{that}.events.onUploadStop"]}},components:{queue:{type:"fluid.uploader.fileQueue"},strategy:{type:"fluid.uploader.strategy"},errorPanel:{type:"fluid.uploader.errorPanel",container:"{uploader}.dom.errorsPanel",options:{gradeNames:"fluid.uploader.errorPanel.bindUploader"}},fileQueueView:{type:"fluid.uploader.fileQueueView",container:"{uploader}.dom.fileQueue",options:{gradeNames:"fluid.uploader.fileQueueView.bindUploader",members:{queueFiles:"{uploader}.queue.files"},uploaderContainer:"{uploader}.container",strings:{buttons:{remove:"{uploader}.options.strings.buttons.remove"}}}},totalProgress:{type:"fluid.progress",container:"{uploader}.container",options:{selectors:{progressBar:".flc-uploader-queue-footer",displayElement:".flc-uploader-total-progress",label:".flc-uploader-total-progress-text",indicator:".flc-uploader-total-progress",ariaElement:".flc-uploader-total-progress"}}}},queueSettings:fluid.uploader.defaultQueueSettings,demo:false,selectors:{fileQueue:".flc-uploader-queue",browseButton:".flc-uploader-button-browse",browseButtonText:".flc-uploader-button-browse-text",uploadButton:".flc-uploader-button-upload",pauseButton:".flc-uploader-button-pause",totalFileStatusText:".flc-uploader-total-progress-text",fileUploadLimitText:".flc-uploader-upload-limit-text",instructions:".flc-uploader-browse-instructions",errorsPanel:".flc-uploader-errorsPanel"},noAutoFocus:{afterFileDialog:true},focusWithEvent:{afterFileDialog:"uploadButton",onUploadStart:"pauseButton",onUploadStop:"uploadButton"},styles:{disabled:"fl-uploader-disabled",hidden:"fl-uploader-hidden",dim:"fl-uploader-dim",totalProgress:"fl-uploader-total-progress-okay",totalProgressError:"fl-uploader-total-progress-errored",browseButton:"fl-uploader-browseMore"},events:{afterReady:null,onFileDialog:null,onFilesSelected:null,onFileQueued:null,afterFileQueued:null,onFileRemoved:null,afterFileRemoved:null,afterFileDialog:null,onUploadStart:null,onUploadStop:null,onFileStart:null,onFileProgress:null,onFileError:null,onQueueError:null,onFileSuccess:null,onFileComplete:null,afterFileComplete:null,afterUploadComplete:null},listeners:{onCreate:[{listener:"fluid.uploader.bindFocus",args:["{that}.options.focusWithEvent","{that}.options.noAutoFocus","{that}.events","{that}.dom"]}
118,{funcName:"fluid.uploader.multiFileUploader.setupMarkup",namespace:"setupMarkup"},{this:"{that}.dom.uploadButton",method:"on",args:["click","{that}.start"]},{this:"{that}.dom.pauseButton",method:"on",args:["click","{that}.stop"]},{this:"{that}.dom.totalFileStatusText",method:"attr",args:[{role:"log","aria-live":"assertive","aria-relevant":"text","aria-atomic":"true"}]},{this:"{that}.dom.fileQueue",method:"attr",args:[{"aria-controls":"{that}.totalFileStatusTextId","aria-labelledby":"{that}.totalFileStatusTextId"}]}],"afterFileDialog.uploader":{listener:"fluid.uploader.updateStateAfterFileDialog",args:"{that}"},"afterFileQueued.uploader":{listener:"{that}.queue.addFile",args:"{arguments}.0"},"onFileRemoved.uploader":{listener:"{that}.removeFile",args:"{arguments}.0"},"afterFileRemoved.uploader":{listener:"fluid.uploader.updateStateAfterFileRemoval",args:"{that}"},"onUploadStart.uploader":{listener:"fluid.uploader.setStateUploading",args:"{that}"},"onFileStart.uploader":{listener:"fluid.uploader.onFileStart",args:["{arguments}.0","{that}.queue"]},"onFileProgress.uploader":{listener:"fluid.uploader.onFileProgress",args:["{that}","{arguments}.1"]},"onFileComplete.uploader":{listener:"fluid.uploader.onFileComplete",args:["{arguments}.0","{that}"]},"onFileSuccess.uploader":{listener:"fluid.uploader.onFileSuccess",args:["{arguments}.0","{that}"]},"onFileError.uploader":{listener:"fluid.uploader.onFileError",args:["{arguments}.0","{arguments}.1","{that}"]},"afterUploadComplete.uploader":{listener:"fluid.uploader.afterUploadComplete",args:"{that}"}},strings:{progress:{fileUploadLimitLabel:"%fileUploadLimit %fileLabel maximum",noFiles:"0 files",toUploadLabel:"%uploadedCount out of %totalCount files uploaded (%uploadedSize of %totalSize)",totalProgressLabel:"%uploadedCount out of %totalCount files uploaded (%uploadedSize of %totalSize)",completedLabel:"%uploadedCount out of %totalCount files uploaded (%uploadedSize of %totalSize)%errorString",numberOfErrors:", %errorsN %errorLabel",singleFile:"file",pluralFiles:"files",singleError:"error",pluralErrors:"errors"},buttons:{browse:"Browse Files",addMore:"Add More",stopUpload:"Stop Upload",cancelRemaning:"Cancel remaining Uploads",resumeUpload:"Resume Upload",remove:"Remove"}}});fluid.uploader.multiFileUploader.setupMarkup=function(that){fluid.uploader.disableElement(that,that.locate("uploadButton"));fluid.uploader.renderFileUploadLimit(that);var noFilesMsg=that.options.strings.progress.noFiles;if(noFilesMsg)that.locate("totalFileStatusText").text(noFilesMsg);};fluid.defaults("fluid.uploader.strategy",{gradeNames:["fluid.component"],components:{local:{type:"fluid.uploader.local"},remote:{type:"fluid.uploader.remote"}}});fluid.defaults("fluid.uploader.local",{gradeNames:["fluid.component"],queueSettings:"{uploader}.options.queueSettings",members:{queue:"{uploader}.queue"},events:{onFileDialog:"{uploader}.events.onFileDialog",onFilesSelected:"{uploader}.events.onFilesSelected",afterFileDialog:"{uploader}.events.afterFileDialog",afterFileQueued:"{uploader}.events.afterFileQueued",onQueueError:"{uploader}.events.onQueueError"},invokers:{enableBrowseButton:"fluid.uploader.local.enableBrowseButton",disableBrowseButton:"fluid.uploader.local.disableBrowseButton"}});fluid.defaults("fluid.uploader.remote",{gradeNames:["fluid.component"],members:{queue:"{uploader}.queue",queueSettings:"{uploader}.options.queueSettings"},events:{onFileStart:"{uploader}.events.onFileStart",onFileProgress:"{uploader}.events.onFileProgress",onFileSuccess:"{uploader}.events.onFileSuccess",onFileError:"{uploader}.events.onFileError",onFileComplete:"{uploader}.events.onFileComplete",onUploadStop:"{uploader}.events.onUploadStop",afterFileComplete:"{uploader}.events.afterFileComplete",afterUploadComplete:"{uploader}.events.afterUploadComplete"},invokers:{uploadNextFile:"fluid.uploader.uploadNextFile",stop:"fluid.uploader.stop"}});fluid.uploader.queueErrorConstants={QUEUE_LIMIT_EXCEEDED:"queue limit exceeded",FILE_EXCEEDS_SIZE_LIMIT:"file exceeds size limit",ZERO_BYTE_FILE:"zero byte file",INVALID_FILETYPE:"invalid filetype"};fluid.uploader.errorConstants={HTTP_ERROR:"HTTP error",MISSING_UPLOAD_URL:"Missing upload URL",IO_ERROR:"I/O error",SECURITY_ERROR:"Security error",UPLOAD_LIMIT_EXCEEDED:"Upload limit exceeded",UPLOAD_FAILED:"Uploader failed",SPECIFIED_FILE_ID_NOT_FOUND:"Specified file ID not found",FILE_VALIDATION_FAILED:"File validation failed",FILE_CANCELLED:"File cancelled",UPLOAD_STOPPED:"Upload stopped"};fluid.uploader.fileStatusConstants={QUEUED:"queued",IN_PROGRESS:"in progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled"};fluid.defaults("fluid.uploader.singleFile",{gradeNames:["fluid.viewComponent"],selectors:{basicUpload:".fl-progEnhance-basic"},listeners:{"onCreate.showMarkup":"fluid.uploader.singleFile.showMarkup"}});fluid.uploader.singleFile.toggleVisibility=function(toShow,toHide){if(window.opera){toShow.show().removeClass("hideUploaderForOpera");toHide.show().addClass("hideUploaderForOpera");}else{toShow.show();toHide.hide();}};fluid.uploader.singleFile.showMarkup=function(that){fluid.uploader.singleFile.toggleVisibility($(that.options.selectors.basicUpload),that.container);};"use strict";fluid.registerNamespace("fluid.uploader");fluid.defaults("fluid.uploader.fileQueue",{gradeNames:["fluid.component"],members:{files:[],isUploading:false},invokers:{start:{funcName:"fluid.uploader.fileQueue.start",args:"{that}"},startFile:{funcName:"fluid.uploader.fileQueue.startFile",args:"{that}.currentBatch"},finishFile:{funcName:"fluid.uploader.fileQueue.finishFile",args:"{that}.currentBatch"},shouldUploadNextFile:{funcName:"fluid.uploader.fileQueue.shouldUploadNextFile",args:"{that}"},addFile:{funcName:"fluid.uploader.fileQueue.addFile",args:["{that}.files","{arguments}.0"]},removeFile:{funcName:"fluid.uploader.fileQueue.removeFile",args:["{that}.files","{arguments}.0"]},totalBytes:{funcName:"fluid.uploader.fileQueue.sizeOfFiles",args:"{that}.files"},getReadyFiles:{funcName:"fluid.uploader.fileQueue.filesByStatus",args:["{that}.files",["QUEUED","CANCELLED"]]},getErroredFiles:{funcName:"fluid.uploader.fileQueue.filesByStatus",args:["{that}
118.files","ERROR"]},getUploadedFiles:{funcName:"fluid.uploader.fileQueue.filesByStatus",args:["{that}.files","COMPLETE"]},sizeOfReadyFiles:{funcName:"fluid.uploader.fileQueue.sizeOfFilesByStatus",args:["{that}.files",["QUEUED","CANCELLED"]]},sizeOfUploadedFiles:{funcName:"fluid.uploader.fileQueue.sizeOfFilesByStatus",args:["{that}.files","COMPLETE"]},setupCurrentBatch:{funcName:"fluid.uploader.fileQueue.setupCurrentBatch",args:"{that}"},clearCurrentBatch:{funcName:"fluid.uploader.fileQueue.clearCurrentBatch",args:"{that}"},updateCurrentBatch:{funcName:"fluid.uploader.fileQueue.updateCurrentBatch",args:[{expander:{func:"{that}.getReadyFiles"}},"{that}.currentBatch"]},updateBatchStatus:{funcName:"fluid.uploader.fileQueue.updateBatchStatus",args:["{arguments}.0","{that}.currentBatch"]}}});fluid.uploader.fileQueue.start=function(that){that.setupCurrentBatch();that.isUploading=true;that.shouldStop=false;};fluid.uploader.fileQueue.startFile=function(currentBatch){currentBatch.fileIdx++;currentBatch.bytesUploadedForFile=0;currentBatch.previousBytesUploadedForFile=0;};fluid.uploader.fileQueue.finishFile=function(currentBatch){currentBatch.numFilesCompleted++;};fluid.uploader.fileQueue.shouldUploadNextFile=function(that){return !that.shouldStop&&that.isUploading&&that.currentBatch.numFilesCompleted+that.currentBatch.numFilesErrored<that.currentBatch.files.length;};fluid.uploader.fileQueue.addFile=function(files,file){files.push(file);};fluid.uploader.fileQueue.removeFile=function(files,file){fluid.remove_if(files,(function(thisFile){return file===thisFile;}));};fluid.uploader.fileQueue.sizeOfFiles=function(files){return files.reduce((function(totalBytes,file){return totalBytes+file.size;}),0);};fluid.uploader.fileQueue.filterFiles=function(files,filterFn){var filteredFiles=[];return fluid.remove_if(fluid.makeArray(files),filterFn,filteredFiles);};fluid.uploader.fileQueue.filesByStatus=function(files,statuses){statuses=fluid.makeArray(statuses);return fluid.uploader.fileQueue.filterFiles(files,(function(file){return fluid.find_if(statuses,(function(status){return file.filestatus===fluid.uploader.fileStatusConstants[status];}));}));};fluid.uploader.fileQueue.sizeOfFilesByStatus=function(files,statuses){files=fluid.uploader.fileQueue.filesByStatus(files,statuses);return fluid.uploader.fileQueue.sizeOfFiles(files);};fluid.uploader.fileQueue.setupCurrentBatch=function(that){that.clearCurrentBatch();that.updateCurrentBatch();};fluid.uploader.fileQueue.clearCurrentBatch=function(that){that.currentBatch={fileIdx:0,files:[],totalBytes:0,numFilesCompleted:0,numFilesErrored:0,bytesUploadedForFile:0,previousBytesUploadedForFile:0,totalBytesUploaded:0};};fluid.uploader.fileQueue.updateCurrentBatch=function(readyFiles,currentBatch){currentBatch.files=readyFiles;currentBatch.totalBytes=fluid.uploader.fileQueue.sizeOfFiles(readyFiles);};fluid.uploader.fileQueue.updateBatchStatus=function(currentBytes,currentBatch){var byteIncrement=currentBytes-currentBatch.previousBytesUploadedForFile;currentBatch.totalBytesUploaded+=byteIncrement;currentBatch.bytesUploadedForFile+=byteIncrement;currentBatch.previousBytesUploadedForFile=currentBytes;};"use strict";fluid.registerNamespace("fluid.uploader.fileQueueView");fluid.uploader.fileQueueView.rowForFile=function(that,file){return that.container.find("#"+file.id);};fluid.uploader.fileQueueView.errorRowForFile=function(that,file){return $("#"+file.id+"_error",that.container);};fluid.uploader.fileQueueView.fileForRow=function(that,row){return fluid.find_if(that.queueFiles,(function(file){return file.id.toString()===row.prop("id");}));};fluid.uploader.fileQueueView.progressorForFile=function(that,file){var progressId=file.id+"_progress";return that.fileProgressors[progressId];};fluid.uploader.fileQueueView.startFileProgress=function(that,file){var fileRowElm=fluid.uploader.fileQueueView.rowForFile(that,file);that.scroller.scrollTo(fileRowElm);var fileProgressor=fluid.uploader.fileQueueView.progressorForFile(that,file);fileProgressor.refreshView();fileProgressor.show();};fluid.uploader.fileQueueView.updateFileProgress=function(that,file,fileBytesComplete,fileTotalBytes){var filePercent=fluid.uploader.derivePercent(fileBytesComplete,fileTotalBytes);var filePercentStr=filePercent+"%";
118fluid.uploader.fileQueueView.progressorForFile(that,file).update(filePercent,filePercentStr);};fluid.uploader.fileQueueView.hideFileProgress=function(that,file){var fileRowElm=fluid.uploader.fileQueueView.rowForFile(that,file);fluid.uploader.fileQueueView.progressorForFile(that,file).hide();if(file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE)that.locate("fileIconBtn",fileRowElm).removeClass(that.options.styles.dim);};fluid.uploader.fileQueueView.removeFileProgress=function(that,file){var fileProgressor=fluid.uploader.fileQueueView.progressorForFile(that,file);if(!fileProgressor)return;var rowProgressor=fileProgressor.displayElement;rowProgressor.remove();};fluid.uploader.fileQueueView.animateRowRemoval=function(that,row){row.fadeOut("fast",(function(){row.remove();that.refreshView();}));};fluid.uploader.fileQueueView.removeFileErrorRow=function(that,file){if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR)fluid.uploader.fileQueueView.animateRowRemoval(that,fluid.uploader.fileQueueView.errorRowForFile(that,file));};fluid.uploader.fileQueueView.removeFileAndRow=function(that,file,row){fluid.uploader.fileQueueView.removeFileProgress(that,file);fluid.uploader.fileQueueView.removeFileErrorRow(that,file);that.events.onFileRemoved.fire(file);fluid.uploader.fileQueueView.animateRowRemoval(that,row);};fluid.uploader.fileQueueView.removeFileForRow=function(that,row){var file=fluid.uploader.fileQueueView.fileForRow(that,row);if(!file||file.filestatus===fluid.uploader.fileStatusConstants.COMPLETE)return;fluid.uploader.fileQueueView.removeFileAndRow(that,file,row);};fluid.uploader.fileQueueView.removeRowForFile=function(that,file){var row=fluid.uploader.fileQueueView.rowForFile(that,file);fluid.uploader.fileQueueView.removeFileAndRow(that,file,row);};fluid.uploader.fileQueueView.bindHover=function(row,styles){var over=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading))row.addClass(styles.hover);};var out=function(){if(row.hasClass(styles.ready)&&!row.hasClass(styles.uploading))row.removeClass(styles.hover);};row.on("mouseenter",over);row.on("mouseleave",out);};fluid.uploader.fileQueueView.bindDeleteKey=function(that,row){var deleteHandler=function(){fluid.uploader.fileQueueView.removeFileForRow(that,row);};fluid.activatable(row,null,{additionalBindings:[{key:$.ui.keyCode.DELETE,activateHandler:deleteHandler}]});};fluid.uploader.fileQueueView.bindRowHandlers=function(that,row){that.locate("fileIconBtn",row).on("click",(function(){fluid.uploader.fileQueueView.removeFileForRow(that,row);}));fluid.uploader.fileQueueView.bindDeleteKey(that,row);};fluid.uploader.fileQueueView.renderRowFromTemplate=function(that,file){var row=that.rowTemplate.clone(),fileName=file.name,fileSize=fluid.uploader.formatFileSize(file.size);row.removeClass(that.options.styles.hiddenTemplate);that.locate("fileName",row).text(fileName);that.locate("fileSize",row).text(fileSize);var fileIconBtn=that.locate("fileIconBtn",row);fileIconBtn.addClass(that.options.styles.remove);fluid.updateAriaLabel(fileIconBtn,that.options.strings.buttons.remove);row.prop("id",file.id);row.addClass(that.options.styles.ready);fluid.uploader.fileQueueView.bindRowHandlers(that,row);fluid.updateAriaLabel(row,fileName+" "+fileSize);return row;};fluid.uploader.fileQueueView.createProgressorFromTemplate=function(that,row){var rowProgressor=that.rowProgressorTemplate.clone();var rowId=row.prop("id");var progressId=rowId+"_progress";rowProgressor.prop("id",progressId);rowProgressor.css("top",row.position().top);rowProgressor.height(row.height()).width(5);that.container.after(rowProgressor);that.fileProgressors[progressId]=fluid.progress(that.options.uploaderContainer,{selectors:{progressBar:"#"+rowId,displayElement:"#"+progressId,label:"#"+progressId+" .fl-uploader-file-progress-text",indicator:"#"+progressId}});};fluid.uploader.fileQueueView.addFile=function(that,file){var row=fluid.uploader.fileQueueView.renderRowFromTemplate(that,file);row.hide();that.container.append(row);row.attr("title",that.options.strings.status.remove);row.fadeIn("slow");fluid.uploader.fileQueueView.createProgressorFromTemplate(that,row);that.refreshView();that.scroller.scrollTo("max");};fluid.uploader.fileQueueView.enableRows=function(rows,state){for(var i=0;i<rows.length;i++)fluid.enabled(rows[i],state);};fluid.uploader.fileQueueView.prepareForUpload=function(that){var rowButtons=that.locate("fileIconBtn",that.locate("fileRows"));rowButtons.prop("disabled",true);rowButtons.addClass(that.options.styles.dim);fluid.uploader.fileQueueView.enableRows(that.locate("fileRows"),false);};fluid.uploader.fileQueueView.refreshAfterUpload=function(that){var rows=that.locate("fileRows");var rowButtons=that.locate("fileIconBtn",rows);rowButtons.each((function(index,rowButton){$(rowButton).prop("disabled",rows.eq(index).hasClass(that.options.styles.uploaded));}));rowButtons.removeClass(that.options.styles.dim);fluid.uploader.fileQueueView.enableRows(that.locate("fileRows"),true);};fluid.uploader.fileQueueView.changeRowState=function(that,row,newState){row.removeClass(that.options.styles.ready).removeClass(that.options.styles.error).addClass(newState);};fluid.uploader.fileQueueView.markRowAsComplete=function(that,file){var row=fluid.uploader.fileQueueView.rowForFile(that,file);fluid.uploader.fileQueueView.changeRowState(that,row,that.options.styles.uploaded);row.attr("title",that.options.strings.status.success);fluid.enabled(row,false);var rowButton=that.locate("fileIconBtn",row);rowButton.off("click");rowButton.removeClass(that.options.styles.remove);rowButton.attr("title",that.options.strings.status.success);};fluid.uploader.fileQueueView.renderErrorInfoFromTemplate=function(that,fileRow,error){var errorRow=that.errorInfoTemplate.clone();errorRow.prop("id",fileRow.prop("id")+"_error");var errorType=fluid.keyForValue(fluid.uploader.errorConstants,error);var errorMsg=that.options.strings.errors[errorType];that.locate("errorText",errorRow).text(errorMsg);that.locate("fileName",fileRow).after(errorRow);that.scroller.scrollTo(errorRow);};fluid.uploader.fileQueueView.showErrorForFile=function(that,file,error){fluid.uploader.fileQueueView.hideFileProgress(that,file);if(file.filestatus===fluid.uploader.fileStatusConstants.ERROR){var fileRowElm=fluid.uploader.fileQueueView.rowForFile(that,file);fluid.uploader.fileQueueView.changeRowState(that,fileRowElm,that.options.styles.error);fluid.uploader.fileQueueView.renderErrorInfoFromTemplate(that,fileRowElm,error);}};fluid.uploader.fileQueueView.addKeyboardNavigation=function(that){fluid.tabbable(that.container);
118that.selectableContext=fluid.selectable(that.container,{selectableSelector:that.options.selectors.fileRows,onSelect:function(itemToSelect){$(itemToSelect).addClass(that.options.styles.selected);},onUnselect:function(selectedItem){$(selectedItem).removeClass(that.options.styles.selected);}});};fluid.uploader.fileQueueView.prepareTemplateElements=function(that){that.errorInfoTemplate=that.locate("errorInfoTemplate").remove();that.errorInfoTemplate.removeClass(that.options.styles.hiddenTemplate);that.rowTemplate=that.locate("rowTemplate").remove();that.rowProgressorTemplate=that.locate("rowProgressorTemplate",that.options.uploaderContainer).remove();};fluid.uploader.fileQueueView.markFileComplete=function(that,file){fluid.uploader.fileQueueView.progressorForFile(that,file).update(100,"100%");fluid.uploader.fileQueueView.markRowAsComplete(that,file);};fluid.uploader.fileQueueView.refreshView=function(that){that.selectableContext.refresh();that.scroller.refreshView();};fluid.defaults("fluid.uploader.fileQueueView",{gradeNames:["fluid.viewComponent"],mergePolicy:{},members:{dom:"@expand:fluid.createLocalContainerDomBinder({that}.container, {that}.options.selectors)",fileProgressors:{}},invokers:{addFile:{funcName:"fluid.uploader.fileQueueView.addFile",args:["{that}","{arguments}.0"]},removeFile:{funcName:"fluid.uploader.fileQueueView.removeRowForFile",args:["{that}","{arguments}.0"]},prepareForUpload:{funcName:"fluid.uploader.fileQueueView.prepareForUpload",args:"{that}"},refreshAfterUpload:{funcName:"fluid.uploader.fileQueueView.refreshAfterUpload",args:"{that}"},showFileProgress:{funcName:"fluid.uploader.fileQueueView.startFileProgress",args:["{that}","{arguments}.0"]},updateFileProgress:{funcName:"fluid.uploader.fileQueueView.updateFileProgress",args:["{that}","{arguments}.0","{arguments}.1","{arguments}.2"]},markFileComplete:{funcName:"fluid.uploader.fileQueueView.markFileComplete",args:["{that}","{arguments}.0"]},showErrorForFile:{funcName:"fluid.uploader.fileQueueView.showErrorForFile",args:["{that}","{arguments}.0","{arguments}.1"]},hideFileProgress:{funcName:"fluid.uploader.fileQueueView.hideFileProgress",args:["{that}","{arguments}.0"]},refreshView:{funcName:"fluid.uploader.fileQueueView.refreshView",args:"{that}"}},components:{scroller:{type:"fluid.scrollableTable",container:"{fileQueueView}.container"}},selectors:{fileRows:".flc-uploader-file",fileName:".flc-uploader-file-name",fileSize:".flc-uploader-file-size",fileIconBtn:".flc-uploader-file-action",errorText:".flc-uploader-file-error",rowTemplate:".flc-uploader-file-tmplt",errorInfoTemplate:".flc-uploader-file-error-tmplt",rowProgressorTemplate:".flc-uploader-file-progressor-tmplt"},styles:{hover:"fl-uploader-file-hover",selected:"fl-uploader-file-focus",ready:"fl-uploader-file-state-ready",uploading:"fl-uploader-file-state-uploading",uploaded:"fl-uploader-file-state-uploaded",error:"fl-uploader-file-state-error",remove:"fl-uploader-file-action-remove",dim:"fl-uploader-dim",hiddenTemplate:"fl-uploader-hidden-templates"},strings:{progress:{toUploadLabel:"To upload: %fileCount %fileLabel (%totalBytes)",singleFile:"file",pluralFiles:"files"},status:{success:"File Uploaded",error:"File Upload Error",remove:"Press Delete key to remove file"},errors:{HTTP_ERROR:"File upload error: a network error occured or the file was rejected (reason unknown).",IO_ERROR:"File upload error: a network error occured.",UPLOAD_LIMIT_EXCEEDED:"File upload error: you have uploaded as many files as you are allowed during this session",UPLOAD_FAILED:"File upload error: the upload failed for an unknown reason.",QUEUE_LIMIT_EXCEEDED:"You have as many files in the queue as can be added at one time. Removing files from the queue may allow you to add different files.",FILE_EXCEEDS_SIZE_LIMIT:"One or more of the files that you attempted to add to the queue exceeded the limit of %fileSizeLimit.",ZERO_BYTE_FILE:"One or more of the files that you attempted to add contained no data.",INVALID_FILETYPE:"One or more files were not added to the queue because they were of the wrong type."},buttons:{remove:"Remove"}},events:{onFileRemoved:null},listeners:{"onCreate.prepareTemplateElement":"fluid.uploader.fileQueueView.prepareTemplateElements","onCreate.addKeyboardNavigation":"fluid.uploader.fileQueueView.addKeyboardNavigation","onCreate.addAriaRole":{this:"{that}.container",method:"attr",args:{role:"application"}}}});fluid.defaults("fluid.uploader.fileQueueView.bindUploader",{events:{onFileRemoved:"{uploader}.events.onFileRemoved"},listeners:{"{uploader}.events.afterFileQueued":"{fileQueueView}.addFile","{uploader}.events.onUploadStart":"{fileQueueView}.prepareForUpload","{uploader}.events.onFileStart":"{fileQueueView}.showFileProgress","{uploader}.events.onFileProgress":"{fileQueueView}.updateFileProgress","{uploader}.events.onFileSuccess":"{fileQueueView}.markFileComplete","{uploader}.events.onFileError":"{fileQueueView}.showErrorForFile","{uploader}.events.afterFileComplete":"{fileQueueView}.hideFileProgress","{uploader}.events.afterUploadComplete":"{fileQueueView}.refreshAfterUpload"}});fluid.registerNamespace("fluid.scrollable");fluid.scrollable.makeSimple=function(element){return fluid.container(element);};
118fluid.scrollable.makeTable=function(table,wrapperMarkup){table.wrap(wrapperMarkup);return table.closest(".fl-scrollable-scroller");};fluid.defaults("fluid.scrollable",{gradeNames:["fluid.viewComponent"],makeScrollableFn:fluid.scrollable.makeSimple,members:{scrollable:{expander:{func:"{that}.options.makeScrollableFn",args:["{that}.container","{that}.options.wrapperMarkup"]}},maxHeight:{expander:{this:"{that}.scrollable",method:"css",args:"max-height"}}},invokers:{scrollTo:{this:"{that}.scrollable",method:"scrollTo",args:"{arguments}.0"},refreshView:{funcName:"fluid.identity"}},listeners:{onCreate:"{that}.refreshView"}});fluid.defaults("fluid.scrollableTable",{gradeNames:["fluid.scrollable"],makeScrollableFn:fluid.scrollable.makeTable,wrapperMarkup:"<div class='fl-scrollable-scroller'><div class='fl-scrollable-inner'></div></div>"});"use strict";fluid.defaults("fluid.uploader.errorPanel",{gradeNames:["fluid.viewComponent","fluid.contextAware"],invokers:{refreshView:"fluid.uploader.errorPanel.refreshView({that})"}
118,events:{afterRender:null},components:{fileSizeErrorSection:{type:"fluid.uploader.errorPanel.section",createOnEvent:"afterRender",container:"{errorPanel}.dom.fileSizeErrorSection",options:{model:{errorCode:fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT},strings:{header:"{errorPanel}.options.strings.exceedsFileSize"}}},numFilesErrorSection:{type:"fluid.uploader.errorPanel.section",createOnEvent:"afterRender",container:"{errorPanel}.dom.numFilesErrorSection",options:{model:{errorCode:fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED},strings:{header:"{errorPanel}.options.strings.exceedsNumFilesLimit"}}}},selectors:{header:".flc-uploader-errorPanel-header",sectionTemplate:".flc-uploader-errorPanel-section-tmplt",fileSizeErrorSection:".flc-uploader-errorPanel-section-fileSize",numFilesErrorSection:".flc-uploader-errorPanel-section-numFiles"},strings:{headerText:"Warning(s)",exceedsNumFilesLimit:"Too many files were selected. %numFiles were not added to the queue.",exceedsFileSize:"%numFiles files were too large and were not added to the queue."},listeners:{"onCreate.renderSectionTemplates":{funcName:"fluid.uploader.errorPanel.renderSectionTemplates",args:"{that}",priority:"before:domComplete"},"onCreate.domComplete":{funcName:"fluid.uploader.errorPanel.domComplete",args:"{that}"}},styles:{hiddenTemplate:"fl-hidden-templates"}});fluid.uploader.errorPanel.refreshView=function(that){for(var i=0;i<that.sections.length;i++)if(that.sections[i].model.files.length>0){that.container.show();return;}that.container.hide();};fluid.uploader.errorPanel.renderSectionTemplates=function(that){var sectionTmpl=that.locate("sectionTemplate").remove().removeClass(that.options.styles.hiddenTemplate);that.locate("fileSizeErrorSection").append(sectionTmpl.clone());that.locate("numFilesErrorSection").append(sectionTmpl.clone());that.events.afterRender.fire(that);};fluid.uploader.errorPanel.domComplete=function(that){that.sections=[that.fileSizeErrorSection,that.numFilesErrorSection];that.locate("header").text(that.options.strings.headerText);that.container.hide();};fluid.defaults("fluid.uploader.errorPanel.bindUploader",{listeners:{"{uploader}.events.afterFileDialog":"{errorPanel}.refreshView"},distributeOptions:{target:"{that fluid.uploader.errorPanel.section}.options.listeners",record:{"{uploader}.events.onQueueError":"{section}.addFile","{uploader}.events.onFilesSelected":"{section}.clear","{uploader}.events.onUploadStart":"{section}.clear","{section}.events.afterErrorsCleared":"{errorPanel}.refreshView"}}});fluid.defaults("fluid.uploader.errorPanel.section",{gradeNames:["fluid.viewComponent"],model:{errorCode:undefined,files:[],showingDetails:false},events:{afterErrorsCleared:null},selectors:{errorTitle:".fl-uploader-errorPanel-section-title",deleteErrorButton:".flc-uploader-errorPanel-section-removeButton",errorDetails:".flc-uploader-errorPanel-section-details",erroredFiles:".flc-uploader-errorPanel-section-files",showHideFilesToggle:".flc-uploader-errorPanel-section-toggleDetails"},strings:{hideFiles:"Hide files",showFiles:"Show files",fileListDelimiter:", "},invokers:{toggleDetails:"fluid.uploader.errorPanel.section.toggleDetails({that}
118)",showDetails:"fluid.uploader.errorPanel.section.showDetails({that})",hideDetails:"fluid.uploader.errorPanel.section.hideDetails({that})",addFile:"fluid.uploader.errorPanel.section.addFile({that}, {arguments}.0, {arguments}.1)",clear:"fluid.uploader.errorPanel.section.clear({that})",refreshView:"fluid.uploader.errorPanel.section.refreshView({that})"},listeners:{"onCreate.bindHandlers":{funcName:"fluid.uploader.errorPanel.section.bindHandlers",priority:"after:refreshView"},"onCreate.refreshView":"{that}.refreshView"}});fluid.uploader.errorPanel.section.toggleDetails=function(that){var detailsAction=that.model.showingDetails?that.hideDetails:that.showDetails;detailsAction();};fluid.uploader.errorPanel.section.showDetails=function(that){that.locate("errorDetails").show();that.locate("showHideFilesToggle").text(that.options.strings.hideFiles);that.model.showingDetails=true;};fluid.uploader.errorPanel.section.hideDetails=function(that){that.locate("errorDetails").hide();that.locate("showHideFilesToggle").text(that.options.strings.showFiles);that.model.showingDetails=false;};fluid.uploader.errorPanel.section.addFile=function(that,file,errorCode){if(errorCode===that.model.errorCode){that.model.files.push(file.name);that.refreshView();}};fluid.uploader.errorPanel.section.clear=function(that){that.model.files=[];that.refreshView();that.events.afterErrorsCleared.fire();};fluid.uploader.errorPanel.section.refreshView=function(that){fluid.uploader.errorPanel.section.renderHeader(that);fluid.uploader.errorPanel.section.renderErrorDetails(that);that.hideDetails();if(that.model.files.length<=0)that.container.hide();else that.container.show();};fluid.uploader.errorPanel.section.bindHandlers=function(that){that.locate("deleteErrorButton").on("click",that.clear);that.locate("showHideFilesToggle").on("click",that.toggleDetails);};fluid.uploader.errorPanel.section.renderHeader=function(that){var errorTitle=fluid.stringTemplate(that.options.strings.header,{numFiles:that.model.files.length});that.locate("errorTitle").text(errorTitle);};fluid.uploader.errorPanel.section.renderErrorDetails=function(that){var files=that.model.files;var filesList=files.length>0?files.join(that.options.strings.fileListDelimiter):"";that.locate("erroredFiles").text(filesList);};"use strict";fluid.defaults("fluid.uploader.html5",{gradeNames:"fluid.uploader.multiFileUploader",components:{strategy:{type:"fluid.uploader.html5Strategy"}}});fluid.defaults("fluid.uploader.html5Strategy",{gradeNames:["fluid.uploader.strategy"],components:{local:{type:"fluid.uploader.html5Strategy.local"},remote:{type:"fluid.uploader.html5Strategy.remote"}}});fluid.registerNamespace("fluid.uploader.html5.browser");fluid.uploader.html5.browser.isMS=!!navigator.msLaunchUri;fluid.uploader.html5Strategy.fileSuccessHandler=function(file,events,xhr){events.onFileSuccess.fire(file,xhr.responseText,xhr);events.onFileComplete.fire(file);};fluid.uploader.html5Strategy.fileErrorHandler=function(file,events,xhr){events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_FAILED,xhr.status,xhr);events.onFileComplete.fire(file);};fluid.uploader.html5Strategy.fileStopHandler=function(file,events,xhr){events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,xhr.status,xhr);events.onFileComplete.fire(file);};fluid.uploader.html5Strategy.monitorFileUploadXHR=function(file,events,xhr){xhr.onreadystatechange=function(){if(xhr.readyState===4){var status=xhr.status;if(status>=200&&status<=204)fluid.uploader.html5Strategy.fileSuccessHandler(file,events,xhr);else if(status===0)fluid.uploader.html5Strategy.fileStopHandler(file,events,xhr);else fluid.uploader.html5Strategy.fileErrorHandler(file,events,xhr);}};xhr.upload.onprogress=function(pe){events.onFileProgress.fire(file,pe.loaded,pe.total);};};fluid.uploader.html5Strategy.uploadNextFile=function(queue,uploadFile){var batch=queue.currentBatch;var file=batch.files[batch.fileIdx];uploadFile(file);};fluid.uploader.html5Strategy.uploadFile=function(that,file){that.events.onFileStart.fire(file);that.currentXHR=that.createXHR();fluid.uploader.html5Strategy.monitorFileUploadXHR(file,that.events,that.currentXHR);that.fileSender.send(file,that.queueSettings,that.currentXHR);};
118fluid.uploader.html5Strategy.stop=function(that){that.queue.isUploading=false;that.currentXHR.abort();that.events.onUploadStop.fire();};fluid.defaults("fluid.uploader.html5Strategy.remote",{gradeNames:["fluid.uploader.remote"],components:{fileSender:{type:"fluid.uploader.html5Strategy.fileSender"}},invokers:{createXHR:"fluid.uploader.html5Strategy.createXHR",uploadNextFile:{funcName:"fluid.uploader.html5Strategy.uploadNextFile",args:["{that}.queue","{that}.uploadFile"]},uploadFile:{funcName:"fluid.uploader.html5Strategy.uploadFile",args:["{that}","{arguments}.0"]},stop:{funcName:"fluid.uploader.html5Strategy.stop",args:["{that}"]}}});fluid.uploader.html5Strategy.createXHR=function(){return new XMLHttpRequest();};fluid.uploader.html5Strategy.createFormData=function(){return new FormData();};fluid.uploader.html5Strategy.setPostParams=function(formData,postParams){$.each(postParams,(function(key,value){formData.append(key,value);}));};fluid.defaults("fluid.uploader.html5Strategy.fileSender",{gradeNames:["fluid.component","fluid.contextAware"],invokers:{send:{funcName:"fluid.fail",args:"Error instantiating HTML5 Uploader - browser does not support FormData feature. Please try version 1.4 or earlier of Uploader which has Firefox 3.x support"}},contextAwareness:{technology:{checks:{formData:{contextValue:"{fluid.browser.supportsFormData}",gradeNames:"fluid.uploader.html5Strategy.formDataSender"}}}}});fluid.defaults("fluid.uploader.html5Strategy.formDataSender",{gradeNames:["fluid.component"],invokers:{createFormData:"fluid.uploader.html5Strategy.createFormData",send:{funcName:"fluid.uploader.html5Strategy.sendFormData",args:["{that}.createFormData","{arguments}.0","{arguments}.1","{arguments}.2"]}}});fluid.uploader.html5Strategy.sendFormData=function(formCreator,file,queueSettings,xhr){var formData=formCreator();formData.append("file",file);fluid.uploader.html5Strategy.setPostParams(formData,queueSettings.postParams);xhr.open("POST",queueSettings.uploadURL,true);xhr.send(formData);return formData;};fluid.defaults("fluid.uploader.html5Strategy.local",{gradeNames:["fluid.uploader.local"],invokers:{addFiles:{funcName:"fluid.uploader.html5Strategy.local.addFiles",args:["{that}","{arguments}.0"]},removeFile:"fluid.identity",enableBrowseButton:"{that}.browseButtonView.enable",disableBrowseButton:"{that}.browseButtonView.disable"},components:{browseButtonView:{type:"fluid.uploader.html5Strategy.browseButtonView",container:"{uploader}.container",options:{strings:"{uploader}.options.strings.buttons",queueSettings:"{uploader}.options.queueSettings",selectors:{browseButton:"{uploader}.options.selectors.browseButton"},events:{onBrowse:"{local}.events.onFileDialog"},listeners:{onFilesQueued:"{local}.addFiles"}}}}});fluid.uploader.html5Strategy.local.addFiles=function(that,files){var queueSettings=that.options.queueSettings;var sizeLimit=queueSettings.fileSizeLimit*1024;var fileLimit=queueSettings.fileUploadLimit;var uploaded=that.queue.getUploadedFiles().length;var queued=that.queue.getReadyFiles().length;var remainingUploadLimit=fileLimit-uploaded-queued;that.events.onFilesSelected.fire(files.length);var numFilesAdded=0;for(var i=0;i<files.length;i++){var file=files[i];if(fileLimit&&remainingUploadLimit===0)that.events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.QUEUE_LIMIT_EXCEEDED);else if(file.size>sizeLimit){file.filestatus=fluid.uploader.fileStatusConstants.ERROR;that.events.onQueueError.fire(file,fluid.uploader.queueErrorConstants.FILE_EXCEEDS_SIZE_LIMIT);}else{if(!fileLimit||remainingUploadLimit>0){file.id="file-"+fluid.allocateGuid();file.filestatus=fluid.uploader.fileStatusConstants.QUEUED;that.events.afterFileQueued.fire(file);remainingUploadLimit--;numFilesAdded++;}}}that.events.afterFileDialog.fire(numFilesAdded);};fluid.uploader.bindEventsToFileInput=function(that,fileInput){fileInput.on("click",(function(){that.events.onBrowse.fire();}));if(fluid.uploader.html5.browser.isMS)fileInput.on("keydown",(function(event){if(event.keyCode===$.ui.keyCode.ENTER){event.preventDefault();fileInput.trigger("click");}}));fileInput.on("change",(function(){var files=fileInput[0].files;that.renderFreshMultiFileInput();that.events.onFilesQueued.fire(files);}));fileInput.on("focus",(function(){that.browseButton.addClass("focus");that.events.onFocusFileInput.fire(that,fileInput,true);}));fileInput.on("blur",(function(){that.browseButton.removeClass("focus");that.events.onFocusFileInput.fire(that,fileInput,false);}));};fluid.uploader.renderMultiFileInput=function(that){var multiFileInput=$(that.options.multiFileInputMarkup);var fileTypes=that.options.queueSettings.fileTypes;if(fluid.isArrayable(fileTypes)){fileTypes=fileTypes.join();multiFileInput.attr("accept",fileTypes);}return multiFileInput;};fluid.uploader.renderFreshMultiFileInput=function(that){var previousInput=that.locate("fileInputs").last();previousInput.hide();previousInput.prop("tabindex",-1);var newInput=fluid.uploader.renderMultiFileInput(that);newInput.attr("aria-label",that.options.strings.addMore);previousInput.after(newInput);fluid.uploader.bindEventsToFileInput(that,newInput);};fluid.uploader.setupBrowseButtonView=function(that){var multiFileInput=fluid.uploader.renderMultiFileInput(that);multiFileInput.attr("aria-label",that.options.strings.browse);that.browseButton.append(multiFileInput);fluid.uploader.bindEventsToFileInput(that,multiFileInput);that.browseButton.prop("tabindex",-1);};fluid.uploader.isEnabled=function(element){return !element.prop("disabled");};fluid.defaults("fluid.uploader.html5Strategy.browseButtonView",{gradeNames:["fluid.viewComponent"],strings:{browse:"Browse files",addMore:"Add more"},multiFileInputMarkup:"<input type='file' multiple='' class='flc-uploader-html5-input' />",queueSettings:{},members:{browseButton:"{that}.dom.browseButton"},invokers:{enable:{this:"{that}
118.dom.fileInputs",method:"prop",args:["disabled",false]},disable:{this:"{that}.dom.fileInputs",method:"prop",args:["disabled",true]},isEnabled:{funcName:"fluid.uploader.isEnabled",args:"{that}.dom.fileInputs"},renderFreshMultiFileInput:{funcName:"fluid.uploader.renderFreshMultiFileInput",args:"{that}"}},selectors:{browseButton:".flc-uploader-button-browse",fileInputs:".flc-uploader-html5-input"},events:{onFocusFileInput:null,onBrowse:null,onFilesQueued:null},listeners:{onCreate:{funcName:"fluid.uploader.setupBrowseButtonView",args:"{that}"}}});"use strict";fluid.registerNamespace("fluid.uploader.demo");fluid.defaults("fluid.uploader.demo",{distributeOptions:{record:"fluid.uploader.demo.remote",target:"{that strategy remote}.type"}});fluid.uploader.demo.uploadNextFile=function(that){that.demoState.currentFile=that.queue.files[that.demoState.fileIdx];that.demoState.chunksForCurrentFile=Math.ceil(that.demoState.currentFile/that.demoState.chunkSize);that.demoState.bytesUploaded=0;that.queue.isUploading=true;that.events.onFileStart.fire(that.demoState.currentFile);fluid.uploader.demo.simulateUpload(that);};fluid.uploader.demo.updateProgress=function(file,events,demoState,isUploading){if(!isUploading)return;var chunk=Math.min(demoState.chunkSize,file.size);demoState.bytesUploaded=Math.min(demoState.bytesUploaded+chunk,file.size);events.onFileProgress.fire(file,demoState.bytesUploaded,file.size);};fluid.uploader.demo.finishAndContinueOrCleanup=function(that,file){that.queue.finishFile(file);that.events.afterFileComplete.fire(file);if(that.queue.shouldUploadNextFile())fluid.uploader.demo.uploadNextFile(that);else{that.events.afterUploadComplete.fire(that.queue.currentBatch.files);if(file.status!==fluid.uploader.fileStatusConstants.CANCELLED)that.queue.clearCurrentBatch();}};fluid.uploader.demo.finishUploading=function(that){if(!that.queue.isUploading)return;var file=that.demoState.currentFile;that.events.onFileSuccess.fire(file);that.demoState.fileIdx++;fluid.uploader.demo.finishAndContinueOrCleanup(that,file);};fluid.uploader.demo.simulateUpload=function(that){if(!that.queue.isUploading)return;var file=that.demoState.currentFile;if(that.demoState.bytesUploaded<file.size)fluid.invokeAfterRandomDelay((function(){fluid.uploader.demo.updateProgress(file,that.events,that.demoState,that.queue.isUploading);fluid.uploader.demo.simulateUpload(that);}));else fluid.uploader.demo.finishUploading(that);};fluid.uploader.demo.stop=function(that){var file=that.demoState.currentFile;file.filestatus=fluid.uploader.fileStatusConstants.CANCELLED;that.queue.shouldStop=true;that.events.onFileError.fire(file,fluid.uploader.errorConstants.UPLOAD_STOPPED,"The demo upload was paused by the user.");fluid.uploader.demo.finishAndContinueOrCleanup(that,file);that.events.onUploadStop.fire();};fluid.invokeAfterRandomDelay=function(fn){var delay=Math.floor(Math.random()*200+100);setTimeout(fn,delay);};fluid.defaults("fluid.uploader.demo.remote",{gradeNames:["fluid.uploader.remote"],members:{demoState:{fileIdx:0,chunkSize:2e5}},invokers:{uploadNextFile:{funcName:"fluid.uploader.demo.uploadNextFile",args:"{that}"},stop:{funcName:"fluid.uploader.demo.stop",args:"{that}"}}});"use strict";fluid.registerNamespace("fluid.uploader");fluid.uploader.mimeTypeRegistry={jpg:"image/jpeg",jpeg:"image/jpeg",bmp:"image/bmp",png:"image/png",tif:"image/tiff",tiff:"image/tiff",mp3:"audio/mpeg",m4a:"audio/mp4a-latm",ogg:"audio/ogg",wav:"audio/x-wav",aiff:"audio/x-aiff",mpg:"video/mpeg",mpeg:"video/mpeg",m4v:"video/x-m4v",ogv:"video/ogg",mov:"video/quicktime",avi:"video/x-msvideo",html:"text/html",htm:"text/html",text:"text/plain",doc:"application/msword",docx:"application/msword",xls:"application/vnd.ms-excel",xlsx:"application/vnd.ms-excel",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.ms-powerpoint"};; 119/* @license MIT https://raw.githubusercontent.com/focus-trap/tabbable/v6.2.0/LICENSE */ 120/*! 121* tabbable 6.2.0 122* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE 123*/ 124!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):(t="undefined"!=typeof globalThis?globalThis:t||self,function(){var n=t.tabbable,o=t.tabbable={};e(o),o.noConflict=function(){return t.tabbable=n,o}}())}(this,(function(t){"use strict";var e=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not
124(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],n=e.join(","),o="undefined"==typeof Element,r=o?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,i=!o&&Element.prototype.getRootNode?function(t){var e;return null==t||null===(e=t.getRootNode)||void 0===e?void 0:e.call(t)}:function(t){return null==t?void 0:t.ownerDocument},a=function t(e,n){var o;void 0===n&&(n=!0);var r=null==e||null===(o=e.getAttribute)||void 0===o?void 0:o.call(e,"inert");return""===r||"true"===r||n&&e&&t(e.parentNode)},l=function(t,e,o){if(a(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(n));return e&&r.call(t,n)&&i.unshift(t),i=i.filter(o)},u=function t(e,o,i){for(var l=[],u=Array.from(e);u.length;){var d=u.shift();if(!a(d,!1))if("SLOT"===d.tagName){var c=d.assignedElements(),f=t(c.length?c:d.children,!0,i);i.flatten?l.push.apply(l,f):l.push({scopeParent:d,candidates:f})}else{r.call(d,n)&&i.filter(d)&&(o||!e.includes(d))&&l.push(d);var s=d.shadowRoot||"function"==typeof i.getShadowRoot&&i.getShadowRoot(d),p=!a(s,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(d));if(s&&p){var h=t(!0===s?d.children:s.children,!0,i);i.flatten?l.push.apply(l,h):l.push({scopeParent:d,candidates:h})}else u.unshift.apply(u,d.children)}}return l},d=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},c=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||function(t){var e,n=null==t||null===(e=t.getAttribute)||void 0===e?void 0:e.call(t,"contenteditable");return""===n||"true"===n}(t))&&!d(t)?0:t.tabIndex},f=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},s=function(t){return"INPUT"===t.tagName},p=function(t){return function(t){return s(t)&&"radio"===t.type}(t)&&!function(t){if(!t.name)return!0;var e,n=t.form||i(t),o=function(t){return n.querySelectorAll('input[type="radio"][name="'+t+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)e=o(window.CSS.escape(t.name));else try{e=o(t.name)}catch(t){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",t.message),!1}var r=function(t,e){for(var n=0;n<t.length;n++)if(t[n].checked&&t[n].form===e)return t[n]}(e,t.form);return!r||r===t}(t)},h=function(t){var e=t.getBoundingClientRect(),n=e.width,o=e.height;return 0===n&&0===o},v=function(t,e){var n=e.displayCheck,o=e.getShadowRoot;if("hidden"===getComputedStyle(t).visibility)return!0;var a=r.call(t,"details>summary:first-of-type")?t.parentElement:t;if(r.call(a,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return h(t)}else{if("function"==typeof o){for(var l=t;t;){var u=t.parentElement,d=i(t);if(u&&!u.shadowRoot&&!0===o(u))return h(t);t=t.assignedSlot?t.assignedSlot:u||d===t.ownerDocument?u:d.host}t=l}if(function(t){var e,n,o,r,a=t&&i(t),l=null===(e=a)||void 0===e?void 0:e.host,u=!1;if(a&&a!==t)for(u=!!(null!==(n=l)&&void 0!==n&&null!==(o=n.ownerDocument)&&void 0!==o&&o.contains(l)||null!=t&&null!==(r=t.ownerDocument)&&void 0!==r&&r.contains(t));!u&&l;){var d,c,f;u=!(null===(c=l=null===(d=a=i(l))||void 0===d?void 0:d.host)||void 0===c||null===(f=c.ownerDocument)||void 0===f||!f.contains(l))}return u}(t))return!t.getClientRects().length;if("legacy-full"!==n)return!0}return!1},b=function(t,e){return!(e.disabled||a(e)||function(t){return s(t)&&"hidden"===t.type}(e)||v(e,t)||function(t){return"DETAILS"===t.tagName&&Array.prototype.slice.apply(t.children).some((function(t){return"SUMMARY"===t.tagName}))}(e)||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if("FIELDSET"===e.tagName&&e.disabled){for(var n=0;n<e.children.length;n++){var o=e.children.item(n);if("LEGEND"===o.tagName)return!!r.call(e,"fieldset[disabled] *")||!o.contains(t)}return!0}e=e.parentElement}return!1}(e))},m=function(t,e){return!(p(e)||c(e)<0||!b(t,e))},g=function(t){var e=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(e)||e>=0)},y=function t(e){var n=[],o=[];return e.forEach((function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,l=function(t,e){var n=c(t);return n<0&&e&&!d(t)?0:n}(a,i),u=i?t(e.candidates):a;0===l?i?n.push.apply(n,u):n.push(a):o.push({documentOrder:r,tabIndex:l,item:e,isScope:i,content:u})})),o.sort(f).reduce((function(t,e){return e.isScope?t.push.apply(t,e.content):t.push(e.content),t}),[]).concat(n)},w=e.concat("iframe").join(",");t.focusable=function(t,e){return(e=e||{}).getShadowRoot?u([t],e.includeContainer,{filter:b.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):l(t,e.includeContainer,b.bind(null,e))},t.getTabIndex=c,t.isFocusable=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==r.call(t,w)&&b(e,t)},t.isTabbable=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==r.call(t,n)&&m(e,t)},t.tabbable=function(t,e){var n;return n=(e=e||{}).getShadowRoot?u([t],e.includeContainer,{filter:m.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:g}):l(t,e.includeContainer,m.bind(null,e)),y(n)}
124,Object.defineProperty(t,"__esModule",{value:!0})})); 125 126; 127/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 128(function($,Drupal){let autocomplete;function autocompleteSplitValues(value){const result=[];let quote=false;let current='';const valueLength=value.length;let character;for(let i=0;i<valueLength;i++){character=value.charAt(i);if(character==='"'){current+=character;quote=!quote;}else if(character===','&&!quote){result.push(current.trim());current='';}else current+=character;}if(value.length>0)result.push(current.trim());return result;}function extractLastTerm(terms){return autocomplete.splitValues(terms).pop();}function searchHandler(event){const options=autocomplete.options;if(options.isComposing)return false;const term=autocomplete.extractLastTerm(event.target.value);if(term.length>0&&options.firstCharacterDenyList.includes(term[0]))return false;return term.length>=options.minLength;}function sourceData(request,response){const elementId=this.element.attr('id');if(!(elementId in autocomplete.cache))autocomplete.cache[elementId]={};function showSuggestions(suggestions){const tagged=autocomplete.splitValues(request.term);const il=tagged.length;for(let i=0;i<il;i++)if(suggestions.includes(tagged[i]))suggestions.splice(suggestions.indexOf(tagged[i]),1);response(suggestions);}const term=autocomplete.extractLastTerm(request.term);function sourceCallbackHandler(data){autocomplete.cache[elementId][term]=data;showSuggestions(data);}if(autocomplete.cache[elementId].hasOwnProperty(term))showSuggestions(autocomplete.cache[elementId][term]);else{const options=$.extend({success:sourceCallbackHandler,data:{q:term}},autocomplete.ajax);$.ajax(this.element.attr('data-autocomplete-path'),options);}}function focusHandler(){return false;}function selectHandler(event,ui){const terms=autocomplete.splitValues(event.target.value);terms.pop();terms.push(ui.item.value);event.target.value=terms.join(', ');return false;}function renderItem(ul,item){return $('<li>').append($('<a>').html(item.label)).appendTo(ul);}Drupal.behaviors.autocomplete={attach(context){once('autocomplete','input.form-autocomplete',context).forEach((element)=>{const $autocomplete=$(element);const blacklist=$autocomplete.attr('data-autocomplete-first-character-blacklist');if(blacklist!==undefined)Drupal.deprecationError({message:'The data-autocomplete-first-character-blocklist attribute is deprecated in drupal:11.2.0 and is removed from drupal:12.0.0. Use firstCharacterDenyList instead. See https://www.drupal.org/node/3472016.'});const denyList=$autocomplete.attr('data-autocomplete-first-character-denylist');Drupal.deprecatedProperty({target:autocomplete.options,deprecatedProperty:'firstCharacterBlacklist',message:'The firstCharacterBlacklist property is deprecated in drupal:11.2.0 and is removed from drupal:12.0.0. Use firstCharacterDenyList instead. See https://www.drupal.org/node/3472016.'});$.extend(autocomplete.options,{firstCharacterDenyList:denyList||blacklist});$autocomplete.autocomplete(autocomplete.options).each(function(){$(this).data('ui-autocomplete')._renderItem=autocomplete.options.renderItem;});$autocomplete.on('compositionstart.autocomplete',()=>{autocomplete.options.isComposing=true;});$autocomplete.on('compositionend.autocomplete',()=>{autocomplete.options.isComposing=false;});});},detach(context,settings,trigger){if(trigger==='unload')$(once.remove('autocomplete','input.form-autocomplete',context)).autocomplete('destroy');}};autocomplete={cache:{},splitValues:autocompleteSplitValues,extractLastTerm,options:{source:sourceData,focus:focusHandler,search:searchHandler,select:selectHandler,renderItem,minLength:1,firstCharacterDenyList:'',isComposing:false},ajax:{dataType:'json',jsonp:false}};Drupal.autocomplete=autocomplete;})(jQuery,Drupal);;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.