Detected insecure pattern matching known vulnerability signatures. Medium Confidence (Fuzzy matcher overlap - minor review required). Please apply remediation steps matching the recommended patch format below.
Heuristics Diff
- !function(){"use strict";var n,e,t=function(n){return function(){return n}},r={noop:function(){},noarg:function(n){return function(){return n()}},compose:function(n,e){return function(){return n(e.apply(null,arguments))}},constant:t,identity:function(n){return n},tripleEquals:function(n,e){return n===e},curry:function(n){for(var e=new Array(arguments.length-1),t=1;t<arguments.length;t++)e[t-1]=arguments[t];return function(){for(var t=new Array(arguments.length),r=0;r<t.length;r++)t[r]=arguments[r];var o=e.concat(t);return n.apply(null,o)}},not:function(n){return function(){return!n.apply(null,arguments)}},die:function(n){return function(){throw new Error(n)}},apply:function(n){return n()},call:function(n){n()},never:t(!1),always:t(!0)},o={contextmenu:r.constant("contextmenu"),touchstart:r.constant("touchstart"),touchmove:r.constant("touchmove"),touchend:r.constant("touchend"),gesturestart:r.constant("gesturestart"),mousedown:r.constant("mousedown"),mousemove:r.constant("mousemove"),mouseout:r.constant("mouseout"),mouseup:r.constant("mouseup"),mouseover:r.constant("mouseover"),focusin:r.constant("focusin"),keydown:r.constant("keydown"),input:r.constant("input"),change:r.constant("change"),focus:r.constant("focus"),click:r.constant("click"),transitionend:r.constant("transitionend"),selectstart:r.constant("selectstart")},i=function(n){var e,t=!1;return function(){return t||(t=!0,e=n.apply(null,arguments)),e}},u=function(){return a(0,0)},a=function(n,e){return{major:n,minor:e}},c={nu:a,detect:function(n,e){var t=String(e).toLowerCase();return 0===n.length?u():function(n,e){var t=function(n,e){for(var t=0;t<n.length;t++){var r=n[t];if(r.test(e))return r}}(n,e);if(!t)return{major:0,minor:0};var r=function(n){return Number(e.replace(t,"$"+n))};return a(r(1),r(2))}(n,t)},unknown:u},s=function(n,e){return function(){return e===n}},f=function(n){var e=n.current;return{current:e,version:n.version,isEdge:s("Edge",e),isChrome:s("Chrome",e),isIE:s("IE",e),isOpera:s("Opera",e),isFirefox:s("Firefox",e),isSafari:s("Safari",e)}},l={unknown:function(){return f({current:void 0,version:c.unknown()})},nu:f,edge:r.constant("Edge"),chrome:r.constant("Chrome"),ie:r.constant("IE"),opera:r.constant("Opera"),firefox:r.constant("Firefox"),safari:r.constant("Safari")},d=function(n,e){return function(){return e===n}},m=function(n){var e=n.current;return{current:e,version:n.version,isWindows:d("Windows",e),isiOS:d("iOS",e),isAndroid:d("Android",e),isOSX:d("OSX",e),isLinux:d("Linux",e),isSolaris:d("Solaris",e),isFreeBSD:d("FreeBSD",e)}},p={unknown:function(){return m({current:void 0,version:c.unknown()})},nu:m,windows:r.constant("Windows"),ios:r.constant("iOS"),android:r.constant("Android"),linux:r.constant("Linux"),osx:r.constant("OSX"),solaris:r.constant("Solaris"),freebsd:r.constant("FreeBSD")},g=r.never,v=r.always,h=function(){return y},y=function(){var n=function(n){return n.isNone()},e=function(n){return n()},t=function(n){return n},o={fold:function(n,e){return n()},is:g,isSome:g,isNone:v,getOr:t,getOrThunk:e,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},or:t,orThunk:e,map:h,ap:h,each:function(){},bind:h,flatten:h,exists:g,forall:v,filter:h,equals:n,equals_:n,toArray:function(){return[]},toString:r.constant("none()")};return Object.freeze&&Object.freeze(o),o}(),b=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:v,isNone:g,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return b(e(n))},ap:function(e){return e.fold(h,function(e){return b(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:y},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(g,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},w={some:b,none:h,from:function(n){return null===n||void 0===n?y:b(n)}},S=void 0===(n=Array.prototype.indexOf)?function(n,e){return D(n,e)}:function(e,t){return n.call(e,t)},x=function(n,e){return S(n,e)>-1},O=function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var i=n[o];r[o]=e(i,o,n)}return r},T=function(n,e){for(var t=0,r=n.length;t<r;t++)e(n[t],t,n)},k=function(n,e){for(var t=n.length-1;t>=0;t--)e(n[t],t,n)},C=function(n,e){for(var t=[],r=0,o=n.length;r<o;r++){var i=n[r];e(i,r,n)&&t.push(i)}return t},E=function(n,e){for(var t=0,r=n.length;t<r;t++)if(e(n[t],t,n))return w.some(t);return w.none()},D=function(n,e){for(var t=0,r=n.length;t<r;++t)if(n[t]===e)return t;return-1},A=Array.prototype.push,M=function(n){for(var e=[],t=0,r=n.length;t<r;++t){if(!Array.prototype.isPrototypeOf(n[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+n);A.apply(e,n[t])}return e},R=function(n,e){for(var t=0,r=n.length;t<r;++t)if(!0!==e(n[t],t,n))return!1;return!0},F=Array.prototype.slice,B={map:O,each:T,eachr:k,partition:function(n,e){for(var t=[],r=[],o=0,i=n.length;o<i;o++){var u=n[o];(e(u,o,n)?t:r).push(u)}return{pass:t,fail:r}},filter:C,groupBy:function(n,e){if(0===n.length)return[];for(var t=e(n[0]),r=[],o=[],i=0,u=n.length;i<u;i++){var a=n[i],c=e(a);c!==t&&(r.push(o),o=[]),t=c,o.push(a)}return 0!==o.length&&r.push(o),r},indexOf:function(n,e){var t=S(n,e);return-1===t?w.none():w.some(t)},foldr:function(n,e,t){return k(n,function(n){t=e(t,n)}),t},foldl:function(n,e,t){return T(n,function(n){t=e(t,n)}),t},find:function(n,e){for(var t=0,r=n.length;t<r;t++){var o=n[t];if(e(o,t,n))return w.some(o)}return w.none()},findIndex:E,flatten:M,bind:function(n,e){var t=O(n,e);return M(t)},forall:R,exists:function(n,e){return E(n,e).isSome()},contains:x,equal:function(n,e){return n.length===e.length&&R(n,function(n,t){return n===e[t]})},reverse:function(n){var e=F.call(n,0);return e.reverse(),e},chunk:function(n,e){for(var t=[],r=0;r<n.length;r+=e){var o=n.slice(r,r+e);t.push(o)}return t},difference:function(n,e){return C(n,function(n){return!x(e,n)})},mapToObject:function(n,e){for(var t={},r=0,o=n.length;r<o;r++){var i=n[r];t[String(i)]=e(i,r)}return t},pure:function(n){return[n]},sort:function(n,e){var t=F.call(n,0);return t.sort(e),t},range:function(n,e){for(var t=[],r=0;r<n;r++)t.push(e(r));return t},head:function(n){return 0===n.length?w.none():w.some(n[0])},last:function(n){return 0===n.length?w.none():w.some(n[n.length-1])}},I=function(n,e){var t=String(e).toLowerCase();return B.find(n,function(n){return n.search(t)})},H=function(n,e){return I(n,e).map(function(n){var t=c.detect(n.versionRegexes,e);return{current:n.name,version:t}})},N=function(n,e){return I(n,e).map(function(n){var t=c.detect(n.versionRegexes,e);return{current:n.name,version:t}})},V=function(n,e){return n.replace(/\${([^{}]*)}/g,function(n,t){var r=e[t];return function(n){var e=typeof n;return"string"===e||"number"===e}(r)?r:n})},j=function(n,e){return-1!==n.indexOf(e)},P=function(n){return n.replace(/^\s+|\s+$/g,"")},L=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,W=function(n){return function(e){return j(e,n)}},U=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(n){return j(n,"edge/")&&j(n,"chrome")&&j(n,"safari")&&j(n,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,L],search:function(n){return j(n,"chrome")&&!j(n,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(n){return j(n,"msie")||j(n,"trident")}},{name:"Opera",versionRegexes:[L,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:W("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:W("firefox")},{name:"Safari",versionRegexes:[L,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(n){return(j(n,"safari")||j(n,"mobile/"))&&j(n,"applewebkit")}}],z=[{name:"Windows",search:W("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(n){return j(n,"iphone")||j(n,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:W("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:W("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:W("linux"),versionRegexes:[]},{name:"Solaris",search:W("sunos"),versionRegexes:[]},{name:"FreeBSD",search:W("freebsd"),versionRegexes:[]}],K={browsers:r.constant(U),oses:r.constant(z)},G=function(n){var e=K.browsers(),t=K.oses(),o=H(e,n).fold(l.unknown,l.nu),i=N(t,n).fold(p.unknown,p.nu);return{browser:o,os:i,deviceType:function(n,e,t){var o=n.isiOS()&&!0===/ipad/i.test(t),i=n.isiOS()&&!o,u=n.isAndroid()&&3===n.version.major,a=n.isAndroid()&&4===n.version.major,c=o||u||a&&!0===/mobile/i.test(t),s=n.isiOS()||n.isAndroid(),f=s&&!c,l=e.isSafari()&&n.isiOS()&&!1===/safari/i.test(t);return{isiPad:r.constant(o),isiPhone:r.constant(i),isTablet:r.constant(c),isPhone:r.constant(f),isTouch:r.constant(s),isAndroid:n.isAndroid,isiOS:n.isiOS,isWebView:r.constant(l)}}(i,o,n)}},$={detect:i(function(){var n=navigator.userAgent;return G(n)})},q={tap:r.constant("alloy.tap")},_={focus:r.constant("alloy.focus"),postBlur:r.constant("alloy.blur.post"),receive:r.constant("alloy.receive"),execute:r.constant("alloy.execute"),focusItem:r.constant("alloy.focus.item"),tap:q.tap,tapOrClick:$.detect().deviceType.isTouch()?q.tap:o.click,longpress:r.constant("alloy.longpress"),sandboxClose:r.constant("alloy.sandbox.close"),systemInit:r.constant("alloy.system.init"),windowScroll:r.constant("alloy.system.scroll"),attachedToDom:r.constant("alloy.system.attached"),detachedFromDom:r.constant("alloy.system.detached"),changeTab:r.constant("alloy.change.tab"),dismissTab:r.constant("alloy.dismiss.tab")},X=function(n){return function(e){return function(n){if(null===n)return"null";var e=typeof n;return"object"===e&&Array.prototype.isPrototypeOf(n)?"array":"object"===e&&String.prototype.isPrototypeOf(n)?"string":e}(e)===n}},Y={isString:X("string"),isObject:X("object"),isArray:X("array"),isNull:X("null"),isBoolean:X("boolean"),isUndefined:X("undefined"),isFunction:X("function"),isNumber:X("number")},J=function(n){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var r={},o=0;o<e.length;o++){var i=e[o];for(var u in i)i.hasOwnProperty(u)&&(r[u]=n(r[u],i[u]))}return r}},Q=J(function(n,e){return Y.isObject(n)&&Y.isObject(e)?Q(n,e):e}),Z=J(function(n,e){return e}),nn={deepMerge:Q,merge:Z},en=void 0===(e=Object.keys)?function(n){var e=[];for(var t in n)n.hasOwnProperty(t)&&e.push(t);return e}:e,tn=function(n,e){for(var t=en(n),r=0,o=t.length;r<o;r++){var i=t[r];e(n[i],i,n)}},rn=function(n,e){var t={};return tn(n,function(r,o){var i=e(r,o,n);t[i.k]=i.v}),t},on=function(n,e){var t=[];return tn(n,function(n,r){t.push(e(n,r))}),t},un=function(n){return on(n,function(n){return n})},an={bifilter:function(n,e){var t={},r={};return tn(n,function(n,o){(e(n,o)?t:r)[o]=n}),{t:t,f:r}},each:tn,map:function(n,e){return rn(n,function(n,t,r){return{k:t,v:e(n,t,r)}})},mapToArray:on,tupleMap:rn,find:function(n,e){for(var t=en(n),r=0,o=t.length;r<o;r++){var i=t[r],u=n[i];if(e(u,i,n))return w.some(u)}return w.none()},keys:en,values:un,size:function(n){return un(n).length}},cn=function(n,e){sn(n,n.element(),e,{})},sn=function(n,e,t,o){var i=nn.deepMerge({target:e},o);n.getSystem().triggerEvent(t,e,an.map(i,r.constant))},fn=cn,ln=function(n,e,t){sn(n,n.element(),e,t)},dn=function(n){cn(n,_.execute())},mn=function(n,e,t){sn(n,e,t,{})},pn=function(n,e,t,r){n.getSystem().triggerEvent(t,e,r.event())},gn=function(n,e){n.getSystem().triggerFocus(e,n.element())},vn=function(n){return n.slice(0).sort()},hn={sort:vn,reqMessage:function(n,e){throw new Error("All required keys ("+vn(n).join(", ")+") were not specified. Specified keys were: "+vn(e).join(", ")+".")},unsuppMessage:function(n){throw new Error("Unsupported keys for object: "+vn(n).join(", "))},validateStrArr:function(n,e){if(!Y.isArray(e))throw new Error("The "+n+" fields must be an array. Was: "+e+".");B.each(e,function(e){if(!Y.isString(e))throw new Error("The value "+e+" in the "+n+" fields was not a string.")})},invalidTypeMessage:function(n,e){throw new Error("All values need to be of type: "+e+". Keys ("+vn(n).join(", ")+") were not.")},checkDupes:function(n){var e=vn(n);B.find(e,function(n,t){return t<e.length-1&&n===e[t+1]}).each(function(n){throw new Error("The field: "+n+" occurs more than once in the combined fields: ["+e.join(", ")+"].")})}},yn={immutable:function(){var n=arguments;return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(n.length!==e.length)throw new Error('Wrong number of arguments to struct. Expected "['+n.length+']", got '+e.length+" arguments");var o={};return B.each(n,function(n,t){o[n]=r.constant(e[t])}),o}},immutableBag:function(n,e){var t=n.concat(e);if(0===t.length)throw new Error("You must specify at least one required or optional field.");return hn.validateStrArr("required",n),hn.validateStrArr("optional",e),hn.checkDupes(t),function(o){var i=an.keys(o);B.forall(n,function(n){return B.contains(i,n)})||hn.reqMessage(n,i);var u=B.filter(i,function(n){return!B.contains(t,n)});u.length>0&&hn.unsuppMessage(u);var a={};return B.each(n,function(n){a[n]=r.constant(o[n])}),B.each(e,function(n){a[n]=r.constant(Object.prototype.hasOwnProperty.call(o,n)?w.some(o[n]):w.none())}),a}}},bn=function(n,e){var t=[],r=function(n){return t.push(n),e(n)},o=e(n);do{o=o.bind(r)}while(o.isSome());return t},wn="undefined"!=typeof window?window:Function("return this;")(),Sn=function(n,e){for(var t=void 0!==e&&null!==e?e:wn,r=0;r<n.length&&void 0!==t&&null!==t;++r)t=t[n[r]];return t},xn=function(n,e){var t=n.split(".");return Sn(t,e)},On={getOrDie:function(n,e){var t=function(n,e){return xn(n,e)}(n,e);if(void 0===t||null===t)throw n+" not available on this browser";return t}},Tn=function(n){if(null===n||void 0===n)throw new Error("Node cannot be null or undefined");return{dom:r.constant(n)}},kn={fromHtml:function(n,e){var t=(e||document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||t.childNodes.length>1)throw console.error("HTML does not have a single root node",n),"HTML must have a single root node";return Tn(t.childNodes[0])},fromTag:function(n,e){var t=(e||document).createElement(n);return Tn(t)},fromText:function(n,e){var t=(e||document).createTextNode(n);return Tn(t)},fromDom:Tn,fromPoint:function(n,e,t){return w.from(n.dom().elementFromPoint(e,t)).map(Tn)}},Cn=8,En=9,Dn=1,An=3,Mn=Dn,Rn=En,Fn=function(n){return n.nodeType!==Mn&&n.nodeType!==Rn||0===n.childElementCount},Bn={all:function(n,e){var t=void 0===e?document:e.dom();return Fn(t)?[]:B.map(t.querySelectorAll(n),kn.fromDom)},is:function(n,e){var t=n.dom();if(t.nodeType!==Mn)return!1;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")},one:function(n,e){var t=void 0===e?document:e.dom();return Fn(t)?w.none():w.from(t.querySelector(n)).map(kn.fromDom)}},In=function(n,e){return n.dom()===e.dom()},Hn=($.detect().browser.isIE(),In),Nn=function(n){return kn.fromDom(n.dom().ownerDocument)},Vn=function(n){var e=n.dom();return w.from(e.parentNode).map(kn.fromDom)},jn=function(n){var e=n.dom();return w.from(e.previousSibling).map(kn.fromDom)},Pn=function(n){var e=n.dom();return w.from(e.nextSibling).map(kn.fromDom)},Ln=function(n){var e=n.dom();return B.map(e.childNodes,kn.fromDom)},Wn=function(n,e){var t=n.dom().childNodes;return w.from(t[e]).map(kn.fromDom)},Un=yn.immutable("element","offset"),zn={owner:Nn,defaultView:function(n){var e=n.dom().ownerDocument.defaultView;return kn.fromDom(e)},documentElement:function(n){var e=Nn(n);return kn.fromDom(e.dom().documentElement)},parent:Vn,findIndex:function(n){return Vn(n).bind(function(e){var t=Ln(e);return B.findIndex(t,function(e){return Hn(n,e)})})},parents:function(n,e){for(var t=Y.isFunction(e)?e:r.constant(!1),o=n.dom(),i=[];null!==o.parentNode&&void 0!==o.parentNode;){var u=o.parentNode,a=kn.fromDom(u);if(i.push(a),!0===t(a))break;o=u}return i},siblings:function(n){return Vn(n).map(Ln).map(function(e){return B.filter(e,function(e){return!Hn(n,e)})}).getOr([])},prevSibling:jn,offsetParent:function(n){var e=n.dom();return w.from(e.offsetParent).map(kn.fromDom)},prevSiblings:function(n){return B.reverse(bn(n,jn))},nextSibling:Pn,nextSiblings:function(n){return bn(n,Pn)},children:Ln,child:Wn,firstChild:function(n){return Wn(n,0)},lastChild:function(n){return Wn(n,n.dom().childNodes.length-1)},childNodesCount:function(n){return n.dom().childNodes.length},hasChildNodes:function(n){return n.dom().hasChildNodes()},leaf:function(n,e){var t=Ln(n);return t.length>0&&e<t.length?Un(t[e],0):Un(n,e)}},Kn=function(n,e){zn.parent(n).each(function(t){t.dom().insertBefore(e.dom(),n.dom())})},Gn=function(n,e){n.dom().appendChild(e.dom())},$n={before:Kn,after:function(n,e){zn.nextSibling(n).fold(function(){zn.parent(n).each(function(n){Gn(n,e)})},function(n){Kn(n,e)})},prepend:function(n,e){zn.firstChild(n).fold(function(){Gn(n,e)},function(t){n.dom().insertBefore(e.dom(),t.dom())})},append:Gn,appendAt:function(n,e,t){zn.child(n,t).fold(function(){Gn(n,e)},function(n){Kn(n,e)})},wrap:function(n,e){Kn(n,e),Gn(e,n)}},qn={before:function(n,e){B.each(e,function(e){$n.before(n,e)})},after:function(n,e){B.each(e,function(t,r){var o=0===r?n:e[r-1];$n.after(o,t)})},prepend:function(n,e){B.each(e.slice().reverse(),function(e){$n.prepend(n,e)})},append:function(n,e){B.each(e,function(e){$n.append(n,e)})}},_n=function(n){var e=n.dom();null!==e.parentNode&&e.parentNode.removeChild(e)},Xn={empty:function(n){n.dom().textContent="",B.each(zn.children(n),function(n){_n(n)})},remove:_n,unwrap:function(n){var e=zn.children(n);e.length>0&&qn.before(n,e),_n(n)}},Yn=function(n){return n.dom().nodeName.toLowerCase()},Jn=function(n){return n.dom().nodeType},Qn=function(n){return function(e){return Jn(e)===n}},Zn=Qn(Dn),ne=Qn(An),ee=Qn(En),te={name:Yn,type:Jn,value:function(n){return n.dom().nodeValue},isElement:Zn,isText:ne,isDocument:ee,isComment:function(n){return Jn(n)===Cn||"#comment"===Yn(n)}},re=i(function(){return oe(kn.fromDom(document))}),oe=function(n){var e=n.dom().body;if(null===e||void 0===e)throw"Body is not available yet";return kn.fromDom(e)},ie={body:re,getBody:oe,inBody:function(n){var e=te.isText(n)?n.dom().parentNode:n.dom();return void 0!==e&&null!==e&&e.ownerDocument.body.contains(e)}},ue=function(n){fn(n,_.detachedFromDom());var e=n.components();B.each(e,ue)},ae=function(n){var e=n.components();B.each(e,ae),fn(n,_.attachedToDom())},ce=function(n,e,t){n.getSystem().addToWorld(e),t(n.element(),e.element()),ie.inBody(n.element())&&ae(e),n.syncComponents()},se=function(n){ue(n),Xn.remove(n.element()),n.getSystem().removeFromWorld(n)},fe={attach:function(n,e){ce(n,e,$n.append)},attachWith:ce,detach:function(n){var e=zn.parent(n.element()).bind(function(e){return n.getSystem().getByDom(e).fold(w.none,w.some)});se(n),e.each(function(n){n.syncComponents()})},detachChildren:function(n){var e=n.components();B.each(e,se),Xn.empty(n.element()),n.syncComponents()},attachSystem:function(n,e){$n.append(n,e.element());var t=zn.children(e.element());B.each(t,function(n){e.getByDom(n).each(ae)})},detachSystem:function(n){var e=zn.children(n.element());B.each(e,function(e){n.getByDom(e).each(ue)}),Xn.remove(n.element())}},le=function(n,e){var t=(e||document).createElement("div");return t.innerHTML=n,zn.children(kn.fromDom(t))},de=function(n){return n.dom().innerHTML},me=de,pe=function(n,e){var t=zn.owner(n).dom(),r=kn.fromDom(t.createDocumentFragment()),o=le(e,t);qn.append(r,o),Xn.empty(n),$n.append(n,r)},ge=function(n){var e=kn.fromTag("div"),t=kn.fromDom(n.dom().cloneNode(!0));return $n.append(e,t),de(e)},ve=function(n,e,t){if(!(Y.isString(t)||Y.isBoolean(t)||Y.isNumber(t)))throw console.error("Invalid call to Attr.set. Key ",e,":: Value ",t,":: Element ",n),new Error("Attribute value was not simple");n.setAttribute(e,t+"")},he=function(n,e,t){ve(n.dom(),e,t)},ye=function(n,e){var t=n.dom().getAttribute(e);return null===t?void 0:t},be=function(n,e){var t=n.dom();return!(!t||!t.hasAttribute)&&t.hasAttribute(e)},we={clone:function(n){return B.foldl(n.dom().attributes,function(n,e){return n[e.name]=e.value,n},{})},set:he,setAll:function(n,e){var t=n.dom();an.each(e,function(n,e){ve(t,e,n)})},get:ye,has:be,remove:function(n,e){n.dom().removeAttribute(e)},hasNone:function(n){var e=n.dom().attributes;return void 0===e||null===e||0===e.length},transfer:function(n,e,t){te.isElement(n)&&te.isElement(e)&&B.each(t,function(t){!function(n,e,t){be(n,t)&&!be(e,t)&&he(e,t,ye(n,t))}(n,e,t)})}},Se=function(n,e){return kn.fromDom(n.dom().cloneNode(e))},xe=function(n){return Se(n,!1)},Oe=function(n){var e=xe(n);return ge(e)},Te={element:function(n){return Oe(n)}},ke=function(n){return{is:function(e){return n===e},isValue:r.always,isError:r.never,getOr:r.constant(n),getOrThunk:r.constant(n),getOrDie:r.constant(n),or:function(e){return ke(n)},orThunk:function(e){return ke(n)},fold:function(e,t){return t(n)},map:function(e){return ke(e(n))},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return w.some(n)}}},Ce=function(n){return{is:r.never,isValue:r.never,isError:r.always,getOr:r.identity,getOrThunk:function(n){return n()},getOrDie:function(){return r.die(n)()},or:function(n){return n},orThunk:function(n){return n()},fold:function(e,t){return e(n)},map:function(e){return Ce(n)},each:r.noop,bind:function(e){return Ce(n)},exists:r.never,forall:r.always,toOption:w.none}},Ee={value:ke,error:Ce},De=function(n){if(!Y.isArray(n))throw new Error("cases must be an array");if(0===n.length)throw new Error("there must be at least one case");var e=[],t={};return B.each(n,function(r,o){var i=an.keys(r);if(1!==i.length)throw new Error("one and only one name per case");var u=i[0],a=r[u];if(void 0!==t[u])throw new Error("duplicate key detected:"+u);if("cata"===u)throw new Error("cannot have a case named cata (sorry)");if(!Y.isArray(a))throw new Error("case arguments must be an array");e.push(u),t[u]=function(){var t=arguments.length;if(t!==a.length)throw new Error("Wrong number of arguments to case "+u+". Expected "+a.length+" ("+a+"), got "+t);for(var r=new Array(t),i=0;i<r.length;i++)r[i]=arguments[i];return{fold:function(){if(arguments.length!==n.length)throw new Error("Wrong number of arguments to fold. Expected "+n.length+", got "+arguments.length);return arguments[o].apply(null,r)},match:function(n){var t=an.keys(n);if(e.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+e.join(",")+"\nActual: "+t.join(","));if(!B.forall(e,function(n){return B.contains(t,n)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+e.join(", "));return n[u].apply(null,r)},log:function(n){console.log(n,{constructors:e,constructor:u,params:r})}}}}),t},Ae=(De([{bothErrors:["error1","error2"]},{firstError:["error1","value2"]},{secondError:["value1","error2"]},{bothValues:["value1","value2"]}]),function(n){var e=[],t=[];return B.each(n,function(n){n.fold(function(n){e.push(n)},function(n){t.push(n)})}),{errors:e,values:t}}),Me=function(n){return r.compose(Ee.error,B.flatten)(n)},Re=function(n,e){var t=Ae(n);return t.errors.length>0?Me(t.errors):function(n,e){return Ee.value(nn.deepMerge.apply(void 0,[e].concat(n)))}(t.values,e)},Fe=function(n){var e=Ae(n);return e.errors.length>0?Me(e.errors):Ee.value(e.values)},Be=function(n,e){var t={};return B.each(e,function(e){void 0!==n[e]&&n.hasOwnProperty(e)&&(t[e]=n[e])}),t},Ie=function(n,e){var t={};return an.each(n,function(n,r){B.contains(e,r)||(t[r]=n)}),t},He=function(n,e){var t={};return B.each(n,function(n){var r=n[e];t[r]=n}),t},Ne=function(n){return function(e){return e.hasOwnProperty(n)?w.from(e[n]):w.none()}},Ve=Ne,je=function(n,e){return function(t){return Ne(n)(t).getOr(e)}},Pe=function(n,e){return Ne(e)(n)},Le=function(n,e){return n.hasOwnProperty(e)&&void 0!==n[e]&&null!==n[e]},We=function(n,e){var t={};return t[n]=e,t},Ue=function(n){var e={};return B.each(n,function(n){e[n.key]=n.value}),e},ze={narrow:function(n,e){return Be(n,e)},exclude:function(n,e){return Ie(n,e)},readOpt:function(n){return Ve(n)},readOr:function(n,e){return je(n,e)},readOptFrom:function(n,e){return Pe(n,e)},wrap:function(n,e){return We(n,e)},wrapAll:function(n){return Ue(n)},indexOnKey:function(n,e){return He(n,e)},hasKey:function(n,e){return Le(n,e)},consolidate:function(n,e){return Re(n,e)}},Ke=function(n){for(var e=[],t=function(n){e.push(n)},r=0;r<n.length;r++)n[r].each(t);return e},Ge=function(n,e){for(var t=0;t<n.length;t++){var r=e(n[t],t);if(r.isSome())return r}return w.none()},$e="__CHROME_INSPECTOR_CONNECTION_TO_ALLOY__",qe=[],_e=["alloy/data/Fields","alloy/debugging/Debugging"],Xe={logEventCut:r.noop,logEventStopped:r.noop,logNoParent:r.noop,logEventNoHandlers:r.noop,logEventResponse:r.noop,write:r.noop},Ye=function(){return void 0!==window[$e]?window[$e]:(window[$e]={systems:{},lookup:function(n){var e=window[$e].systems,t=an.keys(e);return Ge(t,function(t){return e[t].getByUid(n).toOption().map(function(n){return ze.wrap(Te.element(n.element()),function(n){var e=function(n){var t=n.spec();return{"(original.spec)":t,"(dom.ref)":n.element().dom(),"(element)":Te.element(n.element()),"(initComponents)":B.map(void 0!==t.components?t.components:[],e),"(components)":B.map(n.components(),e),"(bound.events)":an.mapToArray(n.events(),function(n,e){return[e]}).join(", "),"(behaviours)":void 0!==t.behaviours?an.map(t.behaviours,function(e,t){return void 0===e?"--revoked--":{config:e.configAsRaw(),"original-config":e.initialConfig,state:n.readState(t)}}):"none"}};return e(n)}(n))})})}},window[$e])},Je=function(n,e,t){},Qe=(r.constant(Xe),function(){var n=new Error;if(void 0!==n.stack){var e=n.stack.split("\n");return B.find(e,function(n){return n.indexOf("alloy")>0&&!B.exists(_e,function(e){return n.indexOf(e)>-1})}).getOr("unknown")}return"unknown"}),Ze=function(n,e,t){var r,o="*"===qe||B.contains(qe,n)?(r=[],{logEventCut:function(n,e,t){r.push({outcome:"cut",target:e,purpose:t})},logEventStopped:function(n,e,t){r.push({outcome:"stopped",target:e,purpose:t})},logNoParent:function(n,e,t){r.push({outcome:"no-parent",target:e,purpose:t})},logEventNoHandlers:function(n,e){r.push({outcome:"no-handlers-left",target:e})},logEventResponse:function(n,e,t){r.push({outcome:"response",purpose:t,target:e})},write:function(){B.contains(["mousemove","mouseover","mouseout",_.systemInit()],n)||console.log(n,{event:n,target:e.dom(),sequence:B.map(r,function(n){return B.contains(["cut","stopped","response"],n.outcome)?"{"+n.purpose+"} "+n.outcome+" at ("+Te.element(n.target)+")":n.outcome})})}}):Xe,i=t(o);return o.write(),i},nt=(r.constant(!0),function(n,e){Ye().systems[n]=e}),et=function(n,e){return Hn(n.element(),e.event().target())},tt=De([{strict:[]},{defaultedThunk:["fallbackThunk"]},{asOption:[]},{asDefaultedOptionThunk:["fallbackThunk"]},{mergeWithThunk:["baseThunk"]}]),rt={strict:tt.strict,asOption:tt.asOption,defaulted:function(n){return tt.defaultedThunk(r.constant(n))},defaultedThunk:tt.defaultedThunk,asDefaultedOption:function(n){return tt.asDefaultedOptionThunk(r.constant(n))},asDefaultedOptionThunk:tt.asDefaultedOptionThunk,mergeWith:function(n){return tt.mergeWithThunk(r.constant(n))},mergeWithThunk:tt.mergeWithThunk},ot={typeAdt:De([{setOf:["validator","valueType"]},{arrOf:["valueType"]},{objOf:["fields"]},{itemOf:["validator"]},{choiceOf:["key","branches"]},{thunk:["description"]},{func:["args","outputSchema"]}]),fieldAdt:De([{field:["name","presence","type"]},{state:["name"]}])},it=function(){return On.getOrDie("JSON")},ut=function(n,e,t){return it().stringify(n,e,t)},at=function(n){return Y.isObject(n)&&an.keys(n).length>100?" removed due to size":ut(n,null,2)},ct=function(n){var e=n.length>10?n.slice(0,10).concat([{path:[],getErrorInfo:function(){return"... (only showing first ten failures)"}}]):n;return B.map(e,function(n){return"Failed path: ("+n.path.join(" > ")+")\n"+n.getErrorInfo()})},st=function(n,e){return Ee.error([{path:n,getErrorInfo:e}])},ft=function(n,e,t){return st(n,function(){return'Could not find valid *strict* value for "'+e+'" in '+at(t)})},lt=function(n,e){return st(n,function(){return'Choice schema did not contain choice key: "'+e+'"'})},dt=function(n,e,t){return st(n,function(){return'The chosen schema: "'+t+'" did not exist in branches: '+at(e)})},mt=function(n,e){return st(n,function(){return"There are unsupported fields: ["+e.join(", ")+"] specified"})},pt=function(n,e){return st(n,function(){return e})},gt=De([{field:["key","okey","presence","prop"]},{state:["okey","instantiator"]}]),vt=function(n,e,t){var o=Pe(n,e).fold(function(){return t(n)},r.identity);return Ee.value(o)},ht=function(n,e,t,o){return t.fold(function(t,i,u,a){var c=function(e){return a.extract(n.concat([t]),o,e).map(function(n){return We(i,o(n))})},s=function(e){return e.fold(function(){var n=We(i,o(w.none()));return Ee.value(n)},function(e){return a.extract(n.concat([t]),o,e).map(function(n){return We(i,o(w.some(n)))})})};return u.fold(function(){return function(n,e,t){return Pe(e,t).fold(function(){return ft(n,t,e)},Ee.value)}(n,e,t).bind(c)},function(n){return vt(e,t,n).bind(c)},function(){return function(n,e){return Ee.value(Pe(n,e))}(e,t).bind(s)},function(n){return function(n,e,t){var r=Pe(n,e).map(function(e){return!0===e?t(n):e});return Ee.value(r)}(e,t,n).bind(s)},function(n){var o=n(e);return vt(e,t,r.constant({})).map(function(n){return nn.deepMerge(o,n)}).bind(c)})},function(n,t){var r=t(e);return Ee.value(We(n,o(r)))})},yt=function(n){return{extract:function(e,t,r){return n(r,t).fold(function(n){return pt(e,n)},Ee.value)},toString:function(){return"val"},toDsl:function(){return ot.typeAdt.itemOf(n)}}},bt=function(n){return{extract:function(e,t,r){return function(n,e,t,r){var o=B.map(t,function(t){return ht(n,e,t,r)});return Re(o,{})}(e,r,n,t)},toString:function(){return"obj{\n"+B.map(n,function(n){return n.fold(function(n,e,t,r){return n+" -> "+r.toString()},function(n,e){return"state("+n+")"})}).join("\n")+"}"},toDsl:function(){return ot.typeAdt.objOf(B.map(n,function(n){return n.fold(function(n,e,t,r){return ot.fieldAdt.field(n,t,r)},function(n,e){return ot.fieldAdt.state(n)})}))}}},wt=function(n){return{extract:function(e,t,r){var o=B.map(r,function(r,o){return n.extract(e.concat(["["+o+"]"]),t,r)});return Fe(o)},toString:function(){return"array("+n.toString()+")"},toDsl:function(){return ot.typeAdt.arrOf(n)}}},St=yt(Ee.value),xt=r.compose(wt,bt),Ot={anyValue:r.constant(St),value:yt,obj:bt,objOnly:function(n){var e=bt(n),t=B.foldr(n,function(n,e){return e.fold(function(e){return nn.deepMerge(n,ze.wrap(e,!0))},r.constant(n))},{});return{extract:function(n,r,o){var i=Y.isBoolean(o)?[]:function(n){var e=an.keys(n);return B.filter(e,function(e){return ze.hasKey(n,e)})}(o),u=B.filter(i,function(n){return!ze.hasKey(t,n)});return 0===u.length?e.extract(n,r,o):mt(n,u)},toString:e.toString,toDsl:e.toDsl}},arr:wt,setOf:function(n,e){return{extract:function(t,o,i){var u=an.keys(i);return function(e,t){return wt(yt(n)).extract(e,r.identity,t)}(t,u).bind(function(n){var r=B.map(n,function(n){return gt.field(n,n,rt.strict(),e)});return bt(r).extract(t,o,i)})},toString:function(){return"setOf("+e.toString()+")"},toDsl:function(){return ot.typeAdt.setOf(n,e)}}},arrOfObj:xt,state:gt.state,field:gt.field,output:function(n,e){return gt.state(n,r.constant(e))},snapshot:function(n){return gt.state(n,r.identity)},thunk:function(n,e){var t=i(function(){return e()});return{extract:function(n,e,r){return t().extract(n,e,r)},toString:function(){return t().toString()},toDsl:function(){return ot.typeAdt.thunk(n)}}},func:function(n,e,t){return{extract:yt(function(e,r){return Y.isFunction(e)?Ee.value(function(){var o=Array.prototype.slice.call(arguments,0).slice(0,n.length),i=e.apply(null,o);return t(i,r)}):Ee.error("Not a function")}).extract,toString:function(){return"function"},toDsl:function(){return ot.typeAdt.func(n,e)}}}},Tt=function(n,e){return Ot.field(n,n,rt.strict(),e)},kt=function(n){return Ot.field(n,n,rt.strict(),Ot.anyValue())},Ct=Tt,Et=function(n,e){return Ot.field(n,n,rt.strict(),Ot.obj(e))},Dt=function(n){return Ot.field(n,n,rt.strict(),Ot.value(function(n){return Y.isFunction(n)?Ee.value(n):Ee.error("Not a function")}))},At=function(n,e){return Ot.field(n,n,rt.asOption(),Ot.value(function(t){return Ee.error("The field: "+n+" is forbidden. "+e)}))},Mt=function(n){return Ot.field(n,n,rt.asOption(),Ot.anyValue())},Rt=function(n,e){return Ot.field(n,n,rt.asOption(),e)},Ft=function(n,e){return Ot.field(n,n,rt.asOption(),Ot.obj(e))},Bt=function(n,e){return Ot.field(n,n,rt.asOption(),Ot.objOnly(e))},It=function(n,e){return Ot.field(n,n,rt.defaulted(e),Ot.anyValue())},Ht=function(n,e,t){return Ot.field(n,n,rt.defaulted(e),t)},Nt=function(n,e,t){return Ot.field(n,n,rt.defaulted(e),Ot.obj(t))},Vt=function(n,e,t,r){return Ot.field(n,e,t,r)},jt=function(n,e){return Ot.state(n,e)},Pt=function(n,e){return{extract:function(t,r,o){return ze.readOptFrom(o,n).fold(function(){return lt(t,n)},function(n){return function(n,e,t,r,o){return ze.readOptFrom(r,o).fold(function(){return dt(n,r,o)},function(r){return Ot.obj(r).extract(n.concat(["branch: "+o]),e,t)})}(t,r,o,e,n)})},toString:function(){return"chooseOn("+n+"). Possible values: "+an.keys(e)},toDsl:function(){return ot.typeAdt.choiceOf(n,e)}}},Lt=Ot.value(Ee.value),Wt=Ot.arr,Ut=Ot.obj,zt=Ot.objOnly,Kt=Ot.setOf,Gt=function(n,e,t,r){return e.extract([n],t,r).fold(function(n){return Ee.error({input:r,errors:n})},Ee.value)},$t=function(n,e,t){return Gt(n,e,r.constant,t)},qt=function(n,e,t){return Gt(n,e,r.identity,t)},_t=function(n){return n.fold(function(n){throw new Error(Xt(n))},r.identity)},Xt=function(n){return"Errors: \n"+ct(n.errors)+"\n\nInput object: "+at(n.input)},Yt={anyValue:r.constant(Lt),arrOfObj:function(n){return Ot.arrOfObj(n)},arrOf:Wt,arrOfVal:function(){return Ot.arr(Lt)},valueOf:function(n){return Ot.value(function(e){return n(e)})},setOf:Kt,objOf:Ut,objOfOnly:zt,asStruct:$t,asRaw:qt,asStructOrDie:function(n,e,t){return _t($t(n,e,t))},asRawOrDie:function(n,e,t){return _t(qt(n,e,t))},getOrDie:_t,formatError:Xt,choose:function(n,e){return Pt(n,e)},thunkOf:function(n,e){return Ot.thunk(n,e)},funcOrDie:function(n,e){return Ot.func(n,e,function(n,t){return _t(Gt("()",e,t,n))})}},Jt=function(n){if(!ze.hasKey(n,"can")&&!ze.hasKey(n,"abort")&&!ze.hasKey(n,"run"))throw new Error("EventHandler defined by: "+ut(n,null,2)+" does not have can, abort, or run!");return Yt.asRawOrDie("Extracting event.handler",Yt.objOfOnly([It("can",r.constant(!0)),It("abort",r.constant(!1)),It("run",r.noop)]),n)},Qt=function(n){return Y.isFunction(n)?{can:r.constant(!0),abort:r.constant(!1),run:n}:n},Zt=function(n){var e=function(n,e){return function(){var t=Array.prototype.slice.call(arguments,0);return B.foldl(n,function(n,r){return n&&e(r).apply(void 0,t)},!0)}}(n,function(n){return n.can}),t=function(n,e){return function(){var t=Array.prototype.slice.call(arguments,0);return B.foldl(n,function(n,r){return n||e(r).apply(void 0,t)},!1)}}(n,function(n){return n.abort});return Jt({can:e,abort:t,run:function(){var e=Array.prototype.slice.call(arguments,0);B.each(n,function(n){n.run.apply(void 0,e)})}})},nr=Jt,er=function(n,e){return{key:n,value:nr({run:e})}},tr=function(n){return function(e){return{key:n,value:nr({run:function(n,t){et(n,t)&&e(n,t)}})}}},rr=function(n,e){return er(n,function(t,r){t.getSystem().getByUid(e).each(function(e){pn(e,e.element(),n,r)})})},or={derive:ze.wrapAll,run:er,preventDefault:function(n){return{key:n,value:nr({run:function(n,e){e.event().prevent()}})}},runActionExtra:function(n,e,t){return{key:n,value:nr({run:function(n){e.apply(void 0,[n].concat(t))}})}},runOnAttached:tr(_.attachedToDom()),runOnDetached:tr(_.detachedFromDom()),runOnInit:tr(_.systemInit()),runOnExecute:function(n){return function(e){return er(n,e)}}(_.execute()),redirectToUid:rr,redirectToPart:function(n,e,t){var r=e.partUids()[t];return rr(n,r)},runWithTarget:function(n,e){return er(n,function(n,t){n.getSystem().getByDom(t.event().target()).each(function(r){e(n,r,t)})})},abort:function(n,e){return{key:n,value:nr({abort:e})}},can:function(n,e){return{key:n,value:nr({can:e})}},cutter:function(n){return er(n,function(n,e){e.cut()})},stopper:function(n){return er(n,function(n,e){e.stop()})}},ir=function(n,e,t){return n},ur=function(n,e){return n},ar=function(n,e){return n},cr=(w.none,function(n){return{tag:n.tag(),classes:n.classes().getOr([]),attributes:n.attributes().getOr({}),styles:n.styles().getOr({}),value:n.value().getOr("<none>"),innerHtml:n.innerHtml().getOr("<none>"),defChildren:n.defChildren().getOr("<none>"),domChildren:n.domChildren().fold(function(){return"<none>"},function(n){return 0===n.length?"0 children, but still specified":String(n.length)})}}),sr={nu:yn.immutableBag(["tag"],["classes","attributes","styles","value","innerHtml","domChildren","defChildren"]),defToStr:function(n){var e=cr(n);return ut(e,null,2)},defToRaw:cr},fr=yn.immutableBag([],["classes","attributes","styles","value","innerHtml","defChildren","domChildren"]),lr=function(n){return{classes:n.classes().getOr("<none>"),attributes:n.attributes().getOr("<none>"),styles:n.styles().getOr("<none>"),value:n.value().getOr("<none>"),innerHtml:n.innerHtml().getOr("<none>"),defChildren:n.defChildren().getOr("<none>"),domChildren:n.domChildren().fold(function(){return"<none>"},function(n){return 0===n.length?"0 children, but still specified":String(n.length)})}},dr=function(n,e,t){return e.fold(function(){return t.fold(function(){return{}},function(e){return ze.wrap(n,e)})},function(e){return t.fold(function(){return ze.wrap(n,e)},function(e){return ze.wrap(n,e)})})},mr={nu:fr,derive:function(n){var e={},t=an.keys(n);return B.each(t,function(t){n[t].each(function(n){e[t]=n})}),fr(e)},merge:function(n,e){var t=nn.deepMerge({tag:n.tag(),classes:e.classes().getOr([]).concat(n.classes().getOr([])),attributes:nn.merge(n.attributes().getOr({}),e.attributes().getOr({})),styles:nn.merge(n.styles().getOr({}),e.styles().getOr({}))},e.innerHtml().or(n.innerHtml()).map(function(n){return ze.wrap("innerHtml",n)}).getOr({}),dr("domChildren",e.domChildren(),n.domChildren()),dr("defChildren",e.defChildren(),n.defChildren()),e.value().or(n.value()).map(function(n){return ze.wrap("value",n)}).getOr({}));return sr.nu(t)},modToStr:function(n){var e=lr(n);return ut(e,null,2)},modToRaw:lr},pr=function(n){return{key:n,value:void 0}},gr=function(n,e,t,o,u,a,c){var s=function(n){return ze.hasKey(n,t)?n[t]():w.none()},f=an.map(u,function(n,e){return function(n,e,t){return ir(function(o){var i=arguments;return o.config({name:r.constant(n)}).fold(function(){throw new Error("We could not find any behaviour configuration for: "+n+". Using API: "+t)},function(n){var t=Array.prototype.slice.call(i,1);return e.apply(void 0,[o,n.config,n.state].concat(t))})},t,e)}(t,n,e)}),l=an.map(a,function(n,e){return ur(n,e)}),d=nn.deepMerge(l,f,{revoke:r.curry(pr,t),config:function(e){var r=Yt.asStructOrDie(t+"-config",n,e);return{key:t,value:{config:r,me:d,configAsRaw:i(function(){return Yt.asRawOrDie(t+"-config",n,e)}),initialConfig:e,state:c}}},schema:function(){return e},exhibit:function(n,e){return s(n).bind(function(n){return ze.readOptFrom(o,"exhibit").map(function(t){return t(e,n.config,n.state)})}).getOr(mr.nu({}))},name:function(){return t},handlers:function(n){return s(n).bind(function(n){return ze.readOptFrom(o,"events").map(function(e){return e(n.config,n.state)})}).getOr({})}});return d},vr=function(n,e,t){return or.runOnExecute(function(r){t(r,n,e)})},hr=function(n,e,t){return or.runOnInit(function(r,o){t(r,n,e)})},yr=function(n,e,t,r,o,i){var u=Yt.objOfOnly(n),a=Ft(e,[Bt("config",n)]);return gr(u,a,e,t,r,o,i)},br=function(n,e,t,r,o,i){var u=n,a=Ft(e,[Rt("config",n)]);return gr(u,a,e,t,r,o,i)},wr=function(n,e){return Sr(n,e,{validate:Y.isFunction,label:"function"})},Sr=function(n,e,t){if(0===e.length)throw new Error("You must specify at least one required field.");return hn.validateStrArr("required",e),hn.checkDupes(e),function(r){var o=an.keys(r);B.forall(e,function(n){return B.contains(o,n)})||hn.reqMessage(e,o),n(e,o);var i=B.filter(e,function(n){return!t.validate(r[n],n)});return i.length>0&&hn.invalidTypeMessage(i,t.label),r}},xr=r.noop,Or={exactly:r.curry(wr,function(n,e){var t=B.filter(e,function(e){return!B.contains(n,e)});t.length>0&&hn.unsuppMessage(t)}),ensure:r.curry(wr,xr),ensureWith:r.curry(Sr,xr)},Tr=Or.ensure(["readState"]),kr={init:function(){return Tr({readState:function(){return"No State required"}})}},Cr=Yt.objOfOnly([kt("fields"),kt("name"),It("active",{}),It("apis",{}),It("extra",{}),It("state",kr)]),Er=Yt.objOfOnly([kt("branchKey"),kt("branches"),kt("name"),It("active",{}),It("apis",{}),It("extra",{}),It("state",kr)]),Dr={derive:function(n){return ze.wrapAll(n)},revoke:r.constant(void 0),noActive:r.constant({}),noApis:r.constant({}),noExtra:r.constant({}),noState:r.constant(kr),create:function(n){var e=Yt.asRawOrDie("Creating behaviour: "+n.name,Cr,n);return yr(e.fields,e.name,e.active,e.apis,e.extra,e.state)},createModes:function(n){var e=Yt.asRawOrDie("Creating behaviour: "+n.name,Er,n);return br(Yt.choose(e.branchKey,e.branches),e.name,e.active,e.apis,e.extra,e.state)}};function Ar(n,e,t){var r=t||!1,o=function(){e(),r=!0},i=function(){n(),r=!1};return{on:o,off:i,toggle:function(){(r?i:o)()},isOn:function(){return r}}}var Mr=function(n,e){var t=we.get(n,e);return void 0===t||""===t?[]:t.split(" ")},Rr=Mr,Fr=function(n,e,t){var r=Mr(n,e).concat([t]);we.set(n,e,r.join(" "))},Br=function(n,e,t){var r=B.filter(Mr(n,e),function(n){return n!==t});r.length>0?we.set(n,e,r.join(" ")):we.remove(n,e)},Ir=function(n){return Rr(n,"class")},Hr=function(n,e){return Fr(n,"class",e)},Nr=function(n,e){return Br(n,"class",e)},Vr=Ir,jr=Hr,Pr=Nr,Lr=function(n,e){B.contains(Ir(n),e)?Nr(n,e):Hr(n,e)},Wr=function(n){return void 0!==n.dom().classList},Ur=function(n,e){return Wr(n)&&n.dom().classList.contains(e)},zr={add:function(n,e){Wr(n)?n.dom().classList.add(e):jr(n,e)},remove:function(n,e){Wr(n)?n.dom().classList.remove(e):Pr(n,e),function(n){0===(Wr(n)?n.dom().classList:Vr(n)).length&&we.remove(n,"class")}(n)},toggle:function(n,e){return Wr(n)?n.dom().classList.toggle(e):Lr(n,e)},toggler:function(n,e){var t=Wr(n),r=n.dom().classList;return Ar(function(){t?r.remove(e):Pr(n,e)},function(){t?r.add(e):jr(n,e)},Ur(n,e))},has:Ur},Kr=function(n,e,t){zr.remove(n,t),zr.add(n,e)},Gr={toAlpha:function(n,e,t){Kr(n.element(),e.alpha(),e.omega())},toOmega:function(n,e,t){Kr(n.element(),e.omega(),e.alpha())},isAlpha:function(n,e,t){return zr.has(n.element(),e.alpha())},isOmega:function(n,e,t){return zr.has(n.element(),e.omega())},clear:function(n,e,t){zr.remove(n.element(),e.alpha()),zr.remove(n.element(),e.omega())}},$r=[kt("alpha"),kt("omega")],qr=Dr.create({fields:$r,name:"swapping",apis:Gr}),_r=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return _r(t())}}};function Xr(n,e,t,r,o){return n(t,r)?w.some(t):Y.isFunction(o)&&o(t)?w.none():e(t,r,o)}var Yr=function(n,e,t){for(var o=n.dom(),i=Y.isFunction(t)?t:r.constant(!1);o.parentNode;){o=o.parentNode;var u=kn.fromDom(o);if(e(u))return w.some(u);if(i(u))break}return w.none()},Jr=function(n,e){return B.find(n.dom().childNodes,r.compose(e,kn.fromDom)).map(kn.fromDom)},Qr=function(n,e){var t=function(n){for(var r=0;r<n.childNodes.length;r++){if(e(kn.fromDom(n.childNodes[r])))return w.some(kn.fromDom(n.childNodes[r]));var o=t(n.childNodes[r]);if(o.isSome())return o}return w.none()};return t(n.dom())},Zr={first:function(n){return Qr(ie.body(),n)},ancestor:Yr,closest:function(n,e,t){return Xr(function(n){return e(n)},Yr,n,e,t)},sibling:function(n,e){var t=n.dom();return t.parentNode?Jr(kn.fromDom(t.parentNode),function(t){return!Hn(n,t)&&e(t)}):w.none()},child:Jr,descendant:Qr},no=function(n){n.dom().focus()},eo=function(n){var e=void 0!==n?n.dom():document;return w.from(e.activeElement).map(kn.fromDom)},to=function(n){var e=zn.owner(n).dom();return n.dom()===e.activeElement},ro=no,oo=function(n){n.dom().blur()},io=eo,uo=function(n){return eo(zn.owner(n)).filter(function(e){return n.dom().contains(e.dom())})},ao=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),co=tinymce.util.Tools.resolve("tinymce.ThemeManager"),so=function(n){var e=document.createElement("a");e.target="_blank",e.href=n.href,e.rel="noreferrer noopener";var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)},fo=function(n){return!1===n.settings.skin},lo={formatChanged:r.constant("formatChanged"),orientationChanged:r.constant("orientationChanged"),dropupDismissed:r.constant("dropupDismissed")},mo={events:function(n){return or.derive([or.run(_.receive(),function(e,t){var r=n.channels(),o=function(n,e){return e.universal()?n:B.filter(n,function(n){return B.contains(e.channels(),n)})}(an.keys(r),t);B.each(o,function(n){var o=r[n](),i=o.schema(),u=Yt.asStructOrDie("channel["+n+"] data\nReceiver: "+Te.element(e.element()),i,t.data());o.onReceive()(e,u)})})])}},po=[kt("menu"),kt("selectedMenu")],go=[kt("item"),kt("selectedItem")],vo=Yt.objOfOnly(go.concat(po)),ho=Yt.objOfOnly(go),yo={menuFields:r.constant(po),itemFields:r.constant(go),schema:r.constant(vo),itemSchema:r.constant(ho)},bo=Et("initSize",[kt("numColumns"),kt("numRows")]),wo=function(n,e,t){var r=Qe();return Vt(e,e,t,Yt.valueOf(function(t){return Ee.value(function(){return Je(n,e,r),t.apply(void 0,arguments)})}))},So={initSize:r.constant(bo),itemMarkers:function(){return Ct("markers",yo.itemSchema())},menuMarkers:function(){return Ct("markers",yo.schema())},tieredMenuMarkers:function(){return Et("markers",[kt("backgroundMenu")].concat(yo.menuFields()).concat(yo.itemFields()))},markers:function(n){return Et("markers",B.map(n,kt))},onHandler:function(n){return wo("onHandler",n,rt.defaulted(r.noop))},onKeyboardHandler:function(n){return wo("onKeyboardHandler",n,rt.defaulted(w.none))},onStrictHandler:function(n){return wo("onHandler",n,rt.strict())},onStrictKeyboardHandler:function(n){return wo("onKeyboardHandler",n,rt.strict())},output:function(n,e){return jt(n,r.constant(e))},snapshot:function(n){return jt(n,r.identity)}},xo=[Ct("channels",Yt.setOf(Ee.value,Yt.objOfOnly([So.onStrictHandler("onReceive"),It("schema",Yt.anyValue())])))],Oo=Dr.create({fields:xo,name:"receiving",active:mo}),To=function(n,e){var t=Eo(n,e),r=e.aria();r.update()(n,r,t)},ko=function(n,e,t){zr.add(n.element(),e.toggleClass()),To(n,e)},Co=function(n,e,t){zr.remove(n.element(),e.toggleClass()),To(n,e)},Eo=function(n,e){return zr.has(n.element(),e.toggleClass())},Do={onLoad:function(n,e,t){(e.selected()?ko:Co)(n,e,t)},toggle:function(n,e,t){zr.toggle(n.element(),e.toggleClass()),To(n,e)},isOn:Eo,on:ko,off:Co},Ao={exhibit:function(n,e,t){return mr.nu({})},events:function(n,e){var t=vr(n,e,Do.toggle),r=hr(n,e,Do.onLoad);return or.derive(B.flatten([n.toggleOnExecute()?[t]:[],[r]]))}},Mo=function(n,e,t){we.set(n.element(),"aria-expanded",t)},Ro={button:["aria-pressed"],"input:checkbox":["aria-checked"]},Fo={button:["aria-pressed"],listbox:["aria-pressed","aria-expanded"],menuitemcheckbox:["aria-checked"]},Bo={updatePressed:function(n,e,t){we.set(n.element(),"aria-pressed",t),e.syncWithExpanded()&&Mo(n,e,t)},updateSelected:function(n,e,t){we.set(n.element(),"aria-selected",t)},updateChecked:function(n,e,t){we.set(n.element(),"aria-checked",t)},updateExpanded:Mo,updateAuto:function(n,e,t){var r=function(n){var e=n.element();if(we.has(e,"role")){var t=we.get(e,"role");return ze.readOptFrom(Fo,t)}return w.none()}(n).orThunk(function(){return function(n){var e=n.element(),t=te.name(e),r="input"===t&&we.has(e,"type")?":"+we.get(e,"type"):"";return ze.readOptFrom(Ro,t+r)}(n)}).getOr([]);B.each(r,function(e){we.set(n.element(),e,t)})}},Io=[It("selected",!1),kt("toggleClass"),It("toggleOnExecute",!0),Ht("aria",{mode:"none"},Yt.choose("mode",{pressed:[It("syncWithExpanded",!1),So.output("update",Bo.updatePressed)],checked:[So.output("update",Bo.updateChecked)],expanded:[So.output("update",Bo.updateExpanded)],selected:[So.output("update",Bo.updateSelected)],none:[So.output("update",r.noop)]}))],Ho=Dr.create({fields:Io,name:"toggling",active:Ao,apis:Do}),No=function(n,e){return Oo.config({channels:ze.wrap(lo.formatChanged(),{onReceive:function(t,r){r.command===n&&e(t,r.state)}})})},Vo=function(n){return Oo.config({channels:ze.wrap(lo.orientationChanged(),{onReceive:n})})},jo=function(n,e){return{key:n,value:{onReceive:e}}},Po={resolve:function(n){return"tinymce-mobile-"+n},prefix:r.constant("tinymce-mobile")},Lo={focus:function(n,e){e.ignore()||(ro(n.element()),e.onFocus()(n))},blur:function(n,e){e.ignore()||oo(n.element())},isFocused:function(n){return to(n.element())}},Wo={exhibit:function(n,e){return e.ignore()?mr.nu({}):mr.nu({attributes:{tabindex:"-1"}})},events:function(n){return or.derive([or.run(_.focus(),function(e,t){Lo.focus(e,n),t.stop()})])}},Uo=[So.onHandler("onFocus"),It("ignore",!1)],zo=Dr.create({fields:Uo,name:"focusing",active:Wo,apis:Lo}),Ko={BACKSPACE:r.constant([8]),TAB:r.constant([9]),ENTER:r.constant([13]),SHIFT:r.constant([16]),CTRL:r.constant([17]),ALT:r.constant([18]),CAPSLOCK:r.constant([20]),ESCAPE:r.constant([27]),SPACE:r.constant([32]),PAGEUP:r.constant([33]),PAGEDOWN:r.constant([34]),END:r.constant([35]),HOME:r.constant([36]),LEFT:r.constant([37]),UP:r.constant([38]),RIGHT:r.constant([39]),DOWN:r.constant([40]),INSERT:r.constant([45]),DEL:r.constant([46]),META:r.constant([91,93,224]),F10:r.constant([121])},Go=function(n,e,t,r){var o=n+e;return o>r?t:o<t?r:o},$o=function(n,e,t){return n<=e?e:n>=t?t:n},qo=function(n,e,t){return B.filter(zn.parents(n,t),e)},_o=function(n,e){return B.filter(zn.siblings(n),e)},Xo=function(n){return Bn.all(n)},Yo=function(n,e,t){return qo(n,function(n){return Bn.is(n,e)},t)},Jo=function(n,e){return _o(n,function(n){return Bn.is(n,e)})},Qo=function(n,e){return Bn.all(e,n)},Zo=function(n,e,t){return Zr.ancestor(n,function(n){return Bn.is(n,e)},t)},ni=function(n){return Bn.one(n)},ei=Zo,ti=function(n,e){return Bn.one(e,n)},ri=function(n,e,t){return Xr(Bn.is,Zo,n,e,t)},oi=function(n,e,t){var r=Qo(n.element(),"."+e.highlightClass());B.each(r,function(t){zr.remove(t,e.highlightClass()),n.getSystem().getByDom(t).each(function(t){e.onDehighlight()(n,t)})})},ii=function(n,e,t,r){var o=ui(n,e,t,r);oi(n,e),zr.add(r.element(),e.highlightClass()),o||e.onHighlight()(n,r)},ui=function(n,e,t,r){return zr.has(r.element(),e.highlightClass())},ai=function(n,e,t,r){var o=Qo(n.element(),"."+e.itemClass());return w.from(o[r]).fold(function(){return Ee.error("No element found with index "+r)},n.getSystem().getByDom)},ci=function(n,e,t){return ti(n.element(),"."+e.itemClass()).bind(n.getSystem().getByDom)},si=function(n,e,t){var r=Qo(n.element(),"."+e.itemClass());return(r.length>0?w.some(r[r.length-1]):w.none()).bind(n.getSystem().getByDom)},fi=function(n,e,t,r){var o=Qo(n.element(),"."+e.itemClass());return B.findIndex(o,function(n){return zr.has(n,e.highlightClass())}).bind(function(e){var t=Go(e,r,0,o.length-1);return n.getSystem().getByDom(o[t])})},li={dehighlightAll:oi,dehighlight:function(n,e,t,r){var o=ui(n,e,t,r);zr.remove(r.element(),e.highlightClass()),o&&e.onDehighlight()(n,r)},highlight:ii,highlightFirst:function(n,e,t){ci(n,e,t).each(function(r){ii(n,e,t,r)})},highlightLast:function(n,e,t){si(n,e,t).each(function(r){ii(n,e,t,r)})},highlightAt:function(n,e,t,r){ai(n,e,t,r).fold(function(n){throw new Error(n)},function(r){ii(n,e,t,r)})},highlightBy:function(n,e,t,r){var o=Qo(n.element(),"."+e.itemClass()),i=Ke(B.map(o,function(e){return n.getSystem().getByDom(e).toOption()}));B.find(i,r).each(function(r){ii(n,e,t,r)})},isHighlighted:ui,getHighlighted:function(n,e,t){return ti(n.element(),"."+e.highlightClass()).bind(n.getSystem().getByDom)},getFirst:ci,getLast:si,getPrevious:function(n,e,t){return fi(n,e,0,-1)},getNext:function(n,e,t){return fi(n,e,0,1)}},di=[kt("highlightClass"),kt("itemClass"),So.onHandler("onHighlight"),So.onHandler("onDehighlight")],mi=Dr.create({fields:di,name:"highlighting",apis:li}),pi=function(){return{get:function(n){return uo(n.element())},set:function(n,e){n.getSystem().triggerFocus(e,n.element())}}},gi=function(){return{get:function(n){return mi.getHighlighted(n).map(function(n){return n.element()})},set:function(n,e){n.getSystem().getByDom(e).fold(r.noop,function(e){mi.highlight(n,e)})}}},vi=function(n){return!0===n.raw().shiftKey},hi=function(n){return!0===n.raw().ctrlKey},yi={inSet:function(n){return function(e){return B.contains(n,e.raw().which)}},and:function(n){return function(e){return B.forall(n,function(n){return n(e)})}},is:function(n){return function(e){return e.raw().which===n}},isShift:vi,isNotShift:r.not(vi),isControl:hi,isNotControl:r.not(hi)},bi=function(n,e){return{matches:n,classification:e}},wi=function(n,e){return B.find(n,function(n){return n.matches(e)}).map(function(n){return n.classification})},Si=function(n,e,t,r,i,u){var a=function(n,e,r,o){var i=t(n,e,r,o);return wi(i,e.event()).bind(function(t){return t(n,e,r,o)})},c={schema:function(){return n.concat([It("focusManager",pi()),So.output("handler",c),So.output("state",e)])},processKey:a,toEvents:function(n,e){var t=r(n,e),i=or.derive(u.map(function(t){return or.run(_.focus(),function(r,o){t(r,n,e,o),o.stop()})}).toArray().concat([or.run(o.keydown(),function(t,r){a(t,r,n,e).each(function(n){r.stop()})})]));return nn.deepMerge(t,i)},toApis:i};return c},xi={cyclePrev:function(n,e,t){var r=B.reverse(n.slice(0,e)),o=B.reverse(n.slice(e+1));return B.find(r.concat(o),t)},cycleNext:function(n,e,t){var r=n.slice(0,e),o=n.slice(e+1);return B.find(o.concat(r),t)},tryPrev:function(n,e,t){var r=B.reverse(n.slice(0,e));return B.find(r,t)},tryNext:function(n,e,t){var r=n.slice(e+1);return B.find(r,t)}},Oi={isSupported:function(n){return void 0!==n.style}},Ti=function(n,e,t){if(!Y.isString(t))throw console.error("Invalid call to CSS.set. Property ",e,":: Value ",t,":: Element ",n),new Error("CSS value must be a string: "+t);Oi.isSupported(n)&&n.style.setProperty(e,t)},ki=function(n,e){Oi.isSupported(n)&&n.style.removeProperty(e)},Ci=function(n,e,t){var r=n.dom();Ti(r,e,t)},Ei=function(n,e){return Oi.isSupported(n)?n.style.getPropertyValue(e):""},Di=function(n,e){var t=n.dom(),r=Ei(t,e);return w.from(r).filter(function(n){return n.length>0})},Ai={copy:function(n,e){var t=n.dom(),r=e.dom();Oi.isSupported(t)&&Oi.isSupported(r)&&(r.style.cssText=t.style.cssText)},set:Ci,preserve:function(n,e){var t=we.get(n,"style"),r=e(n);return(void 0===t?we.remove:we.set)(n,"style",t),r},setAll:function(n,e){var t=n.dom();an.each(e,function(n,e){Ti(t,e,n)})},setOptions:function(n,e){var t=n.dom();an.each(e,function(n,e){n.fold(function(){ki(t,e)},function(n){Ti(t,e,n)})})},remove:function(n,e){var t=n.dom();ki(t,e),we.has(n,"style")&&""===P(we.get(n,"style"))&&we.remove(n,"style")},get:function(n,e){var t=n.dom(),r=window.getComputedStyle(t).getPropertyValue(e),o=""!==r||ie.inBody(n)?r:Ei(t,e);return null===o?void 0:o},getRaw:Di,getAllRaw:function(n){var e={},t=n.dom();if(Oi.isSupported(t))for(var r=0;r<t.style.length;r++){var o=t.style.item(r);e[o]=t.style[o]}return e},isValidValue:function(n,e,t){var r=kn.fromTag(n);return Ci(r,e,t),Di(r,e).isSome()},reflow:function(n){return n.dom().offsetWidth},transfer:function(n,e,t){te.isElement(n)&&te.isElement(e)&&B.each(t,function(t){!function(n,e,t){Di(n,t).each(function(n){Di(e,t).isNone()&&Ci(e,t,n)})}(n,e,t)})}};function Mi(n,e){var t=function(t){var r=e(t);if(r<=0||null===r){var o=Ai.get(t,n);return parseFloat(o)||0}return r},r=function(n,e){return B.foldl(e,function(e,t){var r=Ai.get(n,t),o=void 0===r?0:parseInt(r,10);return isNaN(o)?e:e+o},0)};return{set:function(e,t){if(!Y.isNumber(t)&&!t.match(/^[0-9]+$/))throw n+".set accepts only positive integer values. Value was "+t;var r=e.dom();Oi.isSupported(r)&&(r.style[n]=t+"px")},get:t,getOuter:t,aggregate:r,max:function(n,e,t){var o=r(n,t);return e>o?e-o:0}}}var Ri=Mi("height",function(n){return ie.inBody(n)?n.dom().getBoundingClientRect().height:n.dom().offsetHeight}),Fi=function(n){return Ri.get(n)},Bi=function(n){var e=[Mt("onEscape"),Mt("onEnter"),It("selector",'[data-alloy-tabstop="true"]'),It("firstTabstop",0),It("useTabstopAt",r.constant(!0)),Mt("visibilitySelector")].concat([n]),t=function(n,e){var t=n.visibilitySelector().bind(function(n){return ri(e,n)}).getOr(e);return Fi(t)>0},o=function(n,e,r,o,i){return i(e,r,function(n){return function(n,e){return t(n,e)&&n.useTabstopAt()(e)}(o,n)}).fold(function(){return o.cyclic()?w.some(!0):w.none()},function(e){return o.focusManager().set(n,e),w.some(!0)})},i=function(n,e,t,i){var u=Qo(n.element(),t.selector());return function(n,e){return e.focusManager().get(n).bind(function(n){return ri(n,e.selector())})}(n,t).bind(function(e){return B.findIndex(u,r.curry(Hn,e)).bind(function(e){return o(n,u,e,t,i)})})},u=r.constant([bi(yi.and([yi.isShift,yi.inSet(Ko.TAB())]),function(n,e,t,r){var o=t.cyclic()?xi.cyclePrev:xi.tryPrev;return i(n,0,t,o)}),bi(yi.inSet(Ko.TAB()),function(n,e,t,r){var o=t.cyclic()?xi.cycleNext:xi.tryNext;return i(n,0,t,o)}),bi(yi.inSet(Ko.ESCAPE()),function(n,e,t,r){return t.onEscape().bind(function(t){return t(n,e)})}),bi(yi.and([yi.isNotShift,yi.inSet(Ko.ENTER())]),function(n,e,t,r){return t.onEnter().bind(function(t){return t(n,e)})})]),a=r.constant({}),c=r.constant({});return Si(e,kr.init,u,a,c,w.some(function(n,e,r){(function(n,e){var r=Qo(n.element(),e.selector()),o=B.filter(r,function(n){return t(e,n)});return w.from(o[e.firstTabstop()])})(n,e).each(function(t){e.focusManager().set(n,t)})}))},Ii=Bi(jt("cyclic",r.constant(!1))),Hi=Bi(jt("cyclic",r.constant(!0))),Ni=function(n){return"input"===te.name(n)&&"radio"!==we.get(n,"type")||"textarea"===te.name(n)},Vi=function(n,e,t){return Ni(t)&&yi.inSet(Ko.SPACE())(e.event())?w.none():function(n,e,t){return mn(n,t,_.execute()),w.some(!0)}(n,0,t)},ji=[It("execute",Vi),It("useSpace",!1),It("useEnter",!0),It("useControlEnter",!1),It("useDown",!1)],Pi=function(n,e,t,r){return t.execute()(n,e,n.element())},Li=r.constant({}),Wi=r.constant({}),Ui=Si(ji,kr.init,function(n,e,t,r){var o=t.useSpace()&&!Ni(n.element())?Ko.SPACE():[],i=t.useEnter()?Ko.ENTER():[],u=t.useDown()?Ko.DOWN():[],a=o.concat(i).concat(u);return[bi(yi.inSet(a),Pi)].concat(t.useControlEnter()?[bi(yi.and([yi.isControl,yi.inSet(Ko.ENTER())]),Pi)]:[])},Li,Wi,w.none()),zi={flatgrid:function(n){var e=_r(w.none());return Tr({readState:r.constant({}),setGridSize:function(n,t){e.set(w.some({numRows:r.constant(n),numColumns:r.constant(t)}))},getNumRows:function(){return e.get().map(function(n){return n.numRows()})},getNumColumns:function(){return e.get().map(function(n){return n.numColumns()})}})},init:function(n){return n.state()(n)}},Ki=function(n){return"rtl"===Ai.get(n,"direction")?"rtl":"ltr"},Gi=function(n,e){return function(t){return"rtl"===Ki(t)?e:n}},$i=function(n){return function(e,t,r,o){var i=n(e.element());return _i(i,e,t,r,o)}},qi=function(n){return function(e,t,r,o){return _i(n,e,t,r,o)}},_i=function(n,e,t,r,o){return r.focusManager().get(e).bind(function(t){return n(e.element(),t,r,o)}).map(function(n){return r.focusManager().set(e,n),!0})},Xi=function(n,e){var t=Gi(e,n);return $i(t)},Yi=function(n,e){var t=Gi(n,e);return $i(t)},Ji=qi,Qi=qi,Zi=qi,nu=yn.immutableBag(["index","candidates"],[]),eu=function(n,e){return B.findIndex(n,e).map(function(e){return nu({index:e,candidates:n})})},tu=function(n){return!function(n){return n.offsetWidth<=0&&n.offsetHeight<=0}(n.dom())},ru=function(n,e,t,o){var i=r.curry(Hn,e),u=Qo(n,t),a=B.filter(u,tu);return eu(a,i)},ou=function(n,e,t){return ru(n,e,t,tu)},iu=function(n,e){return B.findIndex(n,function(n){return Hn(e,n)})},uu=function(n,e,t,r){return r(Math.floor(e/t),e%t).bind(function(e){var r=e.row()*t+e.column();return r>=0&&r<n.length?w.some(n[r]):w.none()})},au=function(n,e,t,o,i){return uu(n,e,o,function(e,u){var a=e===t-1?n.length-e*o:o,c=Go(u,i,0,a-1);return w.some({row:r.constant(e),column:r.constant(c)})})},cu=function(n,e,t,o,i){return uu(n,e,o,function(e,u){var a=Go(e,i,0,t-1),c=a===t-1?n.length-a*o:o,s=$o(u,0,c-1);return w.some({row:r.constant(a),column:r.constant(s)})})},su=function(n,e,t,r){return cu(n,e,t,r,1)},fu=function(n,e,t,r){return cu(n,e,t,r,-1)},lu=function(n,e,t,r){return au(n,e,t,r,-1)},du=function(n,e,t,r){return au(n,e,t,r,1)},mu=[kt("selector"),It("execute",Vi),So.onKeyboardHandler("onEscape"),It("captureTab",!1),So.initSize()],pu=function(n){return function(e,t,r,o){return ou(e,t,r.selector()).bind(function(e){return n(e.candidates(),e.index(),o.getNumRows().getOr(r.initSize().numRows()),o.getNumColumns().getOr(r.initSize().numColumns()))})}},gu=function(n,e,t,r){return t.captureTab()?w.some(!0):w.none()},vu=pu(lu),hu=pu(du),yu=pu(fu),bu=pu(su),wu=r.constant([bi(yi.inSet(Ko.LEFT()),Yi(vu,hu)),bi(yi.inSet(Ko.RIGHT()),Xi(vu,hu)),bi(yi.inSet(Ko.UP()),Ji(yu)),bi(yi.inSet(Ko.DOWN()),Qi(bu)),bi(yi.and([yi.isShift,yi.inSet(Ko.TAB())]),gu),bi(yi.and([yi.isNotShift,yi.inSet(Ko.TAB())]),gu),bi(yi.inSet(Ko.ESCAPE()),function(n,e,t,r){return t.onEscape()(n,e)}),bi(yi.inSet(Ko.SPACE().concat(Ko.ENTER())),function(n,e,t,r){return function(n,e){return e.focusManager().get(n).bind(function(n){return ri(n,e.selector())})}(n,t).bind(function(r){return t.execute()(n,e,r)})})]),Su=r.constant({}),xu=Si(mu,zi.flatgrid,wu,Su,{},w.some(function(n,e,t){ti(n.element(),e.selector()).each(function(t){e.focusManager().set(n,t)})})),Ou=function(n,e,t,o){return ou(n,t,e,r.constant(!0)).bind(function(n){var e=n.index(),t=n.candidates(),r=Go(e,o,0,t.length-1);return w.from(t[r])})},Tu=[kt("selector"),It("getInitial",w.none),It("execute",Vi),It("executeOnMove",!1)],ku=function(n,e,t){return function(n,e){return e.focusManager().get(n).bind(function(n){return ri(n,e.selector())})}(n,t).bind(function(r){return t.execute()(n,e,r)})},Cu=function(n,e,t){return Ou(n,t.selector(),e,-1)},Eu=function(n,e,t){return Ou(n,t.selector(),e,1)},Du=function(n){return function(e,t,r){return n(e,t,r).bind(function(){return r.executeOnMove()?ku(e,t,r):w.some(!0)})}},Au=r.constant({}),Mu=r.constant({}),Ru=Si(Tu,kr.init,function(n){return[bi(yi.inSet(Ko.LEFT().concat(Ko.UP())),Du(Yi(Cu,Eu))),bi(yi.inSet(Ko.RIGHT().concat(Ko.DOWN())),Du(Xi(Cu,Eu))),bi(yi.inSet(Ko.ENTER()),ku),bi(yi.inSet(Ko.SPACE()),ku)]},Au,Mu,w.some(function(n,e){e.getInitial()(n).or(ti(n.element(),e.selector())).each(function(t){e.focusManager().set(n,t)})})),Fu=yn.immutableBag(["rowIndex","columnIndex","cell"],[]),Bu=function(n,e,t){return w.from(n[e]).bind(function(n){return w.from(n[t]).map(function(n){return Fu({rowIndex:e,columnIndex:t,cell:n})})})},Iu=function(n,e,t,r){var o=n[e].length,i=Go(t,r,0,o-1);return Bu(n,e,i)},Hu=function(n,e,t,r){var o=Go(t,r,0,n.length-1),i=n[o].length,u=$o(e,0,i-1);return Bu(n,o,u)},Nu=function(n,e,t,r){var o=n[e].length,i=$o(t+r,0,o-1);return Bu(n,e,i)},Vu=function(n,e,t,r){var o=$o(t+r,0,n.length-1),i=n[o].length,u=$o(e,0,i-1);return Bu(n,o,u)},ju=function(n,e,t){return Iu(n,e,t,1)},Pu=function(n,e,t){return Iu(n,e,t,-1)},Lu=function(n,e,t){return Hu(n,t,e,-1)},Wu=function(n,e,t){return Hu(n,t,e,1)},Uu=function(n,e,t){return Nu(n,e,t,-1)},zu=function(n,e,t){return Nu(n,e,t,1)},Ku=function(n,e,t){return Vu(n,t,e,-1)},Gu=function(n,e,t){return Vu(n,t,e,1)},$u=[Et("selectors",[kt("row"),kt("cell")]),It("cycles",!0),It("previousSelector",w.none),It("execute",Vi)],qu=function(n,e){return function(t,r,o){var i=o.cycles()?n:e;return ri(r,o.selectors().row()).bind(function(n){var e=Qo(n,o.selectors().cell());return iu(e,r).bind(function(e){var r=Qo(t,o.selectors().row());return iu(r,n).bind(function(n){var t=function(n,e){return B.map(n,function(n){return Qo(n,e.selectors().cell())})}(r,o);return i(t,n,e).map(function(n){return n.cell()})})})})}},_u=qu(Pu,Uu),Xu=qu(ju,zu),Yu=qu(Lu,Ku),Ju=qu(Wu,Gu),Qu=r.constant([bi(yi.inSet(Ko.LEFT()),Yi(_u,Xu)),bi(yi.inSet(Ko.RIGHT()),Xi(_u,Xu)),bi(yi.inSet(Ko.UP()),Ji(Yu)),bi(yi.inSet(Ko.DOWN()),Qi(Ju)),bi(yi.inSet(Ko.SPACE().concat(Ko.ENTER())),function(n,e,t){return uo(n.element()).bind(function(r){return t.execute()(n,e,r)})})]),Zu=r.constant({}),na=r.constant({}),ea=Si($u,kr.init,Qu,Zu,na,w.some(function(n,e){e.previousSelector()(n).orThunk(function(){var t=e.selectors();return ti(n.element(),t.cell())}).each(function(t){e.focusManager().set(n,t)})})),ta=[kt("selector"),It("execute",Vi),It("moveOnTab",!1)],ra=function(n,e,t){return t.focusManager().get(n).bind(function(r){return t.execute()(n,e,r)})},oa=function(n,e,t){return Ou(n,t.selector(),e,-1)},ia=function(n,e,t){return Ou(n,t.selector(),e,1)},ua=r.constant([bi(yi.inSet(Ko.UP()),Zi(oa)),bi(yi.inSet(Ko.DOWN()),Zi(ia)),bi(yi.and([yi.isShift,yi.inSet(Ko.TAB())]),function(n,e,t){return t.moveOnTab()?Zi(oa)(n,e,t):w.none()}),bi(yi.and([yi.isNotShift,yi.inSet(Ko.TAB())]),function(n,e,t){return t.moveOnTab()?Zi(ia)(n,e,t):w.none()}),bi(yi.inSet(Ko.ENTER()),ra),bi(yi.inSet(Ko.SPACE()),ra)]),aa=r.constant({}),ca=r.constant({}),sa=Si(ta,kr.init,ua,aa,ca,w.some(function(n,e,t){ti(n.element(),e.selector()).each(function(t){e.focusManager().set(n,t)})})),fa=[So.onKeyboardHandler("onSpace"),So.onKeyboardHandler("onEnter"),So.onKeyboardHandler("onShiftEnter"),So.onKeyboardHandler("onLeft"),So.onKeyboardHandler("onRight"),So.onKeyboardHandler("onTab"),So.onKeyboardHandler("onShiftTab"),So.onKeyboardHandler("onUp"),So.onKeyboardHandler("onDown"),So.onKeyboardHandler("onEscape"),Mt("focusIn")],la=r.constant({}),da=r.constant({}),ma=Si(fa,kr.init,function(n,e,t){return[bi(yi.inSet(Ko.SPACE()),t.onSpace()),bi(yi.and([yi.isNotShift,yi.inSet(Ko.ENTER())]),t.onEnter()),bi(yi.and([yi.isShift,yi.inSet(Ko.ENTER())]),t.onShiftEnter()),bi(yi.and([yi.isShift,yi.inSet(Ko.TAB())]),t.onShiftTab()),bi(yi.and([yi.isNotShift,yi.inSet(Ko.TAB())]),t.onTab()),bi(yi.inSet(Ko.UP()),t.onUp()),bi(yi.inSet(Ko.DOWN()),t.onDown()),bi(yi.inSet(Ko.LEFT()),t.onLeft()),bi(yi.inSet(Ko.RIGHT()),t.onRight()),bi(yi.inSet(Ko.SPACE()),t.onSpace()),bi(yi.inSet(Ko.ESCAPE()),t.onEscape())]},la,da,w.some(function(n,e){return e.focusIn().bind(function(t){return t(n,e)})})),pa={acyclic:Ii.schema(),cyclic:Hi.schema(),flow:Ru.schema(),flatgrid:xu.schema(),matrix:ea.schema(),execution:Ui.schema(),menu:sa.schema(),special:ma.schema()},ga=Dr.createModes({branchKey:"mode",branches:pa,name:"keying",active:{events:function(n,e){return n.handler().toEvents(n,e)}},apis:{focusIn:function(n){n.getSystem().triggerFocus(n.element(),n.element())},setGridSize:function(n,e,t,r,o){ze.hasKey(t,"setGridSize")?t.setGridSize(r,o):console.error("Layout does not support setGridSize")}},state:zi}),va=function(n,e){return Nt(n,{},B.map(e,function(e){return At(e.name(),"Cannot configure "+e.name()+" for "+n)}).concat([jt("dump",r.identity)]))},ha=function(n){return n.dump()},ya=0,ba=function(n){var e=(new Date).getTime();return n+"_"+Math.floor(1e9*Math.random())+ ++ya+String(e)},wa=ba("alloy-premade"),Sa=ba("api"),xa={apiConfig:r.constant(Sa),makeApi:function(n){return ar(function(e){var t=Array.prototype.slice.call(arguments,0),r=e.config(Sa);return n.apply(void 0,[r].concat(t))},n)},premade:function(n){return ze.wrap(wa,n)},getPremade:function(n){return ze.readOptFrom(n,wa)}},Oa=De([{required:["data"]},{external:["data"]},{optional:["data"]},{group:["data"]}]),Ta=It("factory",{sketch:r.identity}),ka=It("schema",[]),Ca=kt("name"),Ea=Vt("pname","pname",rt.defaultedThunk(function(n){return"<alloy."+ba(n.name)+">"}),Yt.anyValue()),Da=It("defaults",r.constant({})),Aa=It("overrides",r.constant({})),Ma=Yt.objOf([Ta,ka,Ca,Ea,Da,Aa]),Ra=Yt.objOf([Ta,ka,Ca,Da,Aa]),Fa=Yt.objOf([Ta,ka,Ca,Ea,Da,Aa]),Ba=Yt.objOf([Ta,ka,Ca,kt("unit"),Ea,Da,Aa]),Ia=function(n,e){return function(t){var r=Yt.asStructOrDie("Converting part type",e,t);return n(r)}},Ha={required:Ia(Oa.required,Ma),external:Ia(Oa.external,Ra),optional:Ia(Oa.optional,Fa),group:Ia(Oa.group,Ba),asNamedPart:function(n){return n.fold(w.some,w.none,w.some,w.some)},name:function(n){var e=function(n){return n.name()};return n.fold(e,e,e,e)},asCommon:function(n){return n.fold(r.identity,r.identity,r.identity,r.identity)},original:r.constant("entirety")},Na=De([{single:["required","valueThunk"]},{multiple:["required","valueThunks"]}]),Va=function(n,e,t,o){return"placeholder"===t.uiType?function(n,e,t,o){return n.exists(function(n){return n!==t.owner})?Na.single(!0,r.constant(t)):ze.readOptFrom(o,t.name).fold(function(){throw new Error("Unknown placeholder component: "+t.name+"\nKnown: ["+an.keys(o)+"]\nNamespace: "+n.getOr("none")+"\nSpec: "+ut(t,null,2))},function(n){return n.replace()})}(n,0,t,o):Na.single(!1,r.constant(t))},ja=function(n,e,t,r){return Va(n,0,t,r).fold(function(o,i){var u=i(e,t.config,t.validated),a=ze.readOptFrom(u,"components").getOr([]),c=B.bind(a,function(t){return ja(n,e,t,r)});return[nn.deepMerge(u,{components:c})]},function(n,r){return r(e,t.config,t.validated)})},Pa=function(n,e,t,r){return B.bind(t,function(t){return ja(n,e,t,r)})},La={single:Na.single,multiple:Na.multiple,isSubstitute:function(n){return B.contains(["placeholder"],n)},placeholder:r.constant("placeholder"),substituteAll:Pa,substitutePlaces:function(n,e,t,o){var i=an.map(o,function(n,e){return t=e,o=n,i=!1,{name:r.constant(t),required:function(){return o.fold(function(n,e){return n},function(n,e){return n})},used:function(){return i},replace:function(){if(!0===i)throw new Error("Trying to use the same placeholder more than once: "+t);return i=!0,o}};var t,o,i}),u=Pa(n,e,t,i);return an.each(i,function(t){if(!1===t.used()&&t.required())throw new Error("Placeholder: "+t.name()+" was not found in components list\nNamespace: "+n.getOr("none")+"\nComponents: "+ut(e.components(),null,2))}),u},singleReplace:function(n,e){return e.fold(function(e,t){return[t(n)]},function(e,t){return t(n)})}},Wa=function(n,e,t,r){var o=t;return nn.deepMerge(e.defaults()(n,t,r),t,{uid:n.partUids()[e.name()]},e.overrides()(n,t,r),{"debug.sketcher":ze.wrap("part-"+e.name(),o)})},Ua=function(n,e,t){var o={},i={};return B.each(t,function(n){n.fold(function(n){o[n.pname()]=La.single(!0,function(e,t,r){return n.factory().sketch(Wa(e,n,t,r))})},function(n){var t=e.parts()[n.name()]();i[n.name()]=r.constant(Wa(e,n,t[Ha.original()]()))},function(n){o[n.pname()]=La.single(!1,function(e,t,r){return n.factory().sketch(Wa(e,n,t,r))})},function(n){o[n.pname()]=La.multiple(!0,function(e,t,r){var o=e[n.name()]();return B.map(o,function(t){return n.factory().sketch(nn.deepMerge(n.defaults()(e,t),t,n.overrides()(e,t)))})})})}),{internals:r.constant(o),externals:r.constant(i)}},za=function(n,e){return{uiType:La.placeholder(),owner:n,name:e}},Ka=function(n){return B.map(n,Ha.name)},Ga=function(n,e,t){var r=e.partUids()[t];return n.getSystem().getByUid(r).toOption()},$a=function(n,e){var t=Ka(e);return ze.wrapAll(B.map(t,function(e){return{key:e,value:n+"-"+e}}))},qa=function(n,e){var t={};return B.each(e,function(e){Ha.asNamedPart(e).each(function(e){var r=za(n,e.pname());t[e.name()]=function(t){var o=Yt.asRawOrDie("Part: "+e.name()+" in "+n,Yt.objOf(e.schema()),t);return nn.deepMerge(r,{config:t,validated:o})}})}),t},_a=function(n,e,t){return{uiType:La.placeholder(),owner:n,name:e,config:t,validated:{}}},Xa=function(n){return B.bind(n,function(n){return n.fold(w.none,w.some,w.none,w.none).map(function(n){return Et(n.name(),n.schema().concat([So.snapshot(Ha.original())]))}).toArray()})},Ya=function(n,e,t){return Ua(n,e,t)},Ja=function(n,e,t){return La.substitutePlaces(w.some(n),e,e.components(),t)},Qa=function(n){return Vt("partUids","partUids",rt.mergeWithThunk(function(e){return $a(e.uid,n)}),Yt.anyValue())},Za=function(n,e){var t=n.getSystem();return an.map(e.partUids(),function(n,e){return r.constant(t.getByUid(n))})},nc=Ga,ec=function(n,e,t){return Ga(n,e,t).getOrDie("Could not find part: "+t)},tc={prefix:r.constant("alloy-id-"),idAttr:r.constant("data-alloy-id")},rc=tc.prefix(),oc=tc.idAttr(),ic={revoke:function(n){we.remove(n,oc)},write:function(n,e){var t=ba(rc+n);return we.set(e,oc,t),t},writeOnly:function(n,e){we.set(n,oc,e)},read:function(n){var e=te.isElement(n)?we.get(n,oc):null;return w.from(e)},find:function(n,e){return ti(n,e)},generate:function(n){return ba(n)},attribute:r.constant(oc)},uc=function(n,e,t,r){return(e.length>0?[Et("parts",e)]:[]).concat([kt("uid"),It("dom",{}),It("components",[]),So.snapshot("originalSpec"),It("debug.sketcher",{})]).concat(t)},ac=function(n,e,t,r,o){var i=uc(0,r,o);return Yt.asStructOrDie(n+" [SpecSchema]",Yt.objOfOnly(i.concat(e)),t)},cc=function(n){return nn.deepMerge({uid:ic.generate("uid")},n)},sc=function(n,e,t,r){var o=cc(r),i=ac(n,e,o,[],[]);return nn.deepMerge(t(i,o),{"debug.sketcher":ze.wrap(n,r)})},fc=function(n,e,t,r,o){var i=cc(o),u=Xa(t),a=Qa(t),c=ac(n,e,i,u,[a]),s=Ya(n,c,t),f=Ja(n,c,s.internals());return nn.deepMerge(r(c,f,i,s.externals()),{"debug.sketcher":ze.wrap(n,o)})},lc=Yt.objOfOnly([kt("name"),kt("factory"),kt("configFields"),It("apis",{}),It("extraApis",{})]),dc=Yt.objOfOnly([kt("name"),kt("factory"),kt("configFields"),kt("partFields"),It("apis",{}),It("extraApis",{})]),mc=function(n){var e=Yt.asRawOrDie("Sketcher for "+n.name,lc,n),t=an.map(e.apis,xa.makeApi),o=an.map(e.extraApis,function(n,e){return ur(n,e)});return nn.deepMerge({name:r.constant(e.name),partFields:r.constant([]),configFields:r.constant(e.configFields),sketch:function(n){return sc(e.name,e.configFields,e.factory,n)}},t,o)},pc=function(n){var e=Yt.asRawOrDie("Sketcher for "+n.name,dc,n),t=qa(e.name,e.partFields),o=an.map(e.apis,xa.makeApi),i=an.map(e.extraApis,function(n,e){return ur(n,e)});return nn.deepMerge({name:r.constant(e.name),partFields:r.constant(e.partFields),configFields:r.constant(e.configFields),sketch:function(n){return fc(e.name,e.configFields,e.partFields,e.factory,n)},parts:r.constant(t)},o,i)},gc=function(n){var e=function(n,e){e.stop(),dn(n)},t=$.detect().deviceType.isTouch()?[or.run(_.tap(),e)]:[or.run(o.click(),e),or.run(o.mousedown(),function(n,e){e.cut()})];return or.derive(B.flatten([n.map(function(n){return or.run(_.execute(),function(e,t){n(e),t.stop()})}).toArray(),t]))},vc=mc({name:"Button",factory:function(n,e){var t=gc(n.action()),r=ze.readOptFrom(n.dom(),"attributes").bind(ze.readOpt("type")),o=ze.readOptFrom(n.dom(),"tag");return{uid:n.uid(),dom:n.dom(),components:n.components(),events:t,behaviours:nn.deepMerge(Dr.derive([zo.config({}),ga.config({mode:"execution",useSpace:!0,useEnter:!0})]),ha(n.buttonBehaviours())),domModification:{attributes:nn.deepMerge(r.fold(function(){return o.is("button")?{type:"button"}:{}},function(n){return{}}),{role:n.role().getOr("button")})},eventOrder:n.eventOrder()}},configFields:[It("uid",void 0),kt("dom"),It("components",[]),va("buttonBehaviours",[zo,ga]),Mt("action"),Mt("role"),It("eventOrder",{})]}),hc={events:function(n){return or.derive([or.abort(o.selectstart(),r.constant(!0))])},exhibit:function(n,e){return mr.nu({styles:{"-webkit-user-select":"none","user-select":"none","-ms-user-select":"none","-moz-user-select":"-moz-none"},attributes:{unselectable:"on"}})}},yc=Dr.create({fields:[],name:"unselecting",active:hc}),bc=function(n){var e=kn.fromHtml(n),t=zn.children(e),r=function(n){var e=void 0!==n.dom().attributes?n.dom().attributes:[];return B.foldl(e,function(n,e){return"class"===e.name?n:nn.deepMerge(n,ze.wrap(e.name,e.value))},{})}(e),o=function(n){return Array.prototype.slice.call(n.dom().classList,0)}(e),i=0===t.length?{}:{innerHtml:me(e)};return nn.deepMerge({tag:te.name(e),classes:o,attributes:r},i)},wc=bc,Sc=function(n){var e=V(n,{prefix:Po.prefix()});return wc(e)},xc={dom:Sc,spec:function(n){return{dom:Sc(n)}}},Oc=function(n){return Dr.derive([Ho.config({toggleClass:Po.resolve("toolbar-button-selected"),toggleOnExecute:!1,aria:{mode:"pressed"}}),No(n,function(n,e){(e?Ho.on:Ho.off)(n)})])},Tc=function(n,e,t){return vc.sketch({dom:xc.dom('<span class="${prefix}-toolbar-button ${prefix}-icon-'+n+' ${prefix}-icon"></span>'),action:e,buttonBehaviours:nn.deepMerge(Dr.derive([yc.config({})]),t)})},kc={forToolbar:Tc,forToolbarCommand:function(n,e){return Tc(e,function(){n.execCommand(e)},{})},forToolbarStateAction:function(n,e,t,r){var o=Oc(t);return Tc(e,r,o)},forToolbarStateCommand:function(n,e){var t=Oc(e);return Tc(e,function(){n.execCommand(e)},t)}},Cc=function(n,e,t){return Math.max(e,Math.min(t,n))},Ec=function(n,e,t,r){return n<e?n:n>t?t:n===e?e-1:Math.max(e,n-r)},Dc=function(n,e,t,r){return n>t?n:n<e?e:n===t?t+1:Math.min(t,n+r)},Ac=function(n,e,t,r,o,i,u){var a=t-e;if(r<n.left)return e-1;if(r>n.right)return t+1;var c=Math.min(n.right,Math.max(r,n.left))-n.left,s=Cc(c/n.width*a+e,e-1,t+1),f=Math.round(s);return i&&s>=e&&s<=t?function(n,e,t,r,o,i){return i.fold(function(){var n=e-t,i=Math.round(n/o)*o;return Cc(t+i,t-1,r+1)},function(n){var t=(e-n)%o,i=Math.round(t/o),u=Math.floor((e-n)/o),a=Math.floor((r-n)/o),c=n+Math.min(a,u+i)*o;return Math.max(n,c)})}(0,s,e,t,o,u):f},Mc=$.detect().deviceType.isTouch(),Rc=function(n){return function(n){var e=n.event().raw();return Mc&&void 0!==e.touches&&1===e.touches.length?w.some(e.touches[0]):Mc&&void 0!==e.touches?w.none():Mc||void 0===e.clientX?w.none():w.some(e)}(n).map(function(n){return n.clientX})},Fc=function(n,e){ln(n,"slider.change.value",{value:e})},Bc={setXFromEvent:function(n,e,t,r){return Rc(r).map(function(r){return function(n,e,t,r){var o=Ac(e,t.min(),t.max(),r,t.stepSize(),t.snapToGrid(),t.snapStart());Fc(n,o)}(n,t,e,r),r})},setToLedge:function(n,e){Fc(n,e.min()-1)},setToRedge:function(n,e){Fc(n,e.max()+1)},moveLeftFromRedge:function(n,e){Fc(n,e.max())},moveRightFromLedge:function(n,e){Fc(n,e.min())},moveLeft:function(n,e){var t=Ec(e.value().get(),e.min(),e.max(),e.stepSize());Fc(n,t)},moveRight:function(n,e){var t=Dc(e.value().get(),e.min(),e.max(),e.stepSize());Fc(n,t)},changeEvent:r.constant("slider.change.value")},Ic=$.detect().deviceType.isTouch(),Hc=function(n,e){return Ha.optional({name:n+"-edge",overrides:function(n){var t=or.derive([or.runActionExtra(o.touchstart(),e,[n])]),r=or.derive([or.runActionExtra(o.mousedown(),e,[n]),or.runActionExtra(o.mousemove(),function(n,t){t.mouseIsDown().get()&&e(n,t)},[n])]);return{events:Ic?t:r}}})},Nc=[Hc("left",Bc.setToLedge),Hc("right",Bc.setToRedge),Ha.required({name:"thumb",defaults:r.constant({dom:{styles:{position:"absolute"}}}),overrides:function(n){return{events:or.derive([or.redirectToPart(o.touchstart(),n,"spectrum"),or.redirectToPart(o.touchmove(),n,"spectrum"),or.redirectToPart(o.touchend(),n,"spectrum")])}}}),Ha.required({schema:[jt("mouseIsDown",function(){return _r(!1)})],name:"spectrum",overrides:function(n){var e=function(e,t){var r=e.element().dom().getBoundingClientRect();Bc.setXFromEvent(e,n,r,t)},t=or.derive([or.run(o.touchstart(),e),or.run(o.touchmove(),e)]),r=or.derive([or.run(o.mousedown(),e),or.run(o.mousemove(),function(t,r){n.mouseIsDown().get()&&e(t,r)})]);return{behaviours:Dr.derive(Ic?[]:[ga.config({mode:"special",onLeft:function(e){return Bc.moveLeft(e,n),w.some(!0)},onRight:function(e){return Bc.moveRight(e,n),w.some(!0)}}),zo.config({})]),events:Ic?t:r}}})],Vc={onLoad:function(n,e,t){e.store().manager().onLoad(n,e,t)},onUnload:function(n,e,t){e.store().manager().onUnload(n,e,t)},setValue:function(n,e,t,r){e.store().manager().setValue(n,e,t,r)},getValue:function(n,e,t){return e.store().manager().getValue(n,e,t)}},jc={events:function(n,e){var t=n.resetOnDom()?[or.runOnAttached(function(t,r){Vc.onLoad(t,n,e)}),or.runOnDetached(function(t,r){Vc.onUnload(t,n,e)})]:[hr(n,e,Vc.onLoad)];return or.derive(t)}},Pc={memory:function(){var n=_r(null);return Tr({set:n.set,get:n.get,isNotSet:function(){return null===n.get()},clear:function(){n.set(null)},readState:function(){return{mode:"memory",value:n.get()}}})},dataset:function(){var n=_r({});return Tr({readState:function(){return{mode:"dataset",dataset:n.get()}},set:n.set,get:n.get})},manual:function(){return Tr({readState:function(){}})},init:function(n){return n.store().manager().state(n)}},Lc=function(n,e,t,r){e.store().getDataKey(),t.set({}),e.store().setData()(n,r),e.onSetValue()(n,r)},Wc=[Mt("initialValue"),kt("getFallbackEntry"),kt("getDataKey"),kt("setData"),So.output("manager",{setValue:Lc,getValue:function(n,e,t){var r=e.store().getDataKey()(n),o=t.get();return ze.readOptFrom(o,r).fold(function(){return e.store().getFallbackEntry()(r)},function(n){return n})},onLoad:function(n,e,t){e.store().initialValue().each(function(r){Lc(n,e,t,r)})},onUnload:function(n,e,t){t.set({})},state:Pc.dataset})],Uc=[kt("getValue"),It("setValue",r.noop),Mt("initialValue"),So.output("manager",{setValue:function(n,e,t,r){e.store().setValue()(n,r),e.onSetValue()(n,r)},getValue:function(n,e,t){return e.store().getValue()(n)},onLoad:function(n,e,t){e.store().initialValue().each(function(t){e.store().setValue()(n,t)})},onUnload:r.noop,state:kr.init})],zc=[Mt("initialValue"),So.output("manager",{setValue:function(n,e,t,r){t.set(r),e.onSetValue()(n,r)},getValue:function(n,e,t){return t.get()},onLoad:function(n,e,t){e.store().initialValue().each(function(n){t.isNotSet()&&t.set(n)})},onUnload:function(n,e,t){t.clear()},state:Pc.memory})],Kc=[Ht("store",{mode:"memory"},Yt.choose("mode",{memory:zc,manual:Uc,dataset:Wc})),So.onHandler("onSetValue"),It("resetOnDom",!1)],Gc=Dr.create({fields:Kc,name:"representing",active:jc,apis:Vc,extra:{setValueFrom:function(n,e){var t=Gc.getValue(e);Gc.setValue(n,t)}},state:Pc}),$c=$.detect().deviceType.isTouch(),qc=[kt("min"),kt("max"),It("stepSize",1),It("onChange",r.noop),It("onInit",r.noop),It("onDragStart",r.noop),It("onDragEnd",r.noop),It("snapToGrid",!1),Mt("snapStart"),kt("getInitialValue"),va("sliderBehaviours",[ga,Gc]),jt("value",function(n){return _r(n.min)})].concat($c?[]:[jt("mouseIsDown",function(){return _r(!1)})]),_c=Mi("width",function(n){return n.dom().offsetWidth}),Xc=function(n,e){_c.set(n,e)},Yc=function(n){return _c.get(n)},Jc=$.detect().deviceType.isTouch(),Qc=pc({name:"Slider",configFields:qc,partFields:Nc,factory:function(n,e,t,i){var u=n.max()-n.min(),a=function(n){var e=n.element().dom().getBoundingClientRect();return(e.left+e.right)/2},c=function(e){return ec(e,n,"thumb")},s=function(e){var t=ec(e,n,"spectrum").element().dom().getBoundingClientRect(),r=e.element().dom().getBoundingClientRect(),o=function(n,e,t){var r=t.value().get();return r<t.min()?nc(n,t,"left-edge").fold(function(){return 0},function(n){return a(n)-e.left}):r>t.max()?nc(n,t,"right-edge").fold(function(){return e.width},function(n){return a(n)-e.left}):(t.value().get()-t.min())/u*e.width}(e,t,n);return t.left-r.left+o},f=function(n){var e=s(n),t=c(n),r=Yc(t.element())/2;Ai.set(t.element(),"left",e-r+"px")},l=function(e,t){var r=n.value().get(),o=c(e);return r!==t||Ai.getRaw(o.element(),"left").isNone()?(n.value().set(t),f(e),n.onChange()(e,o,t),w.some(!0)):w.none()},d=Jc?[or.run(o.touchstart(),function(e,t){n.onDragStart()(e,c(e))}),or.run(o.touchend(),function(e,t){n.onDragEnd()(e,c(e))})]:[or.run(o.mousedown(),function(e,t){t.stop(),n.onDragStart()(e,c(e)),n.mouseIsDown().set(!0)}),or.run(o.mouseup(),function(e,t){n.onDragEnd()(e,c(e)),n.mouseIsDown().set(!1)})];return{uid:n.uid(),dom:n.dom(),components:e,behaviours:nn.deepMerge(Dr.derive(B.flatten([Jc?[]:[ga.config({mode:"special",focusIn:function(e){return nc(e,n,"spectrum").map(ga.focusIn).map(r.constant(!0))}})],[Gc.config({store:{mode:"manual",getValue:function(e){return n.value().get()}}})]])),ha(n.sliderBehaviours())),events:or.derive([or.run(Bc.changeEvent(),function(n,e){l(n,e.event().value())}),or.runOnAttached(function(e,t){n.value().set(n.getInitialValue()());var r=c(e);f(e),n.onInit()(e,r,n.value().get())})].concat(d)),apis:{resetToMin:function(e){l(e,n.min())},resetToMax:function(e){l(e,n.max())},refresh:f},domModification:{styles:{position:"relative"}}}},apis:{resetToMin:function(n,e){n.resetToMin(e)},resetToMax:function(n,e){n.resetToMax(e)},refresh:function(n,e){n.refresh(e)}}}),Zc=function(n,e,t){return kc.forToolbar(e,function(){var r=t();n.setContextToolbar([{label:e+" group",items:r}])},{})},ns=function(n){return[function(n){var e=function(n){return n<0?"black":n>360?"white":"hsl("+n+", 100%, 50%)"};return Qc.sketch({dom:xc.dom('<div class="${prefix}-slider ${prefix}-hue-slider-container"></div>'),components:[Qc.parts()["left-edge"](xc.spec('<div class="${prefix}-hue-slider-black"></div>')),Qc.parts().spectrum({dom:xc.dom('<div class="${prefix}-slider-gradient-container"></div>'),components:[xc.spec('<div class="${prefix}-slider-gradient"></div>')],behaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("thumb-active")})])}),Qc.parts()["right-edge"](xc.spec('<div class="${prefix}-hue-slider-white"></div>')),Qc.parts().thumb({dom:xc.dom('<div class="${prefix}-slider-thumb"></div>'),behaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("thumb-active")})])})],onChange:function(t,r,o){var i=e(o);Ai.set(r.element(),"background-color",i),n.onChange(t,r,i)},onDragStart:function(n,e){Ho.on(e)},onDragEnd:function(n,e){Ho.off(e)},onInit:function(n,t,r){var o=e(r);Ai.set(t.element(),"background-color",o)},stepSize:10,min:0,max:360,getInitialValue:n.getInitialValue,sliderBehaviours:Dr.derive([Vo(Qc.refresh)])})}(n)]},es=function(n,e){var t={onChange:function(n,t,r){e.undoManager.transact(function(){e.formatter.apply("forecolor",{value:r}),e.nodeChanged()})},getInitialValue:function(){return-1}};return Zc(n,"color",function(){return ns(t)})},ts=Yt.objOfOnly([kt("getInitialValue"),kt("onChange"),kt("category"),kt("sizes")]),rs=function(n){var e=Yt.asRawOrDie("SizeSlider",ts,n);return Qc.sketch({dom:{tag:"div",classes:[Po.resolve("slider-"+e.category+"-size-container"),Po.resolve("slider"),Po.resolve("slider-size-container")]},onChange:function(n,t,r){(function(n){return n>=0&&n<e.sizes.length})(r)&&e.onChange(r)},onDragStart:function(n,e){Ho.on(e)},onDragEnd:function(n,e){Ho.off(e)},min:0,max:e.sizes.length-1,stepSize:1,getInitialValue:e.getInitialValue,snapToGrid:!0,sliderBehaviours:Dr.derive([Vo(Qc.refresh)]),components:[Qc.parts().spectrum({dom:xc.dom('<div class="${prefix}-slider-size-container"></div>'),components:[xc.spec('<div class="${prefix}-slider-size-line"></div>')]}),Qc.parts().thumb({dom:xc.dom('<div class="${prefix}-slider-thumb"></div>'),behaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("thumb-active")})])})]})},os=function(n,e,t){for(var o=n.dom(),i=Y.isFunction(t)?t:r.constant(!1);o.parentNode;){o=o.parentNode;var u=kn.fromDom(o),a=e(u);if(a.isSome())return a;if(i(u))break}return w.none()},is=function(n,e,t){return e(n).orThunk(function(){return t(n)?w.none():os(n,e,t)})},us=["9px","10px","11px","12px","14px","16px","18px","20px","24px","32px","36px"],as=function(n){var e=n.selection.getStart(),t=kn.fromDom(e),r=kn.fromDom(n.getBody()),o=function(n,e){return(te.isElement(e)?w.some(e):zn.parent(e)).map(function(e){return is(e,function(n){return Ai.getRaw(n,"font-size")},n).getOrThunk(function(){return Ai.get(e,"font-size")})}).getOr("")}(function(n){return Hn(r,n)},t);return B.find(us,function(n){return o===n}).getOr("medium")},cs={candidates:r.constant(us),get:function(n){return function(n){return B.findIndex(us,function(e){return e===n})}(as(n)).getOr(2)},apply:function(n,e){(function(n){return w.from(us[n])})(e).each(function(e){!function(n,e){as(n)!==e&&n.execCommand("fontSize",!1,e)}(n,e)})}},ss=cs.candidates(),fs=function(n){return[xc.spec('<span class="${prefix}-toolbar-button ${prefix}-icon-small-font ${prefix}-icon"></span>'),function(n){return rs({onChange:n.onChange,sizes:ss,category:"font",getInitialValue:n.getInitialValue})}(n),xc.spec('<span class="${prefix}-toolbar-button ${prefix}-icon-large-font ${prefix}-icon"></span>')]},ls=function(n,e){var t={onChange:function(n){cs.apply(e,n)},getInitialValue:function(){return cs.get(e)}};return Zc(n,"font-size",function(){return fs(t)})},ds=function(n){var e=ze.hasKey(n,"uid")?n.uid:ic.generate("memento");return{get:function(n){return n.getSystem().getByUid(e).getOrDie()},getOpt:function(n){return n.getSystem().getByUid(e).fold(w.none,w.some)},asSpec:function(){return nn.deepMerge(n,{uid:e})}}};function ms(n,e){return gs(document.createElement("canvas"),n,e)}function ps(n){return n.getContext("2d")}function gs(n,e,t){return n.width=e,n.height=t,n}var vs={create:ms,clone:function(n){var e;return ps(e=ms(n.width,n.height)).drawImage(n,0,0),e},resize:gs,get2dContext:ps,get3dContext:function(n){var e=null;try{e=n.getContext("webgl")||n.getContext("experimental-webgl")}catch(n){}return e||(e=null),e}},hs={getWidth:function(n){return n.naturalWidth||n.width},getHeight:function(n){return n.naturalHeight||n.height}},ys=window.Promise?window.Promise:function(){var n=function(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],c(n,t(i,this),t(u,this))},e=n.immediateFn||"function"==typeof setImmediate&&setImmediate||function(n){setTimeout(n,1)};function t(n,e){return function(){n.apply(e,arguments)}}var r=Array.isArray||function(n){return"[object Array]"===Object.prototype.toString.call(n)};function o(n){var t=this;null!==this._state?e(function(){var e=t._state?n.onFulfilled:n.onRejected;if(null!==e){var r;try{r=e(t._value)}catch(e){return void n.reject(e)}n.resolve(r)}else(t._state?n.resolve:n.reject)(t._value)}):this._deferreds.push(n)}function i(n){try{if(n===this)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var e=n.then;if("function"==typeof e)return void c(t(e,n),t(i,this),t(u,this))}this._state=!0,this._value=n,a.call(this)}catch(n){u.call(this,n)}}function u(n){this._state=!1,this._value=n,a.call(this)}function a(){for(var n=0,e=this._deferreds.length;n<e;n++)o.call(this,this._deferreds[n]);this._deferreds=null}function c(n,e,t){var r=!1;try{n(function(n){r||(r=!0,e(n))},function(n){r||(r=!0,t(n))})}catch(n){if(r)return;r=!0,t(n)}}return n.prototype.catch=function(n){return this.then(null,n)},n.prototype.then=function(e,t){var r=this;return new n(function(n,i){o.call(r,new function(n,e,t,r){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof e?e:null,this.resolve=t,this.reject=r}(e,t,n,i))})},n.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&r(arguments[0])?arguments[0]:arguments);return new n(function(n,t){if(0===e.length)return n([]);var r=e.length;function o(i,u){try{if(u&&("object"==typeof u||"function"==typeof u)){var a=u.then;if("function"==typeof a)return void a.call(u,function(n){o(i,n)},t)}e[i]=u,0==--r&&n(e)}catch(n){t(n)}}for(var i=0;i<e.length;i++)o(i,e[i])})},n.resolve=function(e){return e&&"object"==typeof e&&e.constructor===n?e:new n(function(n){n(e)})},n.reject=function(e){return new n(function(n,t){t(e)})},n.race=function(e){return new n(function(n,t){for(var r=0,o=e.length;r<o;r++)e[r].then(n,t)})},n}(),bs={atob:function(n){return On.getOrDie("atob")(n)},requestAnimationFrame:function(n){On.getOrDie("requestAnimationFrame")(n)}};function ws(n){return new ys(function(e,t){var r=URL.createObjectURL(n),o=new Image,i=function(){o.removeEventListener("load",u),o.removeEventListener("error",a)};function u(){i(),e(o)}function a(){i(),t("Unable to load data of type "+n.type+": "+r)}o.addEventListener("load",u),o.addEventListener("error",a),o.src=r,o.complete&&u()})}function Ss(n){return new ys(function(e,t){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="blob",r.onload=function(){200==this.status&&e(this.response)},r.onerror=function(){var n,e=this;t(0===this.status?((n=new Error("No access to download image")).code=18,n.name="SecurityError",n):new Error("Error "+e.status+" downloading image"))},r.send()})}function xs(n){var e=n.split(","),t=/data:([^;]+)/.exec(e[0]);if(!t)return w.none();for(var r,o,i,u=t[1],a=e[1],c=bs.atob(a),s=c.length,f=Math.ceil(s/1024),l=new Array(f),d=0;d<f;++d){for(var m=1024*d,p=Math.min(m+1024,s),g=new Array(p-m),v=m,h=0;v<p;++h,++v)g[h]=c[v].charCodeAt(0);l[d]=(r=g,new(On.getOrDie("Uint8Array"))(r))}return w.some((o=l,i={type:u},new(On.getOrDie("Blob"))(o,i)))}function Os(n){return new ys(function(e,t){xs(n).fold(function(){t("uri is not base64: "+n)},e)})}function Ts(n){return new ys(function(e){var t=new function(){return new(On.getOrDie("FileReader"))};t.onloadend=function(){e(t.result)},t.readAsDataURL(n)})}var ks={blobToImage:ws,imageToBlob:function(n){return function(n){return new ys(function(e){n.complete?e(n):n.addEventListener("load",function t(){n.removeEventListener("load",t),e(n)})})}(n).then(function(n){var e=n.src;return 0===e.indexOf("blob:")?Ss(e):0===e.indexOf("data:")?Os(e):Ss(e)})},blobToDataUri:Ts,blobToBase64:function(n){return Ts(n).then(function(n){return n.split(",")[1]})},dataUriToBlobSync:xs,canvasToBlob:function(n,e,t){return e=e||"image/png",HTMLCanvasElement.prototype.toBlob?new ys(function(r){n.toBlob(function(n){r(n)},e,t)}):Os(n.toDataURL(e,t))},canvasToDataURL:function(n,e,t){return e=e||"image/png",n.then(function(n){return n.toDataURL(e,t)})},blobToCanvas:function(n){return ws(n).then(function(n){var e;return function(n){URL.revokeObjectURL(n.src)}(n),e=vs.create(hs.getWidth(n),hs.getHeight(n)),vs.get2dContext(e).drawImage(n,0,0),e})},uriToBlob:function(n){return 0===n.indexOf("blob:")?Ss(n):0===n.indexOf("data:")?Os(n):null}},Cs=function(n){return ks.blobToBase64(n)},Es=function(n){var e=ds({dom:{tag:"input",attributes:{accept:"image/*",type:"file",title:""},styles:{visibility:"hidden",position:"absolute"}},events:or.derive([or.cutter(o.click()),or.run(o.change(),function(e,t){(function(n){var e=n.event(),t=e.raw().target.files||e.raw().dataTransfer.files;return w.from(t[0])})(t).each(function(e){!function(n,e){Cs(e).then(function(t){n.undoManager.transact(function(){var r=n.editorUpload.blobCache,o=r.create(ba("mceu"),e,t);r.add(o);var i=n.dom.createHTML("img",{src:o.blobUri()});n.insertContent(i)})})}(n,e)})})])});return vc.sketch({dom:xc.dom('<span class="${prefix}-toolbar-button ${prefix}-icon-image ${prefix}-icon"></span>'),components:[e.asSpec()],action:function(n){e.get(n).element().dom().click()}})},Ds=function(n){return n.dom().textContent},As=function(n,e){n.dom().textContent=e},Ms=function(n){return n.length>0},Rs=function(n){return void 0===n||null===n?"":n},Fs=function(n,e,t){return t.text.filter(Ms).fold(function(){return function(n){return we.get(n,"href")===Ds(n)}(n)?w.some(e):w.none()},w.some)},Bs=function(n){var e=kn.fromDom(n.selection.getStart());return ri(e,"a")},Is={getInfo:function(n){return Bs(n).fold(function(){return function(n){return{url:"",text:n.selection.getContent({format:"text"}),title:"",target:"",link:w.none()}}(n)},function(n){return function(n){var e=Ds(n),t=we.get(n,"href"),r=we.get(n,"title"),o=we.get(n,"target");return{url:Rs(t),text:e!==t?Rs(e):"",title:Rs(r),target:Rs(o),link:w.some(n)}}(n)})},applyInfo:function(n,e){e.url.filter(Ms).fold(function(){!function(n,e){e.link.bind(r.identity).each(function(e){n.execCommand("unlink")})}(n,e)},function(t){var o=function(n,e){var t={};return t.href=n,e.title.filter(Ms).each(function(n){t.title=n}),e.target.filter(Ms).each(function(n){t.target=n}),t}(t,e);e.link.bind(r.identity).fold(function(){var r=e.text.filter(Ms).getOr(t);n.insertContent(n.dom.createHTML("a",o,n.dom.encode(r)))},function(n){var r=Fs(n,t,e);we.setAll(n,o),r.each(function(e){As(n,e)})})})},query:Bs},Hs=$.detect(),Ns=function(n,e){var t=e.selection.getRng();n(),e.selection.setRng(t)},Vs=function(n,e){(Hs.os.isAndroid()?Ns:r.apply)(e,n)},js=function(n,e){var t=or.derive(e);return Dr.create({fields:[kt("enabled")],name:n,active:{events:r.constant(t)}})},Ps={events:js,config:function(n,e){return{key:n,value:{config:{},me:js(n,e),configAsRaw:r.constant({}),initialConfig:{},state:Dr.noState()}}}},Ls={getCurrent:function(n,e,t){return e.find()(n)}},Ws=[kt("find")],Us=Dr.create({fields:Ws,name:"composing",apis:Ls}),zs=mc({name:"Container",factory:function(n,e){return{uid:n.uid(),dom:nn.deepMerge({tag:"div",attributes:{role:"presentation"}},n.dom()),components:n.components(),behaviours:ha(n.containerBehaviours()),events:n.events(),domModification:n.domModification(),eventOrder:n.eventOrder()}},configFields:[It("components",[]),va("containerBehaviours",[]),It("events",{}),It("domModification",{}),It("eventOrder",{})]}),Ks=mc({name:"DataField",factory:function(n,e){return{uid:n.uid(),dom:n.dom(),behaviours:nn.deepMerge(Dr.derive([Gc.config({store:{mode:"memory",initialValue:n.getInitialValue()()}}),Us.config({find:w.some})]),ha(n.dataBehaviours())),events:or.derive([or.runOnAttached(function(e,t){Gc.setValue(e,n.getInitialValue()())})])}},configFields:[kt("uid"),kt("dom"),kt("getInitialValue"),va("dataBehaviours",[Gc,Us])]}),Gs=function(n,e){if(void 0===e)throw new Error("Value.set was undefined");n.dom().value=e},$s=function(n){return n.dom().value},qs=[Mt("data"),It("inputAttributes",{}),It("inputStyles",{}),It("type","input"),It("tag","input"),It("inputClasses",[]),So.onHandler("onSetValue"),It("styles",{}),Mt("placeholder"),It("eventOrder",{}),va("inputBehaviours",[Gc,zo]),It("selectOnFocus",!0)],_s={schema:r.constant(qs),behaviours:function(n){return nn.deepMerge(Dr.derive([Gc.config({store:{mode:"manual",initialValue:n.data().getOr(void 0),getValue:function(n){return $s(n.element())},setValue:function(n,e){$s(n.element())!==e&&Gs(n.element(),e)}},onSetValue:n.onSetValue()}),zo.config({onFocus:!1===n.selectOnFocus()?r.noop:function(n){var e=n.element(),t=$s(e);e.dom().setSelectionRange(0,t.length)}})]),ha(n.inputBehaviours()))},dom:function(n){return{tag:n.tag(),attributes:nn.deepMerge(ze.wrapAll([{key:"type",value:n.type()}].concat(n.placeholder().map(function(n){return{key:"placeholder",value:n}}).toArray())),n.inputAttributes()),styles:n.inputStyles(),classes:n.inputClasses()}}},Xs=mc({name:"Input",configFields:_s.schema(),factory:function(n,e){return{uid:n.uid(),dom:_s.dom(n),components:[],behaviours:_s.behaviours(n),eventOrder:n.eventOrder()}}}),Ys={exhibit:function(n,e){return mr.nu({attributes:ze.wrapAll([{key:e.tabAttr(),value:"true"}])})}},Js=[It("tabAttr","data-alloy-tabstop")],Qs=Dr.create({fields:Js,name:"tabstopping",active:Ys}),Zs=function(n,e){var t=ds(Xs.sketch({placeholder:e,onSetValue:function(n,e){fn(n,o.input())},inputBehaviours:Dr.derive([Us.config({find:w.some}),Qs.config({}),ga.config({mode:"execution"})]),selectOnFocus:!1})),r=ds(vc.sketch({dom:xc.dom('<button class="${prefix}-input-container-x ${prefix}-icon-cancel-circle ${prefix}-icon"></button>'),action:function(n){var e=t.get(n);Gc.setValue(e,"")}}));return{name:n,spec:zs.sketch({dom:xc.dom('<div class="${prefix}-input-container"></div>'),components:[t.asSpec(),r.asSpec()],containerBehaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("input-container-empty")}),Us.config({find:function(n){return w.some(t.get(n))}}),Ps.config("input-clearing",[or.run(o.input(),function(n){var e=t.get(n);(Gc.getValue(e).length>0?Ho.off:Ho.on)(n)})])])})}},nf=function(n){return{name:n,spec:Ks.sketch({dom:{tag:"span",styles:{display:"none"}},getInitialValue:function(){return w.none()}})}},ef=["input","button","textarea"],tf=function(n){return B.contains(ef,te.name(n.element()))},rf=function(n){we.set(n.element(),"disabled","disabled")},of=function(n){we.remove(n.element(),"disabled")},uf=function(n){we.set(n.element(),"aria-disabled","true")},af=function(n){we.set(n.element(),"aria-disabled","false")},cf=function(n,e,t){e.disableClass().each(function(e){zr.add(n.element(),e)}),(tf(n)?rf:uf)(n)},sf={enable:function(n,e,t){e.disableClass().each(function(e){zr.remove(n.element(),e)}),(tf(n)?of:af)(n)},disable:cf,isDisabled:function(n){return tf(n)?function(n){return we.has(n.element(),"disabled")}(n):function(n){return"true"===we.get(n.element(),"aria-disabled")}(n)},onLoad:function(n,e,t){e.disabled()&&cf(n,e,t)}},ff={exhibit:function(n,e,t){return mr.nu({classes:e.disabled()?e.disableClass().map(B.pure).getOr([]):[]})},events:function(n,e){return or.derive([or.abort(_.execute(),function(t,r){return sf.isDisabled(t,n,e)}),hr(n,e,sf.onLoad)])}},lf=[It("disabled",!1),Mt("disableClass")],df=Dr.create({fields:lf,name:"disabling",active:ff,apis:sf}),mf=[va("formBehaviours",[Gc])],pf=function(n){return"<alloy.field."+n+">"},gf=function(n,e,t){return nn.deepMerge({"debug.sketcher":{Form:t},uid:n.uid(),dom:n.dom(),components:e,behaviours:nn.deepMerge(Dr.derive([Gc.config({store:{mode:"manual",getValue:function(e){var t=Za(e,n);return an.map(t,function(n,e){return n().bind(Us.getCurrent).map(Gc.getValue)})},setValue:function(e,t){an.each(t,function(t,r){nc(e,n,r).each(function(n){Us.getCurrent(n).each(function(n){Gc.setValue(n,t)})})})}}})]),ha(n.formBehaviours())),apis:{getField:function(e,t){return nc(e,n,t).bind(Us.getCurrent)}}})},vf=(xa.makeApi(function(n,e,t){return n.getField(e,t)}),function(n){var e,t=(e=[],{field:function(n,t){return e.push(n),_a("form",pf(n),t)},record:function(){return e}}),r=n(t),o=t.record(),i=B.map(o,function(n){return Ha.required({name:n,pname:pf(n)})});return fc("form",mf,i,gf,r)}),hf=function(n){var e=_r(w.none()),t=function(){e.get().each(n)};return{clear:function(){t(),e.set(w.none())},isSet:function(){return e.get().isSome()},set:function(n){t(),e.set(w.some(n))}}},yf={destroyable:function(){return hf(function(n){n.destroy()})},unbindable:function(){return hf(function(n){n.unbind()})},api:function(){var n=_r(w.none()),e=function(){n.get().each(function(n){n.destroy()})};return{clear:function(){e(),n.set(w.none())},isSet:function(){return n.get().isSome()},set:function(t){e(),n.set(w.some(t))},run:function(e){n.get().each(e)}}},value:function(){var n=_r(w.none());return{clear:function(){n.set(w.none())},set:function(e){n.set(w.some(e))},isSet:function(){return n.get().isSome()},on:function(e){n.get().each(e)}}}},bf=function(n){return{xValue:n,points:[]}},wf=function(n,e){if(e===n.xValue)return n;var t=e-n.xValue>0?1:-1,r={direction:t,xValue:e};return{xValue:e,points:(0===n.points.length?[]:n.points[n.points.length-1].direction===t?n.points.slice(0,n.points.length-1):n.points).concat([r])}},Sf=function(n){if(0===n.points.length)return 0;var e=n.points[0].direction,t=n.points[n.points.length-1].direction;return-1===e&&-1===t?-1:1===e&&1===t?1:0},xf=function(n){var e=Yt.objOf([kt("fields"),It("maxFieldIndex",n.fields.length-1),kt("onExecute"),kt("getInitialValue"),jt("state",function(){return{dialogSwipeState:yf.value(),currentScreen:_r(0)}})]),t=Yt.asRawOrDie("SerialisedDialog",e,n),r=function(n,e,t){return vc.sketch({dom:xc.dom('<span class="${prefix}-icon-'+e+' ${prefix}-icon"></span>'),action:function(e){ln(e,"navigateEvent",{direction:n})},buttonBehaviours:Dr.derive([df.config({disableClass:Po.resolve("toolbar-navigation-disabled"),disabled:!t})])})},i=function(n,e){var r=Qo(n.element(),"."+Po.resolve("serialised-dialog-screen"));ti(n.element(),"."+Po.resolve("serialised-dialog-chain")).each(function(n){t.state.currentScreen.get()+e>=0&&t.state.currentScreen.get()+e<r.length&&(Ai.getRaw(n,"left").each(function(t){var o=parseInt(t,10),i=Yc(r[0]);Ai.set(n,"left",o-e*i+"px")}),t.state.currentScreen.set(t.state.currentScreen.get()+e))})},u=function(n){var e=Qo(n.element(),"input");w.from(e[t.state.currentScreen.get()]).each(function(e){n.getSystem().getByDom(e).each(function(e){gn(n,e.element())})});var r=c.get(n);mi.highlightAt(r,t.state.currentScreen.get())},a=ds(vf(function(n){return{dom:xc.dom('<div class="${prefix}-serialised-dialog"></div>'),components:[zs.sketch({dom:xc.dom('<div class="${prefix}-serialised-dialog-chain" style="left: 0px; position: absolute;"></div>'),components:B.map(t.fields,function(e,o){return o<=t.maxFieldIndex?zs.sketch({dom:xc.dom('<div class="${prefix}-serialised-dialog-screen"></div>'),components:B.flatten([[r(-1,"previous",o>0)],[n.field(e.name,e.spec)],[r(1,"next",o<t.maxFieldIndex)]])}):n.field(e.name,e.spec)})})],formBehaviours:Dr.derive([Vo(function(n,e){!function(n,e){ti(n.element(),"."+Po.resolve("serialised-dialog-chain")).each(function(n){Ai.set(n,"left",-t.state.currentScreen.get()*e.width+"px")})}(n,e)}),ga.config({mode:"special",focusIn:function(n){u(n)},onTab:function(n){return i(n,1),w.some(!0)},onShiftTab:function(n){return i(n,-1),w.some(!0)}}),Ps.config("form-events",[or.runOnAttached(function(n,e){t.state.currentScreen.set(0),t.state.dialogSwipeState.clear();var r=c.get(n);mi.highlightFirst(r),t.getInitialValue(n).each(function(e){Gc.setValue(n,e)})}),or.runOnExecute(t.onExecute),or.run(o.transitionend(),function(n,e){"left"===e.event().raw().propertyName&&u(n)}),or.run("navigateEvent",function(n,e){var t=e.event().direction();i(n,t)})])])}})),c=ds({dom:xc.dom('<div class="${prefix}-dot-container"></div>'),behaviours:Dr.derive([mi.config({highlightClass:Po.resolve("dot-active"),itemClass:Po.resolve("dot-item")})]),components:B.bind(t.fields,function(n,e){return e<=t.maxFieldIndex?[xc.spec('<div class="${prefix}-dot-item ${prefix}-icon-full-dot ${prefix}-icon"></div>')]:[]})});return{dom:xc.dom('<div class="${prefix}-serializer-wrapper"></div>'),components:[a.asSpec(),c.asSpec()],behaviours:Dr.derive([ga.config({mode:"special",focusIn:function(n){var e=a.get(n);ga.focusIn(e)}}),Ps.config("serializer-wrapper-events",[or.run(o.touchstart(),function(n,e){t.state.dialogSwipeState.set(bf(e.event().raw().touches[0].clientX))}),or.run(o.touchmove(),function(n,e){t.state.dialogSwipeState.on(function(n){e.event().prevent(),t.state.dialogSwipeState.set(wf(n,e.event().raw().touches[0].clientX))})}),or.run(o.touchend(),function(n){t.state.dialogSwipeState.on(function(e){var t=a.get(n),r=-1*Sf(e);i(t,r)})})])])}},Of=i(function(n,e){return[{label:"the link group",items:[xf({fields:[Zs("url","Type or paste URL"),Zs("text","Link text"),Zs("title","Link title"),Zs("target","Link target"),nf("link")],maxFieldIndex:["url","text","title","target"].length-1,getInitialValue:function(){return w.some(Is.getInfo(e))},onExecute:function(t){var r=Gc.getValue(t);Is.applyInfo(e,r),n.restoreToolbar(),e.focus()}})]}]}),Tf=function(n,e){return kc.forToolbarStateAction(e,"link","link",function(){var t=Of(n,e);n.setContextToolbar(t),Vs(e,function(){n.focusToolbar()}),Is.query(e).each(function(n){e.selection.select(n.dom())})})},kf=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],Cf=function(n,e){var t=B.map(e,function(n){return Vt(n.name(),n.name(),rt.asOption(),Yt.objOf([kt("config"),It("state",kr)]))}),o=Yt.asStruct("component.behaviours",Yt.objOf(t),n.behaviours).fold(function(e){throw new Error(Yt.formatError(e)+"\nComplete spec:\n"+ut(n,null,2))},r.identity);return{list:e,data:an.map(o,function(n){var e=n();return r.constant(e.map(function(n){return{config:n.config(),state:n.state().init(n.config())}}))})}},Ef=function(n){return n.list},Df=function(n){return n.data},Af=function(n,e){return Cf(n,e)},Mf=function(n){var e=function(n){var e=ze.readOptFrom(n,"behaviours").getOr({}),t=B.filter(an.keys(e),function(n){return void 0!==e[n]});return B.map(t,function(e){return n.behaviours[e].me})}(n);return Af(n,e)},Rf=Or.exactly(["getSystem","config","hasConfigured","spec","connect","disconnect","element","syncComponents","readState","components","events"]),Ff=Or.exactly(["debugInfo","triggerFocus","triggerEvent","triggerEscape","addToWorld","removeFromWorld","addToGui","removeFromGui","build","getByUid","getByDom","broadcast","broadcastOn"]);function Bf(n){var e=function(e){return function(){throw new Error("The component must be in a context to send: "+e+"\n"+Te.element(n().element())+" is not in context.")}};return Ff({debugInfo:r.constant("fake"),triggerEvent:e("triggerEvent"),triggerFocus:e("triggerFocus"),triggerEscape:e("triggerEscape"),build:e("build"),addToWorld:e("addToWorld"),removeFromWorld:e("removeFromWorld"),addToGui:e("addToGui"),removeFromGui:e("removeFromGui"),getByUid:e("getByUid"),getByDom:e("getByDom"),broadcast:e("broadcast"),broadcastOn:e("broadcastOn")})}var If=function(n,e){var t={};return an.each(n,function(n,r){an.each(n,function(n,o){var i=ze.readOr(o,[])(t);t[o]=i.concat([e(r,n)])})}),t},Hf=function(n,e){return{name:r.constant(n),modification:e}},Nf=function(n,e,t){return n.length>1?Ee.error('Multiple behaviours have tried to change DOM "'+e+'". The guilty behaviours are: '+ut(B.map(n,function(n){return n.name()}))+". At this stage, this is not supported. Future releases might provide strategies for resolving this."):0===n.length?Ee.value({}):Ee.value(n[0].modification().fold(function(){return{}},function(n){return ze.wrap(e,n)}))},Vf=function(n,e){return B.foldl(n,function(t,r){var o=r.modification().getOr({});return t.bind(function(t){var r=an.mapToArray(o,function(r,o){return void 0!==t[o]?function(n,e,t,r){return Ee.error("Mulitple behaviours have tried to change the _"+e+'_ "'+n+'". The guilty behaviours are: '+ut(B.bind(r,function(n){return void 0!==n.modification().getOr({})[e]?[n.name()]:[]}),null,2)+". This is not currently supported.")}(e,o,0,n):Ee.value(ze.wrap(o,r))});return ze.consolidate(r,t)})},Ee.value({})).map(function(n){return ze.wrap(e,n)})},jf={classes:function(n,e){var t=B.bind(n,function(n){return n.modification().getOr([])});return Ee.value(ze.wrap(e,t))},attributes:Vf,styles:Vf,domChildren:Nf,defChildren:Nf,innerHtml:Nf,value:Nf},Pf=function(n,e,t,r){var o=nn.deepMerge({},e);B.each(t,function(e){o[e.name()]=e.exhibit(n,r)});var i=If(o,Hf),u=an.map(i,function(n,e){return B.bind(n,function(n){return n.modification().fold(function(){return[]},function(e){return[n]})})}),a=an.mapToArray(u,function(n,e){return ze.readOptFrom(jf,e).fold(function(){return Ee.error("Unknown field type: "+e)},function(t){return t(n,e)})});return ze.consolidate(a,{}).map(mr.nu)},Lf=function(n,e,t,r){var o=t.slice(0);try{var i=o.sort(function(t,o){var i=t[e](),u=o[e](),a=r.indexOf(i),c=r.indexOf(u);if(-1===a)throw new Error("The ordering for "+n+" does not have an entry for "+i+".\nOrder specified: "+ut(r,null,2));if(-1===c)throw new Error("The ordering for "+n+" does not have an entry for "+u+".\nOrder specified: "+ut(r,null,2));return a<c?-1:c<a?1:0});return Ee.value(i)}catch(n){return Ee.error([n])}},Wf={nu:function(n,e){return{handler:n,purpose:r.constant(e)}},curryArgs:function(n,e){return{handler:r.curry.apply(void 0,[n.handler].concat(e)),purpose:n.purpose}},getHandler:function(n){return n.handler}},Uf=function(n,e){return{name:r.constant(n),handler:r.constant(e)}},zf=function(n,e,t){var r=nn.deepMerge(t,function(n,e){var t={};return B.each(n,function(n){t[n.name()]=n.handlers(e)}),t}(e,n));return If(r,Uf)},Kf=function(n,e,t){var r=e[t];return r?Lf("Event: "+t,"name",n,r).map(function(n){var e=B.map(n,function(n){return n.handler()});return Zt(e)}):function(n,e){return Ee.error(["The event ("+n+') has more than one behaviour that listens to it.\nWhen this occurs, you must specify an event ordering for the behaviours in your spec (e.g. [ "listing", "toggling" ]).\nThe behaviours that can trigger it are: '+ut(B.map(e,function(n){return n.name()}),null,2)])}(t,n)},Gf=function(n,e){var t=an.mapToArray(n,function(n,t){return(1===n.length?Ee.value(n[0].handler()):Kf(n,e,t)).map(function(r){var o=function(n){var e=Qt(n);return function(n,t){var r=Array.prototype.slice.call(arguments,0);e.abort.apply(void 0,r)?t.stop():e.can.apply(void 0,r)&&e.run.apply(void 0,r)}}(r),i=n.length>1?B.filter(e,function(e){return B.contains(n,function(n){return n.name()===e})}).join(" > "):n[0].name();return ze.wrap(t,Wf.nu(o,i))})});return ze.consolidate(t,{})},$f=function(n,e,t,r){var o=zf(n,t,r);return Gf(o,e)},qf=function(n){return Yt.asStruct("custom.definition",Yt.objOfOnly([Vt("dom","dom",rt.strict(),Yt.objOfOnly([kt("tag"),It("styles",{}),It("classes",[]),It("attributes",{}),Mt("value"),Mt("innerHtml")])),kt("components"),kt("uid"),It("events",{}),It("apis",r.constant({})),Vt("eventOrder","eventOrder",rt.mergeWith({"alloy.execute":["disabling","alloy.base.behaviour","toggling"],"alloy.focus":["alloy.base.behaviour","focusing","keying"],"alloy.system.init":["alloy.base.behaviour","disabling","toggling","representing"],input:["alloy.base.behaviour","representing","streaming","invalidating"],"alloy.system.detached":["alloy.base.behaviour","representing"]}),Yt.anyValue()),Mt("domModification"),So.snapshot("originalSpec"),It("debug.sketcher","unknown")]),n)},_f=function(n){var e={tag:n.dom().tag(),classes:n.dom().classes(),attributes:nn.deepMerge(function(n){return ze.wrap(tc.idAttr(),n.uid())}(n),n.dom().attributes()),styles:n.dom().styles(),domChildren:B.map(n.components(),function(n){return n.element()})};return sr.nu(nn.deepMerge(e,n.dom().innerHtml().map(function(n){return ze.wrap("innerHtml",n)}).getOr({}),n.dom().value().map(function(n){return ze.wrap("value",n)}).getOr({})))},Xf=function(n){return n.domModification().fold(function(){return mr.nu({})},mr.nu)},Yf=function(n){return n.events()},Jf={add:function(n,e){B.each(e,function(e){zr.add(n,e)})},remove:function(n,e){B.each(e,function(e){zr.remove(n,e)})},toggle:function(n,e){B.each(e,function(e){zr.toggle(n,e)})},hasAll:function(n,e){return B.forall(e,function(e){return zr.has(n,e)})},hasAny:function(n,e){return B.exists(e,function(e){return zr.has(n,e)})},get:function(n){return Wr(n)?function(n){for(var e=n.dom().classList,t=new Array(e.length),r=0;r<e.length;r++)t[r]=e.item(r);return t}(n):Vr(n)}},Qf=function(n){var e=kn.fromTag(n.tag());we.setAll(e,n.attributes().getOr({})),Jf.add(e,n.classes().getOr([])),Ai.setAll(e,n.styles().getOr({})),pe(e,n.innerHtml().getOr(""));var t=function(n){if(n.domChildren().isSome()&&n.defChildren().isSome())throw new Error("Cannot specify children and child specs! Must be one or the other.\nDef: "+sr.defToStr(n));return n.domChildren().fold(function(){var e=n.defChildren().getOr([]);return B.map(e,Zf)},function(n){return n})}(n);return qn.append(e,t),n.value().each(function(n){Gs(e,n)}),e},Zf=function(n){var e=sr.nu(n);return Qf(e)},nl=Qf,el=function(n){var e=function(){return v},t=_r(Bf(e)),o=Yt.getOrDie(qf(nn.deepMerge(n,{behaviours:void 0}))),i=Mf(n),u=Ef(i),a=Df(i),c=_f(o),s={"alloy.base.modification":Xf(o)},f=Pf(a,s,u,c).getOrDie(),l=mr.merge(c,f),d=nl(l),m={"alloy.base.behaviour":Yf(o)},p=$f(a,o.eventOrder(),u,m).getOrDie(),g=_r(o.components()),v=Rf({getSystem:t.get,config:function(e){if(e===xa.apiConfig())return o.apis();var t=a;return(Y.isFunction(t[e.name()])?t[e.name()]:function(){throw new Error("Could not find "+e.name()+" in "+ut(n,null,2))})()},hasConfigured:function(n){return Y.isFunction(a[n.name()])},spec:r.constant(n),readState:function(n){return a[n]().map(function(n){return n.state.readState()}).getOr("not enabled")},connect:function(n){t.set(n)},disconnect:function(){t.set(Bf(e))},element:r.constant(d),syncComponents:function(){var n=zn.children(d),e=B.bind(n,function(n){return t.get().getByDom(n).fold(function(){return[]},function(n){return[n]})});g.set(e)},components:g.get,events:r.constant(p)});return v},tl={events:or.derive([or.can(_.focus(),function(n,e){var t=e.event().originator(),r=e.event().target();return!function(n,e,t){return Hn(e,n.element())&&!Hn(e,t)}(n,t,r)||(console.warn(_.focus()+" did not get interpreted by the desired target. \nOriginator: "+Te.element(t)+"\nTarget: "+Te.element(r)+"\nCheck the "+_.focus()+" event handlers"),!1)})])},rl=function(n){return n},ol=function(n){var e=rl(n),t=function(n){var e=ze.readOr("components",[])(n);return B.map(e,ul)}(e),r=nn.deepMerge(tl,e,ze.wrap("components",t));return Ee.value(el(r))},il=function(n){var e=Yt.asStructOrDie("external.component",Yt.objOfOnly([kt("element"),Mt("uid")]),n),t=_r(Bf());e.uid().each(function(n){ic.writeOnly(e.element(),n)});var o=Rf({getSystem:t.get,config:w.none,hasConfigured:r.constant(!1),connect:function(n){t.set(n)},disconnect:function(){t.set(Bf(function(){return o}))},element:r.constant(e.element()),spec:r.constant(n),readState:r.constant("No state"),syncComponents:r.noop,components:r.constant([]),events:r.constant({})});return xa.premade(o)},ul=function(n){return xa.getPremade(n).fold(function(){var e=nn.deepMerge({uid:ic.generate("")},n);return ol(e).getOrDie()},function(n){return n})},al={build:ul,premade:xa.premade,external:il,text:function(n){var e=kn.fromText(n);return il({element:e})}},cl={hover:r.constant("alloy.item-hover"),focus:r.constant("alloy.item-focus"),onHover:function(n){(uo(n.element()).isNone()||zo.isFocused(n))&&(zo.isFocused(n)||zo.focus(n),ln(n,"alloy.item-hover",{item:n}))},onFocus:function(n){ln(n,"alloy.item-focus",{item:n})}},sl=[kt("data"),kt("components"),kt("dom"),Mt("toggling"),It("itemBehaviours",{}),It("ignoreFocus",!1),It("domModification",{}),So.output("builder",function(n){return{dom:nn.deepMerge(n.dom(),{attributes:{role:n.toggling().isSome()?"menuitemcheckbox":"menuitem"}}),behaviours:nn.deepMerge(Dr.derive([n.toggling().fold(Ho.revoke,function(n){return Ho.config(nn.deepMerge({aria:{mode:"checked"}},n))}),zo.config({ignore:n.ignoreFocus(),onFocus:function(n){cl.onFocus(n)}}),ga.config({mode:"execution"}),Gc.config({store:{mode:"memory",initialValue:n.data()}})]),n.itemBehaviours()),events:or.derive([or.runWithTarget(_.tapOrClick(),dn),or.cutter(o.mousedown()),or.run(o.mouseover(),cl.onHover),or.run(_.focusItem(),zo.focus)]),components:n.components(),domModification:n.domModification()}})],fl=[kt("dom"),kt("components"),So.output("builder",function(n){return{dom:n.dom(),components:n.components(),events:or.derive([or.stopper(_.focusItem())])}})],ll=[Ha.required({name:"widget",overrides:function(n){return{behaviours:Dr.derive([Gc.config({store:{mode:"manual",getValue:function(e){return n.data()},setValue:function(){}}})])}}})],dl={owner:r.constant("item-widget"),parts:r.constant(ll)},ml=[kt("uid"),kt("data"),kt("components"),kt("dom"),It("autofocus",!1),It("domModification",{}),Qa(dl.parts()),So.output("builder",function(n){var e=Ya(dl.owner(),n,dl.parts()),t=Ja(dl.owner(),n,e.internals()),r=function(e){return nc(e,n,"widget").map(function(n){return ga.focusIn(n),n})},i=function(e,t){return Ni(t.event().target())?w.none():n.autofocus()?(t.setSource(e.element()),w.none()):w.none()};return nn.deepMerge({dom:n.dom(),components:t,domModification:n.domModification(),events:or.derive([or.runOnExecute(function(n,e){r(n).each(function(n){e.stop()})}),or.run(o.mouseover(),cl.onHover),or.run(_.focusItem(),function(e,t){n.autofocus()?r(e):zo.focus(e)})]),behaviours:Dr.derive([Gc.config({store:{mode:"memory",initialValue:n.data()}}),zo.config({onFocus:function(n){cl.onFocus(n)}}),ga.config({mode:"special",onLeft:i,onRight:i,onEscape:function(e,t){return zo.isFocused(e)||n.autofocus()?n.autofocus()?(t.setSource(e.element()),w.none()):w.none():(zo.focus(e),w.some(!0))}})])})})],pl=Yt.choose("type",{widget:ml,item:sl,separator:fl}),gl=[Ha.group({factory:{sketch:function(n){var e=Yt.asStructOrDie("menu.spec item",pl,n);return e.builder()(e)}},name:"items",unit:"item",defaults:function(n,e){var t=ic.generate("");return nn.deepMerge({uid:t},e)},overrides:function(n,e){return{type:e.type,ignoreFocus:n.fakeFocus(),domModification:{classes:[n.markers().item()]}}}})],vl=[kt("value"),kt("items"),kt("dom"),kt("components"),It("eventOrder",{}),va("menuBehaviours",[mi,Gc,Us,ga]),Ht("movement",{mode:"menu",moveOnTab:!0},Yt.choose("mode",{grid:[So.initSize(),So.output("config",function(n,e){return{mode:"flatgrid",selector:"."+n.markers().item(),initSize:{numColumns:e.initSize().numColumns(),numRows:e.initSize().numRows()},focusManager:n.focusManager()}})],menu:[It("moveOnTab",!0),So.output("config",function(n,e){return{mode:"menu",selector:"."+n.markers().item(),moveOnTab:e.moveOnTab(),focusManager:n.focusManager()}})]})),So.itemMarkers(),It("fakeFocus",!1),It("focusManager",pi()),So.onHandler("onHighlight")],hl={name:r.constant("Menu"),schema:r.constant(vl),parts:r.constant(gl)},yl={focus:r.constant("alloy.menu-focus")},bl={make:function(n,e,t,o){return nn.deepMerge({dom:nn.deepMerge(n.dom(),{attributes:{role:"menu"}}),uid:n.uid(),behaviours:nn.deepMerge(Dr.derive([mi.config({highlightClass:n.markers().selectedItem(),itemClass:n.markers().item(),onHighlight:n.onHighlight()}),Gc.config({store:{mode:"memory",initialValue:n.value()}}),Us.config({find:r.identity}),ga.config(n.movement().config()(n,n.movement()))]),ha(n.menuBehaviours())),events:or.derive([or.run(cl.focus(),function(n,e){var t=e.event();n.getSystem().getByDom(t.target()).each(function(t){mi.highlight(n,t),e.stop(),ln(n,yl.focus(),{menu:n,item:t})})}),or.run(cl.hover(),function(n,e){var t=e.event().item();mi.highlight(n,t)})]),components:e,eventOrder:n.eventOrder()})}},wl=pc({name:"Menu",configFields:hl.schema(),partFields:hl.parts(),factory:bl.make}),Sl=function(n,e){var t=zn.owner(e),r=io(t).bind(function(n){var t=function(e){return Hn(n,e)};return t(e)?w.some(e):Zr.descendant(e,t)}),o=n(e);return r.each(function(n){io(t).filter(function(e){return Hn(e,n)}).orThunk(function(){ro(n)})}),o},xl=function(n,e,t,r){var o=n.getSystem().build(r);fe.attachWith(n,o,t)},Ol=function(n,e){return n.components()},Tl={append:function(n,e,t,r){xl(n,0,$n.append,r)},prepend:function(n,e,t,r){xl(n,0,$n.prepend,r)},remove:function(n,e,t,r){var o=Ol(n,e);B.find(o,function(n){return Hn(r.element(),n.element())}).each(fe.detach)},set:function(n,e,t,r){fe.detachChildren(n),Sl(function(){var e=B.map(r,n.getSystem().build);B.each(e,function(e){fe.attach(n,e)})},n.element())},contents:Ol},kl=Dr.create({fields:[],name:"replacing",apis:Tl}),Cl=function(n,e,t,r){return ze.readOptFrom(t,r).bind(function(r){return ze.readOptFrom(n,r).bind(function(r){var o=Cl(n,e,t,r);return w.some([r].concat(o))})}).getOr([])},El={generate:function(n,e){var t={};an.each(n,function(n,e){B.each(n,function(n){t[n]=e})});var r,o=e,i=(r=e,an.tupleMap(r,function(n,e){return{k:n,v:e}})),u=an.map(i,function(n,e){return[e].concat(Cl(t,o,i,e))});return an.map(t,function(n){return ze.readOptFrom(u,n).getOr([n])})}},Dl={make:function(n,e){var t,o,i,u,a,c,s=(t=_r({}),o=_r({}),i=_r({}),u=_r(w.none()),a=_r(r.constant([])),{setContents:function(n,e,r,c){u.set(w.some(n)),t.set(r),o.set(e),a.set(c);var s=c(e),f=El.generate(s,r);i.set(f)},expand:function(n){return ze.readOptFrom(t.get(),n).map(function(e){var t=ze.readOptFrom(i.get(),n).getOr([]);return[e].concat(t)})},refresh:function(n){return ze.readOptFrom(i.get(),n)},collapse:function(n){return ze.readOptFrom(i.get(),n).bind(function(n){return n.length>1?w.some(n.slice(1)):w.none()})},lookupMenu:c=function(n){return ze.readOptFrom(o.get(),n)},otherMenus:function(n){var e=a.get()(o.get());return B.difference(an.keys(e),n)},getPrimary:function(){return u.get().bind(c)},getMenus:function(){return o.get()},clear:function(){t.set({}),o.set({}),i.set({}),u.set(w.none())},isClear:function(){return u.get().isNone()}}),f=function(t){var r=function(t,r){return an.map(r,function(r,o){var i=wl.sketch(nn.deepMerge(r,{value:o,items:r.items,markers:ze.narrow(e.markers,["item","selectedItem"]),fakeFocus:n.fakeFocus(),onHighlight:n.onHighlight(),focusManager:n.fakeFocus()?gi():pi()}));return t.getSystem().build(i)})}(t,n.data().menus());return s.setContents(n.data().primary(),r,n.data().expansions(),function(n){return d(t,n)}),s.getPrimary()},l=function(n){return Gc.getValue(n).value},d=function(e,t){return an.map(n.data().menus(),function(n,e){return B.bind(n.items,function(n){return"separator"===n.type?[]:[n.data.value]})})},m=function(n,e){mi.highlight(n,e),mi.getHighlighted(e).orThunk(function(){return mi.getFirst(e)}).each(function(e){mn(n,e.element(),_.focusItem())})},p=function(n,e){return Ke(B.map(e,n.lookupMenu))},g=function(e,t,r){return w.from(r[0]).bind(t.lookupMenu).map(function(o){var i=p(t,r.slice(1));B.each(i,function(e){zr.add(e.element(),n.markers().backgroundMenu())}),ie.inBody(o.element())||kl.append(e,al.premade(o)),Jf.remove(o.element(),[n.markers().backgroundMenu()]),m(e,o);var u=p(t,t.otherMenus(r));return B.each(u,function(t){Jf.remove(t.element(),[n.markers().backgroundMenu()]),n.stayInDom()||kl.remove(e,t)}),o})},v=function(e,t){var r=l(t);return s.expand(r).bind(function(r){return w.from(r[0]).bind(s.lookupMenu).each(function(r){ie.inBody(r.element())||kl.append(e,al.premade(r)),n.onOpenSubmenu()(e,t,r),mi.highlightFirst(r)}),g(e,s,r)})},h=function(e,t){var r=l(t);return s.collapse(r).bind(function(r){return g(e,s,r).map(function(r){return n.onCollapseMenu()(e,t,r),r})})},y=function(e){return function(t,r){return ri(r.getSource(),"."+n.markers().item()).bind(function(n){return t.getSystem().getByDom(n).bind(function(n){return e(t,n)})})}},b=or.derive([or.run(yl.focus(),function(n,e){var t=e.event().menu();mi.highlight(n,t)}),or.runOnExecute(function(e,t){var r=t.event().target();return e.getSystem().getByDom(r).bind(function(t){return 0===l(t).indexOf("collapse-item")?h(e,t):v(e,t).orThunk(function(){return n.onExecute()(e,t)})})}),or.runOnAttached(function(e,t){f(e).each(function(t){kl.append(e,al.premade(t)),n.openImmediately()&&(m(e,t),n.onOpenMenu()(e,t))})})].concat(n.navigateOnHover()?[or.run(cl.hover(),function(e,t){var r=t.event().item();!function(n,e){var t=l(e);s.refresh(t).bind(function(e){return g(n,s,e)})}(e,r),v(e,r),n.onHover()(e,r)})]:[]));return{uid:n.uid(),dom:n.dom(),behaviours:nn.deepMerge(Dr.derive([ga.config({mode:"special",onRight:y(function(n,e){return Ni(e.element())?w.none():v(n,e)}),onLeft:y(function(n,e){return Ni(e.element())?w.none():h(n,e)}),onEscape:y(function(e,t){return h(e,t).orThunk(function(){return n.onEscape()(e,t)})}),focusIn:function(n,e){s.getPrimary().each(function(e){mn(n,e.element(),_.focusItem())})}}),mi.config({highlightClass:n.markers().selectedMenu(),itemClass:n.markers().menu()}),Us.config({find:function(n){return mi.getHighlighted(n)}}),kl.config({})]),ha(n.tmenuBehaviours())),eventOrder:n.eventOrder(),apis:{collapseMenu:function(n){mi.getHighlighted(n).each(function(e){mi.getHighlighted(e).each(function(e){h(n,e)})})}},events:b}},collapseItem:r.constant("collapse-item")},Al=mc({name:"TieredMenu",configFields:[So.onStrictKeyboardHandler("onExecute"),So.onStrictKeyboardHandler("onEscape"),So.onStrictHandler("onOpenMenu"),So.onStrictHandler("onOpenSubmenu"),So.onHandler("onCollapseMenu"),It("openImmediately",!0),Et("data",[kt("primary"),kt("menus"),kt("expansions")]),It("fakeFocus",!1),So.onHandler("onHighlight"),So.onHandler("onHover"),So.tieredMenuMarkers(),kt("dom"),It("navigateOnHover",!0),It("stayInDom",!1),va("tmenuBehaviours",[ga,mi,Us,kl]),It("eventOrder",{})],apis:{collapseMenu:function(n,e){n.collapseMenu(e)}},factory:Dl.make,extraApis:{tieredData:function(n,e,t){return{primary:n,menus:e,expansions:t}},singleData:function(n,e){return{primary:n,menus:ze.wrap(n,e),expansions:{}}},collapseItem:function(n){return{value:ba(Dl.collapseItem()),text:n}}}}),Ml=function(n,e,t,o){return ze.readOptFrom(e.routes(),o.start()).map(r.apply).bind(function(n){return ze.readOptFrom(n,o.destination()).map(r.apply)})},Rl=function(n,e,t,o){return Ml(0,e,0,o).bind(function(n){return n.transition().map(function(e){return{transition:r.constant(e),route:r.constant(n)}})})},Fl=function(n,e,t){(function(n,e,t){return Bl(n,e,t).bind(function(r){return Rl(n,e,t,r)})})(n,e,t).each(function(t){var r=t.transition();zr.remove(n.element(),r.transitionClass()),we.remove(n.element(),e.destinationAttr())})},Bl=function(n,e,t){var o=n.element();return we.has(o,e.destinationAttr())?w.some({start:r.constant(we.get(n.element(),e.stateAttr())),destination:r.constant(we.get(n.element(),e.destinationAttr()))}):w.none()},Il=function(n,e,t,r){Fl(n,e,t),we.has(n.element(),e.stateAttr())&&we.get(n.element(),e.stateAttr())!==r&&e.onFinish()(n,r),we.set(n.element(),e.stateAttr(),r)},Hl={findRoute:Ml,disableTransition:Fl,getCurrentRoute:Bl,jumpTo:Il,progressTo:function(n,e,t,o){!function(n,e,t,r){we.has(n.element(),e.destinationAttr())&&(we.set(n.element(),e.stateAttr(),we.get(n.element(),e.destinationAttr())),we.remove(n.element(),e.destinationAttr()))}(n,e);var i=function(n,e,t,o){return{start:r.constant(we.get(n.element(),e.stateAttr())),destination:r.constant(o)}}(n,e,0,o);Rl(n,e,t,i).fold(function(){Il(n,e,t,o)},function(r){Fl(n,e,t);var i=r.transition();zr.add(n.element(),i.transitionClass()),we.set(n.element(),e.destinationAttr(),o)})},getState:function(n,e,t){var r=n.element();return we.has(r,e.stateAttr())?w.some(we.get(r,e.stateAttr())):w.none()}},Nl={events:function(n,e){return or.derive([or.run(o.transitionend(),function(t,r){var o=r.event().raw();Hl.getCurrentRoute(t,n,e).each(function(r){Hl.findRoute(t,n,e,r).each(function(i){i.transition().each(function(i){o.propertyName===i.property()&&(Hl.jumpTo(t,n,e,r.destination()),n.onTransition()(t,r))})})})}),or.runOnAttached(function(t,r){Hl.jumpTo(t,n,e,n.initialState())})])}},Vl=[It("destinationAttr","data-transitioning-destination"),It("stateAttr","data-transitioning-state"),kt("initialState"),So.onHandler("onTransition"),So.onHandler("onFinish"),Ct("routes",Yt.setOf(Ee.value,Yt.setOf(Ee.value,Yt.objOfOnly([Bt("transition",[kt("property"),kt("transitionClass")])]))))],jl=Dr.create({fields:Vl,name:"transitioning",active:Nl,apis:Hl,extra:{createRoutes:function(n){var e={};return an.each(n,function(n,t){var r=t.split("<->");e[r[0]]=ze.wrap(r[1],n),e[r[1]]=ze.wrap(r[0],n)}),e},createBistate:function(n,e,t){return ze.wrapAll([{key:n,value:ze.wrap(e,t)},{key:e,value:ze.wrap(n,t)}])},createTristate:function(n,e,t,r){return ze.wrapAll([{key:n,value:ze.wrapAll([{key:e,value:r},{key:t,value:r}])},{key:e,value:ze.wrapAll([{key:n,value:r},{key:t,value:r}])},{key:t,value:ze.wrapAll([{key:n,value:r},{key:e,value:r}])}])}}}),Pl=Po.resolve("scrollable"),Ll={register:function(n){zr.add(n,Pl)},deregister:function(n){zr.remove(n,Pl)},scrollable:r.constant(Pl)},Wl=function(n){return ze.readOptFrom(n,"format").getOr(n.title)},Ul=function(n,e,t,r,o){return{data:{value:n,text:e},type:"item",dom:{tag:"div",classes:o?[Po.resolve("styles-item-is-menu")]:[]},toggling:{toggleOnExecute:!1,toggleClass:Po.resolve("format-matches"),selected:t},itemBehaviours:Dr.derive(o?[]:[No(n,function(n,e){(e?Ho.on:Ho.off)(n)})]),components:[{dom:{tag:"div",attributes:{style:r},innerHtml:e}}]}},zl=function(n,e,t,r){return{value:n,dom:{tag:"div"},components:[vc.sketch({dom:{tag:"div",classes:[Po.resolve("styles-collapser")]},components:r?[{dom:{tag:"span",classes:[Po.resolve("styles-collapse-icon")]}},al.text(n)]:[al.text(n)],action:function(n){if(r){var e=t().get(n);Al.collapseMenu(e)}}}),{dom:{tag:"div",classes:[Po.resolve("styles-menu-items-container")]},components:[wl.parts().items({})],behaviours:Dr.derive([Ps.config("adhoc-scrollable-menu",[or.runOnAttached(function(n,e){Ai.set(n.element(),"overflow-y","auto"),Ai.set(n.element(),"-webkit-overflow-scrolling","touch"),Ll.register(n.element())}),or.runOnDetached(function(n){Ai.remove(n.element(),"overflow-y"),Ai.remove(n.element(),"-webkit-overflow-scrolling"),Ll.deregister(n.element())})])])}],items:e,menuBehaviours:Dr.derive([jl.config({initialState:"after",routes:jl.createTristate("before","current","after",{transition:{property:"transform",transitionClass:"transitioning"}})})])}},Kl=function(n){var e,t,r,o,i,u=(e=n.formats,t=function(){return a},r=zl("Styles",[].concat(B.map(e.items,function(n){return Ul(Wl(n),n.title,n.isSelected(),n.getPreview(),ze.hasKey(e.expansions,Wl(n)))})),t,!1),o=an.map(e.menus,function(n,r){var o=B.map(n,function(n){return Ul(Wl(n),n.title,void 0!==n.isSelected&&n.isSelected(),void 0!==n.getPreview?n.getPreview():"",ze.hasKey(e.expansions,Wl(n)))});return zl(r,o,t,!0)}),i=nn.deepMerge(o,ze.wrap("styles",r)),{tmenu:Al.tieredData("styles",i,e.expansions)}),a=ds(Al.sketch({dom:{tag:"div",classes:[Po.resolve("styles-menu")]},components:[],fakeFocus:!0,stayInDom:!0,onExecute:function(e,t){var r=Gc.getValue(t);n.handle(t,r.value)},onEscape:function(){},onOpenMenu:function(n,e){var t=Yc(n.element());Xc(e.element(),t),jl.jumpTo(e,"current")},onOpenSubmenu:function(n,e,t){var r=Yc(n.element()),o=ei(e.element(),'[role="menu"]').getOrDie("hacky"),i=n.getSystem().getByDom(o).getOrDie();Xc(t.element(),r),jl.progressTo(i,"before"),jl.jumpTo(t,"after"),jl.progressTo(t,"current")},onCollapseMenu:function(n,e,t){var r=ei(e.element(),'[role="menu"]').getOrDie("hacky"),o=n.getSystem().getByDom(r).getOrDie();jl.progressTo(o,"after"),jl.progressTo(t,"current")},navigateOnHover:!1,openImmediately:!0,data:u.tmenu,markers:{backgroundMenu:Po.resolve("styles-background-menu"),menu:Po.resolve("styles-menu"),selectedMenu:Po.resolve("styles-selected-menu"),item:Po.resolve("styles-item"),selectedItem:Po.resolve("styles-selected-item")}}));return a.asSpec()},Gl=function(n){return ze.hasKey(n,"items")?function(n){var e=nn.deepMerge(ze.exclude(n,["items"]),{menu:!0}),t=$l(n.items);return{item:e,menus:nn.deepMerge(t.menus,ze.wrap(n.title,t.items)),expansions:nn.deepMerge(t.expansions,ze.wrap(n.title,n.title))}}(n):{item:n,menus:{},expansions:{}}},$l=function(n){return B.foldr(n,function(n,e){var t=Gl(e);return{menus:nn.deepMerge(n.menus,t.menus),items:[t.item].concat(n.items),expansions:nn.deepMerge(n.expansions,t.expansions)}},{menus:{},expansions:{},items:[]})},ql={expand:$l},_l=function(n,e){var t=function(e){return function(){return n.formatter.match(e)}},o=function(e){return function(){return n.formatter.getCssText(e)}},i=ze.readOptFrom(e,"style_formats").getOr(kf),u=function(e){return B.map(e,function(e){if(ze.hasKey(e,"items")){var i=u(e.items);return nn.deepMerge(function(n){return nn.deepMerge(n,{isSelected:r.constant(!1),getPreview:r.constant("")})}(e),{items:i})}return ze.hasKey(e,"format")?function(n){return nn.deepMerge(n,{isSelected:t(n.format),getPreview:o(n.format)})}(e):function(e){var r=ba(e.title),i=nn.deepMerge(e,{format:r,isSelected:t(r),getPreview:o(r)});return n.formatter.register(r,i),i}(e)})};return u(i)},Xl=function(n,e,t){var r=function(n,e){var t=function(e){return B.bind(e,function(e){return void 0!==e.items?t(e.items).length>0?[e]:[]:!ze.hasKey(e,"format")||n.formatter.canApply(e.format)?[e]:[]})},r=t(e);return ql.expand(r)}(n,e);return Kl({formats:r,handle:function(e,r){n.undoManager.transact(function(){Ho.isOn(e)?n.formatter.remove(r):n.formatter.apply(r)}),t()}})},Yl=["undo","bold","italic","link","image","bullist","styleselect"],Jl=function(n){var e=n.replace(/\|/g," ").trim();return e.length>0?e.split(/\s+/):[]},Ql=function(n){return B.bind(n,function(n){return Y.isArray(n)?Ql(n):Jl(n)})},Zl=function(n){var e=void 0!==n.toolbar?n.toolbar:Yl;return Y.isArray(e)?Ql(e):Jl(e)},nd=function(n,e){var t=function(n){return function(){return kc.forToolbarCommand(e,n)}},r=function(n){return function(){return kc.forToolbarStateCommand(e,n)}},o=function(n,t,r){return function(){return kc.forToolbarStateAction(e,n,t,r)}},i=t("undo"),u=t("redo"),a=r("bold"),c=r("italic"),s=r("underline"),f=t("removeformat"),l=o("unlink","link",function(){e.execCommand("unlink",null,!1)}),d=o("unordered-list","ul",function(){e.execCommand("InsertUnorderedList",null,!1)}),m=o("ordered-list","ol",function(){e.execCommand("InsertOrderedList",null,!1)}),p=_l(e,e.settings),g=function(){return Xl(e,p,function(){e.fire("scrollIntoView")})},v=function(n,t){return{isSupported:function(){return n.forall(function(n){return ze.hasKey(e.buttons,n)})},sketch:t}};return{undo:v(w.none(),i),redo:v(w.none(),u),bold:v(w.none(),a),italic:v(w.none(),c),underline:v(w.none(),s),removeformat:v(w.none(),f),link:v(w.none(),function(){return Tf(n,e)}),unlink:v(w.none(),l),image:v(w.none(),function(){return Es(e)}),bullist:v(w.some("bullist"),d),numlist:v(w.some("numlist"),m),fontsizeselect:v(w.none(),function(){return ls(n,e)}),forecolor:v(w.none(),function(){return es(n,e)}),styleselect:v(w.none(),function(){return kc.forToolbar("style-formats",function(t){e.fire("toReading"),n.dropup().appear(g,Ho.on,t)},Dr.derive([Ho.config({toggleClass:Po.resolve("toolbar-button-selected"),toggleOnExecute:!1,aria:{mode:"pressed"}}),Oo.config({channels:ze.wrapAll([jo(lo.orientationChanged(),Ho.off),jo(lo.dropupDismissed(),Ho.off)])})]))})}},ed=function(n,e){var t=Zl(n),r={};return B.bind(t,function(n){var t=!ze.hasKey(r,n)&&ze.hasKey(e,n)&&e[n].isSupported()?[e[n].sketch()]:[];return r[n]=!0,t})},td=function(n,e){return function(t){if(n(t)){var o=kn.fromDom(t.target),i=function(){t.stopPropagation()},u=function(){t.preventDefault()},a=r.compose(u,i),c=function(n,e,t,o,i,u,a){return{target:r.constant(n),x:r.constant(e),y:r.constant(t),stop:o,prevent:i,kill:u,raw:r.constant(a)}}(o,t.clientX,t.clientY,i,u,a,t);e(c)}}},rd=function(n,e,t,o,i){var u=td(t,o);return n.dom().addEventListener(e,u,i),{unbind:r.curry(od,n,e,u,i)}},od=function(n,e,t,r){n.dom().removeEventListener(e,t,r)},id=function(n,e,t,r){return rd(n,e,t,r,!1)},ud=function(n,e,t,r){return rd(n,e,t,r,!0)},ad=r.constant(!0),cd={bind:function(n,e,t){return id(n,e,ad,t)},capture:function(n,e,t){return ud(n,e,ad,t)}},sd=function(n){var e=n.matchMedia("(orientation: portrait)").matches;return{isPortrait:r.constant(e)}},fd=sd,ld=function(n,e){var t=kn.fromDom(n),r=null,o=cd.bind(t,"orientationchange",function(){clearInterval(r);var t=sd(n);e.onChange(t),i(function(){e.onReady(t)})}),i=function(e){clearInterval(r);var t=n.innerHeight,o=0;r=setInterval(function(){t!==n.innerHeight?(clearInterval(r),e(w.some(n.innerHeight))):o>20&&(clearInterval(r),e(w.none())),o++},50)};return{onAdjustment:i,destroy:function(){o.unbind()}}},dd=function(n){var e=$.detect().os.isiOS(),t=sd(n).isPortrait();return e&&!t?n.screen.height:n.screen.width},md=function(n){return void 0===n.raw().touches||1!==n.raw().touches.length?w.none():w.some(n.raw().touches[0])},pd=function(n){var e,t,i,u=_r(w.none()),a=(e=function(e){u.set(w.none()),n.triggerEvent(_.longpress(),e)},t=400,i=null,{cancel:function(){null!==i&&(clearTimeout(i),i=null)},schedule:function(){var n=arguments;i=setTimeout(function(){e.apply(null,n),i=null},t)}}),c=ze.wrapAll([{key:o.touchstart(),value:function(n){return md(n).each(function(e){a.cancel();var t={x:r.constant(e.clientX),y:r.constant(e.clientY),target:n.target};a.schedule(t),u.set(w.some(t))}),w.none()}},{key:o.touchmove(),value:function(n){return a.cancel(),md(n).each(function(n){u.get().each(function(e){(function(n,e){var t=Math.abs(n.clientX-e.x()),r=Math.abs(n.clientY-e.y());return t>5||r>5})(n,e)&&u.set(w.none())})}),w.none()}},{key:o.touchend(),value:function(e){return a.cancel(),u.get().filter(function(n){return Hn(n.target(),e.target())}).map(function(t){return n.triggerEvent(_.tap(),e)})}}]);return{fireIfReady:function(n,e){return ze.readOptFrom(c,e).bind(function(e){return e(n)})}}},gd=function(n){var e=pd({triggerEvent:function(e,t){n.onTapContent(t)}});return{fireTouchstart:function(n){e.fireIfReady(n,"touchstart")},onTouchend:function(){return cd.bind(n.body(),"touchend",function(n){e.fireIfReady(n,"touchend")})},onTouchmove:function(){return cd.bind(n.body(),"touchmove",function(n){e.fireIfReady(n,"touchmove")})}}},vd=$.detect().os.version.major>=6,hd=function(n,e,t){var o=gd(n),i=zn.owner(e),u=function(n){return!Hn(n.start(),n.finish())||n.soffset()!==n.foffset()},a=function(){var r=n.doc().dom().hasFocus()&&n.getSelection().exists(u);t.getByDom(e).each(!0===(r||io(i).filter(function(n){return"input"===te.name(n)}).exists(function(n){return n.dom().selectionStart!==n.dom().selectionEnd}))?Ho.on:Ho.off)},c=[cd.bind(n.body(),"touchstart",function(e){n.onTouchContent(),o.fireTouchstart(e)}),o.onTouchmove(),o.onTouchend(),cd.bind(e,"touchstart",function(e){n.onTouchToolstrip()}),n.onToReading(function(){oo(n.body())}),n.onToEditing(r.noop),n.onScrollToCursor(function(e){e.preventDefault(),n.getCursorBox().each(function(e){var t=n.win(),r=e.top()>t.innerHeight||e.bottom()>t.innerHeight?e.bottom()-t.innerHeight+50:0;0!==r&&t.scrollTo(t.pageXOffset,t.pageYOffset+r)})})].concat(!0===vd?[]:[cd.bind(kn.fromDom(n.win()),"blur",function(){t.getByDom(e).each(Ho.off)}),cd.bind(i,"select",a),cd.bind(n.doc(),"selectionchange",a)]);return{destroy:function(){B.each(c,function(n){n.unbind()})}}},yd=function(n,e){var t=parseInt(we.get(n,e),10);return isNaN(t)?0:t},bd=function(n,e){var t=function(e){return n(e)?w.from(e.dom().nodeValue):w.none()},r=$.detect().browser,o=r.isIE()&&10===r.version.major?function(n){try{return t(n)}catch(n){return w.none()}}:t;return{get:function(t){if(!n(t))throw new Error("Can only get "+e+" value of a "+e+" node");return o(t).getOr("")},getOption:o,set:function(t,r){if(!n(t))throw new Error("Can only set raw "+e+" value of a "+e+" node");t.dom().nodeValue=r}}}(te.isText,"text"),wd=function(n){return bd.getOption(n)},Sd=function(n){return"img"===te.name(n)?1:wd(n).fold(function(){return zn.children(n).length},function(n){return n.length})},xd=Sd,Od=De([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Td={before:Od.before,on:Od.on,after:Od.after,cata:function(n,e,t,r){return n.fold(e,t,r)},getStart:function(n){return n.fold(r.identity,r.identity,r.identity)}},kd=De([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Cd=yn.immutable("start","soffset","finish","foffset"),Ed={domRange:kd.domRange,relative:kd.relative,exact:kd.exact,exactFromRange:function(n){return kd.exact(n.start(),n.soffset(),n.finish(),n.foffset())},range:Cd,getWin:function(n){var e=function(n){return n.match({domRange:function(n){return kn.fromDom(n.startContainer)},relative:function(n,e){return Td.getStart(n)},exact:function(n,e,t,r){return n}})}(n);return zn.defaultView(e)}},Dd=function(n,e,t,r){var o=zn.owner(n).dom().createRange();return o.setStart(n.dom(),e),o.setEnd(t.dom(),r),o},Ad=function(n,e,t,r){var o=Dd(n,e,t,r),i=Hn(n,t)&&e===r;return o.collapsed&&!i},Md=function(n,e){n.selectNodeContents(e.dom())},Rd=function(n){n.deleteContents()},Fd=function(n){return{left:r.constant(n.left),top:r.constant(n.top),right:r.constant(n.right),bottom:r.constant(n.bottom),width:r.constant(n.width),height:r.constant(n.height)}},Bd={create:function(n){return n.document.createRange()},replaceWith:function(n,e){Rd(n),n.insertNode(e.dom())},selectNodeContents:function(n,e){var t=n.document.createRange();return Md(t,e),t},selectNodeContentsUsing:Md,relativeToNative:function(n,e,t){var r,o=n.document.createRange();return r=o,e.fold(function(n){r.setStartBefore(n.dom())},function(n,e){r.setStart(n.dom(),e)},function(n){r.setStartAfter(n.dom())}),function(n,e){e.fold(function(e){n.setEndBefore(e.dom())},function(e,t){n.setEnd(e.dom(),t)},function(e){n.setEndAfter(e.dom())})}(o,t),o},exactToNative:function(n,e,t,r,o){var i=n.document.createRange();return i.setStart(e.dom(),t),i.setEnd(r.dom(),o),i},deleteContents:Rd,cloneFragment:function(n){var e=n.cloneContents();return kn.fromDom(e)},getFirstRect:function(n){var e=n.getClientRects(),t=e.length>0?e[0]:n.getBoundingClientRect();return t.width>0||t.height>0?w.some(t).map(Fd):w.none()},getBounds:function(n){var e=n.getBoundingClientRect();return e.width>0||e.height>0?w.some(e).map(Fd):w.none()},isWithin:function(n,e){return e.compareBoundaryPoints(n.END_TO_START,n)<1&&e.compareBoundaryPoints(n.START_TO_END,n)>-1},toString:function(n){return n.toString()}},Id=De([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Hd=function(n,e,t){return e(kn.fromDom(t.startContainer),t.startOffset,kn.fromDom(t.endContainer),t.endOffset)},Nd=function(n,e){return function(n,e){var t=e.ltr();return t.collapsed?e.rtl().filter(function(n){return!1===n.collapsed}).map(function(n){return Id.rtl(kn.fromDom(n.endContainer),n.endOffset,kn.fromDom(n.startContainer),n.startOffset)}).getOrThunk(function(){return Hd(0,Id.ltr,t)}):Hd(0,Id.ltr,t)}(0,function(n,e){return e.match({domRange:function(n){return{ltr:r.constant(n),rtl:w.none}},relative:function(e,t){return{ltr:i(function(){return Bd.relativeToNative(n,e,t)}),rtl:i(function(){return w.some(Bd.relativeToNative(n,t,e))})}},exact:function(e,t,r,o){return{ltr:i(function(){return Bd.exactToNative(n,e,t,r,o)}),rtl:i(function(){return w.some(Bd.exactToNative(n,r,o,e,t))})}}})}(n,e))},Vd=(Id.ltr,Id.rtl,Nd),jd=function(n,e){return Nd(n,e).match({ltr:function(e,t,r,o){var i=n.document.createRange();return i.setStart(e.dom(),t),i.setEnd(r.dom(),o),i},rtl:function(e,t,r,o){var i=n.document.createRange();return i.setStart(r.dom(),o),i.setEnd(e.dom(),t),i}})},Pd=(document.caretPositionFromPoint||document.caretRangeFromPoint,function(n,e){var t=te.name(n);return"input"===t?Td.after(n):B.contains(["br","img"],t)?0===e?Td.before(n):Td.after(n):Td.on(n,e)}),Ld=function(n,e,t,r){var o=Pd(n,e),i=Pd(t,r);return Ed.relative(o,i)},Wd=Ld,Ud=function(n,e){w.from(n.getSelection()).each(function(n){n.removeAllRanges(),n.addRange(e)})},zd=function(n,e,t,r,o){var i=Bd.exactToNative(n,e,t,r,o);Ud(n,i)},Kd=function(n,e){return Vd(n,e).match({ltr:function(e,t,r,o){zd(n,e,t,r,o)},rtl:function(e,t,r,o){var i=n.getSelection();i.extend?(i.collapse(e.dom(),t),i.extend(r.dom(),o)):zd(n,r,o,e,t)}})},Gd=function(n){var e=kn.fromDom(n.anchorNode),t=kn.fromDom(n.focusNode);return Ad(e,n.anchorOffset,t,n.focusOffset)?w.some(Ed.range(kn.fromDom(n.anchorNode),n.anchorOffset,kn.fromDom(n.focusNode),n.focusOffset)):function(n){if(n.rangeCount>0){var e=n.getRangeAt(0),t=n.getRangeAt(n.rangeCount-1);return w.some(Ed.range(kn.fromDom(e.startContainer),e.startOffset,kn.fromDom(t.endContainer),t.endOffset))}return w.none()}(n)},$d=function(n){var e=n.getSelection();return e.rangeCount>0?Gd(e):w.none()},qd=function(n,e,t,r,o){var i=Wd(e,t,r,o);Kd(n,i)},_d=$d,Xd=function(n){return $d(n).map(function(n){return Ed.exact(n.start(),n.soffset(),n.finish(),n.foffset())})},Yd=function(n){n.getSelection().removeAllRanges()},Jd=function(n,e){var t=jd(n,e);return Bd.getFirstRect(t)},Qd=function(n){return{left:n.left,top:n.top,right:n.right,bottom:n.bottom,width:r.constant(2),height:n.height}},Zd=function(n){return{left:r.constant(n.left),top:r.constant(n.top),right:r.constant(n.right),bottom:r.constant(n.bottom),width:r.constant(n.width),height:r.constant(n.height)}},nm={getRectangles:function(n){var e=n.getSelection();return void 0!==e&&e.rangeCount>0?function(n){if(n.collapsed){var e=kn.fromDom(n.startContainer);return zn.parent(e).bind(function(t){var r=Ed.exact(e,n.startOffset,t,xd(t));return Jd(n.startContainer.ownerDocument.defaultView,r).map(Qd).map(B.pure)}).getOr([])}return B.map(n.getClientRects(),Zd)}(e.getRangeAt(0)):[]}},em=function(n){n.focus();var e=kn.fromDom(n.document.body);(io().exists(function(n){return B.contains(["input","textarea"],te.name(n))})?function(n){setTimeout(function(){n()},0)}:r.apply)(function(){io().each(oo),ro(e)})},tm="data-"+Po.resolve("last-outer-height"),rm=function(n,e){we.set(n,tm,e)},om=function(n){return{top:r.constant(n.top()),bottom:r.constant(n.top()+n.height())}},im=function(n,e){var t=function(n){return yd(n,tm)}(e),r=n.innerHeight;return t>r?w.some(t-r):w.none()},um=function(n,e){var t=kn.fromDom(e.document.body),r=cd.bind(kn.fromDom(n),"resize",function(){im(n,t).each(function(n){(function(n){var e=nm.getRectangles(n);return e.length>0?w.some(e[0]).map(om):w.none()})(e).each(function(t){var r=function(n,e,t){return e.top()>n.innerHeight||e.bottom()>n.innerHeight?Math.min(t,e.bottom()-n.innerHeight+50):0}(e,t,n);0!==r&&e.scrollTo(e.pageXOffset,e.pageYOffset+r)})}),rm(t,n.innerHeight)});return rm(t,n.innerHeight),{toEditing:function(){em(e)},destroy:function(){r.unbind()}}},am=function(n){return w.some(kn.fromDom(n.dom().contentWindow.document.body))},cm=function(n){return w.some(kn.fromDom(n.dom().contentWindow.document))},sm=function(n){return w.from(n.dom().contentWindow)},fm=function(n){return sm(n).bind(_d)},lm=function(n){return n.getFrame()},dm=function(n,e){return function(t){return t[n].getOrThunk(function(){var n=lm(t);return function(){return e(n)}})()}},mm=function(n,e,t,r){return n[t].getOrThunk(function(){return function(n){return cd.bind(e,r,n)}})},pm=function(n){return{left:r.constant(n.left),top:r.constant(n.top),right:r.constant(n.right),bottom:r.constant(n.bottom),width:r.constant(n.width),height:r.constant(n.height)}},gm={getBody:dm("getBody",am),getDoc:dm("getDoc",cm),getWin:dm("getWin",sm),getSelection:dm("getSelection",fm),getFrame:lm,getActiveApi:function(n){var e=lm(n);return am(e).bind(function(t){return cm(e).bind(function(o){return sm(e).map(function(i){var u=kn.fromDom(o.dom().documentElement),a=n.getCursorBox.getOrThunk(function(){return function(){return Xd(i).bind(function(n){return Jd(i,n).orThunk(function(){return function(n){return _d(n).filter(function(n){return Hn(n.start(),n.finish())&&n.soffset()===n.foffset()}).bind(function(n){var e=n.start().dom().getBoundingClientRect();return e.width>0||e.height>0?w.some(e).map(pm):w.none()})}(i)})})}}),c=n.setSelection.getOrThunk(function(){return function(n,e,t,r){qd(i,n,e,t,r)}}),s=n.clearSelection.getOrThunk(function(){return function(){Yd(i)}});return{body:r.constant(t),doc:r.constant(o),win:r.constant(i),html:r.constant(u),getSelection:r.curry(fm,e),setSelection:c,clearSelection:s,frame:r.constant(e),onKeyup:mm(n,o,"onKeyup","keyup"),onNodeChanged:mm(n,o,"onNodeChanged","selectionchange"),onDomChanged:n.onDomChanged,onScrollToCursor:n.onScrollToCursor,onScrollToElement:n.onScrollToElement,onToReading:n.onToReading,onToEditing:n.onToEditing,onToolbarScrollStart:n.onToolbarScrollStart,onTouchContent:n.onTouchContent,onTapContent:n.onTapContent,onTouchToolstrip:n.onTouchToolstrip,getCursorBox:a}})})})}},vm="data-ephox-mobile-fullscreen-style",hm="top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;",ym=$.detect().os.isAndroid(),bm=function(n,e){var t=function(n){return function(e){var t=we.get(e,"style"),r=void 0===t?"no-styles":t.trim();r!==n&&(we.set(e,vm,r),we.set(e,"style",n))}},r=Yo(n,"*"),o=B.bind(r,function(n){return Jo(n,"*")}),i=function(n){var e=Ai.get(n,"background-color");return void 0!==e&&""!==e?"background-color:"+e+"!important":"background-color:rgb(255,255,255)!important;"}(e);B.each(o,t("display:none!important;")),B.each(r,t("position:absolute!important;"+hm+i)),t((!0===ym?"":"position:absolute!important;")+hm+i)(n)},wm=function(){var n=Xo("["+vm+"]");B.each(n,function(n){var e=we.get(n,vm);"no-styles"!==e?we.set(n,"style",e):we.remove(n,"style"),we.remove(n,vm)})},Sm=function(){var n=ni("head").getOrDie(),e=ni('meta[name="viewport"]').getOrThunk(function(){var e=kn.fromTag("meta");return we.set(e,"name","viewport"),$n.append(n,e),e}),t=we.get(e,"content");return{maximize:function(){we.set(e,"content","width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0")},restore:function(){void 0!==t&&null!==t&&t.length>0?we.set(e,"content",t):we.set(e,"content","user-scalable=yes")}}},xm=function(n,e){var t=Sm(),r=yf.api(),o=yf.api();return{enter:function(){e.hide(),zr.add(n.container,Po.resolve("fullscreen-maximized")),zr.add(n.container,Po.resolve("android-maximized")),t.maximize(),zr.add(n.body,Po.resolve("android-scroll-reload")),r.set(um(n.win,gm.getWin(n.editor).getOrDie("no"))),gm.getActiveApi(n.editor).each(function(e){bm(n.container,e.body()),o.set(hd(e,n.toolstrip,n.alloy))})},exit:function(){t.restore(),e.show(),zr.remove(n.container,Po.resolve("fullscreen-maximized")),zr.remove(n.container,Po.resolve("android-maximized")),wm(),zr.remove(n.body,Po.resolve("android-scroll-reload")),o.clear(),r.clear()}}},Om=function(n,e){var t=null;return{cancel:function(){null!==t&&(clearTimeout(t),t=null)},throttle:function(){var r=arguments;null===t&&(t=setTimeout(function(){n.apply(null,r),t=null,r=null},e))}}},Tm=function(n,e){var t=null;return{cancel:function(){null!==t&&(clearTimeout(t),t=null)},throttle:function(){var r=arguments;null!==t&&clearTimeout(t),t=setTimeout(function(){n.apply(null,r),t=null,r=null},e)}}},km=function(n,e){var t=ds(zs.sketch({dom:xc.dom('<div aria-hidden="true" class="${prefix}-mask-tap-icon"></div>'),containerBehaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("mask-tap-icon-selected"),toggleOnExecute:!1})])})),r=Om(n,200);return zs.sketch({dom:xc.dom('<div class="${prefix}-disabled-mask"></div>'),components:[zs.sketch({dom:xc.dom('<div class="${prefix}-content-container"></div>'),components:[vc.sketch({dom:xc.dom('<div class="${prefix}-content-tap-section"></div>'),components:[t.asSpec()],action:function(n){r.throttle()},buttonBehaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("mask-tap-icon-selected")})])})]})]})},Cm=Yt.objOf([Et("editor",[kt("getFrame"),Mt("getBody"),Mt("getDoc"),Mt("getWin"),Mt("getSelection"),Mt("setSelection"),Mt("clearSelection"),Mt("cursorSaver"),Mt("onKeyup"),Mt("onNodeChanged"),Mt("getCursorBox"),kt("onDomChanged"),It("onTouchContent",r.noop),It("onTapContent",r.noop),It("onTouchToolstrip",r.noop),It("onScrollToCursor",r.constant({unbind:r.noop})),It("onScrollToElement",r.constant({unbind:r.noop})),It("onToEditing",r.constant({unbind:r.noop})),It("onToReading",r.constant({unbind:r.noop})),It("onToolbarScrollStart",r.identity)]),kt("socket"),kt("toolstrip"),kt("dropup"),kt("toolbar"),kt("container"),kt("alloy"),jt("win",function(n){return zn.owner(n.socket).dom().defaultView}),jt("body",function(n){return kn.fromDom(n.socket.dom().ownerDocument.body)}),It("translate",r.identity),It("setReadOnly",r.noop)]),Em={produce:function(n){var e=Yt.asRawOrDie("Getting AndroidWebapp schema",Cm,n);Ai.set(e.toolstrip,"width","100%");var t=al.build(km(function(){e.setReadOnly(!0),i.enter()},e.translate));e.alloy.add(t);var o={show:function(){e.alloy.add(t)},hide:function(){e.alloy.remove(t)}};$n.append(e.container,t.element());var i=xm(e,o);return{setReadOnly:e.setReadOnly,refreshStructure:r.noop,enter:i.enter,exit:i.exit,destroy:r.noop}}},Dm=[It("shell",!0),va("toolbarBehaviours",[kl])],Am=[Ha.optional({name:"groups",overrides:function(n){return{behaviours:Dr.derive([kl.config({})])}}})],Mm={name:r.constant("Toolbar"),schema:r.constant(Dm),parts:r.constant(Am)},Rm=pc({name:"Toolbar",configFields:Mm.schema(),partFields:Mm.parts(),factory:function(n,e,t,r){var o=function(e){return n.shell()?w.some(e):nc(e,n,"groups")},i=n.shell()?{behaviours:[kl.config({})],components:[]}:{behaviours:[],components:e};return{uid:n.uid(),dom:n.dom(),components:i.components,behaviours:nn.deepMerge(Dr.derive(i.behaviours),ha(n.toolbarBehaviours())),apis:{setGroups:function(n,e){o(n).fold(function(){throw console.error("Toolbar was defined to not be a shell, but no groups container was specified in components"),new Error("Toolbar was defined to not be a shell, but no groups container was specified in components")},function(n){kl.set(n,e)})}},domModification:{attributes:{role:"group"}}}},apis:{setGroups:function(n,e,t){n.setGroups(e,t)}}}),Fm=[kt("items"),So.markers(["itemClass"]),va("tgroupBehaviours",[ga])],Bm=[Ha.group({name:"items",unit:"item",overrides:function(n){return{domModification:{classes:[n.markers().itemClass()]}}}})],Im={name:r.constant("ToolbarGroup"),schema:r.constant(Fm),parts:r.constant(Bm)},Hm=pc({name:"ToolbarGroup",configFields:Im.schema(),partFields:Im.parts(),factory:function(n,e,t,r){return nn.deepMerge({dom:{attributes:{role:"toolbar"}}},{uid:n.uid(),dom:n.dom(),components:e,behaviours:nn.deepMerge(Dr.derive([ga.config({mode:"flow",selector:"."+n.markers().itemClass()})]),ha(n.tgroupBehaviours())),"debug.sketcher":t["debug.sketcher"]})}}),Nm="data-"+Po.resolve("horizontal-scroll"),Vm=function(n){return n.dom().scrollTop>0||function(n){n.dom().scrollTop=1;var e=0!==n.dom().scrollTop;return n.dom().scrollTop=0,e}(n)},jm=function(n){return n.dom().scrollLeft>0||function(n){n.dom().scrollLeft=1;var e=0!==n.dom().scrollLeft;return n.dom().scrollLeft=0,e}(n)},Pm=function(n){return"true"===we.get(n,Nm)?jm:Vm},Lm={exclusive:function(n,e){return cd.bind(n,"touchmove",function(n){ri(n.target(),e).filter(Pm).fold(function(){n.raw().preventDefault()},r.noop)})},markAsHorizontal:function(n){we.set(n,Nm,"true")}};function Wm(){var n=function(n){var e=!0===n.scrollable?"${prefix}-toolbar-scrollable-group":"";return{dom:xc.dom('<div aria-label="'+n.label+'" class="${prefix}-toolbar-group '+e+'"></div>'),tgroupBehaviours:Dr.derive([Ps.config("adhoc-scrollable-toolbar",!0===n.scrollable?[or.runOnInit(function(n,e){Ai.set(n.element(),"overflow-x","auto"),Lm.markAsHorizontal(n.element()),Ll.register(n.element())})]:[])]),components:[zs.sketch({components:[Hm.parts().items({})]})],markers:{itemClass:Po.resolve("toolbar-group-item")},items:n.items}},e=al.build(Rm.sketch({dom:xc.dom('<div class="${prefix}-toolbar"></div>'),components:[Rm.parts().groups({})],toolbarBehaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("context-toolbar"),toggleOnExecute:!1,aria:{mode:"none"}}),ga.config({mode:"cyclic"})]),shell:!0})),t=al.build(zs.sketch({dom:{classes:[Po.resolve("toolstrip")]},components:[al.premade(e)],containerBehaviours:Dr.derive([Ho.config({toggleClass:Po.resolve("android-selection-context-toolbar"),toggleOnExecute:!1})])})),o=function(){Rm.setGroups(e,i.get()),Ho.off(e)},i=_r([]);return{wrapper:r.constant(t),toolbar:r.constant(e),createGroups:function(e){return B.map(e,r.compose(Hm.sketch,n))},setGroups:function(n){i.set(n),o()},setContextToolbar:function(n){Ho.on(e),Rm.setGroups(e,n)},restoreToolbar:function(){Ho.isOn(e)&&o()},refresh:function(){Rm.refresh(e)},focus:function(){ga.focusIn(e)}}}var Um=function(n,e){kl.append(n,al.premade(e))},zm=function(n,e){kl.remove(n,e)},Km={makeEditSwitch:function(n){return al.build(vc.sketch({dom:xc.dom('<div class="${prefix}-mask-edit-icon ${prefix}-icon"></div>'),action:function(){n.run(function(n){n.setReadOnly(!1)})}}))},makeSocket:function(){return al.build(zs.sketch({dom:xc.dom('<div class="${prefix}-editor-socket"></div>'),components:[],containerBehaviours:Dr.derive([kl.config({})])}))},updateMode:function(n,e,t,r){(!0===t?qr.toAlpha:qr.toOmega)(r),(t?Um:zm)(n,e)}},Gm=function(n,e){return e.getAnimationRoot().fold(function(){return n.element()},function(e){return e(n)})},$m=function(n){return n.dimension().property()},qm=function(n,e){return n.dimension().getDimension()(e)},_m=function(n,e){var t=Gm(n,e);Jf.remove(t,[e.shrinkingClass(),e.growingClass()])},Xm=function(n,e){zr.remove(n.element(),e.openClass()),zr.add(n.element(),e.closedClass()),Ai.set(n.element(),$m(e),"0px"),Ai.reflow(n.element())},Ym=function(n,e){zr.remove(n.element(),e.closedClass()),zr.add(n.element(),e.openClass()),Ai.remove(n.element(),$m(e))},Jm=function(n,e,t){t.setCollapsed(),Ai.set(n.element(),$m(e),qm(e,n.element())),Ai.reflow(n.element());var r=Gm(n,e);zr.add(r,e.shrinkingClass()),Xm(n,e),e.onStartShrink()(n)},Qm=function(n,e,t){var r=function(n,e){Ym(n,e);var t=qm(e,n.element());return Xm(n,e),t}(n,e),o=Gm(n,e);zr.add(o,e.growingClass()),Ym(n,e),Ai.set(n.element(),$m(e),r),t.setExpanded(),e.onStartGrow()(n)},Zm=function(n,e,t){var r=Gm(n,e);return!0===zr.has(r,e.growingClass())},np=function(n,e,t){var r=Gm(n,e);return!0===zr.has(r,e.shrinkingClass())},ep={grow:function(n,e,t){t.isExpanded()||Qm(n,e,t)},shrink:function(n,e,t){t.isExpanded()&&Jm(n,e,t)},immediateShrink:function(n,e,t){t.isExpanded()&&function(n,e,t){t.setCollapsed(),Ai.set(n.element(),$m(e),qm(e,n.element())),Ai.reflow(n.element()),_m(n,e),Xm(n,e),e.onStartShrink()(n),e.onShrunk()(n)}(n,e,t)},hasGrown:function(n,e,t){return t.isExpanded()},hasShrunk:function(n,e,t){return t.isCollapsed()},isGrowing:Zm,isShrinking:np,isTransitioning:function(n,e,t){return!0===Zm(n,e)||!0===np(n,e)},toggleGrow:function(n,e,t){(t.isExpanded()?Jm:Qm)(n,e,t)},disableTransitions:_m},tp={exhibit:function(n,e){return e.expanded()?mr.nu({classes:[e.openClass()],styles:{}}):mr.nu({classes:[e.closedClass()],styles:ze.wrap(e.dimension().property(),"0px")})},events:function(n,e){return or.derive([or.run(o.transitionend(),function(t,r){r.event().raw().propertyName===n.dimension().property()&&(ep.disableTransitions(t,n,e),e.isExpanded()&&Ai.remove(t.element(),n.dimension().property()),(e.isExpanded()?n.onGrown():n.onShrunk())(t,r))})])}},rp=[kt("closedClass"),kt("openClass"),kt("shrinkingClass"),kt("growingClass"),Mt("getAnimationRoot"),So.onHandler("onShrunk"),So.onHandler("onStartShrink"),So.onHandler("onGrown"),So.onHandler("onStartGrow"),It("expanded",!1),Ct("dimension",Yt.choose("property",{width:[So.output("property","width"),So.output("getDimension",function(n){return Yc(n)+"px"})],height:[So.output("property","height"),So.output("getDimension",function(n){return Fi(n)+"px"})]}))],op={init:function(n){var e=_r(n.expanded());return Tr({isExpanded:function(){return!0===e.get()},isCollapsed:function(){return!1===e.get()},setCollapsed:r.curry(e.set,!1),setExpanded:r.curry(e.set,!0),readState:function(){return"expanded: "+e.get()}})}},ip=Dr.create({fields:rp,name:"sliding",active:tp,apis:ep,state:op}),up={build:function(n,e){var t=al.build(zs.sketch({dom:{tag:"div",classes:Po.resolve("dropup")},components:[],containerBehaviours:Dr.derive([kl.config({}),ip.config({closedClass:Po.resolve("dropup-closed"),openClass:Po.resolve("dropup-open"),shrinkingClass:Po.resolve("dropup-shrinking"),growingClass:Po.resolve("dropup-growing"),dimension:{property:"height"},onShrunk:function(t){n(),e(),kl.set(t,[])},onGrown:function(t){n(),e()}}),Vo(function(n,e){o(r.noop)})])})),o=function(n){window.requestAnimationFrame(function(){n(),ip.shrink(t)})};return{appear:function(n,e,r){!0===ip.hasShrunk(t)&&!1===ip.isTransitioning(t)&&window.requestAnimationFrame(function(){e(r),kl.set(t,[n()]),ip.grow(t)})},disappear:o,component:r.constant(t),element:t.element}}},ap=$.detect().browser.isFirefox(),cp=Yt.objOfOnly([Dt("triggerEvent"),Dt("broadcastEvent"),It("stopBackspace",!0)]),sp=function(n,e){var t=Yt.asRawOrDie("Getting GUI events settings",cp,e),r=$.detect().deviceType.isTouch()?["touchstart","touchmove","touchend","gesturestart"]:["mousedown","mouseup","mouseover","mousemove","mouseout","click"],o=pd(t),i=B.map(r.concat(["selectstart","input","contextmenu","change","transitionend","dragstart","dragover","drop"]),function(e){return cd.bind(n,e,function(n){o.fireIfReady(n,e).each(function(e){e&&n.kill()}),t.triggerEvent(e,n)&&n.kill()})}),u=cd.bind(n,"keydown",function(n){t.triggerEvent("keydown",n)?n.kill():!0===t.stopBackspace&&function(n){return n.raw().which===Ko.BACKSPACE()[0]&&!B.contains(["input","textarea"],te.name(n.target()))}(n)&&n.prevent()}),a=function(n,e){return ap?cd.capture(n,"focus",e):cd.bind(n,"focusin",e)}(n,function(n){t.triggerEvent("focusin",n)&&n.kill()}),c=function(n,e){return ap?cd.capture(n,"blur",e):cd.bind(n,"focusout",e)}(n,function(n){t.triggerEvent("focusout",n)&&n.kill(),setTimeout(function(){t.triggerEvent(_.postBlur(),n)},0)}),s=zn.defaultView(n),f=cd.bind(s,"scroll",function(n){t.broadcastEvent(_.windowScroll(),n)&&n.kill()});return{unbind:function(){B.each(i,function(n){n.unbind()}),u.unbind(),a.unbind(),c.unbind(),f.unbind()}}},fp=function(n,e){var t=ze.readOptFrom(n,"target").map(function(n){return n()}).getOr(e);return _r(t)},lp=function(n,e){var t=_r(!1),o=_r(!1);return{stop:function(){t.set(!0)},cut:function(){o.set(!0)},isStopped:t.get,isCut:o.get,event:r.constant(n),setSource:e.set,getSource:e.get}},dp=lp,mp=function(n){var e=_r(!1);return{stop:function(){e.set(!0)},cut:r.noop,isStopped:e.get,isCut:r.constant(!1),event:r.constant(n),setTarget:r.die(new Error("Cannot set target of a broadcasted event")),getTarget:r.die(new Error("Cannot get target of a broadcasted event"))}},pp=De([{stopped:[]},{resume:["element"]},{complete:[]}]),gp=function(n,e,t,r,o,i){var u=n(e,r),a=dp(t,o);return u.fold(function(){return i.logEventNoHandlers(e,r),pp.complete()},function(n){var t=n.descHandler();return Wf.getHandler(t)(a),a.isStopped()?(i.logEventStopped(e,n.element(),t.purpose()),pp.stopped()):a.isCut()?(i.logEventCut(e,n.element(),t.purpose()),pp.complete()):zn.parent(n.element()).fold(function(){return i.logNoParent(e,n.element(),t.purpose()),pp.complete()},function(r){return i.logEventResponse(e,n.element(),t.purpose()),pp.resume(r)})})},vp=function(n,e,t,r,o,i){return gp(n,e,t,r,o,i).fold(function(){return!0},function(r){return vp(n,e,t,r,o,i)},function(){return!1})},hp=function(n,e,t,r,o){var i=fp(t,r);return vp(n,e,t,r,i,o)},yp={triggerHandler:function(n,e,t,r,o){var i=fp(t,r);return gp(n,e,t,r,i,o)},triggerUntilStopped:function(n,e,t,r){var o=t.target();return hp(n,e,t,o,r)},triggerOnUntilStopped:hp,broadcast:function(n,e,t){var r=mp(e);return B.each(n,function(n){var e=n.descHandler();Wf.getHandler(e)(r)}),r.isStopped()}},bp={closest:function(n,e,t){return Zr.closest(n,function(n){return e(n).isSome()},t).bind(e)}},wp=yn.immutable("element","descHandler"),Sp=function(n,e){return{id:r.constant(n),descHandler:r.constant(e)}};function xp(){var n={};return{registerId:function(e,t,r){an.each(r,function(r,o){var i=void 0!==n[o]?n[o]:{};i[t]=Wf.curryArgs(r,e),n[o]=i})},unregisterId:function(e){an.each(n,function(n,t){n.hasOwnProperty(e)&&delete n[e]})},filterByType:function(e){return ze.readOptFrom(n,e).map(function(n){return an.mapToArray(n,function(n,e){return Sp(e,n)})}).getOr([])},find:function(e,t,r){var o=ze.readOpt(t)(n);return bp.closest(r,function(n){return function(n,e){return ic.read(e).fold(function(n){return w.none()},function(t){var r=ze.readOpt(t);return n.bind(r).map(function(n){return wp(e,n)})})}(o,n)},e)}}}function Op(){var n=xp(),e={},t=function(t){ic.read(t.element()).each(function(t){e[t]=void 0,n.unregisterId(t)})};return{find:function(e,t,r){return n.find(e,t,r)},filter:function(e){return n.filterByType(e)},register:function(r){var o=function(n){var e=n.element();return ic.read(e).fold(function(){return ic.write("uid-",n.element())},function(n){return n})}(r);ze.hasKey(e,o)&&function(n,r){var o=e[r];if(o!==n)throw new Error('The tagId "'+r+'" is already used by: '+Te.element(o.element())+"\nCannot use it for: "+Te.element(n.element())+"\nThe conflicting element is"+(ie.inBody(o.element())?" ":" not ")+"already in the DOM");t(n)}(r,o);var i=[r];n.registerId(i,o,r.events()),e[o]=r},unregister:t,getById:function(n){return ze.readOpt(n)(e)}}}var Tp=function(n){var e=function(e){return zn.parent(n.element()).fold(function(){return!0},function(n){return Hn(e,n)})},t=Op(),o=function(n,r){return t.find(e,n,r)},i=sp(n.element(),{triggerEvent:function(n,e){return Ze(n,e.target(),function(t){return yp.triggerUntilStopped(o,n,e,t)})},broadcastEvent:function(n,e){var r=t.filter(n);return yp.broadcast(r,e)}}),u=Ff({debugInfo:r.constant("real"),triggerEvent:function(n,e,t){Ze(n,e,function(r){yp.triggerOnUntilStopped(o,n,t,e,r)})},triggerFocus:function(n,e){ic.read(n).fold(function(){ro(n)},function(t){Ze(_.focus(),n,function(t){yp.triggerHandler(o,_.focus(),{originator:r.constant(e),target:r.constant(n)},n,t)})})},triggerEscape:function(n,e){u.triggerEvent("keydown",n.element(),e.event())},getByUid:function(n){return p(n)},getByDom:function(n){return g(n)},build:al.build,addToGui:function(n){s(n)},removeFromGui:function(n){f(n)},addToWorld:function(n){a(n)},removeFromWorld:function(n){c(n)},broadcast:function(n){d(n)},broadcastOn:function(n,e){m(n,e)}}),a=function(n){n.connect(u),te.isText(n.element())||(t.register(n),B.each(n.components(),a),u.triggerEvent(_.systemInit(),n.element(),{target:r.constant(n.element())}))},c=function(n){te.isText(n.element())||(B.each(n.components(),c),t.unregister(n)),n.disconnect()},s=function(e){fe.attach(n,e)},f=function(n){fe.detach(n)},l=function(n){var e=t.filter(_.receive());B.each(e,function(e){var t=e.descHandler();Wf.getHandler(t)(n)})},d=function(n){l({universal:r.constant(!0),data:r.constant(n)})},m=function(n,e){l({universal:r.constant(!1),channels:r.constant(n),data:r.constant(e)})},p=function(n){return t.getById(n).fold(function(){return Ee.error(new Error('Could not find component with uid: "'+n+'" in system.'))},Ee.value)},g=function(n){return ic.read(n).bind(p)};return a(n),{root:r.constant(n),element:n.element,destroy:function(){i.unbind(),Xn.remove(n.element())},add:s,remove:f,getByUid:p,getByDom:g,addToWorld:a,removeFromWorld:c,broadcast:d,broadcastOn:m}},kp={create:function(){var n=al.build(zs.sketch({dom:{tag:"div"}}));return Tp(n)},takeover:Tp},Cp=r.constant(Po.resolve("readonly-mode")),Ep=r.constant(Po.resolve("edit-mode"));function Dp(n){var e=al.build(zs.sketch({dom:{classes:[Po.resolve("outer-container")].concat(n.classes)},containerBehaviours:Dr.derive([qr.config({alpha:Cp(),omega:Ep()})])}));return kp.takeover(e)}var Ap=function(n,e){var t=kn.fromTag("input");Ai.setAll(t,{opacity:"0",position:"absolute",top:"-1000px",left:"-1000px"}),$n.append(n,t),ro(t),e(t),Xn.remove(t)},Mp=function(n){var e=n.getSelection();if(e.rangeCount>0){var t=e.getRangeAt(0),r=n.document.createRange();r.setStart(t.startContainer,t.startOffset),r.setEnd(t.endContainer,t.endOffset),e.removeAllRanges(),e.addRange(r)}},Rp={resume:function(n,e){io().each(function(n){Hn(n,e)||oo(n)}),n.focus(),ro(kn.fromDom(n.document.body)),Mp(n)}},Fp={stubborn:function(n,e,t,r){var o=function(){Rp.resume(e,r)},i=cd.bind(t,"keydown",function(n){B.contains(["input","textarea"],te.name(n.target()))||o()});return{toReading:function(){Ap(n,oo)},toEditing:o,onToolbarTouch:function(){},destroy:function(){i.unbind()}}},timid:function(n,e,t,o){var i=function(){oo(o)};return{toReading:function(){i()},toEditing:function(){Rp.resume(e,o)},onToolbarTouch:function(){i()},destroy:r.noop}}},Bp=function(n,e,t,r,o){var i=function(){e.run(function(n){n.refreshSelection()})},u=function(n,t){var o=n-r.dom().scrollTop;e.run(function(n){n.scrollIntoView(o,o+t)})},a=function(){e.run(function(n){n.clearSelection()})},c=function(){n.getCursorBox().each(function(n){u(n.top(),n.height())}),e.run(function(n){n.syncHeight()})},s=gd(n),f=Tm(c,300),l=[n.onKeyup(function(){a(),f.throttle()}),n.onNodeChanged(i),n.onDomChanged(f.throttle),n.onDomChanged(i),n.onScrollToCursor(function(n){n.preventDefault(),f.throttle()}),n.onScrollToElement(function(n){n.element(),u(e,r)}),n.onToEditing(function(){e.run(function(n){n.toEditing()})}),n.onToReading(function(){e.run(function(n){n.toReading()})}),cd.bind(n.doc(),"touchend",function(e){Hn(n.html(),e.target())||Hn(n.body(),e.target())}),cd.bind(t,"transitionend",function(n){var r;"height"===n.raw().propertyName&&(r=Fi(t),e.run(function(n){n.setViewportOffset(r)}),i(),c())}),cd.capture(t,"touchstart",function(t){var r;e.run(function(n){n.highlightSelection()}),r=t,e.run(function(n){n.onToolbarTouch(r)}),n.onTouchToolstrip()}),cd.bind(n.body(),"touchstart",function(e){a(),n.onTouchContent(),s.fireTouchstart(e)}),s.onTouchmove(),s.onTouchend(),cd.bind(n.body(),"click",function(n){n.kill()}),cd.bind(t,"touchmove",function(){n.onToolbarScrollStart()})];return{destroy:function(){B.each(l,function(n){n.unbind()})}}},Ip=function(n){var e=w.none(),t=[],r=function(n){o()?u(n):t.push(n)},o=function(){return e.isSome()},i=function(n){B.each(n,u)},u=function(n){e.each(function(e){setTimeout(function(){n(e)},0)})};return n(function(n){e=w.some(n),i(t),t=[]}),{get:r,map:function(n){return Ip(function(e){r(function(t){e(n(t))})})},isReady:o}},Hp={nu:Ip,pure:function(n){return Ip(function(e){e(n)})}},Np=function(n){return function(){var e=Array.prototype.slice.call(arguments),t=this;setTimeout(function(){n.apply(t,e)},0)}},Vp=function(n){var e=function(e){n(Np(e))};return{map:function(n){return Vp(function(t){e(function(e){var r=n(e);t(r)})})},bind:function(n){return Vp(function(t){e(function(e){n(e).get(t)})})},anonBind:function(n){return Vp(function(t){e(function(e){n.get(t)})})},toLazy:function(){return Hp.nu(e)},get:e}},jp={nu:Vp,pure:function(n){return Vp(function(e){e(n)})}},Pp=function(n,e,t){return Math.abs(n-e)<=t?w.none():n<e?w.some(n+t):w.some(n-t)},Lp=function(){var n=null;return{animate:function(e,t,r,o,i,u){var a=!1,c=function(n){a=!0,i(n)};clearInterval(n);var s=function(e){clearInterval(n),c(e)};n=setInterval(function(){var i=e();Pp(i,t,r).fold(function(){clearInterval(n),c(t)},function(r){if(o(r,s),!a){var u=e();(u!==r||Math.abs(u-t)>Math.abs(i-t))&&(clearInterval(n),c(t))}})},u)}}},Wp=function(n,e){return Ge([{width:320,height:480,keyboard:{portrait:300,landscape:240}},{width:320,height:568,keyboard:{portrait:300,landscape:240}},{width:375,height:667,keyboard:{portrait:305,landscape:240}},{width:414,height:736,keyboard:{portrait:320,landscape:240}},{width:768,height:1024,keyboard:{portrait:320,landscape:400}},{width:1024,height:1366,keyboard:{portrait:380,landscape:460}}],function(t){return n<=t.width&&e<=t.height?w.some(t.keyboard):w.none()}).getOr({portrait:e/5,landscape:n/4})},Up=function(n){var e=fd(n).isPortrait(),t=function(n){return Wp(n.screen.width,n.screen.height)}(n),r=e?t.portrait:t.landscape;return(e?n.screen.height:n.screen.width)-n.innerHeight>r?0:r},zp=function(n,e){var t=zn.owner(n).dom().defaultView;return Fi(n)+Fi(e)-Up(t)},Kp=zp,Gp=function(n,e,t){var r=zp(e,t),o=Fi(e)+Fi(t)-r;Ai.set(n,"padding-bottom",o+"px")},$p=De([{fixed:["element","property","offsetY"]},{scroller:["element","offsetY"]}]),qp="data-"+Po.resolve("position-y-fixed"),_p="data-"+Po.resolve("y-property"),Xp="data-"+Po.resolve("scrolling"),Yp="data-"+Po.resolve("last-window-height"),Jp=function(n){return yd(n,qp)},Qp=function(n,e){var t=function(n){return we.get(n,_p)}(n);return $p.fixed(n,t,e)},Zp=function(n,e){return $p.scroller(n,e)},ng=function(n){var e=Jp(n);return("true"===we.get(n,Xp)?Zp:Qp)(n,e)},eg=function(n,e,t){var r=zn.owner(n).dom().defaultView.innerHeight;return we.set(n,Yp,r+"px"),r-e-t},tg=function(n){var e=Qo(n,"["+qp+"]");return B.map(e,ng)},rg=function(n,e,t,o){var i=zn.owner(n).dom().defaultView,u=function(n){var e=we.get(n,"style");return Ai.setAll(n,{position:"absolute",top:"0px"}),we.set(n,qp,"0px"),we.set(n,_p,"top"),{restore:function(){we.set(n,"style",e||""),we.remove(n,qp),we.remove(n,_p)}}}(t),a=Fi(t),c=Fi(o),s=eg(n,a,c),f=function(n,e,t){var r=we.get(t,"style");return Ll.register(t),Ai.setAll(t,{position:"absolute",height:e+"px",width:"100%",top:n+"px"}),we.set(t,qp,n+"px"),we.set(t,Xp,"true"),we.set(t,_p,"top"),{restore:function(){Ll.deregister(t),we.set(t,"style",r||""),we.remove(t,qp),we.remove(t,Xp),we.remove(t,_p)}}}(a,s,n),l=function(n,e,t){var r=we.get(n,"style");return Ai.setAll(n,{position:"absolute",bottom:"0px"}),we.set(n,qp,"0px"),we.set(n,_p,"bottom"),{restore:function(){we.set(n,"style",r||""),we.remove(n,qp),we.remove(n,_p)}}}(o),d=!0,m=function(){return i.innerHeight>yd(n,Yp)},p=function(){if(d){var r=Fi(t),i=Fi(o),u=eg(n,r,i);we.set(n,qp,r+"px"),Ai.set(n,"height",u+"px"),Ai.set(o,"bottom",-(r+u+i)+"px"),Gp(e,n,o)}};return Gp(e,n,o),{setViewportOffset:function(e){we.set(n,qp,e+"px"),p()},isExpanding:m,isShrinking:r.not(m),refresh:p,restore:function(){d=!1,u.restore(),f.restore(),l.restore()}}},og=Jp,ig=Lp(),ug="data-"+Po.resolve("last-scroll-top"),ag=function(n){var e=Ai.getRaw(n,"top").getOr(0);return parseInt(e,10)},cg=function(n){return parseInt(n.dom().scrollTop,10)},sg=function(n,e){var t=e+og(n)+"px";Ai.set(n,"top",t)},fg=function(n,e,t){return jp.nu(function(o){var i=r.curry(cg,n);ig.animate(i,e,15,function(e){n.dom().scrollTop=e,Ai.set(n,"top",ag(n)+15+"px")},function(){n.dom().scrollTop=e,Ai.set(n,"top",t+"px"),o(e)},10)})},lg=function(n,e){return jp.nu(function(t){var o=r.curry(cg,n);we.set(n,ug,o());var i=Math.abs(e-o()),u=Math.ceil(i/10);ig.animate(o,e,u,function(e,t){yd(n,ug)!==n.dom().scrollTop?t(n.dom().scrollTop):(n.dom().scrollTop=e,we.set(n,ug,e))},function(){n.dom().scrollTop=e,we.set(n,ug,e),t(e)},10)})},dg=function(n,e){return jp.nu(function(t){var o=r.curry(ag,n),i=function(e){Ai.set(n,"top",e+"px")},u=Math.abs(e-o()),a=Math.ceil(u/10);ig.animate(o,e,a,i,function(){i(e),t(e)},10)})},mg=function(n,e,t){var r=zn.owner(n).dom().defaultView;return jp.nu(function(o){sg(n,t),sg(e,t),r.scrollTo(0,t),o(t)})},pg=function(n,e,t,o,i){var u=Kp(e,t),a=r.curry(Mp,n);o>u||i>u?lg(e,e.dom().scrollTop-u+i).get(a):o<0&&lg(e,e.dom().scrollTop+o).get(a)},gg=function(n,e){return e(function(e){var t=[],r=0;0===n.length?e([]):B.each(n,function(o,i){o.get(function(o){return function(i){t[o]=i,++r>=n.length&&e(t)}}(i))})})},vg=function(n){return gg(n,jp.nu)},hg=vg,yg=function(n,e){return n.fold(function(n,t,r){return function(n,e,t,r){var o=t+r;return Ai.set(n,e,o+"px"),jp.pure(r)}(n,t,e,r)},function(n,t){return function(n,e,t){var r=e+t,o=Ai.getRaw(n,"top").getOr(t),i=r-parseInt(o,10),u=n.dom().scrollTop+i;return fg(n,u,r)}(n,e,t)})},bg=function(n,e){var t=tg(n),r=B.map(t,function(n){return yg(n,e)});return hg(r)},wg=function(n,e,t,o,i,u){var a,c,s=(a=function(t){return mg(n,e,t)},c=_r(Hp.pure({})),{start:function(n){var e=Hp.nu(function(e){return a(n).get(e)});c.set(e)},idle:function(n){c.get().get(function(){n()})}}),f=Tm(function(){s.idle(function(){bg(t,o.pageYOffset).get(function(){var n;(n=nm.getRectangles(u),w.from(n[0]).bind(function(n){var t=n.top()-e.dom().scrollTop;return t>o.innerHeight+5||t<-5?w.some({top:r.constant(t),bottom:r.constant(t+n.height())}):w.none()})).each(function(n){e.dom().scrollTop=e.dom().scrollTop+n.top()}),s.start(0),i.refresh()})})},1e3),l=cd.bind(kn.fromDom(o),"scroll",function(){o.pageYOffset<0||f.throttle()});return bg(t,o.pageYOffset).get(r.identity),{unbind:l.unbind}},Sg=function(n){var e=n.cWin(),t=n.ceBody(),o=n.socket(),i=n.toolstrip(),u=n.toolbar(),a=n.contentElement(),c=n.keyboardType(),s=n.outerWindow(),f=n.dropup(),l=rg(o,t,i,f),d=c(n.outerBody(),e,ie.body(),a,i,u),m=ld(s,{onChange:r.noop,onReady:l.refresh});m.onAdjustment(function(){l.refresh()});var p=cd.bind(kn.fromDom(s),"resize",function(){l.isExpanding()&&l.refresh()}),g=wg(i,o,n.outerBody(),s,l,e),v=function(n,e){var t=n.document,r=kn.fromTag("div");zr.add(r,Po.resolve("unfocused-selections")),$n.append(kn.fromDom(t.documentElement),r);var o=cd.bind(r,"touchstart",function(t){t.prevent(),Rp.resume(n,e),u()}),i=function(n){var e=kn.fromTag("span");return Jf.add(e,[Po.resolve("layer-editor"),Po.resolve("unfocused-selection")]),Ai.setAll(e,{left:n.left()+"px",top:n.top()+"px",width:n.width()+"px",height:n.height()+"px"}),e},u=function(){Xn.empty(r)};return{update:function(){u();var e=nm.getRectangles(n),t=B.map(e,i);qn.append(r,t)},isActive:function(){return zn.children(r).length>0},destroy:function(){o.unbind(),Xn.remove(r)},clear:u}}(e,a),h=function(){v.clear()};return{toEditing:function(){d.toEditing(),h()},toReading:function(){d.toReading()},onToolbarTouch:function(n){d.onToolbarTouch(n)},refreshSelection:function(){v.isActive()&&v.update()},clearSelection:h,highlightSelection:function(){v.update()},scrollIntoView:function(n,t){pg(e,o,f,n,t)},updateToolbarPadding:r.noop,setViewportOffset:function(n){l.setViewportOffset(n),dg(o,n).get(r.identity)},syncHeight:function(){Ai.set(a,"height",a.dom().contentWindow.document.body.scrollHeight+"px")},refreshStructure:l.refresh,destroy:function(){l.restore(),m.destroy(),g.unbind(),p.unbind(),d.destroy(),v.destroy(),Ap(ie.body(),oo)}}},xg=function(n,e){var t=Sm(),o=yf.value(),i=yf.value(),u=yf.api(),a=yf.api();return{enter:function(){e.hide();var c=kn.fromDom(document);gm.getActiveApi(n.editor).each(function(e){o.set({socketHeight:Ai.getRaw(n.socket,"height"),iframeHeight:Ai.getRaw(e.frame(),"height"),outerScroll:document.body.scrollTop}),i.set({exclusives:Lm.exclusive(c,"."+Ll.scrollable())}),zr.add(n.container,Po.resolve("fullscreen-maximized")),bm(n.container,e.body()),t.maximize(),Ai.set(n.socket,"overflow","scroll"),Ai.set(n.socket,"-webkit-overflow-scrolling","touch"),ro(e.body());var s=yn.immutableBag(["cWin","ceBody","socket","toolstrip","toolbar","dropup","contentElement","cursor","keyboardType","isScrolling","outerWindow","outerBody"],[]);u.set(Sg(s({cWin:e.win(),ceBody:e.body(),socket:n.socket,toolstrip:n.toolstrip,toolbar:n.toolbar,dropup:n.dropup.element(),contentElement:e.frame(),cursor:r.noop,outerBody:n.body,outerWindow:n.win,keyboardType:Fp.stubborn,isScrolling:function(){return i.get().exists(function(n){return n.socket.isScrolling()})}}))),u.run(function(n){n.syncHeight()}),a.set(Bp(e,u,n.toolstrip,n.socket,n.dropup))})},refreshStructure:function(){u.run(function(n){n.refreshStructure()})},exit:function(){t.restore(),a.clear(),u.clear(),e.show(),o.on(function(e){e.socketHeight.each(function(e){Ai.set(n.socket,"height",e)}),e.iframeHeight.each(function(e){Ai.set(n.editor.getFrame(),"height",e)}),document.body.scrollTop=e.scrollTop}),o.clear(),i.on(function(n){n.exclusives.unbind()}),i.clear(),zr.remove(n.container,Po.resolve("fullscreen-maximized")),wm(),Ll.deregister(n.toolbar),Ai.remove(n.socket,"overflow"),Ai.remove(n.socket,"-webkit-overflow-scrolling"),oo(n.editor.getFrame()),gm.getActiveApi(n.editor).each(function(n){n.clearSelection()})}}},Og={produce:function(n){var e=Yt.asRawOrDie("Getting IosWebapp schema",Cm,n);Ai.set(e.toolstrip,"width","100%"),Ai.set(e.container,"position","relative");var t=al.build(km(function(){e.setReadOnly(!0),o.enter()},e.translate));e.alloy.add(t);var o=xg(e,{show:function(){e.alloy.add(t)},hide:function(){e.alloy.remove(t)}});return{setReadOnly:e.setReadOnly,refreshStructure:o.refreshStructure,enter:o.enter,exit:o.exit,destroy:r.noop}}},Tg=tinymce.util.Tools.resolve("tinymce.EditorManager"),kg=function(n){var e=ze.readOptFrom(n.settings,"skin_url").fold(function(){return Tg.baseURL+"/skins/lightgray"},function(n){return n});return{content:e+"/content.mobile.min.css",ui:e+"/skin.mobile.min.css"}},Cg=function(n,e,t){n.system().broadcastOn([lo.formatChanged()],{command:e,state:t})},Eg=function(n,e){var t=an.keys(e.formatter.get());B.each(t,function(t){e.formatter.formatChanged(t,function(e){Cg(n,t,e)})}),B.each(["ul","ol"],function(t){e.selection.selectorChanged(t,function(e,r){Cg(n,t,e)})})},Dg=(r.constant(["x-small","small","medium","large","x-large"]),function(n){var e=function(){n._skinLoaded=!0,n.fire("SkinLoaded")};return function(){n.initialized?e():n.on("init",e)}}),Ag=r.constant("toReading"),Mg=r.constant("toEditing");co.add("mobile",function(n){return{getNotificationManagerImpl:function(){return{open:r.identity,close:r.noop,reposition:r.noop,getArgs:r.identity}},renderUI:function(e){var t=kg(n);!1===fo(n)?(n.contentCSS.push(t.content),ao.DOM.styleSheetLoader.load(t.ui,Dg(n))):Dg(n)();var o,i,u,a,c,s,f,l=function(){n.fire("scrollIntoView")},d=kn.fromTag("div"),m=$.detect().os.isAndroid()?(o=l,i=Dp({classes:[Po.resolve("android-container")]}),u=Wm(),a=yf.api(),c=Km.makeEditSwitch(a),s=Km.makeSocket(),f=up.build(r.noop,o),i.add(u.wrapper()),i.add(s),i.add(f.component()),{system:r.constant(i),element:i.element,init:function(n){a.set(Em.produce(n))},exit:function(){a.run(function(n){n.exit(),kl.remove(s,c)})},setToolbarGroups:function(n){var e=u.createGroups(n);u.setGroups(e)},setContextToolbar:function(n){var e=u.createGroups(n);u.setContextToolbar(e)},focusToolbar:function(){u.focus()},restoreToolbar:function(){u.restoreToolbar()},updateMode:function(n){Km.updateMode(s,c,n,i.root())},socket:r.constant(s),dropup:r.constant(f)}):function(n){var e=Dp({classes:[Po.resolve("ios-container")]}),t=Wm(),o=yf.api(),i=Km.makeEditSwitch(o),u=Km.makeSocket(),a=up.build(function(){o.run(function(n){n.refreshStructure()})},n);return e.add(t.wrapper()),e.add(u),e.add(a.component()),{system:r.constant(e),element:e.element,init:function(n){o.set(Og.produce(n))},exit:function(){o.run(function(n){kl.remove(u,i),n.exit()})},setToolbarGroups:function(n){var e=t.createGroups(n);t.setGroups(e)},setContextToolbar:function(n){var e=t.createGroups(n);t.setContextToolbar(e)},focusToolbar:function(){t.focus()},restoreToolbar:function(){t.restoreToolbar()},updateMode:function(n){Km.updateMode(u,i,n,e.root())},socket:r.constant(u),dropup:r.constant(a)}}(l),p=kn.fromDom(e.targetNode);$n.after(p,d),fe.attachSystem(d,m.system());var g=e.targetNode.ownerDocument.defaultView,v=ld(g,{onChange:function(){m.system().broadcastOn([lo.orientationChanged()],{width:dd(g)})},onReady:r.noop}),h=function(e,t,r){!1===r&&n.selection.collapse(),m.setToolbarGroups(r?e.get():t.get()),n.setMode(!0===r?"readonly":"design"),n.fire(!0===r?Ag():Mg()),m.updateMode(r)},y=function(e,t){return n.on(e,t),{unbind:function(){n.off(e)}}};return n.on("init",function(){m.init({editor:{getFrame:function(){return kn.fromDom(n.contentAreaContainer.querySelector("iframe"))},onDomChanged:function(){return{unbind:r.noop}},onToReading:function(n){return y(Ag(),n)},onToEditing:function(n){return y(Mg(),n)},onScrollToCursor:function(e){return n.on("scrollIntoView",function(n){e(n)}),{unbind:function(){n.off("scrollIntoView"),v.destroy()}}},onTouchToolstrip:function(){e()},onTouchContent:function(){var t,r=kn.fromDom(n.editorContainer.querySelector("."+Po.resolve("toolbar")));(t=r,uo(t).bind(function(n){return m.system().getByDom(n).toOption()})).each(dn),m.restoreToolbar(),e()},onTapContent:function(e){var t=e.target();"img"===te.name(t)?(n.selection.select(t.dom()),e.kill()):"a"===te.name(t)&&m.system().getByDom(kn.fromDom(n.editorContainer)).each(function(n){qr.isAlpha(n)&&so(t.dom())})}},container:kn.fromDom(n.editorContainer),socket:kn.fromDom(n.contentAreaContainer),toolstrip:kn.fromDom(n.editorContainer.querySelector("."+Po.resolve("toolstrip"))),toolbar:kn.fromDom(n.editorContainer.querySelector("."+Po.resolve("toolbar"))),dropup:m.dropup(),alloy:m.system(),translate:r.noop,setReadOnly:function(n){h(s,c,n)}});var e=function(){m.dropup().disappear(function(){m.system().broadcastOn([lo.dropupDismissed()],{})})};nt("remove this",m.system());var t={label:"The first group",scrollable:!1,items:[kc.forToolbar("back",function(){n.selection.collapse(),m.exit()},{})]},o={label:"Back to read only",scrollable:!1,items:[kc.forToolbar("readonly-back",function(){h(s,c,!0)},{})]},i=nd(m,n),u=ed(n.settings,i),a={label:"The extra group",scrollable:!1,items:[]},c=_r([o,{label:"the action group",scrollable:!0,items:u},a]),s=_r([t,{label:"The read only mode group",scrollable:!0,items:[]},a]);Eg(m,n)}),{iframeContainer:m.socket().element().dom(),editorContainer:m.element().dom()}}}})}();
+ element.textContent = data; // Or use DOMPurify to sanitize HTML output