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