wikiplus-highlight 2.18.1 → 2.18.4

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/README.md CHANGED
@@ -11,13 +11,13 @@
11
11
  在*个人 JS 页*添加以下代码:
12
12
 
13
13
  ```javascript
14
- mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.18.1');
14
+ mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.18.4');
15
15
  ```
16
16
 
17
17
 
18
18
 
19
19
  ```javascript
20
- mw.loader.load('//unpkg.com/wikiplus-highlight@2.18.1/dist/main.min.js');
20
+ mw.loader.load('//unpkg.com/wikiplus-highlight@2.18.4/dist/main.min.js');
21
21
  ```
22
22
 
23
23
  ### 稳定版本
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.18.1",m="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}}},g=Object.fromEntries||(e=>{const i={};for(var[t,n]of e)i[t]=n;return i}),P=e=>"function"==typeof e.flat?e.flat():e.reduce((e,i)=>e.concat(i),[]),o=(e=i)=>e.split(".").map(e=>Number(e));const u=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(u(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:u(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=o().slice(0,2).join(".");const a="//fastly.jsdelivr.net",s="npm/codemirror@5.65.3",N="gh/bhsd-harry/codemirror-mediawiki@1.1.5",r="npm/wikiplus-highlight@"+t,{wgPageName:D,wgNamespaceNumber:U,wgPageContentModel:H,wgServerName:B,wgScriptPath:V,wgUserLanguage:F,skin:d}=mw.config.values,p=null!==mw.loader.getState("ext.CodeMirror"),l=m.getObject("InPageEditMwConfig")||{},Q=""+B+V,w=l[Q]||{},h=!(w.time>Date.now()-2592e6),q={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=p?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:s+"/mode/lua/lua.min.js",mediawiki:h?"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"},f={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"},k=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!b.includes("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 b=m.getObject("Wikiplus-highlight-addons")||["search"],y=m.getObject("Wikiplus-highlight-indent")||4;const J={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},x=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},C=x(e=>e.split("").map(e=>{if(e in J)return`&${J[e]};`;const i=e.charCodeAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),v=({keyMap:e})=>e.default===e.pcDefault,K={"Ctrl-/":C,"Ctrl-\\":x(encodeURIComponent)},R={"Cmd-/":C,"Cmd-\\":x(encodeURIComponent)},j=(p,e)=>{if(["mediawiki","widget"].includes(e)&&b.includes("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:n,ch:o}=t,a=p.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(a)){const c=p.getLineTokens(n);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<o&&i>=o),u=c[m].string.replace(/\u200e/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(a)){const g=new mw.Title(u);return 0!==g.namespace||u.startsWith(":")?open(g.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+u),"_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:"+u),"_blank");else{if(!h.includes(e))return;open(mw.util.getUrl("Widget:"+u,{action:"edit"}),"_blank")}return!1}}})}};let S=m.getObject("Wikiplus-highlight-i18n"),M;S?((e,i)=>{var[e,t]=o(e),[i,n]=o(i);return e<i||e===i&&t<n})(S["wphl-version"],i)&&(M=e("welcome-new-addon",i,1)):(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"}[F]||"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}),m.setObject("Wikiplus-highlight-i18n",S)),mw.messages.set(S)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const O=e=>e.length?mw.loader.using(e):Promise.resolve(),E=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 O(t),E(e)):!1===i?(await E(e),O(t)):Promise.all([O(t),E(e)])};let _;const z=(e,i=!1)=>{const t=[];for(var{option:n,addon:o=n,download:a=Array.isArray(o)?n:o,only:s}of k)s&&i||n in e.optionHandlers||!Z(o,b)||t.push(f[a]);return t},Z=(e,i)=>Array.isArray(e)?e.some(e=>i.includes(e)):i.includes(e),ee=e=>{let i=[];var t="function"==typeof window.CodeMirror,n=t?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{}};if(t||(i.push(c.lib),p||mw.loader.load(`${a}/${s}/lib/codemirror.min.css`,"text/css")),"mediawiki"===e&&w.config&&w.config.tags.html&&(e="html"),["mediawiki","widget"].includes(e)&&!n.modes.mediawiki&&(mw.loader.load(`${a}/${N}/mediawiki.min.css`,"text/css"),i.push(N+"/mediawiki.min.js")),["widget","html"].includes(e))for(const o of["css","javascript","mediawiki","htmlmixed","xml"])n.modes[o]||(i=i.concat(c[o]));else i=i.concat(c[e]);return n.prototype.getSearchCursor||!b.includes("search")||b.includes("wikiEditor")||i.push(f.searchcursor),n.commands.findForward||!b.includes("search")||b.includes("wikiEditor")||i.push(f.search),"ready"!==mw.loader.getState("ext.wikiEditor")&&b.includes("wikiEditor")&&i.push(f.wikiEditor),"ready"!==mw.loader.getState("mediawiki.Title")&&b.includes("contextmenu")&&i.push(f.contextmenu),i.push(...z(n)),Y(i,t?void 0:p)},ie=e=>{l[Q]={config:e,time:Date.now()},m.setObject("InPageEditMwConfig",l)},te=async(i,t)=>{if(["mediawiki","widget"].includes(i)){p&&h&&await t;let e=mw.config.get("extCodeMirrorConfig");if(e||h||!X||({config:e}=w,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:n,extensiontags:o,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=>g(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i]));if(e){const[d]=e["functionSynonyms"];d.subst||i(n.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:g(o.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const l=new Set([...a,...s,...r]),c=n.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||l.has(e)),m=i(c.filter(e=>e["case-sensitive"])),u=i(c.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[t(u.filter(({alias:e})=>/^__.+__$/.test(e))),t(m.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[t(u.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),t(m.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=n.find(({name:e})=>"redirect"===e).aliases,e.img=t(i(n.filter(({name:e})=>e.startsWith("img_")))),mw.config.set("extCodeMirrorConfig",e),ie(e),e}},ne={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}},oe=async(e,i)=>{const o=i?"javascript":await(async()=>{if(![274,828].includes(U)||D.endsWith("/doc"))return D.endsWith("/doc")?"mediawiki":q[H];{const e=274===U?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(u("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()}})(),t=ee(o),[n]=await Promise.all([te(o,t),t]);if(!i&&b.includes("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){b.splice(b.indexOf("wikiEditor"),1),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===o&&n.tags.html?(n.tagModes.html="htmlmixed",await ee("html")):"widget"!==o||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var a=e.height();_&&_.toTextArea();const s=i||"json"===H;if((_=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:o,mwConfig:n,json:s},g(k.map(({option:e,addon:i=e,modes:t,complex:n=e=>!t||t.includes(e)})=>{i=Array.isArray(i)?i[0]:i;return[e,b.includes(i)&&n(o,s)]})),"mediawiki"===o?{extraKeys:b.includes("escape")&&(v(CodeMirror)?K:R)}:{indentUnit:b.includes("indentWithSpace")?y:4,indentWithTabs:!b.includes("indentWithSpace")}))).setSize(null,a),_.refresh(),_.getWrapperElement().id="Wikiplus-CodeMirror",e.textSelection("register",ne),j(_,o),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const d="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=m.getObject("Wikiplus_Settings");return i&&i[e]}},l=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},c=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};_.addKeyMap($.extend(v(CodeMirror)?{"Ctrl-S":l,"Shift-Ctrl-S":c}:{"Cmd-S":l,"Shift-Cmd-S":c},[!0,"true"].includes(d.getSetting("esc_to_exit_quickedit"))?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}mw.hook("wiki-codemirror").fire(_)},ae=new MutationObserver(e=>{const i=$(P(e.map(({addedNodes:e})=>[...e]))).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0!==i.length&&oe(i,"Wikiplus-Setting-Input"===i.attr("id"))}),se=(ae.observe(document.body,{childList:!0}),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}")),{get:re=function(e){return e.value},set:de=function(e,i){e.value=i}}=(se.id="wphl-style",$.valHooks.textarea||{}),le=e=>["Wikiplus-Quickedit","Wikiplus-Setting-Input"].includes(e.id);$.valHooks.textarea={get(e){return le(e)&&_?_.getValue():re(e)},set(e,i){le(e)&&_?_.setValue(i):de(e,i)}},await t;let I,T,A,ce,L;const me=(e=b)=>{L.toggle(e.includes("indentWithSpace"))};const ue=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions"}[d]||"p-cactions","#",u("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),I)T.setValue(b),A.setValue(y);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;i.$element.appendTo(document.body),i.addWindows([I]),T=new OO.ui.CheckboxMultiselectInputWidget({options:[...k.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:b}).on("change",me),A=new OO.ui.NumberInputWidget({min:0,value:y}),ce=new OO.ui.FieldLayout(T,{label:u("addon-label"),notices:[u("addon-notice")],align:"top"}),L=new OO.ui.FieldLayout(A,{label:u("addon-indent")}),me()}e="object"==typeof window.Wikiplus||"object"==typeof window.Pages;T.$element.find(".oo-ui-checkboxInputWidget").first().toggleClass("oo-ui-widget-enabled",e).children("input").prop("disabled",!e),I.open({title:u("addon-title"),message:ce.$element.add(L.$element).add($("<p>",{html:u("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=>{ce.$element.detach(),L.$element.detach(),"object"==typeof e&&"accept"===e.action&&(b=T.getValue(),y=Number(A.getValue()),m.setObject("Wikiplus-highlight-addons",b),m.setObject("Wikiplus-highlight-indent",y))})}),ge=("minerva"===d&&ue.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(b.includes("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=z(CodeMirror,!0),n=i.getOption("json");await Y(t);for(const{option:a,addon:s=a,modes:r,complex:d=e=>!r||r.includes(e)}of k.filter(({only:e})=>!e)){var o=Array.isArray(s)?s[0]:s;void 0===i.getOption(a)&&b.includes(o)&&i.setOption(a,d(e,n))}"mediawiki"!==e&&b.includes("indentWithSpace")?(i.setOption("indentUnit",y),i.setOption("indentWithTabs",!1)):"mediawiki"===e&&b.includes("escape")&&i.addKeyMap(v(CodeMirror)?K:R,!0),j(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>ge(e)),mw.hook("inspector").add(e=>ge(e)),mw.libs.wphl={version:i,options:k,addons:b,i18n:S,i18nLang:W,wphlStyle:se,$portlet:ue,USING_LOCAL:p,MODE_LIST:c,ADDON_LIST:f,msg:u,htmlMsg:n,escapeHTML:C,handleContextMenu:j,setI18N:e,getAddonScript:z,intersect:Z,updateCachedConfig:ie,getMwConfig:te,renderEditor:oe,handleOtherEditors:ge}})();
7
+ (async()=>{"use strict";if(mw.libs.wphl)return;mw.libs.wphl={};const i="2.18.4",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:()=>!x.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 x=new Set(p.getObject("Wikiplus-highlight-addons")||["search"]),y=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)&&x.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-new-addon",i,1)):(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"}[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,x)||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||!x.has("search")||x.has("wikiEditor")||i.push(m.searchcursor),o.commands.findForward||!x.has("search")||x.has("wikiEditor")||i.push(m.search),x.has("wikiEditor")&&((e=mw.loader.getState("ext.wikiEditor"))?"ready"!==e&&i.push(m.wikiEditor):x.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&x.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&&x.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){x.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,x.has(i)&&o(n,s)]})),"mediawiki"===n?{extraKeys:x.has("escape")&&(v(CodeMirror)?J:R)}:{indentUnit:x.has("indentWithSpace")?y:4,indentWithTabs:!x.has("indentWithSpace")}))).setSize(null,a),_.refresh(),_.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",oe),x.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}")),{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=[...x])=>{L.toggle(e.includes("indentWithSpace"))};const we=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions"}[d]||"p-cactions","#",h("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),I)T.setValue([...x]),A.setValue(y);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:[...x]}).on("change",pe))["checkboxMultiselectWidget"];me=t.findItemFromData("search"),ge=t.findItemFromData("wikiEditor"),A=new OO.ui.NumberInputWidget({min:0,value:y}),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(),x=new Set(e),y=Number(A.getValue()),p.setObject("Wikiplus-highlight-addons",e),p.setObject("Wikiplus-highlight-indent",y))})}),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(x.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)&&x.has(n)&&i.setOption(a,d(e,o))}"mediawiki"!==e&&x.has("indentWithSpace")?(i.setOption("indentUnit",y),i.setOption("indentWithTabs",!1)):"mediawiki"===e&&x.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:x,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}})();
8
8
  //# sourceMappingURL=main.min.js.map
@@ -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","includes","mode","bracketRegex","modes","let","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","charCodeAt","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","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","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","arr1","arr2","some","ele","initMode","scripts","loaded","window","CodeMirror","prototype","commands","load","tags","lang","getSearchCursor","findForward","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","Set","allMagicwords","has","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","indexOf","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","refresh","id","textSelection","children","attr","Wikiplus","getSetting","settings","submit","triggerHandler","submitMinor","click","addKeyMap","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","hook","fire","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","document","body","childList","getElementById","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","preventDefault","MessageDialog","windowManager","WindowManager","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","data","on","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","Pages","first","toggleClass","prop","message","add","flags","size","closing","then","detach","handleOtherEditors","getOption","setOption"],"mappings":";;;;;;CAOA,uBAGC,GAAIA,GAAGC,KAAKC,KACX,OAEDF,GAAGC,KAAKC,KAAO,GAEf,MAAMC,EAAU,SAIVC,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,SAAS,eAEjC,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,IAA4BL,EAAStG,EAAQC,UAAU,8BAFjC,CAAC,UAGA2G,EAAS5G,EAAQC,UAAU,8BAFjC,EAKjB,MAAM4G,EAAS,CAACC,IAAK,OAAQC,IAAK,OAAQC,IAAK,KAAMC,IAAK,KAAMC,IAAK,MAAOC,IAAK,QAEhFC,EAAUC,GAAQC,IACjBA,EAAIC,iBAAiBD,EAAIE,eAAe9F,MAAM,MAAMC,IAAI0F,GAAM1E,KAAK,MAAO,WAE3E8E,EAAaL,EAAQ3F,GAAOA,EAAIC,MAAM,IAAIC,IAAI+F,IAC7C,GAAIA,KAAKb,EACR,UAAWA,EAAOa,MAEnB,MAAMC,EAAOD,EAAEE,aACf,OAAOD,EAAO,SAAWA,WAAgBA,EAAKE,SAAS,SACrDlF,KAAK,KAC4CmF,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,EAAKd,KAC/B,GAAK,CAAC,YAAa,UAAUD,SAASC,IAAUF,EAAOC,SAAS,eAAhE,CAGA,MAAMmC,EAAWzG,EAAEqF,EAAIqB,qBAAqBC,SAAS,0BACjC,CAACC,IAAajJ,GAAGiE,OAAOiF,IAAI,wBAA0B,CACxEC,iBAAkB,CAAC,CAACC,OAAQ,SAAUC,KAAI,SAAUC,OAAQ,SAAUC,MAAK,aAD3EJ,oBAIIK,EAAe3H,GAAOX,OAAOuI,KAAKR,GAAUS,OAAOpJ,GAAO2I,EAAS3I,KAASuB,GAChFE,IAAIzB,GAAOA,EAAIqJ,WAAW,KAAOrJ,EAAM,IAAIA,GAC7C,MAAM8I,EAASI,EAAa,UAC3BF,EAASE,EAAa,UAEvBV,EAAS3C,YAAY,CAAA,CAAEyD,MAAAA,EAAOC,MAAAA,MAC7B,MAAMC,EAAMpC,EAAIqC,WAAW,CAACC,KAAMJ,EAAOK,IAAKJ,IAC7C,CAACK,KAAAA,EAAMC,GAAAA,GAAML,EACbM,EAAU1C,EAAI2C,eAAeP,GAC9B,GAAK,0CAA0CQ,KAAKF,GAApD,CAGA,MAAMG,EAAS7C,EAAI8C,cAAcN,GACjC,IAAK,GAAM,CAACO,EAAG,CAAC/H,KAAAA,EAAMgI,IAAAA,EAAKC,OAAAA,KAAY,IAAIJ,EAAOpJ,WAAWyJ,UACpD,EAAJH,GAASF,EAAOE,EAAI,GAAG/H,OAASA,IACnC6H,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,IAAIpL,GAAGqL,MAAMJ,GAM3B,OALwB,IAApBG,EAAME,WAAmBL,EAAKtB,WAAW,KAC5C4B,KAAKH,EAAMI,SAAU,UAErBD,KAAKvL,GAAGyL,KAAKD,OAAO,YAAYP,GAAS,WAEnC,EACD,KAAIH,EAAQ,IAAM,kCAAkCR,KAAKC,EAAOO,EAAQ,GAAGpI,OAC7E,6BAA6B4H,KAAKC,EAAOO,EAAQ,GAAGpI,MADlD,CAKDgJ,EAAiBnB,EAAOO,EAAQ,GAAGH,OAAOQ,OAAOQ,cACvD,GAAIvC,EAAOzC,SAAS+E,GACnBH,KAAKvL,GAAGyL,KAAKD,OAAO,UAAUP,GAAS,cACjC,CAAA,IAAI3B,EAAO3C,SAAS+E,GAG1B,OAFAH,KAAKvL,GAAGyL,KAAKD,OAAO,UAAUP,EAAQ,CAACW,OAAQ,SAAU,UAI1D,OAAO,QAIT7E,IAA0C8E,EAAOzL,EAAQC,UAAU,2BACzByL,EACrCD,GAvNc,CAACE,EAAGC,KACtB,GAAM,CAACC,EAAIC,GAAMtK,EAAWmK,GAC3B,CAACI,EAAIC,GAAMxK,EAAWoK,GACvB,OAAOC,EAAKE,GAAMF,IAAOE,GAAMD,EAAKE,GAuN1BC,CAAWR,EAAK,gBAAiB1L,KAC3C2L,EAAUvJ,EAAO,oBAAiDpC,EAnRvD,KAgRX0L,EAAO,GACPC,EAAUvJ,EAAO,YAKlB,MAIC+J,EAJ2D,CAC1DC,GAAI,UAAWC,UAAW,UAAWC,QAAS,UAAWC,QAAS,UAAWC,QAAS,UACtFC,UAAW,UAAWC,QAAS,UAAWC,QAAS,UAAWC,QAAS,WAE/ChJ,IAAa,KACtCiJ,KAAchK,KAAOG,UAAiBmJ,SACtCW,EAAWpB,EAAK,kBAAoBhJ,EAG/BqK,EAAUC,UACVF,GAAYpB,EAAK,eAAiBS,IACtCT,QAAaxJ,EAAE+K,KAAQJ,EAAY,CAClCK,SAAU,OACVC,OAAO,IAERlN,EAAQS,UAAU,0BAA2BgL,IAE9C7L,GAAGuN,SAASC,IAAI3B,IAGX4B,EAAcC,QAAQC,IAAI,CAC/B3N,GAAGoE,OAAOwJ,MAAM,kBAChBV,MAOD,MAAMW,EAAoBC,GAAQA,EAAKC,OAAS/N,GAAGoE,OAAOwJ,MAAME,GAAQJ,QAAQM,UAK1EC,EAAoBC,GAAQA,EAAKH,OACpC1L,EAAE+K,KAAQpK,EAAH,KAAwB,EAAdkL,EAAKH,OAAa,WAAa,IAAKG,EAAKnL,OAAU,CAACsK,SAAU,SAAUC,OAAO,IAChGI,QAAQM,UAOLG,EAAYhB,MAAOe,EAAME,KAC9B,IAAMC,EAAWH,EAAKxE,OAAO4E,IAAQA,EAAI3H,SAAS,MACjD4H,EAAWL,EAAKxE,OAAO4E,GAAOA,EAAI3H,SAAS,MAC5C,OAAc,IAAVyH,SACGP,EAAkBQ,GACjBJ,EAAkBM,KACL,IAAVH,SACJH,EAAkBM,GACjBV,EAAkBQ,IAEnBX,QAAQC,IAAI,CAACE,EAAkBQ,GAAWJ,EAAkBM,MAIpExH,IAAiDyH,EAGjD,MAAMC,EAAiB,CAACC,EAAIC,GAAQ,KACnC,MAA8BC,EAAc,GAC5C,IAAK,GAAM,CAACvI,OAAAA,EAAQC,MAAAA,EAAQD,EAAQE,SAAAA,EAAWsI,MAAMC,QAAQxI,GAASD,EAASC,EAAOE,KAAAA,KAASJ,EACxFI,GAAQmI,GAAYtI,KAAUqI,EAAGK,iBAAmBC,EAAU1I,EAAOI,IAC1EkI,EAAYK,KAAKzJ,EAAWe,IAG9B,OAAOqI,GAQFI,EAAY,CAACE,EAAMC,IAASN,MAAMC,QAAQI,GAC7CA,EAAKE,KAAKC,GAAOF,EAAKxI,SAAS0I,IAC/BF,EAAKxI,SAASuI,GAMXI,GAAW5M,IAChBqE,IAA4BwI,EAAU,GACtC,IAAMC,EAAsC,mBAAtBC,OAAOC,WAMvBhB,EAAKc,EAASC,OAAOC,WAAa,CAAC5I,MAAO,GAAI6I,UAAW,GAAIC,SAAU,GAAIb,eAAgB,IAoBjG,GAjBKS,IACJD,EAAQN,KAAK/J,EAAUC,KAClBhB,GACJnE,GAAGoE,OAAOyL,QAAQ7M,KAAOC,2BAAiC,aAK/C,cAATP,GAAwB8B,EAAcP,QAAUO,EAAcP,OAAO6L,KAAKrN,OAE7EC,EAAO,QAEJ,CAAC,YAAa,UAAUiE,SAASjE,KAAUgM,EAAG5H,MAAMzB,YAEvDrF,GAAGoE,OAAOyL,QAAQ7M,KAAOE,sBAA4B,YACrDqM,EAAQN,KAAQ/L,EAAH,sBAEV,CAAC,SAAU,QAAQyD,SAASjE,GAC/B,IAAK,MAAMqN,IAAQ,CAAC,MAAO,aAAc,YAAa,YAAa,OAC7DrB,EAAG5H,MAAMiJ,KACbR,EAAUA,EAAQ5N,OAAOuD,EAAU6K,UAIrCR,EAAUA,EAAQ5N,OAAOuD,EAAUxC,IAkBpC,OAdKgM,EAAGiB,UAAUK,kBAAmBtJ,EAAOC,SAAS,WAAcD,EAAOC,SAAS,eAClF4I,EAAQN,KAAKzJ,EAAWC,cAEpBiJ,EAAGkB,SAASK,cAAevJ,EAAOC,SAAS,WAAcD,EAAOC,SAAS,eAC7E4I,EAAQN,KAAKzJ,EAAWE,QAEoB,UAAzC1F,GAAGoE,OAAOC,SAAS,mBAAiCqC,EAAOC,SAAS,eACvE4I,EAAQN,KAAKzJ,EAAWU,YAEqB,UAA1ClG,GAAGoE,OAAOC,SAAS,oBAAkCqC,EAAOC,SAAS,gBACxE4I,EAAQN,KAAKzJ,EAAWW,aAEzBoJ,EAAQN,QAAQR,EAAeC,IAExBP,EAAUoB,EAASC,OAASU,EAAY/L,IAO1CgM,GAAqBlM,IAC1BK,EAAmBC,GAAW,CAACN,OAAAA,EAAQS,KAAMC,KAAKC,OAClDxE,EAAQS,UAAU,qBAAsByD,IAQnC8L,GAAcjD,MAAOzK,EAAM2N,KAChC,GAAK,CAAC,YAAa,UAAU1J,SAASjE,GAAtC,CAIIyB,GAAeM,SACZ4L,EAGPtJ,IAAI9C,EAASjE,GAAGiE,OAAOiF,IAAI,uBAQ3B,GAPKjF,GAAWQ,IAAWwI,IACzB,CAAChJ,OAAAA,GAAUO,EACRP,EAAO6L,KAAKQ,MACfrM,EAAOsM,SAASD,IAAM,kBAEvBtQ,GAAGiE,OAAOuJ,IAAI,sBAAuBvJ,IAElCA,GAAUA,EAAOuM,UAAYvM,EAAOwM,IACvC,OAAOxM,EACD,GAAIA,EACV,OAAOA,EASR,KAAc,CAACyM,WAAAA,EAAYC,cAAAA,EAAeC,cAAAA,EAAeC,UAAAA,UAAoB,IAAI7Q,GAAG8Q,KAAM5H,IAAI,CAC7F6H,KAAM,WACNC,OAAQ/M,EAAS,aAAe,mDAChCgN,cAAe,KAHTC,SAKDC,EAAkB,CAAC,MAAO,MAAO,QAAS,QAAS,aAMnDC,EAAaC,GAAShQ,EAC3BgQ,EAAMtP,IAAI,CAAA,CAAEuP,QAAAA,EAASC,KAAAA,KAAUD,EAAQvP,IAAIyP,IAAS,CAAEA,MAAAA,EAAOD,KAAAA,OAMxDE,EAAYH,GAAWrQ,EAC5BqQ,EAAQvP,IAAI,CAAA,CAAEyP,MAAAA,EAAOD,KAAAA,KAAU,CAACC,EAAMtG,QAAQ,KAAM,IAAKqG,KAG1D,GAAKtN,EA8BE,CACN,KAAyB,CAACyN,GAAgBzN,EAAnCkF,oBACFuI,EAAYC,OAChBP,EACCV,EAAWhH,OAAO,CAAA,CAAE6H,KAAAA,KAAUJ,EAAgBxK,SAAS4K,KACtDK,QAAQ,CAAA,CAAEJ,MAAAA,EAAOD,KAAAA,MAClBG,EAAYF,EAAMtG,QAAQ,KAAM,KAAOqG,QApC7B,CACZtN,EAAS,CACRsM,SAAU,CACTsB,IAAK,aACLC,OAAQ,gBACRxB,IAAK,kBAENR,KAAM7O,EACL0P,EAAc5O,IAAIa,GAAO,CAACA,EAAIE,MAAM,GAAI,IAAI,KAE7CiP,aAAc/R,GAAGiE,OAAOiF,IAAI,mBAE7B,MAAM8I,EAAiB,IAAIC,IAAI,IAAIrB,KAAkBC,KAAcM,IAClEe,EAAgBxB,EAAWhH,OAC1B,CAAA,CAAE6H,KAAAA,EAAMD,QAAAA,KAAaA,EAAQlC,KAAKoC,GAAS,WAAWlH,KAAKkH,KAAWQ,EAAeG,IAAIZ,IAE1Fa,EAAYhB,EACXc,EAAcxI,OAAO2I,GAAQA,EAAK,oBAEnCX,EAAcN,EACbc,EAAcxI,OAAO2I,IAASA,EAAK,oBAClCtQ,IAAI,CAAA,CAAEyP,MAAAA,EAAOD,KAAAA,MAAU,CAAEC,MAAOA,EAAM7F,cAAe4F,KAAAA,KACxDtN,EAAOqO,iBAAmB,CACzBb,EAAUC,EAAYhI,OAAO,CAAA,CAAE8H,MAAAA,KAAW,WAAWlH,KAAKkH,KAC1DC,EAAUW,EAAU1I,OAAO,CAAA,CAAE8H,MAAAA,KAAW,WAAWlH,KAAKkH,MAEzDvN,EAAOkF,iBAAmB,CACzBsI,EAAUC,EAAYhI,OAAO,CAAA,CAAE8H,MAAAA,MAAY,cAAclH,KAAKkH,KAC9DC,EAAUW,EAAU1I,OAAO,CAAA,CAAE8H,MAAAA,MAAY,cAAclH,KAAKkH,MAkB9D,OANAvN,EAAOuM,SAAWE,EAAW6B,KAAK,CAAA,CAAEhB,KAAAA,KAAmB,aAATA,GAAqBD,QACnErN,EAAOwM,IAAMgB,EACZL,EAAWV,EAAWhH,OAAO,CAAA,CAAE6H,KAAAA,KAAUA,EAAK5H,WAAW,WAE1D3J,GAAGiE,OAAOuJ,IAAI,sBAAuBvJ,GACrCkM,GAAmBlM,GACZA,IAsBFuO,GAAkB,CACvBC,cACC,OAAOjE,EAAGkE,YAEXC,YAAYC,GAEX,OADApE,EAAGqE,SAASD,GACLE,MAERlL,eACC,OAAO4G,EAAG5G,gBAEXmL,aAAa1M,GAMZ,OALAmI,EAAGuE,aACFvE,EAAGwE,aAAa3M,EAAO2E,OACvB,QAAS3E,EAASmI,EAAGwE,aAAa3M,EAAOqE,UAAOwF,GAEjD1B,EAAGyE,QACIH,MAERnL,iBAAiB7G,GAEhB,OADA0N,EAAG7G,iBAAiB7G,GACbgS,MAERI,iBAAiB7M,GAChB,IAAM8M,EAAW3E,EAAG4E,aAAa5E,EAAG6E,UAAU,SAC7CC,EAAS9E,EAAG4E,aAAa5E,EAAG6E,UAAU,OACvC,OAAIhN,EAAOkN,YACH,CAACJ,EAAUG,GAEZH,GAERK,wBAEC,OADAhF,EAAGiF,iBACIX,OASHY,GAAevG,MAAOwG,EAASC,KACpC,MAAMhN,EAAOgN,EAAU,mBA7DJzG,UACnB,IAAI,CAAC,IAAK,KAAKxG,SAASpD,IAAQF,EAAKwQ,SAAS,QAOvC,OAAIxQ,EAAKwQ,SAAS,QACjB,YAEDhP,EAAapB,GAVmC,CACtD,MAAMqQ,EAAkB,MAAPvQ,EAAa,SAAW,MAKzC,aAJMvD,GAAGoE,OAAOwJ,MAAM,CAAC,kBAAmB,uCACvBmG,GAAGC,GAAGC,QAAQ/R,EAAI,gBAAiB,CACrDgS,QAAS,CAAC,CAACC,MAAOL,GAAW,CAACK,MAAO,WAAYvI,OAAQ,aAE5C,YAAckI,EAASnI,gBAsDMyI,GAC3C/D,EAAkBf,GAAS1I,GAC3B,CAACyN,SAAkB3G,QAAQC,IAAI,CAC9ByC,GAAYxJ,EAAMyJ,GAClBA,IAGF,IAAKuD,GAAWlN,EAAOC,SAAS,cAC/B,IACC,GAAgC,mBAArB3G,GAAGsU,cACbtU,GAAGsU,cAAcX,OACX,CACN,MAAO1P,EAAU5B,EAAE6D,WAAWqO,QAAQC,QAA/BvQ,UACP0P,EAAQzN,WAAW,YAAa,IAC5B7D,EAAE6D,WAAWqO,QAAQE,QAAQxQ,OAAOyQ,sBACpCzQ,EAAOyQ,qBAEXzQ,EAAO0Q,aAAahB,IAEpB,MAAO/S,GACR8F,EAAOmE,OAAOnE,EAAOkO,QAAQ,cAAe,GAC5C5U,GAAGuC,OAAO,qBAAsB,CAACG,KAAM,UACvCmS,QAAQC,MAAMlU,GAIH,cAATgG,GAAwByN,EAASvE,KAAKrN,MACzC4R,EAAS9D,SAAS9N,KAAO,kBACnB6M,GAAS,SACI,WAAT1I,GAAsB8I,WAAWqF,UAAUzL,QACrDoG,WAAWsF,WAAW,SAAU,CAACzD,KAAM,YAAazB,KAAM,CAACmF,UAAW,CAAC,CAAC,KAAM,KAAM,iBAIrF,IAAMC,EAASvB,EAAQuB,SAEnB1G,GACHA,EAAG2G,aAGJ,MAAM5U,EAAOqT,GAA4B,SAAjBnQ,EAgCxB,IA/BA+K,EAAKkB,WAAW0F,aAAazB,EAAQ,GAAItR,EAAEgT,OAAO,CACjDC,WAAY,kBACZC,aAAc,YAAYjL,KAAKkL,UAAUC,WACzCC,cAAc,EACd9O,KAAAA,EACAyN,SAAAA,EACA9T,KAAAA,GACEU,EACFmF,EAAQrE,IAAI,CAAA,CAAEsE,OAAAA,EAAQC,MAAAA,EAAQD,EAAQS,MAAAA,EAAOL,QAAAA,EAAUkP,IAAQ7O,GAASA,EAAMH,SAASgP,OAChFC,EAAY/G,MAAMC,QAAQxI,GAASA,EAAM,GAAKA,EACpD,MAAO,CAACD,EAAQK,EAAOC,SAASiP,IAAcnP,EAAQG,EAAMrG,OAElD,cAATqG,EACA,CACDiP,UAAWnP,EAAOC,SAAS,YAAcuB,EAAKwH,YAAcpH,EAAcI,IAEzE,CACDoN,WAAYpP,EAAOC,SAAS,mBAAqBK,EAhdnC,EAidd+O,gBAAiBrP,EAAOC,SAAS,uBAGhCqP,QAAQ,KAAMd,GACjB1G,EAAGyH,UACHzH,EAAGzF,oBAAoBmN,GAAK,sBAE5BvC,EAAQwC,cAAc,WAAY3D,IAElC3J,EAAkB2F,EAAI5H,GAEtBvE,EAAE,4BAA4B+T,SAAS,KAAKC,KAAK,OAAQ,yBAEpDzC,EAAS,CACb,MAA8B0C,EAAsC,iBAApB7G,OAAO6G,SACnD7G,OAAO6G,SACP,CACDC,WAAWjW,GACV,IAAMkW,EAAWpW,EAAQC,UAAU,qBACnC,OAAOmW,GAAYA,EAASlW,KAG/BmW,EAAS,KACRpU,EAAE,8BAA8BqU,eAAe,UAEhDC,EAAc,KACbtU,EAAE,iCAAiCuU,QACnCvU,EAAE,8BAA8BqU,eAAe,UAEjDlI,EAAGqI,UAAUxU,EAAEgT,OACdnN,EAAKwH,YACF,CAACoH,SAAUL,EAAQM,eAAgBJ,GACnC,CAACK,QAASP,EAAQQ,cAAeN,GACpC,EAAC,EAAM,QAAQhQ,SAAS2P,EAASC,WAAW,0BACzC,CACDW,MACC7U,EAAE,4BAA4BqU,eAAe,WAG7C,KAIL1W,GAAGmX,KAAK,mBAAmBC,KAAK5I,IAI3B6I,GAAW,IAAIC,iBAAiBC,IACrC,MAAMC,EAAYnV,EAAEhB,EACnBkW,EAAQxV,IAAI,CAAA,CAAE0V,WAAAA,KAAgB,IAAIA,MAChClF,KAAK,gDACiB,IAArBiF,EAAUzJ,QAGd2F,GAAa8D,EAAoC,2BAAzBA,EAAUnB,KAAK,SAKlCqB,IAHNL,GAASM,QAAQC,SAASC,KAAM,CAACC,WAAW,IAG1BF,SAASG,eAAe,eAAiB/X,GAAGoE,OAAO4T,YACpE,gxBAmBK,CACL9O,IAAAA,GAAM,SAAS+O,GACd,OAAOA,EAAKnX,OAEb0M,IAAAA,GAAM,SAASyK,EAAMnX,GACpBmX,EAAKnX,MAAQA,KAXf4W,GAAUxB,GAAK,aAaX7T,EAAE6V,SAASC,UAAY,IAGrBC,GAAaH,GAAQ,CAAC,qBAAsB,0BAA0BtR,SAASsR,EAAK/B,IAC1F7T,EAAE6V,SAASC,SAAW,CACrBjP,IAAI+O,GACH,OAAOG,GAAWH,IAASzJ,EAAKA,EAAGkE,WAAaxJ,GAAI+O,IAErDzK,IAAIyK,EAAMnX,GACLsX,GAAWH,IAASzJ,EACvBA,EAAGqE,SAAS/R,GAEZ0M,GAAIyK,EAAMnX,WAKP2M,EAGN1G,IAAsCsR,EACc/O,EACbgP,EACNC,GACAC,EACjC,MAAMC,GAAe,CAAC3X,EAAQ4F,KAC7B8R,EAAYE,OAAO5X,EAAM6F,SAAS,qBAMnC,MAAMgS,GAAWtW,EAAErC,GAAGyL,KAAKmN,eAJF,CACxBC,QAAS,wBACTC,QAAS,aAGQ9U,IAAS,aAAc,IAAK9B,EAAI,WAAY,kBAC3D0U,MAAYhW,MAAAA,IAEd,GADAA,EAAEmY,iBACGV,EA2BJ/O,EAAOuJ,SAASnM,GAChB4R,EAAazF,SAAS7L,OA5BV,OACNhH,GAAGoE,OAAOwJ,MAAM,CAAC,kBAAmB,iCAE1CyK,EAAS,IAAItE,GAAGC,GAAGgF,cAAc,CAAC9C,GAAI,8BACtC,MAAM+C,EAAgB,IAAIlF,GAAGC,GAAGkF,cAChCD,EAAcE,SAASC,SAASxB,SAASC,MACzCoB,EAAcI,WAAW,CAAChB,IAC1B/O,EAAS,IAAIyK,GAAGC,GAAGsF,+BAA+B,CACjDlT,QAAS,IACLA,EAAQrE,IAAI,CAAA,CAAEsE,OAAAA,EAAQC,MAAAA,EAAQD,MAChC,MAAMuP,EAAY/G,MAAMC,QAAQxI,GAASA,EAAM,GAAKA,EACpD,MAAO,CAACiT,KAAM3D,EAAWzB,MAAO/R,EAAQ,SAASwT,EAAUjK,qBAEzD,CAAC,aAAc,SAAU,cAAe,kBAAmB,gBAC5D5J,IAAIuE,IAAS,CAAEiT,KAAMjT,EAAO6N,MAAO/R,EAAQ,SAASkE,EAAMqF,mBAE7D7K,MAAO4F,IACL8S,GAAG,SAAUf,IAChBH,EAAe,IAAIvE,GAAGC,GAAGyF,kBAAkB,CAACC,IAAK,EAAG5Y,MAAOkG,IAC3DuR,GAAQ,IAAIxE,GAAGC,GAAG2F,YAAYrQ,EAAQ,CACrC6K,MAAOjS,EAAI,eACX0X,QAAS,CAAC1X,EAAI,iBACd2X,MAAO,QAERrB,EAAc,IAAIzE,GAAGC,GAAG2F,YAAYrB,EAAc,CAACnE,MAAOjS,EAAI,kBAC9DuW,KAKKqB,EAA4C,iBAApBrK,OAAO6G,UAAiD,iBAAjB7G,OAAOsK,MAC5EzQ,EAAO6P,SAAS5G,KAAK,8BAA8ByH,QAAQC,YAAY,uBAAwBH,GAC7F1D,SAAS,SAAS8D,KAAK,YAAaJ,GACtCzB,EAAO9M,KAAK,CACXH,MAAOlJ,EAAI,eACXiY,QAAS5B,GAAMY,SAASiB,IAAI5B,EAAYW,UAAUiB,IACjD/X,EAAE,MAAO,CAACI,KAAMP,EAAI,eAErBgS,QAAS,CACR,CAACtI,OAAQ,SAAUuI,MAAOnU,GAAGkC,IAAI,+BACjC,CAAC0J,OAAQ,SAAUuI,MAAOnU,GAAGkC,IAAI,8BAA+BmY,MAAO,gBAExEC,KAAmB,OAAbhO,GAA8B,YAATtI,EAAqB,SAAW,UACzDuW,QAAQC,KAAKjB,IACfhB,GAAMY,SAASsB,SACfjC,EAAYW,SAASsB,SACD,iBAATlB,GAAqC,WAAhBA,EAAK3N,SACpClF,EAAS4C,EAAOoJ,WAChB1L,EAAS/E,OAAOqW,EAAa5F,YAC7BtS,EAAQS,UAAU,4BAA6B6F,GAC/CtG,EAAQS,UAAU,4BAA6BmG,QAiB5C0T,IAbO,YAAT1W,GACH2U,GAASpG,KAAK,eAAevJ,SAAS,+BAIhB,mBAAZ8C,GACVA,IAAUyG,KAAK,yBAAyBqE,MAAMhW,IAC7CA,EAAEmY,iBACF1W,EAAE,kBAAkBqU,eAAe,WAKJhP,MAAAA,IAChC,GAAKhB,EAAOC,SAAS,gBAArB,CAGAI,IAAIH,EAAOc,EAAIiT,UAAU,QACzB/T,EAAgB,mBAATA,EAA4B,YAAcA,EACjD,IAAMgI,EAAcH,EAAeiB,YAAY,GAC9CnP,EAAOmH,EAAIiT,UAAU,cAChBxM,EAAUS,GAChB,IAAK,KAAM,CACVvI,OAAAA,EAAQC,MAAAA,EAAQD,EAAQS,MAAAA,EAAOL,QAAAA,EAAU,IAAgCK,GAASA,EAAMH,SAASgP,MAC7FvP,EAAQsD,OAAO,CAAA,CAAElD,KAAAA,MAAWA,GAAO,CACvC,IAAMoP,EAAY/G,MAAMC,QAAQxI,GAASA,EAAM,GAAKA,OACtB4J,IAA1BxI,EAAIiT,UAAUtU,IAAyBK,EAAOC,SAASiP,IAC1DlO,EAAIkT,UAAUvU,EAAQI,EAAQG,EAAMrG,IAGzB,cAATqG,GAAwBF,EAAOC,SAAS,oBAC3Ce,EAAIkT,UAAU,aAAc5T,GAC5BU,EAAIkT,UAAU,kBAAkB,IACb,cAAThU,GAAwBF,EAAOC,SAAS,WAClDe,EAAImP,UAAU3O,EAAKwH,YAAcpH,EAAcI,GAAc,GAE9DG,EAAkBnB,EAAKd,MAGxB5G,GAAGmX,KAAK,mCAAmCiD,IACF,CAAA,CAAE5L,GAAI9G,KAASgT,GAAmBhT,IAE3E1H,GAAGmX,KAAK,aAAaiD,IAA0C1S,GAAOgT,GAAmBhT,IAEzF1H,GAAGC,KAAKC,KAAO,CACdC,QAAAA,EAASiG,QAAAA,EAASM,OAAAA,EAAQmF,KAAAA,EAAMS,SAAAA,EAAUoL,UAAAA,GAAWiB,SAAAA,GAAUxU,YAAAA,EAAae,UAAAA,EAAWM,WAAAA,EACvFtD,IAAAA,EAAKE,QAAAA,EAASyF,WAAAA,EAAYgB,kBAAAA,EAAmBqE,QAAAA,EAASuB,eAAAA,EACtDO,UAAAA,EAAWmB,mBAAAA,GAAoBC,YAAAA,GAAasD,aAAAA,GAAcgH,mBAAAA,KAp3B5D"}
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","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","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":"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"}
package/i18n/en.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.18.1",
2
+ "wphl-version": "2.18.4",
3
3
  "wphl-lang": "en",
4
4
  "wphl-addon-search": "<span title=\"Search with a string or a regular expression\">Search</span>",
5
5
  "wphl-addon-activeline": "Show the active line",
package/i18n/zh-hans.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.18.1",
2
+ "wphl-version": "2.18.4",
3
3
  "wphl-lang": "zh-hans",
4
4
  "wphl-addon-search": "<span title=\"搜索字符串或正则表达式\">搜索</span>",
5
5
  "wphl-addon-activeline": "高亮显示光标所在行",
package/i18n/zh-hant.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.18.1",
2
+ "wphl-version": "2.18.4",
3
3
  "wphl-lang": "zh-hant",
4
4
  "wphl-addon-search": "<span title=\"搜尋字串或正規表示式\">搜尋</span>",
5
5
  "wphl-addon-activeline": "突出顯示游標所在行",
package/main.js CHANGED
@@ -13,7 +13,7 @@
13
13
  }
14
14
  mw.libs.wphl = {}; // 开始加载
15
15
 
16
- const version = '2.18.1',
16
+ const version = '2.18.4',
17
17
  newAddon = 1;
18
18
 
19
19
  /** @type {typeof mw.storage} */
@@ -180,7 +180,7 @@
180
180
  const /** @type {addon[]} */ options = [
181
181
  {
182
182
  option: 'styleSelectedText', addon: 'search', download: 'markSelection', only: true,
183
- complex: () => !addons.includes('wikiEditor'),
183
+ complex: () => !addons.has('wikiEditor'),
184
184
  },
185
185
  {option: 'styleActiveLine', addon: 'activeLine'},
186
186
  {option: 'showTrailingSpace', addon: 'trailingspace'},
@@ -202,7 +202,7 @@
202
202
 
203
203
  const defaultAddons = ['search'],
204
204
  defaultIndent = 4;
205
- let /** @type {string[]} */ addons = storage.getObject('Wikiplus-highlight-addons') || defaultAddons,
205
+ let /** @type {Set<string>} */ addons = new Set(storage.getObject('Wikiplus-highlight-addons') || defaultAddons),
206
206
  /** @type {number} */ indent = storage.getObject('Wikiplus-highlight-indent') || defaultIndent;
207
207
 
208
208
  /** @type {Record<string, string>} */
@@ -228,7 +228,7 @@
228
228
  * @param {string} mode
229
229
  */
230
230
  const handleContextMenu = (doc, mode) => {
231
- if (!['mediawiki', 'widget'].includes(mode) || !addons.includes('contextmenu')) {
231
+ if (!['mediawiki', 'widget'].includes(mode) || !addons.has('contextmenu')) {
232
232
  return;
233
233
  }
234
234
  const $wrapper = $(doc.getWrapperElement()).addClass('CodeMirror-contextmenu'),
@@ -363,13 +363,13 @@
363
363
  };
364
364
 
365
365
  /**
366
- * @param {T[]|T} arr1
367
- * @param {T[]} arr2
366
+ * @param {T[]|T} arr
367
+ * @param {Set<T>} set
368
368
  * @template T
369
369
  */
370
- const intersect = (arr1, arr2) => Array.isArray(arr1)
371
- ? arr1.some(ele => arr2.includes(ele))
372
- : arr2.includes(arr1);
370
+ const intersect = (arr, set) => Array.isArray(arr)
371
+ ? arr.some(ele => set.has(ele))
372
+ : set.has(arr);
373
373
 
374
374
  /**
375
375
  * 根据文本的高亮模式加载依赖项
@@ -414,16 +414,21 @@
414
414
  }
415
415
 
416
416
  // addons
417
- if (!CM.prototype.getSearchCursor && addons.includes('search') && !addons.includes('wikiEditor')) {
417
+ if (!CM.prototype.getSearchCursor && addons.has('search') && !addons.has('wikiEditor')) {
418
418
  scripts.push(ADDON_LIST.searchcursor);
419
419
  }
420
- if (!CM.commands.findForward && addons.includes('search') && !addons.includes('wikiEditor')) {
420
+ if (!CM.commands.findForward && addons.has('search') && !addons.has('wikiEditor')) {
421
421
  scripts.push(ADDON_LIST.search);
422
422
  }
423
- if (mw.loader.getState('ext.wikiEditor') !== 'ready' && addons.includes('wikiEditor')) {
424
- scripts.push(ADDON_LIST.wikiEditor);
423
+ if (addons.has('wikiEditor')) {
424
+ const state = mw.loader.getState('ext.wikiEditor');
425
+ if (!state) {
426
+ addons.delete('wikiEditor');
427
+ } else if (state !== 'ready') {
428
+ scripts.push(ADDON_LIST.wikiEditor);
429
+ }
425
430
  }
426
- if (mw.loader.getState('mediawiki.Title') !== 'ready' && addons.includes('contextmenu')) {
431
+ if (mw.loader.getState('mediawiki.Title') !== 'ready' && addons.has('contextmenu')) {
427
432
  scripts.push(ADDON_LIST.contextmenu);
428
433
  }
429
434
  scripts.push(...getAddonScript(CM));
@@ -614,7 +619,7 @@
614
619
  initModePromise,
615
620
  ]);
616
621
 
617
- if (!setting && addons.includes('wikiEditor')) {
622
+ if (!setting && addons.has('wikiEditor')) {
618
623
  try {
619
624
  if (typeof mw.addWikiEditor === 'function') {
620
625
  mw.addWikiEditor($target);
@@ -627,7 +632,7 @@
627
632
  config.replaceIcons($target);
628
633
  }
629
634
  } catch (e) {
630
- addons.splice(addons.indexOf('wikiEditor'), 1);
635
+ addons.delete('wikiEditor');
631
636
  mw.notify('WikiEditor工具栏加载失败。', {type: 'error'});
632
637
  console.error(e);
633
638
  }
@@ -658,22 +663,33 @@
658
663
  }, fromEntries(
659
664
  options.map(({option, addon = option, modes, complex = mod => !modes || modes.includes(mod)}) => {
660
665
  const mainAddon = Array.isArray(addon) ? addon[0] : addon;
661
- return [option, addons.includes(mainAddon) && complex(mode, json)];
666
+ return [option, addons.has(mainAddon) && complex(mode, json)];
662
667
  }),
663
668
  ), mode === 'mediawiki'
664
669
  ? {
665
- extraKeys: addons.includes('escape') && (isPc(CodeMirror) ? extraKeysPc : extraKeysMac),
670
+ extraKeys: addons.has('escape') && (isPc(CodeMirror) ? extraKeysPc : extraKeysMac),
666
671
  }
667
672
  : {
668
- indentUnit: addons.includes('indentWithSpace') ? indent : defaultIndent,
669
- indentWithTabs: !addons.includes('indentWithSpace'),
673
+ indentUnit: addons.has('indentWithSpace') ? indent : defaultIndent,
674
+ indentWithTabs: !addons.has('indentWithSpace'),
670
675
  },
671
676
  ));
672
677
  cm.setSize(null, height);
673
678
  cm.refresh();
674
679
  cm.getWrapperElement().id = 'Wikiplus-CodeMirror';
675
680
 
676
- $target.textSelection('register', cmTextSelection);
681
+ if ($.fn.textSelection) {
682
+ $target.textSelection('register', cmTextSelection);
683
+ }
684
+
685
+ if (addons.has('wikiEditor')) {
686
+ const context = $target.data('wikiEditorContext'),
687
+ {keyMap} = CodeMirror,
688
+ callback = () => {
689
+ $.wikiEditor.modules.dialogs.api.openDialog(context, 'search-and-replace');
690
+ };
691
+ cm.addKeyMap(keyMap.default === keyMap.pcDefault ? {'Ctrl-F': callback} : {'Cmd-F': callback});
692
+ }
677
693
 
678
694
  handleContextMenu(cm, mode);
679
695
 
@@ -712,6 +728,8 @@
712
728
  mw.hook('wiki-codemirror').fire(cm);
713
729
  };
714
730
 
731
+ const {body} = document;
732
+
715
733
  // 监视 Wikiplus 编辑框
716
734
  const observer = new MutationObserver(records => {
717
735
  const $editArea = $(flatten(
@@ -722,7 +740,17 @@
722
740
  }
723
741
  renderEditor($editArea, $editArea.attr('id') === 'Wikiplus-Setting-Input');
724
742
  });
725
- observer.observe(document.body, {childList: true});
743
+ observer.observe(body, {childList: true});
744
+
745
+ $(body).on('keydown.wphl', '.ui-dialog', function(e) {
746
+ if (e.key === 'Escape') {
747
+ /** @type {{$textarea: JQuery<HTMLTextAreaElement>}} */
748
+ const context = $(this).children('.ui-dialog-content').data('context');
749
+ if (context && context.$textarea && context.$textarea.attr('id') === 'Wikiplus-Quickedit') {
750
+ e.stopPropagation();
751
+ }
752
+ }
753
+ });
726
754
 
727
755
  // 添加样式
728
756
  const wphlStyle = document.getElementById('wphl-style') || mw.loader.addStyleTag(
@@ -774,10 +802,12 @@
774
802
  // 设置对话框
775
803
  let /** @type {OOUI.MessageDialog} */ dialog,
776
804
  /** @type {OOUI.CheckboxMultiselectInputWidget} */ widget,
805
+ /** @type {OOUI.CheckboxMultioptionWidget} */ searchWidget,
806
+ /** @type {OOUI.CheckboxMultioptionWidget} */ wikiEditorWidget,
777
807
  /** @type {OOUI.NumberInputWidget} */ indentWidget,
778
808
  /** @type {OOUI.FieldLayout} */ field,
779
809
  /** @type {OOUI.FieldLayout} */ indentField;
780
- const toggleIndent = (value = addons) => {
810
+ const toggleIndent = (value = [...addons]) => {
781
811
  indentField.toggle(value.includes('indentWithSpace'));
782
812
  };
783
813
  const portletContainer = {
@@ -793,7 +823,7 @@
793
823
  // eslint-disable-next-line require-atomic-updates
794
824
  dialog = new OO.ui.MessageDialog({id: 'Wikiplus-highlight-dialog'});
795
825
  const windowManager = new OO.ui.WindowManager();
796
- windowManager.$element.appendTo(document.body);
826
+ windowManager.$element.appendTo(body);
797
827
  windowManager.addWindows([dialog]);
798
828
  widget = new OO.ui.CheckboxMultiselectInputWidget({
799
829
  options: [
@@ -804,8 +834,11 @@
804
834
  ...['wikiEditor', 'escape', 'contextmenu', 'indentWithSpace', 'otherEditors']
805
835
  .map(addon => ({data: addon, label: htmlMsg(`addon-${addon.toLowerCase()}`)})),
806
836
  ],
807
- value: addons,
837
+ value: [...addons],
808
838
  }).on('change', toggleIndent);
839
+ const {checkboxMultiselectWidget} = widget;
840
+ searchWidget = checkboxMultiselectWidget.findItemFromData('search');
841
+ wikiEditorWidget = checkboxMultiselectWidget.findItemFromData('wikiEditor');
809
842
  indentWidget = new OO.ui.NumberInputWidget({min: 0, value: indent});
810
843
  field = new OO.ui.FieldLayout(widget, {
811
844
  label: msg('addon-label'),
@@ -814,13 +847,14 @@
814
847
  });
815
848
  indentField = new OO.ui.FieldLayout(indentWidget, {label: msg('addon-indent')});
816
849
  toggleIndent();
850
+ Object.assign(mw.libs.wphl, {widget, indentWidget});
817
851
  } else {
818
- widget.setValue(addons);
852
+ widget.setValue([...addons]);
819
853
  indentWidget.setValue(indent);
820
854
  }
821
855
  const wikiplusLoaded = typeof window.Wikiplus === 'object' || typeof window.Pages === 'object';
822
- widget.$element.find('.oo-ui-checkboxInputWidget').first().toggleClass('oo-ui-widget-enabled', wikiplusLoaded)
823
- .children('input').prop('disabled', !wikiplusLoaded);
856
+ searchWidget.setDisabled(!wikiplusLoaded);
857
+ wikiEditorWidget.setDisabled(!wikiplusLoaded || !mw.loader.getState('ext.wikiEditor'));
824
858
  dialog.open({
825
859
  title: msg('addon-title'),
826
860
  message: field.$element.add(indentField.$element).add(
@@ -835,9 +869,10 @@
835
869
  field.$element.detach();
836
870
  indentField.$element.detach();
837
871
  if (typeof data === 'object' && data.action === 'accept') {
838
- addons = widget.getValue();
872
+ const value = widget.getValue();
873
+ addons = new Set(value);
839
874
  indent = Number(indentWidget.getValue());
840
- storage.setObject('Wikiplus-highlight-addons', addons);
875
+ storage.setObject('Wikiplus-highlight-addons', value);
841
876
  storage.setObject('Wikiplus-highlight-indent', indent);
842
877
  }
843
878
  });
@@ -856,7 +891,7 @@
856
891
 
857
892
  /** @param {CodeMirror.Editor} doc */
858
893
  const handleOtherEditors = async doc => {
859
- if (!addons.includes('otherEditors')) {
894
+ if (!addons.has('otherEditors')) {
860
895
  return;
861
896
  }
862
897
  let mode = doc.getOption('mode');
@@ -868,14 +903,14 @@
868
903
  option, addon = option, modes, complex = (/** @type {string} */ mod) => !modes || modes.includes(mod),
869
904
  } of options.filter(({only}) => !only)) {
870
905
  const mainAddon = Array.isArray(addon) ? addon[0] : addon;
871
- if (doc.getOption(option) === undefined && addons.includes(mainAddon)) {
906
+ if (doc.getOption(option) === undefined && addons.has(mainAddon)) {
872
907
  doc.setOption(option, complex(mode, json));
873
908
  }
874
909
  }
875
- if (mode !== 'mediawiki' && addons.includes('indentWithSpace')) {
910
+ if (mode !== 'mediawiki' && addons.has('indentWithSpace')) {
876
911
  doc.setOption('indentUnit', indent);
877
912
  doc.setOption('indentWithTabs', false);
878
- } else if (mode === 'mediawiki' && addons.includes('escape')) {
913
+ } else if (mode === 'mediawiki' && addons.has('escape')) {
879
914
  doc.addKeyMap(isPc(CodeMirror) ? extraKeysPc : extraKeysMac, true);
880
915
  }
881
916
  handleContextMenu(doc, mode);
@@ -889,6 +924,6 @@
889
924
  mw.libs.wphl = {
890
925
  version, options, addons, i18n, i18nLang, wphlStyle, $portlet, USING_LOCAL, MODE_LIST, ADDON_LIST,
891
926
  msg, htmlMsg, escapeHTML, handleContextMenu, setI18N, getAddonScript,
892
- intersect, updateCachedConfig, getMwConfig, renderEditor, handleOtherEditors,
927
+ updateCachedConfig, getMwConfig, renderEditor, handleOtherEditors,
893
928
  }; // 加载完毕
894
929
  })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikiplus-highlight",
3
- "version": "2.18.1",
3
+ "version": "2.18.4",
4
4
  "description": "A plugin for the MediaWiki front-end add-on \"Wikiplus\"",
5
5
  "keywords": [
6
6
  "mediawiki",