wikiplus-highlight 2.21.0 → 2.22.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +466 -22
- package/README.md +2 -2
- package/dist/main.min.js +1 -1
- package/dist/main.min.js.map +1 -1
- package/fold.js +91 -64
- package/i18n/en.json +1 -1
- package/i18n/ka.json +1 -1
- package/i18n/zh-hans.json +1 -1
- package/i18n/zh-hant.json +1 -1
- package/lint.js +92 -0
- package/main.js +220 -149
- package/matchtags.js +66 -38
- package/package.json +5 -1
- package/search.js +25 -15
package/dist/main.min.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* @author 机智的小鱼君 <https://github.com/Dragon-Fish>
|
|
5
5
|
* @license GPL-3.0
|
|
6
6
|
*/
|
|
7
|
-
(async()=>{"use strict";if(mw.libs.wphl)return;mw.libs.wphl={};const i="2.21",p="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){e=localStorage.getItem(e);if(!1===e)return!1;try{return JSON.parse(e)}catch(e){return null}},setObject(e,i){try{return localStorage.setItem(e,JSON.stringify(i))}catch(e){return!1}}},w=Object.fromEntries||(e=>{const i={};for(var[t,o]of e)i[t]=o;return i}),P=e=>"function"==typeof e.flat?e.flat():e.reduce((e,i)=>e.concat(i),[]),n=(e=i)=>e.split(".").map(e=>Number(e));const h=(e,...i)=>mw.msg("wphl-"+e,...i),o=(...e)=>$($.parseHTML(h(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:h(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=n().slice(0,2).join(".");const a="//fastly.jsdelivr.net",s="npm/codemirror@5.65.3",D="gh/bhsd-harry/codemirror-mediawiki@1.1.5",r="npm/wikiplus-highlight@"+t,{wgPageName:N,wgNamespaceNumber:U,wgPageContentModel:F,wgServerName:H,wgScriptPath:B,wgUserLanguage:V,skin:d}=mw.config.values,u=null!==mw.loader.getState("ext.CodeMirror"),l=p.getObject("InPageEditMwConfig")||{},Q=""+H+B,k=l[Q]||{},f=!(k.time>Date.now()-2592e6),q={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=u?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:s+"/mode/lua/lua.min.js",mediawiki:f?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:s+"/lib/codemirror.min.js",css:s+"/mode/css/css.min.js",javascript:s+"/mode/javascript/javascript.min.js",lua:s+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:s+"/mode/htmlmixed/htmlmixed.min.js",xml:s+"/mode/xml/xml.min.js"},m={searchcursor:s+"/addon/search/searchcursor.min.js",search:r+"/search.min.js",markSelection:s+"/addon/selection/mark-selection.min.js",activeLine:s+"/addon/selection/active-line.min.js",trailingspace:s+"/addon/edit/trailingspace.min.js",matchBrackets:s+"/addon/edit/matchbrackets.min.js",closeBrackets:s+"/addon/edit/closebrackets.min.js",matchTags:r+"/matchtags.min.js",fold:r+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title"},b=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!y.has("wikiEditor")},{option:"styleActiveLine",addon:"activeLine"},{option:"showTrailingSpace",addon:"trailingspace"},{option:"matchBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||{bracketRegex:/[{}[\]]/}},{option:"autoCloseBrackets",addon:"closeBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||'()[]{}""'},{option:"matchTags",addon:["matchTags","fold"],modes:["mediawiki","widget"]},{option:"fold",modes:["mediawiki","widget"]}];let y=new Set(p.getObject("Wikiplus-highlight-addons")||["search"]),x=p.getObject("Wikiplus-highlight-indent")||4;const K={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},g=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},C=g(e=>e.split("").map(e=>{if(e in K)return`&${K[e]};`;const i=e.charCodeAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),v=({keyMap:e})=>e.default===e.pcDefault,J={"Ctrl-/":C,"Ctrl-\\":g(encodeURIComponent)},R={"Cmd-/":C,"Cmd-\\":g(encodeURIComponent)},j=(p,e)=>{if(["mediawiki","widget"].includes(e)&&y.has("contextmenu")){const i=$(p.getWrapperElement()).addClass("CodeMirror-contextmenu"),[t]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];e=i=>Object.keys(t).filter(e=>t[e]===i).map(e=>e.startsWith("#")?e:"#"+e);const w=e("invoke"),h=e("widget");i.contextmenu(({pageX:e,pageY:i})=>{const t=p.coordsChar({left:e,top:i}),{line:o,ch:n}=t,a=p.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(a)){const c=p.getLineTokens(o);for(var[s,{type:r,end:d,string:l}]of[...c.entries()].reverse())0<s&&c[s-1].type===r&&(c[s-1].end=d,c[s-1].string+=l,c.splice(s,1));const m=c.findIndex(({start:e,end:i})=>e<n&&i>=n),g=c[m].string.replace(/\u200e/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(a)){const u=new mw.Title(g);return 0!==u.namespace||g.startsWith(":")?open(u.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+g),"_blank"),!1}if(!(m<2)&&/\bmw-parserfunction-delimiter\b/.test(c[m-1].type)&&/\bmw-parserfunction-name\b/.test(c[m-2].type)){e=c[m-2].string.trim().toLowerCase();if(w.includes(e))open(mw.util.getUrl("Module:"+g),"_blank");else{if(!h.includes(e))return;open(mw.util.getUrl("Widget:"+g,{action:"edit"}),"_blank")}return!1}}})}};let S=p.getObject("Wikiplus-highlight-i18n"),M;S?((e,i)=>{var[e,t]=n(e),[i,o]=n(i);return e<i||e===i&&t<o})(S["wphl-version"],i)&&(M=e("welcome-upgrade",i,0)):(S={},M=e("welcome"));const W={zh:"zh-hans","zh-hans":"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hant":"zh-hant","zh-tw":"zh-hant","zh-hk":"zh-hant","zh-mo":"zh-hant",ka:"ka"}[V]||"en",G=`${a}/${r}/i18n/${W}.json`,X=S["wphl-version"]===t;e=async()=>{X&&S["wphl-lang"]===W||(S=await $.ajax(G,{dataType:"json",cache:!0}),p.setObject("Wikiplus-highlight-i18n",S)),mw.messages.set(S)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const E=e=>e.length?mw.loader.using(e):Promise.resolve(),O=e=>e.length?$.ajax(a+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),Y=async(e,i)=>{var t=e.filter(e=>!e.includes("/")),e=e.filter(e=>e.includes("/"));return!0===i?(await E(t),O(e)):!1===i?(await O(e),E(t)):Promise.all([E(t),O(e)])};let _;const z=(e,i=!1)=>{const t=[];for(var{option:o,addon:n=o,download:a=Array.isArray(n)?o:n,only:s}of b)s&&i||o in e.optionHandlers||!Z(n,y)||t.push(m[a]);return t},Z=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),ee=e=>{let i=[];var t="function"==typeof window.CodeMirror,o=t?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{}};if(t||(i.push(c.lib),u||mw.loader.load(`${a}/${s}/lib/codemirror.min.css`,"text/css")),"mediawiki"===e&&k.config&&k.config.tags.html&&(e="html"),["mediawiki","widget"].includes(e)&&!o.modes.mediawiki&&(mw.loader.load(`${a}/${D}/mediawiki.min.css`,"text/css"),i.push(D+"/mediawiki.min.js")),["widget","html"].includes(e))for(const n of["css","javascript","mediawiki","htmlmixed","xml"])o.modes[n]||(i=i.concat(c[n]));else i=i.concat(c[e]);return o.prototype.getSearchCursor||!y.has("search")||y.has("wikiEditor")||i.push(m.searchcursor),o.commands.findForward||!y.has("search")||y.has("wikiEditor")||i.push(m.search),y.has("wikiEditor")&&((e=mw.loader.getState("ext.wikiEditor"))?"ready"!==e&&i.push(m.wikiEditor):y.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&y.has("contextmenu")&&i.push(m.contextmenu),i.push(...z(o)),Y(i,t?void 0:u)},ie=e=>{l[Q]={config:e,time:Date.now()},p.setObject("InPageEditMwConfig",l)},te=async(i,t)=>{if(["mediawiki","widget"].includes(i)){u&&f&&await t;let e=mw.config.get("extCodeMirrorConfig");if(e||f||!X||({config:e}=k,e.tags.ref&&(e.tagModes.ref="text/mediawiki"),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;if(e)return e;const{magicwords:o,extensiontags:n,functionhooks:a,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],r=["msg","raw","msgnw","subst","safesubst"];i=e=>P(e.map(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i})))),t=e=>w(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i]));if(e){const[d]=e["functionSynonyms"];d.subst||i(o.filter(({name:e})=>r.includes(e))).forEach(({alias:e,name:i})=>{d[e.replace(/:$/,"")]=i})}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:w(n.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const l=new Set([...a,...s,...r]),c=o.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||l.has(e)),m=i(c.filter(e=>e["case-sensitive"])),g=i(c.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[t(g.filter(({alias:e})=>/^__.+__$/.test(e))),t(m.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[t(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),t(m.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=o.find(({name:e})=>"redirect"===e).aliases,e.img=t(i(o.filter(({name:e})=>e.startsWith("img_")))),mw.config.set("extCodeMirrorConfig",e),ie(e),e}},oe={getContents(){return _.getValue()},setContents(e){return _.setValue(e),this},getSelection(){return _.getSelection()},setSelection(e){return _.setSelection(_.posFromIndex(e.start),"end"in e?_.posFromIndex(e.end):void 0),_.focus(),this},replaceSelection(e){return _.replaceSelection(e),this},getCaretPosition(e){var i=_.indexFromPos(_.getCursor("from")),t=_.indexFromPos(_.getCursor("to"));return e.startAndEnd?[i,t]:i},scrollToCaretPosition(){return _.scrollIntoView(),this}},ne=async(e,i)=>{const n=i?"javascript":await(async()=>{if(![274,828].includes(U)||N.endsWith("/doc"))return N.endsWith("/doc")?"mediawiki":q[F];{const e=274===U?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(h("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()}})(),t=ee(n),[o]=await Promise.all([te(n,t),t]);if(!i&&y.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const r=$.wikiEditor.modules.dialogs["config"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...r.getDefaultConfig()}),r.replaceIcons(e)}}catch(e){y.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===n&&o.tags.html?(o.tagModes.html="htmlmixed",await ee("html")):"widget"!==n||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var a=e.height();_&&_.toTextArea();const s=i||"json"===F;if((_=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:n,mwConfig:o,json:s},w(b.map(({option:e,addon:i=e,modes:t,complex:o=e=>!t||t.includes(e)})=>{i=Array.isArray(i)?i[0]:i;return[e,y.has(i)&&o(n,s)]})),"mediawiki"===n?{extraKeys:y.has("escape")&&(v(CodeMirror)?J:R)}:{indentUnit:y.has("indentWithSpace")?x:4,indentWithTabs:!y.has("indentWithSpace")}))).setSize(null,a),_.refresh(),_.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",oe),y.has("wikiEditor")){const d=e.data("wikiEditorContext"),l=CodeMirror["keyMap"],c=()=>{$.wikiEditor.modules.dialogs.api.openDialog(d,"search-and-replace")};_.addKeyMap(l.default===l.pcDefault?{"Ctrl-F":c}:{"Cmd-F":c})}if(j(_,n),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const m="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=p.getObject("Wikiplus_Settings");return i&&i[e]}},g=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},u=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};_.addKeyMap($.extend(v(CodeMirror)?{"Ctrl-S":g,"Shift-Ctrl-S":u}:{"Cmd-S":g,"Shift-Cmd-S":u},[!0,"true"].includes(m.getSetting("esc_to_exit_quickedit"))?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}mw.hook("wiki-codemirror").fire(_)},ae=document["body"],se=new MutationObserver(e=>{const i=$(P(e.map(({addedNodes:e})=>[...e]))).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0!==i.length&&ne(i,"Wikiplus-Setting-Input"===i.attr("id"))}),re=(se.observe(ae,{childList:!0}),$(ae).on("keydown.wphl",".ui-dialog",function(e){if("Escape"===e.key){const i=$(this).children(".ui-dialog-content").data("context");i&&i.$textarea&&"Wikiplus-Quickedit"===i.$textarea.attr("id")&&e.stopPropagation()}}),document.getElementById("wphl-style")||mw.loader.addStyleTag("#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{-moz-user-select:none;-webkit-user-select:none;user-select:none}div.Wikiplus-InterBox{font-size:14px;z-index:100}.skin-minerva .Wikiplus-InterBox{font-size:16px}.cm-trailingspace{text-decoration:underline wavy red}div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}")),{get:de=function(e){return e.value},set:le=function(e,i){e.value=i}}=(re.id="wphl-style",$.valHooks.textarea||{}),ce=e=>["Wikiplus-Quickedit","Wikiplus-Setting-Input"].includes(e.id);$.valHooks.textarea={get(e){return ce(e)&&_?_.getValue():de(e)},set(e,i){ce(e)&&_?_.setValue(i):le(e,i)}},await t;let I,T,me,ge,A,ue,L;const pe=(e=[...y])=>{L.toggle(e.includes("indentWithSpace"))};const we=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",h("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),I)T.setValue([...y]),A.setValue(x);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),I=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const i=new OO.ui.WindowManager,t=(i.$element.appendTo(ae),i.addWindows([I]),T=new OO.ui.CheckboxMultiselectInputWidget({options:[...b.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:o("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","indentWithSpace","otherEditors"].map(e=>({data:e,label:o("addon-"+e.toLowerCase())}))],value:[...y]}).on("change",pe))["checkboxMultiselectWidget"];me=t.findItemFromData("search"),ge=t.findItemFromData("wikiEditor"),A=new OO.ui.NumberInputWidget({min:0,value:x}),ue=new OO.ui.FieldLayout(T,{label:h("addon-label"),notices:[h("addon-notice")],align:"top"}),L=new OO.ui.FieldLayout(A,{label:h("addon-indent")}),pe(),Object.assign(mw.libs.wphl,{widget:T,indentWidget:A})}e="object"==typeof window.Wikiplus||"object"==typeof window.Pages;me.setDisabled(!e),ge.setDisabled(!e||!mw.loader.getState("ext.wikiEditor")),I.open({title:h("addon-title"),message:ue.$element.add(L.$element).add($("<p>",{html:h("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===W||"minerva"===d?"medium":"small"}).closing.then(e=>{ue.$element.detach(),L.$element.detach(),"object"==typeof e&&"accept"===e.action&&(e=T.getValue(),y=new Set(e),x=Number(A.getValue()),p.setObject("Wikiplus-highlight-addons",e),p.setObject("Wikiplus-highlight-indent",x))})}),he=("minerva"===d&&we.find(".mw-ui-icon").addClass("mw-ui-icon-minerva-settings"),"function"==typeof M&&M().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(y.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=z(CodeMirror,!0),o=i.getOption("json");await Y(t);for(const{option:a,addon:s=a,modes:r,complex:d=e=>!r||r.includes(e)}of b.filter(({only:e})=>!e)){var n=Array.isArray(s)?s[0]:s;void 0===i.getOption(a)&&y.has(n)&&i.setOption(a,d(e,o))}"mediawiki"!==e&&y.has("indentWithSpace")?(i.setOption("indentUnit",x),i.setOption("indentWithTabs",!1)):"mediawiki"===e&&y.has("escape")&&i.addKeyMap(v(CodeMirror)?J:R,!0),j(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>he(e)),mw.hook("inspector").add(e=>he(e)),mw.libs.wphl={version:i,options:b,addons:y,i18n:S,i18nLang:W,wphlStyle:re,$portlet:we,USING_LOCAL:u,MODE_LIST:c,ADDON_LIST:m,msg:h,htmlMsg:o,escapeHTML:C,handleContextMenu:j,setI18N:e,getAddonScript:z,updateCachedConfig:ie,getMwConfig:te,renderEditor:ne,handleOtherEditors:he}})();
|
|
7
|
+
(async()=>{"use strict";if(mw.libs.wphl)return;mw.libs.wphl={};const i="2.22.5",w="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){e=localStorage.getItem(e);if(!1===e)return!1;try{return JSON.parse(e)}catch(e){return null}},setObject(e,i){try{return localStorage.setItem(e,JSON.stringify(i))}catch(e){return!1}}},h=Object.fromEntries||(e=>{const i={};for(var[t,o]of e)i[t]=o;return i}),P=e=>"function"==typeof e.flat?e.flat():e.reduce((e,i)=>e.concat(i),[]),a=(e=i)=>e.split(".").map(Number);const k=(e,...i)=>mw.msg("wphl-"+e,...i),o=(...e)=>$($.parseHTML(k(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:k(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=a().slice(0,2).join(".");const n="//fastly.jsdelivr.net",r="npm/codemirror@5.65.3",D="gh/bhsd-harry/codemirror-mediawiki@1.1.6",s="npm/wikiplus-highlight@"+t,{wgPageName:N,wgNamespaceNumber:f,wgPageContentModel:U,wgServerName:F,wgScriptPath:H,wgUserLanguage:V,skin:d}=mw["config"]["values"],u=null!==mw.loader.getState("ext.CodeMirror"),l=w.getObject("InPageEditMwConfig")||{},B=""+F+H,b=l[B]||{},y=!(b.time>Date.now()-2592e6),Q={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=u?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:r+"/mode/lua/lua.min.js",mediawiki:y?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:r+"/lib/codemirror.min.js",css:r+"/mode/css/css.min.js",javascript:r+"/mode/javascript/javascript.min.js",lua:r+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:r+"/mode/htmlmixed/htmlmixed.min.js",xml:r+"/mode/xml/xml.min.js"},m={searchcursor:r+"/addon/search/searchcursor.min.js",search:s+"/search.min.js",markSelection:r+"/addon/selection/mark-selection.min.js",activeLine:r+"/addon/selection/active-line.min.js",trailingspace:r+"/addon/edit/trailingspace.min.js",matchBrackets:r+"/addon/edit/matchbrackets.min.js",closeBrackets:r+"/addon/edit/closebrackets.min.js",matchTags:s+"/matchtags.min.js",fold:s+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title"},x=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!C.has("wikiEditor")},{option:"styleActiveLine",addon:"activeLine"},{option:"showTrailingSpace",addon:"trailingspace"},{option:"matchBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||{bracketRegex:/[{}[\]]/}},{option:"autoCloseBrackets",addon:"closeBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||'()[]{}""'},{option:"matchTags",addon:["matchTags","fold"],modes:["mediawiki","widget"]},{option:"fold",modes:["mediawiki","widget"]}];let C=new Set(w.getObject("Wikiplus-highlight-addons")||["search"]),v=w.getObject("Wikiplus-highlight-indent")||4;const q={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},g=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},p=g(e=>[...e].map(e=>{if(e in q)return`&${q[e]};`;const i=e.codePointAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),j=({keyMap:e})=>e.default===e.pcDefault,K={"Ctrl-/":p,"Ctrl-\\":g(encodeURIComponent)},J={"Cmd-/":p,"Cmd-\\":g(encodeURIComponent)},S=(p,e)=>{if(("mediawiki"===e||"widget"===e)&&C.has("contextmenu")){const i=$(p.getWrapperElement()).addClass("CodeMirror-contextmenu"),[t]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];e=i=>Object.keys(t).filter(e=>t[e]===i).map(e=>e.startsWith("#")?e:"#"+e);const u=e("invoke"),w=e("widget");i.contextmenu(({pageX:e,pageY:i})=>{const t=p.coordsChar({left:e,top:i}),{line:o,ch:a}=t,n=p.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(n)){const l=p.getLineTokens(o);for(let e=l.length-1;0<e;e--){var{type:r,end:s,string:d}=l[e];l[e-1].type===r&&(l[e-1].end=s,l[e-1].string+=d,l.splice(e,1))}const c=l.findIndex(({start:e,end:i})=>e<a&&i>=a),m=l[c].string.replace(/\u200E/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(n)){const g=new mw.Title(m);return 0!==g.namespace||m.startsWith(":")?open(g.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+m),"_blank"),!1}if(!(c<2)&&/\bmw-parserfunction-delimiter\b/.test(l[c-1].type)&&/\bmw-parserfunction-name\b/.test(l[c-2].type)){e=l[c-2].string.trim().toLowerCase();if(u.includes(e))open(mw.util.getUrl("Module:"+m),"_blank");else{if(!w.includes(e))return;open(mw.util.getUrl("Widget:"+m,{action:"edit"}),"_blank")}return!1}}})}};let M=w.getObject("Wikiplus-highlight-i18n"),W;M?((e,i)=>{var[e,t]=a(e),[i,o]=a(i);return e<i||e===i&&t<o})(M["wphl-version"],i)&&(W=e("welcome-upgrade",i,0)):(M={},W=e("welcome"));const E={zh:"zh-hans","zh-hans":"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hant":"zh-hant","zh-tw":"zh-hant","zh-hk":"zh-hant","zh-mo":"zh-hant",ka:"ka"}[V]||"en",R=`${n}/${s}/i18n/${E}.json`,G=M["wphl-version"]===t;e=async()=>{G&&M["wphl-lang"]===E||(M=await $.ajax(R,{dataType:"json",cache:!0}),w.setObject("Wikiplus-highlight-i18n",M)),mw.messages.set(M)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const X=e=>0<e.length?mw.loader.using(e):Promise.resolve(),Y=e=>0<e.length?$.ajax(n+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),Z=async(e,i)=>{var t=e.filter(e=>!e.includes("/")),e=e.filter(e=>e.includes("/"));return!0===i?(await X(t),Y(e)):!1===i?(await Y(e),X(t)):Promise.all([X(t),Y(e)])};let O;const ee=(e,i=!1)=>{const t=[];for(var{option:o,addon:a=o,download:n=Array.isArray(a)?o:a,only:r}of x)r&&i||o in e.optionHandlers||!ie(a,C)||t.push(m[n]);return t},ie=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),te=e=>{let i=[];var t="function"==typeof window.CodeMirror,o=t?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{}};if(t||(i.push(c.lib),u||mw.loader.load(`${n}/${r}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&b.config&&b.config.tags.html?"html":e)&&"widget"!==e||o.modes.mediawiki||(mw.loader.load(`${n}/${D}/mediawiki.min.css`,"text/css"),i.push(D+"/mediawiki.min.js")),"widget"===e||"html"===e)for(const a of["css","javascript","mediawiki","htmlmixed","xml"])o.modes[a]||(i=i.concat(c[a]));else i=i.concat(c[e]);return o.prototype.getSearchCursor||!C.has("search")||C.has("wikiEditor")||i.push(m.searchcursor),o.commands.findForward||!C.has("search")||C.has("wikiEditor")||i.push(m.search),C.has("wikiEditor")&&((e=mw.loader.getState("ext.wikiEditor"))?"ready"!==e&&i.push(m.wikiEditor):C.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&C.has("contextmenu")&&i.push(m.contextmenu),i.push(...ee(o)),Z(i,t?void 0:u)},oe=e=>{l[B]={config:e,time:Date.now()},w.setObject("InPageEditMwConfig",l)},_=e=>P(e.map(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i})))),z=e=>h(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i])),ae=async(e,i)=>{if("mediawiki"===e||"widget"===e){u&&y&&await i;let e=mw.config.get("extCodeMirrorConfig");if(e||y||!G||({config:e}=b,e.tags.ref&&(e.tagModes.ref="text/mediawiki"),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;if(e)return e;const{magicwords:a,extensiontags:n,functionhooks:r,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],d=["msg","raw","msgnw","subst","safesubst"];if(e){const[l]=e["functionSynonyms"];var t,o;if(!l.subst)for({alias:t,name:o}of _(a.filter(({name:e})=>d.includes(e))))l[t.replace(/:$/,"")]=o}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:h(n.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const c=new Set([...r,...s,...d]),m=a.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||c.has(e)),g=_(m.filter(e=>e["case-sensitive"])),p=_(m.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[z(p.filter(({alias:e})=>/^__.+__$/.test(e))),z(g.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[z(p.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),z(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=a.find(({name:e})=>"redirect"===e).aliases,e.img=z(_(a.filter(({name:e})=>e.startsWith("img_")))),mw.config.set("extCodeMirrorConfig",e),oe(e),e}},ne={getContents(){return O.getValue()},setContents(e){return O.setValue(e),this},getSelection(){return O.getSelection()},setSelection(e){return O.setSelection(O.posFromIndex(e.start),"end"in e?O.posFromIndex(e.end):void 0),O.focus(),this},replaceSelection(e){return O.replaceSelection(e),this},getCaretPosition(e){var i=O.indexFromPos(O.getCursor("from")),t=O.indexFromPos(O.getCursor("to"));return e.startAndEnd?[i,t]:i},scrollToCaretPosition(){return O.scrollIntoView(),this}},re=async(e,i)=>{const a=i?"javascript":await(async()=>{if(274!==f&&828!==f||N.endsWith("/doc"))return N.endsWith("/doc")?"mediawiki":Q[U];{const e=274===f?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(k("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()}})(),t=te(a),[o]=await Promise.all([ae(a,t),t]);if(!i&&C.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{modules:{dialogs:{config:s}}}=$["wikiEditor"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...s.getDefaultConfig()}),s.replaceIcons(e)}}catch(e){C.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===a&&o.tags.html?(o.tagModes.html="htmlmixed",await te("html")):"widget"!==a||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var n=e.height();O&&O.toTextArea();const r=i||"json"===U;if((O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:a,mwConfig:o,json:r},h(x.map(({option:e,addon:i=e,modes:t,complex:o=e=>!t||t.includes(e)})=>{i=Array.isArray(i)?i[0]:i;return[e,C.has(i)&&o(a,r)]})),"mediawiki"===a?{extraKeys:C.has("escape")&&(j(CodeMirror)?K:J)}:{indentUnit:C.has("indentWithSpace")?v:4,indentWithTabs:!C.has("indentWithSpace")}))).setSize(null,n),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",ne),C.has("wikiEditor")){const d=e.data("wikiEditorContext"),l=CodeMirror["keyMap"],c=()=>{$.wikiEditor.modules.dialogs.api.openDialog(d,"search-and-replace")};O.addKeyMap(l.default===l.pcDefault?{"Ctrl-F":c}:{"Cmd-F":c})}if(S(O,a),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const m="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=w.getObject("Wikiplus_Settings");return i&&i[e]}},g=m.getSetting("esc_to_exit_quickedit"),p=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},u=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend(j(CodeMirror)?{"Ctrl-S":p,"Shift-Ctrl-S":u}:{"Cmd-S":p,"Shift-Cmd-S":u},!0===g||"true"===g?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},se=document["body"],de=new MutationObserver(e=>{const i=$(P(e.map(({addedNodes:e})=>[...e]))).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0!==i.length&&re(i,"Wikiplus-Setting-Input"===i.attr("id"))}),le=(de.observe(se,{childList:!0}),$(se).on("keydown.wphl",".ui-dialog",function(e){if("Escape"===e.key){const i=$(this).children(".ui-dialog-content").data("context");i&&i.$textarea&&"Wikiplus-Quickedit"===i.$textarea.attr("id")&&e.stopPropagation()}}),document.querySelector("#wphl-style")||mw.loader.addStyleTag("#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{-moz-user-select:none;-webkit-user-select:none;user-select:none}div.Wikiplus-InterBox{font-size:14px;z-index:100}.skin-minerva .Wikiplus-InterBox{font-size:16px}.cm-trailingspace{text-decoration:underline wavy red}div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}")),{get:ce=e=>e.value,set:me=(e,i)=>{e.value=i}}=(le.id="wphl-style",$.valHooks.textarea||{}),ge=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return ge(e)&&O?O.getValue():ce(e)},set(e,i){ge(e)&&O?O.setValue(i):me(e,i)}},await t;let I,T,pe,ue,A,we,L;const he=(e=[...C])=>{L.toggle(e.includes("indentWithSpace"))};const ke=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",k("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),I)T.setValue([...C]),A.setValue(v);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),I=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const i=new OO.ui.WindowManager,t=(i.$element.appendTo(se),i.addWindows([I]),T=new OO.ui.CheckboxMultiselectInputWidget({options:[...x.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:o("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","indentWithSpace","otherEditors"].map(e=>({data:e,label:o("addon-"+e.toLowerCase())}))],value:[...C]}).on("change",he))["checkboxMultiselectWidget"];pe=t.findItemFromData("search"),ue=t.findItemFromData("wikiEditor"),A=new OO.ui.NumberInputWidget({min:0,value:v}),we=new OO.ui.FieldLayout(T,{label:k("addon-label"),notices:[k("addon-notice")],align:"top"}),L=new OO.ui.FieldLayout(A,{label:k("addon-indent")}),he(),Object.assign(mw.libs.wphl,{widget:T,indentWidget:A})}var e="object"==typeof window.Wikiplus||"object"==typeof window.Pages,e=(pe.setDisabled(!e),ue.setDisabled(!e||!mw.loader.getState("ext.wikiEditor")),await I.open({title:k("addon-title"),message:we.$element.add(L.$element).add($("<p>",{html:k("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===E||"minerva"===d?"medium":"small"}).closing);we.$element.detach(),L.$element.detach(),"object"==typeof e&&"accept"===e.action&&(e=T.getValue(),C=new Set(e),v=Number(A.getValue()),w.setObject("Wikiplus-highlight-addons",e),w.setObject("Wikiplus-highlight-indent",v))}),fe=("minerva"===d&&ke.find(".mw-ui-icon").addClass("mw-ui-icon-minerva-settings"),"function"==typeof W&&W().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(C.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=ee(CodeMirror,!0),o=i.getOption("json");await Z(t);for(const{option:n,addon:r=n,modes:s,complex:d=e=>!s||s.includes(e)}of x.filter(({only:e})=>!e)){var a=Array.isArray(r)?r[0]:r;void 0===i.getOption(n)&&C.has(a)&&i.setOption(n,d(e,o))}"mediawiki"!==e&&C.has("indentWithSpace")?(i.setOption("indentUnit",v),i.setOption("indentWithTabs",!1)):"mediawiki"===e&&C.has("escape")&&i.addKeyMap(j(CodeMirror)?K:J,!0),S(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>fe(e)),mw.hook("inspector").add(e=>fe(e)),mw.libs.wphl={version:i,options:x,addons:C,i18n:M,i18nLang:E,wphlStyle:le,$portlet:ke,USING_LOCAL:u,MODE_LIST:c,ADDON_LIST:m,msg:k,htmlMsg:o,escapeHTML:p,handleContextMenu:S,setI18N:e,getAddonScript:ee,updateCachedConfig:oe,getMwConfig:ae,renderEditor:re,handleOtherEditors:fe}})();
|
|
8
8
|
//# sourceMappingURL=main.min.js.map
|
package/dist/main.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"../","sources":["main.js"],"names":["mw","libs","wphl","version","storage","getObject","key","json","localStorage","getItem","JSON","parse","e","setObject","value","setItem","stringify","fromEntries","Object","entries","obj","flatten","arr","flat","reduce","acc","cur","concat","getVersion","str","split","map","s","Number","msg","args","htmlMsg","$","parseHTML","notify","$p","html","type","autoHideSeconds","tag","majorVersion","slice","join","CDN","CM_CDN","MW_CDN","REPO_CDN","wgPageName","page","wgNamespaceNumber","ns","wgPageContentModel","contentmodel","wgServerName","server","wgScriptPath","scriptPath","wgUserLanguage","userLang","skin","config","values","USING_LOCAL","loader","getState","ALL_SETTINGS_CACHE","SITE_ID","SITE_SETTINGS","EXPIRED","time","Date","now","CONTENTMODEL","css","sanitized-css","javascript","wikitext","MODE_LIST","lib","lua","mediawiki","htmlmixed","xml","ADDON_LIST","searchcursor","search","markSelection","activeLine","trailingspace","matchBrackets","closeBrackets","matchTags","fold","wikiEditor","contextmenu","options","option","addon","download","only","complex","addons","has","mode","bracketRegex","modes","let","Set","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","charCodeAt","toString","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","encodeURIComponent","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","includes","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","end","string","reverse","splice","index","findIndex","start","text","replace","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","action","i18n","welcome","a","b","a0","a1","b0","b1","cmpVersion","i18nLang","zh","zh-hans","zh-cn","zh-my","zh-sg","zh-hant","zh-tw","zh-hk","zh-mo","ka","I18N_CDN","isLatest","setI18N","async","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","using","getInternalScript","exts","length","resolve","getExternalScript","urls","getScript","local","internal","url","external","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","some","ele","initMode","scripts","loaded","window","CodeMirror","prototype","commands","load","tags","lang","getSearchCursor","findForward","state","delete","undefined","updateCachedConfig","getMwConfig","initModePromise","ref","tagModes","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","getAliases","words","aliases","name","alias","getConfig","insensitive","subst","forEach","pre","nowiki","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","find","cmTextSelection","getContents","getValue","setContents","content","setValue","this","setSelection","posFromIndex","focus","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","modules","dialogs","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","refresh","id","fn","textSelection","context","data","callback","api","openDialog","addKeyMap","Ctrl-F","Cmd-F","children","attr","Wikiplus","getSetting","settings","submit","triggerHandler","submitMinor","click","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","childList","on","$textarea","stopPropagation","getElementById","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","moeskin","preventDefault","MessageDialog","windowManager","WindowManager","checkboxMultiselectWidget","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","findItemFromData","NumberInputWidget","min","FieldLayout","notices","align","assign","wikiplusLoaded","Pages","setDisabled","message","add","flags","size","closing","then","detach","handleOtherEditors","getOption","setOption"],"mappings":";;;;;;CAOA,uBAGC,GAAIA,GAAGC,KAAKC,KACX,OAEDF,GAAGC,KAAKC,KAAO,GAEf,MAAMC,EAAU,OAIVC,EAAgC,iBAAfJ,GAAGI,SAAwD,mBAAzBJ,GAAGI,QAAQC,UACjEL,GAAGI,QACH,CACDC,UAAUC,GACHC,EAAOC,aAAaC,QAAQH,GAClC,IAAa,IAATC,EACH,OAAO,EAER,IACC,OAAOG,KAAKC,MAAMJ,GACjB,MAAOK,GACR,OAAO,OAGTC,UAAUP,EAAKQ,GACd,IACC,OAAON,aAAaO,QAAQT,EAAKI,KAAKM,UAAUF,IAC/C,MAAOF,GACR,OAAO,KASLK,EAAcC,OAAOD,cAAgBE,IAC1C,MAAuCC,EAAM,GAC7C,IAAK,GAAM,CAACd,EAAKQ,KAAUK,EAC1BC,EAAId,GAAOQ,EAEZ,OAAOM,IAMFC,EAAUC,GACS,mBAAbA,EAAIC,KACPD,EAAIC,OAELD,EAAIE,OAAO,CAACC,EAAKC,IAAQD,EAAIE,OAAOD,GAAM,IAI5CE,EAAa,CAACC,EAAM1B,IAAY0B,EAAIC,MAAM,KAAKC,IAAIC,GAAKC,OAAOD,IAkBrE,MAAME,EAAM,CAAC5B,KAAQ6B,IAASnC,GAAGkC,IAAI,QAAQ5B,KAAU6B,GAKjDC,EAAU,IAAID,IAASE,EAAEA,EAAEC,UAAUJ,KAAOC,KAMlD,IAAMI,EAAS,IAAIJ,IAAS,KAC3B,IAAMK,EAAKH,EAAE,MAAO,CAACI,KAAMP,KAAOC,KAElC,OADAnC,GAAGuC,OAAOC,EAAI,CAACE,KAAM,UAAWC,gBAAiB,OAAQC,IAAK,uBACvDJ,GAIFK,EAAejB,IAAakB,MAAM,EAAG,GAAGC,KAAK,KAGnD,MAAMC,EAAM,wBACXC,EAAS,wBACTC,EAAS,2CACTC,EAAW,0BAA0BN,EAEhC,CACLO,WAAYC,EACZC,kBAAmBC,EACnBC,mBAAoBC,EACpBC,aAAcC,EACdC,aAAcC,EACdC,eAAgBC,EAChBC,KAAAA,GACGhE,GAAGiE,OAAOC,OAGRC,EAAuD,OAAzCnE,GAAGoE,OAAOC,SAAS,kBAEtCC,EAAqBlE,EAAQC,UAAU,uBAAyB,GAChEkE,EAAU,GAAGZ,EAASE,EAC0BW,EAAgBF,EAAmBC,IAAY,GAC/FE,IAAYD,EAAcE,KAAOC,KAAKC,MAAQ,QAEHC,EAAe,CAC1DC,IAAK,MACLC,gBAAiB,MACjBC,WAAY,aACZzE,KAAM,aACN0E,SAAU,aAGLC,EAAYf,EACf,CACDgB,IAAK,qBACLL,IAAK,8BACLE,WAAY,qCACZI,IAAQnC,EAAH,uBACLoC,UAAWZ,EAAU,sBAAwB,GAC7Ca,UAAW,oCACXC,IAAK,IAEJ,CACDJ,IAAQlC,EAAH,yBACL6B,IAAQ7B,EAAH,uBACL+B,WAAe/B,EAAH,qCACZmC,IAAQnC,EAAH,uBACLoC,UAAW,GACXC,UAAcrC,EAAH,mCACXsC,IAAQtC,EAAH,wBAGDuC,EAAa,CAClBC,aAAiBxC,EAAH,oCACdyC,OAAWvC,EAAH,iBACRwC,cAAkB1C,EAAH,yCACf2C,WAAe3C,EAAH,sCACZ4C,cAAkB5C,EAAH,mCACf6C,cAAkB7C,EAAH,mCACf8C,cAAkB9C,EAAH,mCACf+C,UAAc7C,EAAH,oBACX8C,KAAS9C,EAAH,eACN+C,WAAY,iBACZC,YAAa,mBAaeC,EAAU,CACtC,CACCC,OAAQ,oBAAqBC,MAAO,SAAUC,SAAU,gBAAiBC,MAAM,EAC/EC,QAAS,KAAOC,EAAOC,IAAI,eAE5B,CAACN,OAAQ,kBAAmBC,MAAO,cACnC,CAACD,OAAQ,oBAAqBC,MAAO,iBACrC,CACCD,OAAQ,gBACRI,QAAS,CAACG,EAAMrG,IAAkB,cAATqG,IAAwBrG,GAC9C,CAACsG,aAAc,YAGnB,CACCR,OAAQ,oBAAqBC,MAAO,gBACpCG,QAAS,CAACG,EAAMrG,IAAkB,cAATqG,IAAwBrG,GAC9C,YAGJ,CAAC8F,OAAQ,YAAaC,MAAO,CAAC,YAAa,QAASQ,MAAO,CAAC,YAAa,WACzE,CAACT,OAAQ,OAAQS,MAAO,CAAC,YAAa,YAKvCC,IAA+BL,EAAS,IAAIM,IAAI5G,EAAQC,UAAU,8BAF5C,CAAC,WAGA4G,EAAS7G,EAAQC,UAAU,8BAFjC,EAKjB,MAAM6G,EAAS,CAACC,IAAK,OAAQC,IAAK,OAAQC,IAAK,KAAMC,IAAK,KAAMC,IAAK,MAAOC,IAAK,QAEhFC,EAAUC,GAAQC,IACjBA,EAAIC,iBAAiBD,EAAIE,eAAe/F,MAAM,MAAMC,IAAI2F,GAAM3E,KAAK,MAAO,WAE3E+E,EAAaL,EAAQ5F,GAAOA,EAAIC,MAAM,IAAIC,IAAIgG,IAC7C,GAAIA,KAAKb,EACR,UAAWA,EAAOa,MAEnB,MAAMC,EAAOD,EAAEE,aACf,OAAOD,EAAO,SAAWA,WAAgBA,EAAKE,SAAS,SACrDnF,KAAK,KAC4CoF,EAAO,CAAA,CAAEC,OAAAA,KAAYA,EAAOC,UAAYD,EAAOE,UACnGC,EAAc,CAACC,SAAUV,EAAYW,UAAWhB,EAAQiB,qBACxDC,EAAe,CAACC,QAASd,EAAYe,SAAUpB,EAAQiB,qBAOlDI,EAAoB,CAACnB,EAAKf,KAC/B,GAAK,CAAC,YAAa,UAAUmC,SAASnC,IAAUF,EAAOC,IAAI,eAA3D,CAGA,MAAMqC,EAAW3G,EAAEsF,EAAIsB,qBAAqBC,SAAS,0BACjC,CAACC,IAAanJ,GAAGiE,OAAOmF,IAAI,wBAA0B,CACxEC,iBAAkB,CAAC,CAACC,OAAQ,SAAUC,KAAI,SAAUC,OAAQ,SAAUC,MAAK,aAD3EJ,oBAIIK,EAAe7H,GAAOX,OAAOyI,KAAKR,GAAUS,OAAOtJ,GAAO6I,EAAS7I,KAASuB,GAChFE,IAAIzB,GAAOA,EAAIuJ,WAAW,KAAOvJ,EAAM,IAAIA,GAC7C,MAAMgJ,EAASI,EAAa,UAC3BF,EAASE,EAAa,UAEvBV,EAAS7C,YAAY,CAAA,CAAE2D,MAAAA,EAAOC,MAAAA,MAC7B,MAAMC,EAAMrC,EAAIsC,WAAW,CAACC,KAAMJ,EAAOK,IAAKJ,IAC7C,CAACK,KAAAA,EAAMC,GAAAA,GAAML,EACbM,EAAU3C,EAAI4C,eAAeP,GAC9B,GAAK,0CAA0CQ,KAAKF,GAApD,CAGA,MAAMG,EAAS9C,EAAI+C,cAAcN,GACjC,IAAK,GAAM,CAACO,EAAG,CAACjI,KAAAA,EAAMkI,IAAAA,EAAKC,OAAAA,KAAY,IAAIJ,EAAOtJ,WAAW2J,UACpD,EAAJH,GAASF,EAAOE,EAAI,GAAGjI,OAASA,IACnC+H,EAAOE,EAAI,GAAGC,IAAMA,EACpBH,EAAOE,EAAI,GAAGE,QAAUA,EACxBJ,EAAOM,OAAOJ,EAAG,IAGnB,MAAMK,EAAQP,EAAOQ,UAAU,CAAA,CAAEC,MAAAA,EAAON,IAAAA,KAASM,EAAQb,GAAMO,GAAOP,GACrEc,EAAOV,EAAOO,GAAOH,OAAOO,QAAQ,UAAW,IAAIA,QAAQ,KAAM,KAAKC,OACvE,GAAI,uBAAuBb,KAAKF,GAAU,CACzC,MAAMgB,EAAQ,IAAItL,GAAGuL,MAAMJ,GAM3B,OALwB,IAApBG,EAAME,WAAmBL,EAAKtB,WAAW,KAC5C4B,KAAKH,EAAMI,SAAU,UAErBD,KAAKzL,GAAG2L,KAAKD,OAAO,YAAYP,GAAS,WAEnC,EACD,KAAIH,EAAQ,IAAM,kCAAkCR,KAAKC,EAAOO,EAAQ,GAAGtI,OAC7E,6BAA6B8H,KAAKC,EAAOO,EAAQ,GAAGtI,MADlD,CAKDkJ,EAAiBnB,EAAOO,EAAQ,GAAGH,OAAOQ,OAAOQ,cACvD,GAAIvC,EAAOP,SAAS6C,GACnBH,KAAKzL,GAAG2L,KAAKD,OAAO,UAAUP,GAAS,cACjC,CAAA,IAAI3B,EAAOT,SAAS6C,GAG1B,OAFAH,KAAKzL,GAAG2L,KAAKD,OAAO,UAAUP,EAAQ,CAACW,OAAQ,SAAU,UAI1D,OAAO,QAIT/E,IAA0CgF,EAAO3L,EAAQC,UAAU,2BACzB2L,EACrCD,GAvNc,CAACE,EAAGC,KACtB,GAAM,CAACC,EAAIC,GAAMxK,EAAWqK,GAC3B,CAACI,EAAIC,GAAM1K,EAAWsK,GACvB,OAAOC,EAAKE,GAAMF,IAAOE,GAAMD,EAAKE,GAuN1BC,CAAWR,EAAK,gBAAiB5L,KAC3C6L,EAAUzJ,EAAO,kBAAiDpC,EAnRvD,KAgRX4L,EAAO,GACPC,EAAUzJ,EAAO,YAKlB,MAICiK,EAJ2D,CAC1DC,GAAI,UAAWC,UAAW,UAAWC,QAAS,UAAWC,QAAS,UAAWC,QAAS,UACtFC,UAAW,UAAWC,QAAS,UAAWC,QAAS,UAAWC,QAAS,UAAWC,GAAI,MAE9DnJ,IAAa,KACtCoJ,KAAcnK,KAAOG,UAAiBqJ,SACtCY,EAAWrB,EAAK,kBAAoBlJ,EAG/BwK,EAAUC,UACVF,GAAYrB,EAAK,eAAiBS,IACtCT,QAAa1J,EAAEkL,KAAQJ,EAAY,CAClCK,SAAU,OACVC,OAAO,IAERrN,EAAQS,UAAU,0BAA2BkL,IAE9C/L,GAAG0N,SAASC,IAAI5B,IAGX6B,EAAcC,QAAQC,IAAI,CAC/B9N,GAAGoE,OAAO2J,MAAM,kBAChBV,MAOD,MAAMW,EAAoBC,GAAQA,EAAKC,OAASlO,GAAGoE,OAAO2J,MAAME,GAAQJ,QAAQM,UAK1EC,EAAoBC,GAAQA,EAAKH,OACpC7L,EAAEkL,KAAQvK,EAAH,KAAwB,EAAdqL,EAAKH,OAAa,WAAa,IAAKG,EAAKtL,OAAU,CAACyK,SAAU,SAAUC,OAAO,IAChGI,QAAQM,UAOLG,EAAYhB,MAAOe,EAAME,KAC9B,IAAMC,EAAWH,EAAKzE,OAAO6E,IAAQA,EAAI1F,SAAS,MACjD2F,EAAWL,EAAKzE,OAAO6E,GAAOA,EAAI1F,SAAS,MAC5C,OAAc,IAAVwF,SACGP,EAAkBQ,GACjBJ,EAAkBM,KACL,IAAVH,SACJH,EAAkBM,GACjBV,EAAkBQ,IAEnBX,QAAQC,IAAI,CAACE,EAAkBQ,GAAWJ,EAAkBM,MAIpE3H,IAAiD4H,EAGjD,MAAMC,EAAiB,CAACC,EAAIC,GAAQ,KACnC,MAA8BC,EAAc,GAC5C,IAAK,GAAM,CAAC1I,OAAAA,EAAQC,MAAAA,EAAQD,EAAQE,SAAAA,EAAWyI,MAAMC,QAAQ3I,GAASD,EAASC,EAAOE,KAAAA,KAASJ,EACxFI,GAAQsI,GAAYzI,KAAUwI,EAAGK,iBAAmBC,EAAU7I,EAAOI,IAC1EqI,EAAYK,KAAK5J,EAAWe,IAG9B,OAAOwI,GAQFI,EAAY,CAAC7N,EAAKqM,IAAQqB,MAAMC,QAAQ3N,GAC3CA,EAAI+N,KAAKC,GAAO3B,EAAIhH,IAAI2I,IACxB3B,EAAIhH,IAAIrF,GAMLiO,GAAW7M,IAChBqE,IAA4ByI,EAAU,GACtC,IAAMC,EAAsC,mBAAtBC,OAAOC,WAMvBd,EAAKY,EAASC,OAAOC,WAAa,CAAC7I,MAAO,GAAI8I,UAAW,GAAIC,SAAU,GAAIX,eAAgB,IAoBjG,GAjBKO,IACJD,EAAQJ,KAAKlK,EAAUC,KAClBhB,GACJnE,GAAGoE,OAAO0L,QAAQ9M,KAAOC,2BAAiC,aAK/C,cAATP,GAAwB8B,EAAcP,QAAUO,EAAcP,OAAO8L,KAAKtN,OAE7EC,EAAO,QAEJ,CAAC,YAAa,UAAUqG,SAASrG,KAAUmM,EAAG/H,MAAMzB,YAEvDrF,GAAGoE,OAAO0L,QAAQ9M,KAAOE,sBAA4B,YACrDsM,EAAQJ,KAAQlM,EAAH,sBAEV,CAAC,SAAU,QAAQ6F,SAASrG,GAC/B,IAAK,MAAMsN,IAAQ,CAAC,MAAO,aAAc,YAAa,YAAa,OAC7DnB,EAAG/H,MAAMkJ,KACbR,EAAUA,EAAQ7N,OAAOuD,EAAU8K,UAIrCR,EAAUA,EAAQ7N,OAAOuD,EAAUxC,IAuBpC,OAnBKmM,EAAGe,UAAUK,kBAAmBvJ,EAAOC,IAAI,WAAcD,EAAOC,IAAI,eACxE6I,EAAQJ,KAAK5J,EAAWC,cAEpBoJ,EAAGgB,SAASK,cAAexJ,EAAOC,IAAI,WAAcD,EAAOC,IAAI,eACnE6I,EAAQJ,KAAK5J,EAAWE,QAErBgB,EAAOC,IAAI,iBACRwJ,EAAQnQ,GAAGoE,OAAOC,SAAS,mBAGZ,UAAV8L,GACVX,EAAQJ,KAAK5J,EAAWU,YAFxBQ,EAAO0J,OAAO,eAK8B,UAA1CpQ,GAAGoE,OAAOC,SAAS,oBAAkCqC,EAAOC,IAAI,gBACnE6I,EAAQJ,KAAK5J,EAAWW,aAEzBqJ,EAAQJ,QAAQR,EAAeC,IAExBP,EAAUkB,EAASC,OAASY,EAAYlM,IAO1CmM,GAAqBrM,IAC1BK,EAAmBC,GAAW,CAACN,OAAAA,EAAQS,KAAMC,KAAKC,OAClDxE,EAAQS,UAAU,qBAAsByD,IAQnCiM,GAAcjD,MAAO5K,EAAM8N,KAChC,GAAK,CAAC,YAAa,UAAUzH,SAASrG,GAAtC,CAIIyB,GAAeM,SACZ+L,EAGPzJ,IAAI9C,EAASjE,GAAGiE,OAAOmF,IAAI,uBAQ3B,GAPKnF,GAAWQ,IAAW2I,IACzB,CAACnJ,OAAAA,GAAUO,EACRP,EAAO8L,KAAKU,MACfxM,EAAOyM,SAASD,IAAM,kBAEvBzQ,GAAGiE,OAAO0J,IAAI,sBAAuB1J,IAElCA,GAAUA,EAAO0M,UAAY1M,EAAO2M,IACvC,OAAO3M,EACD,GAAIA,EACV,OAAOA,EASR,KAAc,CAAC4M,WAAAA,EAAYC,cAAAA,EAAeC,cAAAA,EAAeC,UAAAA,UAAoB,IAAIhR,GAAGiR,KAAM7H,IAAI,CAC7F8H,KAAM,WACNC,OAAQlN,EAAS,aAAe,mDAChCmN,cAAe,KAHTC,SAKDC,EAAkB,CAAC,MAAO,MAAO,QAAS,QAAS,aAMnDC,EAAaC,GAASnQ,EAC3BmQ,EAAMzP,IAAI,CAAA,CAAE0P,QAAAA,EAASC,KAAAA,KAAUD,EAAQ1P,IAAI4P,IAAS,CAAEA,MAAAA,EAAOD,KAAAA,OAMxDE,EAAYH,GAAWxQ,EAC5BwQ,EAAQ1P,IAAI,CAAA,CAAE4P,MAAAA,EAAOD,KAAAA,KAAU,CAACC,EAAMvG,QAAQ,KAAM,IAAKsG,KAG1D,GAAKzN,EA8BE,CACN,KAAyB,CAAC4N,GAAgB5N,EAAnCoF,oBACFwI,EAAYC,OAChBP,EACCV,EAAWjH,OAAO,CAAA,CAAE8H,KAAAA,KAAUJ,EAAgBvI,SAAS2I,KACtDK,QAAQ,CAAA,CAAEJ,MAAAA,EAAOD,KAAAA,MAClBG,EAAYF,EAAMvG,QAAQ,KAAM,KAAOsG,QApC7B,CACZzN,EAAS,CACRyM,SAAU,CACTsB,IAAK,aACLC,OAAQ,gBACRxB,IAAK,kBAENV,KAAM9O,EACL6P,EAAc/O,IAAIa,GAAO,CAACA,EAAIE,MAAM,GAAI,IAAI,KAE7CoP,aAAclS,GAAGiE,OAAOmF,IAAI,mBAE7B,MAAM+I,EAAiB,IAAInL,IAAI,IAAI+J,KAAkBC,KAAcM,IAClEc,EAAgBvB,EAAWjH,OAC1B,CAAA,CAAE8H,KAAAA,EAAMD,QAAAA,KAAaA,EAAQpC,KAAKsC,GAAS,WAAWnH,KAAKmH,KAAWQ,EAAexL,IAAI+K,IAE1FW,EAAYd,EACXa,EAAcxI,OAAO0I,GAAQA,EAAK,oBAEnCT,EAAcN,EACba,EAAcxI,OAAO0I,IAASA,EAAK,oBAClCvQ,IAAI,CAAA,CAAE4P,MAAAA,EAAOD,KAAAA,MAAU,CAAEC,MAAOA,EAAM9F,cAAe6F,KAAAA,KACxDzN,EAAOsO,iBAAmB,CACzBX,EAAUC,EAAYjI,OAAO,CAAA,CAAE+H,MAAAA,KAAW,WAAWnH,KAAKmH,KAC1DC,EAAUS,EAAUzI,OAAO,CAAA,CAAE+H,MAAAA,KAAW,WAAWnH,KAAKmH,MAEzD1N,EAAOoF,iBAAmB,CACzBuI,EAAUC,EAAYjI,OAAO,CAAA,CAAE+H,MAAAA,MAAY,cAAcnH,KAAKmH,KAC9DC,EAAUS,EAAUzI,OAAO,CAAA,CAAE+H,MAAAA,MAAY,cAAcnH,KAAKmH,MAkB9D,OANA1N,EAAO0M,SAAWE,EAAW2B,KAAK,CAAA,CAAEd,KAAAA,KAAmB,aAATA,GAAqBD,QACnExN,EAAO2M,IAAMgB,EACZL,EAAWV,EAAWjH,OAAO,CAAA,CAAE8H,KAAAA,KAAUA,EAAK7H,WAAW,WAE1D7J,GAAGiE,OAAO0J,IAAI,sBAAuB1J,GACrCqM,GAAmBrM,GACZA,IAsBFwO,GAAkB,CACvBC,cACC,OAAO/D,EAAGgE,YAEXC,YAAYC,GAEX,OADAlE,EAAGmE,SAASD,GACLE,MAERlL,eACC,OAAO8G,EAAG9G,gBAEXmL,aAAa3M,GAMZ,OALAsI,EAAGqE,aACFrE,EAAGsE,aAAa5M,EAAO6E,OACvB,QAAS7E,EAASsI,EAAGsE,aAAa5M,EAAOuE,UAAOyF,GAEjD1B,EAAGuE,QACIH,MAERnL,iBAAiB9G,GAEhB,OADA6N,EAAG/G,iBAAiB9G,GACbiS,MAERI,iBAAiB9M,GAChB,IAAM+M,EAAWzE,EAAG0E,aAAa1E,EAAG2E,UAAU,SAC7CC,EAAS5E,EAAG0E,aAAa1E,EAAG2E,UAAU,OACvC,OAAIjN,EAAOmN,YACH,CAACJ,EAAUG,GAEZH,GAERK,wBAEC,OADA9E,EAAG+E,iBACIX,OASHY,GAAerG,MAAOsG,EAASC,KACpC,MAAMjN,EAAOiN,EAAU,mBA7DJvG,UACnB,IAAI,CAAC,IAAK,KAAKvE,SAASxF,IAAQF,EAAKyQ,SAAS,QAOvC,OAAIzQ,EAAKyQ,SAAS,QACjB,YAEDjP,EAAapB,GAVmC,CACtD,MAAMsQ,EAAkB,MAAPxQ,EAAa,SAAW,MAKzC,aAJMvD,GAAGoE,OAAO2J,MAAM,CAAC,kBAAmB,uCACvBiG,GAAGC,GAAGC,QAAQhS,EAAI,gBAAiB,CACrDiS,QAAS,CAAC,CAACC,MAAOL,GAAW,CAACK,MAAO,WAAYtI,OAAQ,aAE5C,YAAciI,EAASlI,gBAsDMwI,GAC3C7D,EAAkBjB,GAAS3I,GAC3B,CAAC0N,SAAkBzG,QAAQC,IAAI,CAC9ByC,GAAY3J,EAAM4J,GAClBA,IAGF,IAAKqD,GAAWnN,EAAOC,IAAI,cAC1B,IACC,GAAgC,mBAArB3G,GAAGuU,cACbvU,GAAGuU,cAAcX,OACX,CACN,MAAO3P,EAAU5B,EAAE6D,WAAWsO,QAAQC,QAA/BxQ,UACP2P,EAAQ1N,WAAW,YAAa,IAC5B7D,EAAE6D,WAAWsO,QAAQE,QAAQzQ,OAAO0Q,sBACpC1Q,EAAO0Q,qBAEX1Q,EAAO2Q,aAAahB,IAEpB,MAAOhT,GACR8F,EAAO0J,OAAO,cACdpQ,GAAGuC,OAAO,qBAAsB,CAACG,KAAM,UACvCmS,QAAQC,MAAMlU,GAIH,cAATgG,GAAwB0N,EAASvE,KAAKtN,MACzC6R,EAAS5D,SAASjO,KAAO,kBACnB8M,GAAS,SACI,WAAT3I,GAAsB+I,WAAWoF,UAAUvL,QACrDmG,WAAWqF,WAAW,SAAU,CAACtD,KAAM,YAAa3B,KAAM,CAACkF,UAAW,CAAC,CAAC,KAAM,KAAM,iBAIrF,IAAMC,EAAStB,EAAQsB,SAEnBvG,GACHA,EAAGwG,aAGJ,MAAM5U,EAAOsT,GAA4B,SAAjBpQ,EA8BxB,IA7BAkL,EAAKgB,WAAWyF,aAAaxB,EAAQ,GAAIvR,EAAEgT,OAAO,CACjDC,WAAY,kBACZC,aAAc,YAAY/K,KAAKgL,UAAUC,WACzCC,cAAc,EACd9O,KAAAA,EACA0N,SAAAA,EACA/T,KAAAA,GACEU,EACFmF,EAAQrE,IAAI,CAAA,CAAEsE,OAAAA,EAAQC,MAAAA,EAAQD,EAAQS,MAAAA,EAAOL,QAAAA,EAAUkP,IAAQ7O,GAASA,EAAMiC,SAAS4M,OAChFC,EAAY5G,MAAMC,QAAQ3I,GAASA,EAAM,GAAKA,EACpD,MAAO,CAACD,EAAQK,EAAOC,IAAIiP,IAAcnP,EAAQG,EAAMrG,OAE7C,cAATqG,EACA,CACDiP,UAAWnP,EAAOC,IAAI,YAAcwB,EAAKwH,YAAcpH,EAAcI,IAEpE,CACDmN,WAAYpP,EAAOC,IAAI,mBAAqBM,EArd9B,EAsdd8O,gBAAiBrP,EAAOC,IAAI,uBAG3BqP,QAAQ,KAAMd,GACjBvG,EAAGsH,UACHtH,EAAG1F,oBAAoBiN,GAAK,sBAExB7T,EAAE8T,GAAGC,eACRxC,EAAQwC,cAAc,WAAY3D,IAG/B/L,EAAOC,IAAI,cAAe,CAC7B,MAAM0P,EAAUzC,EAAQ0C,KAAK,qBAC3BlO,EAAUuH,WAAVvH,UACDmO,EAAW,KACVlU,EAAE6D,WAAWsO,QAAQC,QAAQ+B,IAAIC,WAAWJ,EAAS,uBAEvD1H,EAAG+H,UAAUtO,EAAOC,UAAYD,EAAOE,UAAY,CAACqO,SAAUJ,GAAY,CAACK,QAASL,IAOrF,GAJAzN,EAAkB6F,EAAI/H,GAEtBvE,EAAE,4BAA4BwU,SAAS,KAAKC,KAAK,OAAQ,yBAEpDjD,EAAS,CACb,MAA8BkD,EAAsC,iBAApBrH,OAAOqH,SACnDrH,OAAOqH,SACP,CACDC,WAAW1W,GACV,IAAM2W,EAAW7W,EAAQC,UAAU,qBACnC,OAAO4W,GAAYA,EAAS3W,KAG/B4W,EAAS,KACR7U,EAAE,8BAA8B8U,eAAe,UAEhDC,EAAc,KACb/U,EAAE,iCAAiCgV,QACnChV,EAAE,8BAA8B8U,eAAe,UAEjDxI,EAAG+H,UAAUrU,EAAEgT,OACdlN,EAAKwH,YACF,CAAC2H,SAAUJ,EAAQK,eAAgBH,GACnC,CAACI,QAASN,EAAQO,cAAeL,GACpC,EAAC,EAAM,QAAQrO,SAASgO,EAASC,WAAW,0BACzC,CACDU,MACCrV,EAAE,4BAA4B8U,eAAe,WAG7C,KAILnX,GAAG2X,KAAK,mBAAmBC,KAAKjJ,IAG1BkJ,GAAQC,SAARD,QAGDE,GAAW,IAAIC,iBAAiBC,IACrC,MAAMC,EAAY7V,EAAEhB,EACnB4W,EAAQlW,IAAI,CAAA,CAAEoW,WAAAA,KAAgB,IAAIA,MAChC3F,KAAK,gDACiB,IAArB0F,EAAUhK,QAGdyF,GAAauE,EAAoC,2BAAzBA,EAAUpB,KAAK,SAelCsB,IAbNL,GAASM,QAAQR,GAAM,CAACS,WAAW,IAEnCjW,EAAEwV,IAAMU,GAAG,eAAgB,aAAc,SAAS3X,GACjD,GAAc,WAAVA,EAAEN,IAAkB,CAEvB,MAAM+V,EAAUhU,EAAE0Q,MAAM8D,SAAS,sBAAsBP,KAAK,WACxDD,GAAWA,EAAQmC,WAA8C,uBAAjCnC,EAAQmC,UAAU1B,KAAK,OAC1DlW,EAAE6X,qBAMaX,SAASY,eAAe,eAAiB1Y,GAAGoE,OAAOuU,YACpE,+2BAoBK,CACLvP,IAAAA,GAAM,SAASwP,GACd,OAAOA,EAAK9X,OAEb6M,IAAAA,GAAM,SAASiL,EAAM9X,GACpB8X,EAAK9X,MAAQA,KAXfsX,GAAUlC,GAAK,aAaX7T,EAAEwW,SAASC,UAAY,IAGrBC,GAAaH,GAAQ,CAAC,qBAAsB,0BAA0B7P,SAAS6P,EAAK1C,IAC1F7T,EAAEwW,SAASC,SAAW,CACrB1P,IAAIwP,GACH,OAAOG,GAAWH,IAASjK,EAAKA,EAAGgE,WAAavJ,GAAIwP,IAErDjL,IAAIiL,EAAM9X,GACLiY,GAAWH,IAASjK,EACvBA,EAAGmE,SAAShS,GAEZ6M,GAAIiL,EAAM9X,WAKP8M,EAGN7G,IAAsCiS,EACcxP,EACLyP,GACAC,GACRC,EACNC,GACAC,EACjC,MAAMC,GAAe,CAACxY,EAAQ,IAAI4F,MACjC2S,EAAYE,OAAOzY,EAAMiI,SAAS,qBAOnC,MAAMyQ,GAAWnX,EAAErC,GAAG2L,KAAK8N,eALF,CACxBC,QAAS,wBACTC,QAAS,YACTC,QAAS,mBAGQ5V,IAAS,aAAc,IAAK9B,EAAI,WAAY,kBAC3DmV,MAAYzW,MAAAA,IAEd,GADAA,EAAEiZ,iBACGb,EA+BJxP,EAAOsJ,SAAS,IAAIpM,IACpByS,EAAarG,SAAS7L,OAhCV,OACNjH,GAAGoE,OAAO2J,MAAM,CAAC,kBAAmB,iCAE1CiL,EAAS,IAAIhF,GAAGC,GAAG6F,cAAc,CAAC5D,GAAI,8BACtC,MAAM6D,EAAgB,IAAI/F,GAAGC,GAAG+F,cAczBC,GAbPF,EAAcG,SAASC,SAAStC,IAChCkC,EAAcK,WAAW,CAACpB,IAC1BxP,EAAS,IAAIwK,GAAGC,GAAGoG,+BAA+B,CACjDjU,QAAS,IACLA,EAAQrE,IAAI,CAAA,CAAEsE,OAAAA,EAAQC,MAAAA,EAAQD,MAChC,MAAMuP,EAAY5G,MAAMC,QAAQ3I,GAASA,EAAM,GAAKA,EACpD,MAAO,CAACgQ,KAAMV,EAAWxB,MAAOhS,EAAQ,SAASwT,EAAU/J,qBAEzD,CAAC,aAAc,SAAU,cAAe,kBAAmB,gBAC5D9J,IAAIuE,IAAS,CAAEgQ,KAAMhQ,EAAO8N,MAAOhS,EAAQ,SAASkE,EAAMuF,mBAE7D/K,MAAO,IAAI4F,KACT6R,GAAG,SAAUe,KACTW,6BACPhB,GAAegB,EAA0BK,iBAAiB,UAC1DpB,GAAmBe,EAA0BK,iBAAiB,cAC9DnB,EAAe,IAAInF,GAAGC,GAAGsG,kBAAkB,CAACC,IAAK,EAAG1Z,MAAOmG,IAC3DmS,GAAQ,IAAIpF,GAAGC,GAAGwG,YAAYjR,EAAQ,CACrC4K,MAAOlS,EAAI,eACXwY,QAAS,CAACxY,EAAI,iBACdyY,MAAO,QAERtB,EAAc,IAAIrF,GAAGC,GAAGwG,YAAYtB,EAAc,CAAC/E,MAAOlS,EAAI,kBAC9DoX,KACApY,OAAO0Z,OAAO5a,GAAGC,KAAKC,KAAM,CAACsJ,OAAAA,EAAQ2P,aAAAA,IAKhC0B,EAA4C,iBAApBnL,OAAOqH,UAAiD,iBAAjBrH,OAAOoL,MAC5E7B,GAAa8B,aAAaF,GAC1B3B,GAAiB6B,aAAaF,IAAmB7a,GAAGoE,OAAOC,SAAS,mBACpE2U,EAAOvN,KAAK,CACXH,MAAOpJ,EAAI,eACX8Y,QAAS5B,GAAMc,SAASe,IAAI5B,EAAYa,UAAUe,IACjD5Y,EAAE,MAAO,CAACI,KAAMP,EAAI,eAErBiS,QAAS,CACR,CAACrI,OAAQ,SAAUsI,MAAOpU,GAAGkC,IAAI,+BACjC,CAAC4J,OAAQ,SAAUsI,MAAOpU,GAAGkC,IAAI,8BAA+BgZ,MAAO,gBAExEC,KAAmB,OAAb3O,GAA8B,YAATxI,EAAqB,SAAW,UACzDoX,QAAQC,KAAK/E,IACf8C,GAAMc,SAASoB,SACfjC,EAAYa,SAASoB,SACD,iBAAThF,GAAqC,WAAhBA,EAAKxK,SAC9BhL,EAAQ0I,EAAOmJ,WACrBjM,EAAS,IAAIM,IAAIlG,GACjBmG,EAAShF,OAAOkX,EAAaxG,YAC7BvS,EAAQS,UAAU,4BAA6BC,GAC/CV,EAAQS,UAAU,4BAA6BoG,QAiB5CsU,IAbO,YAATvX,GACHwV,GAAShH,KAAK,eAAetJ,SAAS,+BAIhB,mBAAZ8C,GACVA,IAAUwG,KAAK,yBAAyB6E,MAAMzW,IAC7CA,EAAEiZ,iBACFxX,EAAE,kBAAkB8U,eAAe,WAKJxP,MAAAA,IAChC,GAAKjB,EAAOC,IAAI,gBAAhB,CAGAI,IAAIH,EAAOe,EAAI6T,UAAU,QACzB5U,EAAgB,mBAATA,EAA4B,YAAcA,EACjD,IAAMmI,EAAcH,EAAee,YAAY,GAC9CpP,EAAOoH,EAAI6T,UAAU,cAChBlN,EAAUS,GAChB,IAAK,KAAM,CACV1I,OAAAA,EAAQC,MAAAA,EAAQD,EAAQS,MAAAA,EAAOL,QAAAA,EAAU,IAAgCK,GAASA,EAAMiC,SAAS4M,MAC7FvP,EAAQwD,OAAO,CAAA,CAAEpD,KAAAA,MAAWA,GAAO,CACvC,IAAMoP,EAAY5G,MAAMC,QAAQ3I,GAASA,EAAM,GAAKA,OACtB+J,IAA1B1I,EAAI6T,UAAUnV,IAAyBK,EAAOC,IAAIiP,IACrDjO,EAAI8T,UAAUpV,EAAQI,EAAQG,EAAMrG,IAGzB,cAATqG,GAAwBF,EAAOC,IAAI,oBACtCgB,EAAI8T,UAAU,aAAcxU,GAC5BU,EAAI8T,UAAU,kBAAkB,IACb,cAAT7U,GAAwBF,EAAOC,IAAI,WAC7CgB,EAAI+O,UAAUvO,EAAKwH,YAAcpH,EAAcI,GAAc,GAE9DG,EAAkBnB,EAAKf,MAGxB5G,GAAG2X,KAAK,mCAAmCsD,IACF,CAAA,CAAEtM,GAAIhH,KAAS4T,GAAmB5T,IAE3E3H,GAAG2X,KAAK,aAAasD,IAA0CtT,GAAO4T,GAAmB5T,IAEzF3H,GAAGC,KAAKC,KAAO,CACdC,QAAAA,EAASiG,QAAAA,EAASM,OAAAA,EAAQqF,KAAAA,EAAMS,SAAAA,EAAU4L,UAAAA,GAAWoB,SAAAA,GAAUrV,YAAAA,EAAae,UAAAA,EAAWM,WAAAA,EACvFtD,IAAAA,EAAKE,QAAAA,EAAS0F,WAAAA,EAAYgB,kBAAAA,EAAmBuE,QAAAA,EAASuB,eAAAA,EACtD0B,mBAAAA,GAAoBC,YAAAA,GAAaoD,aAAAA,GAAc4H,mBAAAA,KAz5BjD"}
|
|
1
|
+
{"version":3,"sourceRoot":"../","sources":["main.js"],"names":["mw","libs","wphl","version","storage","getObject","key","json","localStorage","getItem","JSON","parse","e","setObject","value","setItem","stringify","fromEntries","Object","entries","obj","flatten","arr","flat","reduce","acc","cur","concat","getVersion","str","split","map","Number","msg","args","htmlMsg","$","parseHTML","notify","$p","html","type","autoHideSeconds","tag","majorVersion","slice","join","CDN","CM_CDN","MW_CDN","REPO_CDN","wgPageName","page","wgNamespaceNumber","ns","wgPageContentModel","contentmodel","wgServerName","server","wgScriptPath","scriptPath","wgUserLanguage","userLang","skin","config","values","USING_LOCAL","loader","getState","ALL_SETTINGS_CACHE","SITE_ID","SITE_SETTINGS","EXPIRED","time","Date","now","CONTENTMODEL","css","sanitized-css","javascript","wikitext","MODE_LIST","lib","lua","mediawiki","htmlmixed","xml","ADDON_LIST","searchcursor","search","markSelection","activeLine","trailingspace","matchBrackets","closeBrackets","matchTags","fold","wikiEditor","contextmenu","options","option","addon","download","only","complex","addons","has","mode","bracketRegex","modes","let","Set","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","codePointAt","toString","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","encodeURIComponent","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","length","end","string","splice","index","findIndex","start","text","replace","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","includes","action","i18n","welcome","a","b","a0","a1","b0","b1","cmpVersion","i18nLang","zh","zh-hans","zh-cn","zh-my","zh-sg","zh-hant","zh-tw","zh-hk","zh-mo","ka","I18N_CDN","isLatest","setI18N","async","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","using","getInternalScript","exts","resolve","getExternalScript","urls","getScript","local","internal","url","external","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","some","ele","initMode","scripts","loaded","window","CodeMirror","prototype","commands","load","tags","lang","getSearchCursor","findForward","state","delete","undefined","updateCachedConfig","getAliases","words","aliases","name","alias","getConfig","getMwConfig","initModePromise","ref","tagModes","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","insensitive","subst","pre","nowiki","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","find","cmTextSelection","getContents","getValue","setContents","content","setValue","this","setSelection","posFromIndex","focus","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","modules","dialogs","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","callback","api","openDialog","addKeyMap","Ctrl-F","Cmd-F","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","refresh","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","childList","on","$textarea","stopPropagation","querySelector","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","moeskin","preventDefault","MessageDialog","windowManager","WindowManager","checkboxMultiselectWidget","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","findItemFromData","NumberInputWidget","min","FieldLayout","notices","align","assign","wikiplusLoaded","Pages","setDisabled","message","add","flags","size","closing","detach","handleOtherEditors","getOption","setOption"],"mappings":"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"}
|
package/fold.js
CHANGED
|
@@ -6,44 +6,50 @@
|
|
|
6
6
|
(() => {
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
const {Pos, cmpPos} = CodeMirror;
|
|
9
|
+
const {Pos, cmpPos, Init} = CodeMirror;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* 只用于`title`属性的消息,不存在时fallback到键名
|
|
13
|
-
* @param {string} key
|
|
14
|
-
* @param {string|undefined} argKey
|
|
13
|
+
* @param {string} key 消息键
|
|
14
|
+
* @param {string|undefined} argKey 额外参数的消息键
|
|
15
15
|
* @returns {string}
|
|
16
16
|
*/
|
|
17
17
|
const msg = (key, argKey) => {
|
|
18
18
|
const fullKey = `wphl-${key}`,
|
|
19
19
|
message = (argKey === undefined ? mw.msg(fullKey) : mw.msg(fullKey, msg(argKey)))
|
|
20
|
-
.replace(/</
|
|
20
|
+
.replace(/</gu, '<').replace(/>/gu, '>');
|
|
21
21
|
return message === `⧼${fullKey}⧽` ? key : message;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
const braceRegex = /\bmw-template-bracket\b
|
|
24
|
+
const braceRegex = /\bmw-template-bracket\b/u,
|
|
25
25
|
$placeholder = $('<span>', {text: '\u22ef', class: 'CodeMirror-widget-unfold'}),
|
|
26
26
|
$delimiter = $('<span>', {text: '|', class: 'cm-mw-template-delimiter'}),
|
|
27
|
-
$tt = $('<div>', {class: 'CodeMirror-tooltip', text: '\uff0d'}).click(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
$tt = $('<div>', {class: 'CodeMirror-tooltip', text: '\uff0d'}).click(
|
|
28
|
+
/** @this {HTMLDivElement} */
|
|
29
|
+
function() {
|
|
30
|
+
const /** @type {CodeMirror.FoldData} */ {cm, from, to, type} = $(this).fadeOut('fast').data(),
|
|
31
|
+
notTag = type === 'template' || type === 'comment',
|
|
32
|
+
$clonedPlaceholder = $placeholder.clone()
|
|
33
|
+
.attr('title', msg('unfold', notTag ? `fold-${type}` : `<${type}>`)),
|
|
34
|
+
mark = cm.markText(from, to, {
|
|
35
|
+
replacedWith: type === 'template'
|
|
36
|
+
? $('<span>', {html: [$delimiter.clone(), $clonedPlaceholder]})[0]
|
|
37
|
+
: $clonedPlaceholder[0],
|
|
38
|
+
selectLeft: type === 'template',
|
|
39
|
+
selectRight: false,
|
|
40
|
+
_isFold: true,
|
|
41
|
+
});
|
|
42
|
+
$clonedPlaceholder.click(() => {
|
|
43
|
+
mark.clear();
|
|
39
44
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
43
|
-
});
|
|
45
|
+
},
|
|
46
|
+
);
|
|
44
47
|
|
|
45
|
-
/**
|
|
46
|
-
|
|
48
|
+
/**
|
|
49
|
+
* 隐藏tooltip
|
|
50
|
+
* @param {JQuery<HTMLElement>} $tooltip tooltip
|
|
51
|
+
*/
|
|
52
|
+
const hideTooltip = $tooltip => {
|
|
47
53
|
let timeout = -1,
|
|
48
54
|
executeTime = 0;
|
|
49
55
|
return /** @param {number} wait */ (wait, update = true) => {
|
|
@@ -56,25 +62,27 @@
|
|
|
56
62
|
executeTime = Date.now() + wait;
|
|
57
63
|
}
|
|
58
64
|
};
|
|
59
|
-
}
|
|
65
|
+
};
|
|
60
66
|
|
|
61
67
|
/**
|
|
68
|
+
* 搜索括号
|
|
62
69
|
* @param {CodeMirror.Editor} cm
|
|
63
|
-
* @param {CodeMirror.Position} where
|
|
64
|
-
* @param {1|-1} dir
|
|
70
|
+
* @param {CodeMirror.Position} where 当前位置
|
|
71
|
+
* @param {1|-1} dir 搜索方向
|
|
65
72
|
* @returns {CodeMirror.MarkerRange}
|
|
66
73
|
*/
|
|
67
|
-
|
|
74
|
+
const scanForDelimiterAndBracket = (cm, where, dir) => {
|
|
68
75
|
const maxScanLen = 10000,
|
|
69
76
|
maxScanLines = 1000,
|
|
77
|
+
{line, ch} = where,
|
|
70
78
|
lineEnd = dir > 0
|
|
71
|
-
? Math.min(cm.lastLine() + 1,
|
|
72
|
-
: Math.max(cm.firstLine() - 1,
|
|
79
|
+
? Math.min(cm.lastLine() + 1, line + maxScanLines)
|
|
80
|
+
: Math.max(cm.firstLine() - 1, line - maxScanLines);
|
|
73
81
|
let stack = 0,
|
|
74
82
|
hasDelimiter = dir < 0,
|
|
75
83
|
/** @type {CodeMirror.Position} */ delimiter;
|
|
76
|
-
for (let {line} = where;
|
|
77
|
-
const curLine = cm.getLine(
|
|
84
|
+
for (let {line: l} = where; l !== lineEnd; l += dir) {
|
|
85
|
+
const curLine = cm.getLine(l);
|
|
78
86
|
if (!curLine) {
|
|
79
87
|
continue;
|
|
80
88
|
}
|
|
@@ -84,79 +92,85 @@
|
|
|
84
92
|
}
|
|
85
93
|
const end = dir > 0 ? length : -1;
|
|
86
94
|
let pos = dir > 0 ? 0 : length - 1;
|
|
87
|
-
if (
|
|
88
|
-
pos =
|
|
95
|
+
if (l === line) {
|
|
96
|
+
pos = ch - (dir > 0 ? 0 : 1); // `dir = 1`时不包含当前字符,`dir = -1`时包含当前字符
|
|
89
97
|
}
|
|
90
98
|
for (; pos !== end; pos += dir) {
|
|
91
|
-
const
|
|
92
|
-
if (!hasDelimiter && /[^\s|]
|
|
93
|
-
delimiter = Pos(
|
|
99
|
+
const char = curLine.charAt(pos);
|
|
100
|
+
if (!hasDelimiter && /[^\s|]/u.test(char)) {
|
|
101
|
+
delimiter = Pos(l, pos + 1);
|
|
94
102
|
}
|
|
95
|
-
if (!(hasDelimiter ? /[{}]/ : /[{}|]/).test(
|
|
103
|
+
if (!(hasDelimiter ? /[{}]/u : /[{}|]/u).test(char)) {
|
|
96
104
|
continue;
|
|
97
105
|
}
|
|
98
|
-
const type = cm.getTokenTypeAt(Pos(
|
|
99
|
-
if (
|
|
106
|
+
const type = cm.getTokenTypeAt(Pos(l, pos + 1)) || '';
|
|
107
|
+
if (char === '|' && stack === 0 && /\bmw-template-delimiter\b/u.test(type)) {
|
|
100
108
|
hasDelimiter = true;
|
|
101
|
-
} else if (
|
|
109
|
+
} else if (char === '|' || !braceRegex.test(type)) {
|
|
102
110
|
continue;
|
|
103
|
-
} else if (dir > 0 &&
|
|
111
|
+
} else if (dir > 0 && char === '{' || dir < 0 && char === '}') {
|
|
104
112
|
stack++;
|
|
105
113
|
} else if (stack > 0) {
|
|
106
114
|
stack--;
|
|
107
115
|
} else {
|
|
108
|
-
return {from: hasDelimiter && delimiter, to: Pos(
|
|
116
|
+
return {from: hasDelimiter && delimiter, to: Pos(l, pos + (dir > 0 ? 0 : 1))};
|
|
109
117
|
}
|
|
110
118
|
}
|
|
111
119
|
}
|
|
112
120
|
return {};
|
|
113
|
-
}
|
|
121
|
+
};
|
|
114
122
|
|
|
115
123
|
/**
|
|
124
|
+
* 搜索模板
|
|
116
125
|
* @param {CodeMirror.Editor} cm
|
|
117
|
-
* @param {CodeMirror.Position} cursor
|
|
126
|
+
* @param {CodeMirror.Position} cursor 当前位置
|
|
118
127
|
* @returns {CodeMirror.MarkerRange}
|
|
119
128
|
*/
|
|
120
|
-
|
|
129
|
+
const findEnclosingTemplate = (cm, cursor) => {
|
|
121
130
|
const type = cm.getTokenTypeAt(cursor) || '';
|
|
122
|
-
if (!/\bmw-template\d*-ground\b
|
|
123
|
-
return;
|
|
131
|
+
if (!/\bmw-template\d*-ground\b/u.test(type) || /\bmw-template-(?:bracket|name)\b/u.test(type)) {
|
|
132
|
+
return undefined;
|
|
124
133
|
}
|
|
125
134
|
const {to: bracket} = scanForDelimiterAndBracket(cm, cursor, -1);
|
|
126
135
|
if (!bracket) {
|
|
127
|
-
return;
|
|
136
|
+
return undefined;
|
|
128
137
|
}
|
|
129
138
|
const {from, to} = scanForDelimiterAndBracket(cm, bracket, 1);
|
|
130
139
|
if (typeof from === 'object' && (from.line < to.line || from.ch < to.ch - 2)) {
|
|
131
140
|
return {from, to};
|
|
132
141
|
}
|
|
133
|
-
|
|
142
|
+
return undefined;
|
|
143
|
+
};
|
|
134
144
|
|
|
135
145
|
/**
|
|
146
|
+
* 搜索注释
|
|
136
147
|
* @param {CodeMirror.Editor} cm
|
|
137
|
-
* @param {CodeMirror.Position} cursor
|
|
148
|
+
* @param {CodeMirror.Position} cursor 当前位置
|
|
138
149
|
* @returns {CodeMirror.MarkerRange|undefined}
|
|
139
150
|
*/
|
|
140
|
-
|
|
151
|
+
const findEnclosingComment = (cm, cursor) => {
|
|
141
152
|
const {type, string, start, end} = cm.getTokenAt(cursor),
|
|
142
153
|
{ch} = cursor;
|
|
143
|
-
if (!/\bmw-comment\b
|
|
154
|
+
if (!/\bmw-comment\b/u.test(type)
|
|
144
155
|
|| string.startsWith('<!--') && ch <= start + 4
|
|
145
156
|
|| string.endsWith('-->') && ch >= end - 3
|
|
146
157
|
) {
|
|
147
|
-
return;
|
|
158
|
+
return undefined;
|
|
148
159
|
}
|
|
149
160
|
const index = cm.indexFromPos(cursor),
|
|
150
161
|
text = cm.getValue(),
|
|
151
|
-
fromIndex = text.slice(0, index - 1).search(/<!--(?:(?!-->).)*$/
|
|
162
|
+
fromIndex = text.slice(0, index - 1).search(/<!--(?:(?!-->).)*$/su);
|
|
152
163
|
let toIndex = text.slice(index).indexOf('-->');
|
|
153
164
|
toIndex = toIndex === -1 ? text.length : toIndex + index;
|
|
154
165
|
return {from: cm.posFromIndex(fromIndex + 4), to: cm.posFromIndex(toIndex)};
|
|
155
|
-
}
|
|
166
|
+
};
|
|
156
167
|
|
|
157
|
-
/**
|
|
158
|
-
|
|
159
|
-
|
|
168
|
+
/**
|
|
169
|
+
* 显示tooltip
|
|
170
|
+
* @param {CodeMirror.EditorFoldable} cm
|
|
171
|
+
*/
|
|
172
|
+
const showTooltip = cm => {
|
|
173
|
+
const {state: {fold: {$tooltip, hide}}} = cm;
|
|
160
174
|
cm.operation(() => {
|
|
161
175
|
if (cm.somethingSelected()) {
|
|
162
176
|
hide(500, false);
|
|
@@ -184,7 +198,7 @@
|
|
|
184
198
|
}
|
|
185
199
|
const {top, left} = cm.charCoords(cursor, 'local'),
|
|
186
200
|
height = $tooltip.outerHeight(),
|
|
187
|
-
notTag =
|
|
201
|
+
notTag = type === 'template' || type === 'comment';
|
|
188
202
|
$tooltip.attr('title', msg('fold', notTag ? `fold-${type}` : `<${type}>`))
|
|
189
203
|
.toggleClass('cm-mw-htmltag-name', !notTag)
|
|
190
204
|
.toggleClass('cm-mw-template-name', type === 'template')
|
|
@@ -194,11 +208,16 @@
|
|
|
194
208
|
.show();
|
|
195
209
|
hide(5000);
|
|
196
210
|
});
|
|
197
|
-
}
|
|
211
|
+
};
|
|
198
212
|
|
|
199
213
|
CodeMirror.defineExtension(
|
|
200
214
|
'scanForDelimiterAndBracket',
|
|
201
|
-
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* @this {CodeMirror.Editor}
|
|
218
|
+
* @param {CodeMirror.Position} where
|
|
219
|
+
* @param {1|-1} dir
|
|
220
|
+
*/
|
|
202
221
|
function(where, dir) {
|
|
203
222
|
return scanForDelimiterAndBracket(this, where || this.getCursor(), dir || 1);
|
|
204
223
|
},
|
|
@@ -206,7 +225,11 @@
|
|
|
206
225
|
|
|
207
226
|
CodeMirror.defineExtension(
|
|
208
227
|
'findEnclosingTemplate',
|
|
209
|
-
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* @this {CodeMirror.Editor}
|
|
231
|
+
* @param {CodeMirror.Position} pos
|
|
232
|
+
*/
|
|
210
233
|
function(pos) {
|
|
211
234
|
return findEnclosingTemplate(this, pos || this.getCursor());
|
|
212
235
|
},
|
|
@@ -214,14 +237,18 @@
|
|
|
214
237
|
|
|
215
238
|
CodeMirror.defineExtension(
|
|
216
239
|
'findEnclosingComment',
|
|
217
|
-
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* @this {CodeMirror.Editor}
|
|
243
|
+
* @param {CodeMirror.Position} pos
|
|
244
|
+
*/
|
|
218
245
|
function(pos) {
|
|
219
246
|
return findEnclosingComment(this, pos || this.getCursor());
|
|
220
247
|
},
|
|
221
248
|
);
|
|
222
249
|
|
|
223
250
|
CodeMirror.defineOption('fold', false, (/** @type {CodeMirror.EditorFoldable} */ cm, val, old) => {
|
|
224
|
-
if (old && old !==
|
|
251
|
+
if (old && old !== Init) {
|
|
225
252
|
cm.off('cursorActivity', showTooltip);
|
|
226
253
|
if (cm.state.fold) {
|
|
227
254
|
cm.state.fold.$tooltip.remove();
|
package/i18n/en.json
CHANGED
package/i18n/ka.json
CHANGED
package/i18n/zh-hans.json
CHANGED
package/i18n/zh-hant.json
CHANGED
package/lint.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Bhsd <https://github.com/bhsd-harry>
|
|
3
|
+
* @license GPL-3.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(() => {
|
|
7
|
+
/* global Parser */
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* annotationSource
|
|
12
|
+
* @param {string} str wikitext
|
|
13
|
+
* @returns {CodeMirror.LintAnnotation}
|
|
14
|
+
*/
|
|
15
|
+
const annotate = str => {
|
|
16
|
+
const errors = Parser.parse(str).lint();
|
|
17
|
+
return errors.map(error => {
|
|
18
|
+
const {startLine, startCol, endLine, endCol, message, severity} = error,
|
|
19
|
+
lineErrors = errors.filter(({startLine: line}) => line === startLine);
|
|
20
|
+
return {
|
|
21
|
+
message: message + '\u200B'.repeat(lineErrors.indexOf(error)),
|
|
22
|
+
severity,
|
|
23
|
+
from: CodeMirror.Pos(startLine, startCol),
|
|
24
|
+
to: CodeMirror.Pos(endLine, endCol),
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/** download */
|
|
30
|
+
const loadLinter = async () => {
|
|
31
|
+
mw.loader.load('//cdn.jsdelivr.net/npm/codemirror@5.65.3/addon/lint/lint.min.css', 'text/css');
|
|
32
|
+
mw.loader.addStyleTag(
|
|
33
|
+
'.CodeMirror-lint-scroll-warn{'
|
|
34
|
+
+ 'background:#fc3;border-top:1px solid #fc3;border-bottom:1px solid #fc3;box-sizing:border-box'
|
|
35
|
+
+ '}'
|
|
36
|
+
+ '.CodeMirror-lint-scroll-error{'
|
|
37
|
+
+ 'background:#d33;border-top:1px solid #d33;border-bottom:1px solid #d33;box-sizing:border-box'
|
|
38
|
+
+ '}',
|
|
39
|
+
);
|
|
40
|
+
await $.ajax(
|
|
41
|
+
`//cdn.jsdelivr.net/combine/${[
|
|
42
|
+
'npm/codemirror@5.65.3/addon/lint/lint.min.js',
|
|
43
|
+
'npm/codemirror@5.65.3/addon/scroll/annotatescrollbar.min.js',
|
|
44
|
+
'gh/bhsd-harry/wikiparser-node@0.4.9-b/bundle/bundle.min.js',
|
|
45
|
+
].join()}`,
|
|
46
|
+
{dataType: 'script', cache: true},
|
|
47
|
+
);
|
|
48
|
+
CodeMirror.registerHelper('lint', 'mediawiki', annotate);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* start linting
|
|
53
|
+
* @param {CodeMirror.Editor} cm
|
|
54
|
+
*/
|
|
55
|
+
const lint = async cm => {
|
|
56
|
+
if (!['mediawiki', 'text/mediawiki'].includes(cm.getOption('mode'))) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
cm.setOption('scrollButtonHeight', 0);
|
|
60
|
+
await ('lint' in CodeMirror.optionHandlers ? null : loadLinter());
|
|
61
|
+
const annotateScrollError = cm.annotateScrollbar('CodeMirror-lint-scroll-error'),
|
|
62
|
+
annotateScrollWarn = cm.annotateScrollbar('CodeMirror-lint-scroll-warn');
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* update linting
|
|
66
|
+
* @param {CodeMirror.LintAnnotation[]} annotations all annotations
|
|
67
|
+
*/
|
|
68
|
+
const onUpdateLinting = annotations => {
|
|
69
|
+
annotateScrollError.update(annotations.filter(({severity}) => severity !== 'warning'));
|
|
70
|
+
annotateScrollWarn.update(annotations.filter(({severity}) => severity === 'warning'));
|
|
71
|
+
};
|
|
72
|
+
cm.setOption('gutters', ['CodeMirror-lint-markers']);
|
|
73
|
+
cm.setOption('lint', {delay: 5000, selfContain: true, onUpdateLinting});
|
|
74
|
+
cm.addKeyMap({'Cmd-K': /** immediately lint */ () => {
|
|
75
|
+
cm.performLint();
|
|
76
|
+
}});
|
|
77
|
+
cm.on('viewportChange', () => {
|
|
78
|
+
if (cm.state.lint) {
|
|
79
|
+
clearTimeout(cm.state.lint.timeout);
|
|
80
|
+
cm.state.lint.timeout = setTimeout(() => {
|
|
81
|
+
cm.performLint();
|
|
82
|
+
}, cm.state.lint.options.delay);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
mw.hook('wiki-codemirror').add(cm => {
|
|
87
|
+
lint(cm);
|
|
88
|
+
});
|
|
89
|
+
mw.hook('InPageEdit.quickEdit.codemirror').add(/** @param {{cm: CodeMirror.Editor}} */ ({cm}) => {
|
|
90
|
+
lint(cm);
|
|
91
|
+
});
|
|
92
|
+
})();
|