From 29ab6aaa24a5432dadacb54dd95f15d3d280127d Mon Sep 17 00:00:00 2001 From: ivandevupp Date: Wed, 24 Mar 2021 19:51:51 +0200 Subject: [PATCH 01/12] upgrade tinymce to v5 --- js/components/wysiwyg.js | 39 +++++++++++++++++---------- vendor/tinymce/autolink.min.js | 9 +++++++ vendor/tinymce/autosave.min.js | 9 +++++++ vendor/tinymce/content.min.css | 7 +++++ vendor/tinymce/content.mobile.min.css | 7 +++++ vendor/tinymce/icons.min.js | 1 + vendor/tinymce/lists.min.js | 9 +++++++ vendor/tinymce/mentions.min.js | 1 + vendor/tinymce/theme.min.js | 9 +++++++ widget.json | 12 +++++++-- 10 files changed, 87 insertions(+), 16 deletions(-) create mode 100644 vendor/tinymce/autolink.min.js create mode 100644 vendor/tinymce/autosave.min.js create mode 100644 vendor/tinymce/content.min.css create mode 100644 vendor/tinymce/content.mobile.min.css create mode 100644 vendor/tinymce/icons.min.js create mode 100644 vendor/tinymce/lists.min.js create mode 100644 vendor/tinymce/mentions.min.js create mode 100644 vendor/tinymce/theme.min.js diff --git a/js/components/wysiwyg.js b/js/components/wysiwyg.js index 265ef246..5bdc2bd3 100644 --- a/js/components/wysiwyg.js +++ b/js/components/wysiwyg.js @@ -132,26 +132,37 @@ Fliplet.FormBuilder.field('wysiwyg', { var config = { target: this.$refs.textarea, - theme: 'modern', readonly: this.readonly, + formats: { + removeformat: [ + { + selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins', + remove: 'all', + split: true, + block_expand: true, + expand: false, + deep: true + }, + { selector: 'span', attributes: ['style', 'class'], remove: 'empty', split: true, expand: false, deep: true }, + { selector: '*', attributes: ['style', 'class'], split: false, expand: false, deep: true } + ] + }, mobile: { - theme: this.readonly - ? 'silver' - : 'mobile', + theme: 'mobile', plugins: [ 'autosave', 'lists', 'autolink' ], toolbar: [ 'bold', 'italic', 'underline', 'bullist', 'numlist', 'removeformat' ] }, plugins: [ - 'advlist autolink lists link directionality', - 'autoresize fullscreen code paste' - ].join(' '), + 'advlist autolink lists link image charmap print preview anchor ', + 'autoresize fullscreen searchreplace visualblocks code ', + 'table paste code wordcount' + ], toolbar: this.readonly ? false - : [ - 'bold italic underline', - 'alignleft aligncenter alignright alignjustify | bullist numlist outdent indent', - 'ltr rtl | link | removeformat code fullscreen' - ].join(' | '), + : 'bold italic underline | alignleft aligncenter ' + + 'alignright alignjustify | bullist numlist outdent indent | ' + + 'ltr rtl | link | code removeformat | formatselect | fullscreen', + toolbar_sticky: true, image_advtab: true, menubar: false, statusbar: false, @@ -163,8 +174,8 @@ Fliplet.FormBuilder.field('wysiwyg', { inline: false, resize: false, autoresize_bottom_margin: 0, - autoresize_max_height: lineHeight * this.rows, - autoresize_min_height: lineHeight * this.rows, + max_height: lineHeight * this.rows, + min_height: lineHeight * this.rows, autofocus: false, branding: false, setup: function(editor) { diff --git a/vendor/tinymce/autolink.min.js b/vendor/tinymce/autolink.min.js new file mode 100644 index 00000000..7e792e42 --- /dev/null +++ b/vendor/tinymce/autolink.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.7.0 (2021-02-10) + */ + !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.Env"),i=function(e,t){var n;return t<0&&(t=0),3!==e.nodeType||(n=e.data.length)i(t.getParam("autosave_retention"),"20m"))||(c(t,!1),!1)},c=function(t,e){var r=u(t);n.removeItem(r+"draft"),n.removeItem(r+"time"),!1!==e&&t.fire("RemoveDraft")},m=function(t){var e=u(t);!s(t)&&t.isDirty()&&(n.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),n.setItem(e+"time",(new Date).getTime().toString()),t.fire("StoreDraft"))},l=function(t){var e=u(t);f(t)&&(t.setContent(n.getItem(e+"draft"),{format:"raw"}),t.fire("RestoreDraft"))},v=function(t){var e=i(t.getParam("autosave_interval"),"30s");r.setEditorInterval(t,function(){m(t)},e)},d=function(t){t.undoManager.transact(function(){l(t),c(t)}),t.focus()},g=tinymce.util.Tools.resolve("tinymce.EditorManager"),y=function(r){return function(t){t.setDisabled(!f(r));var e=function(){return t.setDisabled(!f(r))};return r.on("StoreDraft RestoreDraft RemoveDraft",e),function(){return r.off("StoreDraft RestoreDraft RemoveDraft",e)}}};t.add("autosave",function(t){var e,r;return t.editorManager.on("BeforeUnload",function(t){var e;o.each(g.get(),function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e&&(t.preventDefault(),t.returnValue=e)}),v(e=t),e.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:function(){d(e)},onSetup:y(e)}),e.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:function(){d(e)},onSetup:y(e)}),t.on("init",function(){t.getParam("autosave_restore_when_empty",!1)&&t.dom.isEmpty(t.getBody())&&l(t)}),r=t,{hasDraft:function(){return f(r)},storeDraft:function(){return m(r)},restoreDraft:function(){return l(r)},removeDraft:function(t){return c(r,t)},isEmpty:function(t){return s(r,t)}}})}(); \ No newline at end of file diff --git a/vendor/tinymce/content.min.css b/vendor/tinymce/content.min.css new file mode 100644 index 00000000..1ad57fff --- /dev/null +++ b/vendor/tinymce/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ + body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} \ No newline at end of file diff --git a/vendor/tinymce/content.mobile.min.css b/vendor/tinymce/content.mobile.min.css new file mode 100644 index 00000000..7baffc39 --- /dev/null +++ b/vendor/tinymce/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ + .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} \ No newline at end of file diff --git a/vendor/tinymce/icons.min.js b/vendor/tinymce/icons.min.js new file mode 100644 index 00000000..086f297d --- /dev/null +++ b/vendor/tinymce/icons.min.js @@ -0,0 +1 @@ +tinymce.IconManager.add("default",{icons:{"accessibility-check":'',"action-next":'',"action-prev":'',"align-center":'',"align-justify":'',"align-left":'',"align-none":'',"align-right":'',"arrow-left":'',"arrow-right":'',bold:'',bookmark:'',"border-width":'',brightness:'',browse:'',cancel:'',"change-case":'',"character-count":'',"checklist-rtl":'',checklist:'',checkmark:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',close:'',"code-sample":'',"color-levels":'',"color-picker":'',"color-swatch-remove-color":'',"color-swatch":'',"comment-add":'',comment:'',contrast:'',copy:'',crop:'',"cut-column":'',"cut-row":'',cut:'',"document-properties":'',drag:'',"duplicate-column":'',"duplicate-row":'',duplicate:'',"edit-block":'',"edit-image":'',"embed-page":'',embed:'',emoji:'',"export":'',fill:'',"flip-horizontally":'',"flip-vertically":'',"format-painter":'',format:'',fullscreen:'',gallery:'',gamma:'',help:'',"highlight-bg-color":'',home:'',"horizontal-rule":'',"image-options":'',image:'',indent:'',info:'',"insert-character":'',"insert-time":'',invert:'',italic:'',"line-height":'',line:'',link:'',"list-bull-circle":'',"list-bull-default":'',"list-bull-square":'',"list-num-default-rtl":'',"list-num-default":'',"list-num-lower-alpha-rtl":'',"list-num-lower-alpha":'',"list-num-lower-greek-rtl":'',"list-num-lower-greek":'',"list-num-lower-roman-rtl":'',"list-num-lower-roman":'',"list-num-upper-alpha-rtl":'',"list-num-upper-alpha":'',"list-num-upper-roman-rtl":'',"list-num-upper-roman":'',lock:'',ltr:'',"more-drawer":'',"new-document":'',"new-tab":'',"non-breaking":'',notice:'',"ordered-list-rtl":'',"ordered-list":'',orientation:'',outdent:'',"page-break":'',paragraph:'',"paste-column-after":'',"paste-column-before":'',"paste-row-after":'',"paste-row-before":'',"paste-text":'',paste:'',"permanent-pen":'',plus:'',preferences:'',preview:'',print:'',quote:'',redo:'',reload:'',"remove-formatting":'',remove:'',"resize-handle":'',resize:'',"restore-draft":'',"rotate-left":'',"rotate-right":'',rtl:'',save:'',search:'',"select-all":'',selected:'',settings:'',sharpen:'',sourcecode:'',"spell-check":'',"strike-through":'',subscript:'',superscript:'',"table-cell-properties":'',"table-cell-select-all":'',"table-cell-select-inner":'',"table-delete-column":'',"table-delete-row":'',"table-delete-table":'',"table-insert-column-after":'',"table-insert-column-before":'',"table-insert-row-above":'',"table-insert-row-after":'',"table-left-header":'',"table-merge-cells":'',"table-row-properties":'',"table-split-cells":'',"table-top-header":'',table:'',template:'',"temporary-placeholder":'',"text-color":'',toc:'',translate:'',underline:'',undo:'',unlink:'',unlock:'',"unordered-list":'',unselected:'',upload:'',user:'',visualblocks:'',visualchars:'',warning:'',"zoom-in":'',"zoom-out":''}}); \ No newline at end of file diff --git a/vendor/tinymce/lists.min.js b/vendor/tinymce/lists.min.js new file mode 100644 index 00000000..7d8890d7 --- /dev/null +++ b/vendor/tinymce/lists.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.7.0 (2021-02-10) + */ + !function(){"use strict";var e,n,t,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(){},y=function(e){return function(){return e}},o=function(n){return function(e){return!n(e)}},i=y(!1),u=y(!0),s=function(){return c},c=(e=function(e){return e.isNone()},{fold:function(e,n){return e()},is:i,isSome:i,isNone:u,getOr:t=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:y(null),getOrUndefined:y(undefined),or:t,orThunk:n,map:s,each:a,bind:s,exists:i,forall:u,filter:s,equals:e,equals_:e,toArray:function(){return[]},toString:y("none()")}),f=function(t){var e=y(t),n=function(){return o},r=function(e){return e(t)},o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:u,isNone:i,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return f(e(t))},each:function(e){e(t)},bind:r,exists:r,forall:r,filter:function(e){return e(t)?o:c},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(i,function(e){return n(t,e)})}};return o},d={some:f,none:s,from:function(e){return null===e||e===undefined?c:f(e)}},l=function(r){return function(e){return t=typeof(n=e),(null===n?"null":"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t)===r;var n,t}},m=function(n){return function(e){return typeof e===n}},p=l("string"),g=l("array"),v=m("boolean"),h=m("function"),S=m("number"),b=Array.prototype.slice,C=Array.prototype.push,O=function(e,n){for(var t=e.length,r=new Array(t),o=0;o=e.childNodes.length?t.data.length:0}:t.previousSibling&&$e(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&$e(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},on=function(e){var n=e.cloneRange(),t=rn(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=rn(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},un=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),an=function(e,n){var t=n||e.selection.getStart(!0);return e.dom.getParent(t,"OL,UL,DL",fn(e,t))},sn=function(e){var n,t,r,o=an(e),i=e.selection.getSelectedBlocks();return r=i,(t=o)&&1===r.length&&r[0]===t?(n=o,_e.grep(n.querySelectorAll("ol,ul,dl"),function(e){return je(e)})):_e.grep(i,function(e){return je(e)&&o!==e})},cn=function(e){var t,n,r,o=e.selection.getSelectedBlocks();return _e.grep((t=e,n=o,r=_e.map(n,function(e){var n=t.dom.getParent(e,"li,dd,dt",fn(t,e));return n||e}),un.unique(r)),function(e){return Ve(e)})},fn=function(e,n){var t=e.dom.getParents(n,"TD,TH");return 0e.length?Cn:bn)(t,e,n)},[]),E(r).map(function(e){return e.list}).toArray()},Bn=function(a,e,s){var n,t=An(e,(n=O(cn(a),de.fromDom),pn(k(n,o(Nn)),k(x(n),o(Nn)),function(e,n){return{start:e,end:n}})));N(t,function(e){var n,t;n=e.entries,t=s,N(L(n,Tn),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}n.dirty=!0}(t,e),0});var r,o,i,u=(r=a,o=e.entries,w(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i\ufeff';this.editor.execCommand("mceInsertContent",!1,t),this.editor.focus(),this.editor.selection.select(this.editor.selection.dom.select("span#autocomplete-searchtext span")[0]),this.editor.selection.collapse(0)},bindEvents:function(){this.editor.on("keyup",this.editorKeyUpProxy=t.proxy(this.rteKeyUp,this)),this.editor.on("keydown",this.editorKeyDownProxy=t.proxy(this.rteKeyDown,this),!0),this.editor.on("click",this.editorClickProxy=t.proxy(this.rteClicked,this)),t("body").on("click",this.bodyClickProxy=t.proxy(this.rteLostFocus,this)),t(this.editor.getWin()).on("scroll",this.rteScroll=t.proxy(function(){this.cleanUp(!0)},this))},unbindEvents:function(){this.editor.off("keyup",this.editorKeyUpProxy),this.editor.off("keydown",this.editorKeyDownProxy),this.editor.off("click",this.editorClickProxy),t("body").off("click",this.bodyClickProxy),t(this.editor.getWin()).off("scroll",this.rteScroll)},rteKeyUp:function(t){switch(t.which||t.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 8:""===this.query?this.cleanUp(!0):this.lookup();break;case 9:case 13:var e=void 0!==this.$dropdown?this.$dropdown.find("li.active"):[];e.length?(this.select(e.data()),this.cleanUp(!1)):this.cleanUp(!0);break;case 27:this.cleanUp(!0);break;default:this.lookup()}},rteKeyDown:function(t){switch(t.which||t.keyCode){case 9:case 13:case 27:t.preventDefault();break;case 38:t.preventDefault(),void 0!==this.$dropdown&&this.highlightPreviousResult();break;case 40:t.preventDefault(),void 0!==this.$dropdown&&this.highlightNextResult()}t.stopPropagation()},rteClicked:function(e){var i=t(e.target);this.hasFocus&&"autocomplete-searchtext"!==i.parent().attr("id")&&this.cleanUp(!0)},rteLostFocus:function(){this.hasFocus&&this.cleanUp(!0)},lookup:function(){this.query=t.trim(t(this.editor.getBody()).find("#autocomplete-searchtext").text()).replace("\ufeff",""),void 0===this.$dropdown&&this.show(),clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(t.proxy(function(){var e=t.isFunction(this.options.source)?this.options.source(this.query,t.proxy(this.process,this),this.options.delimiter):this.options.source;e&&this.process(e)},this),this.options.delay)},matcher:function(t){return~t[this.options.queryBy].toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(t){for(var e,i=[],o=[],s=[];void 0!==(e=t.shift());)e[this.options.queryBy].toLowerCase().indexOf(this.query.toLowerCase())?~e[this.options.queryBy].indexOf(this.query)?o.push(e):s.push(e):i.push(e);return i.concat(o,s)},highlighter:function(t){return t.replace(new RegExp("("+this.query.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")+")","ig"),function(t,e){return""+e+""})},show:function(){var e=this.editor.inline?this.offsetInline():this.offset();this.$dropdown=t(this.renderDropdown()).css({top:e.top,left:e.left}),t("body").append(this.$dropdown),this.$dropdown.on("click",t.proxy(this.autoCompleteClick,this))},process:function(e){if(this.hasFocus){var i=this,o=[],s=t.grep(e,function(t){return i.matcher(t)});s=i.sorter(s),s=s.slice(0,this.options.items),t.each(s,function(e,n){var r=t(i.render(n,e));r.html(r.html().replace(r.text(),i.highlighter(r.text()))),t.each(s[e],function(t,e){r.attr("data-"+t,e)}),o.push(r[0].outerHTML)}),o.length?this.$dropdown.html(o.join("")).show():this.$dropdown.hide()}},renderDropdown:function(){return''},render:function(t,e){return'
  • '+t[this.options.queryBy]+"
  • "},autoCompleteClick:function(e){var i=t(e.target).closest("li").data();t.isEmptyObject(i)||(this.select(i),this.cleanUp(!1)),e.stopPropagation(),e.preventDefault()},highlightPreviousResult:function(){var t=this.$dropdown.find("li.active").index(),e=0===t?this.$dropdown.find("li").length-1:--t;this.$dropdown.find("li").removeClass("active").eq(e).addClass("active")},highlightNextResult:function(){var t=this.$dropdown.find("li.active").index(),e=t===this.$dropdown.find("li").length-1?0:++t;this.$dropdown.find("li").removeClass("active").eq(e).addClass("active")},select:function(t){this.editor.focus();var e=this.editor.dom.select("span#autocomplete")[0];this.editor.dom.remove(e),this.editor.execCommand("mceInsertContent",!1,this.insert(t))},insert:function(t){return""+t[this.options.insertFrom]+" "},cleanUp:function(e){if(this.unbindEvents(),this.hasFocus=!1,void 0!==this.$dropdown&&(this.$dropdown.remove(),delete this.$dropdown),e){var i=this.query,o=t(this.editor.dom.select("span#autocomplete"));if(!o.length)return;var s=t("

    "+this.options.delimiter+i+"

    ")[0].firstChild,n=t(this.editor.selection.getNode()).offset().top===o.offset().top+(o.outerHeight()-o.height())/2;this.editor.dom.replace(s,o[0]),n&&(this.editor.selection.select(s),this.editor.selection.collapse())}},offset:function(){var e=t(this.editor.getContainer()).offset(),i=t(this.editor.getContentAreaContainer()).position(),o=t(this.editor.dom.select("span#autocomplete")).position();return{top:e.top+i.top+o.top+t(this.editor.selection.getNode()).innerHeight()-t(this.editor.getDoc()).scrollTop()+5,left:e.left+i.left+o.left}},offsetInline:function(){var e=t(this.editor.dom.select("span#autocomplete")).offset();return{top:e.top+t(this.editor.selection.getNode()).innerHeight()+5,left:e.left}}},tinymce.create("tinymce.plugins.Mention",{init:function(i){function o(){var e=i.selection.getRng(!0).startOffset,o=(i.selection.getRng(!0).startContainer.data||"").substr(e>0?e-1:0,1);return!t.trim(o).length}var s,n=i.getParam("mentions");n.delimiter=void 0!==n.delimiter?t.isArray(n.delimiter)?n.delimiter:[n.delimiter]:["@"],i.on("keypress",function(r){var h=t.inArray(String.fromCharCode(r.which||r.keyCode),n.delimiter);h>-1&&o()&&(void 0===s||void 0!==s.hasFocus&&!s.hasFocus)&&(r.preventDefault(),s=new e(i,t.extend({},n,{delimiter:n.delimiter[h]})))})},getInfo:function(){return{longname:"mention",author:"Steven Devooght",version:tinymce.majorVersion+"."+tinymce.minorVersion}}}),tinymce.PluginManager.add("mention",tinymce.plugins.Mention)}); diff --git a/vendor/tinymce/theme.min.js b/vendor/tinymce/theme.min.js new file mode 100644 index 00000000..9a5ef07e --- /dev/null +++ b/vendor/tinymce/theme.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.7.0 (2021-02-10) + */ + !function(){"use strict";var x=function(){return(x=Object.assign||function(n){for(var e,t=1,r=arguments.length;t "+r.toString()},function(n,e){return"state("+n+")"})}).join("\n")+"}"}}},br=function(t,i){var u=function(n,e){return o=hr(t),function(t,r,n){var e=N(n,function(n,e){return o.extract(t.concat(["["+e+"]"]),r,n)});return fr(e)}(n,v,e);var o};return{extract:function(t,r,o){var n=Qe(o),e=u(t,n);return zt(e,function(n){var e=N(n,function(n){return dr.field(n,n,Qt(),i)});return yr(e).extract(t,r,o)})},toString:function(){return"setOf("+i.toString()+")"}}},xr=y(hr(Nt)),wr=dr.state,Sr=dr.field,Or=function(t,e,r,o,i){return it(o,i).fold(function(){return n=o,e=i,lr(t,function(){return'The chosen schema: "'+e+'" did not exist in branches: '+sr(n)});var n,e},function(n){return n.extract(t.concat(["branch: "+i]),e,r)})},Tr=function(o,i){return{extract:function(e,t,r){return it(r,o).fold(function(){return n=o,lr(e,function(){return'Choice schema did not contain choice key: "'+n+'"'});var n},function(n){return Or(e,t,r,i,n)})},toString:function(){return"chooseOn("+o+"). Possible values: "+Qe(i)}}},kr=hr(Nt),Er=function(e){return hr(function(n){return e(n).fold(Ht,Nt)})},Cr=function(e,n){return br(function(n){return At(e(n))},n)},Mr=function(n,e,t){return jt((r=n,o=v,i=t,u=e.extract([r],o,i),$t(u,function(n){return{input:i,errors:n}})));var r,o,i,u},Dr=function(n){return n.fold(function(n){throw new Error(Ir(n))},v)},_r=function(n,e,t){return Dr(Mr(n,e,t))},Ir=function(n){return"Errors: \n"+(e=n.errors,t=10 ")+")\n"+n.getErrorInfo()}).join("\n"))+"\n\nInput object: "+sr(n.input);var e,t},Fr=function(n,e){return Tr(n,et(e,yr))},Rr=y(kr),Vr=(Mt=I,Dt="function",hr(function(n){var e=typeof n;return Mt(n)?Nt(n):Ht("Expected type: "+Dt+" but got: "+e)})),Br=function(n){return Sr(n,n,Qt(),xr())},Ar=function(n,e){return Sr(n,n,Qt(),e)},jr=function(n,e){return Sr(n,n,Qt(),yr(e))},Nr=function(n){return Sr(n,n,Zt(),xr())},Pr=function(n,e){return Sr(n,n,Zt(),e)},Hr=function(n,e){return Pr(n,yr(e))},zr=function(n,e){return Pr(n,vr(e))},Lr=function(n,e){return Sr(n,n,Jt(e),xr())},Gr=function(n,e,t){return Sr(n,n,Jt(e),t)},$r=function(n,e){return wr(n,e)},Ur=[Br("alpha"),Br("omega")],Wr=function(n){return I(n)?n:l},Xr=function(n,e,t){var r=e(n),o=Wr(t);return r.orThunk(function(){return o(n)?T.none():function(n,e,t){for(var r=n.dom,o=Wr(t);r.parentNode;){r=r.parentNode;var i=de.fromDom(r),u=e(i);if(u.isSome())return u;if(o(i))break}return T.none()}(n,e,o)})},qr=function(n,e){return ve(n.element,e.event.target)},Yr=function(n){if(!ct(n,"can")&&!ct(n,"abort")&&!ct(n,"run"))throw new Error("EventHandler defined by: "+JSON.stringify(n,null,2)+" does not have can, abort, or run!");return _r("Extracting event.handler",vr([Lr("can",w),Lr("abort",l),Lr("run",O)]),n)},Kr=function(t){var e,r,o,i,n=(r=function(n){return n.can},function(){for(var t=[],n=0;n=r.length&&t.substr(o,o+r.length)===r?n.substring(0,n.length-"/*".length):n;var e,t,r,o})},so=function(n,e){var t=n.toString(),r=t.indexOf(")")+1,o=t.indexOf("("),i=t.substring(o+1,r-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:e,parameters:fo(i)}},n},lo=function(n){return{classes:n.classes!==undefined?n.classes:[],attributes:n.attributes!==undefined?n.attributes:{},styles:n.styles!==undefined?n.styles:{}}},mo=function(t,r,o){return co(function(n,e){o(n,t,r)})},go=function(o,i,u){var n,e,t,r,c,a;return n=function(t){for(var n=[],e=1;e"}),Rr()),Xa=$r("schema",function(){return[Nr("preprocess")]}),qa=Lr("defaults",y({})),Ya=Lr("overrides",y({})),Ka=yr([Ga,$a,Ua,Wa,qa,Ya]),Ja=yr([Ga,$a,Ua,qa,Ya]),Qa=yr([Ga,$a,Ua,Wa,qa,Ya]),Za=yr([Ga,Xa,Ua,Br("unit"),Wa,qa,Ya]),nf=function(n){var e=function(n){return n.name};return n.fold(e,e,e,e)},ef=function(t,r){return function(n){var e=_r("Converting part type",r,n);return t(e)}},tf=ef(La.required,Ka),rf=(ef(La.external,Ja),ef(La.optional,Qa)),of=ef(La.group,Za),uf=y("entirety"),cf=function(n,e,t,r){return qt(e.defaults(n,t,r),t,{uid:n.partUids[e.name]},e.overrides(n,t,r))},af=function(o,n){var e={};return P(n,function(n){n.fold(T.some,T.none,T.some,T.some).each(function(t){var r=ff(o,t.pname);e[t.name]=function(n){var e=_r("Part: "+t.name+" in "+o,yr(t.schema),n);return x(x({},r),{config:n,validated:e})}})}),e},ff=function(n,e){return{uiType:Pa(),owner:n,name:e}},sf=function(n,e,t){return r=e,i={},o={},P(t,function(n){n.fold(function(r){i[r.pname]=ja(!0,function(n,e,t){return r.factory.sketch(cf(n,r,e,t))})},function(n){var e=r.parts[n.name];o[n.name]=y(n.factory.sketch(cf(r,n,e[uf()]),e))},function(r){i[r.pname]=ja(!1,function(n,e,t){return r.factory.sketch(cf(n,r,e,t))})},function(o){i[o.pname]=Na(!0,function(e,n,t){var r=e[o.name];return N(r,function(n){return o.factory.sketch(qt(o.defaults(e,n,t),n,o.overrides(e,n)))})})})}),{internals:y(i),externals:y(o)};var r,i,o},lf=function(n,e,t){return Aa(T.some(n),e,e.components,t)},df=function(n,e,t){var r=e.partUids[t];return n.getSystem().getByUid(r).toOptional()},mf=function(n,e,t){return df(n,e,t).getOrDie("Could not find part: "+t)},gf=function(e,n){var t=N(n,nf);return ir(N(t,function(n){return{key:n,value:e+"-"+n}}))},pf=function(e){return Sr("partUids","partUids",er(function(n){return gf(n.uid,e)}),Rr())},hf=za("alloy-premade"),vf=function(n){return or(hf,n)},yf=function(r){return n=function(n){for(var e=[],t=1;t')},function(n){return Af(''+n+"")})},zf=function(n,e,t,r){return Rf.sketch({dom:Hf(n,r),action:e,buttonBehaviours:qt(bo([Vf.config({})]),t)})},Lf=rf({schema:[Br("dom")],name:"label"}),Gf=function(e){return rf({name:e+"-edge",overrides:function(n){return n.model.manager.edgeActions[e].fold(function(){return{}},function(r){return{events:Jr([no(_n(),function(n,e,t){return r(n,t)},[n]),no(Rn(),function(n,e,t){return r(n,t)},[n]),no(Vn(),function(n,e,t){t.mouseIsDown.get()&&r(n,t)},[n])])}})}})},$f=Gf("top-left"),Uf=Gf("top"),Wf=Gf("top-right"),Xf=Gf("right"),qf=Gf("bottom-right"),Yf=Gf("bottom"),Kf=Gf("bottom-left"),Jf=[Lf,Gf("left"),Xf,Uf,Yf,$f,Wf,Kf,qf,tf({name:"thumb",defaults:y({dom:{styles:{position:"absolute"}}}),overrides:function(n){return{events:Jr([ro(_n(),n,"spectrum"),ro(In(),n,"spectrum"),ro(Fn(),n,"spectrum"),ro(Rn(),n,"spectrum"),ro(Vn(),n,"spectrum"),ro(Bn(),n,"spectrum")])}}}),tf({schema:[$r("mouseIsDown",function(){return ko(!1)})],name:"spectrum",overrides:function(t){var r=t.model.manager,o=function(e,n){return r.getValueFromEvent(n).map(function(n){return r.setValueFrom(e,t,n)})};return{behaviours:bo([ka.config({mode:"special",onLeft:function(n){return r.onLeft(n,t)},onRight:function(n){return r.onRight(n,t)},onUp:function(n){return r.onUp(n,t)},onDown:function(n){return r.onDown(n,t)}}),_i.config({})]),events:Jr([Zr(_n(),o),Zr(In(),o),Zr(Rn(),o),Zr(Vn(),function(n,e){t.mouseIsDown.get()&&o(n,e)})])}}})],Qf=function(n,e,t){e.store.manager.onLoad(n,e,t)},Zf=function(n,e,t){e.store.manager.onUnload(n,e,t)},ns=/* */Object.freeze({__proto__:null,onLoad:Qf,onUnload:Zf,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)},getState:function(n,e,t){return t}}),es=/* */Object.freeze({__proto__:null,events:function(t,r){var n=t.resetOnDom?[io(function(n,e){Qf(n,t,r)}),uo(function(n,e){Zf(n,t,r)})]:[mo(t,r,Qf)];return Jr(n)}}),ts=function(){var n=ko(null);return yo({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()}}})},rs=function(){var i=ko({}),u=ko({});return yo({readState:function(){return{mode:"dataset",dataByValue:i.get(),dataByText:u.get()}},lookup:function(n){return it(i.get(),n).orThunk(function(){return it(u.get(),n)})},update:function(n){var e=i.get(),t=u.get(),r={},o={};P(n,function(e){r[e.value]=e,it(e,"meta").each(function(n){it(n,"text").each(function(n){o[n]=e})})}),i.set(x(x({},e),r)),u.set(x(x({},t),o))},clear:function(){i.set({}),u.set({})}})},os=/* */Object.freeze({__proto__:null,memory:ts,dataset:rs,manual:function(){return yo({readState:O})},init:function(n){return n.store.manager.state(n)}}),is=function(n,e,t,r){var o=e.store;t.update([r]),o.setValue(n,r),e.onSetValue(n,r)},us=[Nr("initialValue"),Br("getFallbackEntry"),Br("getDataKey"),Br("setValue"),ri("manager",{setValue:is,getValue:function(n,e,t){var r=e.store,o=r.getDataKey(n);return t.lookup(o).fold(function(){return r.getFallbackEntry(o)},function(n){return n})},onLoad:function(e,t,r){t.store.initialValue.each(function(n){is(e,t,r,n)})},onUnload:function(n,e,t){t.clear()},state:rs})],cs=[Br("getValue"),Lr("setValue",O),Nr("initialValue"),ri("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(e,t,n){t.store.initialValue.each(function(n){t.store.setValue(e,n)})},onUnload:O,state:vo.init})],as=[Nr("initialValue"),ri("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:ts})],fs=[Gr("store",{mode:"memory"},Fr("mode",{memory:as,manual:cs,dataset:us})),Zo("onSetValue"),Lr("resetOnDom",!1)],ss=wo({fields:fs,name:"representing",active:es,apis:ns,extra:{setValueFrom:function(n,e){var t=ss.getValue(e);ss.setValue(n,t)}},state:os}),ls=Hi("width",function(n){return n.dom.offsetWidth}),ds=function(n,e){return ls.set(n,e)},ms=function(n){return ls.get(n)},gs=function(t,r){return{left:t,top:r,translate:function(n,e){return gs(t+n,r+e)}}},ps=gs,hs=y("slider.change.value"),vs=function(n){var e=n.event.raw;return-1===e.type.indexOf("touch")?e.clientX!==undefined?T.some(e).map(function(n){return ps(n.clientX,n.clientY)}):T.none():e.touches!==undefined&&1===e.touches.length?T.some(e.touches[0]).map(function(n){return ps(n.clientX,n.clientY)}):T.none()},ys=function(n){return n.model.minX},bs=function(n){return n.model.minY},xs=function(n){return n.model.minX-1},ws=function(n){return n.model.minY-1},Ss=function(n){return n.model.maxX},Os=function(n){return n.model.maxY},Ts=function(n){return n.model.maxX+1},ks=function(n){return n.model.maxY+1},Es=function(n,e,t){return e(n)-t(n)},Cs=function(n){return Es(n,Ss,ys)},Ms=function(n){return Es(n,Os,bs)},Ds=function(n){return Cs(n)/2},_s=function(n){return Ms(n)/2},Is=function(n){return n.stepSize},Fs=function(n){return n.snapToGrid},Rs=function(n){return n.snapStart},Vs=function(n){return n.rounded},Bs=function(n,e){return n[e+"-edge"]!==undefined},As=function(n){return Bs(n,"left")},js=function(n){return Bs(n,"right")},Ns=function(n){return Bs(n,"top")},Ps=function(n){return Bs(n,"bottom")},Hs=function(n){return n.model.value.get()},zs=function(n){return{x:n}},Ls=function(n){return{y:n}},Gs=function(n,e){return{x:n,y:e}},$s=function(n,e){ce(n,hs(),{value:e})},Us=function(n,e,t,r){return n'),components:[Ll.parts["left-edge"](jf('
    ')),Ll.parts.spectrum({dom:Af('
    '),components:[jf('
    ')],behaviours:bo([bi.config({toggleClass:Ti("thumb-active")})])}),Ll.parts["right-edge"](jf('
    ')),Ll.parts.thumb({dom:Af('
    '),behaviours:bo([bi.config({toggleClass:Ti("thumb-active")})])})],onChange:function(n,e,t){var r=i(t.x());Ri(e.element,"background-color",r),o.onChange(n,e,r)},onDragStart:function(n,e){bi.on(e)},onDragEnd:function(n,e){bi.off(e)},onInit:function(n,e,t,r){var o=i(r.x());Ri(e.element,"background-color",o)},stepSize:10,model:{mode:"x",minX:0,maxX:360,getInitialValue:function(){return{x:o.getInitialValue()}}},sliderBehaviours:bo([wi(Ll.refresh)])}))];var o,i},Ul=["9px","10px","11px","12px","14px","16px","18px","20px","24px","32px","36px"],Wl=function(e,n){return(xe(n)?T.some(n):Ee(n).filter(xe)).map(function(n){return Wi(function(n,e){return e(n)},Yi,n,function(n){return ji(n,"font-size").isSome()},e).bind(function(n){return ji(n,"font-size")}).getOrThunk(function(){return Bi(n,"font-size")})}).getOr("")},Xl=function(n){var e=n.selection.getStart(),t=de.fromDom(e),r=de.fromDom(n.getBody()),o=Wl(function(n){return ve(r,n)},t);return G(Ul,function(n){return o===n}).getOr("medium")},ql=function(n){var e,t=Xl(n);return e=t,$(Ul,function(n){return n===e}).getOr(2)},Yl=function(r,n){var e;e=n,T.from(Ul[e]).each(function(n){var e,t;t=n,Xl(e=r)!==t&&e.execCommand("fontSize",!1,t)})},Kl=y(Ul),Jl=vr([Br("getInitialValue"),Br("onChange"),Br("category"),Br("sizes")]),Ql=function(n){var i=_r("SizeSlider",Jl,n);return Ll.sketch({dom:{tag:"div",classes:[Ti("slider-"+i.category+"-size-container"),Ti("slider"),Ti("slider-size-container")]},onChange:function(n,e,t){var r,o=t.x();0<=(r=o)&&r'),components:[jf('
    ')]}),Ll.parts.thumb({dom:Af('
    '),behaviours:bo([bi.config({toggleClass:Ti("thumb-active")})])})]})},Zl=Kl(),nd=function(n){return[jf(''),Ql({onChange:(e=n).onChange,sizes:Zl,category:"font",getInitialValue:e.getInitialValue}),jf('')];var e},ed=function(n){var e=n.uid!==undefined&&ct(n,"uid")?n.uid:kf("memento");return{get:function(n){return n.getSystem().getByUid(e).getOrDie()},getOpt:function(n){return n.getSystem().getByUid(e).toOptional()},asSpec:function(){return x(x({},n),{uid:e})}}},td=window.Promise?window.Promise:(Uu=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=[],Ku(n,qu(od,this),qu(id,this))},Wu=window,Xu=Uu.immediateFn||"function"==typeof Wu.setImmediate&&Wu.setImmediate||function(n){return setTimeout(n,1)},qu=function(t,r){return function(){for(var n=[],e=0;e'),action:function(n){var e=t.get(n);ss.setValue(e,"")}}));return{name:n,spec:Md.sketch({dom:Af('
    '),components:[t.asSpec(),r.asSpec()],containerBehaviours:bo([bi.config({toggleClass:Ti("input-container-empty")}),Cd.config({find:function(n){return T.some(t.get(n))}}),Td("input-clearing",[Zr(Pn(),function(n){var e=t.get(n);(0"},tm=function(o,n){return{uid:o.uid,dom:o.dom,components:n,behaviours:Ma(o.formBehaviours,[ss.config({store:{mode:"manual",getValue:function(n){var e,t,r=(e=o,t=n.getSystem(),et(e.partUids,function(n,e){return y(t.getByUid(n))}));return et(r,function(n,o){return n().bind(function(n){var e,t,r=Cd.getCurrent(n);return e=r,t=new Error("Cannot find a current component to extract the value from for form part '"+o+"': "+Ho(n.element)),e.fold(function(){return Ct.error(t)},Ct.value)}).map(ss.getValue)})},setValue:function(t,n){nt(n,function(e,n){df(t,o,n).each(function(n){Cd.getCurrent(n).each(function(n){ss.setValue(n,e)})})})}}})]),apis:{getField:function(n,e){return df(n,o,e).bind(Cd.getCurrent)}}}},rm=(yf(function(n,e,t){return n.getField(e,t)}),function(n){var i,e=(i=[],{field:function(n,e){return i.push(n),t="form",r=em(n),o=e,{uiType:Pa(),owner:t,name:r,config:o,validated:{}};var t,r,o},record:function(){return i}}),t=n(e),r=e.record(),o=N(r,function(n){return tf({name:n,pname:em(n)})});return Cf("form",nm,o,tm,t)}),om=function(){var e=ko(T.none()),t=function(){return e.get().each(function(n){return n.destroy()})};return{clear:function(){t(),e.set(T.none())},isSet:function(){return e.get().isSome()},set:function(n){t(),e.set(T.some(n))},run:function(n){return e.get().each(n)}}},im=function(){var e=ko(T.none());return{clear:function(){return e.set(T.none())},set:function(n){return e.set(T.some(n))},isSet:function(){return e.get().isSome()},on:function(n){return e.get().each(n)}}},um=function(n){var r="navigateEvent",e=yr([Br("fields"),Lr("maxFieldIndex",n.fields.length-1),Br("onExecute"),Br("getInitialValue"),$r("state",function(){return{dialogSwipeState:im(),currentScreen:ko(0)}})]),u=_r("SerialisedDialog",e,n),o=function(e,n,t){return Rf.sketch({dom:Af(''),action:function(n){ce(n,r,{direction:e})},buttonBehaviours:bo([Zd.config({disableClass:Ti("toolbar-navigation-disabled"),disabled:function(){return!t}})])})},i=function(n,o){var i=Ui(n.element,"."+Ti("serialised-dialog-screen"));Qi(n.element,"."+Ti("serialised-dialog-chain")).each(function(r){0<=u.state.currentScreen.get()+o&&u.state.currentScreen.get()+o'),components:[Md.sketch({dom:Af('
    '),components:N(u.fields,function(n,e){return e<=u.maxFieldIndex?Md.sketch({dom:Af('
    '),components:[o(-1,"previous",0'),behaviours:bo([Fu.config({highlightClass:Ti("dot-active"),itemClass:Ti("dot-item")})]),components:W(u.fields,function(n,e){return e<=u.maxFieldIndex?[jf('
    ')]:[]})});return{dom:Af('
    '),components:[a.asSpec(),f.asSpec()],behaviours:bo([ka.config({mode:"special",focusIn:function(n){var e=a.get(n);ka.focusIn(e)}}),Td("serializer-wrapper-events",[Zr(_n(),function(n,e){var t=e.event;u.state.dialogSwipeState.set({xValue:t.raw.touches[0].clientX,points:[]})}),Zr(In(),function(n,e){var t=e.event;u.state.dialogSwipeState.on(function(n){e.event.prevent(),u.state.dialogSwipeState.set(function(n,e){if(e===n.xValue)return n;var t=0 "):r[0].name;return or(o,{handler:e,purpose:t})})});return ur(e,{})},Sm="alloy.base.behaviour",Om=function(n){var e,t;return Mr("custom.definition",yr([Sr("dom","dom",Qt(),yr([Br("tag"),Lr("styles",{}),Lr("classes",[]),Lr("attributes",{}),Nr("value"),Nr("innerHtml")])),Br("components"),Br("uid"),Lr("events",{}),Lr("apis",{}),Sr("eventOrder","eventOrder",((e={})[Kn()]=["disabling",Sm,"toggling","typeaheadevents"],e[Wn()]=[Sm,"focusing","keying"],e[ne()]=[Sm,"disabling","toggling","representing"],e[Pn()]=[Sm,"representing","streaming","invalidating"],e[te()]=[Sm,"representing","item-events","tooltipping"],e[Rn()]=["focusing",Sm,"item-type-events"],e[_n()]=["focusing",Sm,"item-type-events"],e[An()]=["item-type-events","tooltipping"],e[Yn()]=["receiving","reflecting","tooltipping"],t=e,Kt.mergeWithThunk(y(t))),Rr()),Nr("domModification")]),n)},Tm=function(e,n){P(n,function(n){bt(e,n)})},km=function(e,n){P(n,function(n){wt(e,n)})},Em=function(n,e){return t=n,o=N(r=e,function(n){return Hr(n.name(),[Br("config"),Lr("state",vo)])}),i=Mr("component.behaviours",yr(o),t.behaviours).fold(function(n){throw new Error(Ir(n)+"\nComplete spec:\n"+JSON.stringify(t,null,2))},function(n){return n}),{list:r,data:et(i,function(n){var e=n.map(function(n){return{config:n.config,state:n.state.init(n.config)}});return function(){return e}})};var t,r,o,i},Cm=function(n){var e,t,r=(e=it(n,"behaviours").getOr({}),t=H(Qe(e),function(n){return e[n]!==undefined}),N(t,function(n){return e[n].me}));return Em(n,r)},Mm=function(n,e,t){var r,o,i,u=x(x({},(r=n).dom),{uid:r.uid,domChildren:N(r.components,function(n){return n.element})}),c=n.domModification.fold(function(){return lo({})},lo),a={"alloy.base.modification":c},f=0");r[t[0]]=or(t[1],n),r[t[1]]=or(t[0],n)}),r},createBistate:function(n,e,t){return ir([{key:n,value:or(e,t)},{key:e,value:or(n,t)}])},createTristate:function(n,e,t,r){return ir([{key:n,value:ir([{key:e,value:r},{key:t,value:r}])},{key:e,value:ir([{key:n,value:r},{key:t,value:r}])},{key:t,value:ir([{key:n,value:r},{key:e,value:r}])}])}}}),xg=Ti("scrollable"),wg=function(n){bt(n,xg)},Sg=function(n){wt(n,xg)},Og=xg,Tg=function(n){return it(n,"format").getOr(n.title)},kg=function(n,e,t,r,o){return{data:{value:n,text:e},type:"item",dom:{tag:"div",classes:o?[Ti("styles-item-is-menu")]:[]},toggling:{toggleOnExecute:!1,toggleClass:Ti("format-matches"),selected:t},itemBehaviours:bo(o?[]:[xi(n,function(n,e){(e?bi.on:bi.off)(n)})]),components:[{dom:{tag:"div",attributes:{style:r},innerHtml:e}}]}},Eg=function(n,e,t,r){return{value:n,dom:{tag:"div"},components:[Rf.sketch({dom:{tag:"div",classes:[Ti("styles-collapser")]},components:r?[{dom:{tag:"span",classes:[Ti("styles-collapse-icon")]}},Fm(n)]:[Fm(n)],action:function(n){var e;r&&(e=t().get(n),sg.collapseMenu(e))}}),{dom:{tag:"div",classes:[Ti("styles-menu-items-container")]},components:[Qm.parts.items({})],behaviours:bo([Td("adhoc-scrollable-menu",[io(function(n,e){Ri(n.element,"overflow-y","auto"),Ri(n.element,"-webkit-overflow-scrolling","touch"),wg(n.element)}),uo(function(n){Ni(n.element,"overflow-y"),Ni(n.element,"-webkit-overflow-scrolling"),Sg(n.element)})])])}],items:e,menuBehaviours:bo([bg.config({initialState:"after",routes:bg.createTristate("before","current","after",{transition:{property:"transform",transitionClass:"transitioning"}})})])}},Cg=function(r){var o,i,n,e,t,u=(o=r.formats,i=function(){return c},n=Eg("Styles",[].concat(N(o.items,function(n){return kg(Tg(n),n.title,n.isSelected(),n.getPreview(),ct(o.expansions,Tg(n)))})),i,!1),e=et(o.menus,function(n,e){var t=N(n,function(n){return kg(Tg(n),n.title,n.isSelected!==undefined&&n.isSelected(),n.getPreview!==undefined?n.getPreview():"",ct(o.expansions,Tg(n)))});return Eg(e,t,i,!0)}),t=qt(e,or("styles",n)),{tmenu:sg.tieredData("styles",t,o.expansions)}),c=ed(sg.sketch({dom:{tag:"div",classes:[Ti("styles-menu")]},components:[],fakeFocus:!0,stayInDom:!0,onExecute:function(n,e){var t=ss.getValue(e);return r.handle(e,t.value),T.none()},onEscape:function(){return T.none()},onOpenMenu:function(n,e){var t=ms(n.element);ds(e.element,t),bg.jumpTo(e,"current")},onOpenSubmenu:function(n,e,t){var r=ms(n.element),o=Ji(e.element,'[role="menu"]').getOrDie("hacky"),i=n.getSystem().getByDom(o).getOrDie();ds(t.element,r),bg.progressTo(i,"before"),bg.jumpTo(t,"after"),bg.progressTo(t,"current")},onCollapseMenu:function(n,e,t){var r=Ji(e.element,'[role="menu"]').getOrDie("hacky"),o=n.getSystem().getByDom(r).getOrDie();bg.progressTo(o,"after"),bg.progressTo(t,"current")},navigateOnHover:!1,highlightImmediately:!0,data:u.tmenu,markers:{backgroundMenu:Ti("styles-background-menu"),menu:Ti("styles-menu"),selectedMenu:Ti("styles-selected-menu"),item:Ti("styles-item"),selectedItem:Ti("styles-selected-item")}}));return c.asSpec()},Mg=function(n){return ct(n,"items")?(t=qt(rr(e=n,["items"]),{menu:!0}),r=Dg(e.items),{item:t,menus:qt(r.menus,or(e.title,r.items)),expansions:qt(r.expansions,or(e.title,e.title))}):{item:n,menus:{},expansions:{}};var e,t,r},Dg=function(n){return z(n,function(n,e){var t=Mg(e);return{menus:qt(n.menus,t.menus),items:[t.item].concat(n.items),expansions:qt(n.expansions,t.expansions)}},{menus:{},expansions:{},items:[]})},_g=function(u){var c=function(n){return function(){return u.formatter.match(n)}},a=function(n){return function(){return u.formatter.getCssText(n)}},f=function(n){return N(n,function(n){if(ct(n,"items")){var e=f(n.items);return qt(qt(n,{isSelected:l,getPreview:y("")}),{items:e})}return ct(n,"format")?qt(i=n,{isSelected:c(i.format),getPreview:a(i.format)}):(r=za((t=n).title),o=qt(t,{format:r,isSelected:c(r),getPreview:a(r)}),u.formatter.register(r,o),o);var t,r,o,i})};return f(u.getParam("style_formats",Fo,"array"))},Ig=function(t,n,r){var e,o,i,u=(e=t,i=(o=function(n){return W(n,function(n){return n.items===undefined?!ct(n,"format")||e.formatter.canApply(n.format)?[n]:[]:0e.innerHeight||n.bottom>e.innerHeight?n.bottom-e.innerHeight+50:0;0!=t&&e.scrollTo(e.pageXOffset,e.pageYOffset+t)})})].concat(!0==_p?[]:[Hg(de.fromDom(r.win),"blur",function(){t.getByDom(e).each(bi.off)}),Hg(i,"select",n),Hg(r.doc,"selectionchange",n)]);return{destroy:function(){P(c,function(n){n.unbind()})}}},Fp=function(n,e){var t=parseInt(lt(n,e),10);return isNaN(t)?0:t},Rp=function(n){return x(x({},n),{width:2})},Vp=function(n){return{left:n.left,top:n.top,right:n.right,bottom:n.bottom,width:n.width,height:n.height}},Bp=function(n){var e=n.getSelection();return e!==undefined&&0e.innerHeight||t.bottom>e.innerHeight?Math.min(r,t.bottom-e.innerHeight+50):0);0!==o&&u.scrollTo(u.pageXOffset,u.pageYOffset+o)})}),Np(e,n.innerHeight)});Np(e,n.innerHeight);return{toEditing:function(){Ap(u)},destroy:function(){t.unbind()}}},Lp=function(t,r){var o=null;return{cancel:function(){null!==o&&(clearTimeout(o),o=null)},throttle:function(){for(var n=[],e=0;e