2024-04-22 10:23:43 +08:00

8 lines
14 KiB
JavaScript
Vendored

/*!
* Tiny Checklist plugin
*
* Copyright 2010-2021 Tiny Technologies, Inc. All rights reserved.
*
* Version: 1.1.0-25
*/
!function(o){"use strict";function O(n){return function(){return n}}function n(){return c}var e,i=O(!1),u=O(!0),c=(e={fold:function(n,e){return n()},is:i,isSome:i,isNone:u,getOr:s,getOrThunk:t,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:O(null),getOrUndefined:O(void 0),or:s,orThunk:t,map:n,each:function(){},bind:n,exists:i,forall:u,filter:n,equals:r,equals_:r,toArray:function(){return[]},toString:O("none()")},Object.freeze&&Object.freeze(e),e);function r(n){return n.isNone()}function t(n){return n()}function s(n){return n}function a(n){return parseInt(n,10)}function f(n,e){var r=n-e;return 0==r?0:0<r?1:-1}function l(n,e,r){return{major:n,minor:e,patch:r}}function d(n){var e=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(n);return e?l(a(e[1]),a(e[2]),a(e[3])):l(0,0,0)}function m(n,e){return!!n&&-1===function(n,e){var r=f(n.major,e.major);if(0!==r)return r;var t=f(n.minor,e.minor);if(0!==t)return t;var o=f(n.patch,e.patch);return 0!==o?o:0}(d([(r=n).majorVersion,r.minorVersion].join(".").split(".").slice(0,3).join(".")),d(e));var r}function v(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===e}}function h(n,e){return r=n,t=e,-1<nn.call(r,t);var r,t}function g(n,e){for(var r=n.length,t=new Array(r),o=0;o<r;o++){var i=n[o];t[o]=e(i,o)}return t}function p(n,e){for(var r=0,t=n.length;r<t;r++){e(n[r],r)}}function N(n){return n.dom().nodeName.toLowerCase()}function w(n,e,r){if(!($(r)||K(r)||Q(r)))throw o.console.error("Invalid call to Attr.set. Key ",e,":: Value ",r,":: Element ",n),new Error("Attribute value was not simple");n.setAttribute(e,r+"")}function x(n,e,r){w(n.dom(),e,r)}function S(n,e){var r=n.dom();!function(n,e){for(var r=H(n),t=0,o=r.length;t<o;t++){var i=r[t];e(n[i],i)}}(e,function(n,e){w(r,e,n)})}function T(n,e){n.dom().removeAttribute(e)}function E(n){return e=n.dom().attributes,r=function(n,e){return n[e.name]=e.value,n},t={},p(e,function(n){t=r(t,n)}),t;var e,r,t}function k(n,e){var r,t,o=(r=e,null===(t=n.dom().getAttribute(r))?void 0:t);return void 0===o||""===o?[]:o.split(" ")}function D(n){return void 0!==n.dom().classList}function y(n){return k(n,"class")}function b(n,e){return o=e,i=k(r=n,t="class").concat([o]),x(r,t,i.join(" ")),!0;var r,t,o,i}function C(n,e){return o=e,0<(i=function(n,e){for(var r=[],t=0,o=n.length;t<o;t++){var i=n[t];e(i,t)&&r.push(i)}return r}(k(r=n,t="class"),function(n){return n!==o})).length?x(r,t,i.join(" ")):T(r,t),!1;var r,t,o,i}function L(n,e){D(n)?n.dom().classList.add(e):b(n,e)}function A(n,e){var r;D(n)?n.dom().classList.remove(e):C(n,e),0===(D(r=n)?r.dom().classList:y(r)).length&&T(r,"class")}function _(n,e){return D(n)?n.dom().classList.toggle(e):(t=e,(h(y(r=n),t)?C:b)(r,t));var r,t}function M(n,e){return D(n)&&n.dom().classList.contains(e)}function R(n,e,r){return 0!=(n.compareDocumentPosition(e)&r)}function I(n,e){var r=function(n,e){for(var r=0;r<n.length;r++){var t=n[r];if(t.test(e))return t}}(n,e);if(!r)return{major:0,minor:0};function t(n){return Number(e.replace(r,"$"+n))}return an(t(1),t(2))}function j(n,e){return function(){return e===n}}function P(n,e){return function(){return e===n}}function B(n,e){var r=String(e).toLowerCase();return function(n,e){for(var r=0,t=n.length;r<t;r++){var o=n[r];if(e(o,r))return z.some(o)}return z.none()}(n,function(n){return n.search(r)})}function F(n,e){return-1!==n.indexOf(e)}function U(e){return function(n){return F(n,e)}}function X(n,e){var r=n.dom();if(r.nodeType!==Ln)return!1;var t=r;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}function q(n,e){var r,t=void 0===e?o.document:e.dom();return(r=t).nodeType!==Ln&&r.nodeType!==An||0===r.childElementCount?[]:g(t.querySelectorAll(n),Cn.fromDom)}var V,Y=function(r){function n(){return o}function e(n){return n(r)}var t=O(r),o={fold:function(n,e){return e(r)},is:function(n){return r===n},isSome:u,isNone:i,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:n,orThunk:n,map:function(n){return Y(n(r))},each:function(n){n(r)},bind:e,exists:e,forall:e,filter:function(n){return n(r)?o:c},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(n){return n.is(r)},equals_:function(n,e){return n.fold(i,function(n){return e(r,n)})}};return o},z={some:Y,none:n,from:function(n){return null==n?c:Y(n)}},H=Object.keys,W=Object.hasOwnProperty,G=function(n,e){return W.call(n,e)},$=v("string"),K=v("boolean"),J=v("function"),Q=v("number"),Z=Array.prototype.slice,nn=Array.prototype.indexOf,en=(J(Array.from)&&Array.from,o.Node.ATTRIBUTE_NODE,o.Node.CDATA_SECTION_NODE,o.Node.COMMENT_NODE,o.Node.DOCUMENT_NODE),rn=(o.Node.DOCUMENT_TYPE_NODE,o.Node.DOCUMENT_FRAGMENT_NODE,o.Node.ELEMENT_NODE),tn=o.Node.TEXT_NODE,on=(o.Node.PROCESSING_INSTRUCTION_NODE,o.Node.ENTITY_REFERENCE_NODE,o.Node.ENTITY_NODE,o.Node.NOTATION_NODE,void 0!==o.window?o.window:Function("return this;")(),V=tn,function(n){return n.dom().nodeType===V}),un=function(n,e){return R(n,e,o.Node.DOCUMENT_POSITION_CONTAINED_BY)},cn=function(n){function e(){return r}var r=n;return{get:e,set:function(n){r=n},clone:function(){return cn(r)}}},sn=function(){return an(0,0)},an=function(n,e){return{major:n,minor:e}},fn={nu:an,detect:function(n,e){var r=String(e).toLowerCase();return 0===n.length?sn():I(n,r)},unknown:sn},ln="Firefox",dn=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(ln,e),isSafari:j("Safari",e)}},mn={unknown:function(){return dn({current:void 0,version:fn.unknown()})},nu:dn,edge:O("Edge"),chrome:O("Chrome"),ie:O("IE"),opera:O("Opera"),firefox:O(ln),safari:O("Safari")},vn="Windows",hn="Android",gn="Solaris",pn="FreeBSD",On="ChromeOS",Nn=function(n){var e=n.current;return{current:e,version:n.version,isWindows:P(vn,e),isiOS:P("iOS",e),isAndroid:P(hn,e),isOSX:P("OSX",e),isLinux:P("Linux",e),isSolaris:P(gn,e),isFreeBSD:P(pn,e),isChromeOS:P(On,e)}},wn={unknown:function(){return Nn({current:void 0,version:fn.unknown()})},nu:Nn,windows:O(vn),ios:O("iOS"),android:O(hn),linux:O("Linux"),osx:O("OSX"),solaris:O(gn),freebsd:O(pn),chromeos:O(On)},xn=function(n,r){return B(n,r).map(function(n){var e=fn.detect(n.versionRegexes,r);return{current:n.name,version:e}})},Sn=function(n,r){return B(n,r).map(function(n){var e=fn.detect(n.versionRegexes,r);return{current:n.name,version:e}})},Tn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,En=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(n){return F(n,"edge/")&&F(n,"chrome")&&F(n,"safari")&&F(n,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Tn],search:function(n){return F(n,"chrome")&&!F(n,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(n){return F(n,"msie")||F(n,"trident")}},{name:"Opera",versionRegexes:[Tn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:U("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:U("firefox")},{name:"Safari",versionRegexes:[Tn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(n){return(F(n,"safari")||F(n,"mobile/"))&&F(n,"applewebkit")}}],kn=[{name:"Windows",search:U("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(n){return F(n,"iphone")||F(n,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:U("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:U("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:U("linux"),versionRegexes:[]},{name:"Solaris",search:U("sunos"),versionRegexes:[]},{name:"FreeBSD",search:U("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:U("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],Dn={browsers:O(En),oses:O(kn)},yn=cn(function(n,e){var r,t,o,i,u,c,s,a,f,l,d,m,v=Dn.browsers(),h=Dn.oses(),g=xn(v,n).fold(mn.unknown,mn.nu),p=Sn(h,n).fold(wn.unknown,wn.nu);return{browser:g,os:p,deviceType:(t=g,o=n,i=e,u=(r=p).isiOS()&&!0===/ipad/i.test(o),c=r.isiOS()&&!u,s=r.isiOS()||r.isAndroid(),a=s||i("(pointer:coarse)"),f=u||!c&&s&&i("(min-device-width:768px)"),l=c||s&&!f,d=t.isSafari()&&r.isiOS()&&!1===/safari/i.test(o),m=!l&&!f&&!d,{isiPad:O(u),isiPhone:O(c),isTablet:O(f),isPhone:O(l),isTouch:O(a),isAndroid:r.isAndroid,isiOS:r.isiOS,isWebView:O(d),isDesktop:O(m)})}}(o.navigator.userAgent,function(n){return o.window.matchMedia(n).matches})),bn=function(n){if(null==n)throw new Error("Node cannot be null or undefined");return{dom:O(n)}},Cn={fromHtml:function(n,e){var r=(e||o.document).createElement("div");if(r.innerHTML=n,!r.hasChildNodes()||1<r.childNodes.length)throw o.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return bn(r.childNodes[0])},fromTag:function(n,e){var r=(e||o.document).createElement(n);return bn(r)},fromText:function(n,e){var r=(e||o.document).createTextNode(n);return bn(r)},fromDom:bn,fromPoint:function(n,e,r){var t=n.dom();return z.from(t.elementFromPoint(e,r)).map(bn)}},Ln=rn,An=en;yn.get().browser.isIE();function _n(n,e,r,t,o){return n(r,t)?z.some(r):J(o)&&o(r)?z.none():e(r,t,o)}function Mn(n,e,r){for(var t=n.dom(),o=J(r)?r:O(!1);t.parentNode;){t=t.parentNode;var i=Cn.fromDom(t);if(e(i))return z.some(i);if(o(i))break}return z.none()}function Rn(n){return z.from(n.dom().parentNode).map(Cn.fromDom)}function In(n){return g(n.dom().childNodes,Cn.fromDom)}function jn(n){return e=0,r=n.dom().childNodes,z.from(r[e]).map(Cn.fromDom);var e,r}function Pn(r,n){p(n,function(n){var e;e=n,r.dom().appendChild(e.dom())})}function Bn(n,e){var r,t,o,i,u,c,s=(r=n,t=e,o=Cn.fromTag(t),i=E(r),S(o,i),o);c=s,Rn(u=n).each(function(n){n.dom().insertBefore(c.dom(),u.dom())});var a,f=In(n);return Pn(s,f),null!==(a=n.dom()).parentNode&&a.parentNode.removeChild(a),s}function Fn(n,e,r){return Mn(n,function(n){return X(n,e)},r)}function Un(i){function u(n){return"ol"===N(n)||"ul"===N(n)}function n(){var n,e=Cn.fromDom(i.selection.getNode());_n(function(n,e){return e(n)},Mn,e,u,n).fold(function(){i.execCommand("InsertUnorderedList",!1,{"list-attributes":{class:"tox-checklist"}})},function(e){i.undoManager.transact(function(){if(M(e,"tox-checklist"))i.execCommand("RemoveList");else{var n=Bn(e,"ul");L(n,"tox-checklist")}})})}i.ui.registry.addToggleButton("checklist",{icon:"checklist",tooltip:"Insert Checklist",onAction:n,onSetup:function(r){function t(n){return e=o,n.dom()===e.dom()||u(n);var e}function e(n){return r.setActive(!i.readonly&&(e=Cn.fromDom(n),_n(X,Fn,e,".tox-checklist",t).isSome()));var e}function n(n){return e(n.element)}var o=Cn.fromDom(i.getBody());return i.on("NodeChange",n),e(i.selection.getNode()),function(){return i.off("NodeChange",n)}}}),i.ui.registry.addMenuItem("checklist",{icon:"checklist",text:"Checklist",onAction:n})}!function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e]}("element","offset");function Xn(n,e){return void 0!==n?n:void 0!==e?e:0}function qn(n){return"li"===N(n)&&Rn(n).filter(function(n){return"ul"===N(n)&&M(n,"tox-checklist")}).isSome()}function Vn(n,e){return z.from(n).filter(qn).exists(function(n){return e<function(n){var e=n.dom().ownerDocument,r=e.body,t=e.defaultView,o=e.documentElement;if(r===n.dom())return Jn(r.offsetLeft,r.offsetTop);var i=Xn(t.pageYOffset,o.scrollTop),u=Xn(t.pageXOffset,o.scrollLeft),c=Xn(o.clientTop,r.clientTop),s=Xn(o.clientLeft,r.clientLeft);return Qn(n).translate(u-s,i-c)}(n).left()})}function Yn(n){return _(n,"tox-checklist--checked")}function zn(o){var i=cn(z.none());o.on("mousedown touchstart",function(n){var e,r,t=Cn.fromDom(n.target);r=n,!i.get().exists(function(n){return"touchstart"===n.type&&"mousedown"===r.type&&r.timeStamp-n.timeStamp<250})&&Vn(t,"touchstart"===(e=n).type?e.touches[0].clientX:e.clientX)&&(i.set(z.some(n)),o.undoManager.transact(function(){n.preventDefault(),Yn(t)}))})}function Hn(n){return h(["ul","ol","dl"],N(n))}function Wn(n){return z.from(n).filter(function(n){return M(n,"tox-checklist")}).bind(jn).map(function(n){"li"===N(n)&&jn(n).exists(function(n){return"ul"===N(n)})&&L(n,"tox-checklist--hidden")}),n}function Gn(n){n.on("ListMutation",function(n){var e=z.from(n.element).map(Cn.fromDom);"IndentList"===n.action||"OutdentList"===n.action?e.map(Wn).map(function(n){return p(q("ul",n),function(n){return Wn(n)})}):"ToggleUlList"!==n.action&&"ToggleOlList"!==n.action&&"ToggleDLList"!==n.action||e.filter(Hn).map(function(n){A(n,"tox-checklist"),p(In(n),function(n){return A(n,"tox-checklist--checked")})})})}function $n(r){if(m(tinymce,"5.0.0"))return o.console.error("The Checklist Plugin requires at least 5.0.0 of TinyMCE"),{};var e;r.on("init",function(){var n,e;n=r.plugins,(G(n,e="lists")?z.from(n[e]):z.none()).isNone()&&r.windowManager.alert("Please use the Checklist Plugin together with the Lists plugin.")}),Gn(r),Un(r),(e=r).shortcuts.add("meta+13","Check checklist item",function(){var n=e.selection.getSelectedBlocks();p(n,function(n){var e=Cn.fromDom(n);qn(e)&&Yn(e)})}),zn(r)}var Kn=function(r,t){return{left:O(r),top:O(t),translate:function(n,e){return Kn(r+n,t+e)}}},Jn=Kn,Qn=function(n){var e,r,t,o=n.dom(),i=o.ownerDocument.body;return i===o?Jn(i.offsetLeft,i.offsetTop):null!=(r=on(e=n)?e.dom().parentNode:e.dom())&&r.ownerDocument.body.contains(r)?(t=o.getBoundingClientRect(),Jn(t.left,t.top)):Jn(0,0)};tinymce.PluginManager.add("checklist",$n)}(window);