]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Update CodeJar to version 4.3.0 5685/head
authorAlexander Moisseev <moiseev@mezonplus.ru>
Wed, 15 Oct 2025 13:15:10 +0000 (16:15 +0300)
committerAlexander Moisseev <moiseev@mezonplus.ru>
Wed, 15 Oct 2025 13:15:10 +0000 (16:15 +0300)
interface/js/lib/codejar.min.js

index 6326ea3fe044d525fc9176f8586f81fd98dc67fa..d8b5b72cba32dcb8f48fa652063d16a1a17b9631 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * CodeJar 4.2.0 (https://github.com/antonmedv/codejar)
+ * CodeJar 4.3.0 (https://github.com/antonmedv/codejar)
  * Copyright (c) 2020, Anton Medvedev, MIT
  */
-const globalWindow=window;function CodeJar(l,n,e={}){const c={tab:"\t",indentOn:/[({\[]$/,moveToNewLine:/^[)}\]]/,spellcheck:!1,catchTab:!0,preserveIdent:!0,addClosing:!0,history:!0,window:globalWindow,...e},o=c.window,f=o.document,r=[],u=[];let p=-1,a=!1,i=()=>{},h;l.setAttribute("contenteditable","plaintext-only"),l.setAttribute("spellcheck",c.spellcheck?"true":"false"),l.style.outline="none",l.style.overflowWrap="break-word",l.style.overflowY="auto",l.style.whiteSpace="pre-wrap";const d=(e,t)=>{n(e,t)};let g=!1;(g="plaintext-only"!==l.contentEditable?!0:g)&&l.setAttribute("contenteditable","true");const t=S(()=>{var e=v();d(l,e),T(e)},30);let y=!1;const N=e=>!O(e)&&!M(e)&&"Meta"!==e.key&&"Control"!==e.key&&"Alt"!==e.key&&!e.key.startsWith("Arrow"),s=S(e=>{N(e)&&(x(),y=!1)},300);e=(e,t)=>{r.push([e,t]),l.addEventListener(e,t)};function v(){var e=H();const t={start:0,end:0,dir:void 0};let{anchorNode:n,anchorOffset:r,focusNode:o,focusOffset:a}=e;if(n&&o)return n===l&&o===l?(t.start=0<r&&l.textContent?l.textContent.length:0,t.end=0<a&&l.textContent?l.textContent.length:0,t.dir=a>=r?"->":"<-"):(n.nodeType===Node.ELEMENT_NODE&&(e=f.createTextNode(""),n.insertBefore(e,n.childNodes[r]),n=e,r=0),o.nodeType===Node.ELEMENT_NODE&&(e=f.createTextNode(""),o.insertBefore(e,o.childNodes[a]),o=e,a=0),w(l,e=>{if(e===n&&e===o)return t.start+=r,t.end+=a,t.dir=r<=a?"->":"<-","stop";if(e===n){if(t.start+=r,t.dir)return"stop";t.dir="->"}else if(e===o){if(t.end+=a,t.dir)return"stop";t.dir="<-"}e.nodeType===Node.TEXT_NODE&&("->"!=t.dir&&(t.start+=e.nodeValue.length),"<-"!=t.dir)&&(t.end+=e.nodeValue.length)}),l.normalize()),t;throw"error1"}function T(n){var e=H();let r,o=0,a,i=0,d=(n.dir||(n.dir="->"),n.start<0&&(n.start=0),n.end<0&&(n.end=0),"<-"==n.dir&&({start:t,end:s}=n,n.start=s,n.end=t),0);w(l,e=>{var t;if(e.nodeType===Node.TEXT_NODE)return t=(e.nodeValue||"").length,d+t>n.start&&(r||(r=e,o=n.start-d),d+t>n.end)?(a=e,i=n.end-d,"stop"):void(d+=t)}),r||(r=l,o=l.childNodes.length),a||(a=l,i=l.childNodes.length),"<-"==n.dir&&([r,o,a,i]=[a,i,r,o]);var t,s=C(r),s=(s&&(t=f.createTextNode(""),s.parentNode?.insertBefore(t,s),r=t,o=0),C(a));s&&(t=f.createTextNode(""),s.parentNode?.insertBefore(t,s),a=t,i=0),e.setBaseAndExtent(r,o,a,i),l.normalize()}function C(e){for(;e&&e!==l;){if(e.nodeType===Node.ELEMENT_NODE){var t=e;if("false"==t.getAttribute("contenteditable"))return t}e=e.parentNode}}function E(){var e=H().getRangeAt(0),t=f.createRange();return t.selectNodeContents(l),t.setEnd(e.startContainer,e.startOffset),t.toString()}function m(){var e=H().getRangeAt(0),t=f.createRange();return t.selectNodeContents(l),t.setStart(e.endContainer,e.endOffset),t.toString()}function b(e){g&&"Enter"===e.key&&(B(e),e.stopPropagation(),""==m()?(L("\n "),(e=v()).start=--e.end,T(e)):L("\n"))}function x(){var e,t,n;a&&(e=l.innerHTML,t=v(),(n=u[p])&&n.html===e&&n.pos.start===t.start&&n.pos.end===t.end||(p++,u[p]={html:e,pos:t},u.splice(p+1),300<p&&(p=300,u.splice(0,1))))}function w(e,t){var n=[];e.firstChild&&n.push(e.firstChild);let r=n.pop();for(;r&&"stop"!==t(r);)r.nextSibling&&n.push(r.nextSibling),r.firstChild&&n.push(r.firstChild),r=n.pop()}function k(e){return e.metaKey||e.ctrlKey}function O(e){return k(e)&&!e.shiftKey&&"Z"===D(e)}function M(e){return k(e)&&e.shiftKey&&"Z"===D(e)}function D(e){e=e.key||e.keyCode||e.which;if(e)return("string"==typeof e?e:String.fromCharCode(e)).toUpperCase()}function L(e){e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"),f.execCommand("insertHTML",!1,e)}function S(t,n){let r=0;return(...e)=>{clearTimeout(r),r=o.setTimeout(()=>t(...e),n)}}function A(e){let t=e.length-1;for(;0<=t&&"\n"!==e[t];)t--;let n=++t;for(;n<e.length&&/[ \t]/.test(e[n]);)n++;return[e.substring(t,n)||"",t,n]}function _(){return l.textContent||""}function B(e){e.preventDefault()}function H(){return(l.parentNode?.nodeType==Node.DOCUMENT_FRAGMENT_NODE?l.parentNode:o).getSelection()}return e("keydown",e=>{if(!e.defaultPrevented){if(h=_(),c.preserveIdent){var t=e;if("Enter"===t.key){var n=E(),r=m(),[o]=A(n);let e=o;c.indentOn.test(n)&&(e+=c.tab),0<e.length?(B(t),t.stopPropagation(),L("\n"+e)):b(t),e!==o&&c.moveToNewLine.test(r)&&(n=v(),L("\n"+o),T(n))}}else b(e);if(c.catchTab){t=e;"Tab"===t.key&&(B(t),t.shiftKey?([t,r]=A(E()),0<t.length&&(o=v(),t=Math.min(c.tab.length,t.length),T({start:r,end:r+t}),f.execCommand("delete"),o.start-=t,o.end-=t,T(o))):L(c.tab))}if(c.addClosing){var a,n=e,i=`([{'"`;i.includes(n.key)&&(B(n),a=v(),d=a.start==a.end?"":H().toString(),L(n.key+d+`)]}'"`[i.indexOf(n.key)]),a.start++,a.end++,T(a))}var d,s;c.history&&(O(d=e)&&(B(d),p--,(s=u[p])&&(l.innerHTML=s.html,T(s.pos)),p<0)&&(p=0),M(d)&&(B(d),p++,(s=u[p])&&(l.innerHTML=s.html,T(s.pos)),p>=u.length)&&p--,N(e))&&!y&&(x(),y=!0),g&&(!k(i=e)||"C"!==D(i))&&T(v())}}),e("keyup",e=>{e.defaultPrevented||e.isComposing||(h!==_()&&t(),s(e),i(_()))}),e("focus",e=>{a=!0}),e("blur",e=>{a=!1}),e("paste",e=>{var t;x(),(e=e).defaultPrevented||(B(e),e=(e.originalEvent??e).clipboardData.getData("text/plain").replace(/\r\n?/g,"\n"),t=v(),L(e),d(l),T({start:Math.min(t.start,t.end)+e.length,end:Math.min(t.start,t.end)+e.length,dir:"<-"})),x(),i(_())}),e("cut",e=>{var t,n;x(),e=e,t=v(),n=H(),(e.originalEvent??e).clipboardData.setData("text/plain",n.toString()),f.execCommand("delete"),d(l),T({start:Math.min(t.start,t.end),end:Math.min(t.start,t.end),dir:"<-"}),B(e),x(),i(_())}),{updateOptions(e){Object.assign(c,e)},updateCode(e){l.textContent=e,d(l),i(e)},onUpdate(e){i=e},toString:_,save:v,restore:T,recordHistory:x,destroy(){for(var[e,t]of r)l.removeEventListener(e,t)}}}
\ No newline at end of file
+let globalWindow=window;function CodeJar(c,n,e={}){let f={tab:"\t",indentOn:/[({\[]$/,moveToNewLine:/^[)}\]]/,spellcheck:!1,catchTab:!0,preserveIdent:!0,addClosing:!0,history:!0,window:globalWindow,autoclose:{open:`([{'"`,close:`)]}'"`},...e},o=f.window,u=o.document,r=[],p=[],h=-1,a=!1,i=()=>{},g,d=(c.setAttribute("contenteditable","plaintext-only"),c.setAttribute("spellcheck",f.spellcheck?"true":"false"),c.style.outline="none",c.style.overflowWrap="break-word",c.style.overflowY="auto",c.style.whiteSpace="pre-wrap",(e,t)=>{n(e,t)});e=o.navigator.userAgent.match(/Firefox\/([0-9]+)\./),e=e?parseInt(e[1]):0;let v=!1,t=((v="plaintext-only"!==c.contentEditable||136<=e?!0:v)&&c.setAttribute("contenteditable","true"),A(()=>{var e=m();d(c,e),C(e)},30)),y=!1,N=e=>!O(e)&&!M(e)&&"Meta"!==e.key&&"Control"!==e.key&&"Alt"!==e.key&&!e.key.startsWith("Arrow"),s=A(e=>{N(e)&&(x(),y=!1)},300);e=(e,t)=>{r.push([e,t]),c.addEventListener(e,t)};function m(){var e=K();let t={start:0,end:0,dir:void 0},{anchorNode:n,anchorOffset:r,focusNode:o,focusOffset:a}=e;if(n&&o)return n===c&&o===c?(t.start=0<r&&c.textContent?c.textContent.length:0,t.end=0<a&&c.textContent?c.textContent.length:0,t.dir=a>=r?"->":"<-"):(n.nodeType===Node.ELEMENT_NODE&&(e=u.createTextNode(""),n.insertBefore(e,n.childNodes[r]),n=e,r=0),o.nodeType===Node.ELEMENT_NODE&&(e=u.createTextNode(""),o.insertBefore(e,o.childNodes[a]),o=e,a=0),w(c,e=>{if(e===n&&e===o)return t.start+=r,t.end+=a,t.dir=r<=a?"->":"<-","stop";if(e===n){if(t.start+=r,t.dir)return"stop";t.dir="->"}else if(e===o){if(t.end+=a,t.dir)return"stop";t.dir="<-"}e.nodeType===Node.TEXT_NODE&&("->"!=t.dir&&(t.start+=e.nodeValue.length),"<-"!=t.dir)&&(t.end+=e.nodeValue.length)}),c.normalize()),t;throw"error1"}function C(n){var e=K();let r,o=0,a,i=0,d=(n.dir||(n.dir="->"),n.start<0&&(n.start=0),n.end<0&&(n.end=0),"<-"==n.dir&&({start:t,end:s}=n,n.start=s,n.end=t),0);w(c,e=>{var t;if(e.nodeType===Node.TEXT_NODE)return t=(e.nodeValue||"").length,d+t>n.start&&(r||(r=e,o=n.start-d),d+t>n.end)?(a=e,i=n.end-d,"stop"):void(d+=t)}),r||(r=c,o=c.childNodes.length),a||(a=c,i=c.childNodes.length),"<-"==n.dir&&([r,o,a,i]=[a,i,r,o]);var t,s=l(r),s=(s&&(t=u.createTextNode(""),s.parentNode?.insertBefore(t,s),r=t,o=0),l(a));s&&(t=u.createTextNode(""),s.parentNode?.insertBefore(t,s),a=t,i=0),e.setBaseAndExtent(r,o,a,i),c.normalize()}function l(e){for(;e&&e!==c;){if(e.nodeType===Node.ELEMENT_NODE){var t=e;if("false"==t.getAttribute("contenteditable"))return t}e=e.parentNode}}function T(){var e=K().getRangeAt(0),t=u.createRange();return t.selectNodeContents(c),t.setEnd(e.startContainer,e.startOffset),t.toString()}function b(){var e=K().getRangeAt(0),t=u.createRange();return t.selectNodeContents(c),t.setStart(e.endContainer,e.endOffset),t.toString()}function E(e){v&&"Enter"===e.key&&(H(e),e.stopPropagation(),""==b()?(S("\n "),(e=m()).start=--e.end,C(e)):S("\n"))}function x(){var e,t,n;a&&(e=c.innerHTML,t=m(),(n=p[h])&&n.html===e&&n.pos.start===t.start&&n.pos.end===t.end||(h++,p[h]={html:e,pos:t},p.splice(h+1),300<h&&(h=300,p.splice(0,1))))}function w(e,t){var n=[];e.firstChild&&n.push(e.firstChild);let r=n.pop();for(;r&&"stop"!==t(r);)r.nextSibling&&n.push(r.nextSibling),r.firstChild&&n.push(r.firstChild),r=n.pop()}function k(e){return e.metaKey||e.ctrlKey}function O(e){return k(e)&&!e.shiftKey&&"Z"===L(e)}function M(e){return k(e)&&e.shiftKey&&"Z"===L(e)}function L(e){e=e.key||e.keyCode||e.which;if(e)return("string"==typeof e?e:String.fromCharCode(e)).toUpperCase()}function S(e){e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"),u.execCommand("insertHTML",!1,e)}function A(t,n){let r=0;return(...e)=>{clearTimeout(r),r=o.setTimeout(()=>t(...e),n)}}function D(e){let t=e.length-1;for(;0<=t&&"\n"!==e[t];)t--;let n=++t;for(;n<e.length&&/[ \t]/.test(e[n]);)n++;return[e.substring(t,n)||"",t,n]}function B(){return c.textContent||""}function H(e){e.preventDefault()}function K(){return c.getRootNode().getSelection()}return e("keydown",e=>{if(!e.defaultPrevented){if(g=B(),f.preserveIdent){var t=e;if("Enter"===t.key){var n=T(),r=b(),[o]=D(n);let e=o;f.indentOn.test(n)&&(e+=f.tab),0<e.length?(H(t),t.stopPropagation(),S("\n"+e)):E(t),e!==o&&f.moveToNewLine.test(r)&&(n=m(),S("\n"+o),C(n))}}else E(e);if(f.catchTab){t=e;"Tab"===t.key&&(H(t),t.shiftKey?([t,r]=D(T()),0<t.length&&(o=m(),t=Math.min(f.tab.length,t.length),C({start:r,end:r+t}),u.execCommand("delete"),o.start-=t,o.end-=t,C(o))):S(f.tab))}if(f.addClosing){var a,n=e,i=f.autoclose.open,d=f.autoclose.close;i.includes(n.key)&&(H(n),a=m(),s=a.start==a.end?"":K().toString(),S(n.key+s+(d[i.indexOf(n.key)]??"")),a.start++,a.end++,C(a))}var s,l;f.history&&(O(s=e)&&(H(s),h--,(l=p[h])&&(c.innerHTML=l.html,C(l.pos)),h<0)&&(h=0),M(s)&&(H(s),h++,(l=p[h])&&(c.innerHTML=l.html,C(l.pos)),h>=p.length)&&h--,N(e))&&!y&&(x(),y=!0),v&&(!k(d=e)||"C"!==L(d))&&C(m())}}),e("keyup",e=>{e.defaultPrevented||e.isComposing||(g!==B()&&t(),s(e),i(B()))}),e("focus",e=>{a=!0}),e("blur",e=>{a=!1}),e("paste",e=>{var t;x(),(e=e).defaultPrevented||(H(e),e=(e.originalEvent??e).clipboardData.getData("text/plain").replace(/\r\n?/g,"\n"),t=m(),S(e),d(c),C({start:Math.min(t.start,t.end)+e.length,end:Math.min(t.start,t.end)+e.length,dir:"<-"})),x(),i(B())}),e("cut",e=>{var t,n;x(),e=e,t=m(),n=K(),(e.originalEvent??e).clipboardData.setData("text/plain",n.toString()),u.execCommand("delete"),d(c),C({start:Math.min(t.start,t.end),end:Math.min(t.start,t.end),dir:"<-"}),H(e),x(),i(B())}),{updateOptions(e){Object.assign(f,e)},updateCode(e,t=!0){c.textContent=e,d(c),t&&i(e)},onUpdate(e){i=e},toString:B,save:m,restore:C,recordHistory:x,destroy(){for(var[e,t]of r)c.removeEventListener(e,t)}}}
\ No newline at end of file